@ngverse/motion
Version:
<p align="center"> <img src="https://github.com/ngverse/motion/blob/main/apps/docs/public/logo.png?raw=true" alt="Logo" width="200px" /> </p> `@ngverse/motion` is an Angular animations library, see more info on [link](https://motion.ngverse.dev)
87 lines (83 loc) • 3.29 kB
JavaScript
import { query, animateChild, useAnimation, animation, animate, trigger, transition } from '@angular/animations';
/* eslint-disable @typescript-eslint/no-explicit-any */
function resolveChildren(animation, children) {
if (children === 'before') {
return [query('@*', animateChild(), { optional: true }), animation];
}
if (children === 'after') {
return [animation, query('@*', animateChild(), { optional: true })];
}
else {
return [animation];
}
}
function createDefaults(options) {
return {
...options,
};
}
function setDefaults(defaults) {
return (options) => Object.assign(defaults, options);
}
function mapToTime(duration, easing) {
return `${duration}ms ${easing}`;
}
function getOptions(options, defaults, globalDefaults) {
return {
...globalDefaults,
...defaults,
...options,
};
}
function createMotion(animation, defaults, globalDefaults) {
return (options) => {
const parsedOptions = getOptions(options, defaults, globalDefaults);
const _duration = parsedOptions.duration;
const _delay = parsedOptions.delay;
const _easing = parsedOptions.easing;
const animationOptions = {
delay: _delay,
params: {
time: mapToTime(_duration, _easing),
...parsedOptions,
},
};
return useAnimation(animation, animationOptions);
};
}
function buildMotion(before, after, defaults, globalDefaults) {
const _motion = animation([...before, animate('{{ time }}', after)]);
return createMotion(_motion, defaults, globalDefaults);
}
function createMotionFromAnimate(keyframes, defaults, globalDefaults) {
const _motion = animation([animate('{{ time }}', keyframes)]);
return createMotion(_motion, defaults, globalDefaults);
}
function createTrigger(motionFactory, triggerName, transitionName, defaults, globalDefaults) {
return (options) => {
const _triggerName = options?.triggerName ?? triggerName;
const parsedOptions = getOptions(options, defaults, globalDefaults);
const _transitionName = transitionName;
const children = parsedOptions.children;
return trigger(_triggerName, [
transition(_transitionName, resolveChildren(motionFactory(options), children)),
]);
};
}
function createOnEnter(rawFactory, name, defaults, globalDefaults) {
return createTrigger(rawFactory, `${name}OnEnter`, ':enter', defaults, globalDefaults);
}
function createOnLeave(rawFactory, name, defaults, globalDefaults) {
return createTrigger(rawFactory, `${name}OnLeave`, ':leave', defaults, globalDefaults);
}
function createOnIncr(rawFactory, name, defaults, globalDefaults) {
return createTrigger(rawFactory, `${name}OnIncr`, ':incr', defaults, globalDefaults);
}
function createOnDecr(rawFactory, name, defaults, globalDefaults) {
return createTrigger(rawFactory, `${name}OnDecr`, ':decr', defaults, globalDefaults);
}
/**
* Generated bundle index. Do not edit.
*/
export { buildMotion, createDefaults, createMotion, createMotionFromAnimate, createOnDecr, createOnEnter, createOnIncr, createOnLeave, createTrigger, setDefaults };
//# sourceMappingURL=ngverse-motion-core.mjs.map