@zoff-tech/zt-bottom-drawer
Version:
Bottom Drawer / Web Component
74 lines (70 loc) • 2.15 kB
JavaScript
import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
import { d as defineCustomElement$2 } from './nav.js';
const ZTNav = /*@__PURE__*/ proxyCustomElement(class ZTNav extends HTMLElement {
constructor() {
super();
this.__registerHost();
}
async getNav() {
return this.nav;
}
async getActive() {
return this.nav.getActive();
}
isElement(o) {
return (typeof HTMLElement === "object" ? o instanceof HTMLElement : //DOM2
o && typeof o === "object" && o !== null && o.nodeType === 1 && typeof o.nodeName === "string");
}
async pushNav(component, componentProps, opts, done) {
if (typeof (component) == "string")
component = document.createElement(component);
if (this.isElement(component)) {
if (this.currentComponent && this.currentComponent.canDeactivate) {
let result = await this.currentComponent.canDeactivate(componentProps, component);
if (!result) {
return false;
}
}
if (component.canActivate) {
let result = await component.canActivate(componentProps, this.currentComponent);
if (!result) {
return false;
}
}
this.currentComponent = component;
await this.nav.push(component, componentProps, opts, done);
return true;
}
return false;
}
render() {
return (h("ion-nav", { ref: elNsv => this.nav = elNsv }));
}
get el() { return this; }
}, [0, "zt-nav", {
"getNav": [64],
"getActive": [64],
"pushNav": [64]
}]);
function defineCustomElement$1() {
if (typeof customElements === "undefined") {
return;
}
const components = ["zt-nav", "ion-nav"];
components.forEach(tagName => { switch (tagName) {
case "zt-nav":
if (!customElements.get(tagName)) {
customElements.define(tagName, ZTNav);
}
break;
case "ion-nav":
if (!customElements.get(tagName)) {
defineCustomElement$2();
}
break;
} });
}
const ZtNav = ZTNav;
const defineCustomElement = defineCustomElement$1;
export { ZtNav, defineCustomElement };
//# sourceMappingURL=zt-nav.js.map