@tamagui/cubic-bezier-animator 1.123.0 → 1.123.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.
- package/package.json +2 -3
- package/dist/jsx/cubicBezier.js +0 -61
- package/dist/jsx/cubicBezier.js.map +0 -6
- package/dist/jsx/cubicBezier.mjs +0 -57
- package/dist/jsx/cubicBezier.mjs.map +0 -1
- package/dist/jsx/cubicBezier.native.js +0 -58
- package/dist/jsx/cubicBezier.native.js.map +0 -6
- package/dist/jsx/index.js +0 -15
- package/dist/jsx/index.js.map +0 -6
- package/dist/jsx/index.mjs +0 -34
- package/dist/jsx/index.mjs.map +0 -1
- package/dist/jsx/index.native.js +0 -21
- package/dist/jsx/index.native.js.map +0 -6
package/package.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/cubic-bezier-animator",
|
|
3
|
-
"version": "1.123.
|
|
3
|
+
"version": "1.123.1",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"source": "src/index.tsx",
|
|
6
6
|
"types": "./types/index.d.ts",
|
|
7
7
|
"main": "dist/cjs",
|
|
8
8
|
"module": "dist/esm",
|
|
9
|
-
"module:jsx": "dist/jsx",
|
|
10
9
|
"files": [
|
|
11
10
|
"src",
|
|
12
11
|
"types",
|
|
@@ -21,7 +20,7 @@
|
|
|
21
20
|
"clean:build": "tamagui-build clean:build"
|
|
22
21
|
},
|
|
23
22
|
"devDependencies": {
|
|
24
|
-
"@tamagui/build": "1.123.
|
|
23
|
+
"@tamagui/build": "1.123.1"
|
|
25
24
|
},
|
|
26
25
|
"exports": {
|
|
27
26
|
"./package.json": "./package.json",
|
package/dist/jsx/cubicBezier.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
const float32ArraySupported = typeof Float32Array == "function";
|
|
2
|
-
function A(aA1, aA2) {
|
|
3
|
-
return 1 - 3 * aA2 + 3 * aA1;
|
|
4
|
-
}
|
|
5
|
-
function B(aA1, aA2) {
|
|
6
|
-
return 3 * aA2 - 6 * aA1;
|
|
7
|
-
}
|
|
8
|
-
function C(aA1) {
|
|
9
|
-
return 3 * aA1;
|
|
10
|
-
}
|
|
11
|
-
function calcBezier(aT, aA1, aA2) {
|
|
12
|
-
return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;
|
|
13
|
-
}
|
|
14
|
-
function getSlope(aT, aA1, aA2) {
|
|
15
|
-
return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
|
|
16
|
-
}
|
|
17
|
-
function binarySubdivide(aX, aA, aB, mX1, mX2) {
|
|
18
|
-
let currentX, currentT, i = 0;
|
|
19
|
-
do
|
|
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);
|
|
22
|
-
return currentT;
|
|
23
|
-
}
|
|
24
|
-
function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {
|
|
25
|
-
for (let i = 0; i < 4; ++i) {
|
|
26
|
-
const currentSlope = getSlope(aGuessT, mX1, mX2);
|
|
27
|
-
if (currentSlope === 0)
|
|
28
|
-
return aGuessT;
|
|
29
|
-
const currentX = calcBezier(aGuessT, mX1, mX2) - aX;
|
|
30
|
-
aGuessT -= currentX / currentSlope;
|
|
31
|
-
}
|
|
32
|
-
return aGuessT;
|
|
33
|
-
}
|
|
34
|
-
function LinearEasing(x) {
|
|
35
|
-
return x;
|
|
36
|
-
}
|
|
37
|
-
function bezier(mX1, mY1, mX2, mY2) {
|
|
38
|
-
if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1))
|
|
39
|
-
throw new Error("bezier x values must be in [0, 1] range");
|
|
40
|
-
if (mX1 === mY1 && mX2 === mY2)
|
|
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);
|
|
45
|
-
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;
|
|
50
|
-
--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);
|
|
53
|
-
}
|
|
54
|
-
return function(x) {
|
|
55
|
-
return x === 0 || x === 1 ? x : calcBezier(getTForX(x), mY1, mY2);
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
export {
|
|
59
|
-
bezier
|
|
60
|
-
};
|
|
61
|
-
//# sourceMappingURL=cubicBezier.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
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": []
|
|
6
|
-
}
|
package/dist/jsx/cubicBezier.mjs
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
const float32ArraySupported = typeof Float32Array == "function";
|
|
2
|
-
function A(aA1, aA2) {
|
|
3
|
-
return 1 - 3 * aA2 + 3 * aA1;
|
|
4
|
-
}
|
|
5
|
-
function B(aA1, aA2) {
|
|
6
|
-
return 3 * aA2 - 6 * aA1;
|
|
7
|
-
}
|
|
8
|
-
function C(aA1) {
|
|
9
|
-
return 3 * aA1;
|
|
10
|
-
}
|
|
11
|
-
function calcBezier(aT, aA1, aA2) {
|
|
12
|
-
return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;
|
|
13
|
-
}
|
|
14
|
-
function getSlope(aT, aA1, aA2) {
|
|
15
|
-
return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
|
|
16
|
-
}
|
|
17
|
-
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);
|
|
22
|
-
return currentT;
|
|
23
|
-
}
|
|
24
|
-
function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {
|
|
25
|
-
for (let i = 0; i < 4; ++i) {
|
|
26
|
-
const currentSlope = getSlope(aGuessT, mX1, mX2);
|
|
27
|
-
if (currentSlope === 0) return aGuessT;
|
|
28
|
-
const currentX = calcBezier(aGuessT, mX1, mX2) - aX;
|
|
29
|
-
aGuessT -= currentX / currentSlope;
|
|
30
|
-
}
|
|
31
|
-
return aGuessT;
|
|
32
|
-
}
|
|
33
|
-
function LinearEasing(x) {
|
|
34
|
-
return x;
|
|
35
|
-
}
|
|
36
|
-
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);
|
|
41
|
-
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;
|
|
46
|
-
--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);
|
|
51
|
-
}
|
|
52
|
-
return function (x) {
|
|
53
|
-
return x === 0 || x === 1 ? x : calcBezier(getTForX(x), mY1, mY2);
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
export { bezier };
|
|
57
|
-
//# sourceMappingURL=cubicBezier.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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,58 +0,0 @@
|
|
|
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
|
-
function A(aA1, aA2) {
|
|
3
|
-
return 1 - 3 * aA2 + 3 * aA1;
|
|
4
|
-
}
|
|
5
|
-
function B(aA1, aA2) {
|
|
6
|
-
return 3 * aA2 - 6 * aA1;
|
|
7
|
-
}
|
|
8
|
-
function C(aA1) {
|
|
9
|
-
return 3 * aA1;
|
|
10
|
-
}
|
|
11
|
-
function calcBezier(aT, aA1, aA2) {
|
|
12
|
-
return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;
|
|
13
|
-
}
|
|
14
|
-
function getSlope(aT, aA1, aA2) {
|
|
15
|
-
return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
|
|
16
|
-
}
|
|
17
|
-
function binarySubdivide(aX, aA, aB, mX1, mX2) {
|
|
18
|
-
var currentX, currentT, i = 0;
|
|
19
|
-
do
|
|
20
|
-
currentT = aA + (aB - aA) / 2, currentX = calcBezier(currentT, mX1, mX2) - aX, currentX > 0 ? aB = currentT : aA = currentT;
|
|
21
|
-
while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);
|
|
22
|
-
return currentT;
|
|
23
|
-
}
|
|
24
|
-
function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {
|
|
25
|
-
for (var i = 0; i < NEWTON_ITERATIONS; ++i) {
|
|
26
|
-
var currentSlope = getSlope(aGuessT, mX1, mX2);
|
|
27
|
-
if (currentSlope === 0)
|
|
28
|
-
return aGuessT;
|
|
29
|
-
var currentX = calcBezier(aGuessT, mX1, mX2) - aX;
|
|
30
|
-
aGuessT -= currentX / currentSlope;
|
|
31
|
-
}
|
|
32
|
-
return aGuessT;
|
|
33
|
-
}
|
|
34
|
-
function LinearEasing(x) {
|
|
35
|
-
return x;
|
|
36
|
-
}
|
|
37
|
-
function bezier(mX1, mY1, mX2, mY2) {
|
|
38
|
-
if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1))
|
|
39
|
-
throw new Error("bezier x values must be in [0, 1] range");
|
|
40
|
-
if (mX1 === mY1 && mX2 === mY2)
|
|
41
|
-
return LinearEasing;
|
|
42
|
-
for (var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize), i = 0; i < kSplineTableSize; ++i)
|
|
43
|
-
sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
|
|
44
|
-
function getTForX(aX) {
|
|
45
|
-
for (var intervalStart = 0, currentSample = 1, lastSample = kSplineTableSize - 1; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample)
|
|
46
|
-
intervalStart += kSampleStepSize;
|
|
47
|
-
--currentSample;
|
|
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);
|
|
50
|
-
}
|
|
51
|
-
return function(x) {
|
|
52
|
-
return x === 0 || x === 1 ? x : calcBezier(getTForX(x), mY1, mY2);
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
export {
|
|
56
|
-
bezier
|
|
57
|
-
};
|
|
58
|
-
//# sourceMappingURL=cubicBezier.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/Users/n8/tamagui/code/core/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
|
-
}
|
package/dist/jsx/index.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { bezier } from "./cubicBezier";
|
|
2
|
-
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;
|
|
5
|
-
function frame(timestamp) {
|
|
6
|
-
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);
|
|
9
|
-
}
|
|
10
|
-
requestAnimationFrame(frame);
|
|
11
|
-
}
|
|
12
|
-
export {
|
|
13
|
-
animate
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=index.js.map
|
package/dist/jsx/index.js.map
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
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": []
|
|
6
|
-
}
|
package/dist/jsx/index.mjs
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { bezier } from "./cubicBezier.mjs";
|
|
2
|
-
function animate(param) {
|
|
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;
|
|
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;
|
|
24
|
-
param.onUpdate({
|
|
25
|
-
x,
|
|
26
|
-
y,
|
|
27
|
-
scaleX,
|
|
28
|
-
scaleY
|
|
29
|
-
}), progress < param.duration && requestAnimationFrame(frame);
|
|
30
|
-
}
|
|
31
|
-
requestAnimationFrame(frame);
|
|
32
|
-
}
|
|
33
|
-
export { animate };
|
|
34
|
-
//# sourceMappingURL=index.mjs.map
|
package/dist/jsx/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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;AAiBhB,SAASC,QAAQC,KAAA,EAAqB;EAC3C,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":[]}
|
package/dist/jsx/index.native.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { bezier } from "./cubicBezier";
|
|
2
|
-
function animate(param) {
|
|
3
|
-
var start = null, easing = param.cubicBezier ? bezier(...param.cubicBezier) : function(v) {
|
|
4
|
-
return v;
|
|
5
|
-
}, { x: fromX, y: fromY, scaleX: fromScaleX, scaleY: fromScaleY } = param.from, { x: toX, y: toY, scaleX: toScaleX, scaleY: toScaleY } = param.to;
|
|
6
|
-
function frame(timestamp) {
|
|
7
|
-
start || (start = timestamp);
|
|
8
|
-
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;
|
|
9
|
-
param.onUpdate({
|
|
10
|
-
x,
|
|
11
|
-
y,
|
|
12
|
-
scaleX,
|
|
13
|
-
scaleY
|
|
14
|
-
}), progress < param.duration && requestAnimationFrame(frame);
|
|
15
|
-
}
|
|
16
|
-
requestAnimationFrame(frame);
|
|
17
|
-
}
|
|
18
|
-
export {
|
|
19
|
-
animate
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/Users/n8/tamagui/code/core/cubic-bezier-animator/src/index.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAASA,cAAc;AAiBhB,SAASC,QAAQC,OAAmB;AACzC,MAAIC,QAAQ,MACNC,SAASF,MAAMG,cAAcL,OAAAA,GAAUE,MAAMG,WAAW,IAAI,SAACC,GAAAA;WAAcA;KAE3E,EAAEC,GAAGC,OAAOC,GAAGC,OAAOC,QAAQC,YAAYC,QAAQC,WAAU,IAAKZ,MAAMa,MACvE,EAAER,GAAGS,KAAKP,GAAGQ,KAAKN,QAAQO,UAAUL,QAAQM,SAAQ,IAAKjB,MAAMkB;AAErE,WAASC,MAAMC,WAAS;AACtB,IAAKnB,UAAOA,QAAQmB;AACpB,QAAMC,WAAWD,YAAYnB,OACvBI,IACJS,QAAQQ,SACJhB,SAAUQ,MAAMR,SAAUJ,OAAOmB,WAAWrB,MAAMuB,QAAQ,IAC1DD,QACAf,IACJQ,QAAQO,SACJd,SAAUO,MAAMP,SAAUN,OAAOmB,WAAWrB,MAAMuB,QAAQ,IAC1DD,QACAb,SACJO,aAAaM,SACTZ,cAAeM,WAAWN,cAAeR,OAAOmB,WAAWrB,MAAMuB,QAAQ,IACzED,QACAX,SACJM,aAAaK,SACTV,cAAeK,WAAWL,cAAeV,OAAOmB,WAAWrB,MAAMuB,QAAQ,IACzED;AACNtB,UAAMwB,SAAS;MAAEnB;MAAGE;MAAGE;MAAQE;IAAO,CAAA,GAElCU,WAAWrB,MAAMuB,YACnBE,sBAAsBN,KAAAA;EAE1B;AACAM,wBAAsBN,KAAAA;AACxB;",
|
|
5
|
-
"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", "undefined", "duration", "onUpdate", "requestAnimationFrame"]
|
|
6
|
-
}
|