@shopify/react-native-skia 0.1.227 → 0.1.228
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/cpp/api/JsiSkCanvas.h +2 -1
- package/cpp/api/JsiSkMatrix.h +27 -11
- package/cpp/api/JsiSkTypeface.h +1 -0
- package/cpp/rnskia/dom/props/MatrixProp.h +14 -3
- package/lib/commonjs/dom/types/Common.d.ts +2 -2
- package/lib/commonjs/dom/types/Common.js.map +1 -1
- package/lib/commonjs/external/reanimated/interpolators.d.ts +1 -0
- package/lib/commonjs/external/reanimated/interpolators.js +16 -3
- package/lib/commonjs/external/reanimated/interpolators.js.map +1 -1
- package/lib/commonjs/external/reanimated/moduleWrapper.d.ts +2 -1
- package/lib/commonjs/external/reanimated/moduleWrapper.js +9 -7
- package/lib/commonjs/external/reanimated/moduleWrapper.js.map +1 -1
- package/lib/commonjs/skia/core/Vector.d.ts +0 -5
- package/lib/commonjs/skia/core/Vector.js +1 -17
- package/lib/commonjs/skia/core/Vector.js.map +1 -1
- package/lib/commonjs/skia/types/Matrix.d.ts +2 -13
- package/lib/commonjs/skia/types/Matrix.js +1 -16
- package/lib/commonjs/skia/types/Matrix.js.map +1 -1
- package/lib/commonjs/skia/types/Matrix4.d.ts +51 -0
- package/lib/commonjs/skia/types/Matrix4.js +111 -12
- package/lib/commonjs/skia/types/Matrix4.js.map +1 -1
- package/lib/commonjs/skia/web/Host.d.ts +2 -3
- package/lib/commonjs/skia/web/Host.js +4 -12
- package/lib/commonjs/skia/web/Host.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkCanvas.js +12 -12
- package/lib/commonjs/skia/web/JsiSkCanvas.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkColorFilterFactory.js +1 -1
- package/lib/commonjs/skia/web/JsiSkColorFilterFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkFont.js +2 -2
- package/lib/commonjs/skia/web/JsiSkFont.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkImage.js +6 -6
- package/lib/commonjs/skia/web/JsiSkImage.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkImageFactory.js +2 -2
- package/lib/commonjs/skia/web/JsiSkImageFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkImageFilterFactory.js +3 -3
- package/lib/commonjs/skia/web/JsiSkImageFilterFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkMaskFilterFactory.js +1 -1
- package/lib/commonjs/skia/web/JsiSkMaskFilterFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkMatrix.d.ts +2 -2
- package/lib/commonjs/skia/web/JsiSkMatrix.js +6 -1
- package/lib/commonjs/skia/web/JsiSkMatrix.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkPaint.js +3 -3
- package/lib/commonjs/skia/web/JsiSkPaint.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkPath.js +4 -4
- package/lib/commonjs/skia/web/JsiSkPath.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkPathEffectFactory.js +1 -1
- package/lib/commonjs/skia/web/JsiSkPathEffectFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkPathFactory.js +1 -1
- package/lib/commonjs/skia/web/JsiSkPathFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkPicture.js +1 -1
- package/lib/commonjs/skia/web/JsiSkPicture.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkShaderFactory.js +5 -5
- package/lib/commonjs/skia/web/JsiSkShaderFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkVerticesFactory.js +3 -3
- package/lib/commonjs/skia/web/JsiSkVerticesFactory.js.map +1 -1
- package/lib/module/dom/types/Common.d.ts +2 -2
- package/lib/module/dom/types/Common.js.map +1 -1
- package/lib/module/external/reanimated/interpolators.d.ts +1 -0
- package/lib/module/external/reanimated/interpolators.js +14 -4
- package/lib/module/external/reanimated/interpolators.js.map +1 -1
- package/lib/module/external/reanimated/moduleWrapper.d.ts +2 -1
- package/lib/module/external/reanimated/moduleWrapper.js +7 -6
- package/lib/module/external/reanimated/moduleWrapper.js.map +1 -1
- package/lib/module/skia/core/Vector.d.ts +0 -5
- package/lib/module/skia/core/Vector.js +0 -13
- package/lib/module/skia/core/Vector.js.map +1 -1
- package/lib/module/skia/types/Matrix.d.ts +2 -13
- package/lib/module/skia/types/Matrix.js +0 -14
- package/lib/module/skia/types/Matrix.js.map +1 -1
- package/lib/module/skia/types/Matrix4.d.ts +51 -0
- package/lib/module/skia/types/Matrix4.js +90 -16
- package/lib/module/skia/types/Matrix4.js.map +1 -1
- package/lib/module/skia/web/Host.d.ts +2 -3
- package/lib/module/skia/web/Host.js +2 -7
- package/lib/module/skia/web/Host.js.map +1 -1
- package/lib/module/skia/web/JsiSkCanvas.js +13 -13
- package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
- package/lib/module/skia/web/JsiSkColorFilterFactory.js +2 -2
- package/lib/module/skia/web/JsiSkColorFilterFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkFont.js +3 -3
- package/lib/module/skia/web/JsiSkFont.js.map +1 -1
- package/lib/module/skia/web/JsiSkImage.js +7 -7
- package/lib/module/skia/web/JsiSkImage.js.map +1 -1
- package/lib/module/skia/web/JsiSkImageFactory.js +3 -3
- package/lib/module/skia/web/JsiSkImageFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkImageFilterFactory.js +4 -4
- package/lib/module/skia/web/JsiSkImageFilterFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkMaskFilterFactory.js +2 -2
- package/lib/module/skia/web/JsiSkMaskFilterFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkMatrix.d.ts +2 -2
- package/lib/module/skia/web/JsiSkMatrix.js +6 -1
- package/lib/module/skia/web/JsiSkMatrix.js.map +1 -1
- package/lib/module/skia/web/JsiSkPaint.js +4 -4
- package/lib/module/skia/web/JsiSkPaint.js.map +1 -1
- package/lib/module/skia/web/JsiSkPath.js +5 -5
- package/lib/module/skia/web/JsiSkPath.js.map +1 -1
- package/lib/module/skia/web/JsiSkPathEffectFactory.js +2 -2
- package/lib/module/skia/web/JsiSkPathEffectFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkPathFactory.js +2 -2
- package/lib/module/skia/web/JsiSkPathFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkPicture.js +2 -2
- package/lib/module/skia/web/JsiSkPicture.js.map +1 -1
- package/lib/module/skia/web/JsiSkShaderFactory.js +6 -6
- package/lib/module/skia/web/JsiSkShaderFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkVerticesFactory.js +2 -2
- package/lib/module/skia/web/JsiSkVerticesFactory.js.map +1 -1
- package/lib/typescript/src/dom/types/Common.d.ts +2 -2
- package/lib/typescript/src/external/reanimated/interpolators.d.ts +1 -0
- package/lib/typescript/src/external/reanimated/moduleWrapper.d.ts +2 -1
- package/lib/typescript/src/skia/core/Vector.d.ts +0 -5
- package/lib/typescript/src/skia/types/Matrix.d.ts +2 -13
- package/lib/typescript/src/skia/types/Matrix4.d.ts +51 -0
- package/lib/typescript/src/skia/web/Host.d.ts +2 -3
- package/lib/typescript/src/skia/web/JsiSkMatrix.d.ts +2 -2
- package/package.json +2 -1
- package/src/dom/types/Common.ts +3 -1
- package/src/external/reanimated/interpolators.ts +20 -5
- package/src/external/reanimated/moduleWrapper.ts +6 -0
- package/src/skia/core/Vector.ts +0 -7
- package/src/skia/types/Matrix.ts +2 -13
- package/src/skia/types/Matrix4.ts +96 -18
- package/src/skia/web/Host.ts +4 -3
- package/src/skia/web/JsiSkCanvas.ts +22 -15
- package/src/skia/web/JsiSkColorFilterFactory.ts +5 -2
- package/src/skia/web/JsiSkFont.ts +3 -3
- package/src/skia/web/JsiSkImage.ts +14 -11
- package/src/skia/web/JsiSkImageFactory.ts +3 -3
- package/src/skia/web/JsiSkImageFilterFactory.ts +5 -5
- package/src/skia/web/JsiSkMaskFilterFactory.ts +6 -2
- package/src/skia/web/JsiSkMatrix.ts +12 -3
- package/src/skia/web/JsiSkPaint.ts +4 -4
- package/src/skia/web/JsiSkPath.ts +8 -5
- package/src/skia/web/JsiSkPathEffectFactory.ts +2 -2
- package/src/skia/web/JsiSkPathFactory.ts +2 -2
- package/src/skia/web/JsiSkPicture.ts +4 -4
- package/src/skia/web/JsiSkShaderFactory.ts +6 -6
- package/src/skia/web/JsiSkVerticesFactory.ts +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useCallback, useMemo } from "react";
|
|
2
2
|
import { interpolatePaths, interpolateVector } from "../../animation";
|
|
3
3
|
import { Skia } from "../../skia";
|
|
4
|
-
import { useAnimatedReaction, useFrameCallback, useSharedValue } from "./moduleWrapper";
|
|
4
|
+
import { useAnimatedReaction, useFrameCallback, useSharedValue, useDerivedValue } from "./moduleWrapper";
|
|
5
5
|
export const notifyChange = value => {
|
|
6
6
|
"worklet";
|
|
7
7
|
|
|
@@ -10,13 +10,23 @@ export const notifyChange = value => {
|
|
|
10
10
|
value._value = value.value;
|
|
11
11
|
}
|
|
12
12
|
};
|
|
13
|
+
export const usePathValue = cb => {
|
|
14
|
+
const pathInit = useMemo(() => Skia.Path.Make(), []);
|
|
15
|
+
const path = useSharedValue(pathInit);
|
|
16
|
+
useDerivedValue(() => {
|
|
17
|
+
path.value.reset();
|
|
18
|
+
cb(path.value);
|
|
19
|
+
notifyChange(path);
|
|
20
|
+
});
|
|
21
|
+
return path;
|
|
22
|
+
};
|
|
13
23
|
export const useClock = () => {
|
|
14
24
|
const clock = useSharedValue(0);
|
|
15
|
-
const callback =
|
|
25
|
+
const callback = useCallback(info => {
|
|
16
26
|
"worklet";
|
|
17
27
|
|
|
18
28
|
clock.value = info.timeSinceFirstFrame;
|
|
19
|
-
})
|
|
29
|
+
}, [clock]);
|
|
20
30
|
useFrameCallback(callback);
|
|
21
31
|
return clock;
|
|
22
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","interpolatePaths","interpolateVector","Skia","useAnimatedReaction","useFrameCallback","useSharedValue","useDerivedValue","notifyChange","value","_WORKLET","_value","usePathValue","cb","pathInit","Path","Make","path","reset","useClock","clock","callback","info","timeSinceFirstFrame","useInterpolator","factory","interpolator","input","output","options","init","result","val","usePathInterpolation","outputRange","useVectorInterpolation","Point"],"sources":["interpolators.ts"],"sourcesContent":["import type {\n ExtrapolationType,\n FrameInfo,\n SharedValue,\n} from \"react-native-reanimated\";\nimport { useCallback, useMemo } from \"react\";\n\nimport type { SkPath, SkPoint } from \"../../skia/types\";\nimport { interpolatePaths, interpolateVector } from \"../../animation\";\nimport { Skia } from \"../../skia\";\n\nimport {\n useAnimatedReaction,\n useFrameCallback,\n useSharedValue,\n useDerivedValue,\n} from \"./moduleWrapper\";\n\nexport const notifyChange = (value: SharedValue<unknown>) => {\n \"worklet\";\n if (_WORKLET) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (value as any)._value = value.value;\n }\n};\n\nexport const usePathValue = (cb: (path: SkPath) => void) => {\n const pathInit = useMemo(() => Skia.Path.Make(), []);\n const path = useSharedValue(pathInit);\n useDerivedValue(() => {\n path.value.reset();\n cb(path.value);\n notifyChange(path);\n });\n return path;\n};\n\nexport const useClock = () => {\n const clock = useSharedValue(0);\n const callback = useCallback(\n (info: FrameInfo) => {\n \"worklet\";\n clock.value = info.timeSinceFirstFrame;\n },\n [clock]\n );\n useFrameCallback(callback);\n return clock;\n};\n\n/**\n * @worklet\n */\ntype Interpolator<T> = (\n value: number,\n input: number[],\n output: T[],\n options: ExtrapolationType,\n result: T\n) => T;\n\nconst useInterpolator = <T>(\n factory: () => T,\n value: SharedValue<number>,\n interpolator: Interpolator<T>,\n input: number[],\n output: T[],\n options?: ExtrapolationType\n) => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const init = useMemo(() => factory(), []);\n const result = useSharedValue(init);\n useAnimatedReaction(\n () => value.value,\n (val) => {\n result.value = interpolator(val, input, output, options, result.value);\n notifyChange(result);\n },\n [input, output, options]\n );\n return result;\n};\n\nexport const usePathInterpolation = (\n value: SharedValue<number>,\n input: number[],\n outputRange: SkPath[],\n options?: ExtrapolationType\n) =>\n useInterpolator(\n () => Skia.Path.Make(),\n value,\n interpolatePaths,\n input,\n outputRange,\n options\n );\n\nexport const useVectorInterpolation = (\n value: SharedValue<number>,\n input: number[],\n outputRange: SkPoint[],\n options?: ExtrapolationType\n) =>\n useInterpolator(\n () => Skia.Point(0, 0),\n value,\n interpolateVector,\n input,\n outputRange,\n options\n );\n"],"mappings":"AAKA,SAASA,WAAT,EAAsBC,OAAtB,QAAqC,OAArC;AAGA,SAASC,gBAAT,EAA2BC,iBAA3B,QAAoD,iBAApD;AACA,SAASC,IAAT,QAAqB,YAArB;AAEA,SACEC,mBADF,EAEEC,gBAFF,EAGEC,cAHF,EAIEC,eAJF,QAKO,iBALP;AAOA,OAAO,MAAMC,YAAY,GAAIC,KAAD,IAAiC;EAC3D;;EACA,IAAIC,QAAJ,EAAc;IACZ;IACCD,KAAD,CAAeE,MAAf,GAAwBF,KAAK,CAACA,KAA9B;EACD;AACF,CANM;AAQP,OAAO,MAAMG,YAAY,GAAIC,EAAD,IAAgC;EAC1D,MAAMC,QAAQ,GAAGd,OAAO,CAAC,MAAMG,IAAI,CAACY,IAAL,CAAUC,IAAV,EAAP,EAAyB,EAAzB,CAAxB;EACA,MAAMC,IAAI,GAAGX,cAAc,CAACQ,QAAD,CAA3B;EACAP,eAAe,CAAC,MAAM;IACpBU,IAAI,CAACR,KAAL,CAAWS,KAAX;IACAL,EAAE,CAACI,IAAI,CAACR,KAAN,CAAF;IACAD,YAAY,CAACS,IAAD,CAAZ;EACD,CAJc,CAAf;EAKA,OAAOA,IAAP;AACD,CATM;AAWP,OAAO,MAAME,QAAQ,GAAG,MAAM;EAC5B,MAAMC,KAAK,GAAGd,cAAc,CAAC,CAAD,CAA5B;EACA,MAAMe,QAAQ,GAAGtB,WAAW,CACzBuB,IAAD,IAAqB;IACnB;;IACAF,KAAK,CAACX,KAAN,GAAca,IAAI,CAACC,mBAAnB;EACD,CAJyB,EAK1B,CAACH,KAAD,CAL0B,CAA5B;EAOAf,gBAAgB,CAACgB,QAAD,CAAhB;EACA,OAAOD,KAAP;AACD,CAXM;AAaP;AACA;AACA;;AASA,MAAMI,eAAe,GAAG,CACtBC,OADsB,EAEtBhB,KAFsB,EAGtBiB,YAHsB,EAItBC,KAJsB,EAKtBC,MALsB,EAMtBC,OANsB,KAOnB;EACH;EACA,MAAMC,IAAI,GAAG9B,OAAO,CAAC,MAAMyB,OAAO,EAAd,EAAkB,EAAlB,CAApB;EACA,MAAMM,MAAM,GAAGzB,cAAc,CAACwB,IAAD,CAA7B;EACA1B,mBAAmB,CACjB,MAAMK,KAAK,CAACA,KADK,EAEhBuB,GAAD,IAAS;IACPD,MAAM,CAACtB,KAAP,GAAeiB,YAAY,CAACM,GAAD,EAAML,KAAN,EAAaC,MAAb,EAAqBC,OAArB,EAA8BE,MAAM,CAACtB,KAArC,CAA3B;IACAD,YAAY,CAACuB,MAAD,CAAZ;EACD,CALgB,EAMjB,CAACJ,KAAD,EAAQC,MAAR,EAAgBC,OAAhB,CANiB,CAAnB;EAQA,OAAOE,MAAP;AACD,CApBD;;AAsBA,OAAO,MAAME,oBAAoB,GAAG,CAClCxB,KADkC,EAElCkB,KAFkC,EAGlCO,WAHkC,EAIlCL,OAJkC,KAMlCL,eAAe,CACb,MAAMrB,IAAI,CAACY,IAAL,CAAUC,IAAV,EADO,EAEbP,KAFa,EAGbR,gBAHa,EAIb0B,KAJa,EAKbO,WALa,EAMbL,OANa,CANV;AAeP,OAAO,MAAMM,sBAAsB,GAAG,CACpC1B,KADoC,EAEpCkB,KAFoC,EAGpCO,WAHoC,EAIpCL,OAJoC,KAMpCL,eAAe,CACb,MAAMrB,IAAI,CAACiC,KAAL,CAAW,CAAX,EAAc,CAAd,CADO,EAEb3B,KAFa,EAGbP,iBAHa,EAIbyB,KAJa,EAKbO,WALa,EAMbL,OANa,CANV"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { DependencyList } from "react";
|
|
2
|
-
import type { FrameCallback, FrameInfo, SharedValue } from "react-native-reanimated";
|
|
2
|
+
import type { DerivedValue, FrameCallback, FrameInfo, SharedValue } from "react-native-reanimated";
|
|
3
3
|
export declare const HAS_REANIMATED2: boolean;
|
|
4
4
|
export declare const HAS_REANIMATED3: boolean;
|
|
5
5
|
export declare function throwOnMissingReanimated(): void;
|
|
6
6
|
export declare const useSharedValue: <T>(init: T, oneWayReadsOnly?: boolean) => SharedValue<T>;
|
|
7
|
+
export declare const useDerivedValue: <T>(processor: () => T, dependencies?: DependencyList) => DerivedValue<T>;
|
|
7
8
|
export declare const useFrameCallback: (callback: (frameInfo: FrameInfo) => void, autostart?: boolean) => FrameCallback;
|
|
8
9
|
export declare const startMapper: (worklet: () => void, inputs?: unknown[], outputs?: unknown[]) => number;
|
|
9
10
|
export declare const stopMapper: (mapperID: number) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _Reanimated, _Reanimated2, _Reanimated3, _Reanimated4, _Reanimated5, _Reanimated6;
|
|
1
|
+
var _Reanimated, _Reanimated2, _Reanimated3, _Reanimated4, _Reanimated5, _Reanimated6, _Reanimated7;
|
|
2
2
|
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
4
|
// This one is needed for the deprecated useSharedValue function
|
|
@@ -25,11 +25,12 @@ export function throwOnMissingReanimated() {
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
export const useSharedValue = ((_Reanimated = Reanimated2) === null || _Reanimated === void 0 ? void 0 : _Reanimated.useSharedValue) || throwOnMissingReanimated;
|
|
28
|
-
export const
|
|
29
|
-
export const
|
|
30
|
-
export const
|
|
31
|
-
export const
|
|
32
|
-
export const
|
|
28
|
+
export const useDerivedValue = ((_Reanimated2 = Reanimated2) === null || _Reanimated2 === void 0 ? void 0 : _Reanimated2.useDerivedValue) || throwOnMissingReanimated;
|
|
29
|
+
export const useFrameCallback = ((_Reanimated3 = Reanimated2) === null || _Reanimated3 === void 0 ? void 0 : _Reanimated3.useFrameCallback) || throwOnMissingReanimated;
|
|
30
|
+
export const startMapper = ((_Reanimated4 = Reanimated2) === null || _Reanimated4 === void 0 ? void 0 : _Reanimated4.startMapper) || throwOnMissingReanimated;
|
|
31
|
+
export const stopMapper = ((_Reanimated5 = Reanimated2) === null || _Reanimated5 === void 0 ? void 0 : _Reanimated5.stopMapper) || throwOnMissingReanimated;
|
|
32
|
+
export const runOnJS = ((_Reanimated6 = Reanimated2) === null || _Reanimated6 === void 0 ? void 0 : _Reanimated6.runOnJS) || throwOnMissingReanimated;
|
|
33
|
+
export const useAnimatedReaction = ((_Reanimated7 = Reanimated2) === null || _Reanimated7 === void 0 ? void 0 : _Reanimated7.useAnimatedReaction) || throwOnMissingReanimated;
|
|
33
34
|
export const isSharedValue = value => {
|
|
34
35
|
return !!value && (Reanimated3 ? Reanimated3.isSharedValue(value) : value.value !== undefined);
|
|
35
36
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Reanimated2","Reanimated3","reanimatedVersion","require","version","includes","e","HAS_REANIMATED2","HAS_REANIMATED3","throwOnMissingReanimated","Error","useSharedValue","useFrameCallback","startMapper","stopMapper","runOnJS","useAnimatedReaction","isSharedValue","value","undefined"],"sources":["moduleWrapper.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { DependencyList } from \"react\";\nimport type {\n FrameCallback,\n FrameInfo,\n SharedValue,\n} from \"react-native-reanimated\";\n\n// This one is needed for the deprecated useSharedValue function\n// We can remove it once we remove the deprecation\n\nlet Reanimated2: any;\n\nlet Reanimated3: any;\nlet reanimatedVersion: string;\n\ntry {\n Reanimated2 = require(\"react-native-reanimated\");\n reanimatedVersion = require(\"react-native-reanimated/package.json\").version;\n if (\n reanimatedVersion &&\n (reanimatedVersion >= \"3.0.0\" || reanimatedVersion.includes(\"3.0.0-\"))\n ) {\n Reanimated3 = Reanimated2;\n }\n} catch (e) {}\n\nexport const HAS_REANIMATED2 = !!Reanimated2;\nexport const HAS_REANIMATED3 = !!Reanimated3;\n\nexport function throwOnMissingReanimated() {\n if (!HAS_REANIMATED2) {\n throw new Error(\n \"Reanimated was not found, make sure react-native-reanimated package is installed if you want to use \\\n react-native-skia's integration layer API.\"\n );\n }\n}\n\nexport const useSharedValue: <T>(\n init: T,\n oneWayReadsOnly?: boolean\n) => SharedValue<T> = Reanimated2?.useSharedValue || throwOnMissingReanimated;\n\nexport const useFrameCallback: (\n callback: (frameInfo: FrameInfo) => void,\n autostart?: boolean\n) => FrameCallback = Reanimated2?.useFrameCallback || throwOnMissingReanimated;\n\nexport const startMapper: (\n worklet: () => void,\n inputs?: unknown[],\n outputs?: unknown[]\n) => number = Reanimated2?.startMapper || throwOnMissingReanimated;\n\nexport const stopMapper: (mapperID: number) => void =\n Reanimated2?.stopMapper || throwOnMissingReanimated;\n\nexport const runOnJS = Reanimated2?.runOnJS || throwOnMissingReanimated;\n\nexport const useAnimatedReaction: <T>(\n prepare: () => T,\n react: (v: T) => void,\n dependencies?: DependencyList\n) => void = Reanimated2?.useAnimatedReaction || throwOnMissingReanimated;\n\nexport const isSharedValue = <T>(value: unknown): value is SharedValue<T> => {\n return (\n !!value &&\n (Reanimated3\n ? Reanimated3.isSharedValue(value)\n : (value as any).value !== undefined)\n );\n};\n"],"mappings":";;AAAA;
|
|
1
|
+
{"version":3,"names":["Reanimated2","Reanimated3","reanimatedVersion","require","version","includes","e","HAS_REANIMATED2","HAS_REANIMATED3","throwOnMissingReanimated","Error","useSharedValue","useDerivedValue","useFrameCallback","startMapper","stopMapper","runOnJS","useAnimatedReaction","isSharedValue","value","undefined"],"sources":["moduleWrapper.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { DependencyList } from \"react\";\nimport type {\n DerivedValue,\n FrameCallback,\n FrameInfo,\n SharedValue,\n} from \"react-native-reanimated\";\n\n// This one is needed for the deprecated useSharedValue function\n// We can remove it once we remove the deprecation\n\nlet Reanimated2: any;\n\nlet Reanimated3: any;\nlet reanimatedVersion: string;\n\ntry {\n Reanimated2 = require(\"react-native-reanimated\");\n reanimatedVersion = require(\"react-native-reanimated/package.json\").version;\n if (\n reanimatedVersion &&\n (reanimatedVersion >= \"3.0.0\" || reanimatedVersion.includes(\"3.0.0-\"))\n ) {\n Reanimated3 = Reanimated2;\n }\n} catch (e) {}\n\nexport const HAS_REANIMATED2 = !!Reanimated2;\nexport const HAS_REANIMATED3 = !!Reanimated3;\n\nexport function throwOnMissingReanimated() {\n if (!HAS_REANIMATED2) {\n throw new Error(\n \"Reanimated was not found, make sure react-native-reanimated package is installed if you want to use \\\n react-native-skia's integration layer API.\"\n );\n }\n}\n\nexport const useSharedValue: <T>(\n init: T,\n oneWayReadsOnly?: boolean\n) => SharedValue<T> = Reanimated2?.useSharedValue || throwOnMissingReanimated;\n\nexport const useDerivedValue: <T>(\n processor: () => T,\n dependencies?: DependencyList\n) => DerivedValue<T> = Reanimated2?.useDerivedValue || throwOnMissingReanimated;\n\nexport const useFrameCallback: (\n callback: (frameInfo: FrameInfo) => void,\n autostart?: boolean\n) => FrameCallback = Reanimated2?.useFrameCallback || throwOnMissingReanimated;\n\nexport const startMapper: (\n worklet: () => void,\n inputs?: unknown[],\n outputs?: unknown[]\n) => number = Reanimated2?.startMapper || throwOnMissingReanimated;\n\nexport const stopMapper: (mapperID: number) => void =\n Reanimated2?.stopMapper || throwOnMissingReanimated;\n\nexport const runOnJS = Reanimated2?.runOnJS || throwOnMissingReanimated;\n\nexport const useAnimatedReaction: <T>(\n prepare: () => T,\n react: (v: T) => void,\n dependencies?: DependencyList\n) => void = Reanimated2?.useAnimatedReaction || throwOnMissingReanimated;\n\nexport const isSharedValue = <T>(value: unknown): value is SharedValue<T> => {\n return (\n !!value &&\n (Reanimated3\n ? Reanimated3.isSharedValue(value)\n : (value as any).value !== undefined)\n );\n};\n"],"mappings":";;AAAA;AASA;AACA;AAEA,IAAIA,WAAJ;AAEA,IAAIC,WAAJ;AACA,IAAIC,iBAAJ;;AAEA,IAAI;EACFF,WAAW,GAAGG,OAAO,CAAC,yBAAD,CAArB;EACAD,iBAAiB,GAAGC,OAAO,CAAC,sCAAD,CAAP,CAAgDC,OAApE;;EACA,IACEF,iBAAiB,KAChBA,iBAAiB,IAAI,OAArB,IAAgCA,iBAAiB,CAACG,QAAlB,CAA2B,QAA3B,CADhB,CADnB,EAGE;IACAJ,WAAW,GAAGD,WAAd;EACD;AACF,CATD,CASE,OAAOM,CAAP,EAAU,CAAE;;AAEd,OAAO,MAAMC,eAAe,GAAG,CAAC,CAACP,WAA1B;AACP,OAAO,MAAMQ,eAAe,GAAG,CAAC,CAACP,WAA1B;AAEP,OAAO,SAASQ,wBAAT,GAAoC;EACzC,IAAI,CAACF,eAAL,EAAsB;IACpB,MAAM,IAAIG,KAAJ,CACJ;AACN,iDAFU,CAAN;EAID;AACF;AAED,OAAO,MAAMC,cAGM,GAAG,gBAAAX,WAAW,UAAX,kDAAaW,cAAb,KAA+BF,wBAH9C;AAKP,OAAO,MAAMG,eAGO,GAAG,iBAAAZ,WAAW,UAAX,oDAAaY,eAAb,KAAgCH,wBAHhD;AAKP,OAAO,MAAMI,gBAGK,GAAG,iBAAAb,WAAW,UAAX,oDAAaa,gBAAb,KAAiCJ,wBAH/C;AAKP,OAAO,MAAMK,WAIF,GAAG,iBAAAd,WAAW,UAAX,oDAAac,WAAb,KAA4BL,wBAJnC;AAMP,OAAO,MAAMM,UAAsC,GACjD,iBAAAf,WAAW,UAAX,oDAAae,UAAb,KAA2BN,wBADtB;AAGP,OAAO,MAAMO,OAAO,GAAG,iBAAAhB,WAAW,UAAX,oDAAagB,OAAb,KAAwBP,wBAAxC;AAEP,OAAO,MAAMQ,mBAIJ,GAAG,iBAAAjB,WAAW,UAAX,oDAAaiB,mBAAb,KAAoCR,wBAJzC;AAMP,OAAO,MAAMS,aAAa,GAAOC,KAAJ,IAAgD;EAC3E,OACE,CAAC,CAACA,KAAF,KACClB,WAAW,GACRA,WAAW,CAACiB,aAAZ,CAA0BC,KAA1B,CADQ,GAEPA,KAAD,CAAeA,KAAf,KAAyBC,SAH7B,CADF;AAMD,CAPM"}
|
|
@@ -5,8 +5,3 @@ export declare const neg: (a: Vector) => import("../types").SkPoint;
|
|
|
5
5
|
export declare const add: (a: Vector, b: Vector) => import("../types").SkPoint;
|
|
6
6
|
export declare const sub: (a: Vector, b: Vector) => import("../types").SkPoint;
|
|
7
7
|
export declare const dist: (a: Vector, b: Vector) => number;
|
|
8
|
-
export declare const translate: ({ x, y, }: Vector) => [{
|
|
9
|
-
translateX: number;
|
|
10
|
-
}, {
|
|
11
|
-
translateY: number;
|
|
12
|
-
}];
|
|
@@ -27,17 +27,4 @@ export const dist = (a, b) => {
|
|
|
27
27
|
|
|
28
28
|
return Math.hypot(a.x - b.x, a.y - b.y);
|
|
29
29
|
};
|
|
30
|
-
export const translate = _ref => {
|
|
31
|
-
"worklet";
|
|
32
|
-
|
|
33
|
-
let {
|
|
34
|
-
x,
|
|
35
|
-
y
|
|
36
|
-
} = _ref;
|
|
37
|
-
return [{
|
|
38
|
-
translateX: x
|
|
39
|
-
}, {
|
|
40
|
-
translateY: y
|
|
41
|
-
}];
|
|
42
|
-
};
|
|
43
30
|
//# sourceMappingURL=Vector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Skia","vec","x","y","Point","point","neg","a","add","b","sub","dist","Math","hypot"
|
|
1
|
+
{"version":3,"names":["Skia","vec","x","y","Point","point","neg","a","add","b","sub","dist","Math","hypot"],"sources":["Vector.ts"],"sourcesContent":["import { Skia } from \"../Skia\";\nimport type { Vector } from \"../types\";\n\nexport const vec = (x = 0, y?: number) => {\n \"worklet\";\n return Skia.Point(x, y ?? x);\n};\nexport const point = vec;\nexport const neg = (a: Vector) => {\n \"worklet\";\n return vec(-a.x, -a.y);\n};\nexport const add = (a: Vector, b: Vector) => {\n \"worklet\";\n return vec(a.x + b.x, a.y + b.y);\n};\nexport const sub = (a: Vector, b: Vector) => {\n \"worklet\";\n return vec(a.x - b.x, a.y - b.y);\n};\nexport const dist = (a: Vector, b: Vector) => {\n \"worklet\";\n return Math.hypot(a.x - b.x, a.y - b.y);\n};\n"],"mappings":"AAAA,SAASA,IAAT,QAAqB,SAArB;AAGA,OAAO,MAAMC,GAAG,GAAG,YAAuB;EACxC;;EADwC,IAAtBC,CAAsB,uEAAlB,CAAkB;EAAA,IAAfC,CAAe;EAExC,OAAOH,IAAI,CAACI,KAAL,CAAWF,CAAX,EAAcC,CAAd,aAAcA,CAAd,cAAcA,CAAd,GAAmBD,CAAnB,CAAP;AACD,CAHM;AAIP,OAAO,MAAMG,KAAK,GAAGJ,GAAd;AACP,OAAO,MAAMK,GAAG,GAAIC,CAAD,IAAe;EAChC;;EACA,OAAON,GAAG,CAAC,CAACM,CAAC,CAACL,CAAJ,EAAO,CAACK,CAAC,CAACJ,CAAV,CAAV;AACD,CAHM;AAIP,OAAO,MAAMK,GAAG,GAAG,CAACD,CAAD,EAAYE,CAAZ,KAA0B;EAC3C;;EACA,OAAOR,GAAG,CAACM,CAAC,CAACL,CAAF,GAAMO,CAAC,CAACP,CAAT,EAAYK,CAAC,CAACJ,CAAF,GAAMM,CAAC,CAACN,CAApB,CAAV;AACD,CAHM;AAIP,OAAO,MAAMO,GAAG,GAAG,CAACH,CAAD,EAAYE,CAAZ,KAA0B;EAC3C;;EACA,OAAOR,GAAG,CAACM,CAAC,CAACL,CAAF,GAAMO,CAAC,CAACP,CAAT,EAAYK,CAAC,CAACJ,CAAF,GAAMM,CAAC,CAACN,CAApB,CAAV;AACD,CAHM;AAIP,OAAO,MAAMQ,IAAI,GAAG,CAACJ,CAAD,EAAYE,CAAZ,KAA0B;EAC5C;;EACA,OAAOG,IAAI,CAACC,KAAL,CAAWN,CAAC,CAACL,CAAF,GAAMO,CAAC,CAACP,CAAnB,EAAsBK,CAAC,CAACJ,CAAF,GAAMM,CAAC,CAACN,CAA9B,CAAP;AACD,CAHM"}
|
|
@@ -1,20 +1,9 @@
|
|
|
1
1
|
import type { SkJSIInstance } from "./JsiInstance";
|
|
2
2
|
import type { SkCanvas } from "./Canvas";
|
|
3
|
-
import type { Transforms3d } from "./Matrix4";
|
|
4
|
-
export declare enum MatrixIndex {
|
|
5
|
-
ScaleX = 0,
|
|
6
|
-
SkewX = 1,
|
|
7
|
-
TransX = 2,
|
|
8
|
-
SkewY = 3,
|
|
9
|
-
ScaleY = 4,
|
|
10
|
-
TransY = 5,
|
|
11
|
-
Persp0 = 6,
|
|
12
|
-
Persp1 = 7,
|
|
13
|
-
Persp2 = 8
|
|
14
|
-
}
|
|
3
|
+
import type { Matrix3, Matrix4, Transforms3d } from "./Matrix4";
|
|
15
4
|
export declare const isMatrix: (obj: unknown) => obj is SkMatrix;
|
|
16
5
|
export interface SkMatrix extends SkJSIInstance<"Matrix"> {
|
|
17
|
-
concat: (matrix: SkMatrix | number[]) => SkMatrix;
|
|
6
|
+
concat: (matrix: SkMatrix | Matrix4 | Matrix3 | number[]) => SkMatrix;
|
|
18
7
|
translate: (x: number, y: number) => SkMatrix;
|
|
19
8
|
scale: (x: number, y?: number) => SkMatrix;
|
|
20
9
|
skew: (x: number, y: number) => SkMatrix;
|
|
@@ -1,18 +1,4 @@
|
|
|
1
1
|
import { processTransform3d } from "./Matrix4";
|
|
2
|
-
export let MatrixIndex;
|
|
3
|
-
|
|
4
|
-
(function (MatrixIndex) {
|
|
5
|
-
MatrixIndex[MatrixIndex["ScaleX"] = 0] = "ScaleX";
|
|
6
|
-
MatrixIndex[MatrixIndex["SkewX"] = 1] = "SkewX";
|
|
7
|
-
MatrixIndex[MatrixIndex["TransX"] = 2] = "TransX";
|
|
8
|
-
MatrixIndex[MatrixIndex["SkewY"] = 3] = "SkewY";
|
|
9
|
-
MatrixIndex[MatrixIndex["ScaleY"] = 4] = "ScaleY";
|
|
10
|
-
MatrixIndex[MatrixIndex["TransY"] = 5] = "TransY";
|
|
11
|
-
MatrixIndex[MatrixIndex["Persp0"] = 6] = "Persp0";
|
|
12
|
-
MatrixIndex[MatrixIndex["Persp1"] = 7] = "Persp1";
|
|
13
|
-
MatrixIndex[MatrixIndex["Persp2"] = 8] = "Persp2";
|
|
14
|
-
})(MatrixIndex || (MatrixIndex = {}));
|
|
15
|
-
|
|
16
2
|
export const isMatrix = obj => obj !== null && obj.__typename__ === "Matrix";
|
|
17
3
|
export const processTransform = (m, transforms) => {
|
|
18
4
|
const m3 = processTransform3d(transforms);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["processTransform3d","
|
|
1
|
+
{"version":3,"names":["processTransform3d","isMatrix","obj","__typename__","processTransform","m","transforms","m3","concat","toDegrees","rad","Math","PI"],"sources":["Matrix.ts"],"sourcesContent":["import type { SkJSIInstance } from \"./JsiInstance\";\nimport type { SkCanvas } from \"./Canvas\";\nimport type { Matrix3, Matrix4, Transforms3d } from \"./Matrix4\";\nimport { processTransform3d } from \"./Matrix4\";\n\nexport const isMatrix = (obj: unknown): obj is SkMatrix =>\n obj !== null && (obj as SkJSIInstance<string>).__typename__ === \"Matrix\";\n\nexport interface SkMatrix extends SkJSIInstance<\"Matrix\"> {\n concat: (matrix: SkMatrix | Matrix4 | Matrix3 | number[]) => SkMatrix;\n translate: (x: number, y: number) => SkMatrix;\n scale: (x: number, y?: number) => SkMatrix;\n skew: (x: number, y: number) => SkMatrix;\n rotate: (theta: number) => SkMatrix;\n postTranslate: (x: number, y: number) => SkMatrix;\n postScale: (x: number, y?: number) => SkMatrix;\n postSkew: (x: number, y: number) => SkMatrix;\n postRotate: (theta: number) => SkMatrix;\n identity: () => SkMatrix;\n get: () => number[];\n}\n\nexport interface TransformProp {\n transform?: Transforms3d;\n}\n\nexport const processTransform = <T extends SkMatrix | SkCanvas>(\n m: T,\n transforms: Transforms3d\n) => {\n const m3 = processTransform3d(transforms);\n m.concat(m3);\n return m;\n};\n\nexport const toDegrees = (rad: number) => {\n return (rad * 180) / Math.PI;\n};\n"],"mappings":"AAGA,SAASA,kBAAT,QAAmC,WAAnC;AAEA,OAAO,MAAMC,QAAQ,GAAIC,GAAD,IACtBA,GAAG,KAAK,IAAR,IAAiBA,GAAD,CAA+BC,YAA/B,KAAgD,QAD3D;AAqBP,OAAO,MAAMC,gBAAgB,GAAG,CAC9BC,CAD8B,EAE9BC,UAF8B,KAG3B;EACH,MAAMC,EAAE,GAAGP,kBAAkB,CAACM,UAAD,CAA7B;EACAD,CAAC,CAACG,MAAF,CAASD,EAAT;EACA,OAAOF,CAAP;AACD,CAPM;AASP,OAAO,MAAMI,SAAS,GAAIC,GAAD,IAAiB;EACxC,OAAQA,GAAG,GAAG,GAAP,GAAcC,IAAI,CAACC,EAA1B;AACD,CAFM"}
|
|
@@ -1,5 +1,20 @@
|
|
|
1
|
+
type Point = {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
};
|
|
1
5
|
type Vec2 = readonly [number, number];
|
|
2
6
|
type Vec3 = readonly [number, number, number];
|
|
7
|
+
export type Matrix3 = readonly [
|
|
8
|
+
number,
|
|
9
|
+
number,
|
|
10
|
+
number,
|
|
11
|
+
number,
|
|
12
|
+
number,
|
|
13
|
+
number,
|
|
14
|
+
number,
|
|
15
|
+
number,
|
|
16
|
+
number
|
|
17
|
+
];
|
|
3
18
|
export type Matrix4 = readonly [
|
|
4
19
|
number,
|
|
5
20
|
number,
|
|
@@ -28,10 +43,46 @@ export type Transforms3d = Transform3d[];
|
|
|
28
43
|
* @worklet
|
|
29
44
|
*/
|
|
30
45
|
export declare const Matrix4: () => Matrix4;
|
|
46
|
+
/**
|
|
47
|
+
* @worklet
|
|
48
|
+
*/
|
|
49
|
+
export declare const translate: (x: number, y: number, z?: number) => Matrix4;
|
|
50
|
+
/**
|
|
51
|
+
* @worklet
|
|
52
|
+
*/
|
|
53
|
+
export declare const perspective: (p: number) => Matrix4;
|
|
31
54
|
/**
|
|
32
55
|
* @worklet
|
|
33
56
|
*/
|
|
34
57
|
export declare const mapPoint3d: (m: Matrix4, v: Vec3) => readonly [number, number, number];
|
|
58
|
+
/**
|
|
59
|
+
* @worklet
|
|
60
|
+
*/
|
|
61
|
+
export declare const multiply4: (a: Matrix4, b: Matrix4) => Matrix4;
|
|
62
|
+
/**
|
|
63
|
+
* @worklet
|
|
64
|
+
*/
|
|
65
|
+
export declare const toMatrix3: (m: Matrix4) => number[];
|
|
66
|
+
/**
|
|
67
|
+
* @worklet
|
|
68
|
+
*/
|
|
69
|
+
export declare const pivot: (m: Matrix4, p: Point) => Matrix4;
|
|
70
|
+
/**
|
|
71
|
+
* @worklet
|
|
72
|
+
*/
|
|
73
|
+
export declare const scale: (sx: number, sy: number, sz?: number, p?: Point) => Matrix4;
|
|
74
|
+
/**
|
|
75
|
+
* @worklet
|
|
76
|
+
*/
|
|
77
|
+
export declare const rotateZ: (value: number, p?: Point) => Matrix4;
|
|
78
|
+
/**
|
|
79
|
+
* @worklet
|
|
80
|
+
*/
|
|
81
|
+
export declare const rotateX: (value: number, p?: Point) => Matrix4;
|
|
82
|
+
/**
|
|
83
|
+
* @worklet
|
|
84
|
+
*/
|
|
85
|
+
export declare const rotateY: (value: number, p?: Point) => Matrix4;
|
|
35
86
|
/**
|
|
36
87
|
* @worklet
|
|
37
88
|
*/
|
|
@@ -13,20 +13,21 @@ export const Matrix4 = () => {
|
|
|
13
13
|
|
|
14
14
|
return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
|
|
15
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* @worklet
|
|
18
|
+
*/
|
|
16
19
|
|
|
17
|
-
const translate = (x, y
|
|
20
|
+
export const translate = function (x, y) {
|
|
18
21
|
"worklet";
|
|
19
22
|
|
|
23
|
+
let z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
20
24
|
return [1, 0, 0, x, 0, 1, 0, y, 0, 0, 1, z, 0, 0, 0, 1];
|
|
21
25
|
};
|
|
26
|
+
/**
|
|
27
|
+
* @worklet
|
|
28
|
+
*/
|
|
22
29
|
|
|
23
|
-
const
|
|
24
|
-
"worklet";
|
|
25
|
-
|
|
26
|
-
return [sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1];
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
const perspective = p => {
|
|
30
|
+
export const perspective = p => {
|
|
30
31
|
"worklet";
|
|
31
32
|
|
|
32
33
|
return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, -1 / p, 1];
|
|
@@ -57,12 +58,6 @@ const rotatedUnitSinCos = (axisVec, sinAngle, cosAngle) => {
|
|
|
57
58
|
return [t * x * x + c, t * x * y - s * z, t * x * z + s * y, 0, t * x * y + s * z, t * y * y + c, t * y * z - s * x, 0, t * x * z - s * y, t * y * z + s * x, t * z * z + c, 0, 0, 0, 0, 1];
|
|
58
59
|
};
|
|
59
60
|
|
|
60
|
-
const rotate = (axis, value) => {
|
|
61
|
-
"worklet";
|
|
62
|
-
|
|
63
|
-
return rotatedUnitSinCos(normalizeVec(axis), Math.sin(value), Math.cos(value));
|
|
64
|
-
};
|
|
65
|
-
|
|
66
61
|
const matrixVecMul4 = (m, v) => {
|
|
67
62
|
"worklet";
|
|
68
63
|
|
|
@@ -80,8 +75,11 @@ export const mapPoint3d = (m, v) => {
|
|
|
80
75
|
const r = matrixVecMul4(m, [...v, 1]);
|
|
81
76
|
return [r[0] / r[3], r[1] / r[3], r[2] / r[3]];
|
|
82
77
|
};
|
|
78
|
+
/**
|
|
79
|
+
* @worklet
|
|
80
|
+
*/
|
|
83
81
|
|
|
84
|
-
const multiply4 = (a, b) => {
|
|
82
|
+
export const multiply4 = (a, b) => {
|
|
85
83
|
"worklet";
|
|
86
84
|
|
|
87
85
|
const result = new Array(16).fill(0);
|
|
@@ -106,16 +104,92 @@ const skewX = angle => {
|
|
|
106
104
|
|
|
107
105
|
return [1, 0, 0, 0, Math.tan(angle), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
|
|
108
106
|
};
|
|
107
|
+
/**
|
|
108
|
+
* @worklet
|
|
109
|
+
*/
|
|
109
110
|
|
|
110
|
-
|
|
111
|
+
|
|
112
|
+
export const toMatrix3 = m => {
|
|
111
113
|
"worklet";
|
|
112
114
|
|
|
113
115
|
return [m[0], m[1], m[3], m[4], m[5], m[7], m[12], m[13], m[15]];
|
|
114
116
|
};
|
|
117
|
+
|
|
118
|
+
const rotate = (axis, value) => {
|
|
119
|
+
"worklet";
|
|
120
|
+
|
|
121
|
+
return rotatedUnitSinCos(normalizeVec(axis), Math.sin(value), Math.cos(value));
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* @worklet
|
|
125
|
+
*/
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
export const pivot = (m, p) => {
|
|
129
|
+
"worklet";
|
|
130
|
+
|
|
131
|
+
return multiply4(translate(p.x, p.y), multiply4(m, translate(-p.x, -p.y)));
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* @worklet
|
|
135
|
+
*/
|
|
136
|
+
|
|
137
|
+
export const scale = function (sx, sy) {
|
|
138
|
+
"worklet";
|
|
139
|
+
|
|
140
|
+
let sz = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
141
|
+
let p = arguments.length > 3 ? arguments[3] : undefined;
|
|
142
|
+
const m4 = [sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1];
|
|
143
|
+
|
|
144
|
+
if (p) {
|
|
145
|
+
return pivot(m4, p);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
return m4;
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
const rotateAxis = (axis, angle, p) => {
|
|
152
|
+
"worklet";
|
|
153
|
+
|
|
154
|
+
const result = rotate(axis, angle);
|
|
155
|
+
|
|
156
|
+
if (p) {
|
|
157
|
+
return pivot(result, p);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
return result;
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* @worklet
|
|
164
|
+
*/
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
export const rotateZ = (value, p) => {
|
|
168
|
+
"worklet";
|
|
169
|
+
|
|
170
|
+
return rotateAxis([0, 0, 1], value, p);
|
|
171
|
+
};
|
|
115
172
|
/**
|
|
116
173
|
* @worklet
|
|
117
174
|
*/
|
|
118
175
|
|
|
176
|
+
export const rotateX = (value, p) => {
|
|
177
|
+
"worklet";
|
|
178
|
+
|
|
179
|
+
return rotateAxis([1, 0, 0], value, p);
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* @worklet
|
|
183
|
+
*/
|
|
184
|
+
|
|
185
|
+
export const rotateY = (value, p) => {
|
|
186
|
+
"worklet";
|
|
187
|
+
|
|
188
|
+
return rotateAxis([0, 1, 0], value, p);
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* @worklet
|
|
192
|
+
*/
|
|
119
193
|
|
|
120
194
|
export const processTransform3d = transforms => {
|
|
121
195
|
"worklet";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["exhaustiveCheck","a","Error","Matrix4","translate","x","y","z","scale","sx","sy","sz","perspective","p","normalizeVec","vec","length","Math","sqrt","rotatedUnitSinCos","axisVec","sinAngle","cosAngle","c","s","t","rotate","axis","value","sin","cos","matrixVecMul4","m","v","vx","vy","vz","vw","mapPoint3d","r","multiply4","b","result","Array","fill","i","j","skewY","angle","tan","skewX","toMatrix3","processTransform3d","transforms","reduce","acc","val","key","Object","keys","transform"],"sources":["Matrix4.ts"],"sourcesContent":["type Vec2 = readonly [number, number];\ntype Vec3 = readonly [number, number, number];\ntype Vec4 = readonly [number, number, number, number];\n\nexport type Matrix4 = readonly [\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number\n];\n\ntype Transform3dName =\n | \"translateX\"\n | \"translateY\"\n | \"translateZ\"\n | \"translate\"\n | \"scale\"\n | \"scaleX\"\n | \"scaleY\"\n | \"skewX\"\n | \"skewY\"\n | \"rotateZ\"\n | \"rotate\"\n | \"perspective\"\n | \"rotateX\"\n | \"rotateY\"\n | \"matrix\";\n\ntype Transformations = {\n [Name in Transform3dName]: Name extends \"matrix\"\n ? Matrix4\n : Name extends \"translate\"\n ? Vec3 | Vec2\n : number;\n};\n\ntype Transform3d =\n | Pick<Transformations, \"translateX\">\n | Pick<Transformations, \"translateY\">\n | Pick<Transformations, \"translateZ\">\n | Pick<Transformations, \"translate\">\n | Pick<Transformations, \"scale\">\n | Pick<Transformations, \"scaleX\">\n | Pick<Transformations, \"scaleY\">\n | Pick<Transformations, \"skewX\">\n | Pick<Transformations, \"skewY\">\n | Pick<Transformations, \"perspective\">\n | Pick<Transformations, \"rotateX\">\n | Pick<Transformations, \"rotateY\">\n | Pick<Transformations, \"rotateZ\">\n | Pick<Transformations, \"rotate\">\n | Pick<Transformations, \"matrix\">;\n\nexport type Transforms3d = Transform3d[];\n\nconst exhaustiveCheck = (a: never): never => {\n \"worklet\";\n throw new Error(`Unexhaustive handling for ${a}`);\n};\n\n/**\n * @worklet\n */\nexport const Matrix4 = (): Matrix4 => {\n \"worklet\";\n return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n};\n\nconst translate = (x: number, y: number, z: number): Matrix4 => {\n \"worklet\";\n return [1, 0, 0, x, 0, 1, 0, y, 0, 0, 1, z, 0, 0, 0, 1];\n};\n\nconst scale = (sx: number, sy: number, sz: number): Matrix4 => {\n \"worklet\";\n return [sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1];\n};\n\nconst perspective = (p: number): Matrix4 => {\n \"worklet\";\n return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, -1 / p, 1];\n};\n\nconst normalizeVec = (vec: Vec3): Vec3 => {\n \"worklet\";\n const [x, y, z] = vec;\n const length = Math.sqrt(x * x + y * y + z * z);\n // Check for zero length to avoid division by zero\n if (length === 0) {\n return [0, 0, 0];\n }\n return [x / length, y / length, z / length];\n};\n\nconst rotatedUnitSinCos = (\n axisVec: Vec3,\n sinAngle: number,\n cosAngle: number\n): Matrix4 => {\n \"worklet\";\n const x = axisVec[0];\n const y = axisVec[1];\n const z = axisVec[2];\n const c = cosAngle;\n const s = sinAngle;\n const t = 1 - c;\n return [\n t * x * x + c,\n t * x * y - s * z,\n t * x * z + s * y,\n 0,\n t * x * y + s * z,\n t * y * y + c,\n t * y * z - s * x,\n 0,\n t * x * z - s * y,\n t * y * z + s * x,\n t * z * z + c,\n 0,\n 0,\n 0,\n 0,\n 1,\n ];\n};\n\nconst rotate = (axis: Vec3, value: number) => {\n \"worklet\";\n return rotatedUnitSinCos(\n normalizeVec(axis),\n Math.sin(value),\n Math.cos(value)\n );\n};\n\nconst matrixVecMul4 = (m: Matrix4, v: Vec4) => {\n \"worklet\";\n const [vx, vy, vz, vw] = v;\n return [\n vx * m[0] + vy * m[4] + vz * m[8] + vw * m[12],\n vx * m[1] + vy * m[5] + vz * m[9] + vw * m[13],\n vx * m[2] + vy * m[6] + vz * m[10] + vw * m[14],\n vx * m[3] + vy * m[7] + vz * m[11] + vw * m[15],\n ];\n};\n\n/**\n * @worklet\n */\nexport const mapPoint3d = (m: Matrix4, v: Vec3) => {\n \"worklet\";\n const r = matrixVecMul4(m, [...v, 1]);\n return [r[0] / r[3], r[1] / r[3], r[2] / r[3]] as const;\n};\n\nconst multiply4 = (a: Matrix4, b: Matrix4): Matrix4 => {\n \"worklet\";\n const result = new Array(16).fill(0);\n for (let i = 0; i < 4; i++) {\n for (let j = 0; j < 4; j++) {\n result[i * 4 + j] =\n a[i * 4] * b[j] +\n a[i * 4 + 1] * b[j + 4] +\n a[i * 4 + 2] * b[j + 8] +\n a[i * 4 + 3] * b[j + 12];\n }\n }\n return result as unknown as Matrix4;\n};\n\nconst skewY = (angle: number): Matrix4 => {\n \"worklet\";\n return [1, Math.tan(angle), 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n};\n\nconst skewX = (angle: number): Matrix4 => {\n \"worklet\";\n return [1, 0, 0, 0, Math.tan(angle), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n};\n\nconst toMatrix3 = (m: Matrix4) => {\n \"worklet\";\n return [m[0], m[1], m[3], m[4], m[5], m[7], m[12], m[13], m[15]];\n};\n\n/**\n * @worklet\n */\nexport const processTransform3d = (transforms: Transforms3d) => {\n \"worklet\";\n return toMatrix3(\n transforms.reduce((acc, val) => {\n const key = Object.keys(val)[0] as Transform3dName;\n const transform = val as Pick<Transformations, typeof key>;\n if (key === \"translateX\") {\n const value = transform[key];\n return multiply4(acc, translate(value, 0, 0));\n }\n if (key === \"translate\") {\n const [x, y, z = 0] = transform[key];\n return multiply4(acc, translate(x, y, z));\n }\n if (key === \"translateY\") {\n const value = transform[key];\n return multiply4(acc, translate(0, value, 0));\n }\n if (key === \"translateZ\") {\n const value = transform[key];\n return multiply4(acc, translate(0, 0, value));\n }\n if (key === \"scale\") {\n const value = transform[key];\n return multiply4(acc, scale(value, value, 1));\n }\n if (key === \"scaleX\") {\n const value = transform[key];\n return multiply4(acc, scale(value, 1, 1));\n }\n if (key === \"scaleY\") {\n const value = transform[key];\n return multiply4(acc, scale(1, value, 1));\n }\n if (key === \"skewX\") {\n const value = transform[key];\n return multiply4(acc, skewX(value));\n }\n if (key === \"skewY\") {\n const value = transform[key];\n return multiply4(acc, skewY(value));\n }\n if (key === \"rotateX\") {\n const value = transform[key];\n return multiply4(acc, rotate([1, 0, 0], value));\n }\n if (key === \"rotateY\") {\n const value = transform[key];\n return multiply4(acc, rotate([0, 1, 0], value));\n }\n if (key === \"perspective\") {\n const value = transform[key];\n return multiply4(acc, perspective(value));\n }\n if (key === \"rotate\" || key === \"rotateZ\") {\n const value = transform[key];\n return multiply4(acc, rotate([0, 0, 1], value));\n }\n if (key === \"matrix\") {\n const value = transform[key];\n return multiply4(acc, value);\n }\n return exhaustiveCheck(key);\n }, Matrix4())\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["exhaustiveCheck","a","Error","Matrix4","translate","x","y","z","perspective","p","normalizeVec","vec","length","Math","sqrt","rotatedUnitSinCos","axisVec","sinAngle","cosAngle","c","s","t","matrixVecMul4","m","v","vx","vy","vz","vw","mapPoint3d","r","multiply4","b","result","Array","fill","i","j","skewY","angle","tan","skewX","toMatrix3","rotate","axis","value","sin","cos","pivot","scale","sx","sy","sz","m4","rotateAxis","rotateZ","rotateX","rotateY","processTransform3d","transforms","reduce","acc","val","key","Object","keys","transform"],"sources":["Matrix4.ts"],"sourcesContent":["type Point = { x: number; y: number };\ntype Vec2 = readonly [number, number];\ntype Vec3 = readonly [number, number, number];\ntype Vec4 = readonly [number, number, number, number];\n\nexport type Matrix3 = readonly [\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number\n];\n\nexport type Matrix4 = readonly [\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number\n];\n\ntype Transform3dName =\n | \"translateX\"\n | \"translateY\"\n | \"translateZ\"\n | \"translate\"\n | \"scale\"\n | \"scaleX\"\n | \"scaleY\"\n | \"skewX\"\n | \"skewY\"\n | \"rotateZ\"\n | \"rotate\"\n | \"perspective\"\n | \"rotateX\"\n | \"rotateY\"\n | \"matrix\";\n\ntype Transformations = {\n [Name in Transform3dName]: Name extends \"matrix\"\n ? Matrix4\n : Name extends \"translate\"\n ? Vec3 | Vec2\n : number;\n};\n\ntype Transform3d =\n | Pick<Transformations, \"translateX\">\n | Pick<Transformations, \"translateY\">\n | Pick<Transformations, \"translateZ\">\n | Pick<Transformations, \"translate\">\n | Pick<Transformations, \"scale\">\n | Pick<Transformations, \"scaleX\">\n | Pick<Transformations, \"scaleY\">\n | Pick<Transformations, \"skewX\">\n | Pick<Transformations, \"skewY\">\n | Pick<Transformations, \"perspective\">\n | Pick<Transformations, \"rotateX\">\n | Pick<Transformations, \"rotateY\">\n | Pick<Transformations, \"rotateZ\">\n | Pick<Transformations, \"rotate\">\n | Pick<Transformations, \"matrix\">;\n\nexport type Transforms3d = Transform3d[];\n\nconst exhaustiveCheck = (a: never): never => {\n \"worklet\";\n throw new Error(`Unexhaustive handling for ${a}`);\n};\n\n/**\n * @worklet\n */\nexport const Matrix4 = (): Matrix4 => {\n \"worklet\";\n return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n};\n\n/**\n * @worklet\n */\nexport const translate = (x: number, y: number, z: number = 0): Matrix4 => {\n \"worklet\";\n return [1, 0, 0, x, 0, 1, 0, y, 0, 0, 1, z, 0, 0, 0, 1];\n};\n\n/**\n * @worklet\n */\nexport const perspective = (p: number): Matrix4 => {\n \"worklet\";\n return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, -1 / p, 1];\n};\n\nconst normalizeVec = (vec: Vec3): Vec3 => {\n \"worklet\";\n const [x, y, z] = vec;\n const length = Math.sqrt(x * x + y * y + z * z);\n // Check for zero length to avoid division by zero\n if (length === 0) {\n return [0, 0, 0];\n }\n return [x / length, y / length, z / length];\n};\n\nconst rotatedUnitSinCos = (\n axisVec: Vec3,\n sinAngle: number,\n cosAngle: number\n): Matrix4 => {\n \"worklet\";\n const x = axisVec[0];\n const y = axisVec[1];\n const z = axisVec[2];\n const c = cosAngle;\n const s = sinAngle;\n const t = 1 - c;\n return [\n t * x * x + c,\n t * x * y - s * z,\n t * x * z + s * y,\n 0,\n t * x * y + s * z,\n t * y * y + c,\n t * y * z - s * x,\n 0,\n t * x * z - s * y,\n t * y * z + s * x,\n t * z * z + c,\n 0,\n 0,\n 0,\n 0,\n 1,\n ];\n};\n\nconst matrixVecMul4 = (m: Matrix4, v: Vec4) => {\n \"worklet\";\n const [vx, vy, vz, vw] = v;\n return [\n vx * m[0] + vy * m[4] + vz * m[8] + vw * m[12],\n vx * m[1] + vy * m[5] + vz * m[9] + vw * m[13],\n vx * m[2] + vy * m[6] + vz * m[10] + vw * m[14],\n vx * m[3] + vy * m[7] + vz * m[11] + vw * m[15],\n ];\n};\n\n/**\n * @worklet\n */\nexport const mapPoint3d = (m: Matrix4, v: Vec3) => {\n \"worklet\";\n const r = matrixVecMul4(m, [...v, 1]);\n return [r[0] / r[3], r[1] / r[3], r[2] / r[3]] as const;\n};\n\n/**\n * @worklet\n */\nexport const multiply4 = (a: Matrix4, b: Matrix4): Matrix4 => {\n \"worklet\";\n const result = new Array(16).fill(0);\n for (let i = 0; i < 4; i++) {\n for (let j = 0; j < 4; j++) {\n result[i * 4 + j] =\n a[i * 4] * b[j] +\n a[i * 4 + 1] * b[j + 4] +\n a[i * 4 + 2] * b[j + 8] +\n a[i * 4 + 3] * b[j + 12];\n }\n }\n return result as unknown as Matrix4;\n};\n\nconst skewY = (angle: number): Matrix4 => {\n \"worklet\";\n return [1, Math.tan(angle), 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n};\n\nconst skewX = (angle: number): Matrix4 => {\n \"worklet\";\n return [1, 0, 0, 0, Math.tan(angle), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n};\n\n/**\n * @worklet\n */\nexport const toMatrix3 = (m: Matrix4) => {\n \"worklet\";\n return [m[0], m[1], m[3], m[4], m[5], m[7], m[12], m[13], m[15]];\n};\n\nconst rotate = (axis: Vec3, value: number) => {\n \"worklet\";\n return rotatedUnitSinCos(\n normalizeVec(axis),\n Math.sin(value),\n Math.cos(value)\n );\n};\n\n/**\n * @worklet\n */\nexport const pivot = (m: Matrix4, p: Point) => {\n \"worklet\";\n return multiply4(translate(p.x, p.y), multiply4(m, translate(-p.x, -p.y)));\n};\n\n/**\n * @worklet\n */\nexport const scale = (\n sx: number,\n sy: number,\n sz: number = 1,\n p?: Point\n): Matrix4 => {\n \"worklet\";\n const m4: Matrix4 = [sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1];\n if (p) {\n return pivot(m4, p);\n }\n return m4;\n};\n\nconst rotateAxis = (axis: Vec3, angle: number, p?: Point) => {\n \"worklet\";\n const result = rotate(axis, angle);\n if (p) {\n return pivot(result, p);\n }\n return result;\n};\n\n/**\n * @worklet\n */\nexport const rotateZ = (value: number, p?: Point) => {\n \"worklet\";\n return rotateAxis([0, 0, 1], value, p);\n};\n\n/**\n * @worklet\n */\nexport const rotateX = (value: number, p?: Point) => {\n \"worklet\";\n return rotateAxis([1, 0, 0], value, p);\n};\n\n/**\n * @worklet\n */\nexport const rotateY = (value: number, p?: Point) => {\n \"worklet\";\n return rotateAxis([0, 1, 0], value, p);\n};\n\n/**\n * @worklet\n */\nexport const processTransform3d = (transforms: Transforms3d) => {\n \"worklet\";\n return toMatrix3(\n transforms.reduce((acc, val) => {\n const key = Object.keys(val)[0] as Transform3dName;\n const transform = val as Pick<Transformations, typeof key>;\n if (key === \"translateX\") {\n const value = transform[key];\n return multiply4(acc, translate(value, 0, 0));\n }\n if (key === \"translate\") {\n const [x, y, z = 0] = transform[key];\n return multiply4(acc, translate(x, y, z));\n }\n if (key === \"translateY\") {\n const value = transform[key];\n return multiply4(acc, translate(0, value, 0));\n }\n if (key === \"translateZ\") {\n const value = transform[key];\n return multiply4(acc, translate(0, 0, value));\n }\n if (key === \"scale\") {\n const value = transform[key];\n return multiply4(acc, scale(value, value, 1));\n }\n if (key === \"scaleX\") {\n const value = transform[key];\n return multiply4(acc, scale(value, 1, 1));\n }\n if (key === \"scaleY\") {\n const value = transform[key];\n return multiply4(acc, scale(1, value, 1));\n }\n if (key === \"skewX\") {\n const value = transform[key];\n return multiply4(acc, skewX(value));\n }\n if (key === \"skewY\") {\n const value = transform[key];\n return multiply4(acc, skewY(value));\n }\n if (key === \"rotateX\") {\n const value = transform[key];\n return multiply4(acc, rotate([1, 0, 0], value));\n }\n if (key === \"rotateY\") {\n const value = transform[key];\n return multiply4(acc, rotate([0, 1, 0], value));\n }\n if (key === \"perspective\") {\n const value = transform[key];\n return multiply4(acc, perspective(value));\n }\n if (key === \"rotate\" || key === \"rotateZ\") {\n const value = transform[key];\n return multiply4(acc, rotate([0, 0, 1], value));\n }\n if (key === \"matrix\") {\n const value = transform[key];\n return multiply4(acc, value);\n }\n return exhaustiveCheck(key);\n }, Matrix4())\n );\n};\n"],"mappings":"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"}
|
|
@@ -16,6 +16,5 @@ export declare abstract class BaseHostObject<T, N extends string> extends Host i
|
|
|
16
16
|
export declare abstract class HostObject<T, N extends string> extends BaseHostObject<T, N> {
|
|
17
17
|
static fromValue<T>(value: SkJSIInstance<string>): T;
|
|
18
18
|
}
|
|
19
|
-
export declare const
|
|
20
|
-
export declare const
|
|
21
|
-
export declare const optEnum: (value: number | undefined) => EmbindEnumEntity | undefined;
|
|
19
|
+
export declare const getEnum: (e: EmbindEnum, v: number) => EmbindEnumEntity;
|
|
20
|
+
export declare const optEnum: (e: EmbindEnum, value: number | undefined) => EmbindEnumEntity | undefined;
|
|
@@ -33,16 +33,11 @@ export class HostObject extends BaseHostObject {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
}
|
|
36
|
-
export const
|
|
36
|
+
export const getEnum = (e, v) => Object.values(e).find(_ref => {
|
|
37
37
|
let {
|
|
38
38
|
value
|
|
39
39
|
} = _ref;
|
|
40
40
|
return value === v;
|
|
41
41
|
});
|
|
42
|
-
export const
|
|
43
|
-
value
|
|
44
|
-
});
|
|
45
|
-
export const optEnum = value => value === undefined ? undefined : {
|
|
46
|
-
value
|
|
47
|
-
};
|
|
42
|
+
export const optEnum = (e, value) => value === undefined ? undefined : getEnum(e, value);
|
|
48
43
|
//# sourceMappingURL=Host.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NotImplementedOnRNWeb","Error","constructor","msg","Host","CanvasKit","BaseHostObject","ref","typename","__typename__","HostObject","fromValue","value","
|
|
1
|
+
{"version":3,"names":["NotImplementedOnRNWeb","Error","constructor","msg","Host","CanvasKit","BaseHostObject","ref","typename","__typename__","HostObject","fromValue","value","getEnum","e","v","Object","values","find","optEnum","undefined"],"sources":["Host.ts"],"sourcesContent":["import type { CanvasKit, EmbindEnumEntity, EmbindEnum } from \"canvaskit-wasm\";\n\nimport type { SkJSIInstance } from \"../types\";\n\nexport class NotImplementedOnRNWeb extends Error {\n constructor(msg?: string) {\n super(msg ?? \"Not implemented on React Native Web\");\n }\n}\n\nexport abstract class Host {\n readonly CanvasKit: CanvasKit;\n\n constructor(CanvasKit: CanvasKit) {\n this.CanvasKit = CanvasKit;\n }\n}\n\nexport abstract class BaseHostObject<T, N extends string>\n extends Host\n implements SkJSIInstance<N>\n{\n readonly __typename__: N;\n ref: T;\n\n constructor(CanvasKit: CanvasKit, ref: T, typename: N) {\n super(CanvasKit);\n this.ref = ref;\n this.__typename__ = typename;\n }\n\n abstract dispose(): void;\n}\n\nexport abstract class HostObject<T, N extends string> extends BaseHostObject<\n T,\n N\n> {\n static fromValue<T>(value: SkJSIInstance<string>) {\n return (value as HostObject<T, string>).ref;\n }\n}\n\nexport const getEnum = (e: EmbindEnum, v: number): EmbindEnumEntity =>\n Object.values(e).find(({ value }) => value === v);\n\nexport const optEnum = (\n e: EmbindEnum,\n value: number | undefined\n): EmbindEnumEntity | undefined =>\n value === undefined ? undefined : getEnum(e, value);\n"],"mappings":";;AAIA,OAAO,MAAMA,qBAAN,SAAoCC,KAApC,CAA0C;EAC/CC,WAAW,CAACC,GAAD,EAAe;IACxB,MAAMA,GAAN,aAAMA,GAAN,cAAMA,GAAN,GAAa,qCAAb;EACD;;AAH8C;AAMjD,OAAO,MAAeC,IAAf,CAAoB;EAGzBF,WAAW,CAACG,SAAD,EAAuB;IAAA;;IAChC,KAAKA,SAAL,GAAiBA,SAAjB;EACD;;AALwB;AAQ3B,OAAO,MAAeC,cAAf,SACGF,IADH,CAGP;EAIEF,WAAW,CAACG,SAAD,EAAuBE,GAAvB,EAA+BC,QAA/B,EAA4C;IACrD,MAAMH,SAAN;;IADqD;;IAAA;;IAErD,KAAKE,GAAL,GAAWA,GAAX;IACA,KAAKE,YAAL,GAAoBD,QAApB;EACD;;AARH;AAaA,OAAO,MAAeE,UAAf,SAAuDJ,cAAvD,CAGL;EACgB,OAATK,SAAS,CAAIC,KAAJ,EAAkC;IAChD,OAAQA,KAAD,CAAiCL,GAAxC;EACD;;AAHD;AAMF,OAAO,MAAMM,OAAO,GAAG,CAACC,CAAD,EAAgBC,CAAhB,KACrBC,MAAM,CAACC,MAAP,CAAcH,CAAd,EAAiBI,IAAjB,CAAsB;EAAA,IAAC;IAAEN;EAAF,CAAD;EAAA,OAAeA,KAAK,KAAKG,CAAzB;AAAA,CAAtB,CADK;AAGP,OAAO,MAAMI,OAAO,GAAG,CACrBL,CADqB,EAErBF,KAFqB,KAIrBA,KAAK,KAAKQ,SAAV,GAAsBA,SAAtB,GAAkCP,OAAO,CAACC,CAAD,EAAIF,KAAJ,CAJpC"}
|