UNPKG

ui-lit

Version:

UI Elements on LIT

59 lines (58 loc) 1.75 kB
import { __decorate } from "tslib"; import { customElement, property } from 'lit/decorators.js'; import { LitElement, html, css } from 'lit'; let LitTreeItem = class LitTreeItem extends LitElement { constructor() { super(...arguments); this.value = ''; } connectedCallback() { super.connectedCallback(); this.addEventListener('click', this._onClick); } disconnectedCallback() { super.disconnectedCallback(); this.removeEventListener('click', this._onClick); } updateSelection(selected) { const isSelected = selected === this.value; if (this.hasAttribute('selected') !== isSelected) { isSelected ? this.setAttribute('selected', '') : this.removeAttribute('selected'); } if (isSelected) { this.dispatchEvent(new CustomEvent('subviewSelected', { detail: isSelected, bubbles: true })); } } _onClick() { this.dispatchEvent(new CustomEvent("changed", { detail: this.value, bubbles: true })); } render() { return html `<slot></slot>`; } }; LitTreeItem.styles = css ` :host{ display: block; padding: 5px 10px; cursor: pointer; } :host([selected]){ background-color: var(--lit-treeitem-selected-background, rgba(0, 0, 0, 0.05)); color: var(--lit-treeitem-selected-color, tomato); } `; __decorate([ property() ], LitTreeItem.prototype, "value", void 0); LitTreeItem = __decorate([ customElement("lit-tree-item") ], LitTreeItem); export { LitTreeItem };