@tamagui/cubic-bezier-animator 2.7.7 → 3.0.0-beta.643.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.
@@ -1,115 +1,112 @@
1
+
1
2
  var __defProp = Object.defineProperty;
2
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
6
  var __export = (target, all) => {
6
- for (var name in all) __defProp(target, name, {
7
- get: all[name],
8
- enumerable: true
9
- });
7
+ for (var name in all) __defProp(target, name, {
8
+ get: all[name],
9
+ enumerable: true
10
+ });
10
11
  };
11
12
  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, {
14
- get: () => from[key],
15
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
- });
17
- }
18
- return to;
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ }
19
+ return to;
19
20
  };
20
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
- value: true
22
- }), mod);
21
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
22
  var cubicBezier_exports = {};
24
- __export(cubicBezier_exports, {
25
- bezier: () => bezier
26
- });
23
+ __export(cubicBezier_exports, { bezier: () => bezier });
27
24
  module.exports = __toCommonJS(cubicBezier_exports);
28
25
  const NEWTON_ITERATIONS = 4;
29
- const NEWTON_MIN_SLOPE = 1e-3;
26
+ const NEWTON_MIN_SLOPE = .001;
30
27
  const SUBDIVISION_PRECISION = 1e-7;
31
28
  const SUBDIVISION_MAX_ITERATIONS = 10;
32
29
  const kSplineTableSize = 11;
33
30
  const kSampleStepSize = 1 / (kSplineTableSize - 1);
34
31
  const float32ArraySupported = typeof Float32Array === "function";
35
32
  function A(aA1, aA2) {
36
- return 1 - 3 * aA2 + 3 * aA1;
33
+ return 1 - 3 * aA2 + 3 * aA1;
37
34
  }
38
35
  function B(aA1, aA2) {
39
- return 3 * aA2 - 6 * aA1;
36
+ return 3 * aA2 - 6 * aA1;
40
37
  }
41
38
  function C(aA1) {
42
- return 3 * aA1;
39
+ return 3 * aA1;
43
40
  }
44
41
  function calcBezier(aT, aA1, aA2) {
45
- return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;
42
+ return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;
46
43
  }
47
44
  function getSlope(aT, aA1, aA2) {
48
- return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
45
+ return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
49
46
  }
50
47
  function binarySubdivide(aX, aA, aB, mX1, mX2) {
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);
63
- return currentT;
48
+ let currentX;
49
+ let currentT;
50
+ let i = 0;
51
+ do {
52
+ currentT = aA + (aB - aA) / 2;
53
+ currentX = calcBezier(currentT, mX1, mX2) - aX;
54
+ if (currentX > 0) {
55
+ aB = currentT;
56
+ } else {
57
+ aA = currentT;
58
+ }
59
+ } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);
60
+ return currentT;
64
61
  }
65
62
  function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {
66
- for (let i = 0; i < NEWTON_ITERATIONS; ++i) {
67
- const currentSlope = getSlope(aGuessT, mX1, mX2);
68
- if (currentSlope === 0) {
69
- return aGuessT;
70
- }
71
- const currentX = calcBezier(aGuessT, mX1, mX2) - aX;
72
- aGuessT -= currentX / currentSlope;
73
- }
74
- return aGuessT;
63
+ for (let i = 0; i < NEWTON_ITERATIONS; ++i) {
64
+ const currentSlope = getSlope(aGuessT, mX1, mX2);
65
+ if (currentSlope === 0) {
66
+ return aGuessT;
67
+ }
68
+ const currentX = calcBezier(aGuessT, mX1, mX2) - aX;
69
+ aGuessT -= currentX / currentSlope;
70
+ }
71
+ return aGuessT;
75
72
  }
76
73
  function LinearEasing(x) {
77
- return x;
74
+ return x;
78
75
  }
79
76
  function bezier(mX1, mY1, mX2, mY2) {
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
- }
90
- function getTForX(aX) {
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
- }
97
- --currentSample;
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);
108
- }
109
- return function BezierEasing(x) {
110
- if (x === 0 || x === 1) {
111
- return x;
112
- }
113
- return calcBezier(getTForX(x), mY1, mY2);
114
- };
115
- }
77
+ if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {
78
+ throw new Error("bezier x values must be in [0, 1] range");
79
+ }
80
+ if (mX1 === mY1 && mX2 === mY2) {
81
+ return LinearEasing;
82
+ }
83
+ const sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);
84
+ for (let i = 0; i < kSplineTableSize; ++i) {
85
+ sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
86
+ }
87
+ function getTForX(aX) {
88
+ let intervalStart = 0;
89
+ let currentSample = 1;
90
+ const lastSample = kSplineTableSize - 1;
91
+ for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {
92
+ intervalStart += kSampleStepSize;
93
+ }
94
+ --currentSample;
95
+ const dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);
96
+ const guessForT = intervalStart + dist * kSampleStepSize;
97
+ const initialSlope = getSlope(guessForT, mX1, mX2);
98
+ if (initialSlope >= NEWTON_MIN_SLOPE) {
99
+ return newtonRaphsonIterate(aX, guessForT, mX1, mX2);
100
+ }
101
+ if (initialSlope === 0) {
102
+ return guessForT;
103
+ }
104
+ return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
105
+ }
106
+ return function BezierEasing(x) {
107
+ if (x === 0 || x === 1) {
108
+ return x;
109
+ }
110
+ return calcBezier(getTForX(x), mY1, mY2);
111
+ };
112
+ }
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all) __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true
12
+ });
13
+ };
14
+ var __copyProps = (to, from, except, desc) => {
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
17
+ get: () => from[key],
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
21
+ return to;
22
+ };
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var cubicBezier_exports = {};
25
+ __export(cubicBezier_exports, { bezier: () => bezier });
26
+ module.exports = __toCommonJS(cubicBezier_exports);
27
+ var NEWTON_ITERATIONS = 4;
28
+ var NEWTON_MIN_SLOPE = .001;
29
+ var SUBDIVISION_PRECISION = 1e-7;
30
+ var SUBDIVISION_MAX_ITERATIONS = 10;
31
+ var kSplineTableSize = 11;
32
+ var kSampleStepSize = 1 / (kSplineTableSize - 1);
33
+ var float32ArraySupported = typeof Float32Array === "function";
34
+ function A(aA1, aA2) {
35
+ return 1 - 3 * aA2 + 3 * aA1;
36
+ }
37
+ function B(aA1, aA2) {
38
+ return 3 * aA2 - 6 * aA1;
39
+ }
40
+ function C(aA1) {
41
+ return 3 * aA1;
42
+ }
43
+ function calcBezier(aT, aA1, aA2) {
44
+ return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;
45
+ }
46
+ function getSlope(aT, aA1, aA2) {
47
+ return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
48
+ }
49
+ function binarySubdivide(aX, aA, aB, mX1, mX2) {
50
+ var currentX;
51
+ var currentT;
52
+ var i = 0;
53
+ do {
54
+ currentT = aA + (aB - aA) / 2;
55
+ currentX = calcBezier(currentT, mX1, mX2) - aX;
56
+ if (currentX > 0) {
57
+ aB = currentT;
58
+ } else {
59
+ aA = currentT;
60
+ }
61
+ } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);
62
+ return currentT;
63
+ }
64
+ function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {
65
+ for (var i = 0; i < NEWTON_ITERATIONS; ++i) {
66
+ var currentSlope = getSlope(aGuessT, mX1, mX2);
67
+ if (currentSlope === 0) {
68
+ return aGuessT;
69
+ }
70
+ var currentX = calcBezier(aGuessT, mX1, mX2) - aX;
71
+ aGuessT -= currentX / currentSlope;
72
+ }
73
+ return aGuessT;
74
+ }
75
+ function LinearEasing(x) {
76
+ return x;
77
+ }
78
+ function bezier(mX1, mY1, mX2, mY2) {
79
+ if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {
80
+ throw new Error("bezier x values must be in [0, 1] range");
81
+ }
82
+ if (mX1 === mY1 && mX2 === mY2) {
83
+ return LinearEasing;
84
+ }
85
+ var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);
86
+ for (var i = 0; i < kSplineTableSize; ++i) {
87
+ sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
88
+ }
89
+ function getTForX(aX) {
90
+ var intervalStart = 0;
91
+ var currentSample = 1;
92
+ var lastSample = kSplineTableSize - 1;
93
+ for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {
94
+ intervalStart += kSampleStepSize;
95
+ }
96
+ --currentSample;
97
+ var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);
98
+ var guessForT = intervalStart + dist * kSampleStepSize;
99
+ var initialSlope = getSlope(guessForT, mX1, mX2);
100
+ if (initialSlope >= NEWTON_MIN_SLOPE) {
101
+ return newtonRaphsonIterate(aX, guessForT, mX1, mX2);
102
+ }
103
+ if (initialSlope === 0) {
104
+ return guessForT;
105
+ }
106
+ return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
107
+ }
108
+ return function BezierEasing(x) {
109
+ if (x === 0 || x === 1) {
110
+ return x;
111
+ }
112
+ return calcBezier(getTForX(x), mY1, mY2);
113
+ };
114
+ }
@@ -1,118 +1,116 @@
1
1
  "use strict";
2
2
 
3
+
3
4
  var __defProp = Object.defineProperty;
4
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
8
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: true
11
- });
9
+ for (var name in all) __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true
12
+ });
12
13
  };
13
14
  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, {
16
- get: () => from[key],
17
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
- });
19
- }
20
- return to;
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
17
+ get: () => from[key],
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
21
+ return to;
21
22
  };
22
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
- value: true
24
- }), mod);
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
24
  var cubicBezier_exports = {};
26
- __export(cubicBezier_exports, {
27
- bezier: () => bezier
28
- });
25
+ __export(cubicBezier_exports, { bezier: () => bezier });
29
26
  module.exports = __toCommonJS(cubicBezier_exports);
30
27
  var NEWTON_ITERATIONS = 4;
31
- var NEWTON_MIN_SLOPE = 1e-3;
28
+ var NEWTON_MIN_SLOPE = .001;
32
29
  var SUBDIVISION_PRECISION = 1e-7;
33
30
  var SUBDIVISION_MAX_ITERATIONS = 10;
34
31
  var kSplineTableSize = 11;
35
32
  var kSampleStepSize = 1 / (kSplineTableSize - 1);
36
33
  var float32ArraySupported = typeof Float32Array === "function";
37
34
  function A(aA1, aA2) {
38
- return 1 - 3 * aA2 + 3 * aA1;
35
+ return 1 - 3 * aA2 + 3 * aA1;
39
36
  }
40
37
  function B(aA1, aA2) {
41
- return 3 * aA2 - 6 * aA1;
38
+ return 3 * aA2 - 6 * aA1;
42
39
  }
43
40
  function C(aA1) {
44
- return 3 * aA1;
41
+ return 3 * aA1;
45
42
  }
46
43
  function calcBezier(aT, aA1, aA2) {
47
- return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;
44
+ return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;
48
45
  }
49
46
  function getSlope(aT, aA1, aA2) {
50
- return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
47
+ return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
51
48
  }
52
49
  function binarySubdivide(aX, aA, aB, mX1, mX2) {
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);
65
- return currentT;
50
+ var currentX;
51
+ var currentT;
52
+ var i = 0;
53
+ do {
54
+ currentT = aA + (aB - aA) / 2;
55
+ currentX = calcBezier(currentT, mX1, mX2) - aX;
56
+ if (currentX > 0) {
57
+ aB = currentT;
58
+ } else {
59
+ aA = currentT;
60
+ }
61
+ } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);
62
+ return currentT;
66
63
  }
67
64
  function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {
68
- for (var i = 0; i < NEWTON_ITERATIONS; ++i) {
69
- var currentSlope = getSlope(aGuessT, mX1, mX2);
70
- if (currentSlope === 0) {
71
- return aGuessT;
72
- }
73
- var currentX = calcBezier(aGuessT, mX1, mX2) - aX;
74
- aGuessT -= currentX / currentSlope;
75
- }
76
- return aGuessT;
65
+ for (var i = 0; i < NEWTON_ITERATIONS; ++i) {
66
+ var currentSlope = getSlope(aGuessT, mX1, mX2);
67
+ if (currentSlope === 0) {
68
+ return aGuessT;
69
+ }
70
+ var currentX = calcBezier(aGuessT, mX1, mX2) - aX;
71
+ aGuessT -= currentX / currentSlope;
72
+ }
73
+ return aGuessT;
77
74
  }
78
75
  function LinearEasing(x) {
79
- return x;
76
+ return x;
80
77
  }
81
78
  function bezier(mX1, mY1, mX2, mY2) {
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
- }
92
- function getTForX(aX) {
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
- }
99
- --currentSample;
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);
110
- }
111
- return function BezierEasing(x) {
112
- if (x === 0 || x === 1) {
113
- return x;
114
- }
115
- return calcBezier(getTForX(x), mY1, mY2);
116
- };
79
+ if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {
80
+ throw new Error("bezier x values must be in [0, 1] range");
81
+ }
82
+ if (mX1 === mY1 && mX2 === mY2) {
83
+ return LinearEasing;
84
+ }
85
+ var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);
86
+ for (var i = 0; i < kSplineTableSize; ++i) {
87
+ sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
88
+ }
89
+ function getTForX(aX) {
90
+ var intervalStart = 0;
91
+ var currentSample = 1;
92
+ var lastSample = kSplineTableSize - 1;
93
+ for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {
94
+ intervalStart += kSampleStepSize;
95
+ }
96
+ --currentSample;
97
+ var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);
98
+ var guessForT = intervalStart + dist * kSampleStepSize;
99
+ var initialSlope = getSlope(guessForT, mX1, mX2);
100
+ if (initialSlope >= NEWTON_MIN_SLOPE) {
101
+ return newtonRaphsonIterate(aX, guessForT, mX1, mX2);
102
+ }
103
+ if (initialSlope === 0) {
104
+ return guessForT;
105
+ }
106
+ return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
107
+ }
108
+ return function BezierEasing(x) {
109
+ if (x === 0 || x === 1) {
110
+ return x;
111
+ }
112
+ return calcBezier(getTForX(x), mY1, mY2);
113
+ };
117
114
  }
115
+
118
116
  //# 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","BezierEasing"],"sources":["../../src/cubicBezier.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"cubicBezier.native.js","names":[],"sources":["cjs/cubicBezier.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar cubicBezier_exports = {};\n__export(cubicBezier_exports, {\n bezier: () => bezier\n});\nmodule.exports = __toCommonJS(cubicBezier_exports);\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 1e-3;\nvar SUBDIVISION_PRECISION = 1e-7;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1 / (kSplineTableSize - 1);\nvar float32ArraySupported = typeof Float32Array === \"function\";\nfunction A(aA1, aA2) {\n return 1 - 3 * aA2 + 3 * aA1;\n}\nfunction B(aA1, aA2) {\n return 3 * aA2 - 6 * aA1;\n}\nfunction C(aA1) {\n return 3 * aA1;\n}\nfunction calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n}\nfunction getSlope(aT, aA1, aA2) {\n return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);\n}\nfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX;\n var currentT;\n var i = 0;\n do {\n currentT = aA + (aB - aA) / 2;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n}\nfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\nfunction LinearEasing(x) {\n return x;\n}\nfunction bezier(mX1, mY1, mX2, mY2) {\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {\n throw new Error(\"bezier x values must be in [0, 1] range\");\n }\n if (mX1 === mY1 && mX2 === mY2) {\n return LinearEasing;\n }\n var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n function getTForX(aX) {\n var intervalStart = 0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n if (initialSlope === 0) {\n return guessForT;\n }\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n return function BezierEasing(x) {\n if (x === 0 || x === 1) {\n return x;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n}\n//# sourceMappingURL=cubicBezier.js.map\n"],"mappings":"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"}
@@ -1,62 +1,49 @@
1
+
1
2
  var __defProp = Object.defineProperty;
2
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
6
  var __export = (target, all) => {
6
- for (var name in all) __defProp(target, name, {
7
- get: all[name],
8
- enumerable: true
9
- });
7
+ for (var name in all) __defProp(target, name, {
8
+ get: all[name],
9
+ enumerable: true
10
+ });
10
11
  };
11
12
  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, {
14
- get: () => from[key],
15
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
- });
17
- }
18
- return to;
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ }
19
+ return to;
19
20
  };
20
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
- value: true
22
- }), mod);
21
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
22
  var index_exports = {};
24
- __export(index_exports, {
25
- animate: () => animate
26
- });
23
+ __export(index_exports, { animate: () => animate });
27
24
  module.exports = __toCommonJS(index_exports);
28
25
  var import_cubicBezier = require("./cubicBezier.cjs");
29
26
  function animate(param) {
30
- let start = null;
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;
44
- function frame(timestamp) {
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;
51
- param.onUpdate({
52
- x,
53
- y,
54
- scaleX,
55
- scaleY
56
- });
57
- if (progress < param.duration) {
58
- requestAnimationFrame(frame);
59
- }
60
- }
61
- requestAnimationFrame(frame);
62
- }
27
+ let start = null;
28
+ const easing = param.cubicBezier ? (0, import_cubicBezier.bezier)(...param.cubicBezier) : (v) => v;
29
+ const { x: fromX, y: fromY, scaleX: fromScaleX, scaleY: fromScaleY } = param.from;
30
+ const { x: toX, y: toY, scaleX: toScaleX, scaleY: toScaleY } = param.to;
31
+ function frame(timestamp) {
32
+ if (!start) start = timestamp;
33
+ const progress = timestamp - start;
34
+ const x = toX !== void 0 ? fromX + (toX - fromX) * easing(progress / param.duration) : void 0;
35
+ const y = toY !== void 0 ? fromY + (toY - fromY) * easing(progress / param.duration) : void 0;
36
+ const scaleX = toScaleX !== void 0 ? fromScaleX + (toScaleX - fromScaleX) * easing(progress / param.duration) : void 0;
37
+ const scaleY = toScaleY !== void 0 ? fromScaleY + (toScaleY - fromScaleY) * easing(progress / param.duration) : void 0;
38
+ param.onUpdate({
39
+ x,
40
+ y,
41
+ scaleX,
42
+ scaleY
43
+ });
44
+ if (progress < param.duration) {
45
+ requestAnimationFrame(frame);
46
+ }
47
+ }
48
+ requestAnimationFrame(frame);
49
+ }