@ionic/core
Version:
Base components for Ionic
4 lines • 1.27 kB
JavaScript
/*!
* (C) Ionic http://ionicframework.com - MIT License
*/
import{w as t}from"./p-ZjP4CjeZ.js";import{e,c as o}from"./p-Ct2aBEue.js";const n=()=>e.get("experimentalCloseWatcher",!1)&&void 0!==t&&"CloseWatcher"in t,i=()=>{document.addEventListener("backbutton",(()=>{}))},r=[];let a;const c=t=>{r.push(t)},s=()=>{a?.()},l=()=>{const e=document;let i=!1;const c=()=>{if(i)return;let t=0,n=[];const r=new CustomEvent("ionBackButton",{bubbles:!1,detail:{register(e,o){n.push({priority:e,handler:o,id:t++})}}});e.dispatchEvent(r);const a=()=>{if(n.length>0){let t={priority:Number.MIN_SAFE_INTEGER,handler:()=>{},id:-1};n.forEach((e=>{e.priority>=t.priority&&(t=e)})),i=!0,n=n.filter((e=>e.id!==t.id)),(async t=>{try{if(t?.handler){const e=t.handler(a);null!=e&&await e}}catch(t){o("[ion-app] - Exception in startHardwareBackButton:",t)}})(t).then((()=>i=!1))}};a()};if(e.addEventListener("backbutton",c),n()){let e;a=()=>{if(!r.some((t=>t())))return e?.destroy(),void(e=void 0);void 0===e&&(e=new t.CloseWatcher,e.onclose=()=>{e=void 0,c(),a?.()})},a()}},d=100,u=99;export{u as MENU_BACK_BUTTON_PRIORITY,d as OVERLAY_BACK_BUTTON_PRIORITY,c as addCloseWatcherCondition,i as blockHardwareBackButton,n as shouldUseCloseWatcher,l as startHardwareBackButton,s as updateCloseWatcher}