UNPKG

@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
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