{"version":3,"file":"common.js","mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACqD;AACkE;AACnE;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iEAAa;AACtB;AACA;AACA;AACA,qEAAqE,kDAAoB;AACzF,oEAAoE,kDAAsB;AAC1F;AACA;AACA,MAAM,sDAAkB;AACxB;AACA,KAAK;AACL,GAAG;AACH;;AAE0C;;;;;;;;;;;;;;;AClE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEsB;;;;;;;;;;;;;;;ACjBtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE6B;;;;;;;;;;;;;;;;;;;;;ACzE7B;AACA;AACA;AACA;;AAEA,MAAME,eAAe;AAAA,mJAAG,WAAOC,QAAP,EAAiBC,SAAjB,EAA4BC,SAA5B,EAAuCC,UAAvC,EAAmDC,cAAnD,EAAmEC,MAAnE,EAA8E;AACpG,QAAIC,EAAJ;;AACA,QAAIN,QAAJ,EAAc;AACZ,aAAOA,QAAQ,CAACO,eAAT,CAAyBN,SAAzB,EAAoCC,SAApC,EAA+CE,cAA/C,EAA+DD,UAA/D,CAAP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1D;AACA;AACJ;AACA;AACA;AACA;;AACIV,MAAAA,SAAS,GAAGQ,QAAQ,CAACG,aAAT,CAAuB,gBAAvB,CAAZ;AACAZ,MAAAA,aAAa,CAACa,UAAd,CAAyBC,YAAzB,CAAsCb,SAAtC,EAAiDD,aAAjD;AACAQ,MAAAA,GAAG,CAACjB,WAAJ,CAAgBS,aAAhB;AACA,aAAOA,aAAP;AACD,KAvDoB;;AAAA,oBAAfpB,eAAe;AAAA;AAAA;AAAA,KAArB;;AAwDA,QAAMiB,iBAAiB,GAAG,MAAM;AAC9B;AACJ;AACA;AACI,QAAIG,aAAa,IAAIC,SAArB,EAAgC;AAC9BA,MAAAA,SAAS,CAACY,UAAV,CAAqBC,YAArB,CAAkCd,aAAlC,EAAiDC,SAAjD;AACAA,MAAAA,SAAS,CAACH,MAAV;AACD;;AACD,WAAON,OAAO,CAACC,OAAR,EAAP;AACD,GATD;;AAUA,SAAO;AAAEb,IAAAA,eAAF;AAAmBiB,IAAAA;AAAnB,GAAP;AACD,CAtED;;;;;;;;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,OAAO;AACjC,GAAG;AACH;AACA,kBAAkB,gBAAgB;AAClC,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gBAAgB;AAC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AClD,kCAAkC;AAClC,wCAAwC;AACxC,uCAAuC;AACvC,+CAA+C;AAC/C,wCAAwC;AACxC,sCAAsC;AACtC,gDAAgD;AAChD,4CAA4C;AAC5C,0CAA0C;AAC1C,wCAAwC;;AAEyV;;;;;;;;;;;;;;;;;;;;;;;;;ACxBjY;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE8N;;;;;;;;;;;;;;;AC/H9N;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA,kBAAkB,oBAAoB;AACtC,mBAAmB,oBAAoB;AACvC;AACA,SAAS;AACT;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA,kBAAkB,oBAAoB;AACtC,mBAAmB,oBAAoB;AACvC;AACA,SAAS;AACT;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA,SAAS;AACT;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,kCAAkC,yDAAyD;AAC3F,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,kCAAkC,yDAAyD;AAC3F,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,kCAAkC,sCAAsC;AACxE,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,kCAAkC,sCAAsC;AACxE,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEyB;;;;;;;;;;;;;;;;;;;AChJzB;AACA;AACA;AACmD;AACJ;AACK;AACV;;AAE1C;AACA;AACA,cAAc,mDAAK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,uDAAK;AAC9D;AACA,SAAS,iEAAa;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEkC;;;;;;;;;;;;;;;;;;;;;ACzElC;AACA;AACA;AACA,MAAM2B,WAAW,GAAG,CAACC,QAAD,EAAWjE,EAAX,KAAkB;AACpC,SAAOA,EAAE,CAAC8C,OAAH,CAAWmB,QAAX,MAAyB,IAAhC;AACD,CAFD;AAGA;AACA;AACA;;;AACA,MAAMC,kBAAkB,GAAG,CAACC,KAAD,EAAQC,WAAR,KAAwB;AACjD,SAAO,OAAOD,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,CAAC5C,MAAN,GAAe,CAA5C,GACHjB,MAAM,CAACC,MAAP,CAAc;AAAE,iBAAa,IAAf;AAAqB,KAAE,aAAY4D,KAAM,EAApB,GAAwB;AAA7C,GAAd,EAAmEC,WAAnE,CADG,GAC+EA,WADtF;AAED,CAHD;;AAIA,MAAMC,YAAY,GAAIC,OAAD,IAAa;AAChC,MAAIA,OAAO,KAAKC,SAAhB,EAA2B;AACzB,UAAMC,KAAK,GAAGC,KAAK,CAACC,OAAN,CAAcJ,OAAd,IAAyBA,OAAzB,GAAmCA,OAAO,CAACK,KAAR,CAAc,GAAd,CAAjD;AACA,WAAOH,KAAK,CACTI,MADI,CACIzF,CAAD,IAAOA,CAAC,IAAI,IADf,EAEJ0F,GAFI,CAEC1F,CAAD,IAAOA,CAAC,CAAC2F,IAAF,EAFP,EAGJF,MAHI,CAGIzF,CAAD,IAAOA,CAAC,KAAK,EAHhB,CAAP;AAID;;AACD,SAAO,EAAP;AACD,CATD;;AAUA,MAAM4F,WAAW,GAAIT,OAAD,IAAa;AAC/B,QAAMO,GAAG,GAAG,EAAZ;AACAR,EAAAA,YAAY,CAACC,OAAD,CAAZ,CAAsBnE,OAAtB,CAA+BhB,CAAD,IAAQ0F,GAAG,CAAC1F,CAAD,CAAH,GAAS,IAA/C;AACA,SAAO0F,GAAP;AACD,CAJD;;AAKA,MAAMG,MAAM,GAAG,sBAAf;;AACA,MAAMC,OAAO;AAAA,mJAAG,WAAOC,GAAP,EAAYC,EAAZ,EAAgBC,SAAhB,EAA2BC,SAA3B,EAAyC;AACvD,QAAIH,GAAG,IAAI,IAAP,IAAeA,GAAG,CAAC,CAAD,CAAH,KAAW,GAA1B,IAAiC,CAACF,MAAM,CAACM,IAAP,CAAYJ,GAAZ,CAAtC,EAAwD;AACtD,YAAMK,MAAM,GAAG7D,QAAQ,CAACC,aAAT,CAAuB,YAAvB,CAAf;;AACA,UAAI4D,MAAJ,EAAY;AACV,YAAIJ,EAAE,IAAI,IAAV,EAAgB;AACdA,UAAAA,EAAE,CAACK,cAAH;AACD;;AACD,eAAOD,MAAM,CAACE,IAAP,CAAYP,GAAZ,EAAiBE,SAAjB,EAA4BC,SAA5B,CAAP;AACD;AACF;;AACD,WAAO,KAAP;AACD,GAXY;;AAAA,kBAAPJ,OAAO;AAAA;AAAA;AAAA,GAAb","sources":["./node_modules/@ionic/core/dist/esm/button-active-70de495b.js","./node_modules/@ionic/core/dist/esm/dir-e8b767a8.js","./node_modules/@ionic/core/dist/esm/focus-visible-5ad6825d.js","./node_modules/@ionic/core/dist/esm/framework-delegate-ce4f806c.js","./node_modules/@ionic/core/dist/esm/haptic-683b3b3c.js","./node_modules/@ionic/core/dist/esm/index-3eb591f3.js","./node_modules/@ionic/core/dist/esm/index-9ac92660.js","./node_modules/@ionic/core/dist/esm/index-e3f61316.js","./node_modules/@ionic/core/dist/esm/keyboard-4d5544a0.js","./node_modules/@ionic/core/dist/esm/spinner-configs-5d6b6fe7.js","./node_modules/@ionic/core/dist/esm/swipe-back-fa30a130.js","./node_modules/@ionic/core/dist/esm/theme-7670341c.js"],"sourcesContent":["/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { c as writeTask } from './index-b3eecb14.js';\nimport { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-683b3b3c.js';\nimport { createGesture } from './index-3f1a7d95.js';\n\nconst createButtonActiveGesture = (el, isButton) => {\n let currentTouchedButton;\n let initialTouchedButton;\n const activateButtonAtPoint = (x, y, hapticFeedbackFn) => {\n if (typeof document === 'undefined') {\n return;\n }\n const target = document.elementFromPoint(x, y);\n if (!target || !isButton(target)) {\n clearActiveButton();\n return;\n }\n if (target !== currentTouchedButton) {\n clearActiveButton();\n setActiveButton(target, hapticFeedbackFn);\n }\n };\n const setActiveButton = (button, hapticFeedbackFn) => {\n currentTouchedButton = button;\n if (!initialTouchedButton) {\n initialTouchedButton = currentTouchedButton;\n }\n const buttonToModify = currentTouchedButton;\n writeTask(() => buttonToModify.classList.add('ion-activated'));\n hapticFeedbackFn();\n };\n const clearActiveButton = (dispatchClick = false) => {\n if (!currentTouchedButton) {\n return;\n }\n const buttonToModify = currentTouchedButton;\n writeTask(() => buttonToModify.classList.remove('ion-activated'));\n /**\n * Clicking on one button, but releasing on another button\n * does not dispatch a click event in browsers, so we\n * need to do it manually here. Some browsers will\n * dispatch a click if clicking on one button, dragging over\n * another button, and releasing on the original button. In that\n * case, we need to make sure we do not cause a double click there.\n */\n if (dispatchClick && initialTouchedButton !== currentTouchedButton) {\n currentTouchedButton.click();\n }\n currentTouchedButton = undefined;\n };\n return createGesture({\n el,\n gestureName: 'buttonActiveDrag',\n threshold: 0,\n onStart: (ev) => activateButtonAtPoint(ev.currentX, ev.currentY, hapticSelectionStart),\n onMove: (ev) => activateButtonAtPoint(ev.currentX, ev.currentY, hapticSelectionChanged),\n onEnd: () => {\n clearActiveButton(true);\n hapticSelectionEnd();\n initialTouchedButton = undefined;\n },\n });\n};\n\nexport { createButtonActiveGesture as c };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n/**\n * Returns `true` if the document or host element\n * has a `dir` set to `rtl`. The host value will always\n * take priority over the root document value.\n */\nconst isRTL = (hostEl) => {\n if (hostEl) {\n if (hostEl.dir !== '') {\n return hostEl.dir.toLowerCase() === 'rtl';\n }\n }\n return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';\n};\n\nexport { isRTL as i };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nconst ION_FOCUSED = 'ion-focused';\nconst ION_FOCUSABLE = 'ion-focusable';\nconst FOCUS_KEYS = [\n 'Tab',\n 'ArrowDown',\n 'Space',\n 'Escape',\n ' ',\n 'Shift',\n 'Enter',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'Home',\n 'End',\n];\nconst startFocusVisible = (rootEl) => {\n let currentFocus = [];\n let keyboardMode = true;\n const ref = rootEl ? rootEl.shadowRoot : document;\n const root = rootEl ? rootEl : document.body;\n const setFocus = (elements) => {\n currentFocus.forEach((el) => el.classList.remove(ION_FOCUSED));\n elements.forEach((el) => el.classList.add(ION_FOCUSED));\n currentFocus = elements;\n };\n const pointerDown = () => {\n keyboardMode = false;\n setFocus([]);\n };\n const onKeydown = (ev) => {\n keyboardMode = FOCUS_KEYS.includes(ev.key);\n if (!keyboardMode) {\n setFocus([]);\n }\n };\n const onFocusin = (ev) => {\n if (keyboardMode && ev.composedPath) {\n const toFocus = ev.composedPath().filter((el) => {\n if (el.classList) {\n return el.classList.contains(ION_FOCUSABLE);\n }\n return false;\n });\n setFocus(toFocus);\n }\n };\n const onFocusout = () => {\n if (ref.activeElement === root) {\n setFocus([]);\n }\n };\n ref.addEventListener('keydown', onKeydown);\n ref.addEventListener('focusin', onFocusin);\n ref.addEventListener('focusout', onFocusout);\n ref.addEventListener('touchstart', pointerDown);\n ref.addEventListener('mousedown', pointerDown);\n const destroy = () => {\n ref.removeEventListener('keydown', onKeydown);\n ref.removeEventListener('focusin', onFocusin);\n ref.removeEventListener('focusout', onFocusout);\n ref.removeEventListener('touchstart', pointerDown);\n ref.removeEventListener('mousedown', pointerDown);\n };\n return {\n destroy,\n setFocus,\n };\n};\n\nexport { startFocusVisible };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { c as componentOnReady } from './helpers-4d272360.js';\n\nconst attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {\n var _a;\n if (delegate) {\n return delegate.attachViewToDom(container, component, componentProps, cssClasses);\n }\n if (!inline && typeof component !== 'string' && !(component instanceof HTMLElement)) {\n throw new Error('framework delegate is missing');\n }\n const el = typeof component === 'string' ? (_a = container.ownerDocument) === null || _a === void 0 ? void 0 : _a.createElement(component) : component;\n if (cssClasses) {\n cssClasses.forEach((c) => el.classList.add(c));\n }\n if (componentProps) {\n Object.assign(el, componentProps);\n }\n container.appendChild(el);\n await new Promise((resolve) => componentOnReady(el, resolve));\n return el;\n};\nconst detachComponent = (delegate, element) => {\n if (element) {\n if (delegate) {\n const container = element.parentElement;\n return delegate.removeViewFromDom(container, element);\n }\n element.remove();\n }\n return Promise.resolve();\n};\nconst CoreDelegate = () => {\n let BaseComponent;\n let Reference;\n const attachViewToDom = async (parentElement, userComponent, userComponentProps = {}, cssClasses = []) => {\n var _a, _b;\n BaseComponent = parentElement;\n /**\n * If passing in a component via the `component` props\n * we need to append it inside of our overlay component.\n */\n if (userComponent) {\n /**\n * If passing in the tag name, create\n * the element otherwise just get a reference\n * to the component.\n */\n const el = typeof userComponent === 'string' ? (_a = BaseComponent.ownerDocument) === null || _a === void 0 ? void 0 : _a.createElement(userComponent) : userComponent;\n /**\n * Add any css classes passed in\n * via the cssClasses prop on the overlay.\n */\n cssClasses.forEach((c) => el.classList.add(c));\n /**\n * Add any props passed in\n * via the componentProps prop on the overlay.\n */\n Object.assign(el, userComponentProps);\n /**\n * Finally, append the component\n * inside of the overlay component.\n */\n BaseComponent.appendChild(el);\n await new Promise((resolve) => componentOnReady(el, resolve));\n }\n else if (BaseComponent.children.length > 0) {\n // If there is no component, then we need to create a new parent\n // element to apply the css classes to.\n const el = (_b = BaseComponent.ownerDocument) === null || _b === void 0 ? void 0 : _b.createElement('div');\n cssClasses.forEach((c) => el.classList.add(c));\n // Move each child from the original template to the new parent element.\n el.append(...BaseComponent.children);\n // Append the new parent element to the original parent element.\n BaseComponent.appendChild(el);\n }\n /**\n * Get the root of the app and\n * add the overlay there.\n */\n const app = document.querySelector('ion-app') || document.body;\n /**\n * Create a placeholder comment so that\n * we can return this component to where\n * it was previously.\n */\n Reference = document.createComment('ionic teleport');\n BaseComponent.parentNode.insertBefore(Reference, BaseComponent);\n app.appendChild(BaseComponent);\n return BaseComponent;\n };\n const removeViewFromDom = () => {\n /**\n * Return component to where it was previously in the DOM.\n */\n if (BaseComponent && Reference) {\n Reference.parentNode.insertBefore(BaseComponent, Reference);\n Reference.remove();\n }\n return Promise.resolve();\n };\n return { attachViewToDom, removeViewFromDom };\n};\n\nexport { CoreDelegate as C, attachComponent as a, detachComponent as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nconst HapticEngine = {\n getEngine() {\n var _a;\n const win = window;\n return win.TapticEngine || (((_a = win.Capacitor) === null || _a === void 0 ? void 0 : _a.isPluginAvailable('Haptics')) && win.Capacitor.Plugins.Haptics);\n },\n available() {\n return !!this.getEngine();\n },\n isCordova() {\n return !!window.TapticEngine;\n },\n isCapacitor() {\n const win = window;\n return !!win.Capacitor;\n },\n impact(options) {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n const style = this.isCapacitor() ? options.style.toUpperCase() : options.style;\n engine.impact({ style });\n },\n notification(options) {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n const style = this.isCapacitor() ? options.style.toUpperCase() : options.style;\n engine.notification({ style });\n },\n selection() {\n this.impact({ style: 'light' });\n },\n selectionStart() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionStart();\n }\n else {\n engine.gestureSelectionStart();\n }\n },\n selectionChanged() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionChanged();\n }\n else {\n engine.gestureSelectionChanged();\n }\n },\n selectionEnd() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionEnd();\n }\n else {\n engine.gestureSelectionEnd();\n }\n },\n};\n/**\n * Trigger a selection changed haptic event. Good for one-time events\n * (not for gestures)\n */\nconst hapticSelection = () => {\n HapticEngine.selection();\n};\n/**\n * Tell the haptic engine that a gesture for a selection change is starting.\n */\nconst hapticSelectionStart = () => {\n HapticEngine.selectionStart();\n};\n/**\n * Tell the haptic engine that a selection changed during a gesture.\n */\nconst hapticSelectionChanged = () => {\n HapticEngine.selectionChanged();\n};\n/**\n * Tell the haptic engine we are done with a gesture. This needs to be\n * called lest resources are not properly recycled.\n */\nconst hapticSelectionEnd = () => {\n HapticEngine.selectionEnd();\n};\n/**\n * Use this to indicate success/failure/warning to the user.\n * options should be of the type `{ style: 'light' }` (or `medium`/`heavy`)\n */\nconst hapticImpact = (options) => {\n HapticEngine.impact(options);\n};\n\nexport { hapticSelectionStart as a, hapticSelectionChanged as b, hapticSelection as c, hapticImpact as d, hapticSelectionEnd as h };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { c as componentOnReady } from './helpers-4d272360.js';\nimport { a as printRequiredElementError } from './index-9ac92660.js';\n\nconst ION_CONTENT_TAG_NAME = 'ION-CONTENT';\nconst ION_CONTENT_ELEMENT_SELECTOR = 'ion-content';\nconst ION_CONTENT_CLASS_SELECTOR = '.ion-content-scroll-host';\n/**\n * Selector used for implementations reliant on `` for scroll event changes.\n *\n * Developers should use the `.ion-content-scroll-host` selector to target the element emitting\n * scroll events. With virtual scroll implementations this will be the host element for\n * the scroll viewport.\n */\nconst ION_CONTENT_SELECTOR = `${ION_CONTENT_ELEMENT_SELECTOR}, ${ION_CONTENT_CLASS_SELECTOR}`;\nconst isIonContent = (el) => el && el.tagName === ION_CONTENT_TAG_NAME;\n/**\n * Waits for the element host fully initialize before\n * returning the inner scroll element.\n *\n * For `ion-content` the scroll target will be the result\n * of the `getScrollElement` function.\n *\n * For custom implementations it will be the element host\n * or a selector within the host, if supplied through `scrollTarget`.\n */\nconst getScrollElement = async (el) => {\n if (isIonContent(el)) {\n await new Promise((resolve) => componentOnReady(el, resolve));\n return el.getScrollElement();\n }\n return el;\n};\n/**\n * Queries the element matching the selector for IonContent.\n * See ION_CONTENT_SELECTOR for the selector used.\n */\nconst findIonContent = (el) => {\n /**\n * First we try to query the custom scroll host selector in cases where\n * the implementation is using an outer `ion-content` with an inner custom\n * scroll container.\n */\n const customContentHost = el.querySelector(ION_CONTENT_CLASS_SELECTOR);\n if (customContentHost) {\n return customContentHost;\n }\n return el.querySelector(ION_CONTENT_SELECTOR);\n};\n/**\n * Queries the closest element matching the selector for IonContent.\n */\nconst findClosestIonContent = (el) => {\n return el.closest(ION_CONTENT_SELECTOR);\n};\n/**\n * Scrolls to the top of the element. If an `ion-content` is found, it will scroll\n * using the public API `scrollToTop` with a duration.\n */\nconst scrollToTop = (el, durationMs) => {\n if (isIonContent(el)) {\n const content = el;\n return content.scrollToTop(durationMs);\n }\n return Promise.resolve(el.scrollTo({\n top: 0,\n left: 0,\n behavior: durationMs > 0 ? 'smooth' : 'auto',\n }));\n};\n/**\n * Scrolls by a specified X/Y distance in the component. If an `ion-content` is found, it will scroll\n * using the public API `scrollByPoint` with a duration.\n */\nconst scrollByPoint = (el, x, y, durationMs) => {\n if (isIonContent(el)) {\n const content = el;\n return content.scrollByPoint(x, y, durationMs);\n }\n return Promise.resolve(el.scrollBy({\n top: y,\n left: x,\n behavior: durationMs > 0 ? 'smooth' : 'auto',\n }));\n};\n/**\n * Prints an error informing developers that an implementation requires an element to be used\n * within either the `ion-content` selector or the `.ion-content-scroll-host` class.\n */\nconst printIonContentErrorMsg = (el) => {\n return printRequiredElementError(el, ION_CONTENT_ELEMENT_SELECTOR);\n};\n\nexport { findIonContent as a, scrollByPoint as b, findClosestIonContent as f, getScrollElement as g, printIonContentErrorMsg as p, scrollToTop as s };\n","/*!\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) => {\n return console.warn(`[Ionic Warning]: ${message}`);\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 */\n/* Ionicons v6.0.0, ES Modules */\nconst arrowBackSharp = \"data:image/svg+xml;utf8,Arrow Back\";\nconst arrowDown = \"data:image/svg+xml;utf8,Arrow Down\";\nconst caretBackSharp = \"data:image/svg+xml;utf8,Caret Back\";\nconst caretDownSharp = \"data:image/svg+xml;utf8,Caret Down\";\nconst caretUpSharp = \"data:image/svg+xml;utf8,Caret Up\";\nconst chevronBack = \"data:image/svg+xml;utf8,Chevron Back\";\nconst chevronDown = \"data:image/svg+xml;utf8,Chevron Down\";\nconst chevronForward = \"data:image/svg+xml;utf8,Chevron Forward\";\nconst chevronForwardOutline = \"data:image/svg+xml;utf8,Chevron Forward\";\nconst close = \"data:image/svg+xml;utf8,Close\";\nconst closeCircle = \"data:image/svg+xml;utf8,Close Circle\";\nconst closeSharp = \"data:image/svg+xml;utf8,Close\";\nconst ellipsisHorizontal = \"data:image/svg+xml;utf8,Ellipsis Horizontal\";\nconst menuOutline = \"data:image/svg+xml;utf8,Menu\";\nconst menuSharp = \"data:image/svg+xml;utf8,Menu\";\nconst reorderThreeOutline = \"data:image/svg+xml;utf8,Reorder Three\";\nconst reorderTwoSharp = \"data:image/svg+xml;utf8,Reorder Two\";\nconst searchOutline = \"data:image/svg+xml;utf8,Search\";\nconst searchSharp = \"data:image/svg+xml;utf8,Search\";\n\nexport { arrowBackSharp as a, closeCircle as b, chevronBack as c, closeSharp as d, searchSharp as e, caretBackSharp as f, arrowDown as g, reorderTwoSharp as h, chevronDown as i, chevronForwardOutline as j, ellipsisHorizontal as k, chevronForward as l, caretUpSharp as m, caretDownSharp as n, close as o, menuOutline as p, menuSharp as q, reorderThreeOutline as r, searchOutline as s };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nconst KEYBOARD_DID_OPEN = 'ionKeyboardDidShow';\nconst KEYBOARD_DID_CLOSE = 'ionKeyboardDidHide';\nconst KEYBOARD_THRESHOLD = 150;\nlet previousVisualViewport = {};\nlet currentVisualViewport = {};\nlet keyboardOpen = false;\n/**\n * This is only used for tests\n */\nconst resetKeyboardAssist = () => {\n previousVisualViewport = {};\n currentVisualViewport = {};\n keyboardOpen = false;\n};\nconst startKeyboardAssist = (win) => {\n startNativeListeners(win);\n if (!win.visualViewport) {\n return;\n }\n currentVisualViewport = copyVisualViewport(win.visualViewport);\n win.visualViewport.onresize = () => {\n trackViewportChanges(win);\n if (keyboardDidOpen() || keyboardDidResize(win)) {\n setKeyboardOpen(win);\n }\n else if (keyboardDidClose(win)) {\n setKeyboardClose(win);\n }\n };\n};\n/**\n * Listen for events fired by native keyboard plugin\n * in Capacitor/Cordova so devs only need to listen\n * in one place.\n */\nconst startNativeListeners = (win) => {\n win.addEventListener('keyboardDidShow', (ev) => setKeyboardOpen(win, ev));\n win.addEventListener('keyboardDidHide', () => setKeyboardClose(win));\n};\nconst setKeyboardOpen = (win, ev) => {\n fireKeyboardOpenEvent(win, ev);\n keyboardOpen = true;\n};\nconst setKeyboardClose = (win) => {\n fireKeyboardCloseEvent(win);\n keyboardOpen = false;\n};\n/**\n * Returns `true` if the `keyboardOpen` flag is not\n * set, the previous visual viewport width equal the current\n * visual viewport width, and if the scaled difference\n * of the previous visual viewport height minus the current\n * visual viewport height is greater than KEYBOARD_THRESHOLD\n *\n * We need to be able to accommodate users who have zooming\n * enabled in their browser (or have zoomed in manually) which\n * is why we take into account the current visual viewport's\n * scale value.\n */\nconst keyboardDidOpen = () => {\n const scaledHeightDifference = (previousVisualViewport.height - currentVisualViewport.height) * currentVisualViewport.scale;\n return (!keyboardOpen &&\n previousVisualViewport.width === currentVisualViewport.width &&\n scaledHeightDifference > KEYBOARD_THRESHOLD);\n};\n/**\n * Returns `true` if the keyboard is open,\n * but the keyboard did not close\n */\nconst keyboardDidResize = (win) => {\n return keyboardOpen && !keyboardDidClose(win);\n};\n/**\n * Determine if the keyboard was closed\n * Returns `true` if the `keyboardOpen` flag is set and\n * the current visual viewport height equals the\n * layout viewport height.\n */\nconst keyboardDidClose = (win) => {\n return keyboardOpen && currentVisualViewport.height === win.innerHeight;\n};\n/**\n * Dispatch a keyboard open event\n */\nconst fireKeyboardOpenEvent = (win, nativeEv) => {\n const keyboardHeight = nativeEv ? nativeEv.keyboardHeight : win.innerHeight - currentVisualViewport.height;\n const ev = new CustomEvent(KEYBOARD_DID_OPEN, {\n detail: { keyboardHeight },\n });\n win.dispatchEvent(ev);\n};\n/**\n * Dispatch a keyboard close event\n */\nconst fireKeyboardCloseEvent = (win) => {\n const ev = new CustomEvent(KEYBOARD_DID_CLOSE);\n win.dispatchEvent(ev);\n};\n/**\n * Given a window object, create a copy of\n * the current visual and layout viewport states\n * while also preserving the previous visual and\n * layout viewport states\n */\nconst trackViewportChanges = (win) => {\n previousVisualViewport = Object.assign({}, currentVisualViewport);\n currentVisualViewport = copyVisualViewport(win.visualViewport);\n};\n/**\n * Creates a deep copy of the visual viewport\n * at a given state\n */\nconst copyVisualViewport = (visualViewport) => {\n return {\n width: Math.round(visualViewport.width),\n height: Math.round(visualViewport.height),\n offsetTop: visualViewport.offsetTop,\n offsetLeft: visualViewport.offsetLeft,\n pageTop: visualViewport.pageTop,\n pageLeft: visualViewport.pageLeft,\n scale: visualViewport.scale,\n };\n};\n\nexport { KEYBOARD_DID_CLOSE, KEYBOARD_DID_OPEN, copyVisualViewport, keyboardDidClose, keyboardDidOpen, keyboardDidResize, resetKeyboardAssist, setKeyboardClose, setKeyboardOpen, startKeyboardAssist, trackViewportChanges };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nconst spinners = {\n bubbles: {\n dur: 1000,\n circles: 9,\n fn: (dur, index, total) => {\n const animationDelay = `${(dur * index) / total - dur}ms`;\n const angle = (2 * Math.PI * index) / total;\n return {\n r: 5,\n style: {\n top: `${9 * Math.sin(angle)}px`,\n left: `${9 * Math.cos(angle)}px`,\n 'animation-delay': animationDelay,\n },\n };\n },\n },\n circles: {\n dur: 1000,\n circles: 8,\n fn: (dur, index, total) => {\n const step = index / total;\n const animationDelay = `${dur * step - dur}ms`;\n const angle = 2 * Math.PI * step;\n return {\n r: 5,\n style: {\n top: `${9 * Math.sin(angle)}px`,\n left: `${9 * Math.cos(angle)}px`,\n 'animation-delay': animationDelay,\n },\n };\n },\n },\n circular: {\n dur: 1400,\n elmDuration: true,\n circles: 1,\n fn: () => {\n return {\n r: 20,\n cx: 48,\n cy: 48,\n fill: 'none',\n viewBox: '24 24 48 48',\n transform: 'translate(0,0)',\n style: {},\n };\n },\n },\n crescent: {\n dur: 750,\n circles: 1,\n fn: () => {\n return {\n r: 26,\n style: {},\n };\n },\n },\n dots: {\n dur: 750,\n circles: 3,\n fn: (_, index) => {\n const animationDelay = -(110 * index) + 'ms';\n return {\n r: 6,\n style: {\n left: `${9 - 9 * index}px`,\n 'animation-delay': animationDelay,\n },\n };\n },\n },\n lines: {\n dur: 1000,\n lines: 8,\n fn: (dur, index, total) => {\n const transform = `rotate(${(360 / total) * index + (index < total / 2 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index) / total - dur}ms`;\n return {\n y1: 14,\n y2: 26,\n style: {\n transform: transform,\n 'animation-delay': animationDelay,\n },\n };\n },\n },\n 'lines-small': {\n dur: 1000,\n lines: 8,\n fn: (dur, index, total) => {\n const transform = `rotate(${(360 / total) * index + (index < total / 2 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index) / total - dur}ms`;\n return {\n y1: 12,\n y2: 20,\n style: {\n transform: transform,\n 'animation-delay': animationDelay,\n },\n };\n },\n },\n 'lines-sharp': {\n dur: 1000,\n lines: 12,\n fn: (dur, index, total) => {\n const transform = `rotate(${30 * index + (index < 6 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index) / total - dur}ms`;\n return {\n y1: 17,\n y2: 29,\n style: {\n transform: transform,\n 'animation-delay': animationDelay,\n },\n };\n },\n },\n 'lines-sharp-small': {\n dur: 1000,\n lines: 12,\n fn: (dur, index, total) => {\n const transform = `rotate(${30 * index + (index < 6 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index) / total - dur}ms`;\n return {\n y1: 12,\n y2: 20,\n style: {\n transform: transform,\n 'animation-delay': animationDelay,\n },\n };\n },\n },\n};\nconst SPINNERS = spinners;\n\nexport { SPINNERS as S };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { l as clamp } from './helpers-4d272360.js';\nimport { i as isRTL } from './dir-e8b767a8.js';\nimport { createGesture } from './index-3f1a7d95.js';\nimport './gesture-controller-17e82006.js';\n\nconst createSwipeBackGesture = (el, canStartHandler, onStartHandler, onMoveHandler, onEndHandler) => {\n const win = el.ownerDocument.defaultView;\n const rtl = isRTL(el);\n /**\n * Determine if a gesture is near the edge\n * of the screen. If true, then the swipe\n * to go back gesture should proceed.\n */\n const isAtEdge = (detail) => {\n const threshold = 50;\n const { startX } = detail;\n if (rtl) {\n return startX >= win.innerWidth - threshold;\n }\n return startX <= threshold;\n };\n const getDeltaX = (detail) => {\n return rtl ? -detail.deltaX : detail.deltaX;\n };\n const getVelocityX = (detail) => {\n return rtl ? -detail.velocityX : detail.velocityX;\n };\n const canStart = (detail) => {\n return isAtEdge(detail) && canStartHandler();\n };\n const onMove = (detail) => {\n // set the transition animation's progress\n const delta = getDeltaX(detail);\n const stepValue = delta / win.innerWidth;\n onMoveHandler(stepValue);\n };\n const onEnd = (detail) => {\n // the swipe back gesture has ended\n const delta = getDeltaX(detail);\n const width = win.innerWidth;\n const stepValue = delta / width;\n const velocity = getVelocityX(detail);\n const z = width / 2.0;\n const shouldComplete = velocity >= 0 && (velocity > 0.2 || delta > z);\n const missing = shouldComplete ? 1 - stepValue : stepValue;\n const missingDistance = missing * width;\n let realDur = 0;\n if (missingDistance > 5) {\n const dur = missingDistance / Math.abs(velocity);\n realDur = Math.min(dur, 540);\n }\n /**\n * TODO: stepValue can sometimes return negative values\n * or values greater than 1 which should not be possible.\n * Need to investigate more to find where the issue is.\n */\n onEndHandler(shouldComplete, stepValue <= 0 ? 0.01 : clamp(0, stepValue, 0.9999), realDur);\n };\n return createGesture({\n el,\n gestureName: 'goback-swipe',\n gesturePriority: 40,\n threshold: 10,\n canStart,\n onStart: onStartHandler,\n onMove,\n onEnd,\n });\n};\n\nexport { createSwipeBackGesture };\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":["c","componentOnReady","attachComponent","delegate","container","component","cssClasses","componentProps","inline","_a","attachViewToDom","HTMLElement","Error","el","ownerDocument","createElement","forEach","classList","add","Object","assign","appendChild","Promise","resolve","detachComponent","element","parentElement","removeViewFromDom","remove","CoreDelegate","BaseComponent","Reference","userComponent","userComponentProps","_b","children","length","append","app","document","querySelector","body","createComment","parentNode","insertBefore","C","a","d","printRequiredElementError","ION_CONTENT_TAG_NAME","ION_CONTENT_ELEMENT_SELECTOR","ION_CONTENT_CLASS_SELECTOR","ION_CONTENT_SELECTOR","isIonContent","tagName","getScrollElement","findIonContent","customContentHost","findClosestIonContent","closest","scrollToTop","durationMs","content","scrollTo","top","left","behavior","scrollByPoint","x","y","scrollBy","printIonContentErrorMsg","b","f","g","p","s","hostContext","selector","createColorClasses","color","cssClassMap","getClassList","classes","undefined","array","Array","isArray","split","filter","map","trim","getClassMap","SCHEME","openURL","url","ev","direction","animation","test","router","preventDefault","push","h","o"],"sourceRoot":"webpack:///"}