1 line
21 KiB
JSON
1 line
21 KiB
JSON
|
|
{"ast":null,"code":"import _objectSpread from \"/Users/apple/Documents/cursor/Web\\u8BFE\\u4EF6/AI\\u8BFE/education_web_\\u591AAgent\\u534F\\u4F5C\\u7CFB\\u7EDF/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";\nimport { millisecondsToSeconds, secondsToMilliseconds, clamp } from 'motion-utils';\nimport { generateLinearEasing } from '../../waapi/utils/linear.mjs';\nimport { calcGeneratorDuration, maxGeneratorDuration } from '../utils/calc-duration.mjs';\nimport { createGeneratorEasing } from '../utils/create-generator-easing.mjs';\nimport { calcGeneratorVelocity } from '../utils/velocity.mjs';\nimport { springDefaults } from './defaults.mjs';\nimport { findSpring, calcAngularFreq } from './find.mjs';\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some(key => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = _objectSpread({\n velocity: springDefaults.velocity,\n stiffness: springDefaults.stiffness,\n damping: springDefaults.damping,\n mass: springDefaults.mass,\n isResolvedFromDuration: false\n }, options);\n // stiffness/damping/mass overrides duration/bounce\n if (!isSpringType(options, physicsKeys) && isSpringType(options, durationKeys)) {\n if (options.visualDuration) {\n const visualDuration = options.visualDuration;\n const root = 2 * Math.PI / (visualDuration * 1.2);\n const stiffness = root * root;\n const damping = 2 * clamp(0.05, 1, 1 - (options.bounce || 0)) * Math.sqrt(stiffness);\n springOptions = _objectSpread(_objectSpread({}, springOptions), {}, {\n mass: springDefaults.mass,\n stiffness,\n damping\n });\n } else {\n const derived = findSpring(options);\n springOptions = _objectSpread(_objectSpread(_objectSpread({}, springOptions), derived), {}, {\n mass: springDefaults.mass\n });\n springOptions.isResolvedFromDuration = true;\n }\n }\n return springOptions;\n}\nfunction spring() {\n let optionsOrVisualDuration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : springDefaults.visualDuration;\n let bounce = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : springDefaults.bounce;\n const options = typeof optionsOrVisualDuration !== \"object\" ? {\n visualDuration: optionsOrVisualDuration,\n keyframes: [0, 1],\n bounce\n } : optionsOrVisualDuration;\n let {\n restSpeed,\n restDelta\n } = options;\n const origin = options.keyframes[0];\n const target = options.keyframes[options.keyframes.length - 1];\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = {\n done: false,\n value: origin\n };\n const {\n stiffness,\n damping,\n mass,\n duration,\n velocity,\n isResolvedFromDuration\n } = getSpringOptions(_objectSpread(_objectSpread({}, options), {}, {\n velocity: -millisecondsToSeconds(options.velocity || 0)\n }));\n const initialVelocity = velocity || 0.0;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const initialDelta = target - origin;\n const undampedAngularFreq = millisecondsToSeconds(Math.sqrt(stiffness / mass));\n /**\n * If we're working on a granular scale, use smaller defaults for determining\n * when the spring is finished.\n *\n * These defaults have been selected emprically based on what strikes a good\n * ratio between feeling good and finishing as soon as changes are imperceptible.\n */\n const isGranularScale = Math.abs(initialDelta) < 5;\n restSpeed || (restSpeed = isGranularScale ? springDefaults.restSpeed.granular : springDefaults.restSpeed.default);\n restDelta || (restDelta = isGranularScale ? springDefaults.restDelta.granular : springDefaults.restDelta.default);\n let resolveSpring;\n if (dampingRatio < 1) {\n const angularFreq = calcAngularFreq(undampedAngularFreq, d
|