UNPKG

@ionic/angular

Version:

Angular specific wrappers for @ionic/core

73 lines 1.95 kB
export const insertView = (views, view, direction) => { if (direction === 'root') { return setRoot(views, view); } else if (direction === 'forward') { return setForward(views, view); } else { return setBack(views, view); } }; const setRoot = (views, view) => { views = views.filter((v) => v.stackId !== view.stackId); views.push(view); return views; }; const setForward = (views, view) => { const index = views.indexOf(view); if (index >= 0) { views = views.filter((v) => v.stackId !== view.stackId || v.id <= view.id); } else { views.push(view); } return views; }; const setBack = (views, view) => { const index = views.indexOf(view); if (index >= 0) { return views.filter((v) => v.stackId !== view.stackId || v.id <= view.id); } else { return setRoot(views, view); } }; export const getUrl = (router, activatedRoute) => { const urlTree = router.createUrlTree(['.'], { relativeTo: activatedRoute }); return router.serializeUrl(urlTree); }; export const isTabSwitch = (enteringView, leavingView) => { if (!leavingView) { return true; } return enteringView.stackId !== leavingView.stackId; }; export const computeStackId = (prefixUrl, url) => { if (!prefixUrl) { return undefined; } const segments = toSegments(url); for (let i = 0; i < segments.length; i++) { if (i >= prefixUrl.length) { return segments[i]; } if (segments[i] !== prefixUrl[i]) { return undefined; } } return undefined; }; export const toSegments = (path) => { return path .split('/') .map((s) => s.trim()) .filter((s) => s !== ''); }; export const destroyView = (view) => { if (view) { view.ref.destroy(); view.unlistenEvents(); } }; //# sourceMappingURL=stack-utils.js.map