@hanzogui/cubic-bezier-animator 3.0.6 → 4.3.1

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.
@@ -3,27 +3,35 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
5
  var __export = (target, all) => {
6
- for (var name in all) __defProp(target, name, {
7
- get: all[name],
8
- enumerable: !0
9
- });
10
- },
11
- __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
13
14
  get: () => from[key],
14
15
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
16
  });
16
- return to;
17
- };
17
+ }
18
+ return to;
19
+ };
18
20
  var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
- value: !0
21
+ value: true
20
22
  }), mod);
21
23
  var cubicBezier_exports = {};
22
24
  __export(cubicBezier_exports, {
23
25
  bezier: () => bezier
24
26
  });
25
27
  module.exports = __toCommonJS(cubicBezier_exports);
26
- const float32ArraySupported = typeof Float32Array == "function";
28
+ const NEWTON_ITERATIONS = 4;
29
+ const NEWTON_MIN_SLOPE = 1e-3;
30
+ const SUBDIVISION_PRECISION = 1e-7;
31
+ const SUBDIVISION_MAX_ITERATIONS = 10;
32
+ const kSplineTableSize = 11;
33
+ const kSampleStepSize = 1 / (kSplineTableSize - 1);
34
+ const float32ArraySupported = typeof Float32Array === "function";
27
35
  function A(aA1, aA2) {
28
36
  return 1 - 3 * aA2 + 3 * aA1;
29
37
  }
@@ -40,16 +48,26 @@ function getSlope(aT, aA1, aA2) {
40
48
  return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
41
49
  }
42
50
  function binarySubdivide(aX, aA, aB, mX1, mX2) {
43
- let currentX,
44
- currentT,
45
- i = 0;
46
- do currentT = aA + (aB - aA) / 2, currentX = calcBezier(currentT, mX1, mX2) - aX, currentX > 0 ? aB = currentT : aA = currentT; while (Math.abs(currentX) > 1e-7 && ++i < 10);
51
+ let currentX;
52
+ let currentT;
53
+ let i = 0;
54
+ do {
55
+ currentT = aA + (aB - aA) / 2;
56
+ currentX = calcBezier(currentT, mX1, mX2) - aX;
57
+ if (currentX > 0) {
58
+ aB = currentT;
59
+ } else {
60
+ aA = currentT;
61
+ }
62
+ } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);
47
63
  return currentT;
48
64
  }
49
65
  function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {
50
- for (let i = 0; i < 4; ++i) {
66
+ for (let i = 0; i < NEWTON_ITERATIONS; ++i) {
51
67
  const currentSlope = getSlope(aGuessT, mX1, mX2);
52
- if (currentSlope === 0) return aGuessT;
68
+ if (currentSlope === 0) {
69
+ return aGuessT;
70
+ }
53
71
  const currentX = calcBezier(aGuessT, mX1, mX2) - aX;
54
72
  aGuessT -= currentX / currentSlope;
55
73
  }
@@ -59,22 +77,39 @@ function LinearEasing(x) {
59
77
  return x;
60
78
  }
61
79
  function bezier(mX1, mY1, mX2, mY2) {
62
- if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) throw new Error("bezier x values must be in [0, 1] range");
63
- if (mX1 === mY1 && mX2 === mY2) return LinearEasing;
64
- const sampleValues = float32ArraySupported ? new Float32Array(11) : new Array(11);
65
- for (let i = 0; i < 11; ++i) sampleValues[i] = calcBezier(i * 0.1, mX1, mX2);
80
+ if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {
81
+ throw new Error("bezier x values must be in [0, 1] range");
82
+ }
83
+ if (mX1 === mY1 && mX2 === mY2) {
84
+ return LinearEasing;
85
+ }
86
+ const sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);
87
+ for (let i = 0; i < kSplineTableSize; ++i) {
88
+ sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
89
+ }
66
90
  function getTForX(aX) {
67
- let intervalStart = 0,
68
- currentSample = 1;
69
- const lastSample = 10;
70
- for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) intervalStart += 0.1;
91
+ let intervalStart = 0;
92
+ let currentSample = 1;
93
+ const lastSample = kSplineTableSize - 1;
94
+ for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {
95
+ intervalStart += kSampleStepSize;
96
+ }
71
97
  --currentSample;
72
- const dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]),
73
- guessForT = intervalStart + dist * 0.1,
74
- initialSlope = getSlope(guessForT, mX1, mX2);
75
- return initialSlope >= 1e-3 ? newtonRaphsonIterate(aX, guessForT, mX1, mX2) : initialSlope === 0 ? guessForT : binarySubdivide(aX, intervalStart, intervalStart + 0.1, mX1, mX2);
98
+ const dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);
99
+ const guessForT = intervalStart + dist * kSampleStepSize;
100
+ const initialSlope = getSlope(guessForT, mX1, mX2);
101
+ if (initialSlope >= NEWTON_MIN_SLOPE) {
102
+ return newtonRaphsonIterate(aX, guessForT, mX1, mX2);
103
+ }
104
+ if (initialSlope === 0) {
105
+ return guessForT;
106
+ }
107
+ return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
76
108
  }
77
- return function (x) {
78
- return x === 0 || x === 1 ? x : calcBezier(getTForX(x), mY1, mY2);
109
+ return function BezierEasing(x) {
110
+ if (x === 0 || x === 1) {
111
+ return x;
112
+ }
113
+ return calcBezier(getTForX(x), mY1, mY2);
79
114
  };
80
115
  }
@@ -5,33 +5,35 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: !0
11
- });
12
- },
13
- __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
15
16
  get: () => from[key],
16
17
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
18
  });
18
- return to;
19
- };
19
+ }
20
+ return to;
21
+ };
20
22
  var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
- value: !0
23
+ value: true
22
24
  }), mod);
23
25
  var cubicBezier_exports = {};
24
26
  __export(cubicBezier_exports, {
25
27
  bezier: () => bezier
26
28
  });
27
29
  module.exports = __toCommonJS(cubicBezier_exports);
28
- var NEWTON_ITERATIONS = 4,
29
- NEWTON_MIN_SLOPE = 1e-3,
30
- SUBDIVISION_PRECISION = 1e-7,
31
- SUBDIVISION_MAX_ITERATIONS = 10,
32
- kSplineTableSize = 11,
33
- kSampleStepSize = 1 / (kSplineTableSize - 1),
34
- float32ArraySupported = typeof Float32Array == "function";
30
+ var NEWTON_ITERATIONS = 4;
31
+ var NEWTON_MIN_SLOPE = 1e-3;
32
+ var SUBDIVISION_PRECISION = 1e-7;
33
+ var SUBDIVISION_MAX_ITERATIONS = 10;
34
+ var kSplineTableSize = 11;
35
+ var kSampleStepSize = 1 / (kSplineTableSize - 1);
36
+ var float32ArraySupported = typeof Float32Array === "function";
35
37
  function A(aA1, aA2) {
36
38
  return 1 - 3 * aA2 + 3 * aA1;
37
39
  }
@@ -48,16 +50,26 @@ function getSlope(aT, aA1, aA2) {
48
50
  return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
49
51
  }
50
52
  function binarySubdivide(aX, aA, aB, mX1, mX2) {
51
- var currentX,
52
- currentT,
53
- i = 0;
54
- do currentT = aA + (aB - aA) / 2, currentX = calcBezier(currentT, mX1, mX2) - aX, currentX > 0 ? aB = currentT : aA = currentT; while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);
53
+ var currentX;
54
+ var currentT;
55
+ var i = 0;
56
+ do {
57
+ currentT = aA + (aB - aA) / 2;
58
+ currentX = calcBezier(currentT, mX1, mX2) - aX;
59
+ if (currentX > 0) {
60
+ aB = currentT;
61
+ } else {
62
+ aA = currentT;
63
+ }
64
+ } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);
55
65
  return currentT;
56
66
  }
57
67
  function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {
58
68
  for (var i = 0; i < NEWTON_ITERATIONS; ++i) {
59
69
  var currentSlope = getSlope(aGuessT, mX1, mX2);
60
- if (currentSlope === 0) return aGuessT;
70
+ if (currentSlope === 0) {
71
+ return aGuessT;
72
+ }
61
73
  var currentX = calcBezier(aGuessT, mX1, mX2) - aX;
62
74
  aGuessT -= currentX / currentSlope;
63
75
  }
@@ -67,19 +79,40 @@ function LinearEasing(x) {
67
79
  return x;
68
80
  }
69
81
  function bezier(mX1, mY1, mX2, mY2) {
70
- if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) throw new Error("bezier x values must be in [0, 1] range");
71
- if (mX1 === mY1 && mX2 === mY2) return LinearEasing;
72
- for (var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize), i = 0; i < kSplineTableSize; ++i) sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
82
+ if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {
83
+ throw new Error("bezier x values must be in [0, 1] range");
84
+ }
85
+ if (mX1 === mY1 && mX2 === mY2) {
86
+ return LinearEasing;
87
+ }
88
+ var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);
89
+ for (var i = 0; i < kSplineTableSize; ++i) {
90
+ sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
91
+ }
73
92
  function getTForX(aX) {
74
- for (var intervalStart = 0, currentSample = 1, lastSample = kSplineTableSize - 1; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) intervalStart += kSampleStepSize;
93
+ var intervalStart = 0;
94
+ var currentSample = 1;
95
+ var lastSample = kSplineTableSize - 1;
96
+ for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {
97
+ intervalStart += kSampleStepSize;
98
+ }
75
99
  --currentSample;
76
- var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]),
77
- guessForT = intervalStart + dist * kSampleStepSize,
78
- initialSlope = getSlope(guessForT, mX1, mX2);
79
- return initialSlope >= NEWTON_MIN_SLOPE ? newtonRaphsonIterate(aX, guessForT, mX1, mX2) : initialSlope === 0 ? guessForT : binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
100
+ var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);
101
+ var guessForT = intervalStart + dist * kSampleStepSize;
102
+ var initialSlope = getSlope(guessForT, mX1, mX2);
103
+ if (initialSlope >= NEWTON_MIN_SLOPE) {
104
+ return newtonRaphsonIterate(aX, guessForT, mX1, mX2);
105
+ }
106
+ if (initialSlope === 0) {
107
+ return guessForT;
108
+ }
109
+ return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
80
110
  }
81
- return function (x) {
82
- return x === 0 || x === 1 ? x : calcBezier(getTForX(x), mY1, mY2);
111
+ return function BezierEasing(x) {
112
+ if (x === 0 || x === 1) {
113
+ return x;
114
+ }
115
+ return calcBezier(getTForX(x), mY1, mY2);
83
116
  };
84
117
  }
85
118
  //# sourceMappingURL=cubicBezier.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","cubicBezier_exports","__export","bezier","module","exports","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","mY1","mY2","Error","sampleValues","Array","getTForX","intervalStart","currentSample","lastSample","dist","guessForT","initialSlope"],"sources":["../../src/cubicBezier.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","cubicBezier_exports","__export","bezier","module","exports","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","mY1","mY2","Error","sampleValues","Array","getTForX","intervalStart","currentSample","lastSample","dist","guessForT","initialSlope","BezierEasing"],"sources":["../../src/cubicBezier.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,mBAAA;AAAAC,QAAA,CAAAD,mBAAA;EAAAE,MAAA,EAAAA,CAAA,KAAAA;AAAA;AAOAC,MAAM,CAAAC,OAAA,GAAAT,YAAoB,CAAAK,mBAAA;AAC1B,IAAAK,iBAAM,IAAmB;AACzB,IAAAC,gBAAM;AACN,IAAAC,qBAAM;AAEN,IAAAC,0BAAyB;AACzB,IAAAC,gBAAM,KAAkB;AAExB,IAAAC,eAAM,QAAAD,gBAA+B;AAErC,IAAAE,qBAAqC,UAAAC,YAAA;AACnC,SAAOC,EAAAC,GAAM,EAAAC,GAAM;EACrB,eAAAA,GAAA,OAAAD,GAAA;AACA;AACE,SAAOE,EAAAF,GAAM,EAAAC,GAAM;EACrB,WAAAA,GAAA,OAAAD,GAAA;AACA;AACE,SAAOG,EAAAH,GAAM;EACf,WAAAA,GAAA;AAGA;AACE,SAAAI,UAAgBA,CAAAC,EAAG,EAAAL,GAAI,EAAAC,GAAO;EAChC,SAAAF,CAAA,CAAAC,GAAA,EAAAC,GAAA,IAAAI,EAAA,GAAAH,CAAA,CAAAF,GAAA,EAAAC,GAAA,KAAAI,EAAA,GAAAF,CAAA,CAAAH,GAAA,KAAAK,EAAA;AAGA;AACE,SAAOC,QAAQA,CAAAD,EAAK,EAAAL,GAAG,EAAIC,GAAA,EAAK;EAClC,WAAAF,CAAA,CAAAC,GAAA,EAAAC,GAAA,IAAAI,EAAA,GAAAA,EAAA,OAAAH,CAAA,CAAAF,GAAA,EAAAC,GAAA,IAAAI,EAAA,GAAAF,CAAA,CAAAH,GAAA;AAEA;AACE,SAAIO,gBAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA;EACJ,IAAIC,QAAA;EACJ,IAAIC,QAAI;EACR,IAAGC,CAAA;EACD;IACAD,QAAA,GAAWL,EAAA,IAAAC,EAAA,GAAWD,EAAA;IACtBI,QAAI,GAAAT,UAAgB,CAAAU,QAAA,EAAAH,GAAA,EAAAC,GAAA,IAAAJ,EAAA;IAClB,IAAAK,QAAK;MACPH,EAAA,GAAOI,QAAA;IACL,OAAK;MACPL,EAAA,GAAAK,QAAA;IACF;EACA,SAAOE,IAAA,CAAAC,GAAA,CAAAJ,QAAA,IAAApB,qBAAA,MAAAsB,CAAA,GAAArB,0BAAA;EACT,OAAAoB,QAAA;AAEA;AACE,SAAAI,oBAAoBA,CAAAV,EAAA,EAAAW,OAAmB,EAAER,GAAG,EAAAC,GAAA;EAC1C,SAAMG,CAAA,MAAAA,CAAA,GAAAxB,iBAAwB,IAASwB,CAAA;IACvC,IAAIK,YAAA,GAAAd,QAAsB,CAAAa,OAAA,EAAAR,GAAA,EAAAC,GAAA;IACxB,IAAAQ,YAAO;MACT,OAAAD,OAAA;IACA;IACA,IAAAN,QAAW,GAAAT,UAAW,CAAAe,OAAA,EAAAR,GAAA,EAAAC,GAAA,IAAAJ,EAAA;IACxBW,OAAA,IAAAN,QAAA,GAAAO,YAAA;EACA;EACF,OAAAD,OAAA;AAEA;AACE,SAAOE,aAAAC,CAAA;EACT,OAAAA,CAAA;AAEO;AAML,SAAMlC,MAAKA,CAAAuB,GAAA,EAAOY,GAAA,EAAAX,GAAO,EAAAY,GAAK;EAC5B,WAAMb,GAAI,IAAMA,GAAA,cAAAC,GAAA,IAAAA,GAAA;IAClB,UAAAa,KAAA;EAEA;EACE,IAAAd,GAAA,KAAOY,GAAA,IAAAX,GAAA,KAAAY,GAAA;IACT,OAAAH,YAAA;EAGA;EAGA,IAAAK,YAAgB,GAAA7B,qBAAwB,GAAG,IAAAC,YAAA,CAAAH,gBAAA,QAAAgC,KAAA,CAAAhC,gBAAA;EACzC,SAAAoB,CAAA,MAAcA,CAAA,GAAIpB,gBAAe,IAAAoB,CAAA;IACnCW,YAAA,CAAAX,CAAA,IAAAX,UAAA,CAAAW,CAAA,GAAAnB,eAAA,EAAAe,GAAA,EAAAC,GAAA;EAEA;EACE,SAAIgB,SAAApB,EAAA,EAAgB;IACpB,IAAIqB,aAAA,GAAgB;IACpB,IAAAC,aAAM,GAAa;IAEnB,IAAAC,UAEE,GAAApC,gBAAkB;IAGlB,OAAAmC,aAAiB,KAAAC,UAAA,IAAAL,YAAA,CAAAI,aAAA,KAAAtB,EAAA,IAAAsB,aAAA;MACnBD,aAAA,IAAAjC,eAAA;IACA;IAGA,EAAAkC,aACG;IAEH,IAAAE,IAAM,IAAAxB,EAAA,GAAAkB,YAAY,CAAAI,aAAuB,MAAAJ,YAAA,CAAAI,aAAA,QAAAJ,YAAA,CAAAI,aAAA;IAEzC,IAAAG,SAAM,GAAAJ,aAAe,GAASG,IAAA,GAAApC,eAAmB;IACjD,IAAIsC,YAAA,GAAA5B,QAAgB,CAAA2B,SAAA,EAAkBtB,GAAA,EAAAC,GAAA;IACpC,IAAAsB,YAAO,IAAA1C,gBAAyB;MAClC,OAAA0B,oBAAA,CAAAV,EAAA,EAAAyB,SAAA,EAAAtB,GAAA,EAAAC,GAAA;IACA;IACE,IAAAsB,YAAO;MACT,OAAAD,SAAA;IACA;IACF,OAAA1B,eAAA,CAAAC,EAAA,EAAAqB,aAAA,EAAAA,aAAA,GAAAjC,eAAA,EAAAe,GAAA,EAAAC,GAAA;EAEA;EAEE,OAAI,SAAMuB,YAAcA,CAAAb,CAAA;IACtB,IAAAA,CAAA,KAAO,KAAAA,CAAA;MACT,OAAAA,CAAA;IACA;IACF,OAAAlB,UAAA,CAAAwB,QAAA,CAAAN,CAAA,GAAAC,GAAA,EAAAC,GAAA;EACF","ignoreList":[]}
@@ -3,20 +3,22 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
5
  var __export = (target, all) => {
6
- for (var name in all) __defProp(target, name, {
7
- get: all[name],
8
- enumerable: !0
9
- });
10
- },
11
- __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
13
14
  get: () => from[key],
14
15
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
16
  });
16
- return to;
17
- };
17
+ }
18
+ return to;
19
+ };
18
20
  var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
- value: !0
21
+ value: true
20
22
  }), mod);
21
23
  var index_exports = {};
22
24
  __export(index_exports, {
@@ -26,32 +28,35 @@ module.exports = __toCommonJS(index_exports);
26
28
  var import_cubicBezier = require("./cubicBezier.cjs");
27
29
  function animate(param) {
28
30
  let start = null;
29
- const easing = param.cubicBezier ? (0, import_cubicBezier.bezier)(...param.cubicBezier) : v => v,
30
- {
31
- x: fromX,
32
- y: fromY,
33
- scaleX: fromScaleX,
34
- scaleY: fromScaleY
35
- } = param.from,
36
- {
37
- x: toX,
38
- y: toY,
39
- scaleX: toScaleX,
40
- scaleY: toScaleY
41
- } = param.to;
31
+ const easing = param.cubicBezier ? (0, import_cubicBezier.bezier)(...param.cubicBezier) : v => v;
32
+ const {
33
+ x: fromX,
34
+ y: fromY,
35
+ scaleX: fromScaleX,
36
+ scaleY: fromScaleY
37
+ } = param.from;
38
+ const {
39
+ x: toX,
40
+ y: toY,
41
+ scaleX: toScaleX,
42
+ scaleY: toScaleY
43
+ } = param.to;
42
44
  function frame(timestamp) {
43
- start || (start = timestamp);
44
- const progress = timestamp - start,
45
- x = toX !== void 0 ? fromX + (toX - fromX) * easing(progress / param.duration) : void 0,
46
- y = toY !== void 0 ? fromY + (toY - fromY) * easing(progress / param.duration) : void 0,
47
- scaleX = toScaleX !== void 0 ? fromScaleX + (toScaleX - fromScaleX) * easing(progress / param.duration) : void 0,
48
- scaleY = toScaleY !== void 0 ? fromScaleY + (toScaleY - fromScaleY) * easing(progress / param.duration) : void 0;
45
+ if (!start) start = timestamp;
46
+ const progress = timestamp - start;
47
+ const x = toX !== void 0 ? fromX + (toX - fromX) * easing(progress / param.duration) : void 0;
48
+ const y = toY !== void 0 ? fromY + (toY - fromY) * easing(progress / param.duration) : void 0;
49
+ const scaleX = toScaleX !== void 0 ? fromScaleX + (toScaleX - fromScaleX) * easing(progress / param.duration) : void 0;
50
+ const scaleY = toScaleY !== void 0 ? fromScaleY + (toScaleY - fromScaleY) * easing(progress / param.duration) : void 0;
49
51
  param.onUpdate({
50
52
  x,
51
53
  y,
52
54
  scaleX,
53
55
  scaleY
54
- }), progress < param.duration && requestAnimationFrame(frame);
56
+ });
57
+ if (progress < param.duration) {
58
+ requestAnimationFrame(frame);
59
+ }
55
60
  }
56
61
  requestAnimationFrame(frame);
57
62
  }
@@ -5,20 +5,22 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: !0
11
- });
12
- },
13
- __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
15
16
  get: () => from[key],
16
17
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
18
  });
18
- return to;
19
- };
19
+ }
20
+ return to;
21
+ };
20
22
  var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
- value: !0
23
+ value: true
22
24
  }), mod);
23
25
  var index_exports = {};
24
26
  __export(index_exports, {
@@ -27,35 +29,38 @@ __export(index_exports, {
27
29
  module.exports = __toCommonJS(index_exports);
28
30
  var import_cubicBezier = require("./cubicBezier.native.js");
29
31
  function animate(param) {
30
- var start = null,
31
- easing = param.cubicBezier ? (0, import_cubicBezier.bezier)(...param.cubicBezier) : function (v) {
32
- return v;
33
- },
34
- {
35
- x: fromX,
36
- y: fromY,
37
- scaleX: fromScaleX,
38
- scaleY: fromScaleY
39
- } = param.from,
40
- {
41
- x: toX,
42
- y: toY,
43
- scaleX: toScaleX,
44
- scaleY: toScaleY
45
- } = param.to;
32
+ var start = null;
33
+ var easing = param.cubicBezier ? (0, import_cubicBezier.bezier)(...param.cubicBezier) : function (v) {
34
+ return v;
35
+ };
36
+ var {
37
+ x: fromX,
38
+ y: fromY,
39
+ scaleX: fromScaleX,
40
+ scaleY: fromScaleY
41
+ } = param.from;
42
+ var {
43
+ x: toX,
44
+ y: toY,
45
+ scaleX: toScaleX,
46
+ scaleY: toScaleY
47
+ } = param.to;
46
48
  function frame(timestamp) {
47
- start || (start = timestamp);
48
- var progress = timestamp - start,
49
- x = toX !== void 0 ? fromX + (toX - fromX) * easing(progress / param.duration) : void 0,
50
- y = toY !== void 0 ? fromY + (toY - fromY) * easing(progress / param.duration) : void 0,
51
- scaleX = toScaleX !== void 0 ? fromScaleX + (toScaleX - fromScaleX) * easing(progress / param.duration) : void 0,
52
- scaleY = toScaleY !== void 0 ? fromScaleY + (toScaleY - fromScaleY) * easing(progress / param.duration) : void 0;
49
+ if (!start) start = timestamp;
50
+ var progress = timestamp - start;
51
+ var x = toX !== void 0 ? fromX + (toX - fromX) * easing(progress / param.duration) : void 0;
52
+ var y = toY !== void 0 ? fromY + (toY - fromY) * easing(progress / param.duration) : void 0;
53
+ var scaleX = toScaleX !== void 0 ? fromScaleX + (toScaleX - fromScaleX) * easing(progress / param.duration) : void 0;
54
+ var scaleY = toScaleY !== void 0 ? fromScaleY + (toScaleY - fromScaleY) * easing(progress / param.duration) : void 0;
53
55
  param.onUpdate({
54
56
  x,
55
57
  y,
56
58
  scaleX,
57
59
  scaleY
58
- }), progress < param.duration && requestAnimationFrame(frame);
60
+ });
61
+ if (progress < param.duration) {
62
+ requestAnimationFrame(frame);
63
+ }
59
64
  }
60
65
  requestAnimationFrame(frame);
61
66
  }
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","animate","module","exports","import_cubicBezier","require","param","start","easing","cubicBezier","bezier","v","x","fromX","y","fromY","scaleX","fromScaleX","scaleY","fromScaleY","from","toX","toY","toScaleX","toScaleY","to","frame","timestamp","progress","duration","onUpdate"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,OAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAAuB,CAAAK,aAAA;AAmBhB,IAAAK,kBAAiB,GAA2BC,OAAA;AACjD,SAAIJ,OAAQA,CAAAK,KAAA;EACZ,IAAAC,KAAM,OAAS;IAAAC,MAAM,GAAAF,KAAA,CAAAG,WAAc,OAAAL,kBAAU,CAAAM,MAAM,KAAAJ,KAAW,CAAAG,WAAmB,IAEzE,UAAGE,CAAO;MAGlB,OAASA,CAAA;IACP;IAAK;MAAAC,CAAA,EAAAC,KAAO;MAAAC,CAAA,EAAAC,KAAQ;MAAAC,MAAA,EAAAC,UAAA;MAAAC,MAAA,EAAAC;IAAA,IAAAb,KAAA,CAAAc,IAAA;IAAA;MAAAR,CAAA,EAAAS,GAAA;MAAAP,CAAA,EAAAQ,GAAA;MAAAN,MAAA,EAAAO,QAAA;MAAAL,MAAA,EAAAM;IAAA,IAAAlB,KAAA,CAAAmB,EAAA;EACpB,SAAMC,MAAAC,SAAW;IAiBjBpB,KAAA,KAAMA,KAAS,GAAEoB,SAAM;IAKzB,IAAAC,QAAA,GAAAD,SAAA,GAAApB,KAAA;MAAAK,CAAA,GAAAS,GAAA,cAAAR,KAAA,IAAAQ,GAAA,GAAAR,KAAA,IAAAL,MAAA,CAAAoB,QAAA,GAAAtB,KAAA,CAAAuB,QAAA;MAAAf,CAAA,GAAAQ,GAAA,cAAAP,KAAA,IAAAO,GAAA,GAAAP,KAAA,IAAAP,MAAA,CAAAoB,QAAA,GAAAtB,KAAA,CAAAuB,QAAA;MAAAb,MAAA,GAAAO,QAAA,cAAAN,UAAA,IAAAM,QAAA,GAAAN,UAAA,IAAAT,MAAA,CAAAoB,QAAA,GAAAtB,KAAA,CAAAuB,QAAA;MAAAX,MAAA,GAAAM,QAAA,cAAAL,UAAA,IAAAK,QAAA,GAAAL,UAAA,IAAAX,MAAA,CAAAoB,QAAA,GAAAtB,KAAA,CAAAuB,QAAA;IACAvB,KAAA,CAAAwB,QAAA;MACFlB,CAAA","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","animate","module","exports","import_cubicBezier","require","param","start","easing","cubicBezier","bezier","v","x","fromX","y","fromY","scaleX","fromScaleX","scaleY","fromScaleY","from","toX","toY","toScaleX","toScaleY","to","frame","timestamp","progress","duration","onUpdate"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,OAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAAuB,CAAAK,aAAA;AAmBhB,IAAAK,kBAAiB,GAA2BC,OAAA;AACjD,SAAIJ,OAAQA,CAAAK,KAAA;EACZ,IAAAC,KAAM,OAAS;EAEf,IAAAC,MAAQ,GAAGF,KAAO,CAAAG,WAAU,OAAQL,kBAAY,CAAQM,MAAA,KAAWJ,KAAI,CAAAG,WAAM,cAAAE,CAAA;IAC7E,OAAQA,CAAA;EAER;EACE;IAAIC,CAAC,EAAAC,KAAO;IAAAC,CAAA,EAAAC,KAAQ;IAAAC,MAAA,EAAAC,UAAA;IAAAC,MAAA,EAAAC;EAAA,IAAAb,KAAA,CAAAc,IAAA;EACpB;IAAAR,CAAA,EAAMS,GAAA;IAAAP,CAAA,EAAAQ,GAAW;IAAAN,MAAA,EAAAO,QAAY;IAAAL,MAAA,EAAAM;EAAA,IAAAlB,KAAA,CAAAmB,EAAA;EAC7B,SAAMC,KACJA,CAAAC,SAAQ;IAGV,KAAApB,KACE,EAAAA,KAAA,GAAQoB,SACJ;IAEN,IAAAC,QAAM,GACJD,SAAA,GAAApB,KAAa;IAGf,IAAAK,CAAA,GAAMS,GAAA,KACJ,SAAAR,KAAa,IAAAQ,GACT,GAAAR,KAAA,IAAAL,MAAe,CAAAoB,QAAW,GAAAtB,KAAA,CAAAuB,QAAe,IAAO;IAEtD,IAAAf,CAAA,GAAMQ,GAAA,KAAS,KAAK,IAAGP,KAAA,GAAQ,CAAAO,GAAA,GAAQP,KAAA,IAAAP,MAAA,CAAAoB,QAAA,GAAAtB,KAAA,CAAAuB,QAAA;IAEvC,IAAIb,MAAA,GAAAO,QAAiB,UAAU,IAAAN,UAAA,IAAAM,QAAA,GAAAN,UAAA,IAAAT,MAAA,CAAAoB,QAAA,GAAAtB,KAAA,CAAAuB,QAAA;IAC7B,IAAAX,MAAA,GAAAM,QAAA,KAAsB,KAAK,IAAAL,UAAA,IAAAK,QAAA,GAAAL,UAAA,IAAAX,MAAA,CAAAoB,QAAA,GAAAtB,KAAA,CAAAuB,QAAA;IAC7BvB,KAAA,CAAAwB,QAAA;MACFlB,CAAA;MACAE,CAAA;MACFE,MAAA","ignoreList":[]}
@@ -1,4 +1,10 @@
1
- const float32ArraySupported = typeof Float32Array == "function";
1
+ const NEWTON_ITERATIONS = 4;
2
+ const NEWTON_MIN_SLOPE = 1e-3;
3
+ const SUBDIVISION_PRECISION = 1e-7;
4
+ const SUBDIVISION_MAX_ITERATIONS = 10;
5
+ const kSplineTableSize = 11;
6
+ const kSampleStepSize = 1 / (kSplineTableSize - 1);
7
+ const float32ArraySupported = typeof Float32Array === "function";
2
8
  function A(aA1, aA2) {
3
9
  return 1 - 3 * aA2 + 3 * aA1;
4
10
  }
@@ -15,16 +21,26 @@ function getSlope(aT, aA1, aA2) {
15
21
  return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
16
22
  }
17
23
  function binarySubdivide(aX, aA, aB, mX1, mX2) {
18
- let currentX,
19
- currentT,
20
- i = 0;
21
- do currentT = aA + (aB - aA) / 2, currentX = calcBezier(currentT, mX1, mX2) - aX, currentX > 0 ? aB = currentT : aA = currentT; while (Math.abs(currentX) > 1e-7 && ++i < 10);
24
+ let currentX;
25
+ let currentT;
26
+ let i = 0;
27
+ do {
28
+ currentT = aA + (aB - aA) / 2;
29
+ currentX = calcBezier(currentT, mX1, mX2) - aX;
30
+ if (currentX > 0) {
31
+ aB = currentT;
32
+ } else {
33
+ aA = currentT;
34
+ }
35
+ } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);
22
36
  return currentT;
23
37
  }
24
38
  function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {
25
- for (let i = 0; i < 4; ++i) {
39
+ for (let i = 0; i < NEWTON_ITERATIONS; ++i) {
26
40
  const currentSlope = getSlope(aGuessT, mX1, mX2);
27
- if (currentSlope === 0) return aGuessT;
41
+ if (currentSlope === 0) {
42
+ return aGuessT;
43
+ }
28
44
  const currentX = calcBezier(aGuessT, mX1, mX2) - aX;
29
45
  aGuessT -= currentX / currentSlope;
30
46
  }
@@ -34,23 +50,40 @@ function LinearEasing(x) {
34
50
  return x;
35
51
  }
36
52
  function bezier(mX1, mY1, mX2, mY2) {
37
- if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) throw new Error("bezier x values must be in [0, 1] range");
38
- if (mX1 === mY1 && mX2 === mY2) return LinearEasing;
39
- const sampleValues = float32ArraySupported ? new Float32Array(11) : new Array(11);
40
- for (let i = 0; i < 11; ++i) sampleValues[i] = calcBezier(i * 0.1, mX1, mX2);
53
+ if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {
54
+ throw new Error("bezier x values must be in [0, 1] range");
55
+ }
56
+ if (mX1 === mY1 && mX2 === mY2) {
57
+ return LinearEasing;
58
+ }
59
+ const sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);
60
+ for (let i = 0; i < kSplineTableSize; ++i) {
61
+ sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
62
+ }
41
63
  function getTForX(aX) {
42
- let intervalStart = 0,
43
- currentSample = 1;
44
- const lastSample = 10;
45
- for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) intervalStart += 0.1;
64
+ let intervalStart = 0;
65
+ let currentSample = 1;
66
+ const lastSample = kSplineTableSize - 1;
67
+ for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {
68
+ intervalStart += kSampleStepSize;
69
+ }
46
70
  --currentSample;
47
- const dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]),
48
- guessForT = intervalStart + dist * 0.1,
49
- initialSlope = getSlope(guessForT, mX1, mX2);
50
- return initialSlope >= 1e-3 ? newtonRaphsonIterate(aX, guessForT, mX1, mX2) : initialSlope === 0 ? guessForT : binarySubdivide(aX, intervalStart, intervalStart + 0.1, mX1, mX2);
71
+ const dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);
72
+ const guessForT = intervalStart + dist * kSampleStepSize;
73
+ const initialSlope = getSlope(guessForT, mX1, mX2);
74
+ if (initialSlope >= NEWTON_MIN_SLOPE) {
75
+ return newtonRaphsonIterate(aX, guessForT, mX1, mX2);
76
+ }
77
+ if (initialSlope === 0) {
78
+ return guessForT;
79
+ }
80
+ return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
51
81
  }
52
- return function (x) {
53
- return x === 0 || x === 1 ? x : calcBezier(getTForX(x), mY1, mY2);
82
+ return function BezierEasing(x) {
83
+ if (x === 0 || x === 1) {
84
+ return x;
85
+ }
86
+ return calcBezier(getTForX(x), mY1, mY2);
54
87
  };
55
88
  }
56
89
  export { bezier };
@@ -1 +1 @@
1
- {"version":3,"names":["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"],"sources":["../../src/cubicBezier.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"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","BezierEasing"],"sources":["../../src/cubicBezier.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,10 @@
1
- var NEWTON_ITERATIONS = 4,
2
- NEWTON_MIN_SLOPE = 1e-3,
3
- SUBDIVISION_PRECISION = 1e-7,
4
- SUBDIVISION_MAX_ITERATIONS = 10,
5
- kSplineTableSize = 11,
6
- kSampleStepSize = 1 / (kSplineTableSize - 1),
7
- float32ArraySupported = typeof Float32Array == "function";
1
+ var NEWTON_ITERATIONS = 4;
2
+ var NEWTON_MIN_SLOPE = 1e-3;
3
+ var SUBDIVISION_PRECISION = 1e-7;
4
+ var SUBDIVISION_MAX_ITERATIONS = 10;
5
+ var kSplineTableSize = 11;
6
+ var kSampleStepSize = 1 / (kSplineTableSize - 1);
7
+ var float32ArraySupported = typeof Float32Array === "function";
8
8
  function A(aA1, aA2) {
9
9
  return 1 - 3 * aA2 + 3 * aA1;
10
10
  }
@@ -21,16 +21,26 @@ function getSlope(aT, aA1, aA2) {
21
21
  return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
22
22
  }
23
23
  function binarySubdivide(aX, aA, aB, mX1, mX2) {
24
- var currentX,
25
- currentT,
26
- i = 0;
27
- do currentT = aA + (aB - aA) / 2, currentX = calcBezier(currentT, mX1, mX2) - aX, currentX > 0 ? aB = currentT : aA = currentT; while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);
24
+ var currentX;
25
+ var currentT;
26
+ var i = 0;
27
+ do {
28
+ currentT = aA + (aB - aA) / 2;
29
+ currentX = calcBezier(currentT, mX1, mX2) - aX;
30
+ if (currentX > 0) {
31
+ aB = currentT;
32
+ } else {
33
+ aA = currentT;
34
+ }
35
+ } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);
28
36
  return currentT;
29
37
  }
30
38
  function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {
31
39
  for (var i = 0; i < NEWTON_ITERATIONS; ++i) {
32
40
  var currentSlope = getSlope(aGuessT, mX1, mX2);
33
- if (currentSlope === 0) return aGuessT;
41
+ if (currentSlope === 0) {
42
+ return aGuessT;
43
+ }
34
44
  var currentX = calcBezier(aGuessT, mX1, mX2) - aX;
35
45
  aGuessT -= currentX / currentSlope;
36
46
  }
@@ -40,19 +50,40 @@ function LinearEasing(x) {
40
50
  return x;
41
51
  }
42
52
  function bezier(mX1, mY1, mX2, mY2) {
43
- if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) throw new Error("bezier x values must be in [0, 1] range");
44
- if (mX1 === mY1 && mX2 === mY2) return LinearEasing;
45
- for (var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize), i = 0; i < kSplineTableSize; ++i) sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
53
+ if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {
54
+ throw new Error("bezier x values must be in [0, 1] range");
55
+ }
56
+ if (mX1 === mY1 && mX2 === mY2) {
57
+ return LinearEasing;
58
+ }
59
+ var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);
60
+ for (var i = 0; i < kSplineTableSize; ++i) {
61
+ sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
62
+ }
46
63
  function getTForX(aX) {
47
- for (var intervalStart = 0, currentSample = 1, lastSample = kSplineTableSize - 1; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) intervalStart += kSampleStepSize;
64
+ var intervalStart = 0;
65
+ var currentSample = 1;
66
+ var lastSample = kSplineTableSize - 1;
67
+ for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {
68
+ intervalStart += kSampleStepSize;
69
+ }
48
70
  --currentSample;
49
- var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]),
50
- guessForT = intervalStart + dist * kSampleStepSize,
51
- initialSlope = getSlope(guessForT, mX1, mX2);
52
- return initialSlope >= NEWTON_MIN_SLOPE ? newtonRaphsonIterate(aX, guessForT, mX1, mX2) : initialSlope === 0 ? guessForT : binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
71
+ var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);
72
+ var guessForT = intervalStart + dist * kSampleStepSize;
73
+ var initialSlope = getSlope(guessForT, mX1, mX2);
74
+ if (initialSlope >= NEWTON_MIN_SLOPE) {
75
+ return newtonRaphsonIterate(aX, guessForT, mX1, mX2);
76
+ }
77
+ if (initialSlope === 0) {
78
+ return guessForT;
79
+ }
80
+ return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
53
81
  }
54
- return function (x) {
55
- return x === 0 || x === 1 ? x : calcBezier(getTForX(x), mY1, mY2);
82
+ return function BezierEasing(x) {
83
+ if (x === 0 || x === 1) {
84
+ return x;
85
+ }
86
+ return calcBezier(getTForX(x), mY1, mY2);
56
87
  };
57
88
  }
58
89
  export { bezier };
@@ -1 +1 @@
1
- {"version":3,"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"],"sources":["../../src/cubicBezier.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"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","BezierEasing"],"sources":["../../src/cubicBezier.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -1,32 +1,35 @@
1
1
  import { bezier } from "./cubicBezier.mjs";
2
2
  function animate(param) {
3
3
  let start = null;
4
- const easing = param.cubicBezier ? bezier(...param.cubicBezier) : v => v,
5
- {
6
- x: fromX,
7
- y: fromY,
8
- scaleX: fromScaleX,
9
- scaleY: fromScaleY
10
- } = param.from,
11
- {
12
- x: toX,
13
- y: toY,
14
- scaleX: toScaleX,
15
- scaleY: toScaleY
16
- } = param.to;
4
+ const easing = param.cubicBezier ? bezier(...param.cubicBezier) : v => v;
5
+ const {
6
+ x: fromX,
7
+ y: fromY,
8
+ scaleX: fromScaleX,
9
+ scaleY: fromScaleY
10
+ } = param.from;
11
+ const {
12
+ x: toX,
13
+ y: toY,
14
+ scaleX: toScaleX,
15
+ scaleY: toScaleY
16
+ } = param.to;
17
17
  function frame(timestamp) {
18
- start || (start = timestamp);
19
- const progress = timestamp - start,
20
- x = toX !== void 0 ? fromX + (toX - fromX) * easing(progress / param.duration) : void 0,
21
- y = toY !== void 0 ? fromY + (toY - fromY) * easing(progress / param.duration) : void 0,
22
- scaleX = toScaleX !== void 0 ? fromScaleX + (toScaleX - fromScaleX) * easing(progress / param.duration) : void 0,
23
- scaleY = toScaleY !== void 0 ? fromScaleY + (toScaleY - fromScaleY) * easing(progress / param.duration) : void 0;
18
+ if (!start) start = timestamp;
19
+ const progress = timestamp - start;
20
+ const x = toX !== void 0 ? fromX + (toX - fromX) * easing(progress / param.duration) : void 0;
21
+ const y = toY !== void 0 ? fromY + (toY - fromY) * easing(progress / param.duration) : void 0;
22
+ const scaleX = toScaleX !== void 0 ? fromScaleX + (toScaleX - fromScaleX) * easing(progress / param.duration) : void 0;
23
+ const scaleY = toScaleY !== void 0 ? fromScaleY + (toScaleY - fromScaleY) * easing(progress / param.duration) : void 0;
24
24
  param.onUpdate({
25
25
  x,
26
26
  y,
27
27
  scaleX,
28
28
  scaleY
29
- }), progress < param.duration && requestAnimationFrame(frame);
29
+ });
30
+ if (progress < param.duration) {
31
+ requestAnimationFrame(frame);
32
+ }
30
33
  }
31
34
  requestAnimationFrame(frame);
32
35
  }
@@ -1 +1 @@
1
- {"version":3,"names":["bezier","animate","param","start","easing","cubicBezier","v","x","fromX","y","fromY","scaleX","fromScaleX","scaleY","fromScaleY","from","toX","toY","toScaleX","toScaleY","to","frame","timestamp","progress","duration","onUpdate","requestAnimationFrame"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AAmBhB,SAASC,QAAQC,KAAA,EAA2B;EACjD,IAAIC,KAAA,GAAQ;EACZ,MAAMC,MAAA,GAASF,KAAA,CAAMG,WAAA,GAAcL,MAAA,CAAO,GAAGE,KAAA,CAAMG,WAAW,IAAKC,CAAA,IAAcA,CAAA;IAE3E;MAAEC,CAAA,EAAGC,KAAA;MAAOC,CAAA,EAAGC,KAAA;MAAOC,MAAA,EAAQC,UAAA;MAAYC,MAAA,EAAQC;IAAW,IAAIZ,KAAA,CAAMa,IAAA;IACvE;MAAER,CAAA,EAAGS,GAAA;MAAKP,CAAA,EAAGQ,GAAA;MAAKN,MAAA,EAAQO,QAAA;MAAUL,MAAA,EAAQM;IAAS,IAAIjB,KAAA,CAAMkB,EAAA;EAErE,SAASC,MAAMC,SAAA,EAAW;IACnBnB,KAAA,KAAOA,KAAA,GAAQmB,SAAA;IACpB,MAAMC,QAAA,GAAWD,SAAA,GAAYnB,KAAA;MACvBI,CAAA,GACJS,GAAA,KAAQ,SACJR,KAAA,IAAUQ,GAAA,GAAMR,KAAA,IAAUJ,MAAA,CAAOmB,QAAA,GAAWrB,KAAA,CAAMsB,QAAQ,IAC1D;MACAf,CAAA,GACJQ,GAAA,KAAQ,SACJP,KAAA,IAAUO,GAAA,GAAMP,KAAA,IAAUN,MAAA,CAAOmB,QAAA,GAAWrB,KAAA,CAAMsB,QAAQ,IAC1D;MACAb,MAAA,GACJO,QAAA,KAAa,SACTN,UAAA,IAAeM,QAAA,GAAWN,UAAA,IAAeR,MAAA,CAAOmB,QAAA,GAAWrB,KAAA,CAAMsB,QAAQ,IACzE;MACAX,MAAA,GACJM,QAAA,KAAa,SACTL,UAAA,IAAeK,QAAA,GAAWL,UAAA,IAAeV,MAAA,CAAOmB,QAAA,GAAWrB,KAAA,CAAMsB,QAAQ,IACzE;IACNtB,KAAA,CAAMuB,QAAA,CAAS;MAAElB,CAAA;MAAGE,CAAA;MAAGE,MAAA;MAAQE;IAAO,CAAC,GAEnCU,QAAA,GAAWrB,KAAA,CAAMsB,QAAA,IACnBE,qBAAA,CAAsBL,KAAK;EAE/B;EACAK,qBAAA,CAAsBL,KAAK;AAC7B","ignoreList":[]}
1
+ {"version":3,"names":["bezier","animate","param","start","easing","cubicBezier","v","x","fromX","y","fromY","scaleX","fromScaleX","scaleY","fromScaleY","from","toX","toY","toScaleX","toScaleY","to","frame","timestamp","progress","duration","onUpdate","requestAnimationFrame"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AAmBhB,SAASC,QAAQC,KAAA,EAA2B;EACjD,IAAIC,KAAA,GAAQ;EACZ,MAAMC,MAAA,GAASF,KAAA,CAAMG,WAAA,GAAcL,MAAA,CAAO,GAAGE,KAAA,CAAMG,WAAW,IAAKC,CAAA,IAAcA,CAAA;EAEjF,MAAM;IAAEC,CAAA,EAAGC,KAAA;IAAOC,CAAA,EAAGC,KAAA;IAAOC,MAAA,EAAQC,UAAA;IAAYC,MAAA,EAAQC;EAAW,IAAIZ,KAAA,CAAMa,IAAA;EAC7E,MAAM;IAAER,CAAA,EAAGS,GAAA;IAAKP,CAAA,EAAGQ,GAAA;IAAKN,MAAA,EAAQO,QAAA;IAAUL,MAAA,EAAQM;EAAS,IAAIjB,KAAA,CAAMkB,EAAA;EAErE,SAASC,MAAMC,SAAA,EAAW;IACxB,IAAI,CAACnB,KAAA,EAAOA,KAAA,GAAQmB,SAAA;IACpB,MAAMC,QAAA,GAAWD,SAAA,GAAYnB,KAAA;IAC7B,MAAMI,CAAA,GACJS,GAAA,KAAQ,SACJR,KAAA,IAAUQ,GAAA,GAAMR,KAAA,IAAUJ,MAAA,CAAOmB,QAAA,GAAWrB,KAAA,CAAMsB,QAAQ,IAC1D;IACN,MAAMf,CAAA,GACJQ,GAAA,KAAQ,SACJP,KAAA,IAAUO,GAAA,GAAMP,KAAA,IAAUN,MAAA,CAAOmB,QAAA,GAAWrB,KAAA,CAAMsB,QAAQ,IAC1D;IACN,MAAMb,MAAA,GACJO,QAAA,KAAa,SACTN,UAAA,IAAeM,QAAA,GAAWN,UAAA,IAAeR,MAAA,CAAOmB,QAAA,GAAWrB,KAAA,CAAMsB,QAAQ,IACzE;IACN,MAAMX,MAAA,GACJM,QAAA,KAAa,SACTL,UAAA,IAAeK,QAAA,GAAWL,UAAA,IAAeV,MAAA,CAAOmB,QAAA,GAAWrB,KAAA,CAAMsB,QAAQ,IACzE;IACNtB,KAAA,CAAMuB,QAAA,CAAS;MAAElB,CAAA;MAAGE,CAAA;MAAGE,MAAA;MAAQE;IAAO,CAAC;IAEvC,IAAIU,QAAA,GAAWrB,KAAA,CAAMsB,QAAA,EAAU;MAC7BE,qBAAA,CAAsBL,KAAK;IAC7B;EACF;EACAK,qBAAA,CAAsBL,KAAK;AAC7B","ignoreList":[]}
@@ -1,32 +1,35 @@
1
1
  import { bezier } from "./cubicBezier.mjs";
2
2
  function animate(param) {
3
3
  let start = null;
4
- const easing = param.cubicBezier ? bezier(...param.cubicBezier) : v => v,
5
- {
6
- x: fromX,
7
- y: fromY,
8
- scaleX: fromScaleX,
9
- scaleY: fromScaleY
10
- } = param.from,
11
- {
12
- x: toX,
13
- y: toY,
14
- scaleX: toScaleX,
15
- scaleY: toScaleY
16
- } = param.to;
4
+ const easing = param.cubicBezier ? bezier(...param.cubicBezier) : v => v;
5
+ const {
6
+ x: fromX,
7
+ y: fromY,
8
+ scaleX: fromScaleX,
9
+ scaleY: fromScaleY
10
+ } = param.from;
11
+ const {
12
+ x: toX,
13
+ y: toY,
14
+ scaleX: toScaleX,
15
+ scaleY: toScaleY
16
+ } = param.to;
17
17
  function frame(timestamp) {
18
- start || (start = timestamp);
19
- const progress = timestamp - start,
20
- x = toX !== void 0 ? fromX + (toX - fromX) * easing(progress / param.duration) : void 0,
21
- y = toY !== void 0 ? fromY + (toY - fromY) * easing(progress / param.duration) : void 0,
22
- scaleX = toScaleX !== void 0 ? fromScaleX + (toScaleX - fromScaleX) * easing(progress / param.duration) : void 0,
23
- scaleY = toScaleY !== void 0 ? fromScaleY + (toScaleY - fromScaleY) * easing(progress / param.duration) : void 0;
18
+ if (!start) start = timestamp;
19
+ const progress = timestamp - start;
20
+ const x = toX !== void 0 ? fromX + (toX - fromX) * easing(progress / param.duration) : void 0;
21
+ const y = toY !== void 0 ? fromY + (toY - fromY) * easing(progress / param.duration) : void 0;
22
+ const scaleX = toScaleX !== void 0 ? fromScaleX + (toScaleX - fromScaleX) * easing(progress / param.duration) : void 0;
23
+ const scaleY = toScaleY !== void 0 ? fromScaleY + (toScaleY - fromScaleY) * easing(progress / param.duration) : void 0;
24
24
  param.onUpdate({
25
25
  x,
26
26
  y,
27
27
  scaleX,
28
28
  scaleY
29
- }), progress < param.duration && requestAnimationFrame(frame);
29
+ });
30
+ if (progress < param.duration) {
31
+ requestAnimationFrame(frame);
32
+ }
30
33
  }
31
34
  requestAnimationFrame(frame);
32
35
  }
@@ -1 +1 @@
1
- {"version":3,"names":["bezier","animate","param","start","easing","cubicBezier","v","x","fromX","y","fromY","scaleX","fromScaleX","scaleY","fromScaleY","from","toX","toY","toScaleX","toScaleY","to","frame","timestamp","progress","duration","onUpdate","requestAnimationFrame"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AAmBhB,SAASC,QAAQC,KAAA,EAA2B;EACjD,IAAIC,KAAA,GAAQ;EACZ,MAAMC,MAAA,GAASF,KAAA,CAAMG,WAAA,GAAcL,MAAA,CAAO,GAAGE,KAAA,CAAMG,WAAW,IAAKC,CAAA,IAAcA,CAAA;IAE3E;MAAEC,CAAA,EAAGC,KAAA;MAAOC,CAAA,EAAGC,KAAA;MAAOC,MAAA,EAAQC,UAAA;MAAYC,MAAA,EAAQC;IAAW,IAAIZ,KAAA,CAAMa,IAAA;IACvE;MAAER,CAAA,EAAGS,GAAA;MAAKP,CAAA,EAAGQ,GAAA;MAAKN,MAAA,EAAQO,QAAA;MAAUL,MAAA,EAAQM;IAAS,IAAIjB,KAAA,CAAMkB,EAAA;EAErE,SAASC,MAAMC,SAAA,EAAW;IACnBnB,KAAA,KAAOA,KAAA,GAAQmB,SAAA;IACpB,MAAMC,QAAA,GAAWD,SAAA,GAAYnB,KAAA;MACvBI,CAAA,GACJS,GAAA,KAAQ,SACJR,KAAA,IAAUQ,GAAA,GAAMR,KAAA,IAAUJ,MAAA,CAAOmB,QAAA,GAAWrB,KAAA,CAAMsB,QAAQ,IAC1D;MACAf,CAAA,GACJQ,GAAA,KAAQ,SACJP,KAAA,IAAUO,GAAA,GAAMP,KAAA,IAAUN,MAAA,CAAOmB,QAAA,GAAWrB,KAAA,CAAMsB,QAAQ,IAC1D;MACAb,MAAA,GACJO,QAAA,KAAa,SACTN,UAAA,IAAeM,QAAA,GAAWN,UAAA,IAAeR,MAAA,CAAOmB,QAAA,GAAWrB,KAAA,CAAMsB,QAAQ,IACzE;MACAX,MAAA,GACJM,QAAA,KAAa,SACTL,UAAA,IAAeK,QAAA,GAAWL,UAAA,IAAeV,MAAA,CAAOmB,QAAA,GAAWrB,KAAA,CAAMsB,QAAQ,IACzE;IACNtB,KAAA,CAAMuB,QAAA,CAAS;MAAElB,CAAA;MAAGE,CAAA;MAAGE,MAAA;MAAQE;IAAO,CAAC,GAEnCU,QAAA,GAAWrB,KAAA,CAAMsB,QAAA,IACnBE,qBAAA,CAAsBL,KAAK;EAE/B;EACAK,qBAAA,CAAsBL,KAAK;AAC7B","ignoreList":[]}
1
+ {"version":3,"names":["bezier","animate","param","start","easing","cubicBezier","v","x","fromX","y","fromY","scaleX","fromScaleX","scaleY","fromScaleY","from","toX","toY","toScaleX","toScaleY","to","frame","timestamp","progress","duration","onUpdate","requestAnimationFrame"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AAmBhB,SAASC,QAAQC,KAAA,EAA2B;EACjD,IAAIC,KAAA,GAAQ;EACZ,MAAMC,MAAA,GAASF,KAAA,CAAMG,WAAA,GAAcL,MAAA,CAAO,GAAGE,KAAA,CAAMG,WAAW,IAAKC,CAAA,IAAcA,CAAA;EAEjF,MAAM;IAAEC,CAAA,EAAGC,KAAA;IAAOC,CAAA,EAAGC,KAAA;IAAOC,MAAA,EAAQC,UAAA;IAAYC,MAAA,EAAQC;EAAW,IAAIZ,KAAA,CAAMa,IAAA;EAC7E,MAAM;IAAER,CAAA,EAAGS,GAAA;IAAKP,CAAA,EAAGQ,GAAA;IAAKN,MAAA,EAAQO,QAAA;IAAUL,MAAA,EAAQM;EAAS,IAAIjB,KAAA,CAAMkB,EAAA;EAErE,SAASC,MAAMC,SAAA,EAAW;IACxB,IAAI,CAACnB,KAAA,EAAOA,KAAA,GAAQmB,SAAA;IACpB,MAAMC,QAAA,GAAWD,SAAA,GAAYnB,KAAA;IAC7B,MAAMI,CAAA,GACJS,GAAA,KAAQ,SACJR,KAAA,IAAUQ,GAAA,GAAMR,KAAA,IAAUJ,MAAA,CAAOmB,QAAA,GAAWrB,KAAA,CAAMsB,QAAQ,IAC1D;IACN,MAAMf,CAAA,GACJQ,GAAA,KAAQ,SACJP,KAAA,IAAUO,GAAA,GAAMP,KAAA,IAAUN,MAAA,CAAOmB,QAAA,GAAWrB,KAAA,CAAMsB,QAAQ,IAC1D;IACN,MAAMb,MAAA,GACJO,QAAA,KAAa,SACTN,UAAA,IAAeM,QAAA,GAAWN,UAAA,IAAeR,MAAA,CAAOmB,QAAA,GAAWrB,KAAA,CAAMsB,QAAQ,IACzE;IACN,MAAMX,MAAA,GACJM,QAAA,KAAa,SACTL,UAAA,IAAeK,QAAA,GAAWL,UAAA,IAAeV,MAAA,CAAOmB,QAAA,GAAWrB,KAAA,CAAMsB,QAAQ,IACzE;IACNtB,KAAA,CAAMuB,QAAA,CAAS;MAAElB,CAAA;MAAGE,CAAA;MAAGE,MAAA;MAAQE;IAAO,CAAC;IAEvC,IAAIU,QAAA,GAAWrB,KAAA,CAAMsB,QAAA,EAAU;MAC7BE,qBAAA,CAAsBL,KAAK;IAC7B;EACF;EACAK,qBAAA,CAAsBL,KAAK;AAC7B","ignoreList":[]}
@@ -1,34 +1,37 @@
1
1
  import { bezier } from "./cubicBezier.native.js";
2
2
  function animate(param) {
3
- var start = null,
4
- easing = param.cubicBezier ? bezier(...param.cubicBezier) : function (v) {
5
- return v;
6
- },
7
- {
8
- x: fromX,
9
- y: fromY,
10
- scaleX: fromScaleX,
11
- scaleY: fromScaleY
12
- } = param.from,
13
- {
14
- x: toX,
15
- y: toY,
16
- scaleX: toScaleX,
17
- scaleY: toScaleY
18
- } = param.to;
3
+ var start = null;
4
+ var easing = param.cubicBezier ? bezier(...param.cubicBezier) : function (v) {
5
+ return v;
6
+ };
7
+ var {
8
+ x: fromX,
9
+ y: fromY,
10
+ scaleX: fromScaleX,
11
+ scaleY: fromScaleY
12
+ } = param.from;
13
+ var {
14
+ x: toX,
15
+ y: toY,
16
+ scaleX: toScaleX,
17
+ scaleY: toScaleY
18
+ } = param.to;
19
19
  function frame(timestamp) {
20
- start || (start = timestamp);
21
- var progress = timestamp - start,
22
- x = toX !== void 0 ? fromX + (toX - fromX) * easing(progress / param.duration) : void 0,
23
- y = toY !== void 0 ? fromY + (toY - fromY) * easing(progress / param.duration) : void 0,
24
- scaleX = toScaleX !== void 0 ? fromScaleX + (toScaleX - fromScaleX) * easing(progress / param.duration) : void 0,
25
- scaleY = toScaleY !== void 0 ? fromScaleY + (toScaleY - fromScaleY) * easing(progress / param.duration) : void 0;
20
+ if (!start) start = timestamp;
21
+ var progress = timestamp - start;
22
+ var x = toX !== void 0 ? fromX + (toX - fromX) * easing(progress / param.duration) : void 0;
23
+ var y = toY !== void 0 ? fromY + (toY - fromY) * easing(progress / param.duration) : void 0;
24
+ var scaleX = toScaleX !== void 0 ? fromScaleX + (toScaleX - fromScaleX) * easing(progress / param.duration) : void 0;
25
+ var scaleY = toScaleY !== void 0 ? fromScaleY + (toScaleY - fromScaleY) * easing(progress / param.duration) : void 0;
26
26
  param.onUpdate({
27
27
  x,
28
28
  y,
29
29
  scaleX,
30
30
  scaleY
31
- }), progress < param.duration && requestAnimationFrame(frame);
31
+ });
32
+ if (progress < param.duration) {
33
+ requestAnimationFrame(frame);
34
+ }
32
35
  }
33
36
  requestAnimationFrame(frame);
34
37
  }
@@ -1 +1 @@
1
- {"version":3,"names":["bezier","animate","param","start","easing","cubicBezier","v","x","fromX","y","fromY","scaleX","fromScaleX","scaleY","fromScaleY","from","toX","toY","toScaleX","toScaleY","to","frame","timestamp","progress","duration","onUpdate"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AAmBhB,SAASC,QAAQC,KAAA,EAA2B;EACjD,IAAIC,KAAA,GAAQ;IAAAC,MAAA,GAAAF,KAAA,CAAAG,WAAA,GAAAL,MAAA,IAAAE,KAAA,CAAAG,WAAA,cAAAC,CAAA;MACZ,OAAMA,CAAA;IAKN;IAAA;MAAAC,CAAA,EAAAC,KAAS;MAAMC,CAAA,EAAAC,KAAA;MAAAC,MAAW,EAAAC,UAAA;MAAAC,MAAA,EAAAC;IAAA,IAAAZ,KAAA,CAAAa,IAAA;IAAA;MAAAR,CAAA,EAAAS,GAAA;MAAAP,CAAA,EAAAQ,GAAA;MAAAN,MAAA,EAAAO,QAAA;MAAAL,MAAA,EAAAM;IAAA,IAAAjB,KAAA,CAAAkB,EAAA;EACxB,SAAKC,KAAOA,CAAAC,SAAQ;IACpBnB,KAAA,KAAMA,KAAA,GAAWmB,SAAA;IAiBjB,IAAAC,QAAM,GAASD,SAAQ,GAAAnB,KAAQ;MAAAI,CAAA,GAAOS,GAAC,KAEnC,SAAWR,KAAM,IAAAQ,GAAA,GAAAR,KACnB,IAAAJ,MAAA,CAAAmB,QAAsB,GAAArB,KAAK,CAAAsB,QAAA;MAAAf,CAAA,GAAAQ,GAAA,cAAAP,KAAA,IAAAO,GAAA,GAAAP,KAAA,IAAAN,MAAA,CAAAmB,QAAA,GAAArB,KAAA,CAAAsB,QAAA;MAAAb,MAAA,GAAAO,QAAA,cAAAN,UAAA,IAAAM,QAAA,GAAAN,UAAA,IAAAR,MAAA,CAAAmB,QAAA,GAAArB,KAAA,CAAAsB,QAAA;MAAAX,MAAA,GAAAM,QAAA,cAAAL,UAAA,IAAAK,QAAA,GAAAL,UAAA,IAAAV,MAAA,CAAAmB,QAAA,GAAArB,KAAA,CAAAsB,QAAA;IAE/BtB,KAAA,CAAAuB,QAAA;MACAlB,CAAA;MACFE,CAAA","ignoreList":[]}
1
+ {"version":3,"names":["bezier","animate","param","start","easing","cubicBezier","v","x","fromX","y","fromY","scaleX","fromScaleX","scaleY","fromScaleY","from","toX","toY","toScaleX","toScaleY","to","frame","timestamp","progress","duration","onUpdate"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AAmBhB,SAASC,QAAQC,KAAA,EAA2B;EACjD,IAAIC,KAAA,GAAQ;EACZ,IAAAC,MAAM,GAAAF,KAAS,CAAAG,WAAM,GAAAL,MAAc,IAAOE,KAAG,CAAAG,WAAM,IAAW,UAAmBC,CAAA;IAEjF,OAAQA,CAAA;EACR;EAEA;IAAAC,CAAA,EAASC,KAAA;IAAMC,CAAA,EAAAC,KAAA;IAAWC,MAAA,EAAAC,UAAA;IAAAC,MAAA,EAAAC;EAAA,IAAAZ,KAAA,CAAAa,IAAA;EACxB;IAAIR,CAAC,EAAAS,GAAA;IAAOP,CAAA,EAAAQ,GAAA;IAAQN,MAAA,EAAAO,QAAA;IAAAL,MAAA,EAAAM;EAAA,IAAAjB,KAAA,CAAAkB,EAAA;EACpB,SAAMC,MAAAC,SAAW;IACjB,KAAAnB,KACE,EAAAA,KAAA,GAAQmB,SACJ;IAEN,IAAAC,QACE,GAAAD,SAAQ,GACJnB,KAAA;IAEN,IAAAI,CAAA,GAAMS,GAAA,KACJ,SAAAR,KAAa,IAAAQ,GACT,GAAAR,KAAA,IAAAJ,MAAe,CAAAmB,QAAW,GAAArB,KAAA,CAAAsB,QAAe,IAAO;IAEtD,IAAAf,CAAA,GAAMQ,GAAA,KACJ,SAAAP,KAAa,IAAAO,GACT,GAAAP,KAAA,IAAAN,MAAe,CAAAmB,QAAW,GAAArB,KAAA,CAAAsB,QAAe,IAAO;IAEtD,IAAAb,MAAM,GAAAO,QAAc,KAAG,KAAQ,IAAAN,UAAQ,IAAAM,QAAA,GAAAN,UAAA,IAAAR,MAAA,CAAAmB,QAAA,GAAArB,KAAA,CAAAsB,QAAA;IAEvC,IAAIX,MAAA,GAAAM,QAAiB,UAAU,IAAAL,UAAA,IAAAK,QAAA,GAAAL,UAAA,IAAAV,MAAA,CAAAmB,QAAA,GAAArB,KAAA,CAAAsB,QAAA;IAC7BtB,KAAA,CAAAuB,QAAA;MACFlB,CAAA;MACFE,CAAA;MACAE,MAAA;MACFE","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hanzogui/cubic-bezier-animator",
3
- "version": "3.0.6",
3
+ "version": "4.3.1",
4
4
  "source": "src/index.tsx",
5
5
  "files": [
6
6
  "src",