dap-design-system
Version:
Official design system for the DÁP (dap.gov.hu)
73 lines (72 loc) • 2.34 kB
JavaScript
import "../../node_modules/@lit/reactive-element/reactive-element.js";
import { html as l } from "../../node_modules/lit-html/lit-html.js";
import "../../node_modules/lit-element/lit-element.js";
import { property as c } from "../../node_modules/@lit/reactive-element/decorators/property.js";
import { DdsElement as h } from "../../internal/dds-hu-element.js";
import f from "./overlay.scss.js";
import { unsafeCSS as p } from "../../node_modules/@lit/reactive-element/css-tag.js";
var u = Object.defineProperty, m = (a, e, s, n) => {
for (var t = void 0, o = a.length - 1, d; o >= 0; o--)
(d = a[o]) && (t = d(e, s, t) || t);
return t && u(e, s, t), t;
};
const i = class i extends h {
constructor() {
super(...arguments), this.open = !1;
}
connectedCallback() {
super.connectedCallback(), this.hasAttribute("aria-hidden") || this.setAttribute("aria-hidden", "true"), this.open || this.classList.add("closed");
}
updated(e) {
if (super.updated(e), e.has("open")) {
const s = e.get("open"), n = this.open;
n && !s ? this.handleOpen() : !n && s && this.handleClose();
}
}
handleOpen() {
if (this.emit("dds-before-open", void 0, {
cancelable: !0
}).defaultPrevented) {
this.open = !1;
return;
}
this.classList.remove("closed", "transitioning"), this.setAttribute("aria-hidden", "false"), this.addEventListener(
"transitionend",
() => {
this.emit("dds-opened", void 0, {
cancelable: !1
});
},
{ once: !0 }
);
}
handleClose() {
if (this.emit("dds-before-close", void 0, {
cancelable: !0
}).defaultPrevented) {
this.open = !0;
return;
}
this.classList.add("transitioning"), this.classList.remove("closed"), this.setAttribute("aria-hidden", "true"), this.addEventListener(
"transitionend",
() => {
this.classList.remove("transitioning"), this.classList.add("closed"), this.emit("dds-closed", void 0, {
cancelable: !1
});
},
{ once: !0 }
);
}
render() {
return l`<div part="base"><slot></slot></div>`;
}
};
i.tagName = "dap-ds-overlay", i.styles = p(f);
let r = i;
m([
c({ type: Boolean, reflect: !0 })
], r.prototype, "open");
export {
r as default
};
//# sourceMappingURL=overlay.component.js.map