import{__awaiter,__generator}from"tslib"; /*! * (C) Ionic http://ionicframework.com - MIT License */import{r as registerInstance,h,H as Host,f as getElement,d as createEvent}from"./index-73fa3fe8.js";import{a as attachComponent}from"./framework-delegate-ed4ba327.js";import"./helpers-be245865.js";var tabCss=":host(.tab-hidden){display:none !important}";var IonTabStyle0=tabCss;var Tab=function(){function t(t){registerInstance(this,t);this.loaded=false;this.active=false;this.delegate=undefined;this.tab=undefined;this.component=undefined}t.prototype.componentWillLoad=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:if(!this.active)return[3,2];return[4,this.setActive()];case 1:t.sent();t.label=2;case 2:return[2]}}))}))};t.prototype.setActive=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,this.prepareLazyLoaded()];case 1:t.sent();this.active=true;return[2]}}))}))};t.prototype.changeActive=function(t){if(t){this.prepareLazyLoaded()}};t.prototype.prepareLazyLoaded=function(){if(!this.loaded&&this.component!=null){this.loaded=true;try{return attachComponent(this.delegate,this.el,this.component,["ion-page"])}catch(t){console.error(t)}}return Promise.resolve(undefined)};t.prototype.render=function(){var t=this,e=t.tab,i=t.active,n=t.component;return h(Host,{key:"fa5c567bf59eb8bd46a7d2b85a560e43c43563fe",role:"tabpanel","aria-hidden":!i?"true":null,"aria-labelledby":"tab-button-".concat(e),class:{"ion-page":n===undefined,"tab-hidden":!i}},h("slot",{key:"133871ad0bafa16539dfec4a6bd640367c998039"}))};Object.defineProperty(t.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});Object.defineProperty(t,"watchers",{get:function(){return{active:["changeActive"]}},enumerable:false,configurable:true});return t}();Tab.style=IonTabStyle0;var tabsCss=":host{left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:100%;height:100%;contain:layout size style;z-index:0}.tabs-inner{position:relative;-ms-flex:1;flex:1;contain:layout size style}";var IonTabsStyle0=tabsCss;var Tabs=function(){function t(t){var e=this;registerInstance(this,t);this.ionNavWillLoad=createEvent(this,"ionNavWillLoad",7);this.ionTabsWillChange=createEvent(this,"ionTabsWillChange",3);this.ionTabsDidChange=createEvent(this,"ionTabsDidChange",3);this.transitioning=false;this.onTabClicked=function(t){var i=t.detail,n=i.href,r=i.tab;if(e.useRouter&&n!==undefined){var a=document.querySelector("ion-router");if(a){a.push(n)}}else{e.select(r)}};this.selectedTab=undefined;this.useRouter=false}t.prototype.componentWillLoad=function(){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(e){switch(e.label){case 0:if(!this.useRouter){this.useRouter=!!document.querySelector("ion-router")&&!this.el.closest("[no-router]")}if(!!this.useRouter)return[3,2];t=this.tabs;if(!(t.length>0))return[3,2];return[4,this.select(t[0])];case 1:e.sent();e.label=2;case 2:this.ionNavWillLoad.emit();return[2]}}))}))};t.prototype.componentWillRender=function(){var t=this.el.querySelector("ion-tab-bar");if(t){var e=this.selectedTab?this.selectedTab.tab:undefined;t.selectedTab=e}};t.prototype.select=function(t){return __awaiter(this,void 0,void 0,(function(){var e;return __generator(this,(function(i){switch(i.label){case 0:e=getTab(this.tabs,t);if(!this.shouldSwitch(e)){return[2,false]}return[4,this.setActive(e)];case 1:i.sent();return[4,this.notifyRouter()];case 2:i.sent();this.tabSwitch();return[2,true]}}))}))};t.prototype.getTab=function(t){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){return[2,getTab(this.tabs,t)]}))}))};t.prototype.getSelected=function(){return Promise.resolve(this.selectedTab?this.selectedTab.tab:undefined)};t.prototype.setRouteId=function(t){return __awaiter(this,void 0,void 0,(function(){var e;var i=this;return __generator(this,(function(n){switch(n.label){case 0:e=getTab(this.tabs,t);if(!this.shouldSwitch(e)){return[2,{changed:false,element:this.selectedTab}]}return[4,this.setActive(e)];case 1:n.sent();return[2,{changed:true,element:this.selectedTab,markVisible:function(){return i.tabSwitch()}}]}}))}))};t.prototype.getRouteId=function(){return __awaiter(this,void 0,void 0,(function(){var t,e;return __generator(this,(function(i){e=(t=this.selectedTab)===null||t===void 0?void 0:t.tab;return[2,e!==undefined?{id:e,element:this.selectedTab}:undefined]}))}))};t.prototype.setActive=function(t){if(this.transitioning){return Promise.reject("transitioning already happening")}this.transitioning=true;this.leavingTab=this.selectedTab;this.selectedTab=t;this.ionTabsWillChange.emit({tab:t.tab});t.active=true;return Promise.resolve()};t.prototype.tabSwitch=function(){var t=this.selectedTab;var e=this.leavingTab;this.leavingTab=undefined;this.transitioning=false;if(!t){return}if(e!==t){if(e){e.active=false}this.ionTabsDidChange.emit({tab:t.tab})}};t.prototype.notifyRouter=function(){if(this.useRouter){var t=document.querySelector("ion-router");if(t){return t.navChanged("forward")}}return Promise.resolve(false)};t.prototype.shouldSwitch=function(t){var e=this.selectedTab;return t!==undefined&&t!==e&&!this.transitioning};Object.defineProperty(t.prototype,"tabs",{get:function(){return Array.from(this.el.querySelectorAll("ion-tab"))},enumerable:false,configurable:true});t.prototype.render=function(){return h(Host,{key:"5c76b077d508b1379a985503618dade63a9db514",onIonTabButtonClick:this.onTabClicked},h("slot",{key:"357ba85e01de10d3c0e52adcb1977bbc0dbbf587",name:"top"}),h("div",{key:"c8c59aac4e1394a1a7505f201cbf609b9b0c6ea9",class:"tabs-inner"},h("slot",{key:"00951068088580ab408f9c24ede39144b212b0d6"})),h("slot",{key:"a1118402fbd5995b07f7676f216b2efbc6052f12",name:"bottom"}))};Object.defineProperty(t.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});return t}();var getTab=function(t,e){var i=typeof e==="string"?t.find((function(t){return t.tab===e})):e;if(!i){console.error('tab with id: "'.concat(i,'" does not exist'))}return i};Tabs.style=IonTabsStyle0;export{Tab as ion_tab,Tabs as ion_tabs};