@shopify/react-native-skia 0.1.157 → 0.1.158
Sign up to get free protection for your applications and to get access to all the features.
- package/android/build.gradle +10 -5
- package/cpp/api/JsiSkContourMeasure.h +7 -5
- package/lib/commonjs/dom/nodes/DrawingNode.js +1 -5
- package/lib/commonjs/dom/nodes/DrawingNode.js.map +1 -1
- package/lib/commonjs/dom/nodes/RenderNode.js +2 -8
- package/lib/commonjs/dom/nodes/RenderNode.js.map +1 -1
- package/lib/commonjs/dom/nodes/drawings/Text.js +4 -9
- package/lib/commonjs/dom/nodes/drawings/Text.js.map +1 -1
- package/lib/commonjs/dom/types/Common.js.map +1 -1
- package/lib/commonjs/dom/types/Drawings.js.map +1 -1
- package/lib/commonjs/mock/index.js +0 -1
- package/lib/commonjs/mock/index.js.map +1 -1
- package/lib/commonjs/renderer/Canvas.js +9 -1
- package/lib/commonjs/renderer/Canvas.js.map +1 -1
- package/lib/commonjs/renderer/HostComponents.js.map +1 -1
- package/lib/commonjs/renderer/components/Mask.js +1 -3
- package/lib/commonjs/renderer/components/Mask.js.map +1 -1
- package/lib/commonjs/renderer/components/Paint.js +5 -18
- package/lib/commonjs/renderer/components/Paint.js.map +1 -1
- package/lib/commonjs/renderer/useCanvas.js +18 -2
- package/lib/commonjs/renderer/useCanvas.js.map +1 -1
- package/lib/commonjs/skia/core/Picture.js +1 -24
- package/lib/commonjs/skia/core/Picture.js.map +1 -1
- package/lib/commonjs/skia/core/Rect.js +1 -1
- package/lib/commonjs/skia/core/Rect.js.map +1 -1
- package/lib/commonjs/skia/types/ContourMeasure.js.map +1 -1
- package/lib/commonjs/skia/types/Size.js +2 -0
- package/lib/commonjs/skia/types/Size.js.map +1 -0
- package/lib/commonjs/skia/types/index.js +13 -0
- package/lib/commonjs/skia/types/index.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkColor.js +8 -0
- package/lib/commonjs/skia/web/JsiSkColor.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkContourMeasure.js +4 -7
- package/lib/commonjs/skia/web/JsiSkContourMeasure.js.map +1 -1
- package/lib/commonjs/values/web/RNSkReadonlyValue.js +4 -2
- package/lib/commonjs/values/web/RNSkReadonlyValue.js.map +1 -1
- package/lib/commonjs/views/SkiaBaseWebView.js +2 -2
- package/lib/commonjs/views/SkiaBaseWebView.js.map +1 -1
- package/lib/module/dom/nodes/DrawingNode.js +2 -6
- package/lib/module/dom/nodes/DrawingNode.js.map +1 -1
- package/lib/module/dom/nodes/RenderNode.js +1 -4
- package/lib/module/dom/nodes/RenderNode.js.map +1 -1
- package/lib/module/dom/nodes/drawings/Text.js +4 -9
- package/lib/module/dom/nodes/drawings/Text.js.map +1 -1
- package/lib/module/dom/types/Common.js.map +1 -1
- package/lib/module/dom/types/Drawings.js.map +1 -1
- package/lib/module/mock/index.js +0 -1
- package/lib/module/mock/index.js.map +1 -1
- package/lib/module/renderer/Canvas.js +9 -1
- package/lib/module/renderer/Canvas.js.map +1 -1
- package/lib/module/renderer/HostComponents.js.map +1 -1
- package/lib/module/renderer/components/Mask.js +2 -4
- package/lib/module/renderer/components/Mask.js.map +1 -1
- package/lib/module/renderer/components/Paint.js +3 -14
- package/lib/module/renderer/components/Paint.js.map +1 -1
- package/lib/module/renderer/useCanvas.js +13 -0
- package/lib/module/renderer/useCanvas.js.map +1 -1
- package/lib/module/skia/core/Picture.js +0 -18
- package/lib/module/skia/core/Picture.js.map +1 -1
- package/lib/module/skia/core/Rect.js +1 -1
- package/lib/module/skia/core/Rect.js.map +1 -1
- package/lib/module/skia/types/ContourMeasure.js.map +1 -1
- package/lib/module/skia/types/Size.js +2 -0
- package/lib/module/skia/types/Size.js.map +1 -0
- package/lib/module/skia/types/index.js +1 -0
- package/lib/module/skia/types/index.js.map +1 -1
- package/lib/module/skia/web/JsiSkColor.js +8 -0
- package/lib/module/skia/web/JsiSkColor.js.map +1 -1
- package/lib/module/skia/web/JsiSkContourMeasure.js +3 -7
- package/lib/module/skia/web/JsiSkContourMeasure.js.map +1 -1
- package/lib/module/values/web/RNSkReadonlyValue.js +4 -2
- package/lib/module/values/web/RNSkReadonlyValue.js.map +1 -1
- package/lib/module/views/SkiaBaseWebView.js +2 -2
- package/lib/module/views/SkiaBaseWebView.js.map +1 -1
- package/lib/typescript/src/dom/nodes/RenderNode.d.ts +1 -3
- package/lib/typescript/src/dom/types/Common.d.ts +2 -3
- package/lib/typescript/src/dom/types/Drawings.d.ts +1 -3
- package/lib/typescript/src/renderer/Canvas.d.ts +4 -1
- package/lib/typescript/src/renderer/HostComponents.d.ts +1 -5
- package/lib/typescript/src/renderer/components/Paint.d.ts +3 -4
- package/lib/typescript/src/renderer/useCanvas.d.ts +1 -0
- package/lib/typescript/src/skia/core/Picture.d.ts +0 -8
- package/lib/typescript/src/skia/types/ContourMeasure.d.ts +3 -2
- package/lib/typescript/src/skia/types/Size.d.ts +4 -0
- package/lib/typescript/src/skia/types/index.d.ts +1 -0
- package/lib/typescript/src/skia/web/JsiSkContourMeasure.d.ts +2 -6
- package/package.json +2 -2
- package/src/dom/nodes/DrawingNode.ts +2 -4
- package/src/dom/nodes/RenderNode.ts +1 -13
- package/src/dom/nodes/drawings/Text.ts +4 -4
- package/src/dom/types/Common.ts +2 -4
- package/src/dom/types/Drawings.ts +1 -4
- package/src/mock/index.ts +0 -1
- package/src/renderer/Canvas.tsx +7 -2
- package/src/renderer/HostComponents.ts +1 -4
- package/src/renderer/components/Mask.tsx +2 -2
- package/src/renderer/components/Paint.tsx +3 -14
- package/src/renderer/useCanvas.ts +14 -0
- package/src/skia/core/Picture.ts +0 -24
- package/src/skia/core/Rect.ts +1 -1
- package/src/skia/types/ContourMeasure.tsx +3 -2
- package/src/skia/types/Size.ts +4 -0
- package/src/skia/types/index.ts +1 -0
- package/src/skia/web/JsiSkColor.ts +11 -0
- package/src/skia/web/JsiSkContourMeasure.ts +7 -3
- package/src/values/web/RNSkReadonlyValue.ts +4 -2
- package/src/views/SkiaBaseWebView.tsx +2 -2
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":[],"sources":["Size.ts"],"sourcesContent":["export interface SkSize {\n width: number;\n height: number;\n}\n"],"mappings":""}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./Picture\";\nexport * from \"./Data\";\nexport * from \"./SVG\";\nexport * from \"./Surface\";\nexport * from \"./Vertices\";\nexport * from \"./RuntimeEffect\";\nexport * from \"./Shader\";\nexport * from \"./Image\";\nexport * from \"./ColorFilter\";\nexport * from \"./ImageFilter\";\nexport * from \"./Font\";\nexport * from \"./Typeface\";\nexport * from \"./Paint\";\nexport * from \"./Path\";\nexport * from \"./Color\";\nexport * from \"./Canvas\";\nexport * from \"./ContourMeasure\";\nexport * from \"./MaskFilter\";\nexport * from \"./Matrix\";\nexport * from \"./PathEffect\";\nexport * from \"./Point\";\nexport * from \"./Rect\";\nexport * from \"./RRect\";\nexport * from \"./RSXform\";\nexport * from \"./JsiInstance\";\nexport * from \"./Skia\";\nexport * from \"./TextBlob\";\n"],"mappings":"AAAA,cAAc,WAAd;AACA,cAAc,QAAd;AACA,cAAc,OAAd;AACA,cAAc,WAAd;AACA,cAAc,YAAd;AACA,cAAc,iBAAd;AACA,cAAc,UAAd;AACA,cAAc,SAAd;AACA,cAAc,eAAd;AACA,cAAc,eAAd;AACA,cAAc,QAAd;AACA,cAAc,YAAd;AACA,cAAc,SAAd;AACA,cAAc,QAAd;AACA,cAAc,SAAd;AACA,cAAc,UAAd;AACA,cAAc,kBAAd;AACA,cAAc,cAAd;AACA,cAAc,UAAd;AACA,cAAc,cAAd;AACA,cAAc,SAAd;AACA,cAAc,QAAd;AACA,cAAc,SAAd;AACA,cAAc,WAAd;AACA,cAAc,eAAd;AACA,cAAc,QAAd;AACA,cAAc,YAAd"}
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./Picture\";\nexport * from \"./Data\";\nexport * from \"./SVG\";\nexport * from \"./Surface\";\nexport * from \"./Vertices\";\nexport * from \"./RuntimeEffect\";\nexport * from \"./Shader\";\nexport * from \"./Image\";\nexport * from \"./ColorFilter\";\nexport * from \"./ImageFilter\";\nexport * from \"./Font\";\nexport * from \"./Typeface\";\nexport * from \"./Paint\";\nexport * from \"./Path\";\nexport * from \"./Color\";\nexport * from \"./Canvas\";\nexport * from \"./ContourMeasure\";\nexport * from \"./MaskFilter\";\nexport * from \"./Matrix\";\nexport * from \"./PathEffect\";\nexport * from \"./Point\";\nexport * from \"./Rect\";\nexport * from \"./RRect\";\nexport * from \"./RSXform\";\nexport * from \"./JsiInstance\";\nexport * from \"./Skia\";\nexport * from \"./TextBlob\";\nexport * from \"./Size\";\n"],"mappings":"AAAA,cAAc,WAAd;AACA,cAAc,QAAd;AACA,cAAc,OAAd;AACA,cAAc,WAAd;AACA,cAAc,YAAd;AACA,cAAc,iBAAd;AACA,cAAc,UAAd;AACA,cAAc,SAAd;AACA,cAAc,eAAd;AACA,cAAc,eAAd;AACA,cAAc,QAAd;AACA,cAAc,YAAd;AACA,cAAc,SAAd;AACA,cAAc,QAAd;AACA,cAAc,SAAd;AACA,cAAc,UAAd;AACA,cAAc,kBAAd;AACA,cAAc,cAAd;AACA,cAAc,UAAd;AACA,cAAc,cAAd;AACA,cAAc,SAAd;AACA,cAAc,QAAd;AACA,cAAc,SAAd;AACA,cAAc,WAAd;AACA,cAAc,eAAd;AACA,cAAc,QAAd;AACA,cAAc,YAAd;AACA,cAAc,QAAd"}
|
@@ -252,6 +252,14 @@ const parseCSSColor = cssStr => {
|
|
252
252
|
|
253
253
|
|
254
254
|
return [(iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, 1];
|
255
|
+
} else if (str.length === 9) {
|
256
|
+
var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.
|
257
|
+
|
258
|
+
if (!(iv >= 0 && iv <= 0xffffffff)) {
|
259
|
+
return null; // Covers NaN.
|
260
|
+
}
|
261
|
+
|
262
|
+
return [(iv & 0xff000000) >> 24 & 0xff, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, (iv & 0xff) / 255];
|
255
263
|
}
|
256
264
|
|
257
265
|
return null;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["alphaf","c","red","green","blue","CSSColorTable","transparent","Float32Array","of","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","clampCSSByte","j","i","Math","round","clampCSSFloat","f","parseCSSInt","str","length","parseFloat","parseInt","parseCSSFloat","undefined","CSSHueToRGB","m1","m2","h","parseCSSColor","cssStr","replace","toLowerCase","cl","iv","substr","op","indexOf","ep","fname","params","split","alpha","pop","s","l","Color","color","r","rgba"],"sources":["JsiSkColor.ts"],"sourcesContent":["import type { SkColor, Color as InputColor } from \"../types\";\n\nconst alphaf = (c: number) => ((c >> 24) & 255) / 255;\nconst red = (c: number) => (c >> 16) & 255;\nconst green = (c: number) => (c >> 8) & 255;\nconst blue = (c: number) => c & 255;\n\n// From https://raw.githubusercontent.com/deanm/css-color-parser-js/master/csscolorparser.js\nconst CSSColorTable = {\n transparent: Float32Array.of(0, 0, 0, 0),\n aliceblue: Float32Array.of(240, 248, 255, 1),\n antiquewhite: Float32Array.of(250, 235, 215, 1),\n aqua: Float32Array.of(0, 255, 255, 1),\n aquamarine: Float32Array.of(127, 255, 212, 1),\n azure: Float32Array.of(240, 255, 255, 1),\n beige: Float32Array.of(245, 245, 220, 1),\n bisque: Float32Array.of(255, 228, 196, 1),\n black: Float32Array.of(0, 0, 0, 1),\n blanchedalmond: Float32Array.of(255, 235, 205, 1),\n blue: Float32Array.of(0, 0, 255, 1),\n blueviolet: Float32Array.of(138, 43, 226, 1),\n brown: Float32Array.of(165, 42, 42, 1),\n burlywood: Float32Array.of(222, 184, 135, 1),\n cadetblue: Float32Array.of(95, 158, 160, 1),\n chartreuse: Float32Array.of(127, 255, 0, 1),\n chocolate: Float32Array.of(210, 105, 30, 1),\n coral: Float32Array.of(255, 127, 80, 1),\n cornflowerblue: Float32Array.of(100, 149, 237, 1),\n cornsilk: Float32Array.of(255, 248, 220, 1),\n crimson: Float32Array.of(220, 20, 60, 1),\n cyan: Float32Array.of(0, 255, 255, 1),\n darkblue: Float32Array.of(0, 0, 139, 1),\n darkcyan: Float32Array.of(0, 139, 139, 1),\n darkgoldenrod: Float32Array.of(184, 134, 11, 1),\n darkgray: Float32Array.of(169, 169, 169, 1),\n darkgreen: Float32Array.of(0, 100, 0, 1),\n darkgrey: Float32Array.of(169, 169, 169, 1),\n darkkhaki: Float32Array.of(189, 183, 107, 1),\n darkmagenta: Float32Array.of(139, 0, 139, 1),\n darkolivegreen: Float32Array.of(85, 107, 47, 1),\n darkorange: Float32Array.of(255, 140, 0, 1),\n darkorchid: Float32Array.of(153, 50, 204, 1),\n darkred: Float32Array.of(139, 0, 0, 1),\n darksalmon: Float32Array.of(233, 150, 122, 1),\n darkseagreen: Float32Array.of(143, 188, 143, 1),\n darkslateblue: Float32Array.of(72, 61, 139, 1),\n darkslategray: Float32Array.of(47, 79, 79, 1),\n darkslategrey: Float32Array.of(47, 79, 79, 1),\n darkturquoise: Float32Array.of(0, 206, 209, 1),\n darkviolet: Float32Array.of(148, 0, 211, 1),\n deeppink: Float32Array.of(255, 20, 147, 1),\n deepskyblue: Float32Array.of(0, 191, 255, 1),\n dimgray: Float32Array.of(105, 105, 105, 1),\n dimgrey: Float32Array.of(105, 105, 105, 1),\n dodgerblue: Float32Array.of(30, 144, 255, 1),\n firebrick: Float32Array.of(178, 34, 34, 1),\n floralwhite: Float32Array.of(255, 250, 240, 1),\n forestgreen: Float32Array.of(34, 139, 34, 1),\n fuchsia: Float32Array.of(255, 0, 255, 1),\n gainsboro: Float32Array.of(220, 220, 220, 1),\n ghostwhite: Float32Array.of(248, 248, 255, 1),\n gold: Float32Array.of(255, 215, 0, 1),\n goldenrod: Float32Array.of(218, 165, 32, 1),\n gray: Float32Array.of(128, 128, 128, 1),\n green: Float32Array.of(0, 128, 0, 1),\n greenyellow: Float32Array.of(173, 255, 47, 1),\n grey: Float32Array.of(128, 128, 128, 1),\n honeydew: Float32Array.of(240, 255, 240, 1),\n hotpink: Float32Array.of(255, 105, 180, 1),\n indianred: Float32Array.of(205, 92, 92, 1),\n indigo: Float32Array.of(75, 0, 130, 1),\n ivory: Float32Array.of(255, 255, 240, 1),\n khaki: Float32Array.of(240, 230, 140, 1),\n lavender: Float32Array.of(230, 230, 250, 1),\n lavenderblush: Float32Array.of(255, 240, 245, 1),\n lawngreen: Float32Array.of(124, 252, 0, 1),\n lemonchiffon: Float32Array.of(255, 250, 205, 1),\n lightblue: Float32Array.of(173, 216, 230, 1),\n lightcoral: Float32Array.of(240, 128, 128, 1),\n lightcyan: Float32Array.of(224, 255, 255, 1),\n lightgoldenrodyellow: Float32Array.of(250, 250, 210, 1),\n lightgray: Float32Array.of(211, 211, 211, 1),\n lightgreen: Float32Array.of(144, 238, 144, 1),\n lightgrey: Float32Array.of(211, 211, 211, 1),\n lightpink: Float32Array.of(255, 182, 193, 1),\n lightsalmon: Float32Array.of(255, 160, 122, 1),\n lightseagreen: Float32Array.of(32, 178, 170, 1),\n lightskyblue: Float32Array.of(135, 206, 250, 1),\n lightslategray: Float32Array.of(119, 136, 153, 1),\n lightslategrey: Float32Array.of(119, 136, 153, 1),\n lightsteelblue: Float32Array.of(176, 196, 222, 1),\n lightyellow: Float32Array.of(255, 255, 224, 1),\n lime: Float32Array.of(0, 255, 0, 1),\n limegreen: Float32Array.of(50, 205, 50, 1),\n linen: Float32Array.of(250, 240, 230, 1),\n magenta: Float32Array.of(255, 0, 255, 1),\n maroon: Float32Array.of(128, 0, 0, 1),\n mediumaquamarine: Float32Array.of(102, 205, 170, 1),\n mediumblue: Float32Array.of(0, 0, 205, 1),\n mediumorchid: Float32Array.of(186, 85, 211, 1),\n mediumpurple: Float32Array.of(147, 112, 219, 1),\n mediumseagreen: Float32Array.of(60, 179, 113, 1),\n mediumslateblue: Float32Array.of(123, 104, 238, 1),\n mediumspringgreen: Float32Array.of(0, 250, 154, 1),\n mediumturquoise: Float32Array.of(72, 209, 204, 1),\n mediumvioletred: Float32Array.of(199, 21, 133, 1),\n midnightblue: Float32Array.of(25, 25, 112, 1),\n mintcream: Float32Array.of(245, 255, 250, 1),\n mistyrose: Float32Array.of(255, 228, 225, 1),\n moccasin: Float32Array.of(255, 228, 181, 1),\n navajowhite: Float32Array.of(255, 222, 173, 1),\n navy: Float32Array.of(0, 0, 128, 1),\n oldlace: Float32Array.of(253, 245, 230, 1),\n olive: Float32Array.of(128, 128, 0, 1),\n olivedrab: Float32Array.of(107, 142, 35, 1),\n orange: Float32Array.of(255, 165, 0, 1),\n orangered: Float32Array.of(255, 69, 0, 1),\n orchid: Float32Array.of(218, 112, 214, 1),\n palegoldenrod: Float32Array.of(238, 232, 170, 1),\n palegreen: Float32Array.of(152, 251, 152, 1),\n paleturquoise: Float32Array.of(175, 238, 238, 1),\n palevioletred: Float32Array.of(219, 112, 147, 1),\n papayawhip: Float32Array.of(255, 239, 213, 1),\n peachpuff: Float32Array.of(255, 218, 185, 1),\n peru: Float32Array.of(205, 133, 63, 1),\n pink: Float32Array.of(255, 192, 203, 1),\n plum: Float32Array.of(221, 160, 221, 1),\n powderblue: Float32Array.of(176, 224, 230, 1),\n purple: Float32Array.of(128, 0, 128, 1),\n rebeccapurple: Float32Array.of(102, 51, 153, 1),\n red: Float32Array.of(255, 0, 0, 1),\n rosybrown: Float32Array.of(188, 143, 143, 1),\n royalblue: Float32Array.of(65, 105, 225, 1),\n saddlebrown: Float32Array.of(139, 69, 19, 1),\n salmon: Float32Array.of(250, 128, 114, 1),\n sandybrown: Float32Array.of(244, 164, 96, 1),\n seagreen: Float32Array.of(46, 139, 87, 1),\n seashell: Float32Array.of(255, 245, 238, 1),\n sienna: Float32Array.of(160, 82, 45, 1),\n silver: Float32Array.of(192, 192, 192, 1),\n skyblue: Float32Array.of(135, 206, 235, 1),\n slateblue: Float32Array.of(106, 90, 205, 1),\n slategray: Float32Array.of(112, 128, 144, 1),\n slategrey: Float32Array.of(112, 128, 144, 1),\n snow: Float32Array.of(255, 250, 250, 1),\n springgreen: Float32Array.of(0, 255, 127, 1),\n steelblue: Float32Array.of(70, 130, 180, 1),\n tan: Float32Array.of(210, 180, 140, 1),\n teal: Float32Array.of(0, 128, 128, 1),\n thistle: Float32Array.of(216, 191, 216, 1),\n tomato: Float32Array.of(255, 99, 71, 1),\n turquoise: Float32Array.of(64, 224, 208, 1),\n violet: Float32Array.of(238, 130, 238, 1),\n wheat: Float32Array.of(245, 222, 179, 1),\n white: Float32Array.of(255, 255, 255, 1),\n whitesmoke: Float32Array.of(245, 245, 245, 1),\n yellow: Float32Array.of(255, 255, 0, 1),\n yellowgreen: Float32Array.of(154, 205, 50, 1),\n};\n\nconst clampCSSByte = (j: number) => {\n // Clamp to integer 0 .. 255.\n const i = Math.round(j); // Seems to be what Chrome does (vs truncation).\n // eslint-disable-next-line no-nested-ternary\n return i < 0 ? 0 : i > 255 ? 255 : i;\n};\n\nconst clampCSSFloat = (f: number) => {\n // eslint-disable-next-line no-nested-ternary\n return f < 0 ? 0 : f > 1 ? 1 : f;\n};\n\nconst parseCSSInt = (str: string) => {\n // int or percentage.\n if (str[str.length - 1] === \"%\") {\n return clampCSSByte((parseFloat(str) / 100) * 255);\n }\n // eslint-disable-next-line radix\n return clampCSSByte(parseInt(str));\n};\n\nconst parseCSSFloat = (str: string | undefined) => {\n if (str === undefined) {\n return 1;\n }\n // float or percentage.\n if (str[str.length - 1] === \"%\") {\n return clampCSSFloat(parseFloat(str) / 100);\n }\n return clampCSSFloat(parseFloat(str));\n};\n\nconst CSSHueToRGB = (m1: number, m2: number, h: number) => {\n if (h < 0) {\n h += 1;\n } else if (h > 1) {\n h -= 1;\n }\n\n if (h * 6 < 1) {\n return m1 + (m2 - m1) * h * 6;\n }\n if (h * 2 < 1) {\n return m2;\n }\n if (h * 3 < 2) {\n return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n }\n return m1;\n};\n\nconst parseCSSColor = (cssStr: string) => {\n // Remove all whitespace, not compliant, but should just be more accepting.\n var str = cssStr.replace(/ /g, \"\").toLowerCase();\n\n // Color keywords (and transparent) lookup.\n if (str in CSSColorTable) {\n const cl = CSSColorTable[str as keyof typeof CSSColorTable];\n if (cl) {\n return Float32Array.of(...cl);\n }\n return null;\n } // dup.\n\n // #abc and #abc123 syntax.\n if (str[0] === \"#\") {\n if (str.length === 4) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xfff)) {\n return null;\n } // Covers NaN.\n return [\n ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8),\n (iv & 0xf0) | ((iv & 0xf0) >> 4),\n (iv & 0xf) | ((iv & 0xf) << 4),\n 1,\n ];\n } else if (str.length === 7) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xffffff)) {\n return null;\n } // Covers NaN.\n return [(iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, 1];\n }\n\n return null;\n }\n\n var op = str.indexOf(\"(\"),\n ep = str.indexOf(\")\");\n if (op !== -1 && ep + 1 === str.length) {\n var fname = str.substr(0, op);\n var params = str.substr(op + 1, ep - (op + 1)).split(\",\");\n var alpha = 1; // To allow case fallthrough.\n switch (fname) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n case \"rgba\":\n if (params.length !== 4) {\n return null;\n }\n alpha = parseCSSFloat(params.pop());\n // Fall through.\n case \"rgb\":\n if (params.length !== 3) {\n return null;\n }\n return [\n parseCSSInt(params[0]),\n parseCSSInt(params[1]),\n parseCSSInt(params[2]),\n alpha,\n ];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n case \"hsla\":\n if (params.length !== 4) {\n return null;\n }\n alpha = parseCSSFloat(params.pop());\n // Fall through.\n case \"hsl\":\n if (params.length !== 3) {\n return null;\n }\n var h = (((parseFloat(params[0]) % 360) + 360) % 360) / 360; // 0 .. 1\n // NOTE(deanm): According to the CSS spec s/l should only be\n // percentages, but we don't bother and let float or percentage.\n var s = parseCSSFloat(params[1]);\n var l = parseCSSFloat(params[2]);\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var m1 = l * 2 - m2;\n return [\n clampCSSByte(CSSHueToRGB(m1, m2, h + 1 / 3) * 255),\n clampCSSByte(CSSHueToRGB(m1, m2, h) * 255),\n clampCSSByte(CSSHueToRGB(m1, m2, h - 1 / 3) * 255),\n alpha,\n ];\n default:\n return null;\n }\n }\n\n return null;\n};\n\nexport const Color = (color: InputColor): SkColor => {\n if (color instanceof Float32Array) {\n return color;\n } else if (typeof color === \"string\") {\n const r = parseCSSColor(color);\n const rgba = r === null ? CSSColorTable.black : r;\n return Float32Array.of(\n rgba[0] / 255,\n rgba[1] / 255,\n rgba[2] / 255,\n rgba[3]\n );\n } else {\n return Float32Array.of(\n red(color) / 255,\n green(color) / 255,\n blue(color) / 255,\n alphaf(color)\n );\n }\n};\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["alphaf","c","red","green","blue","CSSColorTable","transparent","Float32Array","of","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","clampCSSByte","j","i","Math","round","clampCSSFloat","f","parseCSSInt","str","length","parseFloat","parseInt","parseCSSFloat","undefined","CSSHueToRGB","m1","m2","h","parseCSSColor","cssStr","replace","toLowerCase","cl","iv","substr","op","indexOf","ep","fname","params","split","alpha","pop","s","l","Color","color","r","rgba"],"sources":["JsiSkColor.ts"],"sourcesContent":["import type { SkColor, Color as InputColor } from \"../types\";\n\nconst alphaf = (c: number) => ((c >> 24) & 255) / 255;\nconst red = (c: number) => (c >> 16) & 255;\nconst green = (c: number) => (c >> 8) & 255;\nconst blue = (c: number) => c & 255;\n\n// From https://raw.githubusercontent.com/deanm/css-color-parser-js/master/csscolorparser.js\nconst CSSColorTable = {\n transparent: Float32Array.of(0, 0, 0, 0),\n aliceblue: Float32Array.of(240, 248, 255, 1),\n antiquewhite: Float32Array.of(250, 235, 215, 1),\n aqua: Float32Array.of(0, 255, 255, 1),\n aquamarine: Float32Array.of(127, 255, 212, 1),\n azure: Float32Array.of(240, 255, 255, 1),\n beige: Float32Array.of(245, 245, 220, 1),\n bisque: Float32Array.of(255, 228, 196, 1),\n black: Float32Array.of(0, 0, 0, 1),\n blanchedalmond: Float32Array.of(255, 235, 205, 1),\n blue: Float32Array.of(0, 0, 255, 1),\n blueviolet: Float32Array.of(138, 43, 226, 1),\n brown: Float32Array.of(165, 42, 42, 1),\n burlywood: Float32Array.of(222, 184, 135, 1),\n cadetblue: Float32Array.of(95, 158, 160, 1),\n chartreuse: Float32Array.of(127, 255, 0, 1),\n chocolate: Float32Array.of(210, 105, 30, 1),\n coral: Float32Array.of(255, 127, 80, 1),\n cornflowerblue: Float32Array.of(100, 149, 237, 1),\n cornsilk: Float32Array.of(255, 248, 220, 1),\n crimson: Float32Array.of(220, 20, 60, 1),\n cyan: Float32Array.of(0, 255, 255, 1),\n darkblue: Float32Array.of(0, 0, 139, 1),\n darkcyan: Float32Array.of(0, 139, 139, 1),\n darkgoldenrod: Float32Array.of(184, 134, 11, 1),\n darkgray: Float32Array.of(169, 169, 169, 1),\n darkgreen: Float32Array.of(0, 100, 0, 1),\n darkgrey: Float32Array.of(169, 169, 169, 1),\n darkkhaki: Float32Array.of(189, 183, 107, 1),\n darkmagenta: Float32Array.of(139, 0, 139, 1),\n darkolivegreen: Float32Array.of(85, 107, 47, 1),\n darkorange: Float32Array.of(255, 140, 0, 1),\n darkorchid: Float32Array.of(153, 50, 204, 1),\n darkred: Float32Array.of(139, 0, 0, 1),\n darksalmon: Float32Array.of(233, 150, 122, 1),\n darkseagreen: Float32Array.of(143, 188, 143, 1),\n darkslateblue: Float32Array.of(72, 61, 139, 1),\n darkslategray: Float32Array.of(47, 79, 79, 1),\n darkslategrey: Float32Array.of(47, 79, 79, 1),\n darkturquoise: Float32Array.of(0, 206, 209, 1),\n darkviolet: Float32Array.of(148, 0, 211, 1),\n deeppink: Float32Array.of(255, 20, 147, 1),\n deepskyblue: Float32Array.of(0, 191, 255, 1),\n dimgray: Float32Array.of(105, 105, 105, 1),\n dimgrey: Float32Array.of(105, 105, 105, 1),\n dodgerblue: Float32Array.of(30, 144, 255, 1),\n firebrick: Float32Array.of(178, 34, 34, 1),\n floralwhite: Float32Array.of(255, 250, 240, 1),\n forestgreen: Float32Array.of(34, 139, 34, 1),\n fuchsia: Float32Array.of(255, 0, 255, 1),\n gainsboro: Float32Array.of(220, 220, 220, 1),\n ghostwhite: Float32Array.of(248, 248, 255, 1),\n gold: Float32Array.of(255, 215, 0, 1),\n goldenrod: Float32Array.of(218, 165, 32, 1),\n gray: Float32Array.of(128, 128, 128, 1),\n green: Float32Array.of(0, 128, 0, 1),\n greenyellow: Float32Array.of(173, 255, 47, 1),\n grey: Float32Array.of(128, 128, 128, 1),\n honeydew: Float32Array.of(240, 255, 240, 1),\n hotpink: Float32Array.of(255, 105, 180, 1),\n indianred: Float32Array.of(205, 92, 92, 1),\n indigo: Float32Array.of(75, 0, 130, 1),\n ivory: Float32Array.of(255, 255, 240, 1),\n khaki: Float32Array.of(240, 230, 140, 1),\n lavender: Float32Array.of(230, 230, 250, 1),\n lavenderblush: Float32Array.of(255, 240, 245, 1),\n lawngreen: Float32Array.of(124, 252, 0, 1),\n lemonchiffon: Float32Array.of(255, 250, 205, 1),\n lightblue: Float32Array.of(173, 216, 230, 1),\n lightcoral: Float32Array.of(240, 128, 128, 1),\n lightcyan: Float32Array.of(224, 255, 255, 1),\n lightgoldenrodyellow: Float32Array.of(250, 250, 210, 1),\n lightgray: Float32Array.of(211, 211, 211, 1),\n lightgreen: Float32Array.of(144, 238, 144, 1),\n lightgrey: Float32Array.of(211, 211, 211, 1),\n lightpink: Float32Array.of(255, 182, 193, 1),\n lightsalmon: Float32Array.of(255, 160, 122, 1),\n lightseagreen: Float32Array.of(32, 178, 170, 1),\n lightskyblue: Float32Array.of(135, 206, 250, 1),\n lightslategray: Float32Array.of(119, 136, 153, 1),\n lightslategrey: Float32Array.of(119, 136, 153, 1),\n lightsteelblue: Float32Array.of(176, 196, 222, 1),\n lightyellow: Float32Array.of(255, 255, 224, 1),\n lime: Float32Array.of(0, 255, 0, 1),\n limegreen: Float32Array.of(50, 205, 50, 1),\n linen: Float32Array.of(250, 240, 230, 1),\n magenta: Float32Array.of(255, 0, 255, 1),\n maroon: Float32Array.of(128, 0, 0, 1),\n mediumaquamarine: Float32Array.of(102, 205, 170, 1),\n mediumblue: Float32Array.of(0, 0, 205, 1),\n mediumorchid: Float32Array.of(186, 85, 211, 1),\n mediumpurple: Float32Array.of(147, 112, 219, 1),\n mediumseagreen: Float32Array.of(60, 179, 113, 1),\n mediumslateblue: Float32Array.of(123, 104, 238, 1),\n mediumspringgreen: Float32Array.of(0, 250, 154, 1),\n mediumturquoise: Float32Array.of(72, 209, 204, 1),\n mediumvioletred: Float32Array.of(199, 21, 133, 1),\n midnightblue: Float32Array.of(25, 25, 112, 1),\n mintcream: Float32Array.of(245, 255, 250, 1),\n mistyrose: Float32Array.of(255, 228, 225, 1),\n moccasin: Float32Array.of(255, 228, 181, 1),\n navajowhite: Float32Array.of(255, 222, 173, 1),\n navy: Float32Array.of(0, 0, 128, 1),\n oldlace: Float32Array.of(253, 245, 230, 1),\n olive: Float32Array.of(128, 128, 0, 1),\n olivedrab: Float32Array.of(107, 142, 35, 1),\n orange: Float32Array.of(255, 165, 0, 1),\n orangered: Float32Array.of(255, 69, 0, 1),\n orchid: Float32Array.of(218, 112, 214, 1),\n palegoldenrod: Float32Array.of(238, 232, 170, 1),\n palegreen: Float32Array.of(152, 251, 152, 1),\n paleturquoise: Float32Array.of(175, 238, 238, 1),\n palevioletred: Float32Array.of(219, 112, 147, 1),\n papayawhip: Float32Array.of(255, 239, 213, 1),\n peachpuff: Float32Array.of(255, 218, 185, 1),\n peru: Float32Array.of(205, 133, 63, 1),\n pink: Float32Array.of(255, 192, 203, 1),\n plum: Float32Array.of(221, 160, 221, 1),\n powderblue: Float32Array.of(176, 224, 230, 1),\n purple: Float32Array.of(128, 0, 128, 1),\n rebeccapurple: Float32Array.of(102, 51, 153, 1),\n red: Float32Array.of(255, 0, 0, 1),\n rosybrown: Float32Array.of(188, 143, 143, 1),\n royalblue: Float32Array.of(65, 105, 225, 1),\n saddlebrown: Float32Array.of(139, 69, 19, 1),\n salmon: Float32Array.of(250, 128, 114, 1),\n sandybrown: Float32Array.of(244, 164, 96, 1),\n seagreen: Float32Array.of(46, 139, 87, 1),\n seashell: Float32Array.of(255, 245, 238, 1),\n sienna: Float32Array.of(160, 82, 45, 1),\n silver: Float32Array.of(192, 192, 192, 1),\n skyblue: Float32Array.of(135, 206, 235, 1),\n slateblue: Float32Array.of(106, 90, 205, 1),\n slategray: Float32Array.of(112, 128, 144, 1),\n slategrey: Float32Array.of(112, 128, 144, 1),\n snow: Float32Array.of(255, 250, 250, 1),\n springgreen: Float32Array.of(0, 255, 127, 1),\n steelblue: Float32Array.of(70, 130, 180, 1),\n tan: Float32Array.of(210, 180, 140, 1),\n teal: Float32Array.of(0, 128, 128, 1),\n thistle: Float32Array.of(216, 191, 216, 1),\n tomato: Float32Array.of(255, 99, 71, 1),\n turquoise: Float32Array.of(64, 224, 208, 1),\n violet: Float32Array.of(238, 130, 238, 1),\n wheat: Float32Array.of(245, 222, 179, 1),\n white: Float32Array.of(255, 255, 255, 1),\n whitesmoke: Float32Array.of(245, 245, 245, 1),\n yellow: Float32Array.of(255, 255, 0, 1),\n yellowgreen: Float32Array.of(154, 205, 50, 1),\n};\n\nconst clampCSSByte = (j: number) => {\n // Clamp to integer 0 .. 255.\n const i = Math.round(j); // Seems to be what Chrome does (vs truncation).\n // eslint-disable-next-line no-nested-ternary\n return i < 0 ? 0 : i > 255 ? 255 : i;\n};\n\nconst clampCSSFloat = (f: number) => {\n // eslint-disable-next-line no-nested-ternary\n return f < 0 ? 0 : f > 1 ? 1 : f;\n};\n\nconst parseCSSInt = (str: string) => {\n // int or percentage.\n if (str[str.length - 1] === \"%\") {\n return clampCSSByte((parseFloat(str) / 100) * 255);\n }\n // eslint-disable-next-line radix\n return clampCSSByte(parseInt(str));\n};\n\nconst parseCSSFloat = (str: string | undefined) => {\n if (str === undefined) {\n return 1;\n }\n // float or percentage.\n if (str[str.length - 1] === \"%\") {\n return clampCSSFloat(parseFloat(str) / 100);\n }\n return clampCSSFloat(parseFloat(str));\n};\n\nconst CSSHueToRGB = (m1: number, m2: number, h: number) => {\n if (h < 0) {\n h += 1;\n } else if (h > 1) {\n h -= 1;\n }\n\n if (h * 6 < 1) {\n return m1 + (m2 - m1) * h * 6;\n }\n if (h * 2 < 1) {\n return m2;\n }\n if (h * 3 < 2) {\n return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n }\n return m1;\n};\n\nconst parseCSSColor = (cssStr: string) => {\n // Remove all whitespace, not compliant, but should just be more accepting.\n var str = cssStr.replace(/ /g, \"\").toLowerCase();\n\n // Color keywords (and transparent) lookup.\n if (str in CSSColorTable) {\n const cl = CSSColorTable[str as keyof typeof CSSColorTable];\n if (cl) {\n return Float32Array.of(...cl);\n }\n return null;\n } // dup.\n\n // #abc and #abc123 syntax.\n if (str[0] === \"#\") {\n if (str.length === 4) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xfff)) {\n return null;\n } // Covers NaN.\n return [\n ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8),\n (iv & 0xf0) | ((iv & 0xf0) >> 4),\n (iv & 0xf) | ((iv & 0xf) << 4),\n 1,\n ];\n } else if (str.length === 7) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xffffff)) {\n return null;\n } // Covers NaN.\n return [(iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, 1];\n } else if (str.length === 9) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xffffffff)) {\n return null; // Covers NaN.\n }\n return [\n ((iv & 0xff000000) >> 24) & 0xff,\n (iv & 0xff0000) >> 16,\n (iv & 0xff00) >> 8,\n (iv & 0xff) / 255,\n ];\n }\n\n return null;\n }\n\n var op = str.indexOf(\"(\"),\n ep = str.indexOf(\")\");\n if (op !== -1 && ep + 1 === str.length) {\n var fname = str.substr(0, op);\n var params = str.substr(op + 1, ep - (op + 1)).split(\",\");\n var alpha = 1; // To allow case fallthrough.\n switch (fname) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n case \"rgba\":\n if (params.length !== 4) {\n return null;\n }\n alpha = parseCSSFloat(params.pop());\n // Fall through.\n case \"rgb\":\n if (params.length !== 3) {\n return null;\n }\n return [\n parseCSSInt(params[0]),\n parseCSSInt(params[1]),\n parseCSSInt(params[2]),\n alpha,\n ];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n case \"hsla\":\n if (params.length !== 4) {\n return null;\n }\n alpha = parseCSSFloat(params.pop());\n // Fall through.\n case \"hsl\":\n if (params.length !== 3) {\n return null;\n }\n var h = (((parseFloat(params[0]) % 360) + 360) % 360) / 360; // 0 .. 1\n // NOTE(deanm): According to the CSS spec s/l should only be\n // percentages, but we don't bother and let float or percentage.\n var s = parseCSSFloat(params[1]);\n var l = parseCSSFloat(params[2]);\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var m1 = l * 2 - m2;\n return [\n clampCSSByte(CSSHueToRGB(m1, m2, h + 1 / 3) * 255),\n clampCSSByte(CSSHueToRGB(m1, m2, h) * 255),\n clampCSSByte(CSSHueToRGB(m1, m2, h - 1 / 3) * 255),\n alpha,\n ];\n default:\n return null;\n }\n }\n\n return null;\n};\n\nexport const Color = (color: InputColor): SkColor => {\n if (color instanceof Float32Array) {\n return color;\n } else if (typeof color === \"string\") {\n const r = parseCSSColor(color);\n const rgba = r === null ? CSSColorTable.black : r;\n return Float32Array.of(\n rgba[0] / 255,\n rgba[1] / 255,\n rgba[2] / 255,\n rgba[3]\n );\n } else {\n return Float32Array.of(\n red(color) / 255,\n green(color) / 255,\n blue(color) / 255,\n alphaf(color)\n );\n }\n};\n"],"mappings":"AAEA,MAAMA,MAAM,GAAIC,CAAD,IAAe,CAAEA,CAAC,IAAI,EAAN,GAAY,GAAb,IAAoB,GAAlD;;AACA,MAAMC,GAAG,GAAID,CAAD,IAAgBA,CAAC,IAAI,EAAN,GAAY,GAAvC;;AACA,MAAME,KAAK,GAAIF,CAAD,IAAgBA,CAAC,IAAI,CAAN,GAAW,GAAxC;;AACA,MAAMG,IAAI,GAAIH,CAAD,IAAeA,CAAC,GAAG,GAAhC,C,CAEA;;;AACA,MAAMI,aAAa,GAAG;EACpBC,WAAW,EAAEC,YAAY,CAACC,EAAb,CAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,EAAyB,CAAzB,CADO;EAEpBC,SAAS,EAAEF,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAFS;EAGpBE,YAAY,EAAEH,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAHM;EAIpBG,IAAI,EAAEJ,YAAY,CAACC,EAAb,CAAgB,CAAhB,EAAmB,GAAnB,EAAwB,GAAxB,EAA6B,CAA7B,CAJc;EAKpBI,UAAU,EAAEL,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CALQ;EAMpBK,KAAK,EAAEN,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CANa;EAOpBM,KAAK,EAAEP,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAPa;EAQpBO,MAAM,EAAER,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CARY;EASpBQ,KAAK,EAAET,YAAY,CAACC,EAAb,CAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,EAAyB,CAAzB,CATa;EAUpBS,cAAc,EAAEV,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAVI;EAWpBJ,IAAI,EAAEG,YAAY,CAACC,EAAb,CAAgB,CAAhB,EAAmB,CAAnB,EAAsB,GAAtB,EAA2B,CAA3B,CAXc;EAYpBU,UAAU,EAAEX,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,EAArB,EAAyB,GAAzB,EAA8B,CAA9B,CAZQ;EAapBW,KAAK,EAAEZ,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,EAArB,EAAyB,EAAzB,EAA6B,CAA7B,CAba;EAcpBY,SAAS,EAAEb,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAdS;EAepBa,SAAS,EAAEd,YAAY,CAACC,EAAb,CAAgB,EAAhB,EAAoB,GAApB,EAAyB,GAAzB,EAA8B,CAA9B,CAfS;EAgBpBc,UAAU,EAAEf,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,CAA1B,EAA6B,CAA7B,CAhBQ;EAiBpBe,SAAS,EAAEhB,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,EAA1B,EAA8B,CAA9B,CAjBS;EAkBpBgB,KAAK,EAAEjB,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,EAA1B,EAA8B,CAA9B,CAlBa;EAmBpBiB,cAAc,EAAElB,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAnBI;EAoBpBkB,QAAQ,EAAEnB,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CApBU;EAqBpBmB,OAAO,EAAEpB,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,EAArB,EAAyB,EAAzB,EAA6B,CAA7B,CArBW;EAsBpBoB,IAAI,EAAErB,YAAY,CAACC,EAAb,CAAgB,CAAhB,EAAmB,GAAnB,EAAwB,GAAxB,EAA6B,CAA7B,CAtBc;EAuBpBqB,QAAQ,EAAEtB,YAAY,CAACC,EAAb,CAAgB,CAAhB,EAAmB,CAAnB,EAAsB,GAAtB,EAA2B,CAA3B,CAvBU;EAwBpBsB,QAAQ,EAAEvB,YAAY,CAACC,EAAb,CAAgB,CAAhB,EAAmB,GAAnB,EAAwB,GAAxB,EAA6B,CAA7B,CAxBU;EAyBpBuB,aAAa,EAAExB,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,EAA1B,EAA8B,CAA9B,CAzBK;EA0BpBwB,QAAQ,EAAEzB,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA1BU;EA2BpByB,SAAS,EAAE1B,YAAY,CAACC,EAAb,CAAgB,CAAhB,EAAmB,GAAnB,EAAwB,CAAxB,EAA2B,CAA3B,CA3BS;EA4BpB0B,QAAQ,EAAE3B,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA5BU;EA6BpB2B,SAAS,EAAE5B,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA7BS;EA8BpB4B,WAAW,EAAE7B,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,CAArB,EAAwB,GAAxB,EAA6B,CAA7B,CA9BO;EA+BpB6B,cAAc,EAAE9B,YAAY,CAACC,EAAb,CAAgB,EAAhB,EAAoB,GAApB,EAAyB,EAAzB,EAA6B,CAA7B,CA/BI;EAgCpB8B,UAAU,EAAE/B,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,CAA1B,EAA6B,CAA7B,CAhCQ;EAiCpB+B,UAAU,EAAEhC,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,EAArB,EAAyB,GAAzB,EAA8B,CAA9B,CAjCQ;EAkCpBgC,OAAO,EAAEjC,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,CAArB,EAAwB,CAAxB,EAA2B,CAA3B,CAlCW;EAmCpBiC,UAAU,EAAElC,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAnCQ;EAoCpBkC,YAAY,EAAEnC,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CApCM;EAqCpBmC,aAAa,EAAEpC,YAAY,CAACC,EAAb,CAAgB,EAAhB,EAAoB,EAApB,EAAwB,GAAxB,EAA6B,CAA7B,CArCK;EAsCpBoC,aAAa,EAAErC,YAAY,CAACC,EAAb,CAAgB,EAAhB,EAAoB,EAApB,EAAwB,EAAxB,EAA4B,CAA5B,CAtCK;EAuCpBqC,aAAa,EAAEtC,YAAY,CAACC,EAAb,CAAgB,EAAhB,EAAoB,EAApB,EAAwB,EAAxB,EAA4B,CAA5B,CAvCK;EAwCpBsC,aAAa,EAAEvC,YAAY,CAACC,EAAb,CAAgB,CAAhB,EAAmB,GAAnB,EAAwB,GAAxB,EAA6B,CAA7B,CAxCK;EAyCpBuC,UAAU,EAAExC,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,CAArB,EAAwB,GAAxB,EAA6B,CAA7B,CAzCQ;EA0CpBwC,QAAQ,EAAEzC,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,EAArB,EAAyB,GAAzB,EAA8B,CAA9B,CA1CU;EA2CpByC,WAAW,EAAE1C,YAAY,CAACC,EAAb,CAAgB,CAAhB,EAAmB,GAAnB,EAAwB,GAAxB,EAA6B,CAA7B,CA3CO;EA4CpB0C,OAAO,EAAE3C,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA5CW;EA6CpB2C,OAAO,EAAE5C,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA7CW;EA8CpB4C,UAAU,EAAE7C,YAAY,CAACC,EAAb,CAAgB,EAAhB,EAAoB,GAApB,EAAyB,GAAzB,EAA8B,CAA9B,CA9CQ;EA+CpB6C,SAAS,EAAE9C,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,EAArB,EAAyB,EAAzB,EAA6B,CAA7B,CA/CS;EAgDpB8C,WAAW,EAAE/C,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAhDO;EAiDpB+C,WAAW,EAAEhD,YAAY,CAACC,EAAb,CAAgB,EAAhB,EAAoB,GAApB,EAAyB,EAAzB,EAA6B,CAA7B,CAjDO;EAkDpBgD,OAAO,EAAEjD,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,CAArB,EAAwB,GAAxB,EAA6B,CAA7B,CAlDW;EAmDpBiD,SAAS,EAAElD,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAnDS;EAoDpBkD,UAAU,EAAEnD,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CApDQ;EAqDpBmD,IAAI,EAAEpD,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,CAA1B,EAA6B,CAA7B,CArDc;EAsDpBoD,SAAS,EAAErD,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,EAA1B,EAA8B,CAA9B,CAtDS;EAuDpBqD,IAAI,EAAEtD,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAvDc;EAwDpBL,KAAK,EAAEI,YAAY,CAACC,EAAb,CAAgB,CAAhB,EAAmB,GAAnB,EAAwB,CAAxB,EAA2B,CAA3B,CAxDa;EAyDpBsD,WAAW,EAAEvD,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,EAA1B,EAA8B,CAA9B,CAzDO;EA0DpBuD,IAAI,EAAExD,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA1Dc;EA2DpBwD,QAAQ,EAAEzD,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA3DU;EA4DpByD,OAAO,EAAE1D,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA5DW;EA6DpB0D,SAAS,EAAE3D,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,EAArB,EAAyB,EAAzB,EAA6B,CAA7B,CA7DS;EA8DpB2D,MAAM,EAAE5D,YAAY,CAACC,EAAb,CAAgB,EAAhB,EAAoB,CAApB,EAAuB,GAAvB,EAA4B,CAA5B,CA9DY;EA+DpB4D,KAAK,EAAE7D,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA/Da;EAgEpB6D,KAAK,EAAE9D,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAhEa;EAiEpB8D,QAAQ,EAAE/D,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAjEU;EAkEpB+D,aAAa,EAAEhE,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAlEK;EAmEpBgE,SAAS,EAAEjE,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,CAA1B,EAA6B,CAA7B,CAnES;EAoEpBiE,YAAY,EAAElE,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CApEM;EAqEpBkE,SAAS,EAAEnE,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CArES;EAsEpBmE,UAAU,EAAEpE,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAtEQ;EAuEpBoE,SAAS,EAAErE,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAvES;EAwEpBqE,oBAAoB,EAAEtE,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAxEF;EAyEpBsE,SAAS,EAAEvE,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAzES;EA0EpBuE,UAAU,EAAExE,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA1EQ;EA2EpBwE,SAAS,EAAEzE,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA3ES;EA4EpByE,SAAS,EAAE1E,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA5ES;EA6EpB0E,WAAW,EAAE3E,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA7EO;EA8EpB2E,aAAa,EAAE5E,YAAY,CAACC,EAAb,CAAgB,EAAhB,EAAoB,GAApB,EAAyB,GAAzB,EAA8B,CAA9B,CA9EK;EA+EpB4E,YAAY,EAAE7E,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA/EM;EAgFpB6E,cAAc,EAAE9E,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAhFI;EAiFpB8E,cAAc,EAAE/E,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAjFI;EAkFpB+E,cAAc,EAAEhF,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAlFI;EAmFpBgF,WAAW,EAAEjF,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAnFO;EAoFpBiF,IAAI,EAAElF,YAAY,CAACC,EAAb,CAAgB,CAAhB,EAAmB,GAAnB,EAAwB,CAAxB,EAA2B,CAA3B,CApFc;EAqFpBkF,SAAS,EAAEnF,YAAY,CAACC,EAAb,CAAgB,EAAhB,EAAoB,GAApB,EAAyB,EAAzB,EAA6B,CAA7B,CArFS;EAsFpBmF,KAAK,EAAEpF,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAtFa;EAuFpBoF,OAAO,EAAErF,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,CAArB,EAAwB,GAAxB,EAA6B,CAA7B,CAvFW;EAwFpBqF,MAAM,EAAEtF,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,CAArB,EAAwB,CAAxB,EAA2B,CAA3B,CAxFY;EAyFpBsF,gBAAgB,EAAEvF,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAzFE;EA0FpBuF,UAAU,EAAExF,YAAY,CAACC,EAAb,CAAgB,CAAhB,EAAmB,CAAnB,EAAsB,GAAtB,EAA2B,CAA3B,CA1FQ;EA2FpBwF,YAAY,EAAEzF,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,EAArB,EAAyB,GAAzB,EAA8B,CAA9B,CA3FM;EA4FpByF,YAAY,EAAE1F,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA5FM;EA6FpB0F,cAAc,EAAE3F,YAAY,CAACC,EAAb,CAAgB,EAAhB,EAAoB,GAApB,EAAyB,GAAzB,EAA8B,CAA9B,CA7FI;EA8FpB2F,eAAe,EAAE5F,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA9FG;EA+FpB4F,iBAAiB,EAAE7F,YAAY,CAACC,EAAb,CAAgB,CAAhB,EAAmB,GAAnB,EAAwB,GAAxB,EAA6B,CAA7B,CA/FC;EAgGpB6F,eAAe,EAAE9F,YAAY,CAACC,EAAb,CAAgB,EAAhB,EAAoB,GAApB,EAAyB,GAAzB,EAA8B,CAA9B,CAhGG;EAiGpB8F,eAAe,EAAE/F,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,EAArB,EAAyB,GAAzB,EAA8B,CAA9B,CAjGG;EAkGpB+F,YAAY,EAAEhG,YAAY,CAACC,EAAb,CAAgB,EAAhB,EAAoB,EAApB,EAAwB,GAAxB,EAA6B,CAA7B,CAlGM;EAmGpBgG,SAAS,EAAEjG,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAnGS;EAoGpBiG,SAAS,EAAElG,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CApGS;EAqGpBkG,QAAQ,EAAEnG,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CArGU;EAsGpBmG,WAAW,EAAEpG,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAtGO;EAuGpBoG,IAAI,EAAErG,YAAY,CAACC,EAAb,CAAgB,CAAhB,EAAmB,CAAnB,EAAsB,GAAtB,EAA2B,CAA3B,CAvGc;EAwGpBqG,OAAO,EAAEtG,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAxGW;EAyGpBsG,KAAK,EAAEvG,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,CAA1B,EAA6B,CAA7B,CAzGa;EA0GpBuG,SAAS,EAAExG,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,EAA1B,EAA8B,CAA9B,CA1GS;EA2GpBwG,MAAM,EAAEzG,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,CAA1B,EAA6B,CAA7B,CA3GY;EA4GpByG,SAAS,EAAE1G,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,EAArB,EAAyB,CAAzB,EAA4B,CAA5B,CA5GS;EA6GpB0G,MAAM,EAAE3G,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA7GY;EA8GpB2G,aAAa,EAAE5G,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA9GK;EA+GpB4G,SAAS,EAAE7G,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA/GS;EAgHpB6G,aAAa,EAAE9G,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAhHK;EAiHpB8G,aAAa,EAAE/G,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAjHK;EAkHpB+G,UAAU,EAAEhH,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAlHQ;EAmHpBgH,SAAS,EAAEjH,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAnHS;EAoHpBiH,IAAI,EAAElH,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,EAA1B,EAA8B,CAA9B,CApHc;EAqHpBkH,IAAI,EAAEnH,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CArHc;EAsHpBmH,IAAI,EAAEpH,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAtHc;EAuHpBoH,UAAU,EAAErH,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAvHQ;EAwHpBqH,MAAM,EAAEtH,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,CAArB,EAAwB,GAAxB,EAA6B,CAA7B,CAxHY;EAyHpBsH,aAAa,EAAEvH,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,EAArB,EAAyB,GAAzB,EAA8B,CAA9B,CAzHK;EA0HpBN,GAAG,EAAEK,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,CAArB,EAAwB,CAAxB,EAA2B,CAA3B,CA1He;EA2HpBuH,SAAS,EAAExH,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA3HS;EA4HpBwH,SAAS,EAAEzH,YAAY,CAACC,EAAb,CAAgB,EAAhB,EAAoB,GAApB,EAAyB,GAAzB,EAA8B,CAA9B,CA5HS;EA6HpByH,WAAW,EAAE1H,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,EAArB,EAAyB,EAAzB,EAA6B,CAA7B,CA7HO;EA8HpB0H,MAAM,EAAE3H,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA9HY;EA+HpB2H,UAAU,EAAE5H,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,EAA1B,EAA8B,CAA9B,CA/HQ;EAgIpB4H,QAAQ,EAAE7H,YAAY,CAACC,EAAb,CAAgB,EAAhB,EAAoB,GAApB,EAAyB,EAAzB,EAA6B,CAA7B,CAhIU;EAiIpB6H,QAAQ,EAAE9H,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAjIU;EAkIpB8H,MAAM,EAAE/H,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,EAArB,EAAyB,EAAzB,EAA6B,CAA7B,CAlIY;EAmIpB+H,MAAM,EAAEhI,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAnIY;EAoIpBgI,OAAO,EAAEjI,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CApIW;EAqIpBiI,SAAS,EAAElI,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,EAArB,EAAyB,GAAzB,EAA8B,CAA9B,CArIS;EAsIpBkI,SAAS,EAAEnI,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAtIS;EAuIpBmI,SAAS,EAAEpI,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAvIS;EAwIpBoI,IAAI,EAAErI,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAxIc;EAyIpBqI,WAAW,EAAEtI,YAAY,CAACC,EAAb,CAAgB,CAAhB,EAAmB,GAAnB,EAAwB,GAAxB,EAA6B,CAA7B,CAzIO;EA0IpBsI,SAAS,EAAEvI,YAAY,CAACC,EAAb,CAAgB,EAAhB,EAAoB,GAApB,EAAyB,GAAzB,EAA8B,CAA9B,CA1IS;EA2IpBuI,GAAG,EAAExI,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA3Ie;EA4IpBwI,IAAI,EAAEzI,YAAY,CAACC,EAAb,CAAgB,CAAhB,EAAmB,GAAnB,EAAwB,GAAxB,EAA6B,CAA7B,CA5Ic;EA6IpByI,OAAO,EAAE1I,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CA7IW;EA8IpB0I,MAAM,EAAE3I,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,EAArB,EAAyB,EAAzB,EAA6B,CAA7B,CA9IY;EA+IpB2I,SAAS,EAAE5I,YAAY,CAACC,EAAb,CAAgB,EAAhB,EAAoB,GAApB,EAAyB,GAAzB,EAA8B,CAA9B,CA/IS;EAgJpB4I,MAAM,EAAE7I,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAhJY;EAiJpB6I,KAAK,EAAE9I,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAjJa;EAkJpB8I,KAAK,EAAE/I,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAlJa;EAmJpB+I,UAAU,EAAEhJ,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,CAA/B,CAnJQ;EAoJpBgJ,MAAM,EAAEjJ,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,CAA1B,EAA6B,CAA7B,CApJY;EAqJpBiJ,WAAW,EAAElJ,YAAY,CAACC,EAAb,CAAgB,GAAhB,EAAqB,GAArB,EAA0B,EAA1B,EAA8B,CAA9B;AArJO,CAAtB;;AAwJA,MAAMkJ,YAAY,GAAIC,CAAD,IAAe;EAClC;EACA,MAAMC,CAAC,GAAGC,IAAI,CAACC,KAAL,CAAWH,CAAX,CAAV,CAFkC,CAET;EACzB;;EACA,OAAOC,CAAC,GAAG,CAAJ,GAAQ,CAAR,GAAYA,CAAC,GAAG,GAAJ,GAAU,GAAV,GAAgBA,CAAnC;AACD,CALD;;AAOA,MAAMG,aAAa,GAAIC,CAAD,IAAe;EACnC;EACA,OAAOA,CAAC,GAAG,CAAJ,GAAQ,CAAR,GAAYA,CAAC,GAAG,CAAJ,GAAQ,CAAR,GAAYA,CAA/B;AACD,CAHD;;AAKA,MAAMC,WAAW,GAAIC,GAAD,IAAiB;EACnC;EACA,IAAIA,GAAG,CAACA,GAAG,CAACC,MAAJ,GAAa,CAAd,CAAH,KAAwB,GAA5B,EAAiC;IAC/B,OAAOT,YAAY,CAAEU,UAAU,CAACF,GAAD,CAAV,GAAkB,GAAnB,GAA0B,GAA3B,CAAnB;EACD,CAJkC,CAKnC;;;EACA,OAAOR,YAAY,CAACW,QAAQ,CAACH,GAAD,CAAT,CAAnB;AACD,CAPD;;AASA,MAAMI,aAAa,GAAIJ,GAAD,IAA6B;EACjD,IAAIA,GAAG,KAAKK,SAAZ,EAAuB;IACrB,OAAO,CAAP;EACD,CAHgD,CAIjD;;;EACA,IAAIL,GAAG,CAACA,GAAG,CAACC,MAAJ,GAAa,CAAd,CAAH,KAAwB,GAA5B,EAAiC;IAC/B,OAAOJ,aAAa,CAACK,UAAU,CAACF,GAAD,CAAV,GAAkB,GAAnB,CAApB;EACD;;EACD,OAAOH,aAAa,CAACK,UAAU,CAACF,GAAD,CAAX,CAApB;AACD,CATD;;AAWA,MAAMM,WAAW,GAAG,CAACC,EAAD,EAAaC,EAAb,EAAyBC,CAAzB,KAAuC;EACzD,IAAIA,CAAC,GAAG,CAAR,EAAW;IACTA,CAAC,IAAI,CAAL;EACD,CAFD,MAEO,IAAIA,CAAC,GAAG,CAAR,EAAW;IAChBA,CAAC,IAAI,CAAL;EACD;;EAED,IAAIA,CAAC,GAAG,CAAJ,GAAQ,CAAZ,EAAe;IACb,OAAOF,EAAE,GAAG,CAACC,EAAE,GAAGD,EAAN,IAAYE,CAAZ,GAAgB,CAA5B;EACD;;EACD,IAAIA,CAAC,GAAG,CAAJ,GAAQ,CAAZ,EAAe;IACb,OAAOD,EAAP;EACD;;EACD,IAAIC,CAAC,GAAG,CAAJ,GAAQ,CAAZ,EAAe;IACb,OAAOF,EAAE,GAAG,CAACC,EAAE,GAAGD,EAAN,KAAa,IAAI,CAAJ,GAAQE,CAArB,IAA0B,CAAtC;EACD;;EACD,OAAOF,EAAP;AACD,CAjBD;;AAmBA,MAAMG,aAAa,GAAIC,MAAD,IAAoB;EACxC;EACA,IAAIX,GAAG,GAAGW,MAAM,CAACC,OAAP,CAAe,IAAf,EAAqB,EAArB,EAAyBC,WAAzB,EAAV,CAFwC,CAIxC;;EACA,IAAIb,GAAG,IAAI7J,aAAX,EAA0B;IACxB,MAAM2K,EAAE,GAAG3K,aAAa,CAAC6J,GAAD,CAAxB;;IACA,IAAIc,EAAJ,EAAQ;MACN,OAAOzK,YAAY,CAACC,EAAb,CAAgB,GAAGwK,EAAnB,CAAP;IACD;;IACD,OAAO,IAAP;EACD,CAXuC,CAWtC;EAEF;;;EACA,IAAId,GAAG,CAAC,CAAD,CAAH,KAAW,GAAf,EAAoB;IAClB,IAAIA,GAAG,CAACC,MAAJ,KAAe,CAAnB,EAAsB;MACpB,IAAIc,EAAE,GAAGZ,QAAQ,CAACH,GAAG,CAACgB,MAAJ,CAAW,CAAX,CAAD,EAAgB,EAAhB,CAAjB,CADoB,CACkB;;MACtC,IAAI,EAAED,EAAE,IAAI,CAAN,IAAWA,EAAE,IAAI,KAAnB,CAAJ,EAA+B;QAC7B,OAAO,IAAP;MACD,CAJmB,CAIlB;;;MACF,OAAO,CACJ,CAACA,EAAE,GAAG,KAAN,KAAgB,CAAjB,GAAuB,CAACA,EAAE,GAAG,KAAN,KAAgB,CADlC,EAEJA,EAAE,GAAG,IAAN,GAAe,CAACA,EAAE,GAAG,IAAN,KAAe,CAFzB,EAGJA,EAAE,GAAG,GAAN,GAAc,CAACA,EAAE,GAAG,GAAN,KAAc,CAHvB,EAIL,CAJK,CAAP;IAMD,CAXD,MAWO,IAAIf,GAAG,CAACC,MAAJ,KAAe,CAAnB,EAAsB;MAC3B,IAAIc,EAAE,GAAGZ,QAAQ,CAACH,GAAG,CAACgB,MAAJ,CAAW,CAAX,CAAD,EAAgB,EAAhB,CAAjB,CAD2B,CACW;;MACtC,IAAI,EAAED,EAAE,IAAI,CAAN,IAAWA,EAAE,IAAI,QAAnB,CAAJ,EAAkC;QAChC,OAAO,IAAP;MACD,CAJ0B,CAIzB;;;MACF,OAAO,CAAC,CAACA,EAAE,GAAG,QAAN,KAAmB,EAApB,EAAwB,CAACA,EAAE,GAAG,MAAN,KAAiB,CAAzC,EAA4CA,EAAE,GAAG,IAAjD,EAAuD,CAAvD,CAAP;IACD,CANM,MAMA,IAAIf,GAAG,CAACC,MAAJ,KAAe,CAAnB,EAAsB;MAC3B,IAAIc,EAAE,GAAGZ,QAAQ,CAACH,GAAG,CAACgB,MAAJ,CAAW,CAAX,CAAD,EAAgB,EAAhB,CAAjB,CAD2B,CACW;;MACtC,IAAI,EAAED,EAAE,IAAI,CAAN,IAAWA,EAAE,IAAI,UAAnB,CAAJ,EAAoC;QAClC,OAAO,IAAP,CADkC,CACrB;MACd;;MACD,OAAO,CACJ,CAACA,EAAE,GAAG,UAAN,KAAqB,EAAtB,GAA4B,IADvB,EAEL,CAACA,EAAE,GAAG,QAAN,KAAmB,EAFd,EAGL,CAACA,EAAE,GAAG,MAAN,KAAiB,CAHZ,EAIL,CAACA,EAAE,GAAG,IAAN,IAAc,GAJT,CAAP;IAMD;;IAED,OAAO,IAAP;EACD;;EAED,IAAIE,EAAE,GAAGjB,GAAG,CAACkB,OAAJ,CAAY,GAAZ,CAAT;EAAA,IACEC,EAAE,GAAGnB,GAAG,CAACkB,OAAJ,CAAY,GAAZ,CADP;;EAEA,IAAID,EAAE,KAAK,CAAC,CAAR,IAAaE,EAAE,GAAG,CAAL,KAAWnB,GAAG,CAACC,MAAhC,EAAwC;IACtC,IAAImB,KAAK,GAAGpB,GAAG,CAACgB,MAAJ,CAAW,CAAX,EAAcC,EAAd,CAAZ;IACA,IAAII,MAAM,GAAGrB,GAAG,CAACgB,MAAJ,CAAWC,EAAE,GAAG,CAAhB,EAAmBE,EAAE,IAAIF,EAAE,GAAG,CAAT,CAArB,EAAkCK,KAAlC,CAAwC,GAAxC,CAAb;IACA,IAAIC,KAAK,GAAG,CAAZ,CAHsC,CAGvB;;IACf,QAAQH,KAAR;MACE;MACA;MACA,KAAK,MAAL;QACE,IAAIC,MAAM,CAACpB,MAAP,KAAkB,CAAtB,EAAyB;UACvB,OAAO,IAAP;QACD;;QACDsB,KAAK,GAAGnB,aAAa,CAACiB,MAAM,CAACG,GAAP,EAAD,CAArB;MACF;;MACA,KAAK,KAAL;QACE,IAAIH,MAAM,CAACpB,MAAP,KAAkB,CAAtB,EAAyB;UACvB,OAAO,IAAP;QACD;;QACD,OAAO,CACLF,WAAW,CAACsB,MAAM,CAAC,CAAD,CAAP,CADN,EAELtB,WAAW,CAACsB,MAAM,CAAC,CAAD,CAAP,CAFN,EAGLtB,WAAW,CAACsB,MAAM,CAAC,CAAD,CAAP,CAHN,EAILE,KAJK,CAAP;MAMF;MACA;;MACA,KAAK,MAAL;QACE,IAAIF,MAAM,CAACpB,MAAP,KAAkB,CAAtB,EAAyB;UACvB,OAAO,IAAP;QACD;;QACDsB,KAAK,GAAGnB,aAAa,CAACiB,MAAM,CAACG,GAAP,EAAD,CAArB;MACF;;MACA,KAAK,KAAL;QACE,IAAIH,MAAM,CAACpB,MAAP,KAAkB,CAAtB,EAAyB;UACvB,OAAO,IAAP;QACD;;QACD,IAAIQ,CAAC,GAAI,CAAEP,UAAU,CAACmB,MAAM,CAAC,CAAD,CAAP,CAAV,GAAwB,GAAzB,GAAgC,GAAjC,IAAwC,GAAzC,GAAgD,GAAxD,CAJF,CAI+D;QAC7D;QACA;;QACA,IAAII,CAAC,GAAGrB,aAAa,CAACiB,MAAM,CAAC,CAAD,CAAP,CAArB;QACA,IAAIK,CAAC,GAAGtB,aAAa,CAACiB,MAAM,CAAC,CAAD,CAAP,CAArB;QACA,IAAIb,EAAE,GAAGkB,CAAC,IAAI,GAAL,GAAWA,CAAC,IAAID,CAAC,GAAG,CAAR,CAAZ,GAAyBC,CAAC,GAAGD,CAAJ,GAAQC,CAAC,GAAGD,CAA9C;QACA,IAAIlB,EAAE,GAAGmB,CAAC,GAAG,CAAJ,GAAQlB,EAAjB;QACA,OAAO,CACLhB,YAAY,CAACc,WAAW,CAACC,EAAD,EAAKC,EAAL,EAASC,CAAC,GAAG,IAAI,CAAjB,CAAX,GAAiC,GAAlC,CADP,EAELjB,YAAY,CAACc,WAAW,CAACC,EAAD,EAAKC,EAAL,EAASC,CAAT,CAAX,GAAyB,GAA1B,CAFP,EAGLjB,YAAY,CAACc,WAAW,CAACC,EAAD,EAAKC,EAAL,EAASC,CAAC,GAAG,IAAI,CAAjB,CAAX,GAAiC,GAAlC,CAHP,EAILc,KAJK,CAAP;;MAMF;QACE,OAAO,IAAP;IA7CJ;EA+CD;;EAED,OAAO,IAAP;AACD,CAxGD;;AA0GA,OAAO,MAAMI,KAAK,GAAIC,KAAD,IAAgC;EACnD,IAAIA,KAAK,YAAYvL,YAArB,EAAmC;IACjC,OAAOuL,KAAP;EACD,CAFD,MAEO,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;IACpC,MAAMC,CAAC,GAAGnB,aAAa,CAACkB,KAAD,CAAvB;IACA,MAAME,IAAI,GAAGD,CAAC,KAAK,IAAN,GAAa1L,aAAa,CAACW,KAA3B,GAAmC+K,CAAhD;IACA,OAAOxL,YAAY,CAACC,EAAb,CACLwL,IAAI,CAAC,CAAD,CAAJ,GAAU,GADL,EAELA,IAAI,CAAC,CAAD,CAAJ,GAAU,GAFL,EAGLA,IAAI,CAAC,CAAD,CAAJ,GAAU,GAHL,EAILA,IAAI,CAAC,CAAD,CAJC,CAAP;EAMD,CATM,MASA;IACL,OAAOzL,YAAY,CAACC,EAAb,CACLN,GAAG,CAAC4L,KAAD,CAAH,GAAa,GADR,EAEL3L,KAAK,CAAC2L,KAAD,CAAL,GAAe,GAFV,EAGL1L,IAAI,CAAC0L,KAAD,CAAJ,GAAc,GAHT,EAIL9L,MAAM,CAAC8L,KAAD,CAJD,CAAP;EAMD;AACF,CApBM"}
|
@@ -1,18 +1,14 @@
|
|
1
1
|
import { HostObject } from "./Host";
|
2
2
|
import { JsiSkPath } from "./JsiSkPath";
|
3
|
+
import { JsiSkPoint } from "./JsiSkPoint";
|
3
4
|
export class JsiSkContourMeasure extends HostObject {
|
4
5
|
constructor(CanvasKit, ref) {
|
5
6
|
super(CanvasKit, ref, "ContourMeasure");
|
6
7
|
}
|
7
8
|
|
8
9
|
getPosTan(distance) {
|
9
|
-
const
|
10
|
-
return
|
11
|
-
px,
|
12
|
-
py,
|
13
|
-
tx,
|
14
|
-
ty
|
15
|
-
};
|
10
|
+
const posTan = this.ref.getPosTan(distance);
|
11
|
+
return [new JsiSkPoint(this.CanvasKit, posTan.slice(0, 2)), new JsiSkPoint(this.CanvasKit, posTan.slice(2))];
|
16
12
|
}
|
17
13
|
|
18
14
|
getSegment(startD, stopD, startWithMoveTo) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["HostObject","JsiSkPath","JsiSkContourMeasure","constructor","CanvasKit","ref","getPosTan","distance","
|
1
|
+
{"version":3,"names":["HostObject","JsiSkPath","JsiSkPoint","JsiSkContourMeasure","constructor","CanvasKit","ref","getPosTan","distance","posTan","slice","getSegment","startD","stopD","startWithMoveTo","isClosed","length"],"sources":["JsiSkContourMeasure.ts"],"sourcesContent":["import type { CanvasKit, ContourMeasure } from \"canvaskit-wasm\";\n\nimport type { SkContourMeasure } from \"../types\";\n\nimport { HostObject } from \"./Host\";\nimport { JsiSkPath } from \"./JsiSkPath\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\n\nexport class JsiSkContourMeasure\n extends HostObject<ContourMeasure, \"ContourMeasure\">\n implements SkContourMeasure\n{\n constructor(CanvasKit: CanvasKit, ref: ContourMeasure) {\n super(CanvasKit, ref, \"ContourMeasure\");\n }\n\n getPosTan(distance: number): [position: JsiSkPoint, tangent: JsiSkPoint] {\n const posTan = this.ref.getPosTan(distance);\n return [\n new JsiSkPoint(this.CanvasKit, posTan.slice(0, 2)),\n new JsiSkPoint(this.CanvasKit, posTan.slice(2)),\n ];\n }\n\n getSegment(startD: number, stopD: number, startWithMoveTo: boolean) {\n return new JsiSkPath(\n this.CanvasKit,\n this.ref.getSegment(startD, stopD, startWithMoveTo)\n );\n }\n\n isClosed() {\n return this.ref.isClosed();\n }\n\n length() {\n return this.ref.length();\n }\n}\n"],"mappings":"AAIA,SAASA,UAAT,QAA2B,QAA3B;AACA,SAASC,SAAT,QAA0B,aAA1B;AACA,SAASC,UAAT,QAA2B,cAA3B;AAEA,OAAO,MAAMC,mBAAN,SACGH,UADH,CAGP;EACEI,WAAW,CAACC,SAAD,EAAuBC,GAAvB,EAA4C;IACrD,MAAMD,SAAN,EAAiBC,GAAjB,EAAsB,gBAAtB;EACD;;EAEDC,SAAS,CAACC,QAAD,EAAgE;IACvE,MAAMC,MAAM,GAAG,KAAKH,GAAL,CAASC,SAAT,CAAmBC,QAAnB,CAAf;IACA,OAAO,CACL,IAAIN,UAAJ,CAAe,KAAKG,SAApB,EAA+BI,MAAM,CAACC,KAAP,CAAa,CAAb,EAAgB,CAAhB,CAA/B,CADK,EAEL,IAAIR,UAAJ,CAAe,KAAKG,SAApB,EAA+BI,MAAM,CAACC,KAAP,CAAa,CAAb,CAA/B,CAFK,CAAP;EAID;;EAEDC,UAAU,CAACC,MAAD,EAAiBC,KAAjB,EAAgCC,eAAhC,EAA0D;IAClE,OAAO,IAAIb,SAAJ,CACL,KAAKI,SADA,EAEL,KAAKC,GAAL,CAASK,UAAT,CAAoBC,MAApB,EAA4BC,KAA5B,EAAmCC,eAAnC,CAFK,CAAP;EAID;;EAEDC,QAAQ,GAAG;IACT,OAAO,KAAKT,GAAL,CAASS,QAAT,EAAP;EACD;;EAEDC,MAAM,GAAG;IACP,OAAO,KAAKV,GAAL,CAASU,MAAT,EAAP;EACD;;AA1BH"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["RNSkReadonlyValue","constructor","value","_current","notifyListeners","_listeners","forEach","cb","update","nextValue","current","addListener","push","splice","indexOf","__invalidate"],"sources":["RNSkReadonlyValue.ts"],"sourcesContent":["import type { SkiaValue } from \"../types\";\n\nexport class RNSkReadonlyValue<T> implements SkiaValue<T> {\n constructor(value: T) {\n this._current = value;\n }\n\n private _current: T;\n private _listeners: Array<(value: T) => void> = [];\n\n private notifyListeners(): void {\n this._listeners.forEach((cb) => cb(this._current));\n }\n\n protected update(nextValue: T): void {\n this._current = nextValue;\n
|
1
|
+
{"version":3,"names":["RNSkReadonlyValue","constructor","value","_current","notifyListeners","_listeners","forEach","cb","update","nextValue","current","addListener","push","splice","indexOf","__invalidate"],"sources":["RNSkReadonlyValue.ts"],"sourcesContent":["import type { SkiaValue } from \"../types\";\n\nexport class RNSkReadonlyValue<T> implements SkiaValue<T> {\n constructor(value: T) {\n this._current = value;\n }\n\n private _current: T;\n private _listeners: Array<(value: T) => void> = [];\n\n private notifyListeners(): void {\n this._listeners.forEach((cb) => cb(this._current));\n }\n\n protected update(nextValue: T): void {\n if (this._current !== nextValue) {\n this._current = nextValue;\n this.notifyListeners();\n }\n }\n\n public readonly __typename__ = \"RNSkValue\";\n\n public get current(): T {\n return this._current;\n }\n\n public addListener(cb: (value: T) => void) {\n this._listeners.push(cb);\n return () => {\n this._listeners.splice(this._listeners.indexOf(cb), 1);\n };\n }\n\n public __invalidate(): void {\n this._listeners = [];\n }\n}\n"],"mappings":";;AAEA,OAAO,MAAMA,iBAAN,CAAmD;EACxDC,WAAW,CAACC,KAAD,EAAW;IAAA;;IAAA,oCAK0B,EAL1B;;IAAA,sCAkBS,WAlBT;;IACpB,KAAKC,QAAL,GAAgBD,KAAhB;EACD;;EAKOE,eAAe,GAAS;IAC9B,KAAKC,UAAL,CAAgBC,OAAhB,CAAyBC,EAAD,IAAQA,EAAE,CAAC,KAAKJ,QAAN,CAAlC;EACD;;EAESK,MAAM,CAACC,SAAD,EAAqB;IACnC,IAAI,KAAKN,QAAL,KAAkBM,SAAtB,EAAiC;MAC/B,KAAKN,QAAL,GAAgBM,SAAhB;MACA,KAAKL,eAAL;IACD;EACF;;EAIiB,IAAPM,OAAO,GAAM;IACtB,OAAO,KAAKP,QAAZ;EACD;;EAEMQ,WAAW,CAACJ,EAAD,EAAyB;IACzC,KAAKF,UAAL,CAAgBO,IAAhB,CAAqBL,EAArB;;IACA,OAAO,MAAM;MACX,KAAKF,UAAL,CAAgBQ,MAAhB,CAAuB,KAAKR,UAAL,CAAgBS,OAAhB,CAAwBP,EAAxB,CAAvB,EAAoD,CAApD;IACD,CAFD;EAGD;;EAEMQ,YAAY,GAAS;IAC1B,KAAKV,UAAL,GAAkB,EAAlB;EACD;;AAlCuD"}
|
@@ -56,8 +56,8 @@ export class SkiaBaseWebView extends React.Component {
|
|
56
56
|
|
57
57
|
if (this._canvasRef.current) {
|
58
58
|
const canvas = this._canvasRef.current;
|
59
|
-
canvas.width =
|
60
|
-
canvas.height =
|
59
|
+
canvas.width = width * pd;
|
60
|
+
canvas.height = height * pd;
|
61
61
|
const surface = CanvasKit.MakeWebGLCanvasSurface(this._canvasRef.current);
|
62
62
|
|
63
63
|
if (!surface) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","PixelRatio","View","JsiSkSurface","TouchType","pd","get","SkiaBaseWebView","Component","constructor","props","createRef","_mode","mode","unsubscribeAll","_unsubscriptions","forEach","u","onLayout","evt","CanvasKit","global","width","height","nativeEvent","layout","_canvasRef","current","canvas","clientWidth","clientHeight","surface","MakeWebGLCanvasSurface","Error","_surface","_canvas","getCanvas","redraw","componentDidMount","tick","componentDidUpdate","componentWillUnmount","cancelAnimationFrame","requestId","makeImageSnapshot","rect","_redrawRequests","touches","_touches","renderInCanvas","ref","flush","requestAnimationFrame","bind","setDrawMode","registerValues","_values","v","push","addListener","handleTouchEvent","touchType","id","pointerId","x","clientX","currentTarget","getClientRects","left","y","clientY","top","force","pressure","type","timestamp","Date","now","createTouchHandler","render","debug","viewProps","display","flex","Start","Active","End","Cancelled"],"sources":["SkiaBaseWebView.tsx"],"sourcesContent":["/* global HTMLCanvasElement */\nimport React from \"react\";\nimport type { PointerEvent } from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\nimport { PixelRatio, View } from \"react-native\";\n\nimport type { SkRect, SkCanvas } from \"../skia/types\";\nimport type { SkiaValue } from \"../values\";\nimport { JsiSkSurface } from \"../skia/web/JsiSkSurface\";\n\nimport type { DrawMode, SkiaBaseViewProps, TouchInfo } from \"./types\";\nimport { TouchType } from \"./types\";\n\nconst pd = PixelRatio.get();\n\nexport abstract class SkiaBaseWebView<\n TProps extends SkiaBaseViewProps\n> extends React.Component<TProps> {\n constructor(props: TProps) {\n super(props);\n this._mode = props.mode ?? \"default\";\n }\n\n private _surface: JsiSkSurface | null = null;\n private _unsubscriptions: Array<() => void> = [];\n private _touches: Array<TouchInfo> = [];\n private _canvas: SkCanvas | null = null;\n private _canvasRef = React.createRef<HTMLCanvasElement>();\n private _mode: DrawMode;\n private _redrawRequests = 0;\n private requestId = 0;\n\n protected width = 0;\n protected height = 0;\n\n private unsubscribeAll() {\n this._unsubscriptions.forEach((u) => u());\n this._unsubscriptions = [];\n }\n\n private onLayout(evt: LayoutChangeEvent) {\n const { CanvasKit } = global;\n const { width, height } = evt.nativeEvent.layout;\n this.width = width;\n this.height = height;\n // Reset canvas / surface on layout change\n if (this._canvasRef.current) {\n const canvas = this._canvasRef.current;\n canvas.width = canvas.clientWidth * pd;\n canvas.height = canvas.clientHeight * pd;\n const surface = CanvasKit.MakeWebGLCanvasSurface(this._canvasRef.current);\n if (!surface) {\n throw new Error(\"Could not create surface\");\n }\n this._surface = new JsiSkSurface(CanvasKit, surface);\n this._canvas = this._surface.getCanvas();\n this.redraw();\n }\n }\n\n componentDidMount() {\n // Start render loop\n this.tick();\n }\n\n componentDidUpdate() {\n this.redraw();\n }\n\n componentWillUnmount() {\n this.unsubscribeAll();\n cancelAnimationFrame(this.requestId);\n }\n\n /**\n * Creates a snapshot from the canvas in the surface\n * @param rect Rect to use as bounds. Optional.\n * @returns An Image object.\n */\n public makeImageSnapshot(rect?: SkRect) {\n return this._surface?.makeImageSnapshot(rect);\n }\n\n /**\n * Override to render\n */\n protected abstract renderInCanvas(\n canvas: SkCanvas,\n touches: TouchInfo[]\n ): void;\n\n /**\n * Sends a redraw request to the native SkiaView.\n */\n private tick() {\n if (this._mode === \"continuous\" || this._redrawRequests > 0) {\n this._redrawRequests = 0;\n if (this._canvas) {\n const touches = [...this._touches];\n this._touches = [];\n this.renderInCanvas(this._canvas!, touches);\n this._surface?.ref.flush();\n }\n }\n this.requestId = requestAnimationFrame(this.tick.bind(this));\n }\n\n public redraw() {\n this._redrawRequests++;\n }\n\n /**\n * Updates the drawing mode for the skia view. This is the same\n * as declaratively setting the mode property on the SkiaView.\n * There are two drawing modes, \"continuous\" and \"default\",\n * where the continuous mode will continuously redraw the view and\n * the default mode will only redraw when any of the regular react\n * properties are changed like size and margins.\n * @param mode Drawing mode to use.\n */\n public setDrawMode(mode: DrawMode) {\n this._mode = mode;\n this.tick();\n }\n\n /**\n * Registers one or move values as a dependant value of the Skia View. The view will\n * The view will redraw itself when any of the values change.\n * @param values Values to register\n */\n public registerValues(_values: SkiaValue<unknown>[]) {\n // Unsubscribe from dependency values\n this.unsubscribeAll();\n // Register redraw dependencies on values\n _values.forEach((v) => {\n this._unsubscriptions.push(\n v.addListener(() => {\n this.redraw();\n })\n );\n });\n }\n\n private handleTouchEvent(evt: PointerEvent, touchType: TouchType) {\n this._touches.push({\n id: evt.pointerId,\n x: evt.clientX - evt.currentTarget.getClientRects()[0].left,\n y: evt.clientY - evt.currentTarget.getClientRects()[0].top,\n force: evt.pressure,\n type: touchType,\n timestamp: Date.now(),\n });\n this.redraw();\n }\n\n createTouchHandler(touchType: TouchType) {\n return (evt: PointerEvent) => this.handleTouchEvent(evt, touchType);\n }\n\n render() {\n const { mode, debug = false, ...viewProps } = this.props;\n return (\n <View {...viewProps} onLayout={this.onLayout.bind(this)}>\n <canvas\n ref={this._canvasRef}\n style={{ display: \"flex\", flex: 1 }}\n onPointerDown={this.createTouchHandler(TouchType.Start)}\n onPointerMove={this.createTouchHandler(TouchType.Active)}\n onPointerUp={this.createTouchHandler(TouchType.End)}\n onPointerCancel={this.createTouchHandler(TouchType.Cancelled)}\n onPointerLeave={this.createTouchHandler(TouchType.End)}\n onPointerOut={this.createTouchHandler(TouchType.End)}\n />\n </View>\n );\n }\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["React","PixelRatio","View","JsiSkSurface","TouchType","pd","get","SkiaBaseWebView","Component","constructor","props","createRef","_mode","mode","unsubscribeAll","_unsubscriptions","forEach","u","onLayout","evt","CanvasKit","global","width","height","nativeEvent","layout","_canvasRef","current","canvas","surface","MakeWebGLCanvasSurface","Error","_surface","_canvas","getCanvas","redraw","componentDidMount","tick","componentDidUpdate","componentWillUnmount","cancelAnimationFrame","requestId","makeImageSnapshot","rect","_redrawRequests","touches","_touches","renderInCanvas","ref","flush","requestAnimationFrame","bind","setDrawMode","registerValues","_values","v","push","addListener","handleTouchEvent","touchType","id","pointerId","x","clientX","currentTarget","getClientRects","left","y","clientY","top","force","pressure","type","timestamp","Date","now","createTouchHandler","render","debug","viewProps","display","flex","Start","Active","End","Cancelled"],"sources":["SkiaBaseWebView.tsx"],"sourcesContent":["/* global HTMLCanvasElement */\nimport React from \"react\";\nimport type { PointerEvent } from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\nimport { PixelRatio, View } from \"react-native\";\n\nimport type { SkRect, SkCanvas } from \"../skia/types\";\nimport type { SkiaValue } from \"../values\";\nimport { JsiSkSurface } from \"../skia/web/JsiSkSurface\";\n\nimport type { DrawMode, SkiaBaseViewProps, TouchInfo } from \"./types\";\nimport { TouchType } from \"./types\";\n\nconst pd = PixelRatio.get();\n\nexport abstract class SkiaBaseWebView<\n TProps extends SkiaBaseViewProps\n> extends React.Component<TProps> {\n constructor(props: TProps) {\n super(props);\n this._mode = props.mode ?? \"default\";\n }\n\n private _surface: JsiSkSurface | null = null;\n private _unsubscriptions: Array<() => void> = [];\n private _touches: Array<TouchInfo> = [];\n private _canvas: SkCanvas | null = null;\n private _canvasRef = React.createRef<HTMLCanvasElement>();\n private _mode: DrawMode;\n private _redrawRequests = 0;\n private requestId = 0;\n\n protected width = 0;\n protected height = 0;\n\n private unsubscribeAll() {\n this._unsubscriptions.forEach((u) => u());\n this._unsubscriptions = [];\n }\n\n private onLayout(evt: LayoutChangeEvent) {\n const { CanvasKit } = global;\n const { width, height } = evt.nativeEvent.layout;\n this.width = width;\n this.height = height;\n // Reset canvas / surface on layout change\n if (this._canvasRef.current) {\n const canvas = this._canvasRef.current;\n canvas.width = width * pd;\n canvas.height = height * pd;\n const surface = CanvasKit.MakeWebGLCanvasSurface(this._canvasRef.current);\n if (!surface) {\n throw new Error(\"Could not create surface\");\n }\n this._surface = new JsiSkSurface(CanvasKit, surface);\n this._canvas = this._surface.getCanvas();\n this.redraw();\n }\n }\n\n componentDidMount() {\n // Start render loop\n this.tick();\n }\n\n componentDidUpdate() {\n this.redraw();\n }\n\n componentWillUnmount() {\n this.unsubscribeAll();\n cancelAnimationFrame(this.requestId);\n }\n\n /**\n * Creates a snapshot from the canvas in the surface\n * @param rect Rect to use as bounds. Optional.\n * @returns An Image object.\n */\n public makeImageSnapshot(rect?: SkRect) {\n return this._surface?.makeImageSnapshot(rect);\n }\n\n /**\n * Override to render\n */\n protected abstract renderInCanvas(\n canvas: SkCanvas,\n touches: TouchInfo[]\n ): void;\n\n /**\n * Sends a redraw request to the native SkiaView.\n */\n private tick() {\n if (this._mode === \"continuous\" || this._redrawRequests > 0) {\n this._redrawRequests = 0;\n if (this._canvas) {\n const touches = [...this._touches];\n this._touches = [];\n this.renderInCanvas(this._canvas!, touches);\n this._surface?.ref.flush();\n }\n }\n this.requestId = requestAnimationFrame(this.tick.bind(this));\n }\n\n public redraw() {\n this._redrawRequests++;\n }\n\n /**\n * Updates the drawing mode for the skia view. This is the same\n * as declaratively setting the mode property on the SkiaView.\n * There are two drawing modes, \"continuous\" and \"default\",\n * where the continuous mode will continuously redraw the view and\n * the default mode will only redraw when any of the regular react\n * properties are changed like size and margins.\n * @param mode Drawing mode to use.\n */\n public setDrawMode(mode: DrawMode) {\n this._mode = mode;\n this.tick();\n }\n\n /**\n * Registers one or move values as a dependant value of the Skia View. The view will\n * The view will redraw itself when any of the values change.\n * @param values Values to register\n */\n public registerValues(_values: SkiaValue<unknown>[]) {\n // Unsubscribe from dependency values\n this.unsubscribeAll();\n // Register redraw dependencies on values\n _values.forEach((v) => {\n this._unsubscriptions.push(\n v.addListener(() => {\n this.redraw();\n })\n );\n });\n }\n\n private handleTouchEvent(evt: PointerEvent, touchType: TouchType) {\n this._touches.push({\n id: evt.pointerId,\n x: evt.clientX - evt.currentTarget.getClientRects()[0].left,\n y: evt.clientY - evt.currentTarget.getClientRects()[0].top,\n force: evt.pressure,\n type: touchType,\n timestamp: Date.now(),\n });\n this.redraw();\n }\n\n createTouchHandler(touchType: TouchType) {\n return (evt: PointerEvent) => this.handleTouchEvent(evt, touchType);\n }\n\n render() {\n const { mode, debug = false, ...viewProps } = this.props;\n return (\n <View {...viewProps} onLayout={this.onLayout.bind(this)}>\n <canvas\n ref={this._canvasRef}\n style={{ display: \"flex\", flex: 1 }}\n onPointerDown={this.createTouchHandler(TouchType.Start)}\n onPointerMove={this.createTouchHandler(TouchType.Active)}\n onPointerUp={this.createTouchHandler(TouchType.End)}\n onPointerCancel={this.createTouchHandler(TouchType.Cancelled)}\n onPointerLeave={this.createTouchHandler(TouchType.End)}\n onPointerOut={this.createTouchHandler(TouchType.End)}\n />\n </View>\n );\n }\n}\n"],"mappings":"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"}
|
@@ -1,6 +1,5 @@
|
|
1
|
-
import type { RefObject } from "react";
|
2
1
|
import type { SkMatrix, SkRect, SkRRect, SkPath, SkPaint } from "../../skia/types";
|
3
|
-
import type { RenderNode, GroupProps, DrawingContext, NodeType, Node
|
2
|
+
import type { RenderNode, GroupProps, DrawingContext, NodeType, Node } from "../types";
|
4
3
|
import type { NodeContext } from "./Node";
|
5
4
|
import { JsiNode } from "./Node";
|
6
5
|
interface PaintCache {
|
@@ -25,5 +24,4 @@ export declare abstract class JsiRenderNode<P extends GroupProps> extends JsiNod
|
|
25
24
|
render(parentCtx: DrawingContext): void;
|
26
25
|
abstract renderNode(ctx: DrawingContext): void;
|
27
26
|
}
|
28
|
-
export declare const isSkPaint: (obj: RefObject<DeclarationNode<unknown, SkPaint>> | SkPaint) => obj is SkPaint;
|
29
27
|
export {};
|
@@ -1,6 +1,5 @@
|
|
1
|
-
import type { ReactNode
|
1
|
+
import type { ReactNode } from "react";
|
2
2
|
import type { BlendMode, Color, PaintStyle, SkMatrix, SkPaint, SkPath, SkRect, SkRRect, StrokeCap, StrokeJoin, Transforms2d, Vector } from "../../skia/types";
|
3
|
-
import type { DeclarationNode } from "./Node";
|
4
3
|
export declare type SkEnum<T> = Uncapitalize<keyof T extends string ? keyof T : never>;
|
5
4
|
export declare type PathDef = string | SkPath;
|
6
5
|
export declare type ClipDef = SkRRect | SkRect | PathDef;
|
@@ -53,5 +52,5 @@ export interface PaintProps extends ChildrenProps {
|
|
53
52
|
export interface GroupProps extends PaintProps, TransformProps {
|
54
53
|
clip?: ClipDef;
|
55
54
|
invertClip?: boolean;
|
56
|
-
layer?:
|
55
|
+
layer?: SkPaint | boolean;
|
57
56
|
}
|
@@ -1,10 +1,8 @@
|
|
1
|
-
import type { RefObject } from "react";
|
2
1
|
import type { FillType, SkImage, StrokeOpts, Vector, Color, SkPoint, BlendMode, PointMode, VertexMode, SkFont, SkRRect, SkTextBlob, SkPicture, SkSVG, SkPaint, SkRect } from "../../skia/types";
|
3
2
|
import type { CircleDef, Fit, GroupProps, PathDef, RectDef, RRectDef, SkEnum } from "./Common";
|
4
3
|
import type { DrawingContext } from "./DrawingContext";
|
5
|
-
import type { DeclarationNode } from "./Node";
|
6
4
|
export interface DrawingNodeProps extends GroupProps {
|
7
|
-
paint?: SkPaint
|
5
|
+
paint?: SkPaint;
|
8
6
|
}
|
9
7
|
export declare type ImageProps = DrawingNodeProps & RectDef & {
|
10
8
|
fit: Fit;
|
@@ -3,6 +3,8 @@ import type { RefObject, ReactNode, ComponentProps } from "react";
|
|
3
3
|
import ReactReconciler from "react-reconciler";
|
4
4
|
import { SkiaView } from "../views";
|
5
5
|
import type { TouchHandler } from "../views";
|
6
|
+
import type { SkiaMutableValue } from "../values";
|
7
|
+
import type { SkSize } from "../skia/types";
|
6
8
|
import { Container } from "./Container";
|
7
9
|
export declare const skiaReconciler: ReactReconciler.Reconciler<Container, import("..").Node<unknown>, import("..").Node<unknown>, import("..").Node<unknown>, import("..").Node<unknown>>;
|
8
10
|
export declare const useCanvasRef: () => React.RefObject<SkiaView>;
|
@@ -10,5 +12,6 @@ export interface CanvasProps extends ComponentProps<typeof SkiaView> {
|
|
10
12
|
ref?: RefObject<SkiaView>;
|
11
13
|
children: ReactNode;
|
12
14
|
onTouch?: TouchHandler;
|
15
|
+
onSize?: SkiaMutableValue<SkSize>;
|
13
16
|
}
|
14
|
-
export declare const Canvas: React.ForwardRefExoticComponent<Pick<CanvasProps, "children" | "style" | "mode" | "debug" | "onDraw" | "hitSlop" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "testID" | "nativeID" | "collapsable" | "needsOffscreenAlphaCompositing" | "renderToHardwareTextureAndroid" | "focusable" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxProperties" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "accessibilityRole" | "accessibilityState" | "accessibilityHint" | "accessibilityValue" | "onAccessibilityAction" | "accessibilityLiveRegion" | "importantForAccessibility" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "onTouch"> & React.RefAttributes<SkiaView>>;
|
17
|
+
export declare const Canvas: React.ForwardRefExoticComponent<Pick<CanvasProps, "children" | "style" | "mode" | "debug" | "onDraw" | "hitSlop" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "testID" | "nativeID" | "collapsable" | "needsOffscreenAlphaCompositing" | "renderToHardwareTextureAndroid" | "focusable" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxProperties" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "accessibilityRole" | "accessibilityState" | "accessibilityHint" | "accessibilityValue" | "onAccessibilityAction" | "accessibilityLiveRegion" | "importantForAccessibility" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "onTouch" | "onSize"> & React.RefAttributes<SkiaView>>;
|
@@ -1,9 +1,7 @@
|
|
1
|
-
import type { ForwardedRef } from "react";
|
2
1
|
import { NodeType } from "../dom/types";
|
3
2
|
import type { CircleProps, DrawingNodeProps, ImageProps, PaintProps, PathProps, CustomDrawingNodeProps, LineProps, OvalProps, DiffRectProps, PointsProps, RectProps, RoundedRectProps, TextProps, VerticesProps, BlurMaskFilterProps, BlendImageFilterProps, BlurImageFilterProps, DisplacementMapImageFilterProps, DropShadowImageFilterProps, OffsetImageFilterProps, RuntimeShaderImageFilterProps, MatrixColorFilterProps, ShaderProps, ImageShaderProps, LinearGradientProps, GroupProps, PatchProps, BlendColorFilterProps, DashPathEffectProps, DiscretePathEffectProps, CornerPathEffectProps, Line2DPathEffectProps, Path1DPathEffectProps, Path2DPathEffectProps, TextPathProps, TextBlobProps, GlyphsProps, TwoPointConicalGradientProps, TurbulenceProps, SweepGradientProps, RadialGradientProps, ColorProps, PictureProps, ImageSVGProps, LerpColorFilterProps, BoxProps, BoxShadowProps } from "../dom/types";
|
4
3
|
import type { ChildrenProps } from "../dom/types/Common";
|
5
4
|
import type { BlendProps, MorphologyImageFilterProps } from "../dom/types/ImageFilters";
|
6
|
-
import type { PaintNode } from "../dom/nodes/PaintNode";
|
7
5
|
import type { Container } from "./Container";
|
8
6
|
import type { SkiaProps } from "./processors";
|
9
7
|
declare global {
|
@@ -11,9 +9,7 @@ declare global {
|
|
11
9
|
interface IntrinsicElements {
|
12
10
|
skGroup: SkiaProps<GroupProps>;
|
13
11
|
skLayer: SkiaProps<ChildrenProps>;
|
14
|
-
skPaint: SkiaProps<PaintProps
|
15
|
-
ref: ForwardedRef<PaintNode>;
|
16
|
-
};
|
12
|
+
skPaint: SkiaProps<PaintProps>;
|
17
13
|
skFill: SkiaProps<DrawingNodeProps>;
|
18
14
|
skImage: SkiaProps<ImageProps>;
|
19
15
|
skCircle: SkiaProps<CircleProps>;
|
@@ -1,5 +1,4 @@
|
|
1
|
-
|
1
|
+
/// <reference types="react" />
|
2
|
+
import type { SkiaProps } from "../processors";
|
2
3
|
import type { DrawingNodeProps } from "../../dom/types";
|
3
|
-
|
4
|
-
export declare const usePaintRef: () => React.RefObject<PaintNode>;
|
5
|
-
export declare const Paint: React.ForwardRefExoticComponent<import("../processors").AnimatedProps<DrawingNodeProps, never> & React.RefAttributes<PaintNode>>;
|
4
|
+
export declare const Paint: (props: SkiaProps<DrawingNodeProps>) => JSX.Element;
|
@@ -11,4 +11,5 @@ interface CanvasContext {
|
|
11
11
|
declare const CanvasContext: React.Context<CanvasContext | null>;
|
12
12
|
export declare const CanvasProvider: React.Provider<CanvasContext | null>;
|
13
13
|
export declare const useCanvas: () => CanvasContext;
|
14
|
+
export declare const useSkiaPrivate: () => Skia;
|
14
15
|
export {};
|
@@ -1,12 +1,4 @@
|
|
1
|
-
import type { DependencyList } from "react";
|
2
1
|
import type { SkCanvas, SkRect } from "../types";
|
3
|
-
/**
|
4
|
-
* Memoizes and returns an SkPicture that can be drawn to another canvas.
|
5
|
-
* @param rect Picture bounds
|
6
|
-
* @param cb Callback for drawing to the canvas
|
7
|
-
* @returns SkPicture
|
8
|
-
*/
|
9
|
-
export declare const usePicture: (rect: SkRect, cb: (canvas: SkCanvas) => void, deps?: DependencyList) => import("../types").SkPicture;
|
10
2
|
/**
|
11
3
|
* Memoizes and returns an SkPicture that can be drawn to another canvas.
|
12
4
|
* @param rect Picture bounds
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import type { SkJSIInstance } from "./JsiInstance";
|
2
2
|
import type { SkPath } from "./Path/Path";
|
3
|
+
import type { SkPoint } from "./Point";
|
3
4
|
export interface PosTan {
|
4
5
|
px: number;
|
5
6
|
py: number;
|
@@ -9,10 +10,10 @@ export interface PosTan {
|
|
9
10
|
export interface SkContourMeasure extends SkJSIInstance<"ContourMeasure"> {
|
10
11
|
/**
|
11
12
|
* Returns the given position and tangent line for the distance on the given contour.
|
12
|
-
* The return value
|
13
|
+
* The return value an array of 2 vectors: [position, tangent]
|
13
14
|
* @param distance - will be pinned between 0 and length().
|
14
15
|
*/
|
15
|
-
getPosTan(distance: number):
|
16
|
+
getPosTan(distance: number): [position: SkPoint, tangent: SkPoint];
|
16
17
|
/**
|
17
18
|
* Returns an Path representing the segment of this contour.
|
18
19
|
* @param startD - will be pinned between 0 and length()
|
@@ -2,14 +2,10 @@ import type { CanvasKit, ContourMeasure } from "canvaskit-wasm";
|
|
2
2
|
import type { SkContourMeasure } from "../types";
|
3
3
|
import { HostObject } from "./Host";
|
4
4
|
import { JsiSkPath } from "./JsiSkPath";
|
5
|
+
import { JsiSkPoint } from "./JsiSkPoint";
|
5
6
|
export declare class JsiSkContourMeasure extends HostObject<ContourMeasure, "ContourMeasure"> implements SkContourMeasure {
|
6
7
|
constructor(CanvasKit: CanvasKit, ref: ContourMeasure);
|
7
|
-
getPosTan(distance: number):
|
8
|
-
px: number;
|
9
|
-
py: number;
|
10
|
-
tx: number;
|
11
|
-
ty: number;
|
12
|
-
};
|
8
|
+
getPosTan(distance: number): [position: JsiSkPoint, tangent: JsiSkPoint];
|
13
9
|
getSegment(startD: number, stopD: number, startWithMoveTo: boolean): JsiSkPath;
|
14
10
|
isClosed(): boolean;
|
15
11
|
length(): number;
|
package/package.json
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
"setup-skia-web": "./scripts/setup-canvaskit.js"
|
8
8
|
},
|
9
9
|
"title": "React Native Skia",
|
10
|
-
"version": "0.1.
|
10
|
+
"version": "0.1.158",
|
11
11
|
"description": "High-performance React Native Graphics using Skia",
|
12
12
|
"main": "lib/module/index.js",
|
13
13
|
"files": [
|
@@ -77,6 +77,7 @@
|
|
77
77
|
}
|
78
78
|
},
|
79
79
|
"devDependencies": {
|
80
|
+
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
|
80
81
|
"@types/jest": "^28.1.6",
|
81
82
|
"@types/react-native": "0.66.2",
|
82
83
|
"@types/react-reconciler": "^0.26.7",
|
@@ -91,7 +92,6 @@
|
|
91
92
|
"typescript": "4.8.3"
|
92
93
|
},
|
93
94
|
"dependencies": {
|
94
|
-
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
|
95
95
|
"canvaskit-wasm": "0.36.1",
|
96
96
|
"react-reconciler": "^0.27.0"
|
97
97
|
},
|
@@ -9,7 +9,7 @@ import type {
|
|
9
9
|
import type { NodeContext } from "./Node";
|
10
10
|
import { JsiDeclarationNode } from "./Node";
|
11
11
|
import { PaintNode } from "./PaintNode";
|
12
|
-
import {
|
12
|
+
import { JsiRenderNode } from "./RenderNode";
|
13
13
|
|
14
14
|
export abstract class JsiDrawingNode<P extends DrawingNodeProps, C>
|
15
15
|
extends JsiRenderNode<P>
|
@@ -52,10 +52,8 @@ export abstract class JsiDrawingNode<P extends DrawingNodeProps, C>
|
|
52
52
|
}
|
53
53
|
|
54
54
|
renderNode(ctx: DrawingContext): void {
|
55
|
-
if (this.props.paint
|
55
|
+
if (this.props.paint) {
|
56
56
|
this.draw({ ...ctx, paint: this.props.paint });
|
57
|
-
} else if (this.props.paint && this.props.paint.current != null) {
|
58
|
-
this.draw({ ...ctx, paint: this.props.paint.current.materialize() });
|
59
57
|
} else {
|
60
58
|
this.draw(ctx);
|
61
59
|
}
|
@@ -1,5 +1,3 @@
|
|
1
|
-
import type { RefObject } from "react";
|
2
|
-
|
3
1
|
import type {
|
4
2
|
SkMatrix,
|
5
3
|
SkRect,
|
@@ -21,7 +19,6 @@ import type {
|
|
21
19
|
DrawingContext,
|
22
20
|
NodeType,
|
23
21
|
Node,
|
24
|
-
DeclarationNode,
|
25
22
|
} from "../types";
|
26
23
|
|
27
24
|
import { isPathDef, processPath, processTransformProps } from "./datatypes";
|
@@ -236,17 +233,12 @@ export abstract class JsiRenderNode<P extends GroupProps>
|
|
236
233
|
this.clipRRect !== undefined;
|
237
234
|
const shouldSave = hasTransform || hasClip || !!layer;
|
238
235
|
const op = invertClip ? ClipOp.Difference : ClipOp.Intersect;
|
239
|
-
|
240
236
|
if (shouldSave) {
|
241
237
|
if (layer) {
|
242
238
|
if (typeof layer === "boolean") {
|
243
239
|
canvas.saveLayer();
|
244
|
-
} else if (isSkPaint(layer)) {
|
245
|
-
canvas.saveLayer(layer);
|
246
240
|
} else {
|
247
|
-
canvas.saveLayer(
|
248
|
-
layer.current ? layer.current.materialize() : undefined
|
249
|
-
);
|
241
|
+
canvas.saveLayer(layer);
|
250
242
|
}
|
251
243
|
} else {
|
252
244
|
canvas.save();
|
@@ -274,10 +266,6 @@ export abstract class JsiRenderNode<P extends GroupProps>
|
|
274
266
|
abstract renderNode(ctx: DrawingContext): void;
|
275
267
|
}
|
276
268
|
|
277
|
-
export const isSkPaint = (
|
278
|
-
obj: RefObject<DeclarationNode<unknown, SkPaint>> | SkPaint
|
279
|
-
): obj is SkPaint => "__typename__" in obj && obj.__typename__ === "Paint";
|
280
|
-
|
281
269
|
const concatPaint = (
|
282
270
|
parent: SkPaint,
|
283
271
|
{
|