@ionic/core 8.8.17 → 8.8.18-dev.11786109471.1285bcfb
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ion-app.js +1 -1
- package/components/ion-footer.js +1 -1
- package/components/ion-header.js +1 -1
- package/components/ion-infinite-scroll.js +1 -1
- package/components/ion-item-sliding.js +1 -1
- package/components/ion-modal.js +1 -1
- package/components/ion-range.js +1 -1
- package/components/ion-refresher.js +1 -1
- package/components/ion-reorder-group.js +1 -1
- package/components/ion-router.js +1 -1
- package/components/ion-select-modal.js +1 -1
- package/components/ion-select.js +1 -1
- package/components/{p-KEFO0w3i.js → p-BMaKgJFV.js} +1 -1
- package/components/p-Cp4GRDqq.js +4 -0
- package/components/p-D7uN07a3.js +4 -0
- package/components/p-R8zmRi4c.js +4 -0
- package/components/p-tr4_8ZS8.js +4 -0
- package/components/{p-DJZp0KTQ.js → p-vRBNsYbs.js} +1 -1
- package/dist/cjs/{index-CIrkNXqJ.js → index-Dqpns5vP.js} +32 -0
- package/dist/cjs/{input-shims-CFLg7uzj.js → input-shims-DpA1zUN9.js} +1 -1
- package/dist/cjs/ion-app_8.cjs.entry.js +3 -3
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-modal.cjs.entry.js +34 -66
- package/dist/cjs/ion-range.cjs.entry.js +1 -1
- package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-reorder_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
- package/dist/cjs/{status-tap-BXX8H8_Y.js → status-tap-N1kaBbuk.js} +1 -1
- package/dist/collection/components/modal/gestures/sheet.js +5 -23
- package/dist/collection/components/modal/gestures/swipe-to-close.js +3 -32
- package/dist/collection/components/modal/gestures/utils.js +17 -0
- package/dist/collection/components/refresher/refresher.js +3 -3
- package/dist/collection/utils/content/index.js +30 -0
- package/dist/docs.json +1 -1
- package/dist/esm/{index-MEDq2S8l.js → index-Dw-wN0Ja.js} +31 -1
- package/dist/esm/{input-shims-D10mwcw1.js → input-shims-LXhI7LEx.js} +1 -1
- package/dist/esm/ion-app_8.entry.js +3 -3
- package/dist/esm/ion-infinite-scroll_2.entry.js +1 -1
- package/dist/esm/ion-item-option_3.entry.js +1 -1
- package/dist/esm/ion-modal.entry.js +22 -54
- package/dist/esm/ion-range.entry.js +1 -1
- package/dist/esm/ion-refresher_2.entry.js +3 -3
- package/dist/esm/ion-reorder_2.entry.js +1 -1
- package/dist/esm/ion-route_4.entry.js +1 -1
- package/dist/esm/{status-tap-Kan2W7sh.js → status-tap-vO-6s4Yp.js} +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-0caa922c.entry.js +4 -0
- package/dist/ionic/{p-e0be05c5.entry.js → p-5334df12.entry.js} +1 -1
- package/dist/ionic/{p-20b1a044.entry.js → p-746fa988.entry.js} +1 -1
- package/dist/ionic/p-8158d422.entry.js +4 -0
- package/dist/ionic/{p-Dfbt-q2k.js → p-CmcFnK-B.js} +1 -1
- package/dist/ionic/{p-8fce95d5.entry.js → p-af55a72f.entry.js} +1 -1
- package/dist/ionic/p-b2020591.entry.js +4 -0
- package/dist/ionic/{p-b6a7397c.entry.js → p-b9fadbfe.entry.js} +1 -1
- package/dist/ionic/p-biz8zWmJ.js +4 -0
- package/dist/ionic/{p-485fda23.entry.js → p-d1aac015.entry.js} +1 -1
- package/dist/ionic/p-uWtqTrG8.js +4 -0
- package/dist/types/components/modal/gestures/utils.d.ts +11 -0
- package/dist/types/utils/content/index.d.ts +12 -0
- package/hydrate/index.js +52 -54
- package/hydrate/index.mjs +52 -54
- package/package.json +1 -1
- package/components/p-DHTSTb52.js +0 -4
- package/components/p-DRugphUN.js +0 -4
- package/components/p-VWbRkLT7.js +0 -4
- package/components/p-sijaAIYG.js +0 -4
- package/dist/ionic/p-4ac4f3d6.entry.js +0 -4
- package/dist/ionic/p-9f1103ce.entry.js +0 -4
- package/dist/ionic/p-DSG2s2Eb.js +0 -4
- package/dist/ionic/p-Wk5HzclC.js +0 -4
- package/dist/ionic/p-ad306193.entry.js +0 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import{r as t,e as o,f as i,h as n,d as e,g as r,c as a,a as s,i as l,w as d,j as c}from"./p-tcQvqkiX.js";import{shouldUseCloseWatcher as b}from"./p-BUFIpxKM.js";import{a as h,b as p}from"./p-Nqf6uvGh.js";import{i as g,h as m,c as f,e as u,s as x}from"./p-DIuEbVLu.js";import{i as v}from"./p-C53feagD.js";import{c as k,h as w}from"./p-DiVJyqlX.js";import{a as y,p as z,g as C}from"./p-Wk5HzclC.js";import{c as j}from"./p-CtWGkNnJ.js";import{g as S}from"./p-hHmYLOfE.js";import{a as T,d as D}from"./p-CFlfIb2g.js";import{c as B}from"./p-B-hirT0v.js";import{t as Z}from"./p-VAemlbDS.js";import"./p-ZjP4CjeZ.js";import"./p-D13Eaw-8.js";import"./p-CIGNaXM1.js";const E=class{constructor(o){t(this,o)}componentDidLoad(){this.rIC((async()=>{const t=h(window,"hybrid");if(o.getBoolean("_testing")||import("./p-DoJvtrbw.js").then((t=>t.startTapClick(o))),o.getBoolean("statusTap",t)&&import("./p-DSG2s2Eb.js").then((t=>t.startStatusTap())),o.getBoolean("inputShims",$())){const t=h(window,"ios")?"ios":"android";import("./p-Dfbt-q2k.js").then((i=>i.startInputShims(o,t)))}const n=await import("./p-BUFIpxKM.js"),e=t||b();o.getBoolean("hardwareBackButton",e)?n.startHardwareBackButton():(b()&&i("[ion-app] - experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used."),n.blockHardwareBackButton()),"undefined"!=typeof window&&import("./p-9eeaBrnk.js").then((t=>t.startKeyboardAssist(window))),import("./p-BmVRXR1y.js").then((t=>this.focusVisible=t.startFocusVisible()))}))}disconnectedCallback(){this.loadTimeout&&clearTimeout(this.loadTimeout)}async setFocus(t){this.focusVisible&&this.focusVisible.setFocus(t)}rIC(t){"requestIdleCallback"in window?window.requestIdleCallback(t):this.loadTimeout=setTimeout(t,32)}render(){const t=p(this);return n(e,{key:"77a7459d3e42b3715a5a7e1cf468e2ebc99e54bb",class:{[t]:!0,"ion-page":!0,"force-statusbar-padding":o.getBoolean("_forceStatusbarPadding")}})}get el(){return r(this)}},$=()=>!(!h(window,"ios")||!h(window,"mobile"))||!(!h(window,"android")||!h(window,"mobileweb"));E.style="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}";const I=class{constructor(o){t(this,o),this.collapse=!1}render(){const t=p(this);return n(e,{key:"58c1fc5eb867d0731c63549b1ccb3ec3bbbe6e1b",class:{[t]:!0,"buttons-collapse":this.collapse}},n("slot",{key:"0c8f95b9840c8fa0c4e50be84c5159620a3eb5c8"}))}};I.style={ios:".sc-ion-buttons-ios-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:5px;--padding-end:5px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-ios-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-ios-s ion-button:not(.button-round){--border-radius:4px}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button{--color:initial;--border-color:initial;--background-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-solid,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-solid{--background:var(--ion-color-contrast);--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12;--background-hover:var(--ion-color-base);--background-hover-opacity:0.45;--color:var(--ion-color-base);--color-focused:var(--ion-color-base)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-clear,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-clear{--color-activated:var(--ion-color-contrast);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-outline,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-outline{--color-activated:var(--ion-color-base);--color-focused:var(--ion-color-contrast);--background-activated:var(--ion-color-contrast)}.sc-ion-buttons-ios-s .button-clear,.sc-ion-buttons-ios-s .button-outline{--background-activated:transparent;--background-focused:currentColor;--background-hover:transparent}.sc-ion-buttons-ios-s .button-solid:not(.ion-color){--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12}.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.65em;line-height:0.67}",md:".sc-ion-buttons-md-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:8px;--padding-end:8px;--box-shadow:none;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-md-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-md-s ion-button:not(.button-round){--border-radius:2px}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button{--color:initial;--color-focused:var(--ion-color-contrast);--color-hover:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-contrast);--background-hover:var(--ion-color-contrast)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-solid,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-solid{--background:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-shade);--background-hover:var(--ion-color-base);--color:var(--ion-color-base);--color-focused:var(--ion-color-base);--color-hover:var(--ion-color-base)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-outline,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-outline{--border-color:var(--ion-color-contrast)}.sc-ion-buttons-md-s .button-has-icon-only.button-clear{--padding-top:12px;--padding-end:12px;--padding-bottom:12px;--padding-start:12px;--border-radius:50%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:3rem;height:3rem}.sc-ion-buttons-md-s .button{--background-hover:currentColor}.sc-ion-buttons-md-s .button-solid{--color:var(--ion-toolbar-background, var(--ion-background-color, #fff));--background:var(--ion-toolbar-color, var(--ion-text-color, #424242));--background-activated:transparent;--background-focused:currentColor}.sc-ion-buttons-md-s .button-outline{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--border-color:currentColor}.sc-ion-buttons-md-s .button-clear{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor}.sc-ion-buttons-md-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.8em}"};const L=class{constructor(o){t(this,o),this.ionScrollStart=a(this,"ionScrollStart",7),this.ionScroll=a(this,"ionScroll",7),this.ionScrollEnd=a(this,"ionScrollEnd",7),this.watchDog=null,this.isScrolling=!1,this.lastScroll=0,this.queued=!1,this.cTop=-1,this.cBottom=-1,this.isMainContent=!0,this.resizeTimeout=null,this.inheritedAttributes={},this.tabsElement=null,this.detail={scrollTop:0,scrollLeft:0,type:"scroll",event:void 0,startX:0,startY:0,startTime:0,currentX:0,currentY:0,velocityX:0,velocityY:0,deltaX:0,deltaY:0,currentTime:0,data:void 0,isScrolling:!0},this.fullscreen=!1,this.fixedSlotPlacement="after",this.scrollX=!1,this.scrollY=!0,this.scrollEvents=!1}componentWillLoad(){this.inheritedAttributes=g(this.el)}connectedCallback(){if(this.isMainContent=null===this.el.closest("ion-menu, ion-popover, ion-modal"),m(this.el)){const t=this.tabsElement=this.el.closest("ion-tabs");null!==t&&(this.tabsLoadCallback=()=>this.resize(),t.addEventListener("ionTabBarLoaded",this.tabsLoadCallback))}}disconnectedCallback(){if(this.onScrollEnd(),m(this.el)){const{tabsElement:t,tabsLoadCallback:o}=this;null!==t&&void 0!==o&&t.removeEventListener("ionTabBarLoaded",o),this.tabsElement=null,this.tabsLoadCallback=void 0}this.resizeTimeout&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=null)}onResize(){this.resizeTimeout&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=null),this.resizeTimeout=setTimeout((()=>{null!==this.el.offsetParent&&this.resize()}),100)}shouldForceOverscroll(){const{forceOverscroll:t}=this,o=p(this);return void 0===t?"ios"===o&&h("ios"):t}resize(){this.fullscreen?s((()=>this.readDimensions())):0===this.cTop&&0===this.cBottom||(this.cTop=this.cBottom=0,l(this))}async recalculateDimensions(){s((()=>this.readDimensions()))}readDimensions(){const t=M(this.el),o=Math.max(this.el.offsetTop,0),i=Math.max(t.offsetHeight-o-this.el.offsetHeight,0);(o!==this.cTop||i!==this.cBottom)&&(this.cTop=o,this.cBottom=i,l(this))}onScroll(t){const o=Date.now(),i=!this.isScrolling;this.lastScroll=o,i&&this.onScrollStart(),!this.queued&&this.scrollEvents&&(this.queued=!0,s((o=>{this.queued=!1,this.detail.event=t,O(this.detail,this.scrollEl,o,i),this.ionScroll.emit(this.detail)})))}async getScrollElement(){return this.scrollEl||await new Promise((t=>f(this.el,t))),Promise.resolve(this.scrollEl)}async getBackgroundElement(){return this.backgroundContentEl||await new Promise((t=>f(this.el,t))),Promise.resolve(this.backgroundContentEl)}scrollToTop(t=0){return this.scrollToPoint(void 0,0,t)}async scrollToBottom(t=0){const o=await this.getScrollElement();return this.scrollToPoint(void 0,o.scrollHeight-o.clientHeight,t)}async scrollByPoint(t,o,i){const n=await this.getScrollElement();return this.scrollToPoint(t+n.scrollLeft,o+n.scrollTop,i)}async scrollToPoint(t,o,i=0){const n=await this.getScrollElement();if(i<32)return null!=o&&(n.scrollTop=o),void(null!=t&&(n.scrollLeft=t));let e,r=0;const a=new Promise((t=>e=t)),s=n.scrollTop,l=n.scrollLeft,d=null!=o?o-s:0,c=null!=t?t-l:0,b=t=>{const o=Math.min(1,(t-r)/i)-1,a=Math.pow(o,3)+1;0!==d&&(n.scrollTop=Math.floor(a*d+s)),0!==c&&(n.scrollLeft=Math.floor(a*c+l)),a<1?requestAnimationFrame(b):e()};return requestAnimationFrame((t=>{r=t,b(t)})),a}onScrollStart(){this.isScrolling=!0,this.ionScrollStart.emit({isScrolling:!0}),this.watchDog&&clearInterval(this.watchDog),this.watchDog=setInterval((()=>{this.lastScroll<Date.now()-120&&this.onScrollEnd()}),100)}onScrollEnd(){this.watchDog&&clearInterval(this.watchDog),this.watchDog=null,this.isScrolling&&(this.isScrolling=!1,this.ionScrollEnd.emit({isScrolling:!1}))}render(){const{fixedSlotPlacement:t,inheritedAttributes:o,isMainContent:i,scrollX:r,scrollY:a,el:s}=this,l=v(s)?"rtl":"ltr",d=p(this),c=this.shouldForceOverscroll(),b="ios"===d;return this.resize(),n(e,Object.assign({key:"8c1bc4a4df8698d3884741eb38512dc059210c50",role:i?"main":void 0,class:k(this.color,{[d]:!0,"content-fullscreen":this.fullscreen,"content-sizing":w("ion-popover",this.el),overscroll:c,[`content-${l}`]:!0}),style:{"--offset-top":`${this.cTop}px`,"--offset-bottom":`${this.cBottom}px`}},o),n("div",{key:"5e7412549b51ef7543d9378ecab9aac6bc461588",ref:t=>this.backgroundContentEl=t,id:"background-content",part:"background"}),"before"===t?n("slot",{name:"fixed"}):null,n("div",{key:"33f6fbf7e1e027c7cbd2dda95b487f18dc648cef",class:{"inner-scroll":!0,"scroll-x":r,"scroll-y":a,overscroll:(r||a)&&c},ref:t=>this.scrollEl=t,onScroll:this.scrollEvents?t=>this.onScroll(t):void 0,part:"scroll"},n("slot",{key:"00c8fe7b9e73533c702273c9457d274195d54e98"})),b?n("div",{class:"transition-effect"},n("div",{class:"transition-cover"}),n("div",{class:"transition-shadow"})):null,"after"===t?n("slot",{name:"fixed"}):null)}get el(){return r(this)}},M=t=>{const o=t.closest("ion-tabs");if(o)return o;return t.closest("ion-app, ion-page, .ion-page, page-inner, .popover-content")||(t=>{var o;return t.parentElement?t.parentElement:(null===(o=t.parentNode)||void 0===o?void 0:o.host)?t.parentNode.host:null})(t)},O=(t,o,i,n)=>{const e=t.currentX,r=t.currentY,a=o.scrollLeft,s=o.scrollTop,l=i-t.currentTime;if(n&&(t.startTime=i,t.startX=a,t.startY=s,t.velocityX=t.velocityY=0),t.currentTime=i,t.currentX=t.scrollLeft=a,t.currentY=t.scrollTop=s,t.deltaX=a-t.startX,t.deltaY=s-t.startY,l>0&&l<100){const o=(s-r)/l;t.velocityX=(a-e)/l*.7+.3*t.velocityX,t.velocityY=.7*o+.3*t.velocityY}};L.style=':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)}#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);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--internal-content-safe-area-padding-bottom, 0px));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}.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:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}: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)}';const W=(t,o)=>{s((()=>{const i=u(0,1-(t.scrollTop-(t.scrollHeight-t.clientHeight-10))/10,1);d((()=>{o.style.setProperty("--opacity-scale",i.toString())}))}))},A=class{constructor(o){t(this,o),this.keyboardCtrl=null,this.keyboardCtrlPromise=null,this.keyboardVisible=!1,this.translucent=!1,this.checkCollapsibleFooter=()=>{if("ios"!==p(this))return;const{collapse:t}=this,o="fade"===t;if(this.destroyCollapsibleFooter(),o){const t=this.el.closest("ion-app,ion-page,.ion-page,page-inner"),o=t?y(t):null;if(!o)return void z(this.el);this.setupFadeFooter(o)}},this.setupFadeFooter=async t=>{const o=this.scrollEl=await C(t);this.contentScrollCallback=()=>{W(o,this.el)},o.addEventListener("scroll",this.contentScrollCallback),W(o,this.el)}}componentDidLoad(){this.checkCollapsibleFooter()}componentDidUpdate(){this.checkCollapsibleFooter()}async connectedCallback(){const t=j((async(t,o)=>{!1===t&&void 0!==o&&await o,this.keyboardVisible=t}));this.keyboardCtrlPromise=t;const o=await t;this.keyboardCtrlPromise===t?(this.keyboardCtrl=o,this.keyboardCtrlPromise=null):o.destroy()}disconnectedCallback(){this.keyboardCtrlPromise&&(this.keyboardCtrlPromise.then((t=>t.destroy())),this.keyboardCtrlPromise=null),this.keyboardCtrl&&(this.keyboardCtrl.destroy(),this.keyboardCtrl=null)}destroyCollapsibleFooter(){this.scrollEl&&this.contentScrollCallback&&(this.scrollEl.removeEventListener("scroll",this.contentScrollCallback),this.contentScrollCallback=void 0)}render(){const{translucent:t,collapse:o}=this,i=p(this),r=this.el.closest("ion-tabs"),a=null==r?void 0:r.querySelector(":scope > ion-tab-bar");return n(e,{key:"71939c4bbaef5062532a99ee2e33574102a9abad",role:"contentinfo",class:{[i]:!0,[`footer-${i}`]:!0,"footer-translucent":t,[`footer-translucent-${i}`]:t,"footer-toolbar-padding":!(this.keyboardVisible||a&&"bottom"===a.slot),[`footer-collapse-${o}`]:void 0!==o}},"ios"===i&&t&&n("div",{key:"2fa14f61661c47c661cecd696176728d6eafa74f",class:"footer-background"}),n("slot",{key:"8e63696e7c528d5c38201e546bf08135290d0945"}))}get el(){return r(this)}};A.style={ios:"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}",md:"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{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.footer-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}"};const P="none",X="banner",_=t=>{const o=document.querySelector(`${t}.ion-cloned-element`);if(null!==o)return o;const i=document.createElement(t);return i.classList.add("ion-cloned-element"),i.style.setProperty("display","none"),document.body.appendChild(i),i},F=t=>{if(!t)return;const o=t.querySelectorAll("ion-toolbar");return{el:t,toolbars:Array.from(o).map((t=>{const o=t.querySelector("ion-title");return{el:t,background:t.shadowRoot.querySelector(".toolbar-background"),ionTitleEl:o,innerTitleEl:o?o.shadowRoot.querySelector(".toolbar-title"):null,ionButtonsEl:Array.from(t.querySelectorAll("ion-buttons"))}}))}},H=(t,o)=>{"fade"!==t.collapse&&(void 0===o?t.style.removeProperty("--opacity-scale"):t.style.setProperty("--opacity-scale",o.toString()))},q=(t,o=!0)=>{const i=t.el,n=t.toolbars.map((t=>t.ionTitleEl));o?(i.setAttribute("role",X),i.classList.remove("header-collapse-condense-inactive"),n.forEach((t=>{t&&t.removeAttribute("aria-hidden")}))):(i.setAttribute("role",P),i.classList.add("header-collapse-condense-inactive"),n.forEach((t=>{t&&t.setAttribute("aria-hidden","true")})))},N=(t,o,i)=>{s((()=>{const n=t.scrollTop,e=o.clientHeight,r=i?i.clientHeight:0;if(null!==i&&n<r)return o.style.setProperty("--opacity-scale","0"),void t.style.setProperty("clip-path",`inset(${e}px 0px 0px 0px)`);const a=u(0,(n-r)/10,1);d((()=>{t.style.removeProperty("clip-path"),o.style.setProperty("--opacity-scale",a.toString())}))}))},R=class{constructor(o){t(this,o),this.inheritedAttributes={},this.translucent=!1,this.setupFadeHeader=async(t,o)=>{const i=this.scrollEl=await C(t);this.contentScrollCallback=()=>{N(this.scrollEl,this.el,o)},i.addEventListener("scroll",this.contentScrollCallback),N(this.scrollEl,this.el,o)}}componentWillLoad(){this.inheritedAttributes=g(this.el)}componentDidLoad(){this.checkCollapsibleHeader()}componentDidUpdate(){this.checkCollapsibleHeader()}disconnectedCallback(){this.destroyCollapsibleHeader()}async checkCollapsibleHeader(){if("ios"!==p(this))return;const{collapse:t}=this,o="condense"===t,i="fade"===t;if(this.destroyCollapsibleHeader(),o){const t=this.el.closest("ion-app,ion-page,.ion-page,page-inner"),o=t?y(t):null;d((()=>{_("ion-title").size="large",_("ion-back-button")})),await this.setupCondenseHeader(o,t)}else if(i){const t=this.el.closest("ion-app,ion-page,.ion-page,page-inner"),o=t?y(t):null;if(!o)return void z(this.el);const i=o.querySelector('ion-header[collapse="condense"]');await this.setupFadeHeader(o,i)}}destroyCollapsibleHeader(){this.intersectionObserver&&(this.intersectionObserver.disconnect(),this.intersectionObserver=void 0),this.scrollEl&&this.contentScrollCallback&&(this.scrollEl.removeEventListener("scroll",this.contentScrollCallback),this.contentScrollCallback=void 0),this.collapsibleMainHeader&&(this.collapsibleMainHeader.classList.remove("header-collapse-main"),this.collapsibleMainHeader=void 0)}async setupCondenseHeader(t,o){if(!t||!o)return void z(this.el);if("undefined"==typeof IntersectionObserver)return;this.scrollEl=await C(t);const i=o.querySelectorAll("ion-header");if(this.collapsibleMainHeader=Array.from(i).find((t=>"condense"!==t.collapse)),!this.collapsibleMainHeader)return;const n=F(this.collapsibleMainHeader),e=F(this.el);n&&e&&(q(n,!1),H(n.el,0),this.intersectionObserver=new IntersectionObserver((t=>{((t,o,i,n)=>{d((()=>{const e=n.scrollTop;((t,o,i)=>{if(!t[0].isIntersecting)return;const n=t[0].intersectionRatio>.9||i<=0?0:100*(1-t[0].intersectionRatio)/75;H(o.el,1===n?void 0:n)})(t,o,e);const r=t[0],a=r.intersectionRect,s=a.width*a.height,l=0===s&&0==r.rootBounds.width*r.rootBounds.height,d=Math.abs(a.left-r.boundingClientRect.left),c=Math.abs(a.right-r.boundingClientRect.right);l||s>0&&(d>=5||c>=5)||(r.isIntersecting?(q(o,!1),q(i)):(0===a.x&&0===a.y||0!==a.width&&0!==a.height)&&e>0&&(q(o),q(i,!1),H(o.el)))}))})(t,n,e,this.scrollEl)}),{root:t,threshold:[.25,.3,.4,.5,.6,.7,.8,.9,1]}),this.intersectionObserver.observe(e.toolbars[e.toolbars.length-1].el),this.contentScrollCallback=()=>{((t,o,i)=>{s((()=>{const n=u(1,1+-t.scrollTop/500,1.1);null===i.querySelector("ion-refresher.refresher-native")&&d((()=>{((t=[],o=1,i=!1)=>{t.forEach((t=>{const n=t.ionTitleEl,e=t.innerTitleEl;n&&"large"===n.size&&(e.style.transition=i?"all 0.2s ease-in-out":"",e.style.transform=`scale3d(${o}, ${o}, 1)`)}))})(o.toolbars,n)}))}))})(this.scrollEl,e,t)},this.scrollEl.addEventListener("scroll",this.contentScrollCallback),d((()=>{void 0!==this.collapsibleMainHeader&&this.collapsibleMainHeader.classList.add("header-collapse-main")})))}render(){const{translucent:t,inheritedAttributes:o}=this,i=p(this),r=this.collapse||"none",a="condense"===r,s=((t,o,i)=>t||o&&"md"===i?P:X)(w("ion-menu",this.el),a,i);return n(e,Object.assign({key:"863c4568cd7b8c0ec55109f193bbbaed68a1346e",role:s,class:{[i]:!0,[`header-${i}`]:!0,"header-translucent":this.translucent,[`header-collapse-${r}`]:!0,[`header-translucent-${i}`]:this.translucent}},o),"ios"===i&&t&&n("div",{key:"25c3bdce328b0b35607d154c8b8374679313d881",class:"header-background"}),n("slot",{key:"b44fab0a9be7920b9650da26117c783e751e1702"}))}get el(){return r(this)}};R.style={ios:"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-fade.header-transitioning ion-toolbar{--background:transparent;--border-style:none}.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:0px;z-index:1}.header-collapse-condense ion-toolbar{z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{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 ion-toolbar,.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--background:var(--ion-background-color, #fff)}.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--border-style:none;--opacity-scale:1}.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}ion-header.header-ios:not(.header-collapse-main):has(~ion-content ion-header.header-ios[collapse=condense],~ion-content ion-header.header-ios.header-collapse-condense){opacity:0}",md:"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{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.header-md.header-collapse-condense{display:none}.header-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}"};const Y=class{constructor(o){t(this,o),this.ionNavWillLoad=a(this,"ionNavWillLoad",7),this.ionNavWillChange=a(this,"ionNavWillChange",3),this.ionNavDidChange=a(this,"ionNavDidChange",3),this.lockController=B(),this.gestureOrAnimationInProgress=!1,this.mode=p(this),this.animated=!0}swipeHandlerChanged(){this.gesture&&this.gesture.enable(void 0!==this.swipeHandler)}async connectedCallback(){const t=()=>{this.gestureOrAnimationInProgress=!0,this.swipeHandler&&this.swipeHandler.onStart()};this.gesture=(await import("./p-D4uTWt4-.js")).createSwipeBackGesture(this.el,(()=>!this.gestureOrAnimationInProgress&&!!this.swipeHandler&&this.swipeHandler.canStart()),(()=>t()),(t=>{var o;return null===(o=this.ani)||void 0===o?void 0:o.progressStep(t)}),((t,o,i)=>{if(this.ani){this.ani.onFinish((()=>{this.gestureOrAnimationInProgress=!1,this.swipeHandler&&this.swipeHandler.onEnd(t)}),{oneTimeCallback:!0});let n=t?-.001:.001;t?n+=S([0,0],[.32,.72],[0,1],[1,1],o)[0]:(this.ani.easing("cubic-bezier(1, 0, 0.68, 0.28)"),n+=S([0,0],[1,0],[.68,.28],[1,1],o)[0]),this.ani.progressEnd(t?1:0,n,i)}else this.gestureOrAnimationInProgress=!1})),this.swipeHandlerChanged()}componentWillLoad(){this.ionNavWillLoad.emit()}disconnectedCallback(){this.gesture&&(this.gesture.destroy(),this.gesture=void 0)}async commit(t,o,i){const n=await this.lockController.lock();let e=!1;try{e=await this.transition(t,o,i)}catch(t){c("[ion-router-outlet] - Exception in commit:",t)}return n(),e}async setRouteId(t,o,i,n){return{changed:await this.setRoot(t,o,{duration:"root"===i?0:void 0,direction:"back"===i?"back":"forward",animationBuilder:n}),element:this.activeEl}}async getRouteId(){const t=this.activeEl;return t?{id:t.tagName,element:t,params:this.activeParams}:void 0}async setRoot(t,o,i){if(this.activeComponent===t&&x(o,this.activeParams))return!1;const n=this.activeEl,e=await T(this.delegate,this.el,t,["ion-page","ion-page-invisible"],o);return this.activeComponent=t,this.activeEl=e,this.activeParams=o,await this.commit(e,n,i),await D(this.delegate,n),!0}async transition(t,i,n={}){if(i===t)return!1;this.ionNavWillChange.emit();const{el:e,mode:r}=this,a=this.animated&&o.getBoolean("animated",!0),s=n.animationBuilder||this.animation||o.get("navAnimation");return await Z(Object.assign(Object.assign({mode:r,animated:a,enteringEl:t,leavingEl:i,baseEl:e,deepWait:m(e),progressCallback:n.progressAnimation?t=>{void 0===t||this.gestureOrAnimationInProgress?this.ani=t:(this.gestureOrAnimationInProgress=!0,t.onFinish((()=>{this.gestureOrAnimationInProgress=!1,this.swipeHandler&&this.swipeHandler.onEnd(!1)}),{oneTimeCallback:!0}),t.progressEnd(0,0,0))}:void 0},n),{animationBuilder:s})),this.ionNavDidChange.emit(),!0}render(){return n("slot",{key:"386c41745b61daba161cf75063da97fe29ba36cb"})}get el(){return r(this)}static get watchers(){return{swipeHandler:[{swipeHandlerChanged:0}]}}};Y.style=":host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}";const G=class{constructor(o){t(this,o),this.ionStyle=a(this,"ionStyle",7)}sizeChanged(){this.emitStyle()}connectedCallback(){this.emitStyle()}emitStyle(){const t=this.getSize();this.ionStyle.emit({[`title-${t}`]:!0})}getSize(){return void 0!==this.size?this.size:"default"}render(){const t=p(this),o=this.getSize();return n(e,{key:"44e63f8439df64c470692904427b417e19406476",class:k(this.color,{[t]:!0,[`title-${o}`]:!0,"title-rtl":"rtl"===document.dir})},n("div",{key:"784cf60a0db16045391891cc8fad0c7dbeba4039",class:"toolbar-title"},n("slot",{key:"0c720a50479ba257e8756337aeb9b0ab7516a227"})))}get el(){return r(this)}static get watchers(){return{size:[{sizeChanged:0}]}}};G.style={ios:":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{top:0;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);position:absolute;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);font-size:min(1.0625rem, 20.4px);font-weight:600;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host{inset-inline-start:0}:host(.title-small){-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:min(0.8125rem, 23.4px);font-weight:normal}:host(.title-large){-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:2px;padding-bottom:4px;-webkit-transform-origin:left center;transform-origin:left center;position:static;-ms-flex-align:end;align-items:flex-end;min-width:100%;font-size:min(2.125rem, 61.2px);font-weight:700;text-align:start}:host(.title-large.title-rtl){-webkit-transform-origin:right center;transform-origin:right center}:host(.title-large.ion-cloned-element){--color:var(--ion-text-color, #000);font-family:var(--ion-font-family)}:host(.title-large) .toolbar-title{-webkit-transform-origin:inherit;transform-origin:inherit;width:auto}:host-context([dir=rtl]):host(.title-large) .toolbar-title,:host-context([dir=rtl]).title-large .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}@supports selector(:dir(rtl)){:host(.title-large:dir(rtl)) .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}}",md:":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:0;padding-bottom:0;font-size:1.25rem;font-weight:500;letter-spacing:0.0125em}:host(.title-small){width:100%;height:100%;font-size:0.9375rem;font-weight:normal}"};const U=class{constructor(o){t(this,o),this.childrenStyles=new Map}componentWillLoad(){const t=Array.from(this.el.querySelectorAll("ion-buttons")),o=t.find((t=>"start"===t.slot));o&&o.classList.add("buttons-first-slot");const i=t.reverse(),n=i.find((t=>"end"===t.slot))||i.find((t=>"primary"===t.slot))||i.find((t=>"secondary"===t.slot));n&&n.classList.add("buttons-last-slot")}childrenStyle(t){t.stopPropagation();const o=t.target.tagName,i=t.detail,n={},e=this.childrenStyles.get(o)||{};let r=!1;Object.keys(i).forEach((t=>{const o=`toolbar-${t}`,a=i[t];a!==e[o]&&(r=!0),a&&(n[o]=!0)})),r&&(this.childrenStyles.set(o,n),l(this))}render(){const t=p(this),o={};return this.childrenStyles.forEach((t=>{Object.assign(o,t)})),n(e,{key:"b849db2863778dee6c5a251bffa1b3a657aeb036",class:Object.assign(Object.assign({},o),k(this.color,{[t]:!0,"in-toolbar":w("ion-toolbar",this.el)}))},n("div",{key:"67f5bba9c4f527c3f35bfe1313a2b85741f9b246",class:"toolbar-background",part:"background"}),n("div",{key:"085e8c68f056e5b0deb9d1606431fbeb45dae8e5",class:"toolbar-container",part:"container"},n("slot",{key:"15227c79c3baf883fd8c43fdb7e1313453933c79",name:"start"}),n("slot",{key:"0b8a7f7e685aa31c80d9bc03446ccc3a9d07e0e8",name:"secondary"}),n("div",{key:"57e4628c1fa89df79dd80456259db961bb691404",class:"toolbar-content",part:"content"},n("slot",{key:"82c2f6e1acf8d96db259bd8baf295881801edbd5"})),n("slot",{key:"b2d4afb15214199f206c0a5e08b581e4c9c2f58a",name:"primary"}),n("slot",{key:"bfb909a0c472f8834046c2ea23bef2f562167ad3",name:"end"})))}get el(){return r(this)}};U.style={ios:":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-color-step-50, var(--ion-background-color-step-50, #f7f7f7)));--color:var(--ion-toolbar-color, var(--ion-text-color, #000));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.2)))));--padding-top:3px;--padding-bottom:3px;--padding-start:4px;--padding-end:4px;--min-height:44px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:4;order:4;min-width:0}:host(.toolbar-segment) .toolbar-content{display:-ms-inline-flexbox;display:inline-flex}:host(.toolbar-searchbar) .toolbar-container{padding-top:0;padding-bottom:0}:host(.toolbar-searchbar) ::slotted(*){-ms-flex-item-align:start;align-self:start}:host(.toolbar-searchbar) ::slotted(ion-chip){margin-top:3px}::slotted(ion-buttons){min-height:38px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:3;order:3}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}:host(.toolbar-title-large) .toolbar-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}:host(.toolbar-title-large) .toolbar-content ion-title{-ms-flex:1;flex:1;-ms-flex-order:8;order:8;min-width:100%}",md:":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-background-color, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #424242));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, #c1c4cd))));--padding-top:0;--padding-bottom:0;--padding-start:0;--padding-end:0;--min-height:56px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:3;order:3;min-width:0;max-width:100%}::slotted(.buttons-first-slot){-webkit-margin-start:4px;margin-inline-start:4px}::slotted(.buttons-last-slot){-webkit-margin-end:4px;margin-inline-end:4px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:4;order:4}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}"};export{E as ion_app,I as ion_buttons,L as ion_content,A as ion_footer,R as ion_header,Y as ion_router_outlet,G as ion_title,U as ion_toolbar}
|
|
4
|
+
import{r as t,e as o,f as i,h as n,d as e,g as r,c as a,a as s,i as l,w as d,j as c}from"./p-tcQvqkiX.js";import{shouldUseCloseWatcher as b}from"./p-BUFIpxKM.js";import{a as h,b as p}from"./p-Nqf6uvGh.js";import{i as g,h as m,c as f,e as u,s as x}from"./p-DIuEbVLu.js";import{i as v}from"./p-C53feagD.js";import{c as k,h as w}from"./p-DiVJyqlX.js";import{b as y,p as z,g as C}from"./p-biz8zWmJ.js";import{c as j}from"./p-CtWGkNnJ.js";import{g as T}from"./p-hHmYLOfE.js";import{a as S,d as B}from"./p-CFlfIb2g.js";import{c as Z}from"./p-B-hirT0v.js";import{t as D}from"./p-VAemlbDS.js";import"./p-ZjP4CjeZ.js";import"./p-D13Eaw-8.js";import"./p-CIGNaXM1.js";const $=class{constructor(o){t(this,o)}componentDidLoad(){this.rIC((async()=>{const t=h(window,"hybrid");if(o.getBoolean("_testing")||import("./p-DoJvtrbw.js").then((t=>t.startTapClick(o))),o.getBoolean("statusTap",t)&&import("./p-uWtqTrG8.js").then((t=>t.startStatusTap())),o.getBoolean("inputShims",E())){const t=h(window,"ios")?"ios":"android";import("./p-CmcFnK-B.js").then((i=>i.startInputShims(o,t)))}const n=await import("./p-BUFIpxKM.js"),e=t||b();o.getBoolean("hardwareBackButton",e)?n.startHardwareBackButton():(b()&&i("[ion-app] - experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used."),n.blockHardwareBackButton()),"undefined"!=typeof window&&import("./p-9eeaBrnk.js").then((t=>t.startKeyboardAssist(window))),import("./p-BmVRXR1y.js").then((t=>this.focusVisible=t.startFocusVisible()))}))}disconnectedCallback(){this.loadTimeout&&clearTimeout(this.loadTimeout)}async setFocus(t){this.focusVisible&&this.focusVisible.setFocus(t)}rIC(t){"requestIdleCallback"in window?window.requestIdleCallback(t):this.loadTimeout=setTimeout(t,32)}render(){const t=p(this);return n(e,{key:"77a7459d3e42b3715a5a7e1cf468e2ebc99e54bb",class:{[t]:!0,"ion-page":!0,"force-statusbar-padding":o.getBoolean("_forceStatusbarPadding")}})}get el(){return r(this)}},E=()=>!(!h(window,"ios")||!h(window,"mobile"))||!(!h(window,"android")||!h(window,"mobileweb"));$.style="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}";const I=class{constructor(o){t(this,o),this.collapse=!1}render(){const t=p(this);return n(e,{key:"58c1fc5eb867d0731c63549b1ccb3ec3bbbe6e1b",class:{[t]:!0,"buttons-collapse":this.collapse}},n("slot",{key:"0c8f95b9840c8fa0c4e50be84c5159620a3eb5c8"}))}};I.style={ios:".sc-ion-buttons-ios-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:5px;--padding-end:5px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-ios-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-ios-s ion-button:not(.button-round){--border-radius:4px}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button{--color:initial;--border-color:initial;--background-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-solid,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-solid{--background:var(--ion-color-contrast);--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12;--background-hover:var(--ion-color-base);--background-hover-opacity:0.45;--color:var(--ion-color-base);--color-focused:var(--ion-color-base)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-clear,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-clear{--color-activated:var(--ion-color-contrast);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-outline,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-outline{--color-activated:var(--ion-color-base);--color-focused:var(--ion-color-contrast);--background-activated:var(--ion-color-contrast)}.sc-ion-buttons-ios-s .button-clear,.sc-ion-buttons-ios-s .button-outline{--background-activated:transparent;--background-focused:currentColor;--background-hover:transparent}.sc-ion-buttons-ios-s .button-solid:not(.ion-color){--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12}.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.65em;line-height:0.67}",md:".sc-ion-buttons-md-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:8px;--padding-end:8px;--box-shadow:none;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-md-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-md-s ion-button:not(.button-round){--border-radius:2px}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button{--color:initial;--color-focused:var(--ion-color-contrast);--color-hover:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-contrast);--background-hover:var(--ion-color-contrast)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-solid,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-solid{--background:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-shade);--background-hover:var(--ion-color-base);--color:var(--ion-color-base);--color-focused:var(--ion-color-base);--color-hover:var(--ion-color-base)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-outline,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-outline{--border-color:var(--ion-color-contrast)}.sc-ion-buttons-md-s .button-has-icon-only.button-clear{--padding-top:12px;--padding-end:12px;--padding-bottom:12px;--padding-start:12px;--border-radius:50%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:3rem;height:3rem}.sc-ion-buttons-md-s .button{--background-hover:currentColor}.sc-ion-buttons-md-s .button-solid{--color:var(--ion-toolbar-background, var(--ion-background-color, #fff));--background:var(--ion-toolbar-color, var(--ion-text-color, #424242));--background-activated:transparent;--background-focused:currentColor}.sc-ion-buttons-md-s .button-outline{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--border-color:currentColor}.sc-ion-buttons-md-s .button-clear{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor}.sc-ion-buttons-md-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.8em}"};const L=class{constructor(o){t(this,o),this.ionScrollStart=a(this,"ionScrollStart",7),this.ionScroll=a(this,"ionScroll",7),this.ionScrollEnd=a(this,"ionScrollEnd",7),this.watchDog=null,this.isScrolling=!1,this.lastScroll=0,this.queued=!1,this.cTop=-1,this.cBottom=-1,this.isMainContent=!0,this.resizeTimeout=null,this.inheritedAttributes={},this.tabsElement=null,this.detail={scrollTop:0,scrollLeft:0,type:"scroll",event:void 0,startX:0,startY:0,startTime:0,currentX:0,currentY:0,velocityX:0,velocityY:0,deltaX:0,deltaY:0,currentTime:0,data:void 0,isScrolling:!0},this.fullscreen=!1,this.fixedSlotPlacement="after",this.scrollX=!1,this.scrollY=!0,this.scrollEvents=!1}componentWillLoad(){this.inheritedAttributes=g(this.el)}connectedCallback(){if(this.isMainContent=null===this.el.closest("ion-menu, ion-popover, ion-modal"),m(this.el)){const t=this.tabsElement=this.el.closest("ion-tabs");null!==t&&(this.tabsLoadCallback=()=>this.resize(),t.addEventListener("ionTabBarLoaded",this.tabsLoadCallback))}}disconnectedCallback(){if(this.onScrollEnd(),m(this.el)){const{tabsElement:t,tabsLoadCallback:o}=this;null!==t&&void 0!==o&&t.removeEventListener("ionTabBarLoaded",o),this.tabsElement=null,this.tabsLoadCallback=void 0}this.resizeTimeout&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=null)}onResize(){this.resizeTimeout&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=null),this.resizeTimeout=setTimeout((()=>{null!==this.el.offsetParent&&this.resize()}),100)}shouldForceOverscroll(){const{forceOverscroll:t}=this,o=p(this);return void 0===t?"ios"===o&&h("ios"):t}resize(){this.fullscreen?s((()=>this.readDimensions())):0===this.cTop&&0===this.cBottom||(this.cTop=this.cBottom=0,l(this))}async recalculateDimensions(){s((()=>this.readDimensions()))}readDimensions(){const t=M(this.el),o=Math.max(this.el.offsetTop,0),i=Math.max(t.offsetHeight-o-this.el.offsetHeight,0);(o!==this.cTop||i!==this.cBottom)&&(this.cTop=o,this.cBottom=i,l(this))}onScroll(t){const o=Date.now(),i=!this.isScrolling;this.lastScroll=o,i&&this.onScrollStart(),!this.queued&&this.scrollEvents&&(this.queued=!0,s((o=>{this.queued=!1,this.detail.event=t,O(this.detail,this.scrollEl,o,i),this.ionScroll.emit(this.detail)})))}async getScrollElement(){return this.scrollEl||await new Promise((t=>f(this.el,t))),Promise.resolve(this.scrollEl)}async getBackgroundElement(){return this.backgroundContentEl||await new Promise((t=>f(this.el,t))),Promise.resolve(this.backgroundContentEl)}scrollToTop(t=0){return this.scrollToPoint(void 0,0,t)}async scrollToBottom(t=0){const o=await this.getScrollElement();return this.scrollToPoint(void 0,o.scrollHeight-o.clientHeight,t)}async scrollByPoint(t,o,i){const n=await this.getScrollElement();return this.scrollToPoint(t+n.scrollLeft,o+n.scrollTop,i)}async scrollToPoint(t,o,i=0){const n=await this.getScrollElement();if(i<32)return null!=o&&(n.scrollTop=o),void(null!=t&&(n.scrollLeft=t));let e,r=0;const a=new Promise((t=>e=t)),s=n.scrollTop,l=n.scrollLeft,d=null!=o?o-s:0,c=null!=t?t-l:0,b=t=>{const o=Math.min(1,(t-r)/i)-1,a=Math.pow(o,3)+1;0!==d&&(n.scrollTop=Math.floor(a*d+s)),0!==c&&(n.scrollLeft=Math.floor(a*c+l)),a<1?requestAnimationFrame(b):e()};return requestAnimationFrame((t=>{r=t,b(t)})),a}onScrollStart(){this.isScrolling=!0,this.ionScrollStart.emit({isScrolling:!0}),this.watchDog&&clearInterval(this.watchDog),this.watchDog=setInterval((()=>{this.lastScroll<Date.now()-120&&this.onScrollEnd()}),100)}onScrollEnd(){this.watchDog&&clearInterval(this.watchDog),this.watchDog=null,this.isScrolling&&(this.isScrolling=!1,this.ionScrollEnd.emit({isScrolling:!1}))}render(){const{fixedSlotPlacement:t,inheritedAttributes:o,isMainContent:i,scrollX:r,scrollY:a,el:s}=this,l=v(s)?"rtl":"ltr",d=p(this),c=this.shouldForceOverscroll(),b="ios"===d;return this.resize(),n(e,Object.assign({key:"8c1bc4a4df8698d3884741eb38512dc059210c50",role:i?"main":void 0,class:k(this.color,{[d]:!0,"content-fullscreen":this.fullscreen,"content-sizing":w("ion-popover",this.el),overscroll:c,[`content-${l}`]:!0}),style:{"--offset-top":`${this.cTop}px`,"--offset-bottom":`${this.cBottom}px`}},o),n("div",{key:"5e7412549b51ef7543d9378ecab9aac6bc461588",ref:t=>this.backgroundContentEl=t,id:"background-content",part:"background"}),"before"===t?n("slot",{name:"fixed"}):null,n("div",{key:"33f6fbf7e1e027c7cbd2dda95b487f18dc648cef",class:{"inner-scroll":!0,"scroll-x":r,"scroll-y":a,overscroll:(r||a)&&c},ref:t=>this.scrollEl=t,onScroll:this.scrollEvents?t=>this.onScroll(t):void 0,part:"scroll"},n("slot",{key:"00c8fe7b9e73533c702273c9457d274195d54e98"})),b?n("div",{class:"transition-effect"},n("div",{class:"transition-cover"}),n("div",{class:"transition-shadow"})):null,"after"===t?n("slot",{name:"fixed"}):null)}get el(){return r(this)}},M=t=>{const o=t.closest("ion-tabs");if(o)return o;return t.closest("ion-app, ion-page, .ion-page, page-inner, .popover-content")||(t=>{var o;return t.parentElement?t.parentElement:(null===(o=t.parentNode)||void 0===o?void 0:o.host)?t.parentNode.host:null})(t)},O=(t,o,i,n)=>{const e=t.currentX,r=t.currentY,a=o.scrollLeft,s=o.scrollTop,l=i-t.currentTime;if(n&&(t.startTime=i,t.startX=a,t.startY=s,t.velocityX=t.velocityY=0),t.currentTime=i,t.currentX=t.scrollLeft=a,t.currentY=t.scrollTop=s,t.deltaX=a-t.startX,t.deltaY=s-t.startY,l>0&&l<100){const o=(s-r)/l;t.velocityX=(a-e)/l*.7+.3*t.velocityX,t.velocityY=.7*o+.3*t.velocityY}};L.style=':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)}#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);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--internal-content-safe-area-padding-bottom, 0px));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}.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:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}: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)}';const W=(t,o)=>{s((()=>{const i=u(0,1-(t.scrollTop-(t.scrollHeight-t.clientHeight-10))/10,1);d((()=>{o.style.setProperty("--opacity-scale",i.toString())}))}))},A=class{constructor(o){t(this,o),this.keyboardCtrl=null,this.keyboardCtrlPromise=null,this.keyboardVisible=!1,this.translucent=!1,this.checkCollapsibleFooter=()=>{if("ios"!==p(this))return;const{collapse:t}=this,o="fade"===t;if(this.destroyCollapsibleFooter(),o){const t=this.el.closest("ion-app,ion-page,.ion-page,page-inner"),o=t?y(t):null;if(!o)return void z(this.el);this.setupFadeFooter(o)}},this.setupFadeFooter=async t=>{const o=this.scrollEl=await C(t);this.contentScrollCallback=()=>{W(o,this.el)},o.addEventListener("scroll",this.contentScrollCallback),W(o,this.el)}}componentDidLoad(){this.checkCollapsibleFooter()}componentDidUpdate(){this.checkCollapsibleFooter()}async connectedCallback(){const t=j((async(t,o)=>{!1===t&&void 0!==o&&await o,this.keyboardVisible=t}));this.keyboardCtrlPromise=t;const o=await t;this.keyboardCtrlPromise===t?(this.keyboardCtrl=o,this.keyboardCtrlPromise=null):o.destroy()}disconnectedCallback(){this.keyboardCtrlPromise&&(this.keyboardCtrlPromise.then((t=>t.destroy())),this.keyboardCtrlPromise=null),this.keyboardCtrl&&(this.keyboardCtrl.destroy(),this.keyboardCtrl=null)}destroyCollapsibleFooter(){this.scrollEl&&this.contentScrollCallback&&(this.scrollEl.removeEventListener("scroll",this.contentScrollCallback),this.contentScrollCallback=void 0)}render(){const{translucent:t,collapse:o}=this,i=p(this),r=this.el.closest("ion-tabs"),a=null==r?void 0:r.querySelector(":scope > ion-tab-bar");return n(e,{key:"71939c4bbaef5062532a99ee2e33574102a9abad",role:"contentinfo",class:{[i]:!0,[`footer-${i}`]:!0,"footer-translucent":t,[`footer-translucent-${i}`]:t,"footer-toolbar-padding":!(this.keyboardVisible||a&&"bottom"===a.slot),[`footer-collapse-${o}`]:void 0!==o}},"ios"===i&&t&&n("div",{key:"2fa14f61661c47c661cecd696176728d6eafa74f",class:"footer-background"}),n("slot",{key:"8e63696e7c528d5c38201e546bf08135290d0945"}))}get el(){return r(this)}};A.style={ios:"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}",md:"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{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.footer-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}"};const P="none",X="banner",_=t=>{const o=document.querySelector(`${t}.ion-cloned-element`);if(null!==o)return o;const i=document.createElement(t);return i.classList.add("ion-cloned-element"),i.style.setProperty("display","none"),document.body.appendChild(i),i},F=t=>{if(!t)return;const o=t.querySelectorAll("ion-toolbar");return{el:t,toolbars:Array.from(o).map((t=>{const o=t.querySelector("ion-title");return{el:t,background:t.shadowRoot.querySelector(".toolbar-background"),ionTitleEl:o,innerTitleEl:o?o.shadowRoot.querySelector(".toolbar-title"):null,ionButtonsEl:Array.from(t.querySelectorAll("ion-buttons"))}}))}},q=(t,o)=>{"fade"!==t.collapse&&(void 0===o?t.style.removeProperty("--opacity-scale"):t.style.setProperty("--opacity-scale",o.toString()))},H=(t,o=!0)=>{const i=t.el,n=t.toolbars.map((t=>t.ionTitleEl));o?(i.setAttribute("role",X),i.classList.remove("header-collapse-condense-inactive"),n.forEach((t=>{t&&t.removeAttribute("aria-hidden")}))):(i.setAttribute("role",P),i.classList.add("header-collapse-condense-inactive"),n.forEach((t=>{t&&t.setAttribute("aria-hidden","true")})))},N=(t,o,i)=>{s((()=>{const n=t.scrollTop,e=o.clientHeight,r=i?i.clientHeight:0;if(null!==i&&n<r)return o.style.setProperty("--opacity-scale","0"),void t.style.setProperty("clip-path",`inset(${e}px 0px 0px 0px)`);const a=u(0,(n-r)/10,1);d((()=>{t.style.removeProperty("clip-path"),o.style.setProperty("--opacity-scale",a.toString())}))}))},R=class{constructor(o){t(this,o),this.inheritedAttributes={},this.translucent=!1,this.setupFadeHeader=async(t,o)=>{const i=this.scrollEl=await C(t);this.contentScrollCallback=()=>{N(this.scrollEl,this.el,o)},i.addEventListener("scroll",this.contentScrollCallback),N(this.scrollEl,this.el,o)}}componentWillLoad(){this.inheritedAttributes=g(this.el)}componentDidLoad(){this.checkCollapsibleHeader()}componentDidUpdate(){this.checkCollapsibleHeader()}disconnectedCallback(){this.destroyCollapsibleHeader()}async checkCollapsibleHeader(){if("ios"!==p(this))return;const{collapse:t}=this,o="condense"===t,i="fade"===t;if(this.destroyCollapsibleHeader(),o){const t=this.el.closest("ion-app,ion-page,.ion-page,page-inner"),o=t?y(t):null;d((()=>{_("ion-title").size="large",_("ion-back-button")})),await this.setupCondenseHeader(o,t)}else if(i){const t=this.el.closest("ion-app,ion-page,.ion-page,page-inner"),o=t?y(t):null;if(!o)return void z(this.el);const i=o.querySelector('ion-header[collapse="condense"]');await this.setupFadeHeader(o,i)}}destroyCollapsibleHeader(){this.intersectionObserver&&(this.intersectionObserver.disconnect(),this.intersectionObserver=void 0),this.scrollEl&&this.contentScrollCallback&&(this.scrollEl.removeEventListener("scroll",this.contentScrollCallback),this.contentScrollCallback=void 0),this.collapsibleMainHeader&&(this.collapsibleMainHeader.classList.remove("header-collapse-main"),this.collapsibleMainHeader=void 0)}async setupCondenseHeader(t,o){if(!t||!o)return void z(this.el);if("undefined"==typeof IntersectionObserver)return;this.scrollEl=await C(t);const i=o.querySelectorAll("ion-header");if(this.collapsibleMainHeader=Array.from(i).find((t=>"condense"!==t.collapse)),!this.collapsibleMainHeader)return;const n=F(this.collapsibleMainHeader),e=F(this.el);n&&e&&(H(n,!1),q(n.el,0),this.intersectionObserver=new IntersectionObserver((t=>{((t,o,i,n)=>{d((()=>{const e=n.scrollTop;((t,o,i)=>{if(!t[0].isIntersecting)return;const n=t[0].intersectionRatio>.9||i<=0?0:100*(1-t[0].intersectionRatio)/75;q(o.el,1===n?void 0:n)})(t,o,e);const r=t[0],a=r.intersectionRect,s=a.width*a.height,l=0===s&&0==r.rootBounds.width*r.rootBounds.height,d=Math.abs(a.left-r.boundingClientRect.left),c=Math.abs(a.right-r.boundingClientRect.right);l||s>0&&(d>=5||c>=5)||(r.isIntersecting?(H(o,!1),H(i)):(0===a.x&&0===a.y||0!==a.width&&0!==a.height)&&e>0&&(H(o),H(i,!1),q(o.el)))}))})(t,n,e,this.scrollEl)}),{root:t,threshold:[.25,.3,.4,.5,.6,.7,.8,.9,1]}),this.intersectionObserver.observe(e.toolbars[e.toolbars.length-1].el),this.contentScrollCallback=()=>{((t,o,i)=>{s((()=>{const n=u(1,1+-t.scrollTop/500,1.1);null===i.querySelector("ion-refresher.refresher-native")&&d((()=>{((t=[],o=1,i=!1)=>{t.forEach((t=>{const n=t.ionTitleEl,e=t.innerTitleEl;n&&"large"===n.size&&(e.style.transition=i?"all 0.2s ease-in-out":"",e.style.transform=`scale3d(${o}, ${o}, 1)`)}))})(o.toolbars,n)}))}))})(this.scrollEl,e,t)},this.scrollEl.addEventListener("scroll",this.contentScrollCallback),d((()=>{void 0!==this.collapsibleMainHeader&&this.collapsibleMainHeader.classList.add("header-collapse-main")})))}render(){const{translucent:t,inheritedAttributes:o}=this,i=p(this),r=this.collapse||"none",a="condense"===r,s=((t,o,i)=>t||o&&"md"===i?P:X)(w("ion-menu",this.el),a,i);return n(e,Object.assign({key:"863c4568cd7b8c0ec55109f193bbbaed68a1346e",role:s,class:{[i]:!0,[`header-${i}`]:!0,"header-translucent":this.translucent,[`header-collapse-${r}`]:!0,[`header-translucent-${i}`]:this.translucent}},o),"ios"===i&&t&&n("div",{key:"25c3bdce328b0b35607d154c8b8374679313d881",class:"header-background"}),n("slot",{key:"b44fab0a9be7920b9650da26117c783e751e1702"}))}get el(){return r(this)}};R.style={ios:"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-fade.header-transitioning ion-toolbar{--background:transparent;--border-style:none}.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:0px;z-index:1}.header-collapse-condense ion-toolbar{z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{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 ion-toolbar,.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--background:var(--ion-background-color, #fff)}.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--border-style:none;--opacity-scale:1}.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}ion-header.header-ios:not(.header-collapse-main):has(~ion-content ion-header.header-ios[collapse=condense],~ion-content ion-header.header-ios.header-collapse-condense){opacity:0}",md:"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{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.header-md.header-collapse-condense{display:none}.header-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}"};const Y=class{constructor(o){t(this,o),this.ionNavWillLoad=a(this,"ionNavWillLoad",7),this.ionNavWillChange=a(this,"ionNavWillChange",3),this.ionNavDidChange=a(this,"ionNavDidChange",3),this.lockController=Z(),this.gestureOrAnimationInProgress=!1,this.mode=p(this),this.animated=!0}swipeHandlerChanged(){this.gesture&&this.gesture.enable(void 0!==this.swipeHandler)}async connectedCallback(){const t=()=>{this.gestureOrAnimationInProgress=!0,this.swipeHandler&&this.swipeHandler.onStart()};this.gesture=(await import("./p-D4uTWt4-.js")).createSwipeBackGesture(this.el,(()=>!this.gestureOrAnimationInProgress&&!!this.swipeHandler&&this.swipeHandler.canStart()),(()=>t()),(t=>{var o;return null===(o=this.ani)||void 0===o?void 0:o.progressStep(t)}),((t,o,i)=>{if(this.ani){this.ani.onFinish((()=>{this.gestureOrAnimationInProgress=!1,this.swipeHandler&&this.swipeHandler.onEnd(t)}),{oneTimeCallback:!0});let n=t?-.001:.001;t?n+=T([0,0],[.32,.72],[0,1],[1,1],o)[0]:(this.ani.easing("cubic-bezier(1, 0, 0.68, 0.28)"),n+=T([0,0],[1,0],[.68,.28],[1,1],o)[0]),this.ani.progressEnd(t?1:0,n,i)}else this.gestureOrAnimationInProgress=!1})),this.swipeHandlerChanged()}componentWillLoad(){this.ionNavWillLoad.emit()}disconnectedCallback(){this.gesture&&(this.gesture.destroy(),this.gesture=void 0)}async commit(t,o,i){const n=await this.lockController.lock();let e=!1;try{e=await this.transition(t,o,i)}catch(t){c("[ion-router-outlet] - Exception in commit:",t)}return n(),e}async setRouteId(t,o,i,n){return{changed:await this.setRoot(t,o,{duration:"root"===i?0:void 0,direction:"back"===i?"back":"forward",animationBuilder:n}),element:this.activeEl}}async getRouteId(){const t=this.activeEl;return t?{id:t.tagName,element:t,params:this.activeParams}:void 0}async setRoot(t,o,i){if(this.activeComponent===t&&x(o,this.activeParams))return!1;const n=this.activeEl,e=await S(this.delegate,this.el,t,["ion-page","ion-page-invisible"],o);return this.activeComponent=t,this.activeEl=e,this.activeParams=o,await this.commit(e,n,i),await B(this.delegate,n),!0}async transition(t,i,n={}){if(i===t)return!1;this.ionNavWillChange.emit();const{el:e,mode:r}=this,a=this.animated&&o.getBoolean("animated",!0),s=n.animationBuilder||this.animation||o.get("navAnimation");return await D(Object.assign(Object.assign({mode:r,animated:a,enteringEl:t,leavingEl:i,baseEl:e,deepWait:m(e),progressCallback:n.progressAnimation?t=>{void 0===t||this.gestureOrAnimationInProgress?this.ani=t:(this.gestureOrAnimationInProgress=!0,t.onFinish((()=>{this.gestureOrAnimationInProgress=!1,this.swipeHandler&&this.swipeHandler.onEnd(!1)}),{oneTimeCallback:!0}),t.progressEnd(0,0,0))}:void 0},n),{animationBuilder:s})),this.ionNavDidChange.emit(),!0}render(){return n("slot",{key:"386c41745b61daba161cf75063da97fe29ba36cb"})}get el(){return r(this)}static get watchers(){return{swipeHandler:[{swipeHandlerChanged:0}]}}};Y.style=":host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}";const G=class{constructor(o){t(this,o),this.ionStyle=a(this,"ionStyle",7)}sizeChanged(){this.emitStyle()}connectedCallback(){this.emitStyle()}emitStyle(){const t=this.getSize();this.ionStyle.emit({[`title-${t}`]:!0})}getSize(){return void 0!==this.size?this.size:"default"}render(){const t=p(this),o=this.getSize();return n(e,{key:"44e63f8439df64c470692904427b417e19406476",class:k(this.color,{[t]:!0,[`title-${o}`]:!0,"title-rtl":"rtl"===document.dir})},n("div",{key:"784cf60a0db16045391891cc8fad0c7dbeba4039",class:"toolbar-title"},n("slot",{key:"0c720a50479ba257e8756337aeb9b0ab7516a227"})))}get el(){return r(this)}static get watchers(){return{size:[{sizeChanged:0}]}}};G.style={ios:":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{top:0;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);position:absolute;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);font-size:min(1.0625rem, 20.4px);font-weight:600;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host{inset-inline-start:0}:host(.title-small){-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:min(0.8125rem, 23.4px);font-weight:normal}:host(.title-large){-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:2px;padding-bottom:4px;-webkit-transform-origin:left center;transform-origin:left center;position:static;-ms-flex-align:end;align-items:flex-end;min-width:100%;font-size:min(2.125rem, 61.2px);font-weight:700;text-align:start}:host(.title-large.title-rtl){-webkit-transform-origin:right center;transform-origin:right center}:host(.title-large.ion-cloned-element){--color:var(--ion-text-color, #000);font-family:var(--ion-font-family)}:host(.title-large) .toolbar-title{-webkit-transform-origin:inherit;transform-origin:inherit;width:auto}:host-context([dir=rtl]):host(.title-large) .toolbar-title,:host-context([dir=rtl]).title-large .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}@supports selector(:dir(rtl)){:host(.title-large:dir(rtl)) .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}}",md:":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:0;padding-bottom:0;font-size:1.25rem;font-weight:500;letter-spacing:0.0125em}:host(.title-small){width:100%;height:100%;font-size:0.9375rem;font-weight:normal}"};const J=class{constructor(o){t(this,o),this.childrenStyles=new Map}componentWillLoad(){const t=Array.from(this.el.querySelectorAll("ion-buttons")),o=t.find((t=>"start"===t.slot));o&&o.classList.add("buttons-first-slot");const i=t.reverse(),n=i.find((t=>"end"===t.slot))||i.find((t=>"primary"===t.slot))||i.find((t=>"secondary"===t.slot));n&&n.classList.add("buttons-last-slot")}childrenStyle(t){t.stopPropagation();const o=t.target.tagName,i=t.detail,n={},e=this.childrenStyles.get(o)||{};let r=!1;Object.keys(i).forEach((t=>{const o=`toolbar-${t}`,a=i[t];a!==e[o]&&(r=!0),a&&(n[o]=!0)})),r&&(this.childrenStyles.set(o,n),l(this))}render(){const t=p(this),o={};return this.childrenStyles.forEach((t=>{Object.assign(o,t)})),n(e,{key:"b849db2863778dee6c5a251bffa1b3a657aeb036",class:Object.assign(Object.assign({},o),k(this.color,{[t]:!0,"in-toolbar":w("ion-toolbar",this.el)}))},n("div",{key:"67f5bba9c4f527c3f35bfe1313a2b85741f9b246",class:"toolbar-background",part:"background"}),n("div",{key:"085e8c68f056e5b0deb9d1606431fbeb45dae8e5",class:"toolbar-container",part:"container"},n("slot",{key:"15227c79c3baf883fd8c43fdb7e1313453933c79",name:"start"}),n("slot",{key:"0b8a7f7e685aa31c80d9bc03446ccc3a9d07e0e8",name:"secondary"}),n("div",{key:"57e4628c1fa89df79dd80456259db961bb691404",class:"toolbar-content",part:"content"},n("slot",{key:"82c2f6e1acf8d96db259bd8baf295881801edbd5"})),n("slot",{key:"b2d4afb15214199f206c0a5e08b581e4c9c2f58a",name:"primary"}),n("slot",{key:"bfb909a0c472f8834046c2ea23bef2f562167ad3",name:"end"})))}get el(){return r(this)}};J.style={ios:":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-color-step-50, var(--ion-background-color-step-50, #f7f7f7)));--color:var(--ion-toolbar-color, var(--ion-text-color, #000));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.2)))));--padding-top:3px;--padding-bottom:3px;--padding-start:4px;--padding-end:4px;--min-height:44px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:4;order:4;min-width:0}:host(.toolbar-segment) .toolbar-content{display:-ms-inline-flexbox;display:inline-flex}:host(.toolbar-searchbar) .toolbar-container{padding-top:0;padding-bottom:0}:host(.toolbar-searchbar) ::slotted(*){-ms-flex-item-align:start;align-self:start}:host(.toolbar-searchbar) ::slotted(ion-chip){margin-top:3px}::slotted(ion-buttons){min-height:38px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:3;order:3}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}:host(.toolbar-title-large) .toolbar-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}:host(.toolbar-title-large) .toolbar-content ion-title{-ms-flex:1;flex:1;-ms-flex-order:8;order:8;min-width:100%}",md:":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-background-color, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #424242));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, #c1c4cd))));--padding-top:0;--padding-bottom:0;--padding-start:0;--padding-end:0;--min-height:56px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:3;order:3;min-width:0;max-width:100%}::slotted(.buttons-first-slot){-webkit-margin-start:4px;margin-inline-start:4px}::slotted(.buttons-last-slot){-webkit-margin-end:4px;margin-inline-end:4px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:4;order:4}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}"};export{$ as ion_app,I as ion_buttons,L as ion_content,A as ion_footer,R as ion_header,Y as ion_router_outlet,G as ion_title,J as ion_toolbar}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import{a as o,w as s}from"./p-tcQvqkiX.js";import{a as t,s as a}from"./p-biz8zWmJ.js";import{c as r}from"./p-DIuEbVLu.js";const i=()=>{const i=window;i.addEventListener("statusTap",(()=>{o((()=>{const o=document.elementFromPoint(i.innerWidth/2,i.innerHeight/2);if(!o)return;const n=t(o);n&&new Promise((o=>r(n,o))).then((()=>{s((async()=>{n.style.setProperty("--overflow","hidden"),await a(n,300),n.style.removeProperty("--overflow")}))}))}))}))};export{i as startStatusTap}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
import type { Animation } from '../../../interface';
|
|
2
|
+
/**
|
|
3
|
+
* Swiping is only possible when the content is scrolled to the top, so that we
|
|
4
|
+
* do not interfere with scrolling, and never on content with a refresher.
|
|
5
|
+
*
|
|
6
|
+
* Note: We cannot solve the refresher case with gesture priority as the iOS
|
|
7
|
+
* native refresh gesture uses a scroll listener in addition to a gesture.
|
|
8
|
+
*
|
|
9
|
+
* Note: Do not use `getScrollElement` here because we need this to be a
|
|
10
|
+
* synchronous operation, and `getScrollElement` is asynchronous.
|
|
11
|
+
*/
|
|
12
|
+
export declare const canSwipeOnContent: (contentEl: HTMLElement) => boolean;
|
|
2
13
|
export declare const handleCanDismiss: (el: HTMLIonModalElement, animation: Animation) => Promise<void>;
|
|
3
14
|
/**
|
|
4
15
|
* This function lets us simulate a realistic spring-like animation
|
|
@@ -21,6 +21,18 @@ export declare const findIonContent: (el: Element) => HTMLElement | null;
|
|
|
21
21
|
* Queries the closest element matching the selector for IonContent.
|
|
22
22
|
*/
|
|
23
23
|
export declare const findClosestIonContent: (el: Element) => HTMLElement | null;
|
|
24
|
+
/**
|
|
25
|
+
* Queries the custom scroll host an `ion-refresher` scrolls with in the given
|
|
26
|
+
* `ion-content`. A refresher only pairs with the first host.
|
|
27
|
+
*/
|
|
28
|
+
export declare const findRefresherScrollHost: (ionContent: Element) => HTMLElement | null;
|
|
29
|
+
/**
|
|
30
|
+
* Queries the `ion-refresher` that scrolls with the given content element,
|
|
31
|
+
* which may be an `ion-content` or a custom scroll host. A refresher is a
|
|
32
|
+
* `slot="fixed"` child of `ion-content`, so it is a sibling of a scroll host
|
|
33
|
+
* rather than a descendant of it.
|
|
34
|
+
*/
|
|
35
|
+
export declare const findRefresherInContent: (contentEl: Element) => HTMLIonRefresherElement | null;
|
|
24
36
|
/**
|
|
25
37
|
* Scrolls to the top of the element. If an `ion-content` is found, it will scroll
|
|
26
38
|
* using the public API `scrollToTop` with a duration.
|
package/hydrate/index.js
CHANGED
|
@@ -17721,6 +17721,36 @@ const findIonContent = (el) => {
|
|
|
17721
17721
|
const findClosestIonContent = (el) => {
|
|
17722
17722
|
return el.closest(ION_CONTENT_SELECTOR);
|
|
17723
17723
|
};
|
|
17724
|
+
/**
|
|
17725
|
+
* Queries the custom scroll host an `ion-refresher` scrolls with in the given
|
|
17726
|
+
* `ion-content`. A refresher only pairs with the first host.
|
|
17727
|
+
*/
|
|
17728
|
+
const findRefresherScrollHost = (ionContent) => {
|
|
17729
|
+
return ionContent.querySelector(ION_CONTENT_CLASS_SELECTOR);
|
|
17730
|
+
};
|
|
17731
|
+
/**
|
|
17732
|
+
* Queries the `ion-refresher` that scrolls with the given content element,
|
|
17733
|
+
* which may be an `ion-content` or a custom scroll host. A refresher is a
|
|
17734
|
+
* `slot="fixed"` child of `ion-content`, so it is a sibling of a scroll host
|
|
17735
|
+
* rather than a descendant of it.
|
|
17736
|
+
*/
|
|
17737
|
+
const findRefresherInContent = (contentEl) => {
|
|
17738
|
+
// An `ion-content` owns any refresher inside it, scroll host or not.
|
|
17739
|
+
if (isIonContent(contentEl)) {
|
|
17740
|
+
return contentEl.querySelector('ion-refresher');
|
|
17741
|
+
}
|
|
17742
|
+
// A refresher needs an `ion-content` ancestor to initialize.
|
|
17743
|
+
const ionContent = contentEl.closest(ION_CONTENT_ELEMENT_SELECTOR);
|
|
17744
|
+
if (ionContent === null) {
|
|
17745
|
+
return null;
|
|
17746
|
+
}
|
|
17747
|
+
// Any scroll host other than the refresher's own has no refresher.
|
|
17748
|
+
const refresherScrollHost = findRefresherScrollHost(ionContent);
|
|
17749
|
+
if (refresherScrollHost === null || !refresherScrollHost.contains(contentEl)) {
|
|
17750
|
+
return null;
|
|
17751
|
+
}
|
|
17752
|
+
return ionContent.querySelector('ion-refresher');
|
|
17753
|
+
};
|
|
17724
17754
|
/**
|
|
17725
17755
|
* Prints an error informing developers that an implementation requires an element to be used
|
|
17726
17756
|
* within either the `ion-content` selector or the `.ion-content-scroll-host` class.
|
|
@@ -24031,6 +24061,21 @@ const setCardStatusBarDefault = (defaultStyle = Style.Default) => {
|
|
|
24031
24061
|
StatusBar.setStyle({ style: defaultStyle });
|
|
24032
24062
|
};
|
|
24033
24063
|
|
|
24064
|
+
/**
|
|
24065
|
+
* Swiping is only possible when the content is scrolled to the top, so that we
|
|
24066
|
+
* do not interfere with scrolling, and never on content with a refresher.
|
|
24067
|
+
*
|
|
24068
|
+
* Note: We cannot solve the refresher case with gesture priority as the iOS
|
|
24069
|
+
* native refresh gesture uses a scroll listener in addition to a gesture.
|
|
24070
|
+
*
|
|
24071
|
+
* Note: Do not use `getScrollElement` here because we need this to be a
|
|
24072
|
+
* synchronous operation, and `getScrollElement` is asynchronous.
|
|
24073
|
+
*/
|
|
24074
|
+
const canSwipeOnContent = (contentEl) => {
|
|
24075
|
+
const scrollEl = isIonContent(contentEl) ? getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
|
|
24076
|
+
const hasRefresherInContent = !!findRefresherInContent(contentEl);
|
|
24077
|
+
return !hasRefresherInContent && scrollEl.scrollTop === 0;
|
|
24078
|
+
};
|
|
24034
24079
|
const handleCanDismiss = async (el, animation) => {
|
|
24035
24080
|
/**
|
|
24036
24081
|
* If canDismiss is not a function
|
|
@@ -24161,7 +24206,6 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
24161
24206
|
let isOpen = false;
|
|
24162
24207
|
let canDismissBlocksGesture = false;
|
|
24163
24208
|
let contentEl = null;
|
|
24164
|
-
let scrollEl = null;
|
|
24165
24209
|
const canDismissMaxStep = 0.2;
|
|
24166
24210
|
let initialScrollY = true;
|
|
24167
24211
|
let lastStep = 0;
|
|
@@ -24184,12 +24228,6 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
24184
24228
|
return true;
|
|
24185
24229
|
}
|
|
24186
24230
|
/**
|
|
24187
|
-
* If we are swiping on the content,
|
|
24188
|
-
* swiping should only be possible if
|
|
24189
|
-
* the content is scrolled all the way
|
|
24190
|
-
* to the top so that we do not interfere
|
|
24191
|
-
* with scrolling.
|
|
24192
|
-
*
|
|
24193
24231
|
* We cannot assume that the `ion-content`
|
|
24194
24232
|
* target will remain consistent between
|
|
24195
24233
|
* swipes. For example, when using
|
|
@@ -24200,29 +24238,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
24200
24238
|
*/
|
|
24201
24239
|
contentEl = findClosestIonContent(target);
|
|
24202
24240
|
if (contentEl) {
|
|
24203
|
-
|
|
24204
|
-
* The card should never swipe to close
|
|
24205
|
-
* on the content with a refresher.
|
|
24206
|
-
* Note: We cannot solve this by making the
|
|
24207
|
-
* swipeToClose gesture have a higher priority
|
|
24208
|
-
* than the refresher gesture as the iOS native
|
|
24209
|
-
* refresh gesture uses a scroll listener in
|
|
24210
|
-
* addition to a gesture.
|
|
24211
|
-
*
|
|
24212
|
-
* Note: Do not use getScrollElement here
|
|
24213
|
-
* because we need this to be a synchronous
|
|
24214
|
-
* operation, and getScrollElement is
|
|
24215
|
-
* asynchronous.
|
|
24216
|
-
*/
|
|
24217
|
-
if (isIonContent(contentEl)) {
|
|
24218
|
-
const root = getElementRoot(contentEl);
|
|
24219
|
-
scrollEl = root.querySelector('.inner-scroll');
|
|
24220
|
-
}
|
|
24221
|
-
else {
|
|
24222
|
-
scrollEl = contentEl;
|
|
24223
|
-
}
|
|
24224
|
-
const hasRefresherInContent = !!contentEl.querySelector('ion-refresher');
|
|
24225
|
-
return !hasRefresherInContent && scrollEl.scrollTop === 0;
|
|
24241
|
+
return canSwipeOnContent(contentEl);
|
|
24226
24242
|
}
|
|
24227
24243
|
/**
|
|
24228
24244
|
* Card should be swipeable on all
|
|
@@ -25094,9 +25110,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
25094
25110
|
}
|
|
25095
25111
|
const canStart = (detail) => {
|
|
25096
25112
|
/**
|
|
25097
|
-
* If we are swiping on the content, swiping should only be possible if the content
|
|
25098
|
-
* is scrolled all the way to the top so that we do not interfere with scrolling.
|
|
25099
|
-
*
|
|
25100
25113
|
* We cannot assume that the `ion-content` target will remain consistent between swipes.
|
|
25101
25114
|
* For example, when using ion-nav within a modal it is possible to swipe, push a view,
|
|
25102
25115
|
* and then swipe again. The target content will not be the same between swipes.
|
|
@@ -25104,26 +25117,11 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
25104
25117
|
const contentEl = findClosestIonContent(detail.event.target);
|
|
25105
25118
|
currentBreakpoint = getCurrentBreakpoint();
|
|
25106
25119
|
/**
|
|
25107
|
-
*
|
|
25108
|
-
*
|
|
25120
|
+
* Upwards swipes on the content cannot move the sheet anyway, so this only
|
|
25121
|
+
* blocks swiping the sheet down from the content.
|
|
25109
25122
|
*/
|
|
25110
|
-
if (!expandToScroll
|
|
25111
|
-
|
|
25112
|
-
return scrollEl.scrollTop === 0;
|
|
25113
|
-
}
|
|
25114
|
-
if (currentBreakpoint === 1 && contentEl) {
|
|
25115
|
-
/**
|
|
25116
|
-
* The modal should never swipe to close on the content with a refresher.
|
|
25117
|
-
* Note 1: We cannot solve this by making this gesture have a higher priority than
|
|
25118
|
-
* the refresher gesture as the iOS native refresh gesture uses a scroll listener in
|
|
25119
|
-
* addition to a gesture.
|
|
25120
|
-
*
|
|
25121
|
-
* Note 2: Do not use getScrollElement here because we need this to be a synchronous
|
|
25122
|
-
* operation, and getScrollElement is asynchronous.
|
|
25123
|
-
*/
|
|
25124
|
-
const scrollEl = isIonContent(contentEl) ? getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
|
|
25125
|
-
const hasRefresherInContent = !!contentEl.querySelector('ion-refresher');
|
|
25126
|
-
return !hasRefresherInContent && scrollEl.scrollTop === 0;
|
|
25123
|
+
if (contentEl && (!expandToScroll || currentBreakpoint === 1)) {
|
|
25124
|
+
return canSwipeOnContent(contentEl);
|
|
25127
25125
|
}
|
|
25128
25126
|
return true;
|
|
25129
25127
|
};
|
|
@@ -33586,7 +33584,7 @@ class Refresher {
|
|
|
33586
33584
|
* or the background content element.
|
|
33587
33585
|
*/
|
|
33588
33586
|
componentOnReady(contentEl, async () => {
|
|
33589
|
-
const customScrollTarget = contentEl
|
|
33587
|
+
const customScrollTarget = findRefresherScrollHost(contentEl);
|
|
33590
33588
|
/**
|
|
33591
33589
|
* Query the custom scroll target (if available), first. In refresher implementations,
|
|
33592
33590
|
* the ion-refresher element will always be a direct child of ion-content (slot="fixed"). By
|
|
@@ -33936,7 +33934,7 @@ class Refresher {
|
|
|
33936
33934
|
}
|
|
33937
33935
|
render() {
|
|
33938
33936
|
const mode = getIonMode$1(this);
|
|
33939
|
-
return (hAsync(Host, { key: '
|
|
33937
|
+
return (hAsync(Host, { key: '6b94f11bd5382bdf4e92c43d4b5d0550c290852d', slot: "fixed", class: {
|
|
33940
33938
|
[mode]: true,
|
|
33941
33939
|
// Used internally for styling
|
|
33942
33940
|
[`refresher-${mode}`]: true,
|
package/hydrate/index.mjs
CHANGED
|
@@ -17719,6 +17719,36 @@ const findIonContent = (el) => {
|
|
|
17719
17719
|
const findClosestIonContent = (el) => {
|
|
17720
17720
|
return el.closest(ION_CONTENT_SELECTOR);
|
|
17721
17721
|
};
|
|
17722
|
+
/**
|
|
17723
|
+
* Queries the custom scroll host an `ion-refresher` scrolls with in the given
|
|
17724
|
+
* `ion-content`. A refresher only pairs with the first host.
|
|
17725
|
+
*/
|
|
17726
|
+
const findRefresherScrollHost = (ionContent) => {
|
|
17727
|
+
return ionContent.querySelector(ION_CONTENT_CLASS_SELECTOR);
|
|
17728
|
+
};
|
|
17729
|
+
/**
|
|
17730
|
+
* Queries the `ion-refresher` that scrolls with the given content element,
|
|
17731
|
+
* which may be an `ion-content` or a custom scroll host. A refresher is a
|
|
17732
|
+
* `slot="fixed"` child of `ion-content`, so it is a sibling of a scroll host
|
|
17733
|
+
* rather than a descendant of it.
|
|
17734
|
+
*/
|
|
17735
|
+
const findRefresherInContent = (contentEl) => {
|
|
17736
|
+
// An `ion-content` owns any refresher inside it, scroll host or not.
|
|
17737
|
+
if (isIonContent(contentEl)) {
|
|
17738
|
+
return contentEl.querySelector('ion-refresher');
|
|
17739
|
+
}
|
|
17740
|
+
// A refresher needs an `ion-content` ancestor to initialize.
|
|
17741
|
+
const ionContent = contentEl.closest(ION_CONTENT_ELEMENT_SELECTOR);
|
|
17742
|
+
if (ionContent === null) {
|
|
17743
|
+
return null;
|
|
17744
|
+
}
|
|
17745
|
+
// Any scroll host other than the refresher's own has no refresher.
|
|
17746
|
+
const refresherScrollHost = findRefresherScrollHost(ionContent);
|
|
17747
|
+
if (refresherScrollHost === null || !refresherScrollHost.contains(contentEl)) {
|
|
17748
|
+
return null;
|
|
17749
|
+
}
|
|
17750
|
+
return ionContent.querySelector('ion-refresher');
|
|
17751
|
+
};
|
|
17722
17752
|
/**
|
|
17723
17753
|
* Prints an error informing developers that an implementation requires an element to be used
|
|
17724
17754
|
* within either the `ion-content` selector or the `.ion-content-scroll-host` class.
|
|
@@ -24029,6 +24059,21 @@ const setCardStatusBarDefault = (defaultStyle = Style.Default) => {
|
|
|
24029
24059
|
StatusBar.setStyle({ style: defaultStyle });
|
|
24030
24060
|
};
|
|
24031
24061
|
|
|
24062
|
+
/**
|
|
24063
|
+
* Swiping is only possible when the content is scrolled to the top, so that we
|
|
24064
|
+
* do not interfere with scrolling, and never on content with a refresher.
|
|
24065
|
+
*
|
|
24066
|
+
* Note: We cannot solve the refresher case with gesture priority as the iOS
|
|
24067
|
+
* native refresh gesture uses a scroll listener in addition to a gesture.
|
|
24068
|
+
*
|
|
24069
|
+
* Note: Do not use `getScrollElement` here because we need this to be a
|
|
24070
|
+
* synchronous operation, and `getScrollElement` is asynchronous.
|
|
24071
|
+
*/
|
|
24072
|
+
const canSwipeOnContent = (contentEl) => {
|
|
24073
|
+
const scrollEl = isIonContent(contentEl) ? getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
|
|
24074
|
+
const hasRefresherInContent = !!findRefresherInContent(contentEl);
|
|
24075
|
+
return !hasRefresherInContent && scrollEl.scrollTop === 0;
|
|
24076
|
+
};
|
|
24032
24077
|
const handleCanDismiss = async (el, animation) => {
|
|
24033
24078
|
/**
|
|
24034
24079
|
* If canDismiss is not a function
|
|
@@ -24159,7 +24204,6 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
24159
24204
|
let isOpen = false;
|
|
24160
24205
|
let canDismissBlocksGesture = false;
|
|
24161
24206
|
let contentEl = null;
|
|
24162
|
-
let scrollEl = null;
|
|
24163
24207
|
const canDismissMaxStep = 0.2;
|
|
24164
24208
|
let initialScrollY = true;
|
|
24165
24209
|
let lastStep = 0;
|
|
@@ -24182,12 +24226,6 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
24182
24226
|
return true;
|
|
24183
24227
|
}
|
|
24184
24228
|
/**
|
|
24185
|
-
* If we are swiping on the content,
|
|
24186
|
-
* swiping should only be possible if
|
|
24187
|
-
* the content is scrolled all the way
|
|
24188
|
-
* to the top so that we do not interfere
|
|
24189
|
-
* with scrolling.
|
|
24190
|
-
*
|
|
24191
24229
|
* We cannot assume that the `ion-content`
|
|
24192
24230
|
* target will remain consistent between
|
|
24193
24231
|
* swipes. For example, when using
|
|
@@ -24198,29 +24236,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
24198
24236
|
*/
|
|
24199
24237
|
contentEl = findClosestIonContent(target);
|
|
24200
24238
|
if (contentEl) {
|
|
24201
|
-
|
|
24202
|
-
* The card should never swipe to close
|
|
24203
|
-
* on the content with a refresher.
|
|
24204
|
-
* Note: We cannot solve this by making the
|
|
24205
|
-
* swipeToClose gesture have a higher priority
|
|
24206
|
-
* than the refresher gesture as the iOS native
|
|
24207
|
-
* refresh gesture uses a scroll listener in
|
|
24208
|
-
* addition to a gesture.
|
|
24209
|
-
*
|
|
24210
|
-
* Note: Do not use getScrollElement here
|
|
24211
|
-
* because we need this to be a synchronous
|
|
24212
|
-
* operation, and getScrollElement is
|
|
24213
|
-
* asynchronous.
|
|
24214
|
-
*/
|
|
24215
|
-
if (isIonContent(contentEl)) {
|
|
24216
|
-
const root = getElementRoot(contentEl);
|
|
24217
|
-
scrollEl = root.querySelector('.inner-scroll');
|
|
24218
|
-
}
|
|
24219
|
-
else {
|
|
24220
|
-
scrollEl = contentEl;
|
|
24221
|
-
}
|
|
24222
|
-
const hasRefresherInContent = !!contentEl.querySelector('ion-refresher');
|
|
24223
|
-
return !hasRefresherInContent && scrollEl.scrollTop === 0;
|
|
24239
|
+
return canSwipeOnContent(contentEl);
|
|
24224
24240
|
}
|
|
24225
24241
|
/**
|
|
24226
24242
|
* Card should be swipeable on all
|
|
@@ -25092,9 +25108,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
25092
25108
|
}
|
|
25093
25109
|
const canStart = (detail) => {
|
|
25094
25110
|
/**
|
|
25095
|
-
* If we are swiping on the content, swiping should only be possible if the content
|
|
25096
|
-
* is scrolled all the way to the top so that we do not interfere with scrolling.
|
|
25097
|
-
*
|
|
25098
25111
|
* We cannot assume that the `ion-content` target will remain consistent between swipes.
|
|
25099
25112
|
* For example, when using ion-nav within a modal it is possible to swipe, push a view,
|
|
25100
25113
|
* and then swipe again. The target content will not be the same between swipes.
|
|
@@ -25102,26 +25115,11 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
25102
25115
|
const contentEl = findClosestIonContent(detail.event.target);
|
|
25103
25116
|
currentBreakpoint = getCurrentBreakpoint();
|
|
25104
25117
|
/**
|
|
25105
|
-
*
|
|
25106
|
-
*
|
|
25118
|
+
* Upwards swipes on the content cannot move the sheet anyway, so this only
|
|
25119
|
+
* blocks swiping the sheet down from the content.
|
|
25107
25120
|
*/
|
|
25108
|
-
if (!expandToScroll
|
|
25109
|
-
|
|
25110
|
-
return scrollEl.scrollTop === 0;
|
|
25111
|
-
}
|
|
25112
|
-
if (currentBreakpoint === 1 && contentEl) {
|
|
25113
|
-
/**
|
|
25114
|
-
* The modal should never swipe to close on the content with a refresher.
|
|
25115
|
-
* Note 1: We cannot solve this by making this gesture have a higher priority than
|
|
25116
|
-
* the refresher gesture as the iOS native refresh gesture uses a scroll listener in
|
|
25117
|
-
* addition to a gesture.
|
|
25118
|
-
*
|
|
25119
|
-
* Note 2: Do not use getScrollElement here because we need this to be a synchronous
|
|
25120
|
-
* operation, and getScrollElement is asynchronous.
|
|
25121
|
-
*/
|
|
25122
|
-
const scrollEl = isIonContent(contentEl) ? getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
|
|
25123
|
-
const hasRefresherInContent = !!contentEl.querySelector('ion-refresher');
|
|
25124
|
-
return !hasRefresherInContent && scrollEl.scrollTop === 0;
|
|
25121
|
+
if (contentEl && (!expandToScroll || currentBreakpoint === 1)) {
|
|
25122
|
+
return canSwipeOnContent(contentEl);
|
|
25125
25123
|
}
|
|
25126
25124
|
return true;
|
|
25127
25125
|
};
|
|
@@ -33584,7 +33582,7 @@ class Refresher {
|
|
|
33584
33582
|
* or the background content element.
|
|
33585
33583
|
*/
|
|
33586
33584
|
componentOnReady(contentEl, async () => {
|
|
33587
|
-
const customScrollTarget = contentEl
|
|
33585
|
+
const customScrollTarget = findRefresherScrollHost(contentEl);
|
|
33588
33586
|
/**
|
|
33589
33587
|
* Query the custom scroll target (if available), first. In refresher implementations,
|
|
33590
33588
|
* the ion-refresher element will always be a direct child of ion-content (slot="fixed"). By
|
|
@@ -33934,7 +33932,7 @@ class Refresher {
|
|
|
33934
33932
|
}
|
|
33935
33933
|
render() {
|
|
33936
33934
|
const mode = getIonMode$1(this);
|
|
33937
|
-
return (hAsync(Host, { key: '
|
|
33935
|
+
return (hAsync(Host, { key: '6b94f11bd5382bdf4e92c43d4b5d0550c290852d', slot: "fixed", class: {
|
|
33938
33936
|
[mode]: true,
|
|
33939
33937
|
// Used internally for styling
|
|
33940
33938
|
[`refresher-${mode}`]: true,
|
package/package.json
CHANGED
package/components/p-DHTSTb52.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
-
*/
|
|
4
|
-
import{k as o,w as s}from"./p-CHqRYvYm.js";import{a as t,s as r}from"./p-DRugphUN.js";import{c as a}from"./p-D3xo7hqU.js";const n=()=>{const n=window;n.addEventListener("statusTap",(()=>{o((()=>{const o=document.elementFromPoint(n.innerWidth/2,n.innerHeight/2);if(!o)return;const m=t(o);m&&new Promise((o=>a(m,o))).then((()=>{s((async()=>{m.style.setProperty("--overflow","hidden"),await r(m,300),m.style.removeProperty("--overflow")}))}))}))}))};export{n as startStatusTap}
|
package/components/p-DRugphUN.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
-
*/
|
|
4
|
-
import{c as o}from"./p-D3xo7hqU.js";import{u as s}from"./p-CHqRYvYm.js";const a="ion-content",t=".ion-content-scroll-host",r=`${a}, ${t}`,e=o=>"ION-CONTENT"===o.tagName,i=async s=>e(s)?(await new Promise((a=>o(s,a))),s.getScrollElement()):s,n=o=>o.querySelector(t)||o.querySelector(r),m=o=>o.closest(r),c=(o,s)=>e(o)?o.scrollToTop(s):Promise.resolve(o.scrollTo({top:0,left:0,behavior:"smooth"})),f=(o,s,a,t)=>e(o)?o.scrollByPoint(s,a,t):Promise.resolve(o.scrollBy({top:a,left:s,behavior:t>0?"smooth":"auto"})),p=o=>s(o,a),h=o=>{if(e(o)){const s=o.scrollY;return o.scrollY=!1,s}return o.style.setProperty("overflow","hidden"),!0},l=(o,s)=>{e(o)?o.scrollY=s:o.style.removeProperty("overflow")};export{t as I,m as a,a as b,f as c,h as d,n as f,i as g,e as i,p,l as r,c as s}
|
package/components/p-VWbRkLT7.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
-
*/
|
|
4
|
-
import{w as o,d as n}from"./p-ZjP4CjeZ.js";import{g as t,c as i,a as r}from"./p-DRugphUN.js";import{a,b as e,c as s}from"./p-D3xo7hqU.js";import{a as d,K as c}from"./p-D13Eaw-8.js";const l=new WeakMap,u=(o,n,t,i=0,r=!1)=>{l.has(o)!==t&&(t?f(o,n,i,r):w(o,n))},f=(o,n,t,i=!1)=>{const r=n.parentNode,a=n.cloneNode(!1);a.classList.add("cloned-input"),a.tabIndex=-1,i&&(a.disabled=!0);const e="rtl"===o.ownerDocument.dir;a.style.insetInlineStart=e?r.offsetWidth-n.offsetLeft-n.offsetWidth+"px":`${n.offsetLeft}px`,r.appendChild(a),l.set(o,a);const s=e?9999:-9999;o.style.pointerEvents="none",n.style.transform=`translate3d(${s}px,${t}px,0) scale(0)`},w=(o,n)=>{const t=l.get(o);t&&(l.delete(o),t.remove()),o.style.pointerEvents="",n.style.transform=""},p="input, textarea, [no-blur], [contenteditable]",m="$ionPaddingTimer",h=(o,n,t)=>{const i=o[m];i&&clearTimeout(i),n>0?o.style.setProperty("--keyboard-offset",`${n}px`):o[m]=setTimeout((()=>{o.style.setProperty("--keyboard-offset","0px"),t&&t()}),120)},b=(o,n,t)=>{o.addEventListener("focusout",(()=>{n&&h(n,0,t)}),{once:!0})};let y=0;const S="data-ionic-skip-scroll-assist",D=o=>{var n;if(document.activeElement===o)return;const t=o.getAttribute("id"),i=o.closest(`label[for="${t}"]`),r=null===(n=document.activeElement)||void 0===n?void 0:n.closest(`label[for="${t}"]`);null!==i&&i===r||(o.setAttribute(S,"true"),o.focus())},v=async(o,n,r,a,e,s,d=!1,c=0,l=!0)=>{if(!r&&!a)return;const f=((o,n,t,i)=>{var r;return((o,n,t,i)=>{const r=o.top,a=o.bottom,e=n.top,s=e+15,d=Math.min(n.bottom,i-t)-50-a,c=s-r,l=Math.round(d<0?-d:c>0?-c:0),u=Math.min(l,r-e),f=Math.abs(u);return{scrollAmount:u,scrollDuration:Math.min(400,Math.max(150,f/.3)),scrollPadding:t,inputSafeY:4-(r-s)}})((null!==(r=o.closest("ion-item,[ion-item]"))&&void 0!==r?r:o).getBoundingClientRect(),n.getBoundingClientRect(),t,i)})(o,r||a,e,c);if(r&&Math.abs(f.scrollAmount)<4)return D(n),void(s&&null!==r&&(h(r,y),b(n,r,(()=>y=0))));if(u(o,n,!0,f.inputSafeY,d),D(n),s&&r&&(y=f.scrollPadding,h(r,y)),"undefined"!=typeof window){let a;const e=async()=>{void 0!==a&&clearTimeout(a),window.removeEventListener("ionKeyboardDidShow",d),window.removeEventListener("ionKeyboardDidShow",e),r&&await i(r,0,f.scrollAmount,f.scrollDuration),u(o,n,!1,f.inputSafeY),document.activeElement===n&&D(n),s&&b(n,r,(()=>y=0))},d=()=>{window.removeEventListener("ionKeyboardDidShow",d),window.addEventListener("ionKeyboardDidShow",e)};if(r){const o=await t(r);if(l&&f.scrollAmount>o.scrollHeight-o.clientHeight-o.scrollTop)return"password"===n.type?(f.scrollAmount+=50,window.addEventListener("ionKeyboardDidShow",d)):window.addEventListener("ionKeyboardDidShow",e),void(a=setTimeout(e,1e3))}e()}},x=async(t,i)=>{if(void 0===n)return;const l="ios"===i,f="android"===i,w=t.getNumber("keyboardHeight",290),m=t.getBoolean("scrollAssist",!0),h=t.getBoolean("hideCaretOnScroll",l),b=t.getBoolean("inputBlurring",!1),y=t.getBoolean("scrollPadding",!0),D=Array.from(n.querySelectorAll("ion-input, ion-textarea")),x=new WeakMap,K=new WeakMap,M=await c.getResizeMode(),g=async n=>{await new Promise((o=>s(n,o)));const t=n.shadowRoot||n,i=t.querySelector("input")||t.querySelector("textarea"),c=r(n),l=c?null:n.closest("ion-footer");if(i){if(c&&h&&!x.has(n)){const o=((o,n,t)=>{if(!t||!n)return()=>{};const i=t=>{var i;(i=n)===i.getRootNode().activeElement&&u(o,n,t)},r=()=>u(o,n,!1),s=()=>i(!0),d=()=>i(!1);return a(t,"ionScrollStart",s),a(t,"ionScrollEnd",d),n.addEventListener("blur",r),()=>{e(t,"ionScrollStart",s),e(t,"ionScrollEnd",d),n.removeEventListener("blur",r)}})(n,i,c);x.set(n,o)}if("date"!==i.type&&"datetime-local"!==i.type&&(c||l)&&m&&!K.has(n)){const t=((n,t,i,r,a,e,s,c=!1)=>{const l=e&&(void 0===s||s.mode===d.None);let u=!1;const f=void 0!==o?o.innerHeight:0,w=o=>{!1!==u?v(n,t,i,r,o.detail.keyboardHeight,l,c,f,!1):u=!0},p=()=>{u=!1,null==o||o.removeEventListener("ionKeyboardDidShow",w),n.removeEventListener("focusout",p)},m=async()=>{t.hasAttribute(S)?t.removeAttribute(S):(v(n,t,i,r,a,l,c,f),null==o||o.addEventListener("ionKeyboardDidShow",w),n.addEventListener("focusout",p))};return n.addEventListener("focusin",m),()=>{n.removeEventListener("focusin",m),null==o||o.removeEventListener("ionKeyboardDidShow",w),n.removeEventListener("focusout",p)}})(n,i,c,l,w,y,M,f);K.set(n,t)}}};b&&(()=>{let o=!0,n=!1;const t=document;a(t,"ionScrollStart",(()=>{n=!0})),t.addEventListener("focusin",(()=>{o=!0}),!0),t.addEventListener("touchend",(i=>{if(n)return void(n=!1);const r=t.activeElement;if(!r)return;if(r.matches(p))return;const a=i.target;a!==r&&(a.matches(p)||a.closest(p)||(o=!1,setTimeout((()=>{o||r.blur()}),50)))}),!1)})();for(const o of D)g(o);n.addEventListener("ionInputDidLoad",(o=>{g(o.detail)})),n.addEventListener("ionInputDidUnload",(o=>{(o=>{if(h){const n=x.get(o);n&&n(),x.delete(o)}if(m){const n=K.get(o);n&&n(),K.delete(o)}})(o.detail)}))};export{x as startInputShims}
|