Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | 1x 2x 2x 1x 1x | import { LightningElement, api } from 'lwc';
import { reflectAttribute } from 'sds/utils';
const icons = [
{
name: 'jam',
resolver: (symbol) => `https://cdn.jsdelivr.net/npm/jam-icons@2.0.0/svg/${symbol}.svg`,
mutator: (svg) => {
svg.setAttribute('fill', 'currentColor');
return svg;
},
},
{
name: 'iconoir',
resolver: (symbol) => `https://cdn.jsdelivr.net/gh/lucaburgio/iconoir@latest/icons/regular/${symbol}.svg`,
},
{
name: 'sds',
resolver: (symbol) => `https://api.lightningdesignsystem.com/sds/icons/foundation/${symbol}.svg`,
},
];
export default class CustomIcon extends LightningElement {
// Render component in native shadow mode
static shadowSupportMode = 'native';
@api symbol;
@api set = 'iconoir';
@api
get size() {
return this._size;
}
set size(value) {
this._size = value;
reflectAttribute(this, 'size', this._size);
}
handleIconRegister(e) {
this.icon.iconSets = icons;
}
get icon() {
return this.template.querySelector('sds-icon');
}
}
|