@ionic/core
Version:
Base components for Ionic
4 lines • 6.88 kB
JavaScript
import{__awaiter,__generator}from"tslib";
/*!
* (C) Ionic http://ionicframework.com - MIT License
*/import{c as config}from"./ionic-global-ca86cf32.js";import{w as writeTask,B as Build}from"./index-527b9e34.js";import{p as printIonWarning}from"./index-738d7504.js";import{r as raf}from"./helpers-78efeec3.js";var LIFECYCLE_WILL_ENTER="ionViewWillEnter";var LIFECYCLE_DID_ENTER="ionViewDidEnter";var LIFECYCLE_WILL_LEAVE="ionViewWillLeave";var LIFECYCLE_DID_LEAVE="ionViewDidLeave";var LIFECYCLE_WILL_UNLOAD="ionViewWillUnload";var moveFocus=function(e){e.tabIndex=-1;e.focus()};var isVisible=function(e){return e.offsetParent!==null};var createFocusController=function(){var e=function(e){var n=config.get("focusManagerPriority",false);if(n){var r=document.activeElement;if(r!==null&&(e===null||e===void 0?void 0:e.contains(r))){r.setAttribute(LAST_FOCUS,"true")}}};var n=function(e){var n=config.get("focusManagerPriority",false);if(Array.isArray(n)&&!e.contains(document.activeElement)){var r=e.querySelector("[".concat(LAST_FOCUS,"]"));if(r&&isVisible(r)){moveFocus(r);return}for(var i=0,t=n;i<t.length;i++){var a=t[i];switch(a){case"content":var o=e.querySelector('main, [role="main"]');if(o&&isVisible(o)){moveFocus(o);return}break;case"heading":var s=e.querySelector('h1, [role="heading"][aria-level="1"]');if(s&&isVisible(s)){moveFocus(s);return}break;case"banner":var u=e.querySelector('header, [role="banner"]');if(u&&isVisible(u)){moveFocus(u);return}break;default:printIonWarning("Unrecognized focus manager priority value ".concat(a));break}}moveFocus(e)}};return{saveViewFocus:e,setViewFocus:n}};var LAST_FOCUS="ion-last-focus";var iosTransitionAnimation=function(){return import("./ios.transition-7fe5dbea.js")};var mdTransitionAnimation=function(){return import("./md.transition-8dc58b46.js")};var focusController=createFocusController();var transition=function(e){return new Promise((function(n,r){writeTask((function(){beforeTransition(e);runTransition(e).then((function(r){if(r.animation){r.animation.destroy()}afterTransition(e);n(r)}),(function(n){afterTransition(e);r(n)}))}))}))};var beforeTransition=function(e){var n=e.enteringEl;var r=e.leavingEl;focusController.saveViewFocus(r);setZIndex(n,r,e.direction);if(e.showGoBack){n.classList.add("can-go-back")}else{n.classList.remove("can-go-back")}setPageHidden(n,false);n.style.setProperty("pointer-events","none");if(r){setPageHidden(r,false);r.style.setProperty("pointer-events","none")}};var runTransition=function(e){return __awaiter(void 0,void 0,void 0,(function(){var n,r;return __generator(this,(function(i){switch(i.label){case 0:return[4,getAnimationBuilder(e)];case 1:n=i.sent();r=n&&Build.isBrowser?animation(n,e):noAnimation(e);return[2,r]}}))}))};var afterTransition=function(e){var n=e.enteringEl;var r=e.leavingEl;n.classList.remove("ion-page-invisible");n.style.removeProperty("pointer-events");if(r!==undefined){r.classList.remove("ion-page-invisible");r.style.removeProperty("pointer-events")}focusController.setViewFocus(n)};var getAnimationBuilder=function(e){return __awaiter(void 0,void 0,void 0,(function(){var n,r;return __generator(this,(function(i){switch(i.label){case 0:if(!e.leavingEl||!e.animated||e.duration===0){return[2,undefined]}if(e.animationBuilder){return[2,e.animationBuilder]}if(!(e.mode==="ios"))return[3,2];return[4,iosTransitionAnimation()];case 1:r=i.sent().iosTransitionAnimation;return[3,4];case 2:return[4,mdTransitionAnimation()];case 3:r=i.sent().mdTransitionAnimation;i.label=4;case 4:n=r;return[2,n]}}))}))};var animation=function(e,n){return __awaiter(void 0,void 0,void 0,(function(){var r,i;return __generator(this,(function(t){switch(t.label){case 0:return[4,waitForReady(n,true)];case 1:t.sent();r=e(n.baseEl,n);fireWillEvents(n.enteringEl,n.leavingEl);return[4,playTransition(r,n)];case 2:i=t.sent();if(n.progressCallback){n.progressCallback(undefined)}if(i){fireDidEvents(n.enteringEl,n.leavingEl)}return[2,{hasCompleted:i,animation:r}]}}))}))};var noAnimation=function(e){return __awaiter(void 0,void 0,void 0,(function(){var n,r,i;return __generator(this,(function(t){switch(t.label){case 0:n=e.enteringEl;r=e.leavingEl;i=config.get("focusManagerPriority",false);return[4,waitForReady(e,i)];case 1:t.sent();fireWillEvents(n,r);fireDidEvents(n,r);return[2,{hasCompleted:true}]}}))}))};var waitForReady=function(e,n){return __awaiter(void 0,void 0,void 0,(function(){var r;return __generator(this,(function(i){switch(i.label){case 0:r=e.deepWait!==undefined?e.deepWait:n;if(!r)return[3,2];return[4,Promise.all([deepReady(e.enteringEl),deepReady(e.leavingEl)])];case 1:i.sent();i.label=2;case 2:return[4,notifyViewReady(e.viewIsReady,e.enteringEl)];case 3:i.sent();return[2]}}))}))};var notifyViewReady=function(e,n){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(r){switch(r.label){case 0:if(!e)return[3,2];return[4,e(n)];case 1:r.sent();r.label=2;case 2:return[2]}}))}))};var playTransition=function(e,n){var r=n.progressCallback;var i=new Promise((function(n){e.onFinish((function(e){return n(e===1)}))}));if(r){e.progressStart(true);r(e)}else{e.play()}return i};var fireWillEvents=function(e,n){lifecycle(n,LIFECYCLE_WILL_LEAVE);lifecycle(e,LIFECYCLE_WILL_ENTER)};var fireDidEvents=function(e,n){lifecycle(e,LIFECYCLE_DID_ENTER);lifecycle(n,LIFECYCLE_DID_LEAVE)};var lifecycle=function(e,n){if(e){var r=new CustomEvent(n,{bubbles:false,cancelable:false});e.dispatchEvent(r)}};var waitForMount=function(){return new Promise((function(e){return raf((function(){return raf((function(){return e()}))}))}))};var deepReady=function(e){return __awaiter(void 0,void 0,void 0,(function(){var n,r,i;return __generator(this,(function(t){switch(t.label){case 0:n=e;if(!n)return[3,6];if(!(n.componentOnReady!=null))return[3,2];return[4,n.componentOnReady()];case 1:r=t.sent();if(r!=null){return[2]}return[3,4];case 2:if(!(n.__registerHost!=null))return[3,4];i=new Promise((function(e){return raf(e)}));return[4,i];case 3:t.sent();return[2];case 4:return[4,Promise.all(Array.from(n.children).map(deepReady))];case 5:t.sent();t.label=6;case 6:return[2]}}))}))};var setPageHidden=function(e,n){if(n){e.setAttribute("aria-hidden","true");e.classList.add("ion-page-hidden")}else{e.hidden=false;e.removeAttribute("aria-hidden");e.classList.remove("ion-page-hidden")}};var setZIndex=function(e,n,r){if(e!==undefined){e.style.zIndex=r==="back"?"99":"101"}if(n!==undefined){n.style.zIndex="100"}};var getIonPageElement=function(e){if(e.classList.contains("ion-page")){return e}var n=e.querySelector(":scope > .ion-page, :scope > ion-nav, :scope > ion-tabs");if(n){return n}return e};export{LIFECYCLE_WILL_ENTER as L,LIFECYCLE_DID_ENTER as a,LIFECYCLE_WILL_LEAVE as b,LIFECYCLE_DID_LEAVE as c,LIFECYCLE_WILL_UNLOAD as d,deepReady as e,getIonPageElement as g,lifecycle as l,setPageHidden as s,transition as t,waitForMount as w};