/*! * (C) Ionic http://ionicframework.com - MIT License */ import{d as n}from"./p-7b30edcc.js";import{OVERLAY_BACK_BUTTON_PRIORITY as e,shouldUseCloseWatcher as o}from"./p-0d6f7a8d.js";import{b as t,c as i}from"./p-2389b3f9.js";import{C as a}from"./p-779aede8.js";import{c as r,f as d,a as s,b as l,g as c}from"./p-1b3ffb2f.js";import{p as u}from"./p-06fee233.js";let f=0,m=0;const p=new WeakMap,v=n=>({create:e=>j(n,e),dismiss:(e,o,t)=>S(document,e,o,n,t),getTop:async()=>B(document,n)}),h=v("ion-alert"),b=v("ion-action-sheet"),w=v("ion-loading"),y=v("ion-modal"),g=v("ion-picker"),O=v("ion-popover"),k=v("ion-toast"),T=n=>{"undefined"!=typeof document&&N(document);const e=f++;n.overlayIndex=e},x=n=>(n.hasAttribute("id")||(n.id="ion-overlay-"+ ++m),n.id),j=(n,e)=>"undefined"!=typeof window&&void 0!==window.customElements?window.customElements.whenDefined(n).then((()=>{const o=document.createElement(n);return o.classList.add("overlay-hidden"),Object.assign(o,Object.assign(Object.assign({},e),{hasController:!0})),V(document).appendChild(o),new Promise((n=>r(o,n)))})):Promise.resolve(),A='[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])',C=(n,e)=>{const o=n.querySelector(A);D(o,e)},I=(n,e)=>{const o=Array.from(n.querySelectorAll(A));D(o.length>0?o[o.length-1]:null,e)},D=(n,e)=>{let o=n;const t=null==n?void 0:n.shadowRoot;t&&(o=t.querySelector(A)||n),o?d(o):e.focus()},N=n=>{0===f&&(f=1,n.addEventListener("focus",(e=>{((n,e)=>{const o=B(e,"ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover"),t=n.target;o&&t&&(o.classList.contains("ion-disable-focus-trap")||(o.shadowRoot?(()=>{if(o.contains(t))o.lastFocus=t;else if("ION-TOAST"===t.tagName)D(o.lastFocus,o);else{const n=o.lastFocus;C(o,o),n===e.activeElement&&I(o,o),o.lastFocus=e.activeElement}})():(()=>{if(o===t)o.lastFocus=void 0;else if("ION-TOAST"===t.tagName)D(o.lastFocus,o);else{const n=c(o);if(!n.contains(t))return;const i=n.querySelector(".ion-overlay-wrapper");if(!i)return;if(i.contains(t)||t===n.querySelector("ion-backdrop"))o.lastFocus=t;else{const n=o.lastFocus;C(i,o),n===e.activeElement&&I(i,o),o.lastFocus=e.activeElement}}})()))})(e,n)}),!0),n.addEventListener("ionBackButton",(o=>{const t=B(n);(null==t?void 0:t.backdropDismiss)&&o.detail.register(e,(()=>{t.dismiss(void 0,H)}))})),o()||n.addEventListener("keydown",(e=>{if("Escape"===e.key){const e=B(n);(null==e?void 0:e.backdropDismiss)&&e.dismiss(void 0,H)}})))},S=(n,e,o,t,i)=>{const a=B(n,t,i);return a?a.dismiss(e,o):Promise.reject("overlay does not exist")},P=(n,e)=>((n,e)=>(void 0===e&&(e="ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover,ion-toast"),Array.from(n.querySelectorAll(e)).filter((n=>n.overlayIndex>0))))(n,e).filter((n=>!n.classList.contains("overlay-hidden"))),B=(n,e,o)=>{const t=P(n,e);return void 0===o?t[t.length-1]:t.find((n=>n.id===o))},M=(n=!1)=>{const e=V(document).querySelector("ion-router-outlet, ion-nav, #ion-view-container-root");e&&(n?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden"))},E=async(n,e,o,a,r)=>{var d,s;if(n.presented)return;M(!0),U(n.el),n.presented=!0,n.willPresent.emit(),null===(d=n.willPresentShorthand)||void 0===d||d.emit();const l=t(n),c=n.enterAnimation?n.enterAnimation:i.get(e,"ios"===l?o:a);await z(n,c,n.el,r)&&(n.didPresent.emit(),null===(s=n.didPresentShorthand)||void 0===s||s.emit()),"ION-TOAST"!==n.el.tagName&&G(n.el),!n.keyboardClose||null!==document.activeElement&&n.el.contains(document.activeElement)||n.el.focus(),n.el.removeAttribute("aria-hidden")},G=async n=>{let e=document.activeElement;if(!e)return;const o=null==e?void 0:e.shadowRoot;o&&(e=o.querySelector(A)||e),await n.onDidDismiss(),null!==document.activeElement&&document.activeElement!==document.body||e.focus()},L=async(e,o,a,r,d,s,l)=>{var c,u;if(!e.presented)return!1;void 0!==n&&1===P(n).length&&M(!1),e.presented=!1;try{e.el.style.setProperty("pointer-events","none"),e.willDismiss.emit({data:o,role:a}),null===(c=e.willDismissShorthand)||void 0===c||c.emit({data:o,role:a});const n=t(e),f=e.leaveAnimation?e.leaveAnimation:i.get(r,"ios"===n?d:s);a!==J&&await z(e,f,e.el,l),e.didDismiss.emit({data:o,role:a}),null===(u=e.didDismissShorthand)||void 0===u||u.emit({data:o,role:a}),(p.get(e)||[]).forEach((n=>n.destroy())),p.delete(e),e.el.classList.add("overlay-hidden"),e.el.style.removeProperty("pointer-events"),void 0!==e.el.lastFocus&&(e.el.lastFocus=void 0)}catch(n){console.error(n)}return e.el.remove(),X(),!0},V=n=>n.querySelector("ion-app")||n.body,z=async(n,e,o,t)=>{o.classList.remove("overlay-hidden");const a=e(n.el,t);n.animated&&i.getBoolean("animated",!0)||a.duration(0),n.keyboardClose&&a.beforeAddWrite((()=>{const n=o.ownerDocument.activeElement;(null==n?void 0:n.matches("input,ion-input, ion-textarea"))&&n.blur()}));const r=p.get(n)||[];return p.set(n,[...r,a]),await a.play(),!0},F=(n,e)=>{let o;const t=new Promise((n=>o=n));return W(n,e,(n=>{o(n.detail)})),t},W=(n,e,o)=>{const t=i=>{l(n,e,t),o(i)};s(n,e,t)},$=n=>"cancel"===n||n===H,_=n=>n(),q=(n,e)=>{if("function"==typeof n)return i.get("_zoneGate",_)((()=>{try{return n(e)}catch(n){throw n}}))},H="backdrop",J="gesture",K=39,Q=n=>{let e,o=!1;const t=a(),i=(i=!1)=>{if(e&&!i)return{delegate:e,inline:o};const{el:a,hasController:r,delegate:d}=n;return o=null!==a.parentNode&&!r,e=o?d||t:d,{inline:o,delegate:e}};return{attachViewToDom:async e=>{const{delegate:o}=i(!0);if(o)return await o.attachViewToDom(n.el,e);const{hasController:t}=n;if(t&&void 0!==e)throw new Error("framework delegate is missing");return null},removeViewFromDom:()=>{const{delegate:e}=i();e&&void 0!==n.el&&e.removeViewFromDom(n.el.parentElement,n.el)}}},R=()=>{let n;const e=()=>{n&&(n(),n=void 0)};return{addClickListener:(o,t)=>{e();const i=void 0!==t?document.getElementById(t):null;i?n=((n,e)=>{const o=()=>{e.present()};return n.addEventListener("click",o),()=>{n.removeEventListener("click",o)}})(i,o):u(`A trigger element with the ID "${t}" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on an overlay component.`,o)},removeClickListener:e}},U=e=>{var o;if(void 0===n)return;const t=P(n);for(let n=t.length-1;n>=0;n--){const i=t[n],a=null!==(o=t[n+1])&&void 0!==o?o:e;(a.hasAttribute("aria-hidden")||"ION-TOAST"!==a.tagName)&&i.setAttribute("aria-hidden","true")}},X=()=>{if(void 0===n)return;const e=P(n);for(let n=e.length-1;n>=0;n--){const o=e[n];if(o.removeAttribute("aria-hidden"),"ION-TOAST"!==o.tagName)break}};export{H as B,J as G,K as O,h as a,b,O as c,Q as d,R as e,E as f,L as g,F as h,$ as i,T as j,x as k,w as l,y as m,C as n,B as o,g as p,q as s,k as t}