UNPKG

vicowa-web-components

Version:
2 lines 1.31 kB
import{WebComponentBaseClass as t}from"/third_party/web-component-base-class/dist/web-component-base-class.js";const e={},o={};window.customElements.define("vicowa-icon-set",class VicowaIconSet extends t{constructor(){super()}static get properties(){return{name:{type:String,value:"",reflectToAttribute:!0}}}attached(){const t=e[this.name]=e[this.name]||{},n=Array.from(this.$.icons.assignedNodes());Array.from(n).forEach((e=>{Array.from(e.querySelectorAll("defs > g[id]")).forEach((e=>{t[e.id]=e}))}));const s=o[this.name];s&&Object.keys(s).forEach((e=>{t[e]&&s[e]&&s[e].forEach((o=>{o.callback(t[e])}))}))}static getIcon(t,n,s){const r=n?n.trim().split(":"):[];if(r.length>1){const n={group:r[0],name:r[1]};o[n.group]=o[n.group]||{};const a=o[n.group][n.name]=o[n.group][n.name]||[];a.find((e=>e.owner===t&&e.callback===s))||a.push({owner:t,callback:s}),e[n.group]&&s(e[n.group][n.name])}else if(n)throw new Error("icon names should have the format group:name")}static removeCallback(t){Object.keys(o).forEach((e=>{const n=o[e];Object.keys(n).forEach((e=>{n[e]=n[e].filter((e=>e.owner===t))}))}))}static get template(){return'\n\t\t\t<style>\n\t\t\t\t:host {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<slot id="icons" name="icons"></slot>\n\t\t'}}); //# sourceMappingURL=vicowa-icon-set.js.map