{"version":3,"file":"visual-element-variant.mjs","sources":["../../../../src/animation/interfaces/visual-element-variant.ts"],"sourcesContent":["import {\n getTypeCustom,\n resolveVariant,\n} from \"../../render/utils/resolve-dynamic-variants\"\nimport { calcChildStagger } from \"../utils/calc-child-stagger\"\nimport type { VisualElementAnimationOptions } from \"./types\"\nimport { animateTarget } from \"./visual-element-target\"\nimport type { VisualElement } from \"../../render/VisualElement\"\n\nexport function animateVariant(\n visualElement: VisualElement,\n variant: string,\n options: VisualElementAnimationOptions = {}\n): Promise {\n const resolved = resolveVariant(\n visualElement,\n variant,\n getTypeCustom(visualElement, options.type)\n )\n\n const transition =\n options.transitionOverride ||\n (resolved?.transition ?? (visualElement.getDefaultTransition() || {}))\n\n const getAnimation = () =>\n Promise.all(\n resolved ? animateTarget(visualElement, resolved, options) : []\n )\n\n const getChildAnimations = (delay = 0) => {\n const { variantChildren } = visualElement\n const {\n delayChildren = 0,\n staggerChildren,\n staggerDirection,\n } = transition\n const animations: Promise[] = []\n\n variantChildren?.forEach((child) => {\n child.notify(\"AnimationStart\", variant)\n animations.push(\n animateVariant(child, variant, {\n ...options,\n delay:\n delay +\n (typeof delayChildren === \"function\"\n ? 0\n : delayChildren) +\n calcChildStagger(\n variantChildren,\n child,\n delayChildren,\n staggerChildren,\n staggerDirection\n ),\n }).then(() => child.notify(\"AnimationComplete\", variant))\n )\n })\n\n return Promise.all(animations)\n }\n\n /**\n * when: \"beforeChildren\" | \"afterChildren\" runs this element's animation\n * and its children's in sequence.\n */\n const { when } = transition\n\n return when\n ? when === \"beforeChildren\"\n ? getAnimation().then(() => getChildAnimations())\n : getChildAnimations().then(getAnimation)\n : Promise.all([getAnimation(), getChildAnimations(options.delay)])\n}\n"],"names":[],"mappings":";;;;AASM,SAAU,cAAc,CAC1B,aAA4B,EAC5B,OAAe,EACf,UAAyC,EAAE,EAAA;AAE3C,IAAA,MAAM,QAAQ,GAAG,cAAc,CAC3B,aAAa,EACb,OAAO,EACP,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,CAC7C;AAED,IAAA,MAAM,UAAU,GACZ,OAAO,CAAC,kBAAkB;AAC1B,SAAC,QAAQ,EAAE,UAAU,KAAK,aAAa,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1E,MAAM,YAAY,GAAG,MACjB,OAAO,CAAC,GAAG,CACP,QAAQ,GAAG,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,CAClE;AAEL,IAAA,MAAM,kBAAkB,GAAG,CAAC,KAAK,GAAG,CAAC,KAAI;AACrC,QAAA,MAAM,EAAE,eAAe,EAAE,GAAG,aAAa;QACzC,MAAM,EACF,aAAa,GAAG,CAAC,EACjB,eAAe,EACf,gBAAgB,GACnB,GAAG,UAAU;QACd,MAAM,UAAU,GAAmB,EAAE;AAErC,QAAA,eAAe,EAAE,OAAO,CAAC,CAAC,KAAK,KAAI;AAC/B,YAAA,KAAK,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC;YACvC,UAAU,CAAC,IAAI,CACX,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE;AAC3B,gBAAA,GAAG,OAAO;AACV,gBAAA,KAAK,EACD,KAAK;qBACJ,OAAO,aAAa,KAAK;AACtB,0BAAE;0BACA,aAAa,CAAC;oBACpB,gBAAgB,CACZ,eAAe,EACf,KAAK,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,CACnB;AACR,aAAA,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAC5D;AACL,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AAClC,IAAA,CAAC;AAED;;;AAGG;AACH,IAAA,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU;AAE3B,IAAA,OAAO;UACD,IAAI,KAAK;cACL,YAAY,EAAE,CAAC,IAAI,CAAC,MAAM,kBAAkB,EAAE;AAChD,cAAE,kBAAkB,EAAE,CAAC,IAAI,CAAC,YAAY;AAC5C,UAAE,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1E;;;;"}