{"ast":null,"code":"import { progress } from './progress.js';\nimport { mix } from './mix.js';\nimport { mixColor } from './mix-color.js';\nimport { mixComplex, mixArray, mixObject } from './mix-complex.js';\nimport { color } from 'style-value-types';\nimport { clamp } from './clamp.js';\nimport { pipe } from './pipe.js';\nimport { invariant } from 'hey-listen';\nvar mixNumber = function mixNumber(from, to) {\n  return function (p) {\n    return mix(from, to, p);\n  };\n};\nfunction detectMixerFactory(v) {\n  if (typeof v === 'number') {\n    return mixNumber;\n  } else if (typeof v === 'string') {\n    if (color.test(v)) {\n      return mixColor;\n    } else {\n      return mixComplex;\n    }\n  } else if (Array.isArray(v)) {\n    return mixArray;\n  } else if (typeof v === 'object') {\n    return mixObject;\n  }\n}\nfunction createMixers(output, ease, customMixer) {\n  var mixers = [];\n  var mixerFactory = customMixer || detectMixerFactory(output[0]);\n  var numMixers = output.length - 1;\n  for (var i = 0; i < numMixers; i++) {\n    var mixer = mixerFactory(output[i], output[i + 1]);\n    if (ease) {\n      var easingFunction = Array.isArray(ease) ? ease[i] : ease;\n      mixer = pipe(easingFunction, mixer);\n    }\n    mixers.push(mixer);\n  }\n  return mixers;\n}\nfunction fastInterpolate(_a, _b) {\n  var from = _a[0],\n    to = _a[1];\n  var mixer = _b[0];\n  return function (v) {\n    return mixer(progress(from, to, v));\n  };\n}\nfunction slowInterpolate(input, mixers) {\n  var inputLength = input.length;\n  var lastInputIndex = inputLength - 1;\n  return function (v) {\n    var mixerIndex = 0;\n    var foundMixerIndex = false;\n    if (v <= input[0]) {\n      foundMixerIndex = true;\n    } else if (v >= input[lastInputIndex]) {\n      mixerIndex = lastInputIndex - 1;\n      foundMixerIndex = true;\n    }\n    if (!foundMixerIndex) {\n      var i = 1;\n      for (; i < inputLength; i++) {\n        if (input[i] > v || i === lastInputIndex) {\n          break;\n        }\n      }\n      mixerIndex = i - 1;\n    }\n    var progressInRange = progress(input[mixerIndex], input[mixerIndex + 1], v);\n    return mixers[mixerIndex](progressInRange);\n  };\n}\nfunction interpolate(input, output, _a) {\n  var _b = _a === void 0 ? {} : _a,\n    _c = _b.clamp,\n    isClamp = _c === void 0 ? true : _c,\n    ease = _b.ease,\n    mixer = _b.mixer;\n  var inputLength = input.length;\n  invariant(inputLength === output.length, 'Both input and output ranges must be the same length');\n  invariant(!ease || !Array.isArray(ease) || ease.length === inputLength - 1, 'Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values.');\n  if (input[0] > input[inputLength - 1]) {\n    input = [].concat(input);\n    output = [].concat(output);\n    input.reverse();\n    output.reverse();\n  }\n  var mixers = createMixers(output, ease, mixer);\n  var interpolator = inputLength === 2 ? fastInterpolate(input, mixers) : slowInterpolate(input, mixers);\n  return isClamp ? function (v) {\n    return interpolator(clamp(input[0], input[inputLength - 1], v));\n  } : interpolator;\n}\nexport { interpolate };","map":{"version":3,"names":["progress","mix","mixColor","mixComplex","mixArray","mixObject","color","clamp","pipe","invariant","mixNumber","from","to","p","detectMixerFactory","v","test","Array","isArray","createMixers","output","ease","customMixer","mixers","mixerFactory","numMixers","length","i","mixer","easingFunction","push","fastInterpolate","_a","_b","slowInterpolate","input","inputLength","lastInputIndex","mixerIndex","foundMixerIndex","progressInRange","interpolate","_c","isClamp","concat","reverse","interpolator"],"sources":["D:/DSP_Management/node_modules/popmotion/dist/es/utils/interpolate.js"],"sourcesContent":["import { progress } from './progress.js';\nimport { mix } from './mix.js';\nimport { mixColor } from './mix-color.js';\nimport { mixComplex, mixArray, mixObject } from './mix-complex.js';\nimport { color } from 'style-value-types';\nimport { clamp } from './clamp.js';\nimport { pipe } from './pipe.js';\nimport { invariant } from 'hey-listen';\n\nvar mixNumber = function (from, to) { return function (p) { return mix(from, to, p); }; };\nfunction detectMixerFactory(v) {\n    if (typeof v === 'number') {\n        return mixNumber;\n    }\n    else if (typeof v === 'string') {\n        if (color.test(v)) {\n            return mixColor;\n        }\n        else {\n            return mixComplex;\n        }\n    }\n    else if (Array.isArray(v)) {\n        return mixArray;\n    }\n    else if (typeof v === 'object') {\n        return mixObject;\n    }\n}\nfunction createMixers(output, ease, customMixer) {\n    var mixers = [];\n    var mixerFactory = customMixer || detectMixerFactory(output[0]);\n    var numMixers = output.length - 1;\n    for (var i = 0; i < numMixers; i++) {\n        var mixer = mixerFactory(output[i], output[i + 1]);\n        if (ease) {\n            var easingFunction = Array.isArray(ease) ? ease[i] : ease;\n            mixer = pipe(easingFunction, mixer);\n        }\n        mixers.push(mixer);\n    }\n    return mixers;\n}\nfunction fastInterpolate(_a, _b) {\n    var from = _a[0], to = _a[1];\n    var mixer = _b[0];\n    return function (v) { return mixer(progress(from, to, v)); };\n}\nfunction slowInterpolate(input, mixers) {\n    var inputLength = input.length;\n    var lastInputIndex = inputLength - 1;\n    return function (v) {\n        var mixerIndex = 0;\n        var foundMixerIndex = false;\n        if (v <= input[0]) {\n            foundMixerIndex = true;\n        }\n        else if (v >= input[lastInputIndex]) {\n            mixerIndex = lastInputIndex - 1;\n            foundMixerIndex = true;\n        }\n        if (!foundMixerIndex) {\n            var i = 1;\n            for (; i < inputLength; i++) {\n                if (input[i] > v || i === lastInputIndex) {\n                    break;\n                }\n            }\n            mixerIndex = i - 1;\n        }\n        var progressInRange = progress(input[mixerIndex], input[mixerIndex + 1], v);\n        return mixers[mixerIndex](progressInRange);\n    };\n}\nfunction interpolate(input, output, _a) {\n    var _b = _a === void 0 ? {} : _a, _c = _b.clamp, isClamp = _c === void 0 ? true : _c, ease = _b.ease, mixer = _b.mixer;\n    var inputLength = input.length;\n    invariant(inputLength === output.length, 'Both input and output ranges must be the same length');\n    invariant(!ease || !Array.isArray(ease) || ease.length === inputLength - 1, 'Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values.');\n    if (input[0] > input[inputLength - 1]) {\n        input = [].concat(input);\n        output = [].concat(output);\n        input.reverse();\n        output.reverse();\n    }\n    var mixers = createMixers(output, ease, mixer);\n    var interpolator = inputLength === 2\n        ? fastInterpolate(input, mixers)\n        : slowInterpolate(input, mixers);\n    return isClamp\n        ? function (v) { return interpolator(clamp(input[0], input[inputLength - 1], v)); }\n        : interpolator;\n}\n\nexport { interpolate };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}