heartbeat-monitor/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs.map

1 line
7.6 KiB
Plaintext

{"version":3,"file":"visual-element-target.mjs","sources":["../../../../src/animation/interfaces/visual-element-target.ts"],"sourcesContent":["import { frame } from \"../../frameloop\"\nimport { getValueTransition } from \"../utils/get-value-transition\"\nimport { resolveTransition } from \"../utils/resolve-transition\"\nimport { positionalKeys } from \"../../render/utils/keys-position\"\nimport { setTarget } from \"../../render/utils/setters\"\nimport { addValueToWillChange } from \"../../value/will-change/add-will-change\"\nimport { getOptimisedAppearId } from \"../optimized-appear/get-appear-id\"\nimport { animateMotionValue } from \"./motion-value\"\nimport type { VisualElementAnimationOptions } from \"./types\"\nimport type { AnimationPlaybackControlsWithThen } from \"../types\"\nimport type { TargetAndTransition } from \"../../node/types\"\nimport type { AnimationTypeState } from \"../../render/utils/animation-state\"\nimport type { VisualElement } from \"../../render/VisualElement\"\n\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\nfunction shouldBlockAnimation(\n { protectedKeys, needsAnimating }: AnimationTypeState,\n key: string\n) {\n const shouldBlock =\n protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true\n\n needsAnimating[key] = false\n return shouldBlock\n}\n\nexport function animateTarget(\n visualElement: VisualElement,\n targetAndTransition: TargetAndTransition,\n { delay = 0, transitionOverride, type }: VisualElementAnimationOptions = {}\n): AnimationPlaybackControlsWithThen[] {\n let {\n transition,\n transitionEnd,\n ...target\n } = targetAndTransition\n\n const defaultTransition = visualElement.getDefaultTransition()\n transition = transition\n ? resolveTransition(transition, defaultTransition)\n : defaultTransition\n\n const reduceMotion = (transition as { reduceMotion?: boolean })?.reduceMotion\n\n if (transitionOverride) transition = transitionOverride\n\n const animations: AnimationPlaybackControlsWithThen[] = []\n\n const animationTypeState =\n type &&\n visualElement.animationState &&\n visualElement.animationState.getState()[type]\n\n for (const key in target) {\n const value = visualElement.getValue(\n key,\n visualElement.latestValues[key] ?? null\n )\n const valueTarget = target[key as keyof typeof target]\n\n if (\n valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))\n ) {\n continue\n }\n\n const valueTransition = {\n delay,\n ...getValueTransition(transition || {}, key),\n }\n\n /**\n * If the value is already at the defined target, skip the animation.\n */\n const currentValue = value.get()\n if (\n currentValue !== undefined &&\n !value.isAnimating &&\n !Array.isArray(valueTarget) &&\n valueTarget === currentValue &&\n !valueTransition.velocity\n ) {\n continue\n }\n\n /**\n * If this is the first time a value is being animated, check\n * to see if we're handling off from an existing animation.\n */\n let isHandoff = false\n if (window.MotionHandoffAnimation) {\n const appearId = getOptimisedAppearId(visualElement)\n\n if (appearId) {\n const startTime = window.MotionHandoffAnimation(\n appearId,\n key,\n frame\n )\n\n if (startTime !== null) {\n valueTransition.startTime = startTime\n isHandoff = true\n }\n }\n }\n\n addValueToWillChange(visualElement, key)\n\n const shouldReduceMotion =\n reduceMotion ?? visualElement.shouldReduceMotion\n\n value.start(\n animateMotionValue(\n key,\n value,\n valueTarget,\n shouldReduceMotion && positionalKeys.has(key)\n ? { type: false }\n : valueTransition,\n visualElement,\n isHandoff\n )\n )\n\n const animation = value.animation\n\n if (animation) {\n animations.push(animation)\n }\n }\n\n if (transitionEnd) {\n const applyTransitionEnd = () =>\n frame.update(() => {\n transitionEnd && setTarget(visualElement, transitionEnd)\n })\n\n if (animations.length) {\n Promise.all(animations).then(applyTransitionEnd)\n } else {\n applyTransitionEnd()\n }\n }\n\n return animations\n}\n"],"names":[],"mappings":"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"}