@ionic/core
Version:
Base components for Ionic
62 lines (58 loc) • 2.51 kB
JavaScript
/*!
* (C) Ionic http://ionicframework.com - MIT License
*/
;
const animation = require('./animation-b4fdf128.js');
const index = require('./index-e630fd95.js');
require('./index-c8d52405.js');
require('./ionic-global-acb665ad.js');
require('./index-2e236a04.js');
require('./index-48b2a28e.js');
require('./helpers-3a248559.js');
const mdTransitionAnimation = (_, opts) => {
var _a, _b, _c;
const OFF_BOTTOM = '40px';
const CENTER = '0px';
const backDirection = opts.direction === 'back';
const enteringEl = opts.enteringEl;
const leavingEl = opts.leavingEl;
const ionPageElement = index.getIonPageElement(enteringEl);
const enteringToolbarEle = ionPageElement.querySelector('ion-toolbar');
const rootTransition = animation.createAnimation();
rootTransition.addElement(ionPageElement).fill('both').beforeRemoveClass('ion-page-invisible');
// animate the component itself
if (backDirection) {
rootTransition.duration(((_a = opts.duration) !== null && _a !== void 0 ? _a : 0) || 200).easing('cubic-bezier(0.47,0,0.745,0.715)');
}
else {
rootTransition
.duration(((_b = opts.duration) !== null && _b !== void 0 ? _b : 0) || 280)
.easing('cubic-bezier(0.36,0.66,0.04,1)')
.fromTo('transform', `translateY(${OFF_BOTTOM})`, `translateY(${CENTER})`)
.fromTo('opacity', 0.01, 1);
}
// Animate toolbar if it's there
if (enteringToolbarEle) {
const enteringToolBar = animation.createAnimation();
enteringToolBar.addElement(enteringToolbarEle);
rootTransition.addAnimation(enteringToolBar);
}
// setup leaving view
if (leavingEl && backDirection) {
// leaving content
rootTransition.duration(((_c = opts.duration) !== null && _c !== void 0 ? _c : 0) || 200).easing('cubic-bezier(0.47,0,0.745,0.715)');
const leavingPage = animation.createAnimation();
leavingPage
.addElement(index.getIonPageElement(leavingEl))
.onFinish((currentStep) => {
if (currentStep === 1 && leavingPage.elements.length > 0) {
leavingPage.elements[0].style.setProperty('display', 'none');
}
})
.fromTo('transform', `translateY(${CENTER})`, `translateY(${OFF_BOTTOM})`)
.fromTo('opacity', 1, 0);
rootTransition.addAnimation(leavingPage);
}
return rootTransition;
};
exports.mdTransitionAnimation = mdTransitionAnimation;