UNPKG

@wolf-scope/wolf-ui

Version:

UI library for web applications using Lit

39 lines (38 loc) 1.22 kB
import { property as i } from "lit/decorators.js"; import { unsafeCSS as d, LitElement as p, html as f } from "lit"; const m = `:host{display:block;user-select:none}:host([noBorder]){border:none} `; var h = Object.defineProperty, u = Object.getOwnPropertyDescriptor, a = (s, o, t, e) => { for (var r = e > 1 ? void 0 : e ? u(o, t) : o, n = s.length - 1, l; n >= 0; n--) (l = s[n]) && (r = (e ? l(o, t, r) : l(r)) || r); return e && r && h(o, t, r), r; }; const v = "wolf-accordion"; class c extends p { constructor() { super(...arguments), this.mode = "single", this.noBorder = !1; } /* function that checks if single mode and if so, closes all other items (except the one that was clicked and it's parent wolf-accordion-item if any) */ handleAccordionItemClick(o) { this.mode === "single" && this.querySelectorAll("wolf-accordion-item").forEach((e) => { e !== o.target && !e.contains(o.target) && (e.expanded = !1); }); } render() { return f` <slot @changed=${this.handleAccordionItemClick}></slot>`; } } c.styles = d(m); a([ i() ], c.prototype, "mode", 2); a([ i({ type: Boolean }) ], c.prototype, "noBorder", 2); export { c as WolfAccordion, v as tagName };