{"version":3,"sources":["node_modules/@ionic/core/dist/esm/ios.transition-0a5004b4.js"],"sourcesContent":["/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { c as createAnimation } from './animation-eab5a4ca.js';\nimport { g as getIonPageElement } from './index-8808daa5.js';\nimport './index-a5d50daf.js';\nimport './ionic-global-81a1064f.js';\nimport './index-7a952e7a.js';\nimport './index-9b0d46f4.js';\nimport './helpers-da915de8.js';\nconst DURATION = 540;\n// TODO(FW-2832): types\nconst getClonedElement = tagName => {\n return document.querySelector(`${tagName}.ion-cloned-element`);\n};\nconst shadow = el => {\n return el.shadowRoot || el;\n};\nconst getLargeTitle = refEl => {\n const tabs = refEl.tagName === 'ION-TABS' ? refEl : refEl.querySelector('ion-tabs');\n const query = 'ion-content ion-header:not(.header-collapse-condense-inactive) ion-title.title-large';\n if (tabs != null) {\n const activeTab = tabs.querySelector('ion-tab:not(.tab-hidden), .ion-page:not(.ion-page-hidden)');\n return activeTab != null ? activeTab.querySelector(query) : null;\n }\n return refEl.querySelector(query);\n};\nconst getBackButton = (refEl, backDirection) => {\n const tabs = refEl.tagName === 'ION-TABS' ? refEl : refEl.querySelector('ion-tabs');\n let buttonsList = [];\n if (tabs != null) {\n const activeTab = tabs.querySelector('ion-tab:not(.tab-hidden), .ion-page:not(.ion-page-hidden)');\n if (activeTab != null) {\n buttonsList = activeTab.querySelectorAll('ion-buttons');\n }\n } else {\n buttonsList = refEl.querySelectorAll('ion-buttons');\n }\n for (const buttons of buttonsList) {\n const parentHeader = buttons.closest('ion-header');\n const activeHeader = parentHeader && !parentHeader.classList.contains('header-collapse-condense-inactive');\n const backButton = buttons.querySelector('ion-back-button');\n const buttonsCollapse = buttons.classList.contains('buttons-collapse');\n const startSlot = buttons.slot === 'start' || buttons.slot === '';\n if (backButton !== null && startSlot && (buttonsCollapse && activeHeader && backDirection || !buttonsCollapse)) {\n return backButton;\n }\n }\n return null;\n};\nconst createLargeTitleTransition = (rootAnimation, rtl, backDirection, enteringEl, leavingEl) => {\n const enteringBackButton = getBackButton(enteringEl, backDirection);\n const leavingLargeTitle = getLargeTitle(leavingEl);\n const enteringLargeTitle = getLargeTitle(enteringEl);\n const leavingBackButton = getBackButton(leavingEl, backDirection);\n const shouldAnimationForward = enteringBackButton !== null && leavingLargeTitle !== null && !backDirection;\n const shouldAnimationBackward = enteringLargeTitle !== null && leavingBackButton !== null && backDirection;\n if (shouldAnimationForward) {\n const leavingLargeTitleBox = leavingLargeTitle.getBoundingClientRect();\n const enteringBackButtonBox = enteringBackButton.getBoundingClientRect();\n const enteringBackButtonTextEl = shadow(enteringBackButton).querySelector('.button-text');\n // Text element not rendered if developers pass text=\"\" to the back button\n const enteringBackButtonTextBox = enteringBackButtonTextEl === null || enteringBackButtonTextEl === void 0 ? void 0 : enteringBackButtonTextEl.getBoundingClientRect();\n const leavingLargeTitleTextEl = shadow(leavingLargeTitle).querySelector('.toolbar-title');\n const leavingLargeTitleTextBox = leavingLargeTitleTextEl.getBoundingClientRect();\n animateLargeTitle(rootAnimation, rtl, backDirection, leavingLargeTitle, leavingLargeTitleBox, leavingLargeTitleTextBox, enteringBackButtonBox, enteringBackButtonTextEl, enteringBackButtonTextBox);\n animateBackButton(rootAnimation, rtl, backDirection, enteringBackButton, enteringBackButtonBox, enteringBackButtonTextEl, enteringBackButtonTextBox, leavingLargeTitle, leavingLargeTitleTextBox);\n } else if (shouldAnimationBackward) {\n const enteringLargeTitleBox = enteringLargeTitle.getBoundingClientRect();\n const leavingBackButtonBox = leavingBackButton.getBoundingClientRect();\n const leavingBackButtonTextEl = shadow(leavingBackButton).querySelector('.button-text');\n // Text element not rendered if developers pass text=\"\" to the back button\n const leavingBackButtonTextBox = leavingBackButtonTextEl === null || leavingBackButtonTextEl === void 0 ? void 0 : leavingBackButtonTextEl.getBoundingClientRect();\n const enteringLargeTitleTextEl = shadow(enteringLargeTitle).querySelector('.toolbar-title');\n const enteringLargeTitleTextBox = enteringLargeTitleTextEl.getBoundingClientRect();\n animateLargeTitle(rootAnimation, rtl, backDirection, enteringLargeTitle, enteringLargeTitleBox, enteringLargeTitleTextBox, leavingBackButtonBox, leavingBackButtonTextEl, leavingBackButtonTextBox);\n animateBackButton(rootAnimation, rtl, backDirection, leavingBackButton, leavingBackButtonBox, leavingBackButtonTextEl, leavingBackButtonTextBox, enteringLargeTitle, enteringLargeTitleTextBox);\n }\n return {\n forward: shouldAnimationForward,\n backward: shouldAnimationBackward\n };\n};\nconst animateBackButton = (rootAnimation, rtl, backDirection, backButtonEl, backButtonBox, backButtonTextEl, backButtonTextBox, largeTitleEl, largeTitleTextBox) => {\n var _a, _b;\n const BACK_BUTTON_START_OFFSET = rtl ? `calc(100% - ${backButtonBox.right + 4}px)` : `${backButtonBox.left - 4}px`;\n const TEXT_ORIGIN_X = rtl ? 'right' : 'left';\n const ICON_ORIGIN_X = rtl ? 'left' : 'right';\n const CONTAINER_ORIGIN_X = rtl ? 'right' : 'left';\n let WIDTH_SCALE = 1;\n let HEIGHT_SCALE = 1;\n let TEXT_START_SCALE = `scale(${HEIGHT_SCALE})`;\n const TEXT_END_SCALE = 'scale(1)';\n if (backButtonTextEl && backButtonTextBox) {\n /**\n * When the title and back button texts match then they should overlap during the\n * page transition. If the texts do not match up then the back button text scale\n * adjusts to not perfectly match the large title text otherwise the proportions\n * will be incorrect. When the texts match we scale both the width and height to\n * account for font weight differences between the title and back button.\n */\n const doTitleAndButtonTextsMatch = ((_a = backButtonTextEl.textContent) === null || _a === void 0 ? void 0 : _a.trim()) === ((_b = largeTitleEl.textContent) === null || _b === void 0 ? void 0 : _b.trim());\n WIDTH_SCALE = largeTitleTextBox.width / backButtonTextBox.width;\n /**\n * Subtract an offset to account for slight sizing/padding differences between the\n * title and the back button.\n */\n HEIGHT_SCALE = (largeTitleTextBox.height - LARGE_TITLE_SIZE_OFFSET) / backButtonTextBox.height;\n /**\n * Even though we set TEXT_START_SCALE to HEIGHT_SCALE above, we potentially need\n * to re-compute this here since the HEIGHT_SCALE may have changed.\n */\n TEXT_START_SCALE = doTitleAndButtonTextsMatch ? `scale(${WIDTH_SCALE}, ${HEIGHT_SCALE})` : `scale(${HEIGHT_SCALE})`;\n }\n const backButtonIconEl = shadow(backButtonEl).querySelector('ion-icon');\n const backButtonIconBox = backButtonIconEl.getBoundingClientRect();\n /**\n * We need to offset the container by the icon dimensions\n * so that the back button text aligns with the large title\n * text. Otherwise, the back button icon will align with the\n * large title text but the back button text will not.\n */\n const CONTAINER_START_TRANSLATE_X = rtl ? `${backButtonIconBox.width / 2 - (backButtonIconBox.right - backButtonBox.right)}px` : `${backButtonBox.left - backButtonIconBox.width / 2}px`;\n const CONTAINER_END_TRANSLATE_X = rtl ? `-${window.innerWidth - backButtonBox.right}px` : `${backButtonBox.left}px`;\n /**\n * Back button container should be\n * aligned to the top of the title container\n * so the texts overlap as the back button\n * text begins to fade in.\n */\n const CONTAINER_START_TRANSLATE_Y = `${largeTitleTextBox.top}px`;\n /**\n * The cloned back button should align exactly with the\n * real back button on the entering page otherwise there will\n * be a layout shift.\n */\n const CONTAINER_END_TRANSLATE_Y = `${backButtonBox.top}px`;\n /**\n * In the forward direction, the cloned back button\n * container should translate from over the large title\n * to over the back button. In the backward direction,\n * it should translate from over the back button to over\n * the large title.\n */\n const FORWARD_CONTAINER_KEYFRAMES = [{\n offset: 0,\n transform: `translate3d(${CONTAINER_START_TRANSLATE_X}, ${CONTAINER_START_TRANSLATE_Y}, 0)`\n }, {\n offset: 1,\n transform: `translate3d(${CONTAINER_END_TRANSLATE_X}, ${CONTAINER_END_TRANSLATE_Y}, 0)`\n }];\n const BACKWARD_CONTAINER_KEYFRAMES = [{\n offset: 0,\n transform: `translate3d(${CONTAINER_END_TRANSLATE_X}, ${CONTAINER_END_TRANSLATE_Y}, 0)`\n }, {\n offset: 1,\n transform: `translate3d(${CONTAINER_START_TRANSLATE_X}, ${CONTAINER_START_TRANSLATE_Y}, 0)`\n }];\n const CONTAINER_KEYFRAMES = backDirection ? BACKWARD_CONTAINER_KEYFRAMES : FORWARD_CONTAINER_KEYFRAMES;\n /**\n * In the forward direction, the text in the cloned back button\n * should start to be (roughly) the size of the large title\n * and then scale down to be the size of the actual back button.\n * The text should also translate, but that translate is handled\n * by the container keyframes.\n */\n const FORWARD_TEXT_KEYFRAMES = [{\n offset: 0,\n opacity: 0,\n transform: TEXT_START_SCALE\n }, {\n offset: 1,\n opacity: 1,\n transform: TEXT_END_SCALE\n }];\n const BACKWARD_TEXT_KEYFRAMES = [{\n offset: 0,\n opacity: 1,\n transform: TEXT_END_SCALE\n }, {\n offset: 1,\n opacity: 0,\n transform: TEXT_START_SCALE\n }];\n const TEXT_KEYFRAMES = backDirection ? BACKWARD_TEXT_KEYFRAMES : FORWARD_TEXT_KEYFRAMES;\n /**\n * The icon should scale in/out in the second\n * half of the animation. The icon should also\n * translate, but that translate is handled by the\n * container keyframes.\n */\n const FORWARD_ICON_KEYFRAMES = [{\n offset: 0,\n opacity: 0,\n transform: 'scale(0.6)'\n }, {\n offset: 0.6,\n opacity: 0,\n transform: 'scale(0.6)'\n }, {\n offset: 1,\n opacity: 1,\n transform: 'scale(1)'\n }];\n const BACKWARD_ICON_KEYFRAMES = [{\n offset: 0,\n opacity: 1,\n transform: 'scale(1)'\n }, {\n offset: 0.2,\n opacity: 0,\n transform: 'scale(0.6)'\n }, {\n offset: 1,\n opacity: 0,\n transform: 'scale(0.6)'\n }];\n const ICON_KEYFRAMES = backDirection ? BACKWARD_ICON_KEYFRAMES : FORWARD_ICON_KEYFRAMES;\n const enteringBackButtonTextAnimation = createAnimation();\n const enteringBackButtonIconAnimation = createAnimation();\n const enteringBackButtonAnimation = createAnimation();\n const clonedBackButtonEl = getClonedElement('ion-back-button');\n const clonedBackButtonTextEl = shadow(clonedBackButtonEl).querySelector('.button-text');\n const clonedBackButtonIconEl = shadow(clonedBackButtonEl).querySelector('ion-icon');\n clonedBackButtonEl.text = backButtonEl.text;\n clonedBackButtonEl.mode = backButtonEl.mode;\n clonedBackButtonEl.icon = backButtonEl.icon;\n clonedBackButtonEl.color = backButtonEl.color;\n clonedBackButtonEl.disabled = backButtonEl.disabled;\n clonedBackButtonEl.style.setProperty('display', 'block');\n clonedBackButtonEl.style.setProperty('position', 'fixed');\n enteringBackButtonIconAnimation.addElement(clonedBackButtonIconEl);\n enteringBackButtonTextAnimation.addElement(clonedBackButtonTextEl);\n enteringBackButtonAnimation.addElement(clonedBackButtonEl);\n enteringBackButtonAnimation.beforeStyles({\n position: 'absolute',\n top: '0px',\n [CONTAINER_ORIGIN_X]: '0px'\n })\n /**\n * The write hooks must be set on this animation as it is guaranteed to run. Other\n * animations such as the back button text animation will not run if the back button\n * has no visible text.\n */.beforeAddWrite(() => {\n backButtonEl.style.setProperty('display', 'none');\n clonedBackButtonEl.style.setProperty(TEXT_ORIGIN_X, BACK_BUTTON_START_OFFSET);\n }).afterAddWrite(() => {\n backButtonEl.style.setProperty('display', '');\n clonedBackButtonEl.style.setProperty('display', 'none');\n clonedBackButtonEl.style.removeProperty(TEXT_ORIGIN_X);\n }).keyframes(CONTAINER_KEYFRAMES);\n enteringBackButtonTextAnimation.beforeStyles({\n 'transform-origin': `${TEXT_ORIGIN_X} top`\n }).keyframes(TEXT_KEYFRAMES);\n enteringBackButtonIconAnimation.beforeStyles({\n 'transform-origin': `${ICON_ORIGIN_X} center`\n }).keyframes(ICON_KEYFRAMES);\n rootAnimation.addAnimation([enteringBackButtonTextAnimation, enteringBackButtonIconAnimation, enteringBackButtonAnimation]);\n};\nconst animateLargeTitle = (rootAnimation, rtl, backDirection, largeTitleEl, largeTitleBox, largeTitleTextBox, backButtonBox, backButtonTextEl, backButtonTextBox) => {\n var _a, _b;\n /**\n * The horizontal transform origin for the large title\n */\n const ORIGIN_X = rtl ? 'right' : 'left';\n const TITLE_START_OFFSET = rtl ? `calc(100% - ${largeTitleBox.right}px)` : `${largeTitleBox.left}px`;\n /**\n * The cloned large should align exactly with the\n * real large title on the leaving page otherwise there will\n * be a layout shift.\n */\n const START_TRANSLATE_X = '0px';\n const START_TRANSLATE_Y = `${largeTitleBox.top}px`;\n /**\n * How much to offset the large title translation by.\n * This accounts for differences in sizing between the large\n * title and the back button due to padding and font weight.\n */\n const LARGE_TITLE_TRANSLATION_OFFSET = 8;\n let END_TRANSLATE_X = rtl ? `-${window.innerWidth - backButtonBox.right - LARGE_TITLE_TRANSLATION_OFFSET}px` : `${backButtonBox.x + LARGE_TITLE_TRANSLATION_OFFSET}px`;\n /**\n * How much to scale the large title up/down by.\n */\n let HEIGHT_SCALE = 0.5;\n /**\n * The large title always starts full size.\n */\n const START_SCALE = 'scale(1)';\n /**\n * By default, we don't worry about having the large title scaled to perfectly\n * match the back button because we don't know if the back button's text matches\n * the large title's text.\n */\n let END_SCALE = `scale(${HEIGHT_SCALE})`;\n // Text element not rendered if developers pass text=\"\" to the back button\n if (backButtonTextEl && backButtonTextBox) {\n /**\n * The scaled title should (roughly) overlap the back button. This ensures that\n * the back button and title overlap during the animation. Note that since both\n * elements either fade in or fade out over the course of the animation, neither\n * element will be fully visible on top of the other. As a result, the overlap\n * does not need to be perfect, so approximate values are acceptable here.\n */\n END_TRANSLATE_X = rtl ? `-${window.innerWidth - backButtonTextBox.right - LARGE_TITLE_TRANSLATION_OFFSET}px` : `${backButtonTextBox.x - LARGE_TITLE_TRANSLATION_OFFSET}px`;\n /**\n * In the forward direction, the large title should start at its normal size and\n * then scale down to be (roughly) the size of the back button on the other view.\n * In the backward direction, the large title should start at (roughly) the size\n * of the back button and then scale up to its original size.\n * Note that since both elements either fade in or fade out over the course of the\n * animation, neither element will be fully visible on top of the other. As a result,\n * the overlap does not need to be perfect, so approximate values are acceptable here.\n */\n /**\n * When the title and back button texts match then they should overlap during the\n * page transition. If the texts do not match up then the large title text scale\n * adjusts to not perfectly match the back button text otherwise the proportions\n * will be incorrect. When the texts match we scale both the width and height to\n * account for font weight differences between the title and back button.\n */\n const doTitleAndButtonTextsMatch = ((_a = backButtonTextEl.textContent) === null || _a === void 0 ? void 0 : _a.trim()) === ((_b = largeTitleEl.textContent) === null || _b === void 0 ? void 0 : _b.trim());\n const WIDTH_SCALE = backButtonTextBox.width / largeTitleTextBox.width;\n HEIGHT_SCALE = backButtonTextBox.height / (largeTitleTextBox.height - LARGE_TITLE_SIZE_OFFSET);\n /**\n * Even though we set TEXT_START_SCALE to HEIGHT_SCALE above, we potentially need\n * to re-compute this here since the HEIGHT_SCALE may have changed.\n */\n END_SCALE = doTitleAndButtonTextsMatch ? `scale(${WIDTH_SCALE}, ${HEIGHT_SCALE})` : `scale(${HEIGHT_SCALE})`;\n }\n /**\n * The midpoints of the back button and the title should align such that the back\n * button and title appear to be centered with each other.\n */\n const backButtonMidPoint = backButtonBox.top + backButtonBox.height / 2;\n const titleMidPoint = largeTitleBox.height * HEIGHT_SCALE / 2;\n const END_TRANSLATE_Y = `${backButtonMidPoint - titleMidPoint}px`;\n const BACKWARDS_KEYFRAMES = [{\n offset: 0,\n opacity: 0,\n transform: `translate3d(${END_TRANSLATE_X}, ${END_TRANSLATE_Y}, 0) ${END_SCALE}`\n }, {\n offset: 0.1,\n opacity: 0\n }, {\n offset: 1,\n opacity: 1,\n transform: `translate3d(${START_TRANSLATE_X}, ${START_TRANSLATE_Y}, 0) ${START_SCALE}`\n }];\n const FORWARDS_KEYFRAMES = [{\n offset: 0,\n opacity: 0.99,\n transform: `translate3d(${START_TRANSLATE_X}, ${START_TRANSLATE_Y}, 0) ${START_SCALE}`\n }, {\n offset: 0.6,\n opacity: 0\n }, {\n offset: 1,\n opacity: 0,\n transform: `translate3d(${END_TRANSLATE_X}, ${END_TRANSLATE_Y}, 0) ${END_SCALE}`\n }];\n const KEYFRAMES = backDirection ? BACKWARDS_KEYFRAMES : FORWARDS_KEYFRAMES;\n const clonedTitleEl = getClonedElement('ion-title');\n const clonedLargeTitleAnimation = createAnimation();\n clonedTitleEl.innerText = largeTitleEl.innerText;\n clonedTitleEl.size = largeTitleEl.size;\n clonedTitleEl.color = largeTitleEl.color;\n clonedLargeTitleAnimation.addElement(clonedTitleEl);\n clonedLargeTitleAnimation.beforeStyles({\n 'transform-origin': `${ORIGIN_X} top`,\n /**\n * Since font size changes will cause\n * the dimension of the large title to change\n * we need to set the cloned title height\n * equal to that of the original large title height.\n */\n height: `${largeTitleBox.height}px`,\n display: '',\n position: 'relative',\n [ORIGIN_X]: TITLE_START_OFFSET\n }).beforeAddWrite(() => {\n largeTitleEl.style.setProperty('opacity', '0');\n }).afterAddWrite(() => {\n largeTitleEl.style.setProperty('opacity', '');\n clonedTitleEl.style.setProperty('display', 'none');\n }).keyframes(KEYFRAMES);\n rootAnimation.addAnimation(clonedLargeTitleAnimation);\n};\nconst iosTransitionAnimation = (navEl, opts) => {\n var _a;\n try {\n const EASING = 'cubic-bezier(0.32,0.72,0,1)';\n const OPACITY = 'opacity';\n const TRANSFORM = 'transform';\n const CENTER = '0%';\n const OFF_OPACITY = 0.8;\n const isRTL = navEl.ownerDocument.dir === 'rtl';\n const OFF_RIGHT = isRTL ? '-99.5%' : '99.5%';\n const OFF_LEFT = isRTL ? '33%' : '-33%';\n const enteringEl = opts.enteringEl;\n const leavingEl = opts.leavingEl;\n const backDirection = opts.direction === 'back';\n const contentEl = enteringEl.querySelector(':scope > ion-content');\n const headerEls = enteringEl.querySelectorAll(':scope > ion-header > *:not(ion-toolbar), :scope > ion-footer > *');\n const enteringToolBarEls = enteringEl.querySelectorAll(':scope > ion-header > ion-toolbar');\n const rootAnimation = createAnimation();\n const enteringContentAnimation = createAnimation();\n rootAnimation.addElement(enteringEl).duration(((_a = opts.duration) !== null && _a !== void 0 ? _a : 0) || DURATION).easing(opts.easing || EASING).fill('both').beforeRemoveClass('ion-page-invisible');\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n if (leavingEl && navEl !== null && navEl !== undefined) {\n const navDecorAnimation = createAnimation();\n navDecorAnimation.addElement(navEl);\n rootAnimation.addAnimation(navDecorAnimation);\n }\n if (!contentEl && enteringToolBarEls.length === 0 && headerEls.length === 0) {\n enteringContentAnimation.addElement(enteringEl.querySelector(':scope > .ion-page, :scope > ion-nav, :scope > ion-tabs')); // REVIEW\n } else {\n enteringContentAnimation.addElement(contentEl); // REVIEW\n enteringContentAnimation.addElement(headerEls);\n }\n rootAnimation.addAnimation(enteringContentAnimation);\n if (backDirection) {\n enteringContentAnimation.beforeClearStyles([OPACITY]).fromTo('transform', `translateX(${OFF_LEFT})`, `translateX(${CENTER})`).fromTo(OPACITY, OFF_OPACITY, 1);\n } else {\n // entering content, forward direction\n enteringContentAnimation.beforeClearStyles([OPACITY]).fromTo('transform', `translateX(${OFF_RIGHT})`, `translateX(${CENTER})`);\n }\n if (contentEl) {\n const enteringTransitionEffectEl = shadow(contentEl).querySelector('.transition-effect');\n if (enteringTransitionEffectEl) {\n const enteringTransitionCoverEl = enteringTransitionEffectEl.querySelector('.transition-cover');\n const enteringTransitionShadowEl = enteringTransitionEffectEl.querySelector('.transition-shadow');\n const enteringTransitionEffect = createAnimation();\n const enteringTransitionCover = createAnimation();\n const enteringTransitionShadow = createAnimation();\n enteringTransitionEffect.addElement(enteringTransitionEffectEl).beforeStyles({\n opacity: '1',\n display: 'block'\n }).afterStyles({\n opacity: '',\n display: ''\n });\n enteringTransitionCover.addElement(enteringTransitionCoverEl) // REVIEW\n .beforeClearStyles([OPACITY]).fromTo(OPACITY, 0, 0.1);\n enteringTransitionShadow.addElement(enteringTransitionShadowEl) // REVIEW\n .beforeClearStyles([OPACITY]).fromTo(OPACITY, 0.03, 0.7);\n enteringTransitionEffect.addAnimation([enteringTransitionCover, enteringTransitionShadow]);\n enteringContentAnimation.addAnimation([enteringTransitionEffect]);\n }\n }\n const enteringContentHasLargeTitle = enteringEl.querySelector('ion-header.header-collapse-condense');\n const {\n forward,\n backward\n } = createLargeTitleTransition(rootAnimation, isRTL, backDirection, enteringEl, leavingEl);\n enteringToolBarEls.forEach(enteringToolBarEl => {\n const enteringToolBar = createAnimation();\n enteringToolBar.addElement(enteringToolBarEl);\n rootAnimation.addAnimation(enteringToolBar);\n const enteringTitle = createAnimation();\n enteringTitle.addElement(enteringToolBarEl.querySelector('ion-title')); // REVIEW\n const enteringToolBarButtons = createAnimation();\n const buttons = Array.from(enteringToolBarEl.querySelectorAll('ion-buttons,[menuToggle]'));\n const parentHeader = enteringToolBarEl.closest('ion-header');\n const inactiveHeader = parentHeader === null || parentHeader === void 0 ? void 0 : parentHeader.classList.contains('header-collapse-condense-inactive');\n let buttonsToAnimate;\n if (backDirection) {\n buttonsToAnimate = buttons.filter(button => {\n const isCollapseButton = button.classList.contains('buttons-collapse');\n return isCollapseButton && !inactiveHeader || !isCollapseButton;\n });\n } else {\n buttonsToAnimate = buttons.filter(button => !button.classList.contains('buttons-collapse'));\n }\n enteringToolBarButtons.addElement(buttonsToAnimate);\n const enteringToolBarItems = createAnimation();\n enteringToolBarItems.addElement(enteringToolBarEl.querySelectorAll(':scope > *:not(ion-title):not(ion-buttons):not([menuToggle])'));\n const enteringToolBarBg = createAnimation();\n enteringToolBarBg.addElement(shadow(enteringToolBarEl).querySelector('.toolbar-background')); // REVIEW\n const enteringBackButton = createAnimation();\n const backButtonEl = enteringToolBarEl.querySelector('ion-back-button');\n if (backButtonEl) {\n enteringBackButton.addElement(backButtonEl);\n }\n enteringToolBar.addAnimation([enteringTitle, enteringToolBarButtons, enteringToolBarItems, enteringToolBarBg, enteringBackButton]);\n enteringToolBarButtons.fromTo(OPACITY, 0.01, 1);\n enteringToolBarItems.fromTo(OPACITY, 0.01, 1);\n if (backDirection) {\n if (!inactiveHeader) {\n enteringTitle.fromTo('transform', `translateX(${OFF_LEFT})`, `translateX(${CENTER})`).fromTo(OPACITY, 0.01, 1);\n }\n enteringToolBarItems.fromTo('transform', `translateX(${OFF_LEFT})`, `translateX(${CENTER})`);\n // back direction, entering page has a back button\n enteringBackButton.fromTo(OPACITY, 0.01, 1);\n } else {\n // entering toolbar, forward direction\n if (!enteringContentHasLargeTitle) {\n enteringTitle.fromTo('transform', `translateX(${OFF_RIGHT})`, `translateX(${CENTER})`).fromTo(OPACITY, 0.01, 1);\n }\n enteringToolBarItems.fromTo('transform', `translateX(${OFF_RIGHT})`, `translateX(${CENTER})`);\n enteringToolBarBg.beforeClearStyles([OPACITY, 'transform']);\n const translucentHeader = parentHeader === null || parentHeader === void 0 ? void 0 : parentHeader.translucent;\n if (!translucentHeader) {\n enteringToolBarBg.fromTo(OPACITY, 0.01, 'var(--opacity)');\n } else {\n enteringToolBarBg.fromTo('transform', isRTL ? 'translateX(-100%)' : 'translateX(100%)', 'translateX(0px)');\n }\n // forward direction, entering page has a back button\n if (!forward) {\n enteringBackButton.fromTo(OPACITY, 0.01, 1);\n }\n if (backButtonEl && !forward) {\n const enteringBackBtnText = createAnimation();\n enteringBackBtnText.addElement(shadow(backButtonEl).querySelector('.button-text')) // REVIEW\n .fromTo(`transform`, isRTL ? 'translateX(-100px)' : 'translateX(100px)', 'translateX(0px)');\n enteringToolBar.addAnimation(enteringBackBtnText);\n }\n }\n });\n // setup leaving view\n if (leavingEl) {\n const leavingContent = createAnimation();\n const leavingContentEl = leavingEl.querySelector(':scope > ion-content');\n const leavingToolBarEls = leavingEl.querySelectorAll(':scope > ion-header > ion-toolbar');\n const leavingHeaderEls = leavingEl.querySelectorAll(':scope > ion-header > *:not(ion-toolbar), :scope > ion-footer > *');\n if (!leavingContentEl && leavingToolBarEls.length === 0 && leavingHeaderEls.length === 0) {\n leavingContent.addElement(leavingEl.querySelector(':scope > .ion-page, :scope > ion-nav, :scope > ion-tabs')); // REVIEW\n } else {\n leavingContent.addElement(leavingContentEl); // REVIEW\n leavingContent.addElement(leavingHeaderEls);\n }\n rootAnimation.addAnimation(leavingContent);\n if (backDirection) {\n // leaving content, back direction\n leavingContent.beforeClearStyles([OPACITY]).fromTo('transform', `translateX(${CENTER})`, isRTL ? 'translateX(-100%)' : 'translateX(100%)');\n const leavingPage = getIonPageElement(leavingEl);\n rootAnimation.afterAddWrite(() => {\n if (rootAnimation.getDirection() === 'normal') {\n leavingPage.style.setProperty('display', 'none');\n }\n });\n } else {\n // leaving content, forward direction\n leavingContent.fromTo('transform', `translateX(${CENTER})`, `translateX(${OFF_LEFT})`).fromTo(OPACITY, 1, OFF_OPACITY);\n }\n if (leavingContentEl) {\n const leavingTransitionEffectEl = shadow(leavingContentEl).querySelector('.transition-effect');\n if (leavingTransitionEffectEl) {\n const leavingTransitionCoverEl = leavingTransitionEffectEl.querySelector('.transition-cover');\n const leavingTransitionShadowEl = leavingTransitionEffectEl.querySelector('.transition-shadow');\n const leavingTransitionEffect = createAnimation();\n const leavingTransitionCover = createAnimation();\n const leavingTransitionShadow = createAnimation();\n leavingTransitionEffect.addElement(leavingTransitionEffectEl).beforeStyles({\n opacity: '1',\n display: 'block'\n }).afterStyles({\n opacity: '',\n display: ''\n });\n leavingTransitionCover.addElement(leavingTransitionCoverEl) // REVIEW\n .beforeClearStyles([OPACITY]).fromTo(OPACITY, 0.1, 0);\n leavingTransitionShadow.addElement(leavingTransitionShadowEl) // REVIEW\n .beforeClearStyles([OPACITY]).fromTo(OPACITY, 0.7, 0.03);\n leavingTransitionEffect.addAnimation([leavingTransitionCover, leavingTransitionShadow]);\n leavingContent.addAnimation([leavingTransitionEffect]);\n }\n }\n leavingToolBarEls.forEach(leavingToolBarEl => {\n const leavingToolBar = createAnimation();\n leavingToolBar.addElement(leavingToolBarEl);\n const leavingTitle = createAnimation();\n leavingTitle.addElement(leavingToolBarEl.querySelector('ion-title')); // REVIEW\n const leavingToolBarButtons = createAnimation();\n const buttons = leavingToolBarEl.querySelectorAll('ion-buttons,[menuToggle]');\n const parentHeader = leavingToolBarEl.closest('ion-header');\n const inactiveHeader = parentHeader === null || parentHeader === void 0 ? void 0 : parentHeader.classList.contains('header-collapse-condense-inactive');\n const buttonsToAnimate = Array.from(buttons).filter(button => {\n const isCollapseButton = button.classList.contains('buttons-collapse');\n return isCollapseButton && !inactiveHeader || !isCollapseButton;\n });\n leavingToolBarButtons.addElement(buttonsToAnimate);\n const leavingToolBarItems = createAnimation();\n const leavingToolBarItemEls = leavingToolBarEl.querySelectorAll(':scope > *:not(ion-title):not(ion-buttons):not([menuToggle])');\n if (leavingToolBarItemEls.length > 0) {\n leavingToolBarItems.addElement(leavingToolBarItemEls);\n }\n const leavingToolBarBg = createAnimation();\n leavingToolBarBg.addElement(shadow(leavingToolBarEl).querySelector('.toolbar-background')); // REVIEW\n const leavingBackButton = createAnimation();\n const backButtonEl = leavingToolBarEl.querySelector('ion-back-button');\n if (backButtonEl) {\n leavingBackButton.addElement(backButtonEl);\n }\n leavingToolBar.addAnimation([leavingTitle, leavingToolBarButtons, leavingToolBarItems, leavingBackButton, leavingToolBarBg]);\n rootAnimation.addAnimation(leavingToolBar);\n // fade out leaving toolbar items\n leavingBackButton.fromTo(OPACITY, 0.99, 0);\n leavingToolBarButtons.fromTo(OPACITY, 0.99, 0);\n leavingToolBarItems.fromTo(OPACITY, 0.99, 0);\n if (backDirection) {\n if (!inactiveHeader) {\n // leaving toolbar, back direction\n leavingTitle.fromTo('transform', `translateX(${CENTER})`, isRTL ? 'translateX(-100%)' : 'translateX(100%)').fromTo(OPACITY, 0.99, 0);\n }\n leavingToolBarItems.fromTo('transform', `translateX(${CENTER})`, isRTL ? 'translateX(-100%)' : 'translateX(100%)');\n leavingToolBarBg.beforeClearStyles([OPACITY, 'transform']);\n // leaving toolbar, back direction, and there's no entering toolbar\n // should just slide out, no fading out\n const translucentHeader = parentHeader === null || parentHeader === void 0 ? void 0 : parentHeader.translucent;\n if (!translucentHeader) {\n leavingToolBarBg.fromTo(OPACITY, 'var(--opacity)', 0);\n } else {\n leavingToolBarBg.fromTo('transform', 'translateX(0px)', isRTL ? 'translateX(-100%)' : 'translateX(100%)');\n }\n if (backButtonEl && !backward) {\n const leavingBackBtnText = createAnimation();\n leavingBackBtnText.addElement(shadow(backButtonEl).querySelector('.button-text')) // REVIEW\n .fromTo('transform', `translateX(${CENTER})`, `translateX(${(isRTL ? -124 : 124) + 'px'})`);\n leavingToolBar.addAnimation(leavingBackBtnText);\n }\n } else {\n // leaving toolbar, forward direction\n if (!inactiveHeader) {\n leavingTitle.fromTo('transform', `translateX(${CENTER})`, `translateX(${OFF_LEFT})`).fromTo(OPACITY, 0.99, 0).afterClearStyles([TRANSFORM, OPACITY]);\n }\n leavingToolBarItems.fromTo('transform', `translateX(${CENTER})`, `translateX(${OFF_LEFT})`).afterClearStyles([TRANSFORM, OPACITY]);\n leavingBackButton.afterClearStyles([OPACITY]);\n leavingTitle.afterClearStyles([OPACITY]);\n leavingToolBarButtons.afterClearStyles([OPACITY]);\n }\n });\n }\n return rootAnimation;\n } catch (err) {\n throw err;\n }\n};\n/**\n * The scale of the back button during the animation\n * is computed based on the scale of the large title\n * and vice versa. However, we need to account for slight\n * variations in the size of the large title due to\n * padding and font weight. This value should be used to subtract\n * a small amount from the large title height when computing scales\n * to get more accurate scale results.\n */\nconst LARGE_TITLE_SIZE_OFFSET = 10;\nexport { iosTransitionAnimation, shadow };"],"mappings":"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","names":["DURATION","getClonedElement","tagName","shadow","el","getLargeTitle","refEl","tabs","query","activeTab","getBackButton","backDirection","buttonsList","buttons","parentHeader","activeHeader","backButton","buttonsCollapse","startSlot","createLargeTitleTransition","rootAnimation","rtl","enteringEl","leavingEl","enteringBackButton","leavingLargeTitle","enteringLargeTitle","leavingBackButton","shouldAnimationForward","shouldAnimationBackward","leavingLargeTitleBox","enteringBackButtonBox","enteringBackButtonTextEl","enteringBackButtonTextBox","leavingLargeTitleTextBox","animateLargeTitle","animateBackButton","enteringLargeTitleBox","leavingBackButtonBox","leavingBackButtonTextEl","leavingBackButtonTextBox","enteringLargeTitleTextBox","backButtonEl","backButtonBox","backButtonTextEl","backButtonTextBox","largeTitleEl","largeTitleTextBox","_a","_b","BACK_BUTTON_START_OFFSET","TEXT_ORIGIN_X","ICON_ORIGIN_X","CONTAINER_ORIGIN_X","WIDTH_SCALE","HEIGHT_SCALE","TEXT_START_SCALE","TEXT_END_SCALE","doTitleAndButtonTextsMatch","LARGE_TITLE_SIZE_OFFSET","backButtonIconBox","CONTAINER_START_TRANSLATE_X","CONTAINER_END_TRANSLATE_X","CONTAINER_START_TRANSLATE_Y","CONTAINER_END_TRANSLATE_Y","FORWARD_CONTAINER_KEYFRAMES","BACKWARD_CONTAINER_KEYFRAMES","CONTAINER_KEYFRAMES","TEXT_KEYFRAMES","ICON_KEYFRAMES","enteringBackButtonTextAnimation","createAnimation","enteringBackButtonIconAnimation","enteringBackButtonAnimation","clonedBackButtonEl","clonedBackButtonTextEl","clonedBackButtonIconEl","largeTitleBox","ORIGIN_X","TITLE_START_OFFSET","START_TRANSLATE_X","START_TRANSLATE_Y","LARGE_TITLE_TRANSLATION_OFFSET","END_TRANSLATE_X","START_SCALE","END_SCALE","backButtonMidPoint","titleMidPoint","END_TRANSLATE_Y","BACKWARDS_KEYFRAMES","FORWARDS_KEYFRAMES","KEYFRAMES","clonedTitleEl","clonedLargeTitleAnimation","iosTransitionAnimation","navEl","opts","EASING","OPACITY","TRANSFORM","CENTER","isRTL","OFF_RIGHT","OFF_LEFT","contentEl","headerEls","enteringToolBarEls","enteringContentAnimation","navDecorAnimation","enteringTransitionEffectEl","enteringTransitionCoverEl","enteringTransitionShadowEl","enteringTransitionEffect","enteringTransitionCover","enteringTransitionShadow","enteringContentHasLargeTitle","forward","backward","enteringToolBarEl","enteringToolBar","enteringTitle","enteringToolBarButtons","inactiveHeader","buttonsToAnimate","button","isCollapseButton","enteringToolBarItems","enteringToolBarBg","enteringBackBtnText","leavingContent","leavingContentEl","leavingToolBarEls","leavingHeaderEls","leavingPage","getIonPageElement","leavingTransitionEffectEl","leavingTransitionCoverEl","leavingTransitionShadowEl","leavingTransitionEffect","leavingTransitionCover","leavingTransitionShadow","leavingToolBarEl","leavingToolBar","leavingTitle","leavingToolBarButtons","leavingToolBarItems","leavingToolBarItemEls","leavingToolBarBg","leavingBackBtnText","err"],"x_google_ignoreList":[0]}