@tamagui/cubic-bezier-animator 1.89.26 → 1.89.27-1708112217600

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,7 +18,7 @@ __export(cubicBezier_exports, {
18
18
  bezier: () => bezier
19
19
  });
20
20
  module.exports = __toCommonJS(cubicBezier_exports);
21
- const float32ArraySupported = typeof Float32Array == "function";
21
+ var NEWTON_ITERATIONS = 4, NEWTON_MIN_SLOPE = 1e-3, SUBDIVISION_PRECISION = 1e-7, SUBDIVISION_MAX_ITERATIONS = 10, kSplineTableSize = 11, kSampleStepSize = 1 / (kSplineTableSize - 1), float32ArraySupported = typeof Float32Array == "function";
22
22
  function A(aA1, aA2) {
23
23
  return 1 - 3 * aA2 + 3 * aA1;
24
24
  }
@@ -35,18 +35,18 @@ function getSlope(aT, aA1, aA2) {
35
35
  return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
36
36
  }
37
37
  function binarySubdivide(aX, aA, aB, mX1, mX2) {
38
- let currentX, currentT, i = 0;
38
+ var currentX, currentT, i = 0;
39
39
  do
40
40
  currentT = aA + (aB - aA) / 2, currentX = calcBezier(currentT, mX1, mX2) - aX, currentX > 0 ? aB = currentT : aA = currentT;
41
- while (Math.abs(currentX) > 1e-7 && ++i < 10);
41
+ while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);
42
42
  return currentT;
43
43
  }
44
44
  function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {
45
- for (let i = 0; i < 4; ++i) {
46
- const currentSlope = getSlope(aGuessT, mX1, mX2);
45
+ for (var i = 0; i < NEWTON_ITERATIONS; ++i) {
46
+ var currentSlope = getSlope(aGuessT, mX1, mX2);
47
47
  if (currentSlope === 0)
48
48
  return aGuessT;
49
- const currentX = calcBezier(aGuessT, mX1, mX2) - aX;
49
+ var currentX = calcBezier(aGuessT, mX1, mX2) - aX;
50
50
  aGuessT -= currentX / currentSlope;
51
51
  }
52
52
  return aGuessT;
@@ -59,17 +59,14 @@ function bezier(mX1, mY1, mX2, mY2) {
59
59
  throw new Error("bezier x values must be in [0, 1] range");
60
60
  if (mX1 === mY1 && mX2 === mY2)
61
61
  return LinearEasing;
62
- const sampleValues = float32ArraySupported ? new Float32Array(11) : new Array(11);
63
- for (let i = 0; i < 11; ++i)
64
- sampleValues[i] = calcBezier(i * 0.1, mX1, mX2);
62
+ for (var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize), i = 0; i < kSplineTableSize; ++i)
63
+ sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
65
64
  function getTForX(aX) {
66
- let intervalStart = 0, currentSample = 1;
67
- const lastSample = 10;
68
- for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample)
69
- intervalStart += 0.1;
65
+ for (var intervalStart = 0, currentSample = 1, lastSample = kSplineTableSize - 1; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample)
66
+ intervalStart += kSampleStepSize;
70
67
  --currentSample;
71
- const dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]), guessForT = intervalStart + dist * 0.1, initialSlope = getSlope(guessForT, mX1, mX2);
72
- return initialSlope >= 1e-3 ? newtonRaphsonIterate(aX, guessForT, mX1, mX2) : initialSlope === 0 ? guessForT : binarySubdivide(aX, intervalStart, intervalStart + 0.1, mX1, mX2);
68
+ var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]), guessForT = intervalStart + dist * kSampleStepSize, initialSlope = getSlope(guessForT, mX1, mX2);
69
+ return initialSlope >= NEWTON_MIN_SLOPE ? newtonRaphsonIterate(aX, guessForT, mX1, mX2) : initialSlope === 0 ? guessForT : binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
73
70
  }
74
71
  return function(x) {
75
72
  return x === 0 || x === 1 ? x : calcBezier(getTForX(x), mY1, mY2);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/cubicBezier.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA,MAAM,wBAAwB,OAAO,gBAAiB;AAEtD,SAAS,EAAE,KAAa,KAAa;AACnC,SAAO,IAAM,IAAM,MAAM,IAAM;AACjC;AACA,SAAS,EAAE,KAAa,KAAa;AACnC,SAAO,IAAM,MAAM,IAAM;AAC3B;AACA,SAAS,EAAE,KAAa;AACtB,SAAO,IAAM;AACf;AAGA,SAAS,WAAW,IAAY,KAAa,KAAa;AACxD,WAAS,EAAE,KAAK,GAAG,IAAI,KAAK,EAAE,KAAK,GAAG,KAAK,KAAK,EAAE,GAAG,KAAK;AAC5D;AAGA,SAAS,SAAS,IAAY,KAAa,KAAa;AACtD,SAAO,IAAM,EAAE,KAAK,GAAG,IAAI,KAAK,KAAK,IAAM,EAAE,KAAK,GAAG,IAAI,KAAK,EAAE,GAAG;AACrE;AAEA,SAAS,gBAAgB,IAAY,IAAY,IAAY,KAAa,KAAa;AACrF,MAAI,UACA,UACA,IAAI;AACR;AACE,eAAW,MAAM,KAAK,MAAM,GAC5B,WAAW,WAAW,UAAU,KAAK,GAAG,IAAI,IACxC,WAAW,IACb,KAAK,WAEL,KAAK;AAAA,SAEA,KAAK,IAAI,QAAQ,IAAI,QAAyB,EAAE,IAAI;AAC7D,SAAO;AACT;AAEA,SAAS,qBAAqB,IAAY,SAAiB,KAAa,KAAa;AACnF,WAAS,IAAI,GAAG,IAAI,GAAmB,EAAE,GAAG;AAC1C,UAAM,eAAe,SAAS,SAAS,KAAK,GAAG;AAC/C,QAAI,iBAAiB;AACnB,aAAO;AAET,UAAM,WAAW,WAAW,SAAS,KAAK,GAAG,IAAI;AACjD,eAAW,WAAW;AAAA,EACxB;AACA,SAAO;AACT;AAEA,SAAS,aAAa,GAAW;AAC/B,SAAO;AACT;AAEO,SAAS,OAAO,KAAa,KAAa,KAAa,KAAa;AACzE,MAAI,EAAE,KAAK,OAAO,OAAO,KAAK,KAAK,OAAO,OAAO;AAC/C,UAAM,IAAI,MAAM,yCAAyC;AAG3D,MAAI,QAAQ,OAAO,QAAQ;AACzB,WAAO;AAIT,QAAM,eAAe,wBACjB,IAAI,aAAa,EAAgB,IACjC,IAAI,MAAM,EAAgB;AAC9B,WAAS,IAAI,GAAG,IAAI,IAAkB,EAAE;AACtC,iBAAa,CAAC,IAAI,WAAW,IAAI,KAAiB,KAAK,GAAG;AAG5D,WAAS,SAAS,IAAI;AACpB,QAAI,gBAAgB,GAChB,gBAAgB;AACpB,UAAM,aAAa;AAEnB,WAEE,kBAAkB,cAAc,aAAa,aAAa,KAAK,IAC/D,EAAE;AAEF,uBAAiB;AAEnB,MAAE;AAGF,UAAM,QACH,KAAK,aAAa,aAAa,MAC/B,aAAa,gBAAgB,CAAC,IAAI,aAAa,aAAa,IACzD,YAAY,gBAAgB,OAAO,KAEnC,eAAe,SAAS,WAAW,KAAK,GAAG;AACjD,WAAI,gBAAgB,OACX,qBAAqB,IAAI,WAAW,KAAK,GAAG,IAEjD,iBAAiB,IACZ,YAEF,gBAAgB,IAAI,eAAe,gBAAgB,KAAiB,KAAK,GAAG;AAAA,EACrF;AAEA,SAAO,SAAsB,GAAW;AAEtC,WAAI,MAAM,KAAK,MAAM,IACZ,IAEF,WAAW,SAAS,CAAC,GAAG,KAAK,GAAG;AAAA,EACzC;AACF;",
5
- "names": []
3
+ "sources": ["../../src/Users/n8/tamagui/packages/cubic-bezier-animator/src/cubicBezier.tsx"],
4
+ "mappings": "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",
5
+ "names": ["NEWTON_ITERATIONS", "NEWTON_MIN_SLOPE", "SUBDIVISION_PRECISION", "SUBDIVISION_MAX_ITERATIONS", "kSplineTableSize", "kSampleStepSize", "float32ArraySupported", "Float32Array", "A", "aA1", "aA2", "B", "C", "calcBezier", "aT", "getSlope", "binarySubdivide", "aX", "aA", "aB", "mX1", "mX2", "currentX", "currentT", "i", "Math", "abs", "newtonRaphsonIterate", "aGuessT", "currentSlope", "LinearEasing", "x", "bezier", "mY1", "mY2", "Error", "sampleValues", "Array", "getTForX", "intervalStart", "currentSample", "lastSample", "dist", "guessForT", "initialSlope"]
6
6
  }
@@ -19,13 +19,50 @@ __export(src_exports, {
19
19
  });
20
20
  module.exports = __toCommonJS(src_exports);
21
21
  var import_cubicBezier = require("./cubicBezier");
22
+ function _array_like_to_array(arr, len) {
23
+ (len == null || len > arr.length) && (len = arr.length);
24
+ for (var i = 0, arr2 = new Array(len); i < len; i++)
25
+ arr2[i] = arr[i];
26
+ return arr2;
27
+ }
28
+ function _array_without_holes(arr) {
29
+ if (Array.isArray(arr))
30
+ return _array_like_to_array(arr);
31
+ }
32
+ function _iterable_to_array(iter) {
33
+ if (typeof Symbol < "u" && iter[Symbol.iterator] != null || iter["@@iterator"] != null)
34
+ return Array.from(iter);
35
+ }
36
+ function _non_iterable_spread() {
37
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
38
+ }
39
+ function _to_consumable_array(arr) {
40
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
41
+ }
42
+ function _unsupported_iterable_to_array(o, minLen) {
43
+ if (o) {
44
+ if (typeof o == "string")
45
+ return _array_like_to_array(o, minLen);
46
+ var n = Object.prototype.toString.call(o).slice(8, -1);
47
+ if (n === "Object" && o.constructor && (n = o.constructor.name), n === "Map" || n === "Set")
48
+ return Array.from(n);
49
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
50
+ return _array_like_to_array(o, minLen);
51
+ }
52
+ }
22
53
  function animate(param) {
23
- let start = null;
24
- const easing = param.cubicBezier ? (0, import_cubicBezier.bezier)(...param.cubicBezier) : (v) => v, { x: fromX, y: fromY, scaleX: fromScaleX, scaleY: fromScaleY } = param.from, { x: toX, y: toY, scaleX: toScaleX, scaleY: toScaleY } = param.to;
54
+ var start = null, easing = param.cubicBezier ? import_cubicBezier.bezier.apply(void 0, _to_consumable_array(param.cubicBezier)) : function(v) {
55
+ return v;
56
+ }, _param_from = param.from, fromX = _param_from.x, fromY = _param_from.y, fromScaleX = _param_from.scaleX, fromScaleY = _param_from.scaleY, _param_to = param.to, toX = _param_to.x, toY = _param_to.y, toScaleX = _param_to.scaleX, toScaleY = _param_to.scaleY;
25
57
  function frame(timestamp) {
26
58
  start || (start = timestamp);
27
- const progress = timestamp - start, x = toX !== void 0 ? fromX + (toX - fromX) * easing(progress / param.duration) : void 0, y = toY !== void 0 ? fromY + (toY - fromY) * easing(progress / param.duration) : void 0, scaleX = toScaleX !== void 0 ? fromScaleX + (toScaleX - fromScaleX) * easing(progress / param.duration) : void 0, scaleY = toScaleY !== void 0 ? fromScaleY + (toScaleY - fromScaleY) * easing(progress / param.duration) : void 0;
28
- param.onUpdate({ x, y, scaleX, scaleY }), progress < param.duration && requestAnimationFrame(frame);
59
+ var progress = timestamp - start, x = toX !== void 0 ? fromX + (toX - fromX) * easing(progress / param.duration) : void 0, y = toY !== void 0 ? fromY + (toY - fromY) * easing(progress / param.duration) : void 0, scaleX = toScaleX !== void 0 ? fromScaleX + (toScaleX - fromScaleX) * easing(progress / param.duration) : void 0, scaleY = toScaleY !== void 0 ? fromScaleY + (toScaleY - fromScaleY) * easing(progress / param.duration) : void 0;
60
+ param.onUpdate({
61
+ x,
62
+ y,
63
+ scaleX,
64
+ scaleY
65
+ }), progress < param.duration && requestAnimationFrame(frame);
29
66
  }
30
67
  requestAnimationFrame(frame);
31
68
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/index.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAuB;AAiBhB,SAAS,QAAQ,OAAqB;AAC3C,MAAI,QAAQ;AACZ,QAAM,SAAS,MAAM,kBAAc,2BAAO,GAAG,MAAM,WAAW,IAAI,CAAC,MAAc,GAE3E,EAAE,GAAG,OAAO,GAAG,OAAO,QAAQ,YAAY,QAAQ,WAAW,IAAI,MAAM,MACvE,EAAE,GAAG,KAAK,GAAG,KAAK,QAAQ,UAAU,QAAQ,SAAS,IAAI,MAAM;AAErE,WAAS,MAAM,WAAW;AACxB,IAAK,UAAO,QAAQ;AACpB,UAAM,WAAW,YAAY,OACvB,IACJ,QAAQ,SACJ,SAAU,MAAM,SAAU,OAAO,WAAW,MAAM,QAAQ,IAC1D,QACA,IACJ,QAAQ,SACJ,SAAU,MAAM,SAAU,OAAO,WAAW,MAAM,QAAQ,IAC1D,QACA,SACJ,aAAa,SACT,cAAe,WAAW,cAAe,OAAO,WAAW,MAAM,QAAQ,IACzE,QACA,SACJ,aAAa,SACT,cAAe,WAAW,cAAe,OAAO,WAAW,MAAM,QAAQ,IACzE;AACN,UAAM,SAAS,EAAE,GAAG,GAAG,QAAQ,OAAO,CAAC,GAEnC,WAAW,MAAM,YACnB,sBAAsB,KAAK;AAAA,EAE/B;AACA,wBAAsB,KAAK;AAC7B;",
5
- "names": []
3
+ "sources": ["../../src/Users/n8/tamagui/packages/cubic-bezier-animator/src/index.tsx"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA,yBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBhB,SAASA,QAAQC,OAAmB;AACzC,MAAIC,QAAQ,MACNC,SAASF,MAAMG,cAAcC,0BAAAA,MAAAA,QAAO,qBAAGJ,MAAMG,WAAW,CAAA,IAAI,SAACE,GAAAA;WAAcA;KAEVL,cAAAA,MAAMM,MAAlEC,QAA4DP,YAA/DQ,GAAaC,QAAkDT,YAArDU,GAAkBC,aAAmCX,YAA3CY,QAA4BC,aAAeb,YAAvBc,QACed,YAAAA,MAAMe,IAA1DC,MAAoDhB,UAAvDQ,GAAWS,MAA4CjB,UAA/CU,GAAgBQ,WAA+BlB,UAAvCY,QAA0BO,WAAanB,UAArBc;AAE1C,WAASM,MAAMC,WAAS;AACtB,IAAKpB,UAAOA,QAAQoB;AACpB,QAAMC,WAAWD,YAAYpB,OACvBO,IACJQ,QAAQO,SACJhB,SAAUS,MAAMT,SAAUL,OAAOoB,WAAWtB,MAAMwB,QAAQ,IAC1DD,QACAb,IACJO,QAAQM,SACJd,SAAUQ,MAAMR,SAAUP,OAAOoB,WAAWtB,MAAMwB,QAAQ,IAC1DD,QACAX,SACJM,aAAaK,SACTZ,cAAeO,WAAWP,cAAeT,OAAOoB,WAAWtB,MAAMwB,QAAQ,IACzED,QACAT,SACJK,aAAaI,SACTV,cAAeM,WAAWN,cAAeX,OAAOoB,WAAWtB,MAAMwB,QAAQ,IACzED;AACNvB,UAAMyB,SAAS;MAAEjB;MAAGE;MAAGE;MAAQE;IAAO,CAAA,GAElCQ,WAAWtB,MAAMwB,YACnBE,sBAAsBN,KAAAA;EAE1B;AACAM,wBAAsBN,KAAAA;AACxB;",
5
+ "names": ["animate", "param", "start", "easing", "cubicBezier", "bezier", "v", "from", "fromX", "x", "fromY", "y", "fromScaleX", "scaleX", "fromScaleY", "scaleY", "to", "toX", "toY", "toScaleX", "toScaleY", "frame", "timestamp", "progress", "undefined", "duration", "onUpdate", "requestAnimationFrame"]
6
6
  }
@@ -1,4 +1,4 @@
1
- const float32ArraySupported = typeof Float32Array == "function";
1
+ var NEWTON_ITERATIONS = 4, NEWTON_MIN_SLOPE = 1e-3, SUBDIVISION_PRECISION = 1e-7, SUBDIVISION_MAX_ITERATIONS = 10, kSplineTableSize = 11, kSampleStepSize = 1 / (kSplineTableSize - 1), float32ArraySupported = typeof Float32Array == "function";
2
2
  function A(aA1, aA2) {
3
3
  return 1 - 3 * aA2 + 3 * aA1;
4
4
  }
@@ -15,18 +15,18 @@ function getSlope(aT, aA1, aA2) {
15
15
  return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
16
16
  }
17
17
  function binarySubdivide(aX, aA, aB, mX1, mX2) {
18
- let currentX, currentT, i = 0;
18
+ var currentX, currentT, i = 0;
19
19
  do
20
20
  currentT = aA + (aB - aA) / 2, currentX = calcBezier(currentT, mX1, mX2) - aX, currentX > 0 ? aB = currentT : aA = currentT;
21
- while (Math.abs(currentX) > 1e-7 && ++i < 10);
21
+ while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);
22
22
  return currentT;
23
23
  }
24
24
  function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {
25
- for (let i = 0; i < 4; ++i) {
26
- const currentSlope = getSlope(aGuessT, mX1, mX2);
25
+ for (var i = 0; i < NEWTON_ITERATIONS; ++i) {
26
+ var currentSlope = getSlope(aGuessT, mX1, mX2);
27
27
  if (currentSlope === 0)
28
28
  return aGuessT;
29
- const currentX = calcBezier(aGuessT, mX1, mX2) - aX;
29
+ var currentX = calcBezier(aGuessT, mX1, mX2) - aX;
30
30
  aGuessT -= currentX / currentSlope;
31
31
  }
32
32
  return aGuessT;
@@ -39,17 +39,14 @@ function bezier(mX1, mY1, mX2, mY2) {
39
39
  throw new Error("bezier x values must be in [0, 1] range");
40
40
  if (mX1 === mY1 && mX2 === mY2)
41
41
  return LinearEasing;
42
- const sampleValues = float32ArraySupported ? new Float32Array(11) : new Array(11);
43
- for (let i = 0; i < 11; ++i)
44
- sampleValues[i] = calcBezier(i * 0.1, mX1, mX2);
42
+ for (var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize), i = 0; i < kSplineTableSize; ++i)
43
+ sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
45
44
  function getTForX(aX) {
46
- let intervalStart = 0, currentSample = 1;
47
- const lastSample = 10;
48
- for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample)
49
- intervalStart += 0.1;
45
+ for (var intervalStart = 0, currentSample = 1, lastSample = kSplineTableSize - 1; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample)
46
+ intervalStart += kSampleStepSize;
50
47
  --currentSample;
51
- const dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]), guessForT = intervalStart + dist * 0.1, initialSlope = getSlope(guessForT, mX1, mX2);
52
- return initialSlope >= 1e-3 ? newtonRaphsonIterate(aX, guessForT, mX1, mX2) : initialSlope === 0 ? guessForT : binarySubdivide(aX, intervalStart, intervalStart + 0.1, mX1, mX2);
48
+ var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]), guessForT = intervalStart + dist * kSampleStepSize, initialSlope = getSlope(guessForT, mX1, mX2);
49
+ return initialSlope >= NEWTON_MIN_SLOPE ? newtonRaphsonIterate(aX, guessForT, mX1, mX2) : initialSlope === 0 ? guessForT : binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
53
50
  }
54
51
  return function(x) {
55
52
  return x === 0 || x === 1 ? x : calcBezier(getTForX(x), mY1, mY2);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/cubicBezier.tsx"],
4
- "mappings": "AAeA,MAAM,wBAAwB,OAAO,gBAAiB;AAEtD,SAAS,EAAE,KAAa,KAAa;AACnC,SAAO,IAAM,IAAM,MAAM,IAAM;AACjC;AACA,SAAS,EAAE,KAAa,KAAa;AACnC,SAAO,IAAM,MAAM,IAAM;AAC3B;AACA,SAAS,EAAE,KAAa;AACtB,SAAO,IAAM;AACf;AAGA,SAAS,WAAW,IAAY,KAAa,KAAa;AACxD,WAAS,EAAE,KAAK,GAAG,IAAI,KAAK,EAAE,KAAK,GAAG,KAAK,KAAK,EAAE,GAAG,KAAK;AAC5D;AAGA,SAAS,SAAS,IAAY,KAAa,KAAa;AACtD,SAAO,IAAM,EAAE,KAAK,GAAG,IAAI,KAAK,KAAK,IAAM,EAAE,KAAK,GAAG,IAAI,KAAK,EAAE,GAAG;AACrE;AAEA,SAAS,gBAAgB,IAAY,IAAY,IAAY,KAAa,KAAa;AACrF,MAAI,UACA,UACA,IAAI;AACR;AACE,eAAW,MAAM,KAAK,MAAM,GAC5B,WAAW,WAAW,UAAU,KAAK,GAAG,IAAI,IACxC,WAAW,IACb,KAAK,WAEL,KAAK;AAAA,SAEA,KAAK,IAAI,QAAQ,IAAI,QAAyB,EAAE,IAAI;AAC7D,SAAO;AACT;AAEA,SAAS,qBAAqB,IAAY,SAAiB,KAAa,KAAa;AACnF,WAAS,IAAI,GAAG,IAAI,GAAmB,EAAE,GAAG;AAC1C,UAAM,eAAe,SAAS,SAAS,KAAK,GAAG;AAC/C,QAAI,iBAAiB;AACnB,aAAO;AAET,UAAM,WAAW,WAAW,SAAS,KAAK,GAAG,IAAI;AACjD,eAAW,WAAW;AAAA,EACxB;AACA,SAAO;AACT;AAEA,SAAS,aAAa,GAAW;AAC/B,SAAO;AACT;AAEO,SAAS,OAAO,KAAa,KAAa,KAAa,KAAa;AACzE,MAAI,EAAE,KAAK,OAAO,OAAO,KAAK,KAAK,OAAO,OAAO;AAC/C,UAAM,IAAI,MAAM,yCAAyC;AAG3D,MAAI,QAAQ,OAAO,QAAQ;AACzB,WAAO;AAIT,QAAM,eAAe,wBACjB,IAAI,aAAa,EAAgB,IACjC,IAAI,MAAM,EAAgB;AAC9B,WAAS,IAAI,GAAG,IAAI,IAAkB,EAAE;AACtC,iBAAa,CAAC,IAAI,WAAW,IAAI,KAAiB,KAAK,GAAG;AAG5D,WAAS,SAAS,IAAI;AACpB,QAAI,gBAAgB,GAChB,gBAAgB;AACpB,UAAM,aAAa;AAEnB,WAEE,kBAAkB,cAAc,aAAa,aAAa,KAAK,IAC/D,EAAE;AAEF,uBAAiB;AAEnB,MAAE;AAGF,UAAM,QACH,KAAK,aAAa,aAAa,MAC/B,aAAa,gBAAgB,CAAC,IAAI,aAAa,aAAa,IACzD,YAAY,gBAAgB,OAAO,KAEnC,eAAe,SAAS,WAAW,KAAK,GAAG;AACjD,WAAI,gBAAgB,OACX,qBAAqB,IAAI,WAAW,KAAK,GAAG,IAEjD,iBAAiB,IACZ,YAEF,gBAAgB,IAAI,eAAe,gBAAgB,KAAiB,KAAK,GAAG;AAAA,EACrF;AAEA,SAAO,SAAsB,GAAW;AAEtC,WAAI,MAAM,KAAK,MAAM,IACZ,IAEF,WAAW,SAAS,CAAC,GAAG,KAAK,GAAG;AAAA,EACzC;AACF;",
5
- "names": []
3
+ "sources": ["../../src/Users/n8/tamagui/packages/cubic-bezier-animator/src/cubicBezier.tsx"],
4
+ "mappings": "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",
5
+ "names": ["NEWTON_ITERATIONS", "NEWTON_MIN_SLOPE", "SUBDIVISION_PRECISION", "SUBDIVISION_MAX_ITERATIONS", "kSplineTableSize", "kSampleStepSize", "float32ArraySupported", "Float32Array", "A", "aA1", "aA2", "B", "C", "calcBezier", "aT", "getSlope", "binarySubdivide", "aX", "aA", "aB", "mX1", "mX2", "currentX", "currentT", "i", "Math", "abs", "newtonRaphsonIterate", "aGuessT", "currentSlope", "LinearEasing", "x", "bezier", "mY1", "mY2", "Error", "sampleValues", "Array", "getTForX", "intervalStart", "currentSample", "lastSample", "dist", "guessForT", "initialSlope"]
6
6
  }
@@ -1,11 +1,48 @@
1
1
  import { bezier } from "./cubicBezier";
2
+ function _array_like_to_array(arr, len) {
3
+ (len == null || len > arr.length) && (len = arr.length);
4
+ for (var i = 0, arr2 = new Array(len); i < len; i++)
5
+ arr2[i] = arr[i];
6
+ return arr2;
7
+ }
8
+ function _array_without_holes(arr) {
9
+ if (Array.isArray(arr))
10
+ return _array_like_to_array(arr);
11
+ }
12
+ function _iterable_to_array(iter) {
13
+ if (typeof Symbol < "u" && iter[Symbol.iterator] != null || iter["@@iterator"] != null)
14
+ return Array.from(iter);
15
+ }
16
+ function _non_iterable_spread() {
17
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
18
+ }
19
+ function _to_consumable_array(arr) {
20
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
21
+ }
22
+ function _unsupported_iterable_to_array(o, minLen) {
23
+ if (o) {
24
+ if (typeof o == "string")
25
+ return _array_like_to_array(o, minLen);
26
+ var n = Object.prototype.toString.call(o).slice(8, -1);
27
+ if (n === "Object" && o.constructor && (n = o.constructor.name), n === "Map" || n === "Set")
28
+ return Array.from(n);
29
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
30
+ return _array_like_to_array(o, minLen);
31
+ }
32
+ }
2
33
  function animate(param) {
3
- let start = null;
4
- const easing = param.cubicBezier ? bezier(...param.cubicBezier) : (v) => v, { x: fromX, y: fromY, scaleX: fromScaleX, scaleY: fromScaleY } = param.from, { x: toX, y: toY, scaleX: toScaleX, scaleY: toScaleY } = param.to;
34
+ var start = null, easing = param.cubicBezier ? bezier.apply(void 0, _to_consumable_array(param.cubicBezier)) : function(v) {
35
+ return v;
36
+ }, _param_from = param.from, fromX = _param_from.x, fromY = _param_from.y, fromScaleX = _param_from.scaleX, fromScaleY = _param_from.scaleY, _param_to = param.to, toX = _param_to.x, toY = _param_to.y, toScaleX = _param_to.scaleX, toScaleY = _param_to.scaleY;
5
37
  function frame(timestamp) {
6
38
  start || (start = timestamp);
7
- const progress = timestamp - start, x = toX !== void 0 ? fromX + (toX - fromX) * easing(progress / param.duration) : void 0, y = toY !== void 0 ? fromY + (toY - fromY) * easing(progress / param.duration) : void 0, scaleX = toScaleX !== void 0 ? fromScaleX + (toScaleX - fromScaleX) * easing(progress / param.duration) : void 0, scaleY = toScaleY !== void 0 ? fromScaleY + (toScaleY - fromScaleY) * easing(progress / param.duration) : void 0;
8
- param.onUpdate({ x, y, scaleX, scaleY }), progress < param.duration && requestAnimationFrame(frame);
39
+ var progress = timestamp - start, x = toX !== void 0 ? fromX + (toX - fromX) * easing(progress / param.duration) : void 0, y = toY !== void 0 ? fromY + (toY - fromY) * easing(progress / param.duration) : void 0, scaleX = toScaleX !== void 0 ? fromScaleX + (toScaleX - fromScaleX) * easing(progress / param.duration) : void 0, scaleY = toScaleY !== void 0 ? fromScaleY + (toScaleY - fromScaleY) * easing(progress / param.duration) : void 0;
40
+ param.onUpdate({
41
+ x,
42
+ y,
43
+ scaleX,
44
+ scaleY
45
+ }), progress < param.duration && requestAnimationFrame(frame);
9
46
  }
10
47
  requestAnimationFrame(frame);
11
48
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/index.tsx"],
4
- "mappings": "AAAA,SAAS,cAAc;AAiBhB,SAAS,QAAQ,OAAqB;AAC3C,MAAI,QAAQ;AACZ,QAAM,SAAS,MAAM,cAAc,OAAO,GAAG,MAAM,WAAW,IAAI,CAAC,MAAc,GAE3E,EAAE,GAAG,OAAO,GAAG,OAAO,QAAQ,YAAY,QAAQ,WAAW,IAAI,MAAM,MACvE,EAAE,GAAG,KAAK,GAAG,KAAK,QAAQ,UAAU,QAAQ,SAAS,IAAI,MAAM;AAErE,WAAS,MAAM,WAAW;AACxB,IAAK,UAAO,QAAQ;AACpB,UAAM,WAAW,YAAY,OACvB,IACJ,QAAQ,SACJ,SAAU,MAAM,SAAU,OAAO,WAAW,MAAM,QAAQ,IAC1D,QACA,IACJ,QAAQ,SACJ,SAAU,MAAM,SAAU,OAAO,WAAW,MAAM,QAAQ,IAC1D,QACA,SACJ,aAAa,SACT,cAAe,WAAW,cAAe,OAAO,WAAW,MAAM,QAAQ,IACzE,QACA,SACJ,aAAa,SACT,cAAe,WAAW,cAAe,OAAO,WAAW,MAAM,QAAQ,IACzE;AACN,UAAM,SAAS,EAAE,GAAG,GAAG,QAAQ,OAAO,CAAC,GAEnC,WAAW,MAAM,YACnB,sBAAsB,KAAK;AAAA,EAE/B;AACA,wBAAsB,KAAK;AAC7B;",
5
- "names": []
3
+ "sources": ["../../src/Users/n8/tamagui/packages/cubic-bezier-animator/src/index.tsx"],
4
+ "mappings": "AAAA,SAASA,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBhB,SAASC,QAAQC,OAAmB;AACzC,MAAIC,QAAQ,MACNC,SAASF,MAAMG,cAAcL,OAAAA,MAAAA,QAAO,qBAAGE,MAAMG,WAAW,CAAA,IAAI,SAACC,GAAAA;WAAcA;KAEVJ,cAAAA,MAAMK,MAAlEC,QAA4DN,YAA/DO,GAAaC,QAAkDR,YAArDS,GAAkBC,aAAmCV,YAA3CW,QAA4BC,aAAeZ,YAAvBa,QACeb,YAAAA,MAAMc,IAA1DC,MAAoDf,UAAvDO,GAAWS,MAA4ChB,UAA/CS,GAAgBQ,WAA+BjB,UAAvCW,QAA0BO,WAAalB,UAArBa;AAE1C,WAASM,MAAMC,WAAS;AACtB,IAAKnB,UAAOA,QAAQmB;AACpB,QAAMC,WAAWD,YAAYnB,OACvBM,IACJQ,QAAQO,SACJhB,SAAUS,MAAMT,SAAUJ,OAAOmB,WAAWrB,MAAMuB,QAAQ,IAC1DD,QACAb,IACJO,QAAQM,SACJd,SAAUQ,MAAMR,SAAUN,OAAOmB,WAAWrB,MAAMuB,QAAQ,IAC1DD,QACAX,SACJM,aAAaK,SACTZ,cAAeO,WAAWP,cAAeR,OAAOmB,WAAWrB,MAAMuB,QAAQ,IACzED,QACAT,SACJK,aAAaI,SACTV,cAAeM,WAAWN,cAAeV,OAAOmB,WAAWrB,MAAMuB,QAAQ,IACzED;AACNtB,UAAMwB,SAAS;MAAEjB;MAAGE;MAAGE;MAAQE;IAAO,CAAA,GAElCQ,WAAWrB,MAAMuB,YACnBE,sBAAsBN,KAAAA;EAE1B;AACAM,wBAAsBN,KAAAA;AACxB;",
5
+ "names": ["bezier", "animate", "param", "start", "easing", "cubicBezier", "v", "from", "fromX", "x", "fromY", "y", "fromScaleX", "scaleX", "fromScaleY", "scaleY", "to", "toX", "toY", "toScaleX", "toScaleY", "frame", "timestamp", "progress", "undefined", "duration", "onUpdate", "requestAnimationFrame"]
6
6
  }
@@ -1,4 +1,4 @@
1
- const float32ArraySupported = typeof Float32Array == "function";
1
+ var NEWTON_ITERATIONS = 4, NEWTON_MIN_SLOPE = 1e-3, SUBDIVISION_PRECISION = 1e-7, SUBDIVISION_MAX_ITERATIONS = 10, kSplineTableSize = 11, kSampleStepSize = 1 / (kSplineTableSize - 1), float32ArraySupported = typeof Float32Array == "function";
2
2
  function A(aA1, aA2) {
3
3
  return 1 - 3 * aA2 + 3 * aA1;
4
4
  }
@@ -15,18 +15,18 @@ function getSlope(aT, aA1, aA2) {
15
15
  return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
16
16
  }
17
17
  function binarySubdivide(aX, aA, aB, mX1, mX2) {
18
- let currentX, currentT, i = 0;
18
+ var currentX, currentT, i = 0;
19
19
  do
20
20
  currentT = aA + (aB - aA) / 2, currentX = calcBezier(currentT, mX1, mX2) - aX, currentX > 0 ? aB = currentT : aA = currentT;
21
- while (Math.abs(currentX) > 1e-7 && ++i < 10);
21
+ while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);
22
22
  return currentT;
23
23
  }
24
24
  function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {
25
- for (let i = 0; i < 4; ++i) {
26
- const currentSlope = getSlope(aGuessT, mX1, mX2);
25
+ for (var i = 0; i < NEWTON_ITERATIONS; ++i) {
26
+ var currentSlope = getSlope(aGuessT, mX1, mX2);
27
27
  if (currentSlope === 0)
28
28
  return aGuessT;
29
- const currentX = calcBezier(aGuessT, mX1, mX2) - aX;
29
+ var currentX = calcBezier(aGuessT, mX1, mX2) - aX;
30
30
  aGuessT -= currentX / currentSlope;
31
31
  }
32
32
  return aGuessT;
@@ -39,17 +39,14 @@ function bezier(mX1, mY1, mX2, mY2) {
39
39
  throw new Error("bezier x values must be in [0, 1] range");
40
40
  if (mX1 === mY1 && mX2 === mY2)
41
41
  return LinearEasing;
42
- const sampleValues = float32ArraySupported ? new Float32Array(11) : new Array(11);
43
- for (let i = 0; i < 11; ++i)
44
- sampleValues[i] = calcBezier(i * 0.1, mX1, mX2);
42
+ for (var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize), i = 0; i < kSplineTableSize; ++i)
43
+ sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
45
44
  function getTForX(aX) {
46
- let intervalStart = 0, currentSample = 1;
47
- const lastSample = 10;
48
- for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample)
49
- intervalStart += 0.1;
45
+ for (var intervalStart = 0, currentSample = 1, lastSample = kSplineTableSize - 1; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample)
46
+ intervalStart += kSampleStepSize;
50
47
  --currentSample;
51
- const dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]), guessForT = intervalStart + dist * 0.1, initialSlope = getSlope(guessForT, mX1, mX2);
52
- return initialSlope >= 1e-3 ? newtonRaphsonIterate(aX, guessForT, mX1, mX2) : initialSlope === 0 ? guessForT : binarySubdivide(aX, intervalStart, intervalStart + 0.1, mX1, mX2);
48
+ var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]), guessForT = intervalStart + dist * kSampleStepSize, initialSlope = getSlope(guessForT, mX1, mX2);
49
+ return initialSlope >= NEWTON_MIN_SLOPE ? newtonRaphsonIterate(aX, guessForT, mX1, mX2) : initialSlope === 0 ? guessForT : binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
53
50
  }
54
51
  return function(x) {
55
52
  return x === 0 || x === 1 ? x : calcBezier(getTForX(x), mY1, mY2);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/cubicBezier.tsx"],
4
- "mappings": "AAeA,MAAM,wBAAwB,OAAO,gBAAiB;AAEtD,SAAS,EAAE,KAAa,KAAa;AACnC,SAAO,IAAM,IAAM,MAAM,IAAM;AACjC;AACA,SAAS,EAAE,KAAa,KAAa;AACnC,SAAO,IAAM,MAAM,IAAM;AAC3B;AACA,SAAS,EAAE,KAAa;AACtB,SAAO,IAAM;AACf;AAGA,SAAS,WAAW,IAAY,KAAa,KAAa;AACxD,WAAS,EAAE,KAAK,GAAG,IAAI,KAAK,EAAE,KAAK,GAAG,KAAK,KAAK,EAAE,GAAG,KAAK;AAC5D;AAGA,SAAS,SAAS,IAAY,KAAa,KAAa;AACtD,SAAO,IAAM,EAAE,KAAK,GAAG,IAAI,KAAK,KAAK,IAAM,EAAE,KAAK,GAAG,IAAI,KAAK,EAAE,GAAG;AACrE;AAEA,SAAS,gBAAgB,IAAY,IAAY,IAAY,KAAa,KAAa;AACrF,MAAI,UACA,UACA,IAAI;AACR;AACE,eAAW,MAAM,KAAK,MAAM,GAC5B,WAAW,WAAW,UAAU,KAAK,GAAG,IAAI,IACxC,WAAW,IACb,KAAK,WAEL,KAAK;AAAA,SAEA,KAAK,IAAI,QAAQ,IAAI,QAAyB,EAAE,IAAI;AAC7D,SAAO;AACT;AAEA,SAAS,qBAAqB,IAAY,SAAiB,KAAa,KAAa;AACnF,WAAS,IAAI,GAAG,IAAI,GAAmB,EAAE,GAAG;AAC1C,UAAM,eAAe,SAAS,SAAS,KAAK,GAAG;AAC/C,QAAI,iBAAiB;AACnB,aAAO;AAET,UAAM,WAAW,WAAW,SAAS,KAAK,GAAG,IAAI;AACjD,eAAW,WAAW;AAAA,EACxB;AACA,SAAO;AACT;AAEA,SAAS,aAAa,GAAW;AAC/B,SAAO;AACT;AAEO,SAAS,OAAO,KAAa,KAAa,KAAa,KAAa;AACzE,MAAI,EAAE,KAAK,OAAO,OAAO,KAAK,KAAK,OAAO,OAAO;AAC/C,UAAM,IAAI,MAAM,yCAAyC;AAG3D,MAAI,QAAQ,OAAO,QAAQ;AACzB,WAAO;AAIT,QAAM,eAAe,wBACjB,IAAI,aAAa,EAAgB,IACjC,IAAI,MAAM,EAAgB;AAC9B,WAAS,IAAI,GAAG,IAAI,IAAkB,EAAE;AACtC,iBAAa,CAAC,IAAI,WAAW,IAAI,KAAiB,KAAK,GAAG;AAG5D,WAAS,SAAS,IAAI;AACpB,QAAI,gBAAgB,GAChB,gBAAgB;AACpB,UAAM,aAAa;AAEnB,WAEE,kBAAkB,cAAc,aAAa,aAAa,KAAK,IAC/D,EAAE;AAEF,uBAAiB;AAEnB,MAAE;AAGF,UAAM,QACH,KAAK,aAAa,aAAa,MAC/B,aAAa,gBAAgB,CAAC,IAAI,aAAa,aAAa,IACzD,YAAY,gBAAgB,OAAO,KAEnC,eAAe,SAAS,WAAW,KAAK,GAAG;AACjD,WAAI,gBAAgB,OACX,qBAAqB,IAAI,WAAW,KAAK,GAAG,IAEjD,iBAAiB,IACZ,YAEF,gBAAgB,IAAI,eAAe,gBAAgB,KAAiB,KAAK,GAAG;AAAA,EACrF;AAEA,SAAO,SAAsB,GAAW;AAEtC,WAAI,MAAM,KAAK,MAAM,IACZ,IAEF,WAAW,SAAS,CAAC,GAAG,KAAK,GAAG;AAAA,EACzC;AACF;",
5
- "names": []
3
+ "sources": ["../../src/Users/n8/tamagui/packages/cubic-bezier-animator/src/cubicBezier.tsx"],
4
+ "mappings": "AAOA,IAAMA,oBAAoB,GACpBC,mBAAmB,MACnBC,wBAAwB,MACxBC,6BAA6B,IAE7BC,mBAAmB,IACnBC,kBAAkB,KAAOD,mBAAmB,IAE5CE,wBAAwB,OAAOC,gBAAiB;AAEtD,SAASC,EAAEC,KAAaC,KAAW;AACjC,SAAO,IAAM,IAAMA,MAAM,IAAMD;AACjC;AACA,SAASE,EAAEF,KAAaC,KAAW;AACjC,SAAO,IAAMA,MAAM,IAAMD;AAC3B;AACA,SAASG,EAAEH,KAAW;AACpB,SAAO,IAAMA;AACf;AAGA,SAASI,WAAWC,IAAYL,KAAaC,KAAW;AACtD,WAASF,EAAEC,KAAKC,GAAAA,IAAOI,KAAKH,EAAEF,KAAKC,GAAAA,KAAQI,KAAKF,EAAEH,GAAAA,KAAQK;AAC5D;AAGA,SAASC,SAASD,IAAYL,KAAaC,KAAW;AACpD,SAAO,IAAMF,EAAEC,KAAKC,GAAAA,IAAOI,KAAKA,KAAK,IAAMH,EAAEF,KAAKC,GAAAA,IAAOI,KAAKF,EAAEH,GAAAA;AAClE;AAEA,SAASO,gBAAgBC,IAAYC,IAAYC,IAAYC,KAAaC,KAAW;AACnF,MAAIC,UACAC,UACAC,IAAI;AACR;AACED,eAAWL,MAAMC,KAAKD,MAAM,GAC5BI,WAAWT,WAAWU,UAAUH,KAAKC,GAAAA,IAAOJ,IACxCK,WAAW,IACbH,KAAKI,WAELL,KAAKK;SAEAE,KAAKC,IAAIJ,QAAAA,IAAYpB,yBAAyB,EAAEsB,IAAIrB;AAC7D,SAAOoB;AACT;AAEA,SAASI,qBAAqBV,IAAYW,SAAiBR,KAAaC,KAAW;AACjF,WAASG,IAAI,GAAGA,IAAIxB,mBAAmB,EAAEwB,GAAG;AAC1C,QAAMK,eAAed,SAASa,SAASR,KAAKC,GAAAA;AAC5C,QAAIQ,iBAAiB;AACnB,aAAOD;AAET,QAAMN,WAAWT,WAAWe,SAASR,KAAKC,GAAAA,IAAOJ;AACjDW,eAAWN,WAAWO;EACxB;AACA,SAAOD;AACT;AAEA,SAASE,aAAaC,GAAS;AAC7B,SAAOA;AACT;AAEO,SAASC,OAAOZ,KAAaa,KAAaZ,KAAaa,KAAW;AACvE,MAAI,EAAE,KAAKd,OAAOA,OAAO,KAAK,KAAKC,OAAOA,OAAO;AAC/C,UAAM,IAAIc,MAAM,yCAAA;AAGlB,MAAIf,QAAQa,OAAOZ,QAAQa;AACzB,WAAOJ;AAOT,WAHMM,eAAe9B,wBACjB,IAAIC,aAAaH,gBAAAA,IACjB,IAAIiC,MAAMjC,gBAAAA,GACLoB,IAAI,GAAGA,IAAIpB,kBAAkB,EAAEoB;AACtCY,iBAAaZ,CAAAA,IAAKX,WAAWW,IAAInB,iBAAiBe,KAAKC,GAAAA;AAGzD,WAASiB,SAASrB,IAAE;AAKlB,aAJIsB,gBAAgB,GAChBC,gBAAgB,GACdC,aAAarC,mBAAmB,GAIpCoC,kBAAkBC,cAAcL,aAAaI,aAAAA,KAAkBvB,IAC/D,EAAEuB;AAEFD,uBAAiBlC;AAEnB,MAAEmC;AAGF,QAAME,QACHzB,KAAKmB,aAAaI,aAAAA,MAClBJ,aAAaI,gBAAgB,CAAA,IAAKJ,aAAaI,aAAAA,IAC5CG,YAAYJ,gBAAgBG,OAAOrC,iBAEnCuC,eAAe7B,SAAS4B,WAAWvB,KAAKC,GAAAA;AAC9C,WAAIuB,gBAAgB3C,mBACX0B,qBAAqBV,IAAI0B,WAAWvB,KAAKC,GAAAA,IAE9CuB,iBAAiB,IACZD,YAEF3B,gBAAgBC,IAAIsB,eAAeA,gBAAgBlC,iBAAiBe,KAAKC,GAAAA;EAClF;AAEA,SAAO,SAAsBU,GAAS;AAEpC,WAAIA,MAAM,KAAKA,MAAM,IACZA,IAEFlB,WAAWyB,SAASP,CAAAA,GAAIE,KAAKC,GAAAA;EACtC;AACF;",
5
+ "names": ["NEWTON_ITERATIONS", "NEWTON_MIN_SLOPE", "SUBDIVISION_PRECISION", "SUBDIVISION_MAX_ITERATIONS", "kSplineTableSize", "kSampleStepSize", "float32ArraySupported", "Float32Array", "A", "aA1", "aA2", "B", "C", "calcBezier", "aT", "getSlope", "binarySubdivide", "aX", "aA", "aB", "mX1", "mX2", "currentX", "currentT", "i", "Math", "abs", "newtonRaphsonIterate", "aGuessT", "currentSlope", "LinearEasing", "x", "bezier", "mY1", "mY2", "Error", "sampleValues", "Array", "getTForX", "intervalStart", "currentSample", "lastSample", "dist", "guessForT", "initialSlope"]
6
6
  }
@@ -1,11 +1,48 @@
1
1
  import { bezier } from "./cubicBezier";
2
+ function _array_like_to_array(arr, len) {
3
+ (len == null || len > arr.length) && (len = arr.length);
4
+ for (var i = 0, arr2 = new Array(len); i < len; i++)
5
+ arr2[i] = arr[i];
6
+ return arr2;
7
+ }
8
+ function _array_without_holes(arr) {
9
+ if (Array.isArray(arr))
10
+ return _array_like_to_array(arr);
11
+ }
12
+ function _iterable_to_array(iter) {
13
+ if (typeof Symbol < "u" && iter[Symbol.iterator] != null || iter["@@iterator"] != null)
14
+ return Array.from(iter);
15
+ }
16
+ function _non_iterable_spread() {
17
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
18
+ }
19
+ function _to_consumable_array(arr) {
20
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
21
+ }
22
+ function _unsupported_iterable_to_array(o, minLen) {
23
+ if (o) {
24
+ if (typeof o == "string")
25
+ return _array_like_to_array(o, minLen);
26
+ var n = Object.prototype.toString.call(o).slice(8, -1);
27
+ if (n === "Object" && o.constructor && (n = o.constructor.name), n === "Map" || n === "Set")
28
+ return Array.from(n);
29
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
30
+ return _array_like_to_array(o, minLen);
31
+ }
32
+ }
2
33
  function animate(param) {
3
- let start = null;
4
- const easing = param.cubicBezier ? bezier(...param.cubicBezier) : (v) => v, { x: fromX, y: fromY, scaleX: fromScaleX, scaleY: fromScaleY } = param.from, { x: toX, y: toY, scaleX: toScaleX, scaleY: toScaleY } = param.to;
34
+ var start = null, easing = param.cubicBezier ? bezier.apply(void 0, _to_consumable_array(param.cubicBezier)) : function(v) {
35
+ return v;
36
+ }, _param_from = param.from, fromX = _param_from.x, fromY = _param_from.y, fromScaleX = _param_from.scaleX, fromScaleY = _param_from.scaleY, _param_to = param.to, toX = _param_to.x, toY = _param_to.y, toScaleX = _param_to.scaleX, toScaleY = _param_to.scaleY;
5
37
  function frame(timestamp) {
6
38
  start || (start = timestamp);
7
- const progress = timestamp - start, x = toX !== void 0 ? fromX + (toX - fromX) * easing(progress / param.duration) : void 0, y = toY !== void 0 ? fromY + (toY - fromY) * easing(progress / param.duration) : void 0, scaleX = toScaleX !== void 0 ? fromScaleX + (toScaleX - fromScaleX) * easing(progress / param.duration) : void 0, scaleY = toScaleY !== void 0 ? fromScaleY + (toScaleY - fromScaleY) * easing(progress / param.duration) : void 0;
8
- param.onUpdate({ x, y, scaleX, scaleY }), progress < param.duration && requestAnimationFrame(frame);
39
+ var progress = timestamp - start, x = toX !== void 0 ? fromX + (toX - fromX) * easing(progress / param.duration) : void 0, y = toY !== void 0 ? fromY + (toY - fromY) * easing(progress / param.duration) : void 0, scaleX = toScaleX !== void 0 ? fromScaleX + (toScaleX - fromScaleX) * easing(progress / param.duration) : void 0, scaleY = toScaleY !== void 0 ? fromScaleY + (toScaleY - fromScaleY) * easing(progress / param.duration) : void 0;
40
+ param.onUpdate({
41
+ x,
42
+ y,
43
+ scaleX,
44
+ scaleY
45
+ }), progress < param.duration && requestAnimationFrame(frame);
9
46
  }
10
47
  requestAnimationFrame(frame);
11
48
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/index.tsx"],
4
- "mappings": "AAAA,SAAS,cAAc;AAiBhB,SAAS,QAAQ,OAAqB;AAC3C,MAAI,QAAQ;AACZ,QAAM,SAAS,MAAM,cAAc,OAAO,GAAG,MAAM,WAAW,IAAI,CAAC,MAAc,GAE3E,EAAE,GAAG,OAAO,GAAG,OAAO,QAAQ,YAAY,QAAQ,WAAW,IAAI,MAAM,MACvE,EAAE,GAAG,KAAK,GAAG,KAAK,QAAQ,UAAU,QAAQ,SAAS,IAAI,MAAM;AAErE,WAAS,MAAM,WAAW;AACxB,IAAK,UAAO,QAAQ;AACpB,UAAM,WAAW,YAAY,OACvB,IACJ,QAAQ,SACJ,SAAU,MAAM,SAAU,OAAO,WAAW,MAAM,QAAQ,IAC1D,QACA,IACJ,QAAQ,SACJ,SAAU,MAAM,SAAU,OAAO,WAAW,MAAM,QAAQ,IAC1D,QACA,SACJ,aAAa,SACT,cAAe,WAAW,cAAe,OAAO,WAAW,MAAM,QAAQ,IACzE,QACA,SACJ,aAAa,SACT,cAAe,WAAW,cAAe,OAAO,WAAW,MAAM,QAAQ,IACzE;AACN,UAAM,SAAS,EAAE,GAAG,GAAG,QAAQ,OAAO,CAAC,GAEnC,WAAW,MAAM,YACnB,sBAAsB,KAAK;AAAA,EAE/B;AACA,wBAAsB,KAAK;AAC7B;",
5
- "names": []
3
+ "sources": ["../../src/Users/n8/tamagui/packages/cubic-bezier-animator/src/index.tsx"],
4
+ "mappings": "AAAA,SAASA,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBhB,SAASC,QAAQC,OAAmB;AACzC,MAAIC,QAAQ,MACNC,SAASF,MAAMG,cAAcL,OAAAA,MAAAA,QAAO,qBAAGE,MAAMG,WAAW,CAAA,IAAI,SAACC,GAAAA;WAAcA;KAEVJ,cAAAA,MAAMK,MAAlEC,QAA4DN,YAA/DO,GAAaC,QAAkDR,YAArDS,GAAkBC,aAAmCV,YAA3CW,QAA4BC,aAAeZ,YAAvBa,QACeb,YAAAA,MAAMc,IAA1DC,MAAoDf,UAAvDO,GAAWS,MAA4ChB,UAA/CS,GAAgBQ,WAA+BjB,UAAvCW,QAA0BO,WAAalB,UAArBa;AAE1C,WAASM,MAAMC,WAAS;AACtB,IAAKnB,UAAOA,QAAQmB;AACpB,QAAMC,WAAWD,YAAYnB,OACvBM,IACJQ,QAAQO,SACJhB,SAAUS,MAAMT,SAAUJ,OAAOmB,WAAWrB,MAAMuB,QAAQ,IAC1DD,QACAb,IACJO,QAAQM,SACJd,SAAUQ,MAAMR,SAAUN,OAAOmB,WAAWrB,MAAMuB,QAAQ,IAC1DD,QACAX,SACJM,aAAaK,SACTZ,cAAeO,WAAWP,cAAeR,OAAOmB,WAAWrB,MAAMuB,QAAQ,IACzED,QACAT,SACJK,aAAaI,SACTV,cAAeM,WAAWN,cAAeV,OAAOmB,WAAWrB,MAAMuB,QAAQ,IACzED;AACNtB,UAAMwB,SAAS;MAAEjB;MAAGE;MAAGE;MAAQE;IAAO,CAAA,GAElCQ,WAAWrB,MAAMuB,YACnBE,sBAAsBN,KAAAA;EAE1B;AACAM,wBAAsBN,KAAAA;AACxB;",
5
+ "names": ["bezier", "animate", "param", "start", "easing", "cubicBezier", "v", "from", "fromX", "x", "fromY", "y", "fromScaleX", "scaleX", "fromScaleY", "scaleY", "to", "toX", "toY", "toScaleX", "toScaleY", "frame", "timestamp", "progress", "undefined", "duration", "onUpdate", "requestAnimationFrame"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/cubic-bezier-animator",
3
- "version": "1.89.26",
3
+ "version": "1.89.27-1708112217600",
4
4
  "sideEffects": false,
5
5
  "source": "src/index.tsx",
6
6
  "types": "./types/index.d.ts",
@@ -21,7 +21,7 @@
21
21
  "clean:build": "tamagui-build clean:build"
22
22
  },
23
23
  "devDependencies": {
24
- "@tamagui/build": "1.89.26"
24
+ "@tamagui/build": "1.89.27-1708112217600"
25
25
  },
26
26
  "exports": {
27
27
  "./package.json": "./package.json",