{"ast":null,"code":"import { warning } from 'hey-listen';\nimport { clamp } from '../../utils/clamp.js';\nvar safeMin = 0.001;\nvar minDuration = 0.01;\nvar maxDuration = 10.0;\nvar minDamping = 0.05;\nvar maxDamping = 1;\nfunction findSpring(_a) {\n  var _b = _a.duration,\n    duration = _b === void 0 ? 800 : _b,\n    _c = _a.bounce,\n    bounce = _c === void 0 ? 0.25 : _c,\n    _d = _a.velocity,\n    velocity = _d === void 0 ? 0 : _d,\n    _e = _a.mass,\n    mass = _e === void 0 ? 1 : _e;\n  var envelope;\n  var derivative;\n  warning(duration <= maxDuration * 1000, \"Spring duration must be 10 seconds or less\");\n  var dampingRatio = 1 - bounce;\n  dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n  duration = clamp(minDuration, maxDuration, duration / 1000);\n  if (dampingRatio < 1) {\n    envelope = function envelope(undampedFreq) {\n      var exponentialDecay = undampedFreq * dampingRatio;\n      var delta = exponentialDecay * duration;\n      var a = exponentialDecay - velocity;\n      var b = calcAngularFreq(undampedFreq, dampingRatio);\n      var c = Math.exp(-delta);\n      return safeMin - a / b * c;\n    };\n    derivative = function derivative(undampedFreq) {\n      var exponentialDecay = undampedFreq * dampingRatio;\n      var delta = exponentialDecay * duration;\n      var d = delta * velocity + velocity;\n      var e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n      var f = Math.exp(-delta);\n      var g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n      var factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n      return factor * ((d - e) * f) / g;\n    };\n  } else {\n    envelope = function envelope(undampedFreq) {\n      var a = Math.exp(-undampedFreq * duration);\n      var b = (undampedFreq - velocity) * duration + 1;\n      return -safeMin + a * b;\n    };\n    derivative = function derivative(undampedFreq) {\n      var a = Math.exp(-undampedFreq * duration);\n      var b = (velocity - undampedFreq) * (duration * duration);\n      return a * b;\n    };\n  }\n  var initialGuess = 5 / duration;\n  var undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n  duration = duration * 1000;\n  if (isNaN(undampedFreq)) {\n    return {\n      stiffness: 100,\n      damping: 10,\n      duration: duration\n    };\n  } else {\n    var stiffness = Math.pow(undampedFreq, 2) * mass;\n    return {\n      stiffness: stiffness,\n      damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n      duration: duration\n    };\n  }\n}\nvar rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n  var result = initialGuess;\n  for (var i = 1; i < rootIterations; i++) {\n    result = result - envelope(result) / derivative(result);\n  }\n  return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n  return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\nexport { calcAngularFreq, findSpring, maxDamping, maxDuration, minDamping, minDuration };","map":{"version":3,"names":["warning","clamp","safeMin","minDuration","maxDuration","minDamping","maxDamping","findSpring","_a","_b","duration","_c","bounce","_d","velocity","_e","mass","envelope","derivative","dampingRatio","undampedFreq","exponentialDecay","delta","a","b","calcAngularFreq","c","Math","exp","d","e","pow","f","g","factor","initialGuess","approximateRoot","isNaN","stiffness","damping","sqrt","rootIterations","result","i"],"sources":["C:/ldt/LDT/management/node_modules/popmotion/dist/es/animations/utils/find-spring.js"],"sourcesContent":["import { warning } from 'hey-listen';\nimport { clamp } from '../../utils/clamp.js';\n\nvar safeMin = 0.001;\nvar minDuration = 0.01;\nvar maxDuration = 10.0;\nvar minDamping = 0.05;\nvar maxDamping = 1;\nfunction findSpring(_a) {\n    var _b = _a.duration, duration = _b === void 0 ? 800 : _b, _c = _a.bounce, bounce = _c === void 0 ? 0.25 : _c, _d = _a.velocity, velocity = _d === void 0 ? 0 : _d, _e = _a.mass, mass = _e === void 0 ? 1 : _e;\n    var envelope;\n    var derivative;\n    warning(duration <= maxDuration * 1000, \"Spring duration must be 10 seconds or less\");\n    var dampingRatio = 1 - bounce;\n    dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n    duration = clamp(minDuration, maxDuration, duration / 1000);\n    if (dampingRatio < 1) {\n        envelope = function (undampedFreq) {\n            var exponentialDecay = undampedFreq * dampingRatio;\n            var delta = exponentialDecay * duration;\n            var a = exponentialDecay - velocity;\n            var b = calcAngularFreq(undampedFreq, dampingRatio);\n            var c = Math.exp(-delta);\n            return safeMin - (a / b) * c;\n        };\n        derivative = function (undampedFreq) {\n            var exponentialDecay = undampedFreq * dampingRatio;\n            var delta = exponentialDecay * duration;\n            var d = delta * velocity + velocity;\n            var e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n            var f = Math.exp(-delta);\n            var g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n            var factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n            return (factor * ((d - e) * f)) / g;\n        };\n    }\n    else {\n        envelope = function (undampedFreq) {\n            var a = Math.exp(-undampedFreq * duration);\n            var b = (undampedFreq - velocity) * duration + 1;\n            return -safeMin + a * b;\n        };\n        derivative = function (undampedFreq) {\n            var a = Math.exp(-undampedFreq * duration);\n            var b = (velocity - undampedFreq) * (duration * duration);\n            return a * b;\n        };\n    }\n    var initialGuess = 5 / duration;\n    var undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n    duration = duration * 1000;\n    if (isNaN(undampedFreq)) {\n        return {\n            stiffness: 100,\n            damping: 10,\n            duration: duration,\n        };\n    }\n    else {\n        var stiffness = Math.pow(undampedFreq, 2) * mass;\n        return {\n            stiffness: stiffness,\n            damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n            duration: duration,\n        };\n    }\n}\nvar rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n    var result = initialGuess;\n    for (var i = 1; i < rootIterations; i++) {\n        result = result - envelope(result) / derivative(result);\n    }\n    return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n    return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\nexport { calcAngularFreq, findSpring, maxDamping, maxDuration, minDamping, minDuration };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}