{"version":3,"file":"9066.0e281cf29b101b30e623.js","mappings":"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","sources":["webpack:///../node_modules/@ionic/core/components/ion-app.js","webpack:///../node_modules/@ionic/core/components/ion-avatar.js","webpack:///../node_modules/@ionic/core/components/ion-button.js","webpack:///../node_modules/@ionic/core/components/ion-content.js","webpack:///../node_modules/@ionic/core/components/ion-footer.js","webpack:///../node_modules/@ionic/core/components/ion-header.js","webpack:///../node_modules/@ionic/core/components/ion-img.js","webpack:///../node_modules/@ionic/core/components/ion-input.js"],"sourcesContent":["/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, Build, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode, c as config, a as isPlatform } from './ionic-global.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 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n }\n componentDidLoad() {\n if (Build.isBrowser) {\n rIC(async () => {\n const isHybrid = isPlatform(window, 'hybrid');\n if (!config.getBoolean('_testing')) {\n import('./index9.js').then((module) => module.startTapClick(config));\n }\n if (config.getBoolean('statusTap', isHybrid)) {\n import('./status-tap.js').then((module) => module.startStatusTap());\n }\n if (config.getBoolean('inputShims', needInputShims())) {\n /**\n * needInputShims() ensures that only iOS and Android\n * platforms proceed into this block.\n */\n const platform = isPlatform(window, 'ios') ? 'ios' : 'android';\n import('./input-shims.js').then((module) => module.startInputShims(config, platform));\n }\n const hardwareBackButtonModule = await import('./hardware-back-button.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.js').then((module) => module.startKeyboardAssist(window));\n }\n import('./focus-visible.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 this; }\n static get style() { return appCss; }\n}, [0, \"ion-app\", {\n \"setFocus\": [64]\n }]);\nconst needInputShims = () => {\n /**\n * iOS always needs input shims\n */\n const needsShimsIOS = isPlatform(window, 'ios') && isPlatform(window, 'mobile');\n if (needsShimsIOS) {\n return true;\n }\n /**\n * Android only needs input shims when running\n * in the browser and only if the browser is using the\n * new Chrome 108+ resize behavior: https://developer.chrome.com/blog/viewport-resize-behavior/\n */\n const isAndroidMobileWeb = isPlatform(window, 'android') && isPlatform(window, 'mobileweb');\n if (isAndroidMobileWeb) {\n return true;\n }\n return false;\n};\nconst rIC = (callback) => {\n if ('requestIdleCallback' in window) {\n window.requestIdleCallback(callback);\n }\n else {\n setTimeout(callback, 32);\n }\n};\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-app\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-app\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, App);\n }\n break;\n } });\n}\n\nconst IonApp = App;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonApp, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst avatarIosCss = \":host{border-radius:var(--border-radius);display:block}::slotted(ion-img),::slotted(img){border-radius:var(--border-radius);width:100%;height:100%;-o-object-fit:cover;object-fit:cover;overflow:hidden}:host{--border-radius:50%;width:48px;height:48px}\";\n\nconst avatarMdCss = \":host{border-radius:var(--border-radius);display:block}::slotted(ion-img),::slotted(img){border-radius:var(--border-radius);width:100%;height:100%;-o-object-fit:cover;object-fit:cover;overflow:hidden}:host{--border-radius:50%;width:64px;height:64px}\";\n\nconst Avatar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n }\n render() {\n return (h(Host, { class: getIonMode(this) }, h(\"slot\", null)));\n }\n static get style() { return {\n ios: avatarIosCss,\n md: avatarMdCss\n }; }\n}, [33, \"ion-avatar\"]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-avatar\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-avatar\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Avatar);\n }\n break;\n } });\n}\n\nconst IonAvatar = Avatar;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonAvatar, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { B as Button, d as defineCustomElement$1 } from './button.js';\n\nconst IonButton = Button;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonButton, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, readTask, forceUpdate, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode, a as isPlatform } from './ionic-global.js';\nimport { c as componentOnReady } from './helpers.js';\nimport { i as isRTL } from './dir.js';\nimport { c as createColorClasses, h as hostContext } from './theme.js';\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 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionScrollStart = createEvent(this, \"ionScrollStart\", 7);\n this.ionScroll = createEvent(this, \"ionScroll\", 7);\n this.ionScrollEnd = createEvent(this, \"ionScrollEnd\", 7);\n this.watchDog = null;\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 this.resizeTimeout = null;\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 /**\n * Rotating certain devices can update\n * the safe area insets. As a result,\n * the fullscreen feature on ion-content\n * needs to be recalculated.\n *\n * We listen for \"resize\" because we\n * do not care what the orientation of\n * the device is. Other APIs\n * such as ScreenOrientation or\n * the deviceorientation event must have\n * permission from the user first whereas\n * the \"resize\" event does not.\n *\n * We also throttle the callback to minimize\n * thrashing when quickly resizing a window.\n */\n onResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = null;\n }\n this.resizeTimeout = setTimeout(() => {\n /**\n * Resize should only happen\n * if the content is visible.\n * When the content is hidden\n * then offsetParent will be null.\n */\n if (this.el.offsetParent === null) {\n return;\n }\n this.resize();\n }, 100);\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 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 if (this.watchDog)\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 this; }\n static get style() { return contentCss; }\n}, [1, \"ion-content\", {\n \"color\": [513],\n \"fullscreen\": [4],\n \"forceOverscroll\": [1028, \"force-overscroll\"],\n \"scrollX\": [4, \"scroll-x\"],\n \"scrollY\": [4, \"scroll-y\"],\n \"scrollEvents\": [4, \"scroll-events\"],\n \"getScrollElement\": [64],\n \"getBackgroundElement\": [64],\n \"scrollToTop\": [64],\n \"scrollToBottom\": [64],\n \"scrollByPoint\": [64],\n \"scrollToPoint\": [64]\n }, [[8, \"appload\", \"onAppLoad\"], [9, \"resize\", \"onResize\"]]]);\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};\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-content\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-content\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Content);\n }\n break;\n } });\n}\n\nconst IonContent = Content;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonContent, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { readTask, writeTask, proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { f as findIonContent, p as printIonContentErrorMsg, g as getScrollElement } from './index8.js';\nimport { c as createKeyboardController } from './keyboard-controller.js';\nimport { h as clamp } from './helpers.js';\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 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\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 this; }\n static get style() { return {\n ios: footerIosCss,\n md: footerMdCss\n }; }\n}, [36, \"ion-footer\", {\n \"collapse\": [1],\n \"translucent\": [4],\n \"keyboardVisible\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-footer\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-footer\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Footer);\n }\n break;\n } });\n}\n\nconst IonFooter = Footer;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonFooter, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { readTask, writeTask, proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { g as getScrollElement, f as findIonContent, p as printIonContentErrorMsg } from './index8.js';\nimport { h as clamp, i as inheritAriaAttributes } from './helpers.js';\nimport { h as hostContext } from './theme.js';\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, // TODO(FW-2832): type (IntersectionObserverEntry[] triggers errors which should be sorted)\nmainHeaderIndex, 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 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\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 this; }\n static get style() { return {\n ios: headerIosCss,\n md: headerMdCss\n }; }\n}, [36, \"ion-header\", {\n \"collapse\": [1],\n \"translucent\": [4]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-header\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-header\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Header);\n }\n break;\n } });\n}\n\nconst IonHeader = Header;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonHeader, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { d as inheritAttributes } from './helpers.js';\n\nconst imgCss = \":host{display:block;-o-object-fit:contain;object-fit:contain}img{display:block;width:100%;height:100%;-o-object-fit:inherit;object-fit:inherit;-o-object-position:inherit;object-position:inherit}\";\n\nconst Img = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionImgWillLoad = createEvent(this, \"ionImgWillLoad\", 7);\n this.ionImgDidLoad = createEvent(this, \"ionImgDidLoad\", 7);\n this.ionError = createEvent(this, \"ionError\", 7);\n this.inheritedAttributes = {};\n this.onLoad = () => {\n this.ionImgDidLoad.emit();\n };\n this.onError = () => {\n this.ionError.emit();\n };\n }\n srcChanged() {\n this.addIO();\n }\n componentWillLoad() {\n this.inheritedAttributes = inheritAttributes(this.el, ['draggable']);\n }\n componentDidLoad() {\n this.addIO();\n }\n addIO() {\n if (this.src === undefined) {\n return;\n }\n if (typeof window !== 'undefined' &&\n 'IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'isIntersecting' in window.IntersectionObserverEntry.prototype) {\n this.removeIO();\n this.io = new IntersectionObserver((data) => {\n /**\n * On slower devices, it is possible for an intersection observer entry to contain multiple\n * objects in the array. This happens when quickly scrolling an image into view and then out of\n * view. In this case, the last object represents the current state of the component.\n */\n if (data[data.length - 1].isIntersecting) {\n this.load();\n this.removeIO();\n }\n });\n this.io.observe(this.el);\n }\n else {\n // fall back to setTimeout for Safari and IE\n setTimeout(() => this.load(), 200);\n }\n }\n load() {\n this.loadError = this.onError;\n this.loadSrc = this.src;\n this.ionImgWillLoad.emit();\n }\n removeIO() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n }\n render() {\n const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;\n const { draggable } = inheritedAttributes;\n return (h(Host, { class: getIonMode(this) }, h(\"img\", { decoding: \"async\", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: \"image\", draggable: isDraggable(draggable) })));\n }\n get el() { return this; }\n static get watchers() { return {\n \"src\": [\"srcChanged\"]\n }; }\n static get style() { return imgCss; }\n}, [1, \"ion-img\", {\n \"alt\": [1],\n \"src\": [1],\n \"loadSrc\": [32],\n \"loadError\": [32]\n }]);\n/**\n * Enumerated strings must be set as booleans\n * as Stencil will not render 'false' in the DOM.\n * The need to explicitly render draggable=\"true\"\n * as only certain elements are draggable by default.\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/draggable.\n */\nconst isDraggable = (draggable) => {\n switch (draggable) {\n case 'true':\n return true;\n case 'false':\n return false;\n default:\n return undefined;\n }\n};\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-img\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-img\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Img);\n }\n break;\n } });\n}\n\nconst IonImg = Img;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonImg, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, Build, h, Host } from '@stencil/core/internal/client';\nimport { j as closeCircle, k as closeSharp } from './index6.js';\nimport { b as getIonMode } from './ionic-global.js';\nimport { j as debounceEvent, i as inheritAriaAttributes, d as inheritAttributes, k as findItemLabel } from './helpers.js';\nimport { c as createColorClasses, h as hostContext } from './theme.js';\nimport { d as defineCustomElement$2 } from './icon.js';\n\nconst inputIosCss = \".sc-ion-input-ios-h{--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:.5;--padding-top:0;--padding-end:0;--padding-bottom:0;--padding-start:0;--background:transparent;--color:initial;display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;width:100%;padding:0 !important;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);z-index:2}ion-item.sc-ion-input-ios-h:not(.item-label),ion-item:not(.item-label) .sc-ion-input-ios-h{--padding-start:0}.ion-color.sc-ion-input-ios-h{color:var(--ion-color-base)}.native-input.sc-ion-input-ios{border-radius:var(--border-radius);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:inline-block;-ms-flex:1;flex:1;width:100%;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.native-input.sc-ion-input-ios{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)}}.native-input.sc-ion-input-ios::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios:-webkit-autofill{background-color:transparent}.native-input.sc-ion-input-ios:invalid{-webkit-box-shadow:none;box-shadow:none}.native-input.sc-ion-input-ios::-ms-clear{display:none}.native-input[disabled].sc-ion-input-ios:not(.cloned-input){opacity:0.4}.cloned-input.sc-ion-input-ios{left:0;top:0;position:absolute;pointer-events:none}[dir=rtl].sc-ion-input-ios .cloned-input.sc-ion-input-ios,[dir=rtl].sc-ion-input-ios-h .cloned-input.sc-ion-input-ios,[dir=rtl] .sc-ion-input-ios-h .cloned-input.sc-ion-input-ios{left:unset;right:unset;right:0}.cloned-input.sc-ion-input-ios:disabled{opacity:1}.input-clear-icon.sc-ion-input-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;background-position:center;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:30px;height:30px;border:0;outline:none;background-color:transparent;background-repeat:no-repeat;color:var(--ion-color-step-600, #666666);visibility:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}.in-item-color.sc-ion-input-ios-h .input-clear-icon.sc-ion-input-ios{color:inherit}.input-clear-icon.sc-ion-input-ios:focus{opacity:0.5}.has-value.sc-ion-input-ios-h .input-clear-icon.sc-ion-input-ios{visibility:visible}.has-focus.sc-ion-input-ios-h{pointer-events:none}.has-focus.sc-ion-input-ios-h input.sc-ion-input-ios,.has-focus.sc-ion-input-ios-h a.sc-ion-input-ios,.has-focus.sc-ion-input-ios-h button.sc-ion-input-ios{pointer-events:auto}.item-label-floating.item-has-placeholder.sc-ion-input-ios-h:not(.item-has-value),.item-label-floating.item-has-placeholder:not(.item-has-value) .sc-ion-input-ios-h{opacity:0}.item-label-floating.item-has-placeholder.sc-ion-input-ios-h:not(.item-has-value).item-has-focus,.item-label-floating.item-has-placeholder:not(.item-has-value).item-has-focus .sc-ion-input-ios-h{-webkit-transition:opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);opacity:1}.sc-ion-input-ios-h{--padding-top:10px;--padding-end:10px;--padding-bottom:10px;--padding-start:0;font-size:inherit}.item-label-stacked.sc-ion-input-ios-h,.item-label-stacked .sc-ion-input-ios-h,.item-label-floating.sc-ion-input-ios-h,.item-label-floating .sc-ion-input-ios-h{--padding-top:8px;--padding-bottom:8px;--padding-start:0px}.input-clear-icon.sc-ion-input-ios ion-icon.sc-ion-input-ios{width:18px;height:18px}\";\n\nconst inputMdCss = \".sc-ion-input-md-h{--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:.5;--padding-top:0;--padding-end:0;--padding-bottom:0;--padding-start:0;--background:transparent;--color:initial;display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;width:100%;padding:0 !important;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);z-index:2}ion-item.sc-ion-input-md-h:not(.item-label),ion-item:not(.item-label) .sc-ion-input-md-h{--padding-start:0}.ion-color.sc-ion-input-md-h{color:var(--ion-color-base)}.native-input.sc-ion-input-md{border-radius:var(--border-radius);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:inline-block;-ms-flex:1;flex:1;width:100%;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.native-input.sc-ion-input-md{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)}}.native-input.sc-ion-input-md::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md:-webkit-autofill{background-color:transparent}.native-input.sc-ion-input-md:invalid{-webkit-box-shadow:none;box-shadow:none}.native-input.sc-ion-input-md::-ms-clear{display:none}.native-input[disabled].sc-ion-input-md:not(.cloned-input){opacity:0.4}.cloned-input.sc-ion-input-md{left:0;top:0;position:absolute;pointer-events:none}[dir=rtl].sc-ion-input-md .cloned-input.sc-ion-input-md,[dir=rtl].sc-ion-input-md-h .cloned-input.sc-ion-input-md,[dir=rtl] .sc-ion-input-md-h .cloned-input.sc-ion-input-md{left:unset;right:unset;right:0}.cloned-input.sc-ion-input-md:disabled{opacity:1}.input-clear-icon.sc-ion-input-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;background-position:center;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:30px;height:30px;border:0;outline:none;background-color:transparent;background-repeat:no-repeat;color:var(--ion-color-step-600, #666666);visibility:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}.in-item-color.sc-ion-input-md-h .input-clear-icon.sc-ion-input-md{color:inherit}.input-clear-icon.sc-ion-input-md:focus{opacity:0.5}.has-value.sc-ion-input-md-h .input-clear-icon.sc-ion-input-md{visibility:visible}.has-focus.sc-ion-input-md-h{pointer-events:none}.has-focus.sc-ion-input-md-h input.sc-ion-input-md,.has-focus.sc-ion-input-md-h a.sc-ion-input-md,.has-focus.sc-ion-input-md-h button.sc-ion-input-md{pointer-events:auto}.item-label-floating.item-has-placeholder.sc-ion-input-md-h:not(.item-has-value),.item-label-floating.item-has-placeholder:not(.item-has-value) .sc-ion-input-md-h{opacity:0}.item-label-floating.item-has-placeholder.sc-ion-input-md-h:not(.item-has-value).item-has-focus,.item-label-floating.item-has-placeholder:not(.item-has-value).item-has-focus .sc-ion-input-md-h{-webkit-transition:opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);opacity:1}.sc-ion-input-md-h{--padding-top:10px;--padding-end:0;--padding-bottom:10px;--padding-start:8px;font-size:inherit}.item-label-stacked.sc-ion-input-md-h,.item-label-stacked .sc-ion-input-md-h,.item-label-floating.sc-ion-input-md-h,.item-label-floating .sc-ion-input-md-h{--padding-top:8px;--padding-bottom:8px;--padding-start:0}.input-clear-icon.sc-ion-input-md ion-icon.sc-ion-input-md{width:22px;height:22px}\";\n\nconst Input = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.ionInput = createEvent(this, \"ionInput\", 7);\n this.ionChange = createEvent(this, \"ionChange\", 7);\n this.ionBlur = createEvent(this, \"ionBlur\", 7);\n this.ionFocus = createEvent(this, \"ionFocus\", 7);\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n this.inputId = `ion-input-${inputIds++}`;\n this.didBlurAfterEdit = false;\n this.inheritedAttributes = {};\n this.isComposing = false;\n /**\n * This is required for a WebKit bug which requires us to\n * blur and focus an input to properly focus the input in\n * an item with delegatesFocus. It will no longer be needed\n * with iOS 14.\n *\n * @internal\n */\n this.fireFocusEvents = true;\n this.hasFocus = false;\n /**\n * Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\n * Available options: `\"off\"`, `\"none\"`, `\"on\"`, `\"sentences\"`, `\"words\"`, `\"characters\"`.\n */\n this.autocapitalize = 'off';\n /**\n * Indicates whether the value of the control can be automatically completed by the browser.\n */\n this.autocomplete = 'off';\n /**\n * Whether auto correction should be enabled when the user is entering/editing the text value.\n */\n this.autocorrect = 'off';\n /**\n * This Boolean attribute lets you specify that a form control should have input focus when the page loads.\n */\n this.autofocus = false;\n /**\n * If `true`, a clear icon will appear in the input when there is a value. Clicking it clears the input.\n */\n this.clearInput = false;\n /**\n * Set the amount of time, in milliseconds, to wait to trigger the `ionChange` event after each keystroke. This also impacts form bindings such as `ngModel` or `v-model`.\n */\n this.debounce = 0;\n /**\n * If `true`, the user cannot interact with the input.\n */\n this.disabled = false;\n /**\n * The name of the control, which is submitted with the form data.\n */\n this.name = this.inputId;\n /**\n * If `true`, the user cannot modify the value.\n */\n this.readonly = false;\n /**\n * If `true`, the user must fill in a value before submitting a form.\n */\n this.required = false;\n /**\n * If `true`, the element will have its spelling and grammar checked.\n */\n this.spellcheck = false;\n /**\n * The type of control to display. The default type is text.\n */\n this.type = 'text';\n /**\n * The value of the input.\n */\n this.value = '';\n this.onInput = (ev) => {\n const input = ev.target;\n if (input) {\n this.value = input.value || '';\n }\n this.ionInput.emit(ev);\n };\n this.onBlur = (ev) => {\n this.hasFocus = false;\n this.focusChanged();\n this.emitStyle();\n if (this.fireFocusEvents) {\n this.ionBlur.emit(ev);\n }\n };\n this.onFocus = (ev) => {\n this.hasFocus = true;\n this.focusChanged();\n this.emitStyle();\n if (this.fireFocusEvents) {\n this.ionFocus.emit(ev);\n }\n };\n this.onKeydown = (ev) => {\n if (this.shouldClearOnEdit()) {\n // Did the input value change after it was blurred and edited?\n // Do not clear if user is hitting Enter to submit form\n if (this.didBlurAfterEdit && this.hasValue() && ev.key !== 'Enter') {\n // Clear the input\n this.clearTextInput();\n }\n // Reset the flag\n this.didBlurAfterEdit = false;\n }\n };\n this.onCompositionStart = () => {\n this.isComposing = true;\n };\n this.onCompositionEnd = () => {\n this.isComposing = false;\n };\n this.clearTextInput = (ev) => {\n if (this.clearInput && !this.readonly && !this.disabled && ev) {\n ev.preventDefault();\n ev.stopPropagation();\n // Attempt to focus input again after pressing clear button\n this.setFocus();\n }\n this.value = '';\n /**\n * This is needed for clearOnEdit\n * Otherwise the value will not be cleared\n * if user is inside the input\n */\n if (this.nativeInput) {\n this.nativeInput.value = '';\n }\n };\n }\n debounceChanged() {\n this.ionChange = debounceEvent(this.ionChange, this.debounce);\n }\n disabledChanged() {\n this.emitStyle();\n }\n /**\n * Update the item classes when the placeholder changes\n */\n placeholderChanged() {\n this.emitStyle();\n }\n /**\n * Update the native input element when the value changes\n */\n valueChanged() {\n const nativeInput = this.nativeInput;\n const value = this.getValue();\n if (nativeInput && nativeInput.value !== value && !this.isComposing) {\n /**\n * Assigning the native input's value on attribute\n * value change, allows `ionInput` implementations\n * to override the control's value.\n *\n * Used for patterns such as input trimming (removing whitespace),\n * or input masking.\n */\n nativeInput.value = value;\n }\n this.emitStyle();\n this.ionChange.emit({ value: this.value == null ? this.value : this.value.toString() });\n }\n componentWillLoad() {\n this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes(this.el, ['tabindex', 'title', 'data-form-type']));\n }\n connectedCallback() {\n this.emitStyle();\n this.debounceChanged();\n if (Build.isBrowser) {\n document.dispatchEvent(new CustomEvent('ionInputDidLoad', {\n detail: this.el,\n }));\n }\n }\n componentDidLoad() {\n const nativeInput = this.nativeInput;\n if (nativeInput) {\n // TODO: FW-729 Update to JSX bindings when Stencil resolves bug with:\n // https://github.com/ionic-team/stencil/issues/3235\n nativeInput.addEventListener('compositionstart', this.onCompositionStart);\n nativeInput.addEventListener('compositionend', this.onCompositionEnd);\n }\n }\n disconnectedCallback() {\n if (Build.isBrowser) {\n document.dispatchEvent(new CustomEvent('ionInputDidUnload', {\n detail: this.el,\n }));\n }\n const nativeInput = this.nativeInput;\n if (nativeInput) {\n nativeInput.removeEventListener('compositionstart', this.onCompositionStart);\n nativeInput.removeEventListener('compositionend', this.onCompositionEnd);\n }\n }\n /**\n * Sets focus on the native `input` in `ion-input`. Use this method instead of the global\n * `input.focus()`.\n *\n * Developers who wish to focus an input when a page enters\n * should call `setFocus()` in the `ionViewDidEnter()` lifecycle method.\n */\n async setFocus() {\n if (this.nativeInput) {\n this.nativeInput.focus();\n }\n }\n /**\n * Sets blur on the native `input` in `ion-input`. Use this method instead of the global\n * `input.blur()`.\n * @internal\n */\n async setBlur() {\n if (this.nativeInput) {\n this.nativeInput.blur();\n }\n }\n /**\n * Returns the native `` element used under the hood.\n */\n getInputElement() {\n return Promise.resolve(this.nativeInput);\n }\n shouldClearOnEdit() {\n const { type, clearOnEdit } = this;\n return clearOnEdit === undefined ? type === 'password' : clearOnEdit;\n }\n getValue() {\n return typeof this.value === 'number' ? this.value.toString() : (this.value || '').toString();\n }\n emitStyle() {\n this.ionStyle.emit({\n interactive: true,\n input: true,\n 'has-placeholder': this.placeholder !== undefined,\n 'has-value': this.hasValue(),\n 'has-focus': this.hasFocus,\n 'interactive-disabled': this.disabled,\n });\n }\n focusChanged() {\n // If clearOnEdit is enabled and the input blurred but has a value, set a flag\n if (!this.hasFocus && this.shouldClearOnEdit() && this.hasValue()) {\n this.didBlurAfterEdit = true;\n }\n }\n hasValue() {\n return this.getValue().length > 0;\n }\n render() {\n const mode = getIonMode(this);\n const value = this.getValue();\n const labelId = this.inputId + '-lbl';\n const label = findItemLabel(this.el);\n if (label) {\n label.id = labelId;\n }\n return (h(Host, { \"aria-disabled\": this.disabled ? 'true' : null, class: createColorClasses(this.color, {\n [mode]: true,\n 'has-value': this.hasValue(),\n 'has-focus': this.hasFocus,\n 'in-item-color': hostContext('ion-item.ion-color', this.el),\n }) }, h(\"input\", Object.assign({ class: \"native-input\", ref: (input) => (this.nativeInput = input), \"aria-labelledby\": label ? labelId : null, disabled: this.disabled, accept: this.accept, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, size: this.size, type: this.type, value: value, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown }, this.inheritedAttributes)), this.clearInput && !this.readonly && !this.disabled && (h(\"button\", { \"aria-label\": \"reset\", type: \"button\", class: \"input-clear-icon\", onPointerDown: (ev) => {\n /**\n * This prevents mobile browsers from\n * blurring the input when the clear\n * button is activated.\n */\n ev.preventDefault();\n }, onClick: this.clearTextInput }, h(\"ion-icon\", { \"aria-hidden\": \"true\", icon: mode === 'ios' ? closeCircle : closeSharp })))));\n }\n get el() { return this; }\n static get watchers() { return {\n \"debounce\": [\"debounceChanged\"],\n \"disabled\": [\"disabledChanged\"],\n \"placeholder\": [\"placeholderChanged\"],\n \"value\": [\"valueChanged\"]\n }; }\n static get style() { return {\n ios: inputIosCss,\n md: inputMdCss\n }; }\n}, [34, \"ion-input\", {\n \"fireFocusEvents\": [4, \"fire-focus-events\"],\n \"color\": [513],\n \"accept\": [1],\n \"autocapitalize\": [1],\n \"autocomplete\": [1],\n \"autocorrect\": [1],\n \"autofocus\": [4],\n \"clearInput\": [4, \"clear-input\"],\n \"clearOnEdit\": [4, \"clear-on-edit\"],\n \"debounce\": [2],\n \"disabled\": [4],\n \"enterkeyhint\": [1],\n \"inputmode\": [1],\n \"max\": [8],\n \"maxlength\": [2],\n \"min\": [8],\n \"minlength\": [2],\n \"multiple\": [4],\n \"name\": [1],\n \"pattern\": [1],\n \"placeholder\": [1],\n \"readonly\": [4],\n \"required\": [4],\n \"spellcheck\": [4],\n \"step\": [1],\n \"size\": [2],\n \"type\": [1],\n \"value\": [1032],\n \"hasFocus\": [32],\n \"setFocus\": [64],\n \"setBlur\": [64],\n \"getInputElement\": [64]\n }]);\nlet inputIds = 0;\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-input\", \"ion-icon\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-input\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Input);\n }\n break;\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonInput = Input;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonInput, defineCustomElement };\n"],"names":["App","constructor","super","this","__registerHost","componentDidLoad","rIC","async","isHybrid","window","c","then","module","startTapClick","startStatusTap","needInputShims","platform","startInputShims","hardwareBackButtonModule","startHardwareBackButton","blockHardwareBackButton","startKeyboardAssist","focusVisible","startFocusVisible","elements","setFocus","render","mode","h","class","el","style","callback","requestIdleCallback","setTimeout","defineCustomElement","customElements","forEach","tagName","get","define","Avatar","__attachShadow","ios","md","IonButton","B","Content","ionScrollStart","ionScroll","ionScrollEnd","watchDog","isScrolling","lastScroll","queued","cTop","cBottom","isMainContent","resizeTimeout","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","onResize","clearTimeout","offsetParent","shouldForceOverscroll","forceOverscroll","readDimensions","page","getPageElement","top","Math","max","offsetTop","bottom","offsetHeight","onScroll","ev","timeStamp","Date","now","shouldStart","onScrollStart","ts","updateScrollDetail","scrollEl","emit","Promise","resolve","backgroundContentEl","scrollToTop","duration","scrollToPoint","getScrollElement","y","scrollHeight","clientHeight","x","promise","r","fromY","fromX","step","linearTime","min","easedT","pow","floor","requestAnimationFrame","clearInterval","setInterval","rtl","i","transitionShadow","TagType","color","overscroll","ref","id","part","name","tabs","_a","parentElement","parentNode","host","getParentElement","timestamp","prevX","prevY","prevT","timeDelta","handleFooterFade","baseEl","distanceToStart","scale","setProperty","toString","Footer","keyboardCtrl","keyboardVisible","translucent","checkCollapsibleFooter","collapse","hasFade","destroyCollapsibleFooter","pageEl","contentEl","f","p","setupFadeFooter","g","contentScrollCallback","addEventListener","componentDidUpdate","keyboardOpen","destroy","removeEventListener","tabBar","querySelector","role","slot","cloneElement","getCachedEl","document","clonedEl","createElement","classList","add","body","appendChild","createHeaderIndex","headerEl","toolbars","querySelectorAll","Array","from","map","toolbar","ionTitleEl","background","shadowRoot","innerTitleEl","ionButtonsEl","setToolbarBackgroundOpacity","opacity","removeProperty","handleToolbarIntersection","mainHeaderIndex","scrollHeaderIndex","isIntersecting","intersectionRatio","handleToolbarBorderIntersection","intersection","intersectionRect","intersectionArea","width","height","rootArea","rootBounds","isPageHidden","leftDiff","abs","left","boundingClientRect","rightDiff","right","setHeaderActive","headerIndex","active","remove","removeAttribute","setAttribute","scaleLargeTitles","transition","ionTitle","titleDiv","size","transform","handleHeaderFade","condenseHeader","baseElHeight","fadeStart","Header","inheritedAttributes","setupFadeHeader","componentWillLoad","checkCollapsibleHeader","destroyCollapsibleHeader","hasCondense","setupCondenseHeader","intersectionObserver","disconnect","collapsibleMainHeader","IntersectionObserver","headers","find","header","root","threshold","observe","length","handleContentScroll","roleType","Object","assign","Img","ionImgWillLoad","ionImgDidLoad","ionError","onLoad","onError","srcChanged","addIO","src","IntersectionObserverEntry","prototype","removeIO","io","load","loadError","loadSrc","alt","draggable","decoding","isDraggable","watchers","Input","ionInput","ionChange","ionBlur","ionFocus","ionStyle","inputId","inputIds","didBlurAfterEdit","isComposing","fireFocusEvents","hasFocus","autocapitalize","autocomplete","autocorrect","autofocus","clearInput","debounce","disabled","readonly","required","spellcheck","value","onInput","input","target","onBlur","focusChanged","emitStyle","onFocus","onKeydown","shouldClearOnEdit","hasValue","key","clearTextInput","onCompositionStart","onCompositionEnd","preventDefault","stopPropagation","nativeInput","debounceChanged","disabledChanged","placeholderChanged","valueChanged","getValue","dispatchEvent","CustomEvent","focus","blur","getInputElement","clearOnEdit","interactive","placeholder","labelId","label","accept","autoCapitalize","autoComplete","autoCorrect","autoFocus","enterKeyHint","enterkeyhint","inputMode","inputmode","minLength","minlength","maxLength","maxlength","multiple","pattern","readOnly","onKeyDown","onPointerDown","onClick","icon","d"],"sourceRoot":""}