{"version":3,"file":"easing.mjs","sources":["../../src/utils/easing.ts"],"sourcesContent":["/**\n * @file\n * https://github.com/bameyrick/js-easing-functions/blob/master/src/index.ts\n */\n\nexport interface EasingFunction {\n  (current: number, start: number, end: number, duration: number): number;\n}\n\n/**\n * @export\n * @param {number} current \n * @param {number} start \n * @param {number} end \n * @param {number} duration \n * @returns\n */\nexport const linear: EasingFunction = (current, start, end, duration) => {\n  const change = end - start;\n  const offset = (change * current) / duration;\n  return offset + start;\n};\n\n/**\n * @export\n * @param {number} current \n * @param {number} start \n * @param {number} end \n * @param {number} duration \n * @returns\n */\nexport const easeInOutCubic: EasingFunction = (current, start, end, duration) => {\n  const change = (end - start) / 2;\n  let time = current / (duration / 2);\n  if (time < 1) {\n    return change * time * time * time + start;\n  }\n  time -= 2;\n  // eslint-disable-next-line no-return-assign\n  return change * (time * time * time + 2) + start;\n};\n"],"names":["time"],"mappings":";;;;;;AAiBO,sCAAA,IAAA,MAAA,GAAA,SAAA,MAAA,CAAA,OAAA,EAAA,KAAA,EAAA,GAAA,EAAA,QAAA,EAAA;AACL,EAAA,IAAA,MAAA,GAAA,GAAA,GAAA,KAAA,CAAA;AACM,EAAA,IAAA,MAAA,GAAA,MAAA,GAAA,OAAA,GAAA,QAAA,CAAA;;AAER,EAAA;AAUO,IAAA,cAAA,GAAA,SAAA,cAAA,CAAA,OAAA,EAAA,KAAA,EAAA,GAAA,EAAA,QAAA,EAAA;AACC,EAAA,IAAA,MAAA,GAAA,CAAA,GAAA,GAAA,KAAA,IAAA,CAAA,CAAA;AACF,EAAA,IAAA,IAAA,GAAA,OAAA,IAAA,QAAA,GAAA,CAAA,CAAA,CAAA;;;AAGJ,GAAA;AACQA,EAAAA,IAAAA,IAAAA,CAAAA,CAAAA;;AAGV;;;;"}