@wolf-scope/wolf-ui
Version:
UI library for web applications using Lit
39 lines (38 loc) • 1.22 kB
JavaScript
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
};