@universal-material/web
Version:
Material web components
61 lines • 1.69 kB
JavaScript
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