Sha256: 6654ab9deccc4f3b047383779ef850e28fe7aed76ecf1635b447051d59dff2fa
Contents?: true
Size: 1017 Bytes
Versions: 16
Compression:
Stored size: 1017 Bytes
Contents
class Icon extends HTMLElement { static get observedAttributes() { return ["name", "size", "icon-style"] } constructor() { super() this.spriteUrl = document .querySelector('meta[name="alchemy-icon-sprite"]') .getAttribute("content") } connectedCallback() { this.render() } attributeChangedCallback() { this.render() } render() { const sizeClass = this.size ? ` icon--${this.size}` : "" this.innerHTML = `<svg class="icon${sizeClass}"><use href="${this.spriteUrl}#ri-${this.iconName}${this.style}" /></svg>` } set name(value) { this.setAttribute("name", value) } get iconName() { return this.getAttribute("name") } get size() { return this.getAttribute("size") } get style() { const value = this.getAttribute("icon-style") switch (value) { case "none": return "" case null: return "-line" default: return `-${value}` } } } customElements.define("alchemy-icon", Icon)
Version data entries
16 entries across 16 versions & 1 rubygems