UNPKG

@universal-material/web

Version:
61 lines 1.69 kB
import { __decorate } from "tslib"; import { css, html, LitElement } from 'lit'; import { customElement, property, queryAssignedElements } from 'lit/decorators.js'; let OverflowMenuItem = class OverflowMenuItem extends LitElement { constructor() { super(...arguments); this.#label = ''; this.#mutationObserver = new MutationObserver(() => this.#parent?._renderMenuItems()); this.collapse = 'auto'; } static { this.styles = css ` :host([collapse=always]) { display: none; } `; } #label; #mutationObserver; get #parent() { return this.parentElement; } get label() { return this.#label; } set label(label) { this.#label = label; this.#parent?._renderMenuItems(); } connectedCallback() { super.connectedCallback(); this.#mutationObserver.observe(this, { subtree: true, characterData: true, childList: true, }); } disconnectedCallback() { super.disconnectedCallback(); this.#mutationObserver.disconnect(); } render() { return html ` <u-icon-button title="${this.label}"> <slot></slot> </u-icon-button> `; } }; __decorate([ property() ], OverflowMenuItem.prototype, "label", null); __decorate([ property({ reflect: true }) ], OverflowMenuItem.prototype, "collapse", void 0); __decorate([ queryAssignedElements() ], OverflowMenuItem.prototype, "icons", void 0); OverflowMenuItem = __decorate([ customElement('u-overflow-menu-item') ], OverflowMenuItem); export { OverflowMenuItem }; //# sourceMappingURL=overflow-menu-item.js.map