{"ast":null,"code":"import { __rest, __assign } from 'tslib';\nimport { findSpring, calcAngularFreq } from '../utils/find-spring.js';\nvar durationKeys = [\"duration\", \"bounce\"];\nvar physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n  return keys.some(function (key) {\n    return options[key] !== undefined;\n  });\n}\nfunction getSpringOptions(options) {\n  var springOptions = __assign({\n    velocity: 0.0,\n    stiffness: 100,\n    damping: 10,\n    mass: 1.0,\n    isResolvedFromDuration: false\n  }, options);\n  if (!isSpringType(options, physicsKeys) && isSpringType(options, durationKeys)) {\n    var derived = findSpring(options);\n    springOptions = __assign(__assign(__assign({}, springOptions), derived), {\n      velocity: 0.0,\n      mass: 1.0\n    });\n    springOptions.isResolvedFromDuration = true;\n  }\n  return springOptions;\n}\nfunction spring(_a) {\n  var _b = _a.from,\n    from = _b === void 0 ? 0.0 : _b,\n    _c = _a.to,\n    to = _c === void 0 ? 1.0 : _c,\n    _d = _a.restSpeed,\n    restSpeed = _d === void 0 ? 2 : _d,\n    restDelta = _a.restDelta,\n    options = __rest(_a, [\"from\", \"to\", \"restSpeed\", \"restDelta\"]);\n  var state = {\n    done: false,\n    value: from\n  };\n  var _e = getSpringOptions(options),\n    stiffness = _e.stiffness,\n    damping = _e.damping,\n    mass = _e.mass,\n    velocity = _e.velocity,\n    duration = _e.duration,\n    isResolvedFromDuration = _e.isResolvedFromDuration;\n  var resolveSpring = zero;\n  var resolveVelocity = zero;\n  function createSpring() {\n    var initialVelocity = velocity ? -(velocity / 1000) : 0.0;\n    var initialDelta = to - from;\n    var dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n    var undampedAngularFreq = Math.sqrt(stiffness / mass) / 1000;\n    restDelta !== null && restDelta !== void 0 ? restDelta : restDelta = Math.abs(to - from) <= 1 ? 0.01 : 0.4;\n    if (dampingRatio < 1) {\n      var angularFreq_1 = calcAngularFreq(undampedAngularFreq, dampingRatio);\n      resolveSpring = function resolveSpring(t) {\n        var envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n        return to - envelope * ((initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) / angularFreq_1 * Math.sin(angularFreq_1 * t) + initialDelta * Math.cos(angularFreq_1 * t));\n      };\n      resolveVelocity = function resolveVelocity(t) {\n        var envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n        return dampingRatio * undampedAngularFreq * envelope * (Math.sin(angularFreq_1 * t) * (initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) / angularFreq_1 + initialDelta * Math.cos(angularFreq_1 * t)) - envelope * (Math.cos(angularFreq_1 * t) * (initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) - angularFreq_1 * initialDelta * Math.sin(angularFreq_1 * t));\n      };\n    } else if (dampingRatio === 1) {\n      resolveSpring = function resolveSpring(t) {\n        return to - Math.exp(-undampedAngularFreq * t) * (initialDelta + (initialVelocity + undampedAngularFreq * initialDelta) * t);\n      };\n    } else {\n      var dampedAngularFreq_1 = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n      resolveSpring = function resolveSpring(t) {\n        var envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n        var freqForT = Math.min(dampedAngularFreq_1 * t, 300);\n        return to - envelope * ((initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) * Math.sinh(freqForT) + dampedAngularFreq_1 * initialDelta * Math.cosh(freqForT)) / dampedAngularFreq_1;\n      };\n    }\n  }\n  createSpring();\n  return {\n    next: function next(t) {\n      var current = resolveSpring(t);\n      if (!isResolvedFromDuration) {\n        var currentVelocity = resolveVelocity(t) * 1000;\n        var isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n        var isBelowDisplacementThreshold = Math.abs(to - current) <= restDelta;\n        state.done = isBelowVelocityThreshold && isBelowDisplacementThreshold;\n      } else {\n        state.done = t >= duration;\n      }\n      state.value = state.done ? to : current;\n      return state;\n    },\n    flipTarget: function flipTarget() {\n      var _a;\n      velocity = -velocity;\n      _a = [to, from], from = _a[0], to = _a[1];\n      createSpring();\n    }\n  };\n}\nspring.needsInterpolation = function (a, b) {\n  return typeof a === \"string\" || typeof b === \"string\";\n};\nvar zero = function zero(_t) {\n  return 0;\n};\nexport { spring };","map":{"version":3,"names":["__rest","__assign","findSpring","calcAngularFreq","durationKeys","physicsKeys","isSpringType","options","keys","some","key","undefined","getSpringOptions","springOptions","velocity","stiffness","damping","mass","isResolvedFromDuration","derived","spring","_a","_b","from","_c","to","_d","restSpeed","restDelta","state","done","value","_e","duration","resolveSpring","zero","resolveVelocity","createSpring","initialVelocity","initialDelta","dampingRatio","Math","sqrt","undampedAngularFreq","abs","angularFreq_1","t","envelope","exp","sin","cos","dampedAngularFreq_1","freqForT","min","sinh","cosh","next","current","currentVelocity","isBelowVelocityThreshold","isBelowDisplacementThreshold","flipTarget","needsInterpolation","a","b","_t"],"sources":["C:/LDT/DSP_Management/node_modules/popmotion/dist/es/animations/generators/spring.js"],"sourcesContent":["import { __rest, __assign } from 'tslib';\nimport { findSpring, calcAngularFreq } from '../utils/find-spring.js';\n\nvar durationKeys = [\"duration\", \"bounce\"];\nvar physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n    return keys.some(function (key) { return options[key] !== undefined; });\n}\nfunction getSpringOptions(options) {\n    var springOptions = __assign({ velocity: 0.0, stiffness: 100, damping: 10, mass: 1.0, isResolvedFromDuration: false }, options);\n    if (!isSpringType(options, physicsKeys) &&\n        isSpringType(options, durationKeys)) {\n        var derived = findSpring(options);\n        springOptions = __assign(__assign(__assign({}, springOptions), derived), { velocity: 0.0, mass: 1.0 });\n        springOptions.isResolvedFromDuration = true;\n    }\n    return springOptions;\n}\nfunction spring(_a) {\n    var _b = _a.from, from = _b === void 0 ? 0.0 : _b, _c = _a.to, to = _c === void 0 ? 1.0 : _c, _d = _a.restSpeed, restSpeed = _d === void 0 ? 2 : _d, restDelta = _a.restDelta, options = __rest(_a, [\"from\", \"to\", \"restSpeed\", \"restDelta\"]);\n    var state = { done: false, value: from };\n    var _e = getSpringOptions(options), stiffness = _e.stiffness, damping = _e.damping, mass = _e.mass, velocity = _e.velocity, duration = _e.duration, isResolvedFromDuration = _e.isResolvedFromDuration;\n    var resolveSpring = zero;\n    var resolveVelocity = zero;\n    function createSpring() {\n        var initialVelocity = velocity ? -(velocity / 1000) : 0.0;\n        var initialDelta = to - from;\n        var dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n        var undampedAngularFreq = Math.sqrt(stiffness / mass) / 1000;\n        restDelta !== null && restDelta !== void 0 ? restDelta : (restDelta = Math.abs(to - from) <= 1 ? 0.01 : 0.4);\n        if (dampingRatio < 1) {\n            var angularFreq_1 = calcAngularFreq(undampedAngularFreq, dampingRatio);\n            resolveSpring = function (t) {\n                var envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n                return (to -\n                    envelope *\n                        (((initialVelocity +\n                            dampingRatio * undampedAngularFreq * initialDelta) /\n                            angularFreq_1) *\n                            Math.sin(angularFreq_1 * t) +\n                            initialDelta * Math.cos(angularFreq_1 * t)));\n            };\n            resolveVelocity = function (t) {\n                var envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n                return (dampingRatio *\n                    undampedAngularFreq *\n                    envelope *\n                    ((Math.sin(angularFreq_1 * t) *\n                        (initialVelocity +\n                            dampingRatio *\n                                undampedAngularFreq *\n                                initialDelta)) /\n                        angularFreq_1 +\n                        initialDelta * Math.cos(angularFreq_1 * t)) -\n                    envelope *\n                        (Math.cos(angularFreq_1 * t) *\n                            (initialVelocity +\n                                dampingRatio *\n                                    undampedAngularFreq *\n                                    initialDelta) -\n                            angularFreq_1 *\n                                initialDelta *\n                                Math.sin(angularFreq_1 * t)));\n            };\n        }\n        else if (dampingRatio === 1) {\n            resolveSpring = function (t) {\n                return to -\n                    Math.exp(-undampedAngularFreq * t) *\n                        (initialDelta +\n                            (initialVelocity + undampedAngularFreq * initialDelta) *\n                                t);\n            };\n        }\n        else {\n            var dampedAngularFreq_1 = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n            resolveSpring = function (t) {\n                var envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n                var freqForT = Math.min(dampedAngularFreq_1 * t, 300);\n                return (to -\n                    (envelope *\n                        ((initialVelocity +\n                            dampingRatio * undampedAngularFreq * initialDelta) *\n                            Math.sinh(freqForT) +\n                            dampedAngularFreq_1 *\n                                initialDelta *\n                                Math.cosh(freqForT))) /\n                        dampedAngularFreq_1);\n            };\n        }\n    }\n    createSpring();\n    return {\n        next: function (t) {\n            var current = resolveSpring(t);\n            if (!isResolvedFromDuration) {\n                var currentVelocity = resolveVelocity(t) * 1000;\n                var isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n                var isBelowDisplacementThreshold = Math.abs(to - current) <= restDelta;\n                state.done =\n                    isBelowVelocityThreshold && isBelowDisplacementThreshold;\n            }\n            else {\n                state.done = t >= duration;\n            }\n            state.value = state.done ? to : current;\n            return state;\n        },\n        flipTarget: function () {\n            var _a;\n            velocity = -velocity;\n            _a = [to, from], from = _a[0], to = _a[1];\n            createSpring();\n        },\n    };\n}\nspring.needsInterpolation = function (a, b) {\n    return typeof a === \"string\" || typeof b === \"string\";\n};\nvar zero = function (_t) { return 0; };\n\nexport { spring };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}