{"version":3,"sources":["../node_modules/@ionic/core/dist/esm-es5/ion-app_8.entry.js","../node_modules/@ionic/core/dist/esm-es5/theme-5641d27f.js","../node_modules/@ionic/core/dist/esm-es5/framework-delegate-d1eb6504.js"],"names":["App","hostRef","registerInstance","this","prototype","componentDidLoad","rIC","isHybrid","isPlatform","window","config","getBoolean","then","module","startTapClick","startStatusTap","needInputShims","startInputShims","startHardwareBackButton","startKeyboardAssist","startFocusVisible","render","_a","mode","getIonMode","h","Host","class","Object","defineProperty","get","getElement","enumerable","configurable","callback","requestIdleCallback","setTimeout","style","Buttons","collapse","ios","md","Content","class_1","ionScrollStart","createEvent","ionScroll","ionScrollEnd","isScrolling","lastScroll","queued","cTop","cBottom","detail","scrollTop","scrollLeft","type","event","undefined","startX","startY","startTime","currentX","currentY","velocityX","velocityY","deltaX","deltaY","currentTime","data","fullscreen","scrollX","scrollY","scrollEvents","disconnectedCallback","onScrollEnd","onAppLoad","resize","onClick","ev","preventDefault","stopPropagation","shouldForceOverscroll","forceOverscroll","_this","readTask","readDimensions","forceUpdate","page","getPageElement","el","top","Math","max","offsetTop","bottom","offsetHeight","onScroll","timeStamp","Date","now","shouldStart","onScrollStart","ts","updateScrollDetail","scrollEl","emit","getScrollElement","Promise","resolve","scrollToTop","duration","scrollToPoint","scrollToBottom","y","scrollHeight","clientHeight","scrollByPoint","x","__awaiter","promise","fromY","fromX","step","__generator","r","linearTime","min","easedT","pow","floor","requestAnimationFrame","watchDog","clearInterval","setInterval","transitionShadow","createColorClasses","color","hostContext","id","part","ref","name","tabs","closest","parentElement","parentNode","host","getParentElement","timestamp","prevX","prevY","prevT","timeDelta","Footer","translucent","role","cloneElement","tagName","getCachedEl","document","querySelector","clonedEl","createElement","classList","add","setProperty","body","appendChild","createHeaderIndex","headerEl","toolbars","querySelectorAll","Array","from","map","toolbar","ionTitleEl","background","shadowRoot","innerTitleEl","ionButtonsEl","setToolbarBackgroundOpacity","opacity","removeProperty","toString","handleToolbarIntersection","mainHeaderIndex","scrollHeaderIndex","writeTask","isIntersecting","scale","intersectionRatio","forEach","handleToolbarBorderIntersection","intersection","intersectionRect","intersectionArea","width","height","rootArea","rootBounds","isPageHidden","leftDiff","abs","left","boundingClientRect","rightDiff","right","setHeaderActive","headerIndex","active","remove","scaleLargeTitles","transition","ionTitle","titleDiv","size","transform","Header","class_2","collapsibleHeaderInitialized","label","checkCollapsibleHeader","sent","componentDidUpdate","destroyCollapsibleHeader","hasCollapse","canCollapse","pageEl","contentEl","setupCollapsibleHeader","intersectionObserver","disconnect","contentScrollCallback","removeEventListener","collapsibleMainHeader","headers","toolbarIntersection","_b","IntersectionObserver","console","error","find","header","root","threshold","observe","length","clamp","handleContentScroll","addEventListener","RouterOutlet","class_3","ionNavWillLoad","ionNavWillChange","ionNavDidChange","animationEnabled","animated","swipeHandlerChanged","gesture","enable","swipeHandler","connectedCallback","createSwipeBackGesture","canStart","onStart","ani","progressStep","shouldComplete","dur","onFinish","onEnd","oneTimeCallback","newStepValue","getTimeGivenProgression","easing","progressEnd","componentWillLoad","destroy","commit","enteringEl","leavingEl","opts","unlock","changed","e_1","lock","trys","push","setRouteId","params","direction","animation","setRoot","animationBuilder","element","activeEl","getRouteId","component","activeComponent","attachComponent","delegate","detachComponent","assign","baseEl","progressCallback","progressAnimation","p","waitPromise","ToolbarTitle","ionStyle","sizeChanged","emitStyle","getSize","Toolbar","childrenStyles","Map","buttons","firstButtons","button","slot","buttonsReversed","reverse","lastButtons","childrenStyle","target","updatedStyles","newStyles","childStyles","hasStyleChange","keys","key","childKey","newValue","set","value","selector","cssClassMap","getClassMap","classes","isArray","split","filter","c","trim","getClassList","SCHEME","openURL","url","router","test","container","cssClasses","componentProps","attachViewToDom","HTMLElement","Error","ownerDocument","componentOnReady","removeViewFromDom"],"mappings":"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","file":"static/js/7.1378861e.chunk.js","sourcesContent":["import { __awaiter, __generator } from \"tslib\";\nimport { r as registerInstance, h, H as Host, i as getElement, e as createEvent, f as readTask, j as forceUpdate, c as writeTask } from './index-92848855.js';\nimport { b as getIonMode, c as config, i as isPlatform } from './ionic-global-23e7365a.js';\nimport { c as clamp } from './helpers-5c745fbd.js';\nimport { t as transition } from './index-9b2fc761.js';\nimport { g as getTimeGivenProgression } from './cubic-bezier-685f606a.js';\nimport { c as createColorClasses, h as hostContext } from './theme-5641d27f.js';\nimport { a as attachComponent, d as detachComponent } from './framework-delegate-d1eb6504.js';\nvar appCss = \"html.plt-mobile ion-app{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ion-app.force-statusbar-padding{--ion-safe-area-top:20px}\";\nvar App = /** @class */ (function () {\n function App(hostRef) {\n registerInstance(this, hostRef);\n }\n App.prototype.componentDidLoad = function () {\n {\n rIC(function () {\n var isHybrid = isPlatform(window, 'hybrid');\n if (!config.getBoolean('_testing')) {\n import('./tap-click-252af35a.js').then(function (module) { return module.startTapClick(config); });\n }\n if (config.getBoolean('statusTap', isHybrid)) {\n import('./status-tap-0b3e89c4.js').then(function (module) { return module.startStatusTap(); });\n }\n if (config.getBoolean('inputShims', needInputShims())) {\n import('./input-shims-4f0dbb39.js').then(function (module) { return module.startInputShims(config); });\n }\n if (config.getBoolean('hardwareBackButton', isHybrid)) {\n import('./hardware-back-button-7b6ede21.js').then(function (module) { return module.startHardwareBackButton(); });\n }\n if (typeof window !== 'undefined') {\n import('./keyboard-dd970efc.js').then(function (module) { return module.startKeyboardAssist(window); });\n }\n import('./focus-visible-15ada7f7.js').then(function (module) { return module.startFocusVisible(); });\n });\n }\n };\n App.prototype.render = function () {\n var _a;\n var mode = getIonMode(this);\n return (h(Host, { class: (_a = {},\n _a[mode] = true,\n _a['ion-page'] = true,\n _a['force-statusbar-padding'] = config.getBoolean('_forceStatusbarPadding'),\n _a) }));\n };\n Object.defineProperty(App.prototype, \"el\", {\n get: function () { return getElement(this); },\n enumerable: false,\n configurable: true\n });\n return App;\n}());\nvar needInputShims = function () {\n return isPlatform(window, 'ios') && isPlatform(window, 'mobile');\n};\nvar rIC = function (callback) {\n if ('requestIdleCallback' in window) {\n window.requestIdleCallback(callback);\n }\n else {\n setTimeout(callback, 32);\n }\n};\nApp.style = appCss;\nvar buttonsIosCss = \".sc-ion-buttons-ios-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-s ion-button{--padding-start:5px;--padding-end:5px;margin-left:2px;margin-right:2px;height:32px;font-size:17px;font-weight:400}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-ios-s ion-button{margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px}}.sc-ion-buttons-ios-s ion-button:not(.button-round){--border-radius:4px}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button{--color:initial;--border-color:initial;--background-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-solid,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-solid{--background:var(--ion-color-contrast);--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12;--background-hover:var(--ion-color-base);--background-hover-opacity:0.45;--color:var(--ion-color-base);--color-focused:var(--ion-color-base)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-clear,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-clear{--color-activated:var(--ion-color-contrast);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-outline,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-outline{--color-activated:var(--ion-color-base);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-s .button-clear,.sc-ion-buttons-ios-s .button-outline{--background-activated:transparent;--background-focused:currentColor;--background-hover:transparent}.sc-ion-buttons-ios-s .button-solid:not(.ion-color){--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12}.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;margin-right:0.3em;font-size:24px;line-height:0.67}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-right:unset;-webkit-margin-end:0.3em;margin-inline-end:0.3em}}.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;margin-left:0.4em;font-size:24px;line-height:0.67}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:unset;-webkit-margin-start:0.4em;margin-inline-start:0.4em}}.sc-ion-buttons-ios-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:28px;line-height:0.67}\";\nvar buttonsMdCss = \".sc-ion-buttons-md-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;--padding-start:8px;--padding-end:8px;--box-shadow:none;margin-left:2px;margin-right:2px;height:32px;font-size:14px;font-weight:500}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-md-s ion-button{margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px}}.sc-ion-buttons-md-s ion-button:not(.button-round){--border-radius:2px}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button{--color:initial;--color-focused:var(--ion-color-contrast);--color-hover:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-contrast);--background-hover:var(--ion-color-contrast)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-solid,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-solid{--background:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-shade);--background-hover:var(--ion-color-base);--color:var(--ion-color-base);--color-focused:var(--ion-color-base);--color-hover:var(--ion-color-base)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-outline,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-outline{--border-color:var(--ion-color-contrast)}.sc-ion-buttons-md-s .button-has-icon-only.button-clear{--padding-top:12px;--padding-end:12px;--padding-bottom:12px;--padding-start:12px;--border-radius:50%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:48px;height:48px}.sc-ion-buttons-md-s .button{--background-hover:currentColor}.sc-ion-buttons-md-s .button-solid{--color:var(--ion-toolbar-background, var(--ion-background-color, #fff));--background:var(--ion-toolbar-color, var(--ion-text-color, #424242));--background-activated:transparent;--background-focused:currentColor}.sc-ion-buttons-md-s .button-outline{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--border-color:currentColor}.sc-ion-buttons-md-s .button-clear{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor}.sc-ion-buttons-md-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;margin-right:0.3em;font-size:1.4em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-md-s ion-icon[slot=start]{margin-right:unset;-webkit-margin-end:0.3em;margin-inline-end:0.3em}}.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;margin-left:0.4em;font-size:1.4em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:unset;-webkit-margin-start:0.4em;margin-inline-start:0.4em}}.sc-ion-buttons-md-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.8em}\";\nvar Buttons = /** @class */ (function () {\n function Buttons(hostRef) {\n registerInstance(this, hostRef);\n /**\n * If true, buttons will disappear when its\n * parent toolbar has fully collapsed if the toolbar\n * is not the first toolbar. If the toolbar is the\n * first toolbar, the buttons will be hidden and will\n * only be shown once all toolbars have fully collapsed.\n *\n * Only applies in `ios` mode with `collapse` set to\n * `true` on `ion-header`.\n *\n * Typically used for [Collapsible Large Titles](https://ionicframework.com/docs/api/title#collapsible-large-titles)\n */\n this.collapse = false;\n }\n Buttons.prototype.render = function () {\n var _a;\n var mode = getIonMode(this);\n return (h(Host, { class: (_a = {},\n _a[mode] = true,\n _a['buttons-collapse'] = this.collapse,\n _a) }));\n };\n return Buttons;\n}());\nButtons.style = {\n ios: buttonsIosCss,\n md: buttonsMdCss\n};\nvar contentCss = \":host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.outer-content){--background:var(--ion-color-step-50, #f2f2f2)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.inner-scroll{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;will-change:scroll-position}.scroll-y{-ms-touch-action:pan-y;touch-action:pan-y;overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{-ms-touch-action:pan-x;touch-action:pan-x;overflow-x:var(--overflow);overscroll-behavior-x:contain}.scroll-x.scroll-y{-ms-touch-action:auto;touch-action:auto}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:\\\"\\\"}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){contain:none}:host(.content-sizing) .inner-scroll{position:relative}.transition-effect{display:none;position:absolute;left:-100%;width:100%;height:100vh;opacity:0;pointer-events:none}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;right:0;width:10px;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAgCAYAAAAIXrg4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTE3MDgzRkQ5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTE3MDgzRkU5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMTcwODNGQjlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxMTcwODNGQzlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmePEuQAAABNSURBVHjaYvz//z8DIxAwMDAwATGMhmFmPDQuOSZks0AMmoJBaQHjkPfB0Lfg/2gQjVow+HPy/yHvg9GiYjQfjMbBqAWjFgy/4hogwADYqwdzxy5BuwAAAABJRU5ErkJggg==);background-repeat:repeat-y;background-size:10px 16px}::slotted([slot=fixed]){position:absolute}\";\nvar Content = /** @class */ (function () {\n function class_1(hostRef) {\n registerInstance(this, hostRef);\n this.ionScrollStart = createEvent(this, \"ionScrollStart\", 7);\n this.ionScroll = createEvent(this, \"ionScroll\", 7);\n this.ionScrollEnd = createEvent(this, \"ionScrollEnd\", 7);\n this.isScrolling = false;\n this.lastScroll = 0;\n this.queued = false;\n this.cTop = -1;\n this.cBottom = -1;\n // Detail is used in a hot loop in the scroll event, by allocating it here\n // V8 will be able to inline any read/write to it since it's a monomorphic class.\n // https://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html\n this.detail = {\n scrollTop: 0,\n scrollLeft: 0,\n type: 'scroll',\n event: undefined,\n startX: 0,\n startY: 0,\n startTime: 0,\n currentX: 0,\n currentY: 0,\n velocityX: 0,\n velocityY: 0,\n deltaX: 0,\n deltaY: 0,\n currentTime: 0,\n data: undefined,\n isScrolling: true,\n };\n /**\n * If `true`, the content will scroll behind the headers\n * and footers. This effect can easily be seen by setting the toolbar\n * to transparent.\n */\n this.fullscreen = false;\n /**\n * If you want to enable the content scrolling in the X axis, set this property to `true`.\n */\n this.scrollX = false;\n /**\n * If you want to disable the content scrolling in the Y axis, set this property to `false`.\n */\n this.scrollY = true;\n /**\n * Because of performance reasons, ionScroll events are disabled by default, in order to enable them\n * and start listening from (ionScroll), set this property to `true`.\n */\n this.scrollEvents = false;\n }\n class_1.prototype.disconnectedCallback = function () {\n this.onScrollEnd();\n };\n class_1.prototype.onAppLoad = function () {\n this.resize();\n };\n class_1.prototype.onClick = function (ev) {\n if (this.isScrolling) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n class_1.prototype.shouldForceOverscroll = function () {\n var forceOverscroll = this.forceOverscroll;\n var mode = getIonMode(this);\n return forceOverscroll === undefined\n ? mode === 'ios' && isPlatform('ios')\n : forceOverscroll;\n };\n class_1.prototype.resize = function () {\n var _this = this;\n if (this.fullscreen) {\n readTask(function () { return _this.readDimensions(); });\n }\n else if (this.cTop !== 0 || this.cBottom !== 0) {\n this.cTop = this.cBottom = 0;\n forceUpdate(this);\n }\n };\n class_1.prototype.readDimensions = function () {\n var page = getPageElement(this.el);\n var top = Math.max(this.el.offsetTop, 0);\n var bottom = Math.max(page.offsetHeight - top - this.el.offsetHeight, 0);\n var dirty = top !== this.cTop || bottom !== this.cBottom;\n if (dirty) {\n this.cTop = top;\n this.cBottom = bottom;\n forceUpdate(this);\n }\n };\n class_1.prototype.onScroll = function (ev) {\n var _this = this;\n var timeStamp = Date.now();\n var shouldStart = !this.isScrolling;\n this.lastScroll = timeStamp;\n if (shouldStart) {\n this.onScrollStart();\n }\n if (!this.queued && this.scrollEvents) {\n this.queued = true;\n readTask(function (ts) {\n _this.queued = false;\n _this.detail.event = ev;\n updateScrollDetail(_this.detail, _this.scrollEl, ts, shouldStart);\n _this.ionScroll.emit(_this.detail);\n });\n }\n };\n /**\n * Get the element where the actual scrolling takes place.\n * This element can be used to subscribe to `scroll` events or manually modify\n * `scrollTop`. However, it's recommended to use the API provided by `ion-content`:\n *\n * i.e. Using `ionScroll`, `ionScrollStart`, `ionScrollEnd` for scrolling events\n * and `scrollToPoint()` to scroll the content into a certain point.\n */\n class_1.prototype.getScrollElement = function () {\n return Promise.resolve(this.scrollEl);\n };\n /**\n * Scroll to the top of the component.\n *\n * @param duration The amount of time to take scrolling to the top. Defaults to `0`.\n */\n class_1.prototype.scrollToTop = function (duration) {\n if (duration === void 0) { duration = 0; }\n return this.scrollToPoint(undefined, 0, duration);\n };\n /**\n * Scroll to the bottom of the component.\n *\n * @param duration The amount of time to take scrolling to the bottom. Defaults to `0`.\n */\n class_1.prototype.scrollToBottom = function (duration) {\n if (duration === void 0) { duration = 0; }\n var y = this.scrollEl.scrollHeight - this.scrollEl.clientHeight;\n return this.scrollToPoint(undefined, y, duration);\n };\n /**\n * Scroll by a specified X/Y distance in the component.\n *\n * @param x The amount to scroll by on the horizontal axis.\n * @param y The amount to scroll by on the vertical axis.\n * @param duration The amount of time to take scrolling by that amount.\n */\n class_1.prototype.scrollByPoint = function (x, y, duration) {\n return this.scrollToPoint(x + this.scrollEl.scrollLeft, y + this.scrollEl.scrollTop, duration);\n };\n /**\n * Scroll to a specified X/Y location in the component.\n *\n * @param x The point to scroll to on the horizontal axis.\n * @param y The point to scroll to on the vertical axis.\n * @param duration The amount of time to take scrolling to that point. Defaults to `0`.\n */\n class_1.prototype.scrollToPoint = function (x, y, duration) {\n if (duration === void 0) { duration = 0; }\n return __awaiter(this, void 0, void 0, function () {\n var el, resolve, startTime, promise, fromY, fromX, deltaY, deltaX, step;\n return __generator(this, function (_a) {\n el = this.scrollEl;\n if (duration < 32) {\n if (y != null) {\n el.scrollTop = y;\n }\n if (x != null) {\n el.scrollLeft = x;\n }\n return [2 /*return*/];\n }\n startTime = 0;\n promise = new Promise(function (r) { return resolve = r; });\n fromY = el.scrollTop;\n fromX = el.scrollLeft;\n deltaY = y != null ? y - fromY : 0;\n deltaX = x != null ? x - fromX : 0;\n step = function (timeStamp) {\n var linearTime = Math.min(1, ((timeStamp - startTime) / duration)) - 1;\n var easedT = Math.pow(linearTime, 3) + 1;\n if (deltaY !== 0) {\n el.scrollTop = Math.floor((easedT * deltaY) + fromY);\n }\n if (deltaX !== 0) {\n el.scrollLeft = Math.floor((easedT * deltaX) + fromX);\n }\n if (easedT < 1) {\n // do not use DomController here\n // must use nativeRaf in order to fire in the next frame\n // TODO: remove as any\n requestAnimationFrame(step);\n }\n else {\n resolve();\n }\n };\n // chill out for a frame first\n requestAnimationFrame(function (ts) {\n startTime = ts;\n step(ts);\n });\n return [2 /*return*/, promise];\n });\n });\n };\n class_1.prototype.onScrollStart = function () {\n var _this = this;\n this.isScrolling = true;\n this.ionScrollStart.emit({\n isScrolling: true\n });\n if (this.watchDog) {\n clearInterval(this.watchDog);\n }\n // watchdog\n this.watchDog = setInterval(function () {\n if (_this.lastScroll < Date.now() - 120) {\n _this.onScrollEnd();\n }\n }, 100);\n };\n class_1.prototype.onScrollEnd = function () {\n clearInterval(this.watchDog);\n this.watchDog = null;\n if (this.isScrolling) {\n this.isScrolling = false;\n this.ionScrollEnd.emit({\n isScrolling: false\n });\n }\n };\n class_1.prototype.render = function () {\n var _a;\n var _this = this;\n var _b = this, scrollX = _b.scrollX, scrollY = _b.scrollY;\n var mode = getIonMode(this);\n var forceOverscroll = this.shouldForceOverscroll();\n var transitionShadow = (mode === 'ios' && config.getBoolean('experimentalTransitionShadow', true));\n this.resize();\n return (h(Host, { class: createColorClasses(this.color, (_a = {},\n _a[mode] = true,\n _a['content-sizing'] = hostContext('ion-popover', this.el),\n _a['overscroll'] = forceOverscroll,\n _a)), style: {\n '--offset-top': this.cTop + \"px\",\n '--offset-bottom': this.cBottom + \"px\",\n } }, h(\"div\", { id: \"background-content\", part: \"background\" }), h(\"main\", { class: {\n 'inner-scroll': true,\n 'scroll-x': scrollX,\n 'scroll-y': scrollY,\n 'overscroll': (scrollX || scrollY) && forceOverscroll\n }, ref: function (el) { return _this.scrollEl = el; }, onScroll: (this.scrollEvents) ? function (ev) { return _this.onScroll(ev); } : undefined, part: \"scroll\" }, h(\"slot\", null)), transitionShadow ? (h(\"div\", { class: \"transition-effect\" }, h(\"div\", { class: \"transition-cover\" }), h(\"div\", { class: \"transition-shadow\" }))) : null, h(\"slot\", { name: \"fixed\" })));\n };\n Object.defineProperty(class_1.prototype, \"el\", {\n get: function () { return getElement(this); },\n enumerable: false,\n configurable: true\n });\n return class_1;\n}());\nvar getParentElement = function (el) {\n if (el.parentElement) {\n // normal element with a parent element\n return el.parentElement;\n }\n if (el.parentNode && el.parentNode.host) {\n // shadow dom's document fragment\n return el.parentNode.host;\n }\n return null;\n};\nvar getPageElement = function (el) {\n var tabs = el.closest('ion-tabs');\n if (tabs) {\n return tabs;\n }\n var page = el.closest('ion-app,ion-page,.ion-page,page-inner');\n if (page) {\n return page;\n }\n return getParentElement(el);\n};\n// ******** DOM READ ****************\nvar updateScrollDetail = function (detail, el, timestamp, shouldStart) {\n var prevX = detail.currentX;\n var prevY = detail.currentY;\n var prevT = detail.currentTime;\n var currentX = el.scrollLeft;\n var currentY = el.scrollTop;\n var timeDelta = timestamp - prevT;\n if (shouldStart) {\n // remember the start positions\n detail.startTime = timestamp;\n detail.startX = currentX;\n detail.startY = currentY;\n detail.velocityX = detail.velocityY = 0;\n }\n detail.currentTime = timestamp;\n detail.currentX = detail.scrollLeft = currentX;\n detail.currentY = detail.scrollTop = currentY;\n detail.deltaX = currentX - detail.startX;\n detail.deltaY = currentY - detail.startY;\n if (timeDelta > 0 && timeDelta < 100) {\n var velocityX = (currentX - prevX) / timeDelta;\n var velocityY = (currentY - prevY) / timeDelta;\n detail.velocityX = velocityX * 0.7 + detail.velocityX * 0.3;\n detail.velocityY = velocityY * 0.7 + detail.velocityY * 0.3;\n }\n};\nContent.style = contentCss;\nvar footerIosCss = \"ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-ios ion-toolbar:first-of-type{--border-width:0.55px 0 0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.footer-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.footer-translucent-ios ion-toolbar{--opacity:.8}}.footer-ios.ion-no-border ion-toolbar:first-of-type{--border-width:0}\";\nvar footerMdCss = \"ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-md::before{left:0;top:-2px;bottom:auto;background-position:left 0 top 0;position:absolute;width:100%;height:2px;background-image:url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAHBAMAAADzDtBxAAAAD1BMVEUAAAAAAAAAAAAAAAAAAABPDueNAAAABXRSTlMUCS0gBIh/TXEAAAAaSURBVAjXYxCEAgY4UIICBmMogMsgFLtAAQCNSwXZKOdPxgAAAABJRU5ErkJggg==\\\");background-repeat:repeat-x;content:\\\"\\\"}[dir=rtl] .footer-md::before,:host-context([dir=rtl]) .footer-md::before{left:unset;right:unset;right:0}[dir=rtl] .footer-md::before,:host-context([dir=rtl]) .footer-md::before{background-position:right 0 top 0}.footer-md.ion-no-border::before{display:none}\";\nvar Footer = /** @class */ (function () {\n function Footer(hostRef) {\n registerInstance(this, hostRef);\n /**\n * If `true`, the footer will be translucent.\n * Only applies when the mode is `\"ios\"` and the device supports\n * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n *\n * Note: In order to scroll content behind the footer, the `fullscreen`\n * attribute needs to be set on the content.\n */\n this.translucent = false;\n }\n Footer.prototype.render = function () {\n var _a;\n var mode = getIonMode(this);\n var translucent = this.translucent;\n return (h(Host, { role: \"contentinfo\", class: (_a = {},\n _a[mode] = true,\n // Used internally for styling\n _a[\"footer-\" + mode] = true,\n _a[\"footer-translucent\"] = translucent,\n _a[\"footer-translucent-\" + mode] = translucent,\n _a) }, mode === 'ios' && translucent &&\n h(\"div\", { class: \"footer-background\" }), h(\"slot\", null)));\n };\n return Footer;\n}());\nFooter.style = {\n ios: footerIosCss,\n md: footerMdCss\n};\nvar TRANSITION = 'all 0.2s ease-in-out';\nvar cloneElement = function (tagName) {\n var getCachedEl = document.querySelector(tagName + \".ion-cloned-element\");\n if (getCachedEl !== null) {\n return getCachedEl;\n }\n var clonedEl = document.createElement(tagName);\n clonedEl.classList.add('ion-cloned-element');\n clonedEl.style.setProperty('display', 'none');\n document.body.appendChild(clonedEl);\n return clonedEl;\n};\nvar createHeaderIndex = function (headerEl) {\n if (!headerEl) {\n return;\n }\n var toolbars = headerEl.querySelectorAll('ion-toolbar');\n return {\n el: headerEl,\n toolbars: Array.from(toolbars).map(function (toolbar) {\n var ionTitleEl = toolbar.querySelector('ion-title');\n return {\n el: toolbar,\n background: toolbar.shadowRoot.querySelector('.toolbar-background'),\n ionTitleEl: ionTitleEl,\n innerTitleEl: (ionTitleEl) ? ionTitleEl.shadowRoot.querySelector('.toolbar-title') : null,\n ionButtonsEl: Array.from(toolbar.querySelectorAll('ion-buttons')) || []\n };\n }) || []\n };\n};\nvar handleContentScroll = function (scrollEl, scrollHeaderIndex, contentEl) {\n readTask(function () {\n var scrollTop = scrollEl.scrollTop;\n var scale = clamp(1, 1 + (-scrollTop / 500), 1.1);\n // Native refresher should not cause titles to scale\n var nativeRefresher = contentEl.querySelector('ion-refresher.refresher-native');\n if (nativeRefresher === null) {\n writeTask(function () {\n scaleLargeTitles(scrollHeaderIndex.toolbars, scale);\n });\n }\n });\n};\nvar setToolbarBackgroundOpacity = function (toolbar, opacity) {\n if (opacity === undefined) {\n toolbar.background.style.removeProperty('--opacity');\n }\n else {\n toolbar.background.style.setProperty('--opacity', opacity.toString());\n }\n};\nvar handleToolbarBorderIntersection = function (ev, mainHeaderIndex) {\n if (!ev[0].isIntersecting) {\n return;\n }\n /**\n * There is a bug in Safari where overflow scrolling on a non-body element\n * does not always reset the scrollTop position to 0 when letting go. It will\n * set to 1 once the rubber band effect has ended. This causes the background to\n * appear slightly on certain app setups.\n */\n var scale = (ev[0].intersectionRatio > 0.9) ? 0 : ((1 - ev[0].intersectionRatio) * 100) / 75;\n mainHeaderIndex.toolbars.forEach(function (toolbar) {\n setToolbarBackgroundOpacity(toolbar, (scale === 1) ? undefined : scale);\n });\n};\n/**\n * If toolbars are intersecting, hide the scrollable toolbar content\n * and show the primary toolbar content. If the toolbars are not intersecting,\n * hide the primary toolbar content and show the scrollable toolbar content\n */\nvar handleToolbarIntersection = function (ev, mainHeaderIndex, scrollHeaderIndex) {\n writeTask(function () {\n handleToolbarBorderIntersection(ev, mainHeaderIndex);\n var event = ev[0];\n var intersection = event.intersectionRect;\n var intersectionArea = intersection.width * intersection.height;\n var rootArea = event.rootBounds.width * event.rootBounds.height;\n var isPageHidden = intersectionArea === 0 && rootArea === 0;\n var leftDiff = Math.abs(intersection.left - event.boundingClientRect.left);\n var rightDiff = Math.abs(intersection.right - event.boundingClientRect.right);\n var isPageTransitioning = intersectionArea > 0 && (leftDiff >= 5 || rightDiff >= 5);\n if (isPageHidden || isPageTransitioning) {\n return;\n }\n if (event.isIntersecting) {\n setHeaderActive(mainHeaderIndex, false);\n setHeaderActive(scrollHeaderIndex);\n }\n else {\n /**\n * There is a bug with IntersectionObserver on Safari\n * where `event.isIntersecting === false` when cancelling\n * a swipe to go back gesture. Checking the intersection\n * x, y, width, and height provides a workaround. This bug\n * does not happen when using Safari + Web Animations,\n * only Safari + CSS Animations.\n */\n var hasValidIntersection = (intersection.x === 0 && intersection.y === 0) || (intersection.width !== 0 && intersection.height !== 0);\n if (hasValidIntersection) {\n setHeaderActive(mainHeaderIndex);\n setHeaderActive(scrollHeaderIndex, false);\n setToolbarBackgroundOpacity(mainHeaderIndex.toolbars[0]);\n }\n }\n });\n};\nvar setHeaderActive = function (headerIndex, active) {\n if (active === void 0) { active = true; }\n if (active) {\n headerIndex.el.classList.remove('header-collapse-condense-inactive');\n }\n else {\n headerIndex.el.classList.add('header-collapse-condense-inactive');\n }\n};\nvar scaleLargeTitles = function (toolbars, scale, transition) {\n if (toolbars === void 0) { toolbars = []; }\n if (scale === void 0) { scale = 1; }\n if (transition === void 0) { transition = false; }\n toolbars.forEach(function (toolbar) {\n var ionTitle = toolbar.ionTitleEl;\n var titleDiv = toolbar.innerTitleEl;\n if (!ionTitle || ionTitle.size !== 'large') {\n return;\n }\n titleDiv.style.transition = (transition) ? TRANSITION : '';\n titleDiv.style.transform = \"scale3d(\" + scale + \", \" + scale + \", 1)\";\n });\n};\nvar headerIosCss = \"ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:.8}.header-collapse-condense-inactive .header-background{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:7px;z-index:1}.header-collapse-condense ion-toolbar{--background:var(--ion-background-color, #fff);z-index:0}.header-collapse-condense ion-toolbar ion-searchbar{height:48px;padding-top:0px;padding-bottom:13px}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}\";\nvar headerMdCss = \"ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-md::after{left:0;bottom:-5px;background-position:left 0 top -2px;position:absolute;width:100%;height:5px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAHBAMAAADzDtBxAAAAD1BMVEUAAAAAAAAAAAAAAAAAAABPDueNAAAABXRSTlMUCS0gBIh/TXEAAAAaSURBVAjXYxCEAgY4UIICBmMogMsgFLtAAQCNSwXZKOdPxgAAAABJRU5ErkJggg==);background-repeat:repeat-x;content:\\\"\\\"}[dir=rtl] .header-md::after,:host-context([dir=rtl]) .header-md::after{left:unset;right:unset;right:0}[dir=rtl] .header-md::after,:host-context([dir=rtl]) .header-md::after{background-position:right 0 top -2px}.header-collapse-condense{display:none}.header-md.ion-no-border::after{display:none}\";\nvar Header = /** @class */ (function () {\n function class_2(hostRef) {\n registerInstance(this, hostRef);\n this.collapsibleHeaderInitialized = false;\n /**\n * If `true`, the header will be translucent.\n * Only applies when the mode is `\"ios\"` and the device supports\n * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n *\n * Note: In order to scroll content behind the header, the `fullscreen`\n * attribute needs to be set on the content.\n */\n this.translucent = false;\n }\n class_2.prototype.componentDidLoad = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.checkCollapsibleHeader()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n class_2.prototype.componentDidUpdate = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.checkCollapsibleHeader()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n class_2.prototype.disconnectedCallback = function () {\n this.destroyCollapsibleHeader();\n };\n class_2.prototype.checkCollapsibleHeader = function () {\n return __awaiter(this, void 0, void 0, function () {\n var hasCollapse, canCollapse, pageEl, contentEl;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n hasCollapse = this.collapse === 'condense';\n canCollapse = (hasCollapse && getIonMode(this) === 'ios') ? hasCollapse : false;\n if (!(!canCollapse && this.collapsibleHeaderInitialized)) return [3 /*break*/, 1];\n this.destroyCollapsibleHeader();\n return [3 /*break*/, 3];\n case 1:\n if (!(canCollapse && !this.collapsibleHeaderInitialized)) return [3 /*break*/, 3];\n pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');\n contentEl = (pageEl) ? pageEl.querySelector('ion-content') : null;\n // Cloned elements are always needed in iOS transition\n writeTask(function () {\n var title = cloneElement('ion-title');\n title.size = 'large';\n cloneElement('ion-back-button');\n });\n return [4 /*yield*/, this.setupCollapsibleHeader(contentEl, pageEl)];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n class_2.prototype.destroyCollapsibleHeader = function () {\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect();\n this.intersectionObserver = undefined;\n }\n if (this.scrollEl && this.contentScrollCallback) {\n this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);\n this.contentScrollCallback = undefined;\n }\n if (this.collapsibleMainHeader) {\n this.collapsibleMainHeader.classList.remove('header-collapse-main');\n this.collapsibleMainHeader = undefined;\n }\n };\n class_2.prototype.setupCollapsibleHeader = function (contentEl, pageEl) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, headers, mainHeaderIndex, scrollHeaderIndex, toolbarIntersection;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!contentEl || !pageEl) {\n console.error('ion-header requires a content to collapse, make sure there is an ion-content.');\n return [2 /*return*/];\n }\n if (typeof IntersectionObserver === 'undefined') {\n return [2 /*return*/];\n }\n _a = this;\n return [4 /*yield*/, contentEl.getScrollElement()];\n case 1:\n _a.scrollEl = _b.sent();\n headers = pageEl.querySelectorAll('ion-header');\n this.collapsibleMainHeader = Array.from(headers).find(function (header) { return header.collapse !== 'condense'; });\n if (!this.collapsibleMainHeader) {\n return [2 /*return*/];\n }\n mainHeaderIndex = createHeaderIndex(this.collapsibleMainHeader);\n scrollHeaderIndex = createHeaderIndex(this.el);\n if (!mainHeaderIndex || !scrollHeaderIndex) {\n return [2 /*return*/];\n }\n setHeaderActive(mainHeaderIndex, false);\n mainHeaderIndex.toolbars.forEach(function (toolbar) {\n setToolbarBackgroundOpacity(toolbar, 0);\n });\n toolbarIntersection = function (ev) { handleToolbarIntersection(ev, mainHeaderIndex, scrollHeaderIndex); };\n this.intersectionObserver = new IntersectionObserver(toolbarIntersection, { root: contentEl, threshold: [0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] });\n this.intersectionObserver.observe(scrollHeaderIndex.toolbars[scrollHeaderIndex.toolbars.length - 1].el);\n /**\n * Handle scaling of large iOS titles and\n * showing/hiding border on last toolbar\n * in primary header\n */\n this.contentScrollCallback = function () { handleContentScroll(_this.scrollEl, scrollHeaderIndex, contentEl); };\n this.scrollEl.addEventListener('scroll', this.contentScrollCallback);\n writeTask(function () {\n if (_this.collapsibleMainHeader !== undefined) {\n _this.collapsibleMainHeader.classList.add('header-collapse-main');\n }\n });\n this.collapsibleHeaderInitialized = true;\n return [2 /*return*/];\n }\n });\n });\n };\n class_2.prototype.render = function () {\n var _a;\n var translucent = this.translucent;\n var mode = getIonMode(this);\n var collapse = this.collapse || 'none';\n return (h(Host, { role: \"banner\", class: (_a = {},\n _a[mode] = true,\n // Used internally for styling\n _a[\"header-\" + mode] = true,\n _a[\"header-translucent\"] = this.translucent,\n _a[\"header-collapse-\" + collapse] = true,\n _a[\"header-translucent-\" + mode] = this.translucent,\n _a) }, mode === 'ios' && translucent &&\n h(\"div\", { class: \"header-background\" }), h(\"slot\", null)));\n };\n Object.defineProperty(class_2.prototype, \"el\", {\n get: function () { return getElement(this); },\n enumerable: false,\n configurable: true\n });\n return class_2;\n}());\nHeader.style = {\n ios: headerIosCss,\n md: headerMdCss\n};\nvar routeOutletCss = \":host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;overflow:hidden;z-index:0}\";\nvar RouterOutlet = /** @class */ (function () {\n function class_3(hostRef) {\n registerInstance(this, hostRef);\n this.ionNavWillLoad = createEvent(this, \"ionNavWillLoad\", 7);\n this.ionNavWillChange = createEvent(this, \"ionNavWillChange\", 3);\n this.ionNavDidChange = createEvent(this, \"ionNavDidChange\", 3);\n this.animationEnabled = true;\n /**\n * The mode determines which platform styles to use.\n */\n this.mode = getIonMode(this);\n /**\n * If `true`, the router-outlet should animate the transition of components.\n */\n this.animated = true;\n }\n class_3.prototype.swipeHandlerChanged = function () {\n if (this.gesture) {\n this.gesture.enable(this.swipeHandler !== undefined);\n }\n };\n class_3.prototype.connectedCallback = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this;\n return [4 /*yield*/, import('./swipe-back-0a6a44c8.js')];\n case 1:\n _a.gesture = (_b.sent()).createSwipeBackGesture(this.el, function () { return !!_this.swipeHandler && _this.swipeHandler.canStart() && _this.animationEnabled; }, function () { return _this.swipeHandler && _this.swipeHandler.onStart(); }, function (step) { return _this.ani && _this.ani.progressStep(step); }, function (shouldComplete, step, dur) {\n if (_this.ani) {\n _this.animationEnabled = false;\n _this.ani.onFinish(function () {\n _this.animationEnabled = true;\n if (_this.swipeHandler) {\n _this.swipeHandler.onEnd(shouldComplete);\n }\n }, { oneTimeCallback: true });\n // Account for rounding errors in JS\n var newStepValue = (shouldComplete) ? -0.001 : 0.001;\n /**\n * Animation will be reversed here, so need to\n * reverse the easing curve as well\n *\n * Additionally, we need to account for the time relative\n * to the new easing curve, as `stepValue` is going to be given\n * in terms of a linear curve.\n */\n if (!shouldComplete) {\n _this.ani.easing('cubic-bezier(1, 0, 0.68, 0.28)');\n newStepValue += getTimeGivenProgression([0, 0], [1, 0], [0.68, 0.28], [1, 1], step)[0];\n }\n else {\n newStepValue += getTimeGivenProgression([0, 0], [0.32, 0.72], [0, 1], [1, 1], step)[0];\n }\n _this.ani.progressEnd(shouldComplete ? 1 : 0, newStepValue, dur);\n }\n });\n this.swipeHandlerChanged();\n return [2 /*return*/];\n }\n });\n });\n };\n class_3.prototype.componentWillLoad = function () {\n this.ionNavWillLoad.emit();\n };\n class_3.prototype.disconnectedCallback = function () {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n };\n /** @internal */\n class_3.prototype.commit = function (enteringEl, leavingEl, opts) {\n return __awaiter(this, void 0, void 0, function () {\n var unlock, changed, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.lock()];\n case 1:\n unlock = _a.sent();\n changed = false;\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, this.transition(enteringEl, leavingEl, opts)];\n case 3:\n changed = _a.sent();\n return [3 /*break*/, 5];\n case 4:\n e_1 = _a.sent();\n console.error(e_1);\n return [3 /*break*/, 5];\n case 5:\n unlock();\n return [2 /*return*/, changed];\n }\n });\n });\n };\n /** @internal */\n class_3.prototype.setRouteId = function (id, params, direction, animation) {\n return __awaiter(this, void 0, void 0, function () {\n var changed;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.setRoot(id, params, {\n duration: direction === 'root' ? 0 : undefined,\n direction: direction === 'back' ? 'back' : 'forward',\n animationBuilder: animation\n })];\n case 1:\n changed = _a.sent();\n return [2 /*return*/, {\n changed: changed,\n element: this.activeEl\n }];\n }\n });\n });\n };\n /** @internal */\n class_3.prototype.getRouteId = function () {\n return __awaiter(this, void 0, void 0, function () {\n var active;\n return __generator(this, function (_a) {\n active = this.activeEl;\n return [2 /*return*/, active ? {\n id: active.tagName,\n element: active,\n } : undefined];\n });\n });\n };\n class_3.prototype.setRoot = function (component, params, opts) {\n return __awaiter(this, void 0, void 0, function () {\n var leavingEl, enteringEl;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.activeComponent === component) {\n return [2 /*return*/, false];\n }\n leavingEl = this.activeEl;\n return [4 /*yield*/, attachComponent(this.delegate, this.el, component, ['ion-page', 'ion-page-invisible'], params)];\n case 1:\n enteringEl = _a.sent();\n this.activeComponent = component;\n this.activeEl = enteringEl;\n // commit animation\n return [4 /*yield*/, this.commit(enteringEl, leavingEl, opts)];\n case 2:\n // commit animation\n _a.sent();\n return [4 /*yield*/, detachComponent(this.delegate, leavingEl)];\n case 3:\n _a.sent();\n return [2 /*return*/, true];\n }\n });\n });\n };\n class_3.prototype.transition = function (enteringEl, leavingEl, opts) {\n if (opts === void 0) { opts = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _a, el, mode, animated, animationBuilder;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (leavingEl === enteringEl) {\n return [2 /*return*/, false];\n }\n // emit nav will change event\n this.ionNavWillChange.emit();\n _a = this, el = _a.el, mode = _a.mode;\n animated = this.animated && config.getBoolean('animated', true);\n animationBuilder = this.animation || opts.animationBuilder || config.get('navAnimation');\n return [4 /*yield*/, transition(Object.assign(Object.assign({ mode: mode,\n animated: animated,\n enteringEl: enteringEl,\n leavingEl: leavingEl, baseEl: el, progressCallback: (opts.progressAnimation\n ? function (ani) { return _this.ani = ani; }\n : undefined) }, opts), { animationBuilder: animationBuilder }))];\n case 1:\n _b.sent();\n // emit nav changed event\n this.ionNavDidChange.emit();\n return [2 /*return*/, true];\n }\n });\n });\n };\n class_3.prototype.lock = function () {\n return __awaiter(this, void 0, void 0, function () {\n var p, resolve;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n p = this.waitPromise;\n this.waitPromise = new Promise(function (r) { return resolve = r; });\n if (!(p !== undefined)) return [3 /*break*/, 2];\n return [4 /*yield*/, p];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/, resolve];\n }\n });\n });\n };\n class_3.prototype.render = function () {\n return (h(\"slot\", null));\n };\n Object.defineProperty(class_3.prototype, \"el\", {\n get: function () { return getElement(this); },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(class_3, \"watchers\", {\n get: function () {\n return {\n \"swipeHandler\": [\"swipeHandlerChanged\"]\n };\n },\n enumerable: false,\n configurable: true\n });\n return class_3;\n}());\nRouterOutlet.style = routeOutletCss;\nvar titleIosCss = \":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{left:0;top:0;padding-left:90px;padding-right:90px;padding-top:0;padding-bottom:0;position:absolute;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);font-size:17px;font-weight:600;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host-context([dir=rtl]){left:unset;right:unset;right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px}}:host(.title-small){padding-left:9px;padding-right:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:13px;font-weight:normal}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.title-small){padding-left:unset;padding-right:unset;-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px}}:host(.title-large){padding-left:16px;padding-right:16px;padding-top:0;padding-bottom:0;-webkit-transform-origin:left center;transform-origin:left center;bottom:0;-ms-flex-align:end;align-items:flex-end;min-width:100%;padding-bottom:6px;font-size:34px;font-weight:700;text-align:start}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.title-large){padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host-context([dir=rtl]):host(.title-large),:host-context([dir=rtl]).title-large{-webkit-transform-origin:right center;transform-origin:right center}:host(.title-large.ion-cloned-element){--color:var(--ion-text-color, #000)}:host(.title-large) .toolbar-title{-webkit-transform-origin:inherit;transform-origin:inherit}:host-context([dir=rtl]):host(.title-large) .toolbar-title,:host-context([dir=rtl]).title-large .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}\";\nvar titleMdCss = \":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{padding-left:20px;padding-right:20px;padding-top:0;padding-bottom:0;font-size:20px;font-weight:500;letter-spacing:0.0125em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px}}:host(.title-small){width:100%;height:100%;font-size:15px;font-weight:normal}\";\nvar ToolbarTitle = /** @class */ (function () {\n function ToolbarTitle(hostRef) {\n registerInstance(this, hostRef);\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n }\n ToolbarTitle.prototype.sizeChanged = function () {\n this.emitStyle();\n };\n ToolbarTitle.prototype.connectedCallback = function () {\n this.emitStyle();\n };\n ToolbarTitle.prototype.emitStyle = function () {\n var _a;\n var size = this.getSize();\n this.ionStyle.emit((_a = {},\n _a[\"title-\" + size] = true,\n _a));\n };\n ToolbarTitle.prototype.getSize = function () {\n return (this.size !== undefined) ? this.size : 'default';\n };\n ToolbarTitle.prototype.render = function () {\n var _a;\n var mode = getIonMode(this);\n var size = this.getSize();\n return (h(Host, { class: createColorClasses(this.color, (_a = {},\n _a[mode] = true,\n _a[\"title-\" + size] = true,\n _a)) }, h(\"div\", { class: \"toolbar-title\" }, h(\"slot\", null))));\n };\n Object.defineProperty(ToolbarTitle.prototype, \"el\", {\n get: function () { return getElement(this); },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ToolbarTitle, \"watchers\", {\n get: function () {\n return {\n \"size\": [\"sizeChanged\"]\n };\n },\n enumerable: false,\n configurable: true\n });\n return ToolbarTitle;\n}());\nToolbarTitle.style = {\n ios: titleIosCss,\n md: titleMdCss\n};\nvar toolbarIosCss = \":host{--border-width:0;--border-style:solid;--opacity:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;padding-left:var(--ion-safe-area-left);padding-right:var(--ion-safe-area-right);display:block;position:relative;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-safe-area-left);padding-inline-start:var(--ion-safe-area-left);-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right)}}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toolbar-container{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:var(--opacity);z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-color-step-50, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #000));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.2))));--padding-top:3px;--padding-bottom:3px;--padding-start:4px;--padding-end:4px;--min-height:44px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:4;order:4;min-width:0}:host(.toolbar-segment) .toolbar-content{display:-ms-inline-flexbox;display:inline-flex}:host(.toolbar-searchbar) .toolbar-container{padding-top:0;padding-bottom:0}:host(.toolbar-searchbar) ::slotted(*){-ms-flex-item-align:start;align-self:start}:host(.toolbar-searchbar) ::slotted(ion-chip){margin-top:3px}:host(.toolbar-searchbar) ::slotted(ion-back-button){height:38px}::slotted(ion-buttons){min-height:38px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:3;order:3}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}:host(.toolbar-title-large) .toolbar-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}:host(.toolbar-title-large) .toolbar-content ion-title{-ms-flex:1;flex:1;-ms-flex-order:8;order:8;min-width:100%}\";\nvar toolbarMdCss = \":host{--border-width:0;--border-style:solid;--opacity:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;padding-left:var(--ion-safe-area-left);padding-right:var(--ion-safe-area-right);display:block;position:relative;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-safe-area-left);padding-inline-start:var(--ion-safe-area-left);-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right)}}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toolbar-container{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:var(--opacity);z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-background-color, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #424242));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, #c1c4cd)));--padding-top:0;--padding-bottom:0;--padding-start:0;--padding-end:0;--min-height:56px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:3;order:3;min-width:0;max-width:100%}::slotted(ion-segment){min-height:var(--min-height)}::slotted(.buttons-first-slot){margin-left:4px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(.buttons-first-slot){margin-left:unset;-webkit-margin-start:4px;margin-inline-start:4px}}::slotted(.buttons-last-slot){margin-right:4px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(.buttons-last-slot){margin-right:unset;-webkit-margin-end:4px;margin-inline-end:4px}}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:4;order:4}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}\";\nvar Toolbar = /** @class */ (function () {\n function Toolbar(hostRef) {\n registerInstance(this, hostRef);\n this.childrenStyles = new Map();\n }\n Toolbar.prototype.componentWillLoad = function () {\n var buttons = Array.from(this.el.querySelectorAll('ion-buttons'));\n var firstButtons = buttons.find(function (button) {\n return button.slot === 'start';\n });\n if (firstButtons) {\n firstButtons.classList.add('buttons-first-slot');\n }\n var buttonsReversed = buttons.reverse();\n var lastButtons = buttonsReversed.find(function (button) { return button.slot === 'end'; }) ||\n buttonsReversed.find(function (button) { return button.slot === 'primary'; }) ||\n buttonsReversed.find(function (button) { return button.slot === 'secondary'; });\n if (lastButtons) {\n lastButtons.classList.add('buttons-last-slot');\n }\n };\n Toolbar.prototype.childrenStyle = function (ev) {\n ev.stopPropagation();\n var tagName = ev.target.tagName;\n var updatedStyles = ev.detail;\n var newStyles = {};\n var childStyles = this.childrenStyles.get(tagName) || {};\n var hasStyleChange = false;\n Object.keys(updatedStyles).forEach(function (key) {\n var childKey = \"toolbar-\" + key;\n var newValue = updatedStyles[key];\n if (newValue !== childStyles[childKey]) {\n hasStyleChange = true;\n }\n if (newValue) {\n newStyles[childKey] = true;\n }\n });\n if (hasStyleChange) {\n this.childrenStyles.set(tagName, newStyles);\n forceUpdate(this);\n }\n };\n Toolbar.prototype.render = function () {\n var _a;\n var mode = getIonMode(this);\n var childStyles = {};\n this.childrenStyles.forEach(function (value) {\n Object.assign(childStyles, value);\n });\n return (h(Host, { class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, (_a = {},\n _a[mode] = true,\n _a['in-toolbar'] = hostContext('ion-toolbar', this.el),\n _a))) }, h(\"div\", { class: \"toolbar-background\" }), h(\"div\", { class: \"toolbar-container\" }, h(\"slot\", { name: \"start\" }), h(\"slot\", { name: \"secondary\" }), h(\"div\", { class: \"toolbar-content\" }, h(\"slot\", null)), h(\"slot\", { name: \"primary\" }), h(\"slot\", { name: \"end\" }))));\n };\n Object.defineProperty(Toolbar.prototype, \"el\", {\n get: function () { return getElement(this); },\n enumerable: false,\n configurable: true\n });\n return Toolbar;\n}());\nToolbar.style = {\n ios: toolbarIosCss,\n md: toolbarMdCss\n};\nexport { App as ion_app, Buttons as ion_buttons, Content as ion_content, Footer as ion_footer, Header as ion_header, RouterOutlet as ion_router_outlet, ToolbarTitle as ion_title, Toolbar as ion_toolbar };\n","import { __awaiter, __generator } from \"tslib\";\nvar hostContext = function (selector, el) {\n return el.closest(selector) !== null;\n};\n/**\n * Create the mode and color classes for the component based on the classes passed in\n */\nvar createColorClasses = function (color, cssClassMap) {\n var _a;\n return (typeof color === 'string' && color.length > 0) ? Object.assign((_a = { 'ion-color': true }, _a[\"ion-color-\" + color] = true, _a), cssClassMap) : cssClassMap;\n};\nvar getClassList = function (classes) {\n if (classes !== undefined) {\n var array = Array.isArray(classes) ? classes : classes.split(' ');\n return array\n .filter(function (c) { return c != null; })\n .map(function (c) { return c.trim(); })\n .filter(function (c) { return c !== ''; });\n }\n return [];\n};\nvar getClassMap = function (classes) {\n var map = {};\n getClassList(classes).forEach(function (c) { return map[c] = true; });\n return map;\n};\nvar SCHEME = /^[a-z][a-z0-9+\\-.]*:/;\nvar openURL = function (url, ev, direction, animation) { return __awaiter(void 0, void 0, void 0, function () {\n var router;\n return __generator(this, function (_a) {\n if (url != null && url[0] !== '#' && !SCHEME.test(url)) {\n router = document.querySelector('ion-router');\n if (router) {\n if (ev != null) {\n ev.preventDefault();\n }\n return [2 /*return*/, router.push(url, direction, animation)];\n }\n }\n return [2 /*return*/, false];\n });\n}); };\nexport { createColorClasses as c, getClassMap as g, hostContext as h, openURL as o };\n","import { __awaiter, __generator } from \"tslib\";\nvar attachComponent = function (delegate, container, component, cssClasses, componentProps) { return __awaiter(void 0, void 0, void 0, function () {\n var el;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (delegate) {\n return [2 /*return*/, delegate.attachViewToDom(container, component, componentProps, cssClasses)];\n }\n if (typeof component !== 'string' && !(component instanceof HTMLElement)) {\n throw new Error('framework delegate is missing');\n }\n el = (typeof component === 'string')\n ? container.ownerDocument && container.ownerDocument.createElement(component)\n : component;\n if (cssClasses) {\n cssClasses.forEach(function (c) { return el.classList.add(c); });\n }\n if (componentProps) {\n Object.assign(el, componentProps);\n }\n container.appendChild(el);\n if (!el.componentOnReady) return [3 /*break*/, 2];\n return [4 /*yield*/, el.componentOnReady()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/, el];\n }\n });\n}); };\nvar detachComponent = function (delegate, element) {\n if (element) {\n if (delegate) {\n var container = element.parentElement;\n return delegate.removeViewFromDom(container, element);\n }\n element.remove();\n }\n return Promise.resolve();\n};\nexport { attachComponent as a, detachComponent as d };\n"],"sourceRoot":""}