UNPKG

@ssgoi/core

Version:

Core animation engine for SSGOI - Native app-like page transitions with spring physics

2 lines (1 loc) 1.18 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function m(t){return("tick"in t||"css"in t)&&!("items"in t)}function a(t){return"items"in t}function d(t){return"css"in t&&typeof t.css=="function"}function p(t){return"tick"in t&&typeof t.tick=="function"}async function f(t){const e=await t;return a(e)?{prepare:e.prepare,wait:e.wait,onReady:e.onReady,onStart:e.onStart,onEnd:e.onEnd,items:e.items,schedule:e.schedule}:{prepare:e.prepare,wait:e.wait,onReady:e.onReady,onStart:e.onStart,onEnd:e.onEnd,items:[{physics:e.physics,tick:e.tick,css:e.css}],schedule:"parallel"}}function y(t,e){const o=t.schedule??"parallel",r=t.items.map(s=>{let n;switch(o){case"parallel":n=0;break;case"sequential":n=1;break;case"stagger":n=Math.max(0,Math.min(1,s.offset??0));break;default:n=0}const{css:i,offset:k,...c}=s,u=i?typeof i=="function"?e?{element:e,style:i}:void 0:{element:i.element,style:i.style}:void 0;return{...c,css:u,normalizedOffset:n}}),{schedule:h,...l}=t;return{...l,items:r}}exports.isCssAnimation=d;exports.isMultiAnimation=a;exports.isSingleAnimation=m;exports.isTickAnimation=p;exports.normalizeSchedule=y;exports.normalizeToMultiAnimation=f;