{"version":3,"file":"node_modules_ionic_core_dist_esm_ion-app_8_entry_js.js","mappings":"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","sources":["./node_modules/@ionic/core/dist/esm/index-c4b11676.js","./node_modules/@ionic/core/dist/esm/ion-app_8.entry.js","./node_modules/@ionic/core/dist/esm/theme-7670341c.js"],"sourcesContent":["/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n/**\n * Logs a warning to the console with an Ionic prefix\n * to indicate the library that is warning the developer.\n *\n * @param message - The string message to be logged to the console.\n */\nconst printIonWarning = (message, ...params) => {\n return console.warn(`[Ionic Warning]: ${message}`, ...params);\n};\n/*\n * Logs an error to the console with an Ionic prefix\n * to indicate the library that is warning the developer.\n *\n * @param message - The string message to be logged to the console.\n * @param params - Additional arguments to supply to the console.error.\n */\nconst printIonError = (message, ...params) => {\n return console.error(`[Ionic Error]: ${message}`, ...params);\n};\n/**\n * Prints an error informing developers that an implementation requires an element to be used\n * within a specific selector.\n *\n * @param el The web component element this is requiring the element.\n * @param targetSelectors The selector or selectors that were not found.\n */\nconst printRequiredElementError = (el, ...targetSelectors) => {\n return console.error(`<${el.tagName.toLowerCase()}> must be used inside ${targetSelectors.join(' or ')}.`);\n};\n\nexport { printRequiredElementError as a, printIonError as b, printIonWarning as p };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\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-8e692445.js';\nimport { b as getIonMode, c as config, a as isPlatform } from './ionic-global-c95cf239.js';\nimport { c as componentOnReady, l as clamp, i as inheritAriaAttributes, s as shallowEqualStringMap } from './helpers-2914b3be.js';\nimport { i as isRTL } from './dir-e8b767a8.js';\nimport { c as createColorClasses, h as hostContext } from './theme-7670341c.js';\nimport { a as findIonContent, p as printIonContentErrorMsg, g as getScrollElement } from './index-fe2c1c1f.js';\nimport { c as createKeyboardController } from './keyboard-controller-73af62b2.js';\nimport { g as getTimeGivenProgression } from './cubic-bezier-c313947a.js';\nimport { a as attachComponent, d as detachComponent } from './framework-delegate-82cc7646.js';\nimport { t as transition } from './index-fbafcf43.js';\nimport './index-c4b11676.js';\nimport './index-33ffec25.js';\n\nconst appCss = \"html.plt-mobile ion-app{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.plt-mobile ion-app [contenteditable]{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}ion-app.force-statusbar-padding{--ion-safe-area-top:20px}\";\n\nconst App = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n }\n componentDidLoad() {\n {\n rIC(async () => {\n const isHybrid = isPlatform(window, 'hybrid');\n if (!config.getBoolean('_testing')) {\n import('./index-dbdac533.js').then((module) => module.startTapClick(config));\n }\n if (config.getBoolean('statusTap', isHybrid)) {\n import('./status-tap-2f3f665e.js').then((module) => module.startStatusTap());\n }\n if (config.getBoolean('inputShims', needInputShims())) {\n import('./input-shims-b3771013.js').then((module) => module.startInputShims(config));\n }\n const hardwareBackButtonModule = await import('./hardware-back-button-490df115.js');\n if (config.getBoolean('hardwareBackButton', isHybrid)) {\n hardwareBackButtonModule.startHardwareBackButton();\n }\n else {\n hardwareBackButtonModule.blockHardwareBackButton();\n }\n if (typeof window !== 'undefined') {\n import('./keyboard-4d5544a0.js').then((module) => module.startKeyboardAssist(window));\n }\n import('./focus-visible-096cf6fd.js').then((module) => (this.focusVisible = module.startFocusVisible()));\n });\n }\n }\n /**\n * @internal\n * Used to set focus on an element that uses `ion-focusable`.\n * Do not use this if focusing the element as a result of a keyboard\n * event as the focus utility should handle this for us. This method\n * should be used when we want to programmatically focus an element as\n * a result of another user action. (Ex: We focus the first element\n * inside of a popover when the user presents it, but the popover is not always\n * presented as a result of keyboard action.)\n */\n async setFocus(elements) {\n if (this.focusVisible) {\n this.focusVisible.setFocus(elements);\n }\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n 'ion-page': true,\n 'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),\n } }));\n }\n get el() { return getElement(this); }\n};\nconst needInputShims = () => {\n return isPlatform(window, 'ios') && isPlatform(window, 'mobile');\n};\nconst rIC = (callback) => {\n if ('requestIdleCallback' in window) {\n window.requestIdleCallback(callback);\n }\n else {\n setTimeout(callback, 32);\n }\n};\nApp.style = appCss;\n\nconst 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}\";\n\nconst 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}\";\n\nconst Buttons = class {\n constructor(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 render() {\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n ['buttons-collapse']: this.collapse,\n } }));\n }\n};\nButtons.style = {\n ios: buttonsIosCss,\n md: buttonsMdCss\n};\n\nconst 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;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}@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;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:\\\"\\\"}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;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}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}\";\n\nconst Content = class {\n constructor(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 this.isMainContent = true;\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 connectedCallback() {\n this.isMainContent = this.el.closest('ion-menu, ion-popover, ion-modal') === null;\n }\n disconnectedCallback() {\n this.onScrollEnd();\n }\n onAppLoad() {\n this.resize();\n }\n shouldForceOverscroll() {\n const { forceOverscroll } = this;\n const mode = getIonMode(this);\n return forceOverscroll === undefined ? mode === 'ios' && isPlatform('ios') : forceOverscroll;\n }\n resize() {\n if (this.fullscreen) {\n readTask(() => this.readDimensions());\n }\n else if (this.cTop !== 0 || this.cBottom !== 0) {\n this.cTop = this.cBottom = 0;\n forceUpdate(this);\n }\n }\n readDimensions() {\n const page = getPageElement(this.el);\n const top = Math.max(this.el.offsetTop, 0);\n const bottom = Math.max(page.offsetHeight - top - this.el.offsetHeight, 0);\n const dirty = top !== this.cTop || bottom !== this.cBottom;\n if (dirty) {\n this.cTop = top;\n this.cBottom = bottom;\n forceUpdate(this);\n }\n }\n onScroll(ev) {\n const timeStamp = Date.now();\n const 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((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 async getScrollElement() {\n /**\n * If this gets called in certain early lifecycle hooks (ex: Vue onMounted),\n * scrollEl won't be defined yet with the custom elements build, so wait for it to load in.\n */\n if (!this.scrollEl) {\n await new Promise((resolve) => componentOnReady(this.el, resolve));\n }\n return Promise.resolve(this.scrollEl);\n }\n /**\n * Returns the background content element.\n * @internal\n */\n async getBackgroundElement() {\n if (!this.backgroundContentEl) {\n await new Promise((resolve) => componentOnReady(this.el, resolve));\n }\n return Promise.resolve(this.backgroundContentEl);\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 scrollToTop(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 async scrollToBottom(duration = 0) {\n const scrollEl = await this.getScrollElement();\n const y = scrollEl.scrollHeight - 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 async scrollByPoint(x, y, duration) {\n const scrollEl = await this.getScrollElement();\n return this.scrollToPoint(x + scrollEl.scrollLeft, y + 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 async scrollToPoint(x, y, duration = 0) {\n const el = await this.getScrollElement();\n if (duration < 32) {\n if (y != null) {\n el.scrollTop = y;\n }\n if (x != null) {\n el.scrollLeft = x;\n }\n return;\n }\n let resolve;\n let startTime = 0;\n const promise = new Promise((r) => (resolve = r));\n const fromY = el.scrollTop;\n const fromX = el.scrollLeft;\n const deltaY = y != null ? y - fromY : 0;\n const deltaX = x != null ? x - fromX : 0;\n // scroll loop\n const step = (timeStamp) => {\n const linearTime = Math.min(1, (timeStamp - startTime) / duration) - 1;\n const 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((ts) => {\n startTime = ts;\n step(ts);\n });\n return promise;\n }\n onScrollStart() {\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(() => {\n if (this.lastScroll < Date.now() - 120) {\n this.onScrollEnd();\n }\n }, 100);\n }\n onScrollEnd() {\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 render() {\n const { isMainContent, scrollX, scrollY, el } = this;\n const rtl = isRTL(el) ? 'rtl' : 'ltr';\n const mode = getIonMode(this);\n const forceOverscroll = this.shouldForceOverscroll();\n const transitionShadow = mode === 'ios';\n const TagType = isMainContent ? 'main' : 'div';\n this.resize();\n return (h(Host, { class: createColorClasses(this.color, {\n [mode]: true,\n 'content-sizing': hostContext('ion-popover', this.el),\n overscroll: forceOverscroll,\n [`content-${rtl}`]: true,\n }), style: {\n '--offset-top': `${this.cTop}px`,\n '--offset-bottom': `${this.cBottom}px`,\n } }, h(\"div\", { ref: (el) => (this.backgroundContentEl = el), id: \"background-content\", part: \"background\" }), h(TagType, { class: {\n 'inner-scroll': true,\n 'scroll-x': scrollX,\n 'scroll-y': scrollY,\n overscroll: (scrollX || scrollY) && forceOverscroll,\n }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => 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 get el() { return getElement(this); }\n};\nconst getParentElement = (el) => {\n var _a;\n if (el.parentElement) {\n // normal element with a parent element\n return el.parentElement;\n }\n if ((_a = el.parentNode) === null || _a === void 0 ? void 0 : _a.host) {\n // shadow dom's document fragment\n return el.parentNode.host;\n }\n return null;\n};\nconst getPageElement = (el) => {\n const tabs = el.closest('ion-tabs');\n if (tabs) {\n return tabs;\n }\n /**\n * If we're in a popover, we need to use its wrapper so we can account for space\n * between the popover and the edges of the screen. But if the popover contains\n * its own page element, we should use that instead.\n */\n const page = el.closest('ion-app, ion-page, .ion-page, page-inner, .popover-content');\n if (page) {\n return page;\n }\n return getParentElement(el);\n};\n// ******** DOM READ ****************\nconst updateScrollDetail = (detail, el, timestamp, shouldStart) => {\n const prevX = detail.currentX;\n const prevY = detail.currentY;\n const prevT = detail.currentTime;\n const currentX = el.scrollLeft;\n const currentY = el.scrollTop;\n const 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 const velocityX = (currentX - prevX) / timeDelta;\n const 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;\n\nconst handleFooterFade = (scrollEl, baseEl) => {\n readTask(() => {\n const scrollTop = scrollEl.scrollTop;\n const maxScroll = scrollEl.scrollHeight - scrollEl.clientHeight;\n /**\n * Toolbar background will fade\n * out over fadeDuration in pixels.\n */\n const fadeDuration = 10;\n /**\n * Begin fading out maxScroll - 30px\n * from the bottom of the content.\n * Also determine how close we are\n * to starting the fade. If we are\n * before the starting point, the\n * scale value will get clamped to 0.\n * If we are after the maxScroll (rubber\n * band scrolling), the scale value will\n * get clamped to 1.\n */\n const fadeStart = maxScroll - fadeDuration;\n const distanceToStart = scrollTop - fadeStart;\n const scale = clamp(0, 1 - distanceToStart / fadeDuration, 1);\n writeTask(() => {\n baseEl.style.setProperty('--opacity-scale', scale.toString());\n });\n });\n};\n\nconst footerIosCss = \"ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding 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}.footer-collapse-fade ion-toolbar{--opacity-scale:inherit}\";\n\nconst footerMdCss = \"ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding 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}\";\n\nconst Footer = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.keyboardCtrl = null;\n this.keyboardVisible = false;\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 this.checkCollapsibleFooter = () => {\n const mode = getIonMode(this);\n if (mode !== 'ios') {\n return;\n }\n const { collapse } = this;\n const hasFade = collapse === 'fade';\n this.destroyCollapsibleFooter();\n if (hasFade) {\n const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');\n const contentEl = pageEl ? findIonContent(pageEl) : null;\n if (!contentEl) {\n printIonContentErrorMsg(this.el);\n return;\n }\n this.setupFadeFooter(contentEl);\n }\n };\n this.setupFadeFooter = async (contentEl) => {\n const scrollEl = (this.scrollEl = await getScrollElement(contentEl));\n /**\n * Handle fading of toolbars on scroll\n */\n this.contentScrollCallback = () => {\n handleFooterFade(scrollEl, this.el);\n };\n scrollEl.addEventListener('scroll', this.contentScrollCallback);\n handleFooterFade(scrollEl, this.el);\n };\n }\n componentDidLoad() {\n this.checkCollapsibleFooter();\n }\n componentDidUpdate() {\n this.checkCollapsibleFooter();\n }\n connectedCallback() {\n this.keyboardCtrl = createKeyboardController((keyboardOpen) => {\n this.keyboardVisible = keyboardOpen; // trigger re-render by updating state\n });\n }\n disconnectedCallback() {\n if (this.keyboardCtrl) {\n this.keyboardCtrl.destroy();\n }\n }\n destroyCollapsibleFooter() {\n if (this.scrollEl && this.contentScrollCallback) {\n this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);\n this.contentScrollCallback = undefined;\n }\n }\n render() {\n const { translucent, collapse } = this;\n const mode = getIonMode(this);\n const tabs = this.el.closest('ion-tabs');\n const tabBar = tabs === null || tabs === void 0 ? void 0 : tabs.querySelector(':scope > ion-tab-bar');\n return (h(Host, { role: \"contentinfo\", class: {\n [mode]: true,\n // Used internally for styling\n [`footer-${mode}`]: true,\n [`footer-translucent`]: translucent,\n [`footer-translucent-${mode}`]: translucent,\n ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),\n [`footer-collapse-${collapse}`]: collapse !== undefined,\n } }, mode === 'ios' && translucent && h(\"div\", { class: \"footer-background\" }), h(\"slot\", null)));\n }\n get el() { return getElement(this); }\n};\nFooter.style = {\n ios: footerIosCss,\n md: footerMdCss\n};\n\nconst TRANSITION = 'all 0.2s ease-in-out';\nconst cloneElement = (tagName) => {\n const getCachedEl = document.querySelector(`${tagName}.ion-cloned-element`);\n if (getCachedEl !== null) {\n return getCachedEl;\n }\n const 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};\nconst createHeaderIndex = (headerEl) => {\n if (!headerEl) {\n return;\n }\n const toolbars = headerEl.querySelectorAll('ion-toolbar');\n return {\n el: headerEl,\n toolbars: Array.from(toolbars).map((toolbar) => {\n const ionTitleEl = toolbar.querySelector('ion-title');\n return {\n el: toolbar,\n background: toolbar.shadowRoot.querySelector('.toolbar-background'),\n ionTitleEl,\n innerTitleEl: ionTitleEl ? ionTitleEl.shadowRoot.querySelector('.toolbar-title') : null,\n ionButtonsEl: Array.from(toolbar.querySelectorAll('ion-buttons')),\n };\n }),\n };\n};\nconst handleContentScroll = (scrollEl, scrollHeaderIndex, contentEl) => {\n readTask(() => {\n const scrollTop = scrollEl.scrollTop;\n const scale = clamp(1, 1 + -scrollTop / 500, 1.1);\n // Native refresher should not cause titles to scale\n const nativeRefresher = contentEl.querySelector('ion-refresher.refresher-native');\n if (nativeRefresher === null) {\n writeTask(() => {\n scaleLargeTitles(scrollHeaderIndex.toolbars, scale);\n });\n }\n });\n};\nconst setToolbarBackgroundOpacity = (headerEl, opacity) => {\n /**\n * Fading in the backdrop opacity\n * should happen after the large title\n * has collapsed, so it is handled\n * by handleHeaderFade()\n */\n if (headerEl.collapse === 'fade') {\n return;\n }\n if (opacity === undefined) {\n headerEl.style.removeProperty('--opacity-scale');\n }\n else {\n headerEl.style.setProperty('--opacity-scale', opacity.toString());\n }\n};\nconst handleToolbarBorderIntersection = (ev, mainHeaderIndex, scrollTop) => {\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 * Additionally, we check if user is rubber banding (scrolling is negative)\n * as this can mean they are using pull to refresh. Once the refresher starts,\n * the content is transformed which can cause the intersection observer to erroneously\n * fire here as well.\n */\n const scale = ev[0].intersectionRatio > 0.9 || scrollTop <= 0 ? 0 : ((1 - ev[0].intersectionRatio) * 100) / 75;\n setToolbarBackgroundOpacity(mainHeaderIndex.el, scale === 1 ? undefined : scale);\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 */\nconst handleToolbarIntersection = (ev, mainHeaderIndex, scrollHeaderIndex, scrollEl) => {\n writeTask(() => {\n const scrollTop = scrollEl.scrollTop;\n handleToolbarBorderIntersection(ev, mainHeaderIndex, scrollTop);\n const event = ev[0];\n const intersection = event.intersectionRect;\n const intersectionArea = intersection.width * intersection.height;\n const rootArea = event.rootBounds.width * event.rootBounds.height;\n const isPageHidden = intersectionArea === 0 && rootArea === 0;\n const leftDiff = Math.abs(intersection.left - event.boundingClientRect.left);\n const rightDiff = Math.abs(intersection.right - event.boundingClientRect.right);\n const 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 const hasValidIntersection = (intersection.x === 0 && intersection.y === 0) || (intersection.width !== 0 && intersection.height !== 0);\n if (hasValidIntersection && scrollTop > 0) {\n setHeaderActive(mainHeaderIndex);\n setHeaderActive(scrollHeaderIndex, false);\n setToolbarBackgroundOpacity(mainHeaderIndex.el);\n }\n }\n });\n};\nconst setHeaderActive = (headerIndex, active = true) => {\n const headerEl = headerIndex.el;\n if (active) {\n headerEl.classList.remove('header-collapse-condense-inactive');\n headerEl.removeAttribute('aria-hidden');\n }\n else {\n headerEl.classList.add('header-collapse-condense-inactive');\n headerEl.setAttribute('aria-hidden', 'true');\n }\n};\nconst scaleLargeTitles = (toolbars = [], scale = 1, transition = false) => {\n toolbars.forEach((toolbar) => {\n const ionTitle = toolbar.ionTitleEl;\n const 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};\nconst handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {\n readTask(() => {\n const scrollTop = scrollEl.scrollTop;\n const baseElHeight = baseEl.clientHeight;\n const fadeStart = condenseHeader ? condenseHeader.clientHeight : 0;\n /**\n * If we are using fade header with a condense\n * header, then the toolbar backgrounds should\n * not begin to fade in until the condense\n * header has fully collapsed.\n *\n * Additionally, the main content should not\n * overflow out of the container until the\n * condense header has fully collapsed. When\n * using just the condense header the content\n * should overflow out of the container.\n */\n if (condenseHeader !== null && scrollTop < fadeStart) {\n baseEl.style.setProperty('--opacity-scale', '0');\n scrollEl.style.setProperty('clip-path', `inset(${baseElHeight}px 0px 0px 0px)`);\n return;\n }\n const distanceToStart = scrollTop - fadeStart;\n const fadeDuration = 10;\n const scale = clamp(0, distanceToStart / fadeDuration, 1);\n writeTask(() => {\n scrollEl.style.removeProperty('clip-path');\n baseEl.style.setProperty('--opacity-scale', scale.toString());\n });\n });\n};\n\nconst 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-fade ion-toolbar{--opacity-scale:inherit}.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:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{height:48px;padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.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}\";\n\nconst 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}\";\n\nconst Header = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.inheritedAttributes = {};\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 this.setupFadeHeader = async (contentEl, condenseHeader) => {\n const scrollEl = (this.scrollEl = await getScrollElement(contentEl));\n /**\n * Handle fading of toolbars on scroll\n */\n this.contentScrollCallback = () => {\n handleHeaderFade(this.scrollEl, this.el, condenseHeader);\n };\n scrollEl.addEventListener('scroll', this.contentScrollCallback);\n handleHeaderFade(this.scrollEl, this.el, condenseHeader);\n };\n }\n componentWillLoad() {\n this.inheritedAttributes = inheritAriaAttributes(this.el);\n }\n componentDidLoad() {\n this.checkCollapsibleHeader();\n }\n componentDidUpdate() {\n this.checkCollapsibleHeader();\n }\n disconnectedCallback() {\n this.destroyCollapsibleHeader();\n }\n async checkCollapsibleHeader() {\n const mode = getIonMode(this);\n if (mode !== 'ios') {\n return;\n }\n const { collapse } = this;\n const hasCondense = collapse === 'condense';\n const hasFade = collapse === 'fade';\n this.destroyCollapsibleHeader();\n if (hasCondense) {\n const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');\n const contentEl = pageEl ? findIonContent(pageEl) : null;\n // Cloned elements are always needed in iOS transition\n writeTask(() => {\n const title = cloneElement('ion-title');\n title.size = 'large';\n cloneElement('ion-back-button');\n });\n await this.setupCondenseHeader(contentEl, pageEl);\n }\n else if (hasFade) {\n const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');\n const contentEl = pageEl ? findIonContent(pageEl) : null;\n if (!contentEl) {\n printIonContentErrorMsg(this.el);\n return;\n }\n const condenseHeader = contentEl.querySelector('ion-header[collapse=\"condense\"]');\n await this.setupFadeHeader(contentEl, condenseHeader);\n }\n }\n destroyCollapsibleHeader() {\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 async setupCondenseHeader(contentEl, pageEl) {\n if (!contentEl || !pageEl) {\n printIonContentErrorMsg(this.el);\n return;\n }\n if (typeof IntersectionObserver === 'undefined') {\n return;\n }\n this.scrollEl = await getScrollElement(contentEl);\n const headers = pageEl.querySelectorAll('ion-header');\n this.collapsibleMainHeader = Array.from(headers).find((header) => header.collapse !== 'condense');\n if (!this.collapsibleMainHeader) {\n return;\n }\n const mainHeaderIndex = createHeaderIndex(this.collapsibleMainHeader);\n const scrollHeaderIndex = createHeaderIndex(this.el);\n if (!mainHeaderIndex || !scrollHeaderIndex) {\n return;\n }\n setHeaderActive(mainHeaderIndex, false);\n setToolbarBackgroundOpacity(mainHeaderIndex.el, 0);\n /**\n * Handle interaction between toolbar collapse and\n * showing/hiding content in the primary ion-header\n * as well as progressively showing/hiding the main header\n * border as the top-most toolbar collapses or expands.\n */\n const toolbarIntersection = (ev) => {\n handleToolbarIntersection(ev, mainHeaderIndex, scrollHeaderIndex, this.scrollEl);\n };\n this.intersectionObserver = new IntersectionObserver(toolbarIntersection, {\n root: contentEl,\n threshold: [0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1],\n });\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 = () => {\n handleContentScroll(this.scrollEl, scrollHeaderIndex, contentEl);\n };\n this.scrollEl.addEventListener('scroll', this.contentScrollCallback);\n writeTask(() => {\n if (this.collapsibleMainHeader !== undefined) {\n this.collapsibleMainHeader.classList.add('header-collapse-main');\n }\n });\n }\n render() {\n const { translucent, inheritedAttributes } = this;\n const mode = getIonMode(this);\n const collapse = this.collapse || 'none';\n // banner role must be at top level, so remove role if inside a menu\n const roleType = hostContext('ion-menu', this.el) ? 'none' : 'banner';\n return (h(Host, Object.assign({ role: roleType, class: {\n [mode]: true,\n // Used internally for styling\n [`header-${mode}`]: true,\n [`header-translucent`]: this.translucent,\n [`header-collapse-${collapse}`]: true,\n [`header-translucent-${mode}`]: this.translucent,\n } }, inheritedAttributes), mode === 'ios' && translucent && h(\"div\", { class: \"header-background\" }), h(\"slot\", null)));\n }\n get el() { return getElement(this); }\n};\nHeader.style = {\n ios: headerIosCss,\n md: headerMdCss\n};\n\nconst routeOutletCss = \":host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;overflow:hidden;z-index:0}\";\n\nconst RouterOutlet = class {\n constructor(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.gestureOrAnimationInProgress = false;\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 swipeHandlerChanged() {\n if (this.gesture) {\n this.gesture.enable(this.swipeHandler !== undefined);\n }\n }\n async connectedCallback() {\n const onStart = () => {\n this.gestureOrAnimationInProgress = true;\n if (this.swipeHandler) {\n this.swipeHandler.onStart();\n }\n };\n this.gesture = (await import('./swipe-back-9347ea5f.js')).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => { var _a; return (_a = this.ani) === null || _a === void 0 ? void 0 : _a.progressStep(step); }, (shouldComplete, step, dur) => {\n if (this.ani) {\n this.ani.onFinish(() => {\n this.gestureOrAnimationInProgress = false;\n if (this.swipeHandler) {\n this.swipeHandler.onEnd(shouldComplete);\n }\n }, { oneTimeCallback: true });\n // Account for rounding errors in JS\n let 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 else {\n this.gestureOrAnimationInProgress = false;\n }\n });\n this.swipeHandlerChanged();\n }\n componentWillLoad() {\n this.ionNavWillLoad.emit();\n }\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n /** @internal */\n async commit(enteringEl, leavingEl, opts) {\n const unlock = await this.lock();\n let changed = false;\n try {\n changed = await this.transition(enteringEl, leavingEl, opts);\n }\n catch (e) {\n console.error(e);\n }\n unlock();\n return changed;\n }\n /** @internal */\n async setRouteId(id, params, direction, animation) {\n const changed = await this.setRoot(id, params, {\n duration: direction === 'root' ? 0 : undefined,\n direction: direction === 'back' ? 'back' : 'forward',\n animationBuilder: animation,\n });\n return {\n changed,\n element: this.activeEl,\n };\n }\n /** @internal */\n async getRouteId() {\n const active = this.activeEl;\n return active\n ? {\n id: active.tagName,\n element: active,\n params: this.activeParams,\n }\n : undefined;\n }\n async setRoot(component, params, opts) {\n if (this.activeComponent === component && shallowEqualStringMap(params, this.activeParams)) {\n return false;\n }\n // attach entering view to DOM\n const leavingEl = this.activeEl;\n const enteringEl = await attachComponent(this.delegate, this.el, component, ['ion-page', 'ion-page-invisible'], params);\n this.activeComponent = component;\n this.activeEl = enteringEl;\n this.activeParams = params;\n // commit animation\n await this.commit(enteringEl, leavingEl, opts);\n await detachComponent(this.delegate, leavingEl);\n return true;\n }\n async transition(enteringEl, leavingEl, opts = {}) {\n if (leavingEl === enteringEl) {\n return false;\n }\n // emit nav will change event\n this.ionNavWillChange.emit();\n const { el, mode } = this;\n const animated = this.animated && config.getBoolean('animated', true);\n const animationBuilder = opts.animationBuilder || this.animation || config.get('navAnimation');\n await transition(Object.assign(Object.assign({ mode,\n animated,\n enteringEl,\n leavingEl, baseEl: el, progressCallback: opts.progressAnimation\n ? (ani) => {\n /**\n * Because this progress callback is called asynchronously\n * it is possible for the gesture to start and end before\n * the animation is ever set. In that scenario, we should\n * immediately call progressEnd so that the transition promise\n * resolves and the gesture does not get locked up.\n */\n if (ani !== undefined && !this.gestureOrAnimationInProgress) {\n this.gestureOrAnimationInProgress = true;\n ani.onFinish(() => {\n this.gestureOrAnimationInProgress = false;\n if (this.swipeHandler) {\n this.swipeHandler.onEnd(false);\n }\n }, { oneTimeCallback: true });\n /**\n * Playing animation to beginning\n * with a duration of 0 prevents\n * any flickering when the animation\n * is later cleaned up.\n */\n ani.progressEnd(0, 0, 0);\n }\n else {\n this.ani = ani;\n }\n }\n : undefined }, opts), { animationBuilder }));\n // emit nav changed event\n this.ionNavDidChange.emit();\n return true;\n }\n async lock() {\n const p = this.waitPromise;\n let resolve;\n this.waitPromise = new Promise((r) => (resolve = r));\n if (p !== undefined) {\n await p;\n }\n return resolve;\n }\n render() {\n return h(\"slot\", null);\n }\n get el() { return getElement(this); }\n static get watchers() { return {\n \"swipeHandler\": [\"swipeHandlerChanged\"]\n }; }\n};\nRouterOutlet.style = routeOutletCss;\n\nconst 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:var(--padding-top);padding-bottom:var(--padding-bottom);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(.title-large.title-rtl){-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)}\";\n\nconst 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}\";\n\nconst ToolbarTitle = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n }\n sizeChanged() {\n this.emitStyle();\n }\n connectedCallback() {\n this.emitStyle();\n }\n emitStyle() {\n const size = this.getSize();\n this.ionStyle.emit({\n [`title-${size}`]: true,\n });\n }\n getSize() {\n return this.size !== undefined ? this.size : 'default';\n }\n render() {\n const mode = getIonMode(this);\n const size = this.getSize();\n return (h(Host, { class: createColorClasses(this.color, {\n [mode]: true,\n [`title-${size}`]: true,\n 'title-rtl': document.dir === 'rtl',\n }) }, h(\"div\", { class: \"toolbar-title\" }, h(\"slot\", null))));\n }\n get el() { return getElement(this); }\n static get watchers() { return {\n \"size\": [\"sizeChanged\"]\n }; }\n};\nToolbarTitle.style = {\n ios: titleIosCss,\n md: titleMdCss\n};\n\nconst toolbarIosCss = \":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale: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:calc(var(--opacity) * var(--opacity-scale));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, #f7f7f7));--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%}\";\n\nconst toolbarMdCss = \":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale: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:calc(var(--opacity) * var(--opacity-scale));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}\";\n\nconst Toolbar = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.childrenStyles = new Map();\n }\n componentWillLoad() {\n const buttons = Array.from(this.el.querySelectorAll('ion-buttons'));\n const firstButtons = buttons.find((button) => {\n return button.slot === 'start';\n });\n if (firstButtons) {\n firstButtons.classList.add('buttons-first-slot');\n }\n const buttonsReversed = buttons.reverse();\n const lastButtons = buttonsReversed.find((button) => button.slot === 'end') ||\n buttonsReversed.find((button) => button.slot === 'primary') ||\n buttonsReversed.find((button) => button.slot === 'secondary');\n if (lastButtons) {\n lastButtons.classList.add('buttons-last-slot');\n }\n }\n childrenStyle(ev) {\n ev.stopPropagation();\n const tagName = ev.target.tagName;\n const updatedStyles = ev.detail;\n const newStyles = {};\n const childStyles = this.childrenStyles.get(tagName) || {};\n let hasStyleChange = false;\n Object.keys(updatedStyles).forEach((key) => {\n const childKey = `toolbar-${key}`;\n const 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 render() {\n const mode = getIonMode(this);\n const childStyles = {};\n this.childrenStyles.forEach((value) => {\n Object.assign(childStyles, value);\n });\n return (h(Host, { class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {\n [mode]: true,\n 'in-toolbar': hostContext('ion-toolbar', this.el),\n })) }, 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 get el() { return getElement(this); }\n};\nToolbar.style = {\n ios: toolbarIosCss,\n md: toolbarMdCss\n};\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","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nconst hostContext = (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 */\nconst createColorClasses = (color, cssClassMap) => {\n return typeof color === 'string' && color.length > 0\n ? Object.assign({ 'ion-color': true, [`ion-color-${color}`]: true }, cssClassMap) : cssClassMap;\n};\nconst getClassList = (classes) => {\n if (classes !== undefined) {\n const array = Array.isArray(classes) ? classes : classes.split(' ');\n return array\n .filter((c) => c != null)\n .map((c) => c.trim())\n .filter((c) => c !== '');\n }\n return [];\n};\nconst getClassMap = (classes) => {\n const map = {};\n getClassList(classes).forEach((c) => (map[c] = true));\n return map;\n};\nconst SCHEME = /^[a-z][a-z0-9+\\-.]*:/;\nconst openURL = async (url, ev, direction, animation) => {\n if (url != null && url[0] !== '#' && !SCHEME.test(url)) {\n const router = document.querySelector('ion-router');\n if (router) {\n if (ev != null) {\n ev.preventDefault();\n }\n return router.push(url, direction, animation);\n }\n }\n return false;\n};\n\nexport { createColorClasses as c, getClassMap as g, hostContext as h, openURL as o };\n"],"names":["printIonWarning","message","params","console","warn","printIonError","error","printRequiredElementError","el","targetSelectors","tagName","toLowerCase","join","a","b","p","r","registerInstance","h","H","Host","i","getElement","e","createEvent","f","readTask","j","forceUpdate","c","writeTask","getIonMode","config","isPlatform","componentOnReady","l","clamp","inheritAriaAttributes","s","shallowEqualStringMap","isRTL","createColorClasses","hostContext","findIonContent","printIonContentErrorMsg","g","getScrollElement","createKeyboardController","getTimeGivenProgression","attachComponent","d","detachComponent","t","transition","appCss","App","constructor","hostRef","componentDidLoad","rIC","isHybrid","window","getBoolean","then","module","startTapClick","startStatusTap","needInputShims","startInputShims","hardwareBackButtonModule","startHardwareBackButton","blockHardwareBackButton","startKeyboardAssist","focusVisible","startFocusVisible","setFocus","elements","render","mode","class","callback","requestIdleCallback","setTimeout","style","buttonsIosCss","buttonsMdCss","Buttons","collapse","ios","md","contentCss","Content","ionScrollStart","ionScroll","ionScrollEnd","isScrolling","lastScroll","queued","cTop","cBottom","isMainContent","detail","scrollTop","scrollLeft","type","event","undefined","startX","startY","startTime","currentX","currentY","velocityX","velocityY","deltaX","deltaY","currentTime","data","fullscreen","scrollX","scrollY","scrollEvents","connectedCallback","closest","disconnectedCallback","onScrollEnd","onAppLoad","resize","shouldForceOverscroll","forceOverscroll","readDimensions","page","getPageElement","top","Math","max","offsetTop","bottom","offsetHeight","dirty","onScroll","ev","timeStamp","Date","now","shouldStart","onScrollStart","ts","updateScrollDetail","scrollEl","emit","Promise","resolve","getBackgroundElement","backgroundContentEl","scrollToTop","duration","scrollToPoint","scrollToBottom","y","scrollHeight","clientHeight","scrollByPoint","x","promise","fromY","fromX","step","linearTime","min","easedT","pow","floor","requestAnimationFrame","watchDog","clearInterval","setInterval","rtl","transitionShadow","TagType","color","overscroll","ref","id","part","name","getParentElement","_a","parentElement","parentNode","host","tabs","timestamp","prevX","prevY","prevT","timeDelta","handleFooterFade","baseEl","maxScroll","fadeDuration","fadeStart","distanceToStart","scale","setProperty","toString","footerIosCss","footerMdCss","Footer","keyboardCtrl","keyboardVisible","translucent","checkCollapsibleFooter","hasFade","destroyCollapsibleFooter","pageEl","contentEl","setupFadeFooter","contentScrollCallback","addEventListener","componentDidUpdate","keyboardOpen","destroy","removeEventListener","tabBar","querySelector","role","slot","TRANSITION","cloneElement","getCachedEl","document","clonedEl","createElement","classList","add","body","appendChild","createHeaderIndex","headerEl","toolbars","querySelectorAll","Array","from","map","toolbar","ionTitleEl","background","shadowRoot","innerTitleEl","ionButtonsEl","handleContentScroll","scrollHeaderIndex","nativeRefresher","scaleLargeTitles","setToolbarBackgroundOpacity","opacity","removeProperty","handleToolbarBorderIntersection","mainHeaderIndex","isIntersecting","intersectionRatio","handleToolbarIntersection","intersection","intersectionRect","intersectionArea","width","height","rootArea","rootBounds","isPageHidden","leftDiff","abs","left","boundingClientRect","rightDiff","right","isPageTransitioning","setHeaderActive","hasValidIntersection","headerIndex","active","remove","removeAttribute","setAttribute","forEach","ionTitle","titleDiv","size","transform","handleHeaderFade","condenseHeader","baseElHeight","headerIosCss","headerMdCss","Header","inheritedAttributes","setupFadeHeader","componentWillLoad","checkCollapsibleHeader","destroyCollapsibleHeader","hasCondense","title","setupCondenseHeader","intersectionObserver","disconnect","collapsibleMainHeader","IntersectionObserver","headers","find","header","toolbarIntersection","root","threshold","observe","length","roleType","Object","assign","routeOutletCss","RouterOutlet","ionNavWillLoad","ionNavWillChange","ionNavDidChange","gestureOrAnimationInProgress","animated","swipeHandlerChanged","gesture","enable","swipeHandler","onStart","createSwipeBackGesture","canStart","ani","progressStep","shouldComplete","dur","onFinish","onEnd","oneTimeCallback","newStepValue","easing","progressEnd","commit","enteringEl","leavingEl","opts","unlock","lock","changed","setRouteId","direction","animation","setRoot","animationBuilder","element","activeEl","getRouteId","activeParams","component","activeComponent","delegate","get","progressCallback","progressAnimation","waitPromise","watchers","titleIosCss","titleMdCss","ToolbarTitle","ionStyle","sizeChanged","emitStyle","getSize","dir","toolbarIosCss","toolbarMdCss","Toolbar","childrenStyles","Map","buttons","firstButtons","button","buttonsReversed","reverse","lastButtons","childrenStyle","stopPropagation","target","updatedStyles","newStyles","childStyles","hasStyleChange","keys","key","childKey","newValue","set","value","ion_app","ion_buttons","ion_content","ion_footer","ion_header","ion_router_outlet","ion_title","ion_toolbar","selector","cssClassMap","getClassList","classes","array","isArray","split","filter","trim","getClassMap","SCHEME","openURL","url","test","router","preventDefault","push","o"],"sourceRoot":"webpack:///","x_google_ignoreList":[0,1,2]}