@paraboly/pwc-sliding-panel
Version:
A panel that slides open from the sides of the page when you click a handle.
31 lines (28 loc) • 1.7 kB
JavaScript
import { r as registerInstance, h, c as getElement } from './core-4fc17e0e.js';
const PwcSlidingPanel = class {
constructor(hostRef) {
registerInstance(this, hostRef);
this.active = false;
this.anchor = "left";
}
activeWatchHandler(newValue) {
if (newValue) {
this.root.classList.add("pwc-sliding-panel___active");
}
else {
this.root.classList.remove("pwc-sliding-panel___active");
}
}
toggledListener() {
this.active = !this.active;
}
render() {
return h("slot", null);
}
get root() { return getElement(this); }
static get watchers() { return {
"active": ["activeWatchHandler"]
}; }
static get style() { return ":root {\n --pwc-sliding-panel___content-width: 200px;\n --pwc-sliding-panel___toggle-width: 30px;\n --pwc-sliding-panel___toggle-height: 30px;\n --pwc-sliding-panel___transition-duration: 0.25s;\n}\n\npwc-sliding-panel {\n display: block;\n position: absolute;\n -webkit-transition: all var(--pwc-sliding-panel___transition-duration) ease;\n transition: all var(--pwc-sliding-panel___transition-duration) ease;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n/** left **/\npwc-sliding-panel[anchor=left] {\n left: calc(var(--pwc-sliding-panel___content-width) * -1);\n}\n\npwc-sliding-panel[anchor=left].pwc-sliding-panel___active {\n left: 0px;\n}\n\n/** right **/\npwc-sliding-panel[anchor=right] {\n right: calc(var(--pwc-sliding-panel___content-width) * -1);\n}\n\npwc-sliding-panel[anchor=right].pwc-sliding-panel___active {\n right: 0px;\n}"; }
};
export { PwcSlidingPanel as pwc_sliding_panel };