{"version":3,"file":"notiz-toolbelt-tween.mjs","sources":["../../../../libs/toolbelt/tween/src/easings.ts","../../../../libs/toolbelt/tween/src/tween.ts","../../../../libs/toolbelt/tween/src/tween.pipe.ts","../../../../libs/toolbelt/tween/src/notiz-toolbelt-tween.ts"],"sourcesContent":["export function linear(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  return (c * t) / d + b;\n}\n\nexport function easeInQuad(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  return c * (t /= d) * t + b;\n}\n\nexport function easeOutQuad(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  return -c * (t /= d) * (t - 2) + b;\n}\n\nexport function easeInOutQuad(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  if ((t /= d / 2) < 1) {\n    return (c / 2) * t * t + b;\n  } else {\n    return (-c / 2) * (--t * (t - 2) - 1) + b;\n  }\n}\n\nexport function easeInCubic(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  return c * (t /= d) * t * t + b;\n}\n\nexport function easeOutCubic(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  return c * ((t = t / d - 1) * t * t + 1) + b;\n}\n\nexport function easeInOutCubic(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  if ((t /= d / 2) < 1) {\n    return (c / 2) * t * t * t + b;\n  } else {\n    return (c / 2) * ((t -= 2) * t * t + 2) + b;\n  }\n}\n\nexport function easeInQuart(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  return c * (t /= d) * t * t * t + b;\n}\n\nexport function easeOutQuart(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  return -c * ((t = t / d - 1) * t * t * t - 1) + b;\n}\n\nexport function easeInOutQuart(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  if ((t /= d / 2) < 1) {\n    return (c / 2) * t * t * t * t + b;\n  } else {\n    return (-c / 2) * ((t -= 2) * t * t * t - 2) + b;\n  }\n}\n\nexport function easeInQuint(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  return c * (t /= d) * t * t * t * t + b;\n}\n\nexport function easeOutQuint(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\n}\n\nexport function easeInOutQuint(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  if ((t /= d / 2) < 1) {\n    return (c / 2) * t * t * t * t * t + b;\n  } else {\n    return (c / 2) * ((t -= 2) * t * t * t * t + 2) + b;\n  }\n}\n\nexport function easeInSine(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  return -c * Math.cos((t / d) * (Math.PI / 2)) + c + b;\n}\n\nexport function easeOutSine(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  return c * Math.sin((t / d) * (Math.PI / 2)) + b;\n}\n\nexport function easeInOutSine(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  return (-c / 2) * (Math.cos((Math.PI * t) / d) - 1) + b;\n}\n\nexport function easeInExpo(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  return t == 0 ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;\n}\n\nexport function easeOutExpo(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  return t == d ? b + c : c * (-Math.pow(2, (-10 * t) / d) + 1) + b;\n}\n\nexport function easeInOutExpo(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  if (t === 0) {\n    return b;\n  }\n  if (t === d) {\n    return b + c;\n  }\n  if ((t /= d / 2) < 1) {\n    return (c / 2) * Math.pow(2, 10 * (t - 1)) + b;\n  } else {\n    return (c / 2) * (-Math.pow(2, -10 * --t) + 2) + b;\n  }\n}\n\nexport function easeInCirc(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;\n}\nexport function easeOutCirc(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;\n}\n\nexport function easeInOutCirc(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  if ((t /= d / 2) < 1) {\n    return (-c / 2) * (Math.sqrt(1 - t * t) - 1) + b;\n  } else {\n    return (c / 2) * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;\n  }\n}\nexport function easeInElastic(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  let a, p, s;\n  s = 1.70158;\n  p = 0;\n  a = c;\n  if (t === 0) {\n    return b;\n  } else if ((t /= d) === 1) {\n    return b + c;\n  }\n  if (!p) {\n    p = d * 0.3;\n  }\n  if (a < Math.abs(c)) {\n    a = c;\n    s = p / 4;\n  } else {\n    s = (p / (2 * Math.PI)) * Math.asin(c / a);\n  }\n  return (\n    -(\n      a *\n      Math.pow(2, 10 * (t -= 1)) *\n      Math.sin(((t * d - s) * (2 * Math.PI)) / p)\n    ) + b\n  );\n}\n\nexport function easeOutElastic(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  let a, p, s;\n  s = 1.70158;\n  p = 0;\n  a = c;\n  if (t === 0) {\n    return b;\n  } else if ((t /= d) === 1) {\n    return b + c;\n  }\n  if (!p) {\n    p = d * 0.3;\n  }\n  if (a < Math.abs(c)) {\n    a = c;\n    s = p / 4;\n  } else {\n    s = (p / (2 * Math.PI)) * Math.asin(c / a);\n  }\n  return (\n    a * Math.pow(2, -10 * t) * Math.sin(((t * d - s) * (2 * Math.PI)) / p) +\n    c +\n    b\n  );\n}\n\nexport function easeInOutElastic(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  let a, p, s;\n  s = 1.70158;\n  p = 0;\n  a = c;\n  if (t === 0) {\n    return b;\n  } else if ((t /= d / 2) === 2) {\n    return b + c;\n  }\n  if (!p) {\n    p = d * (0.3 * 1.5);\n  }\n  if (a < Math.abs(c)) {\n    a = c;\n    s = p / 4;\n  } else {\n    s = (p / (2 * Math.PI)) * Math.asin(c / a);\n  }\n  if (t < 1) {\n    return (\n      -0.5 *\n        (a *\n          Math.pow(2, 10 * (t -= 1)) *\n          Math.sin(((t * d - s) * (2 * Math.PI)) / p)) +\n      b\n    );\n  } else {\n    return (\n      a *\n        Math.pow(2, -10 * (t -= 1)) *\n        Math.sin(((t * d - s) * (2 * Math.PI)) / p) *\n        0.5 +\n      c +\n      b\n    );\n  }\n}\nexport function easeInBack(\n  t: number,\n  b: number,\n  _c: number,\n  d: number,\n  s: number,\n) {\n  const c = _c - b;\n  if (s === void 0) {\n    s = 1.70158;\n  }\n  return c * (t /= d) * t * ((s + 1) * t - s) + b;\n}\n\nexport function easeOutBack(\n  t: number,\n  b: number,\n  _c: number,\n  d: number,\n  s: number,\n) {\n  const c = _c - b;\n  if (s === void 0) {\n    s = 1.70158;\n  }\n  return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n}\n\nexport function easeInOutBack(\n  t: number,\n  b: number,\n  _c: number,\n  d: number,\n  s: number,\n) {\n  const c = _c - b;\n  if (s === void 0) {\n    s = 1.70158;\n  }\n  if ((t /= d / 2) < 1) {\n    return (c / 2) * (t * t * (((s *= 1.525) + 1) * t - s)) + b;\n  } else {\n    return (c / 2) * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;\n  }\n}\n\nexport function easeInBounce(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  let v;\n  v = easeOutBounce(d - t, 0, c, d);\n  return c - v + b;\n}\n\nexport function easeOutBounce(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  if ((t /= d) < 1 / 2.75) {\n    return c * (7.5625 * t * t) + b;\n  } else if (t < 2 / 2.75) {\n    return c * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + b;\n  } else if (t < 2.5 / 2.75) {\n    return c * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + b;\n  } else {\n    return c * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375) + b;\n  }\n}\n\nexport function easeInOutBounce(t: number, b: number, _c: number, d: number) {\n  const c = _c - b;\n  let v;\n  if (t < d / 2) {\n    v = easeInBounce(t * 2, 0, c, d);\n    return v * 0.5 + b;\n  } else {\n    v = easeOutBounce(t * 2 - d, 0, c, d);\n    return v * 0.5 + c * 0.5 + b;\n  }\n}\n\nconst _easings: { [key: string]: Function } = {\n  linear,\n  easeInQuad,\n  easeOutQuad,\n  easeInOutQuad,\n  easeInCubic,\n  easeOutCubic,\n  easeInOutCubic,\n  easeInQuart,\n  easeOutQuart,\n  easeInOutQuart,\n  easeInQuint,\n  easeOutQuint,\n  easeInOutQuint,\n  easeInSine,\n  easeOutSine,\n  easeInOutSine,\n  easeInExpo,\n  easeOutExpo,\n  easeInOutExpo,\n  easeInCirc,\n  easeOutCirc,\n  easeInOutCirc,\n  easeInElastic,\n  easeOutElastic,\n  easeInOutElastic,\n  easeInBack,\n  easeOutBack,\n  easeInOutBack,\n  easeInBounce,\n  easeOutBounce,\n  easeInOutBounce,\n};\n\nexport type easing =\n  | 'linear'\n  | 'easeInQuad'\n  | 'easeOutQuad'\n  | 'easeInOutQuad'\n  | 'easeInCubic'\n  | 'easeOutCubic'\n  | 'easeInOutCubic'\n  | 'easeInQuart'\n  | 'easeOutQuart'\n  | 'easeInOutQuart'\n  | 'easeInQuint'\n  | 'easeOutQuint'\n  | 'easeInOutQuint'\n  | 'easeInSine'\n  | 'easeOutSine'\n  | 'easeInOutSine'\n  | 'easeInExpo'\n  | 'easeOutExpo'\n  | 'easeInOutExpo'\n  | 'easeInCirc'\n  | 'easeOutCirc'\n  | 'easeInOutCirc'\n  | 'easeInElastic'\n  | 'easeOutElastic'\n  | 'easeInOutElastic'\n  | 'easeInBack'\n  | 'easeOutBack'\n  | 'easeInOutBack'\n  | 'easeInBounce'\n  | 'easeOutBounce'\n  | 'easeInOutBounce';\n\nexport const easings = (name: easing) => _easings[name];\n","import { Observable, map } from 'rxjs';\n\nexport function tween$(\n  easingFunction: Function,\n  duration: number,\n): Observable<number> {\n  if (typeof window === 'undefined') {\n    return new Observable();\n  }\n\n  return new Observable((observer) => {\n    if (typeof requestAnimationFrame === 'undefined') {\n      return () => {};\n    }\n\n    let startTime: number;\n    let id = requestAnimationFrame(function sample(time) {\n      startTime = startTime || time;\n      const t = time - startTime;\n      if (t < duration) {\n        observer.next(easingFunction(t, 0, 1, duration));\n        id = requestAnimationFrame(sample);\n      } else {\n        observer.next(easingFunction(duration, 0, 1, duration));\n        id = requestAnimationFrame(() => {\n          observer.complete();\n        });\n      }\n    });\n    return function () {\n      if (id) {\n        cancelAnimationFrame(id);\n      }\n    };\n  });\n}\n\nexport const fromTo =\n  (from: number, to: number) =>\n  <T>(source: Observable<number>) =>\n    source.pipe(\n      map((t) => {\n        return t * (to - from) + from;\n      }),\n    );\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { startWith, tap } from 'rxjs/operators';\nimport { easing, easings } from './easings';\nimport { fromTo, tween$ } from './tween';\n\n@Pipe({\n  name: 'tween',\n  pure: true,\n  standalone: true,\n})\nexport class TweenPipe implements PipeTransform {\n  last: number | undefined;\n  transform(\n    value: number,\n    duration = 200,\n    easing: easing = 'linear',\n  ): Observable<number> {\n    const last = this.last;\n\n    return tween$(easings(easing), duration).pipe(\n      startWith(last ?? value),\n      fromTo(last ?? value, value),\n      tap((value) => (this.last = value)),\n    );\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}