@shopify/react-native-skia 1.3.6 → 1.3.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. package/android/src/main/java/com/shopify/reactnative/skia/SkiaBaseView.java +14 -7
  2. package/android/src/main/java/com/shopify/reactnative/skia/SkiaBaseViewManager.java +1 -2
  3. package/cpp/api/JsiSkTypefaceFontProvider.h +14 -4
  4. package/lib/commonjs/dom/nodes/Node.d.ts +2 -3
  5. package/lib/commonjs/dom/nodes/Node.js +1 -2
  6. package/lib/commonjs/dom/nodes/Node.js.map +1 -1
  7. package/lib/commonjs/dom/nodes/PaintNode.js +1 -1
  8. package/lib/commonjs/dom/nodes/PaintNode.js.map +1 -1
  9. package/lib/commonjs/dom/nodes/drawings/Box.js +1 -1
  10. package/lib/commonjs/dom/nodes/drawings/Box.js.map +1 -1
  11. package/lib/commonjs/dom/nodes/paint/BlendNode.js +1 -1
  12. package/lib/commonjs/dom/nodes/paint/BlendNode.js.map +1 -1
  13. package/lib/commonjs/dom/nodes/paint/ColorFilters.js +1 -1
  14. package/lib/commonjs/dom/nodes/paint/ColorFilters.js.map +1 -1
  15. package/lib/commonjs/dom/nodes/paint/ImageFilters.js +1 -1
  16. package/lib/commonjs/dom/nodes/paint/ImageFilters.js.map +1 -1
  17. package/lib/commonjs/dom/nodes/paint/MaskFilters.js +1 -1
  18. package/lib/commonjs/dom/nodes/paint/MaskFilters.js.map +1 -1
  19. package/lib/commonjs/dom/nodes/paint/PathEffects.js +1 -1
  20. package/lib/commonjs/dom/nodes/paint/PathEffects.js.map +1 -1
  21. package/lib/commonjs/dom/nodes/paint/Shaders.js +1 -1
  22. package/lib/commonjs/dom/nodes/paint/Shaders.js.map +1 -1
  23. package/lib/commonjs/dom/types/Node.d.ts +1 -2
  24. package/lib/commonjs/dom/types/Node.js.map +1 -1
  25. package/lib/commonjs/dom/types/NodeType.d.ts +0 -9
  26. package/lib/commonjs/dom/types/NodeType.js +1 -11
  27. package/lib/commonjs/dom/types/NodeType.js.map +1 -1
  28. package/lib/commonjs/external/reanimated/useVideo.js +0 -2
  29. package/lib/commonjs/external/reanimated/useVideo.js.map +1 -1
  30. package/lib/commonjs/external/reanimated/useVideoLoading.js +6 -4
  31. package/lib/commonjs/external/reanimated/useVideoLoading.js.map +1 -1
  32. package/lib/commonjs/skia/core/SVG.web.d.ts +2 -0
  33. package/lib/commonjs/skia/core/SVG.web.js +22 -0
  34. package/lib/commonjs/skia/core/SVG.web.js.map +1 -0
  35. package/lib/commonjs/skia/types/Font/FontMgr.d.ts +1 -1
  36. package/lib/commonjs/skia/types/Font/FontMgr.js.map +1 -1
  37. package/lib/commonjs/skia/types/NativeBuffer/NativeBufferFactory.js +1 -1
  38. package/lib/commonjs/skia/types/NativeBuffer/NativeBufferFactory.js.map +1 -1
  39. package/lib/commonjs/skia/web/JsiSkCanvas.d.ts +1 -1
  40. package/lib/commonjs/skia/web/JsiSkCanvas.js +3 -2
  41. package/lib/commonjs/skia/web/JsiSkCanvas.js.map +1 -1
  42. package/lib/commonjs/skia/web/JsiSkSVG.d.ts +9 -0
  43. package/lib/commonjs/skia/web/JsiSkSVG.js +28 -0
  44. package/lib/commonjs/skia/web/JsiSkSVG.js.map +1 -0
  45. package/lib/commonjs/skia/web/JsiSkSVGFactory.d.ts +4 -3
  46. package/lib/commonjs/skia/web/JsiSkSVGFactory.js +40 -4
  47. package/lib/commonjs/skia/web/JsiSkSVGFactory.js.map +1 -1
  48. package/lib/module/dom/nodes/Node.d.ts +2 -3
  49. package/lib/module/dom/nodes/Node.js +1 -2
  50. package/lib/module/dom/nodes/Node.js.map +1 -1
  51. package/lib/module/dom/nodes/PaintNode.js +2 -2
  52. package/lib/module/dom/nodes/PaintNode.js.map +1 -1
  53. package/lib/module/dom/nodes/drawings/Box.js +2 -2
  54. package/lib/module/dom/nodes/drawings/Box.js.map +1 -1
  55. package/lib/module/dom/nodes/paint/BlendNode.js +2 -2
  56. package/lib/module/dom/nodes/paint/BlendNode.js.map +1 -1
  57. package/lib/module/dom/nodes/paint/ColorFilters.js +2 -2
  58. package/lib/module/dom/nodes/paint/ColorFilters.js.map +1 -1
  59. package/lib/module/dom/nodes/paint/ImageFilters.js +2 -2
  60. package/lib/module/dom/nodes/paint/ImageFilters.js.map +1 -1
  61. package/lib/module/dom/nodes/paint/MaskFilters.js +2 -2
  62. package/lib/module/dom/nodes/paint/MaskFilters.js.map +1 -1
  63. package/lib/module/dom/nodes/paint/PathEffects.js +2 -2
  64. package/lib/module/dom/nodes/paint/PathEffects.js.map +1 -1
  65. package/lib/module/dom/nodes/paint/Shaders.js +2 -2
  66. package/lib/module/dom/nodes/paint/Shaders.js.map +1 -1
  67. package/lib/module/dom/types/Node.d.ts +1 -2
  68. package/lib/module/dom/types/Node.js.map +1 -1
  69. package/lib/module/dom/types/NodeType.d.ts +0 -9
  70. package/lib/module/dom/types/NodeType.js +0 -10
  71. package/lib/module/dom/types/NodeType.js.map +1 -1
  72. package/lib/module/external/reanimated/useVideo.js +0 -2
  73. package/lib/module/external/reanimated/useVideo.js.map +1 -1
  74. package/lib/module/external/reanimated/useVideoLoading.js +7 -5
  75. package/lib/module/external/reanimated/useVideoLoading.js.map +1 -1
  76. package/lib/module/skia/core/SVG.web.d.ts +2 -0
  77. package/lib/module/skia/core/SVG.web.js +15 -0
  78. package/lib/module/skia/core/SVG.web.js.map +1 -0
  79. package/lib/module/skia/types/Font/FontMgr.d.ts +1 -1
  80. package/lib/module/skia/types/Font/FontMgr.js.map +1 -1
  81. package/lib/module/skia/types/NativeBuffer/NativeBufferFactory.js +1 -1
  82. package/lib/module/skia/types/NativeBuffer/NativeBufferFactory.js.map +1 -1
  83. package/lib/module/skia/web/JsiSkCanvas.d.ts +1 -1
  84. package/lib/module/skia/web/JsiSkCanvas.js +3 -2
  85. package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
  86. package/lib/module/skia/web/JsiSkSVG.d.ts +9 -0
  87. package/lib/module/skia/web/JsiSkSVG.js +21 -0
  88. package/lib/module/skia/web/JsiSkSVG.js.map +1 -0
  89. package/lib/module/skia/web/JsiSkSVGFactory.d.ts +4 -3
  90. package/lib/module/skia/web/JsiSkSVGFactory.js +41 -5
  91. package/lib/module/skia/web/JsiSkSVGFactory.js.map +1 -1
  92. package/lib/typescript/src/dom/nodes/Node.d.ts +2 -3
  93. package/lib/typescript/src/dom/types/Node.d.ts +1 -2
  94. package/lib/typescript/src/dom/types/NodeType.d.ts +0 -9
  95. package/lib/typescript/src/skia/core/SVG.web.d.ts +2 -0
  96. package/lib/typescript/src/skia/types/Font/FontMgr.d.ts +1 -1
  97. package/lib/typescript/src/skia/web/JsiSkCanvas.d.ts +1 -1
  98. package/lib/typescript/src/skia/web/JsiSkSVG.d.ts +9 -0
  99. package/lib/typescript/src/skia/web/JsiSkSVGFactory.d.ts +4 -3
  100. package/package.json +2 -2
  101. package/src/dom/nodes/Node.ts +2 -12
  102. package/src/dom/nodes/PaintNode.ts +2 -2
  103. package/src/dom/nodes/drawings/Box.ts +2 -2
  104. package/src/dom/nodes/paint/BlendNode.ts +2 -2
  105. package/src/dom/nodes/paint/ColorFilters.ts +2 -2
  106. package/src/dom/nodes/paint/ImageFilters.ts +2 -2
  107. package/src/dom/nodes/paint/MaskFilters.ts +2 -2
  108. package/src/dom/nodes/paint/PathEffects.ts +2 -2
  109. package/src/dom/nodes/paint/Shaders.ts +2 -2
  110. package/src/dom/types/Node.ts +2 -2
  111. package/src/dom/types/NodeType.ts +0 -10
  112. package/src/external/reanimated/useVideo.ts +0 -2
  113. package/src/external/reanimated/useVideoLoading.ts +11 -8
  114. package/src/skia/core/SVG.web.ts +29 -0
  115. package/src/skia/types/Font/FontMgr.ts +1 -1
  116. package/src/skia/types/NativeBuffer/NativeBufferFactory.ts +1 -1
  117. package/src/skia/web/JsiSkCanvas.ts +6 -2
  118. package/src/skia/web/JsiSkSVG.ts +27 -0
  119. package/src/skia/web/JsiSkSVGFactory.ts +47 -6
@@ -13,6 +13,8 @@ public abstract class SkiaBaseView extends ReactViewGroup implements TextureView
13
13
 
14
14
  private String tag = "SkiaView";
15
15
 
16
+ private boolean isDropped = false;
17
+
16
18
  public SkiaBaseView(Context context) {
17
19
  super(context);
18
20
  mTexture = new TextureView(context);
@@ -21,11 +23,6 @@ public abstract class SkiaBaseView extends ReactViewGroup implements TextureView
21
23
  addView(mTexture);
22
24
  }
23
25
 
24
- public void destroySurface() {
25
- Log.i(tag, "destroySurface");
26
- surfaceDestroyed();
27
- }
28
-
29
26
  private void createSurfaceTexture() {
30
27
  // This API Level is >= 26, we created our own SurfaceTexture to have a faster time to first frame
31
28
  if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
@@ -36,6 +33,11 @@ public abstract class SkiaBaseView extends ReactViewGroup implements TextureView
36
33
  }
37
34
  }
38
35
 
36
+ void dropInstance() {
37
+ isDropped = true;
38
+ unregisterView();
39
+ }
40
+
39
41
  @Override
40
42
  protected void onAttachedToWindow() {
41
43
  super.onAttachedToWindow();
@@ -129,6 +131,9 @@ public abstract class SkiaBaseView extends ReactViewGroup implements TextureView
129
131
 
130
132
  @Override
131
133
  public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {
134
+ if (isDropped) {
135
+ return;
136
+ }
132
137
  Log.i(tag, "onSurfaceTextureSizeChanged " + width + "/" + height);
133
138
  surfaceSizeChanged(width, height);
134
139
  }
@@ -137,12 +142,14 @@ public abstract class SkiaBaseView extends ReactViewGroup implements TextureView
137
142
  public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
138
143
  Log.i(tag, "onSurfaceTextureDestroyed");
139
144
  // https://developer.android.com/reference/android/view/TextureView.SurfaceTextureListener#onSurfaceTextureDestroyed(android.graphics.SurfaceTexture)
140
- destroySurface();
145
+ surfaceDestroyed();
141
146
  // Because of React Native Screens (which dettach the view), we always keep the surface alive.
142
147
  // If not, Texture view will recreate the texture surface by itself and
143
148
  // we will lose the fast first time to frame.
144
149
  // We only delete the surface when the view is dropped (destroySurface invoked by SkiaBaseViewManager);
145
- createSurfaceTexture();
150
+ if (!isDropped) {
151
+ createSurfaceTexture();
152
+ }
146
153
  return false;
147
154
  }
148
155
 
@@ -29,7 +29,6 @@ public abstract class SkiaBaseViewManager<T extends SkiaBaseView> extends ReactV
29
29
  @Override
30
30
  public void onDropViewInstance(@NonNull ReactViewGroup view) {
31
31
  super.onDropViewInstance(view);
32
- ((SkiaBaseView)view).destroySurface();
33
- ((SkiaBaseView)view).unregisterView();
32
+ ((SkiaBaseView)view).dropInstance();
34
33
  }
35
34
  }
@@ -45,10 +45,20 @@ public:
45
45
  }
46
46
 
47
47
  JSI_HOST_FUNCTION(matchFamilyStyle) {
48
- auto name = arguments[0].asString(runtime).utf8(runtime);
49
- auto fontStyle = JsiSkFontStyle::fromValue(runtime, arguments[1]);
50
- sk_sp<SkFontStyleSet> set(getObject()->onMatchFamily(name.c_str()));
51
- sk_sp<SkTypeface> typeface(set->matchStyle(*fontStyle));
48
+ auto name = count > 0 ? arguments[0].asString(runtime).utf8(runtime) : "";
49
+ auto fontStyle =
50
+ count > 1 ? JsiSkFontStyle::fromValue(runtime, arguments[1]) : nullptr;
51
+ if (name == "" || fontStyle == nullptr) {
52
+ throw std::runtime_error("matchFamilyStyle requires a name and a style");
53
+ }
54
+ auto set = getObject()->onMatchFamily(name.c_str());
55
+ if (!set) {
56
+ throw std::runtime_error("Could not find font family " + name);
57
+ }
58
+ auto typeface = set->matchStyle(*fontStyle);
59
+ if (!typeface) {
60
+ throw std::runtime_error("Could not find font style for " + name);
61
+ }
52
62
  return jsi::Object::createFromHostObject(
53
63
  runtime, std::make_shared<JsiSkTypeface>(getContext(), typeface));
54
64
  }
@@ -1,5 +1,5 @@
1
1
  import type { Skia } from "../../skia/types";
2
- import type { Node, DeclarationNode, NodeType, DeclarationType } from "../types";
2
+ import type { Node, DeclarationNode, NodeType } from "../types";
3
3
  import type { DeclarationContext } from "../types/DeclarationContext";
4
4
  export interface NodeContext {
5
5
  Skia: Skia;
@@ -21,9 +21,8 @@ export declare abstract class JsiNode<P> implements Node<P> {
21
21
  }
22
22
  export type Invalidate = () => void;
23
23
  export declare abstract class JsiDeclarationNode<P> extends JsiNode<P> implements DeclarationNode<P> {
24
- declarationType: DeclarationType;
25
24
  private invalidate;
26
- constructor(ctx: NodeContext, declarationType: DeclarationType, type: NodeType, props: P);
25
+ constructor(ctx: NodeContext, type: NodeType, props: P);
27
26
  abstract decorate(ctx: DeclarationContext): void;
28
27
  protected decorateChildren(ctx: DeclarationContext): void;
29
28
  addChild(child: Node<unknown>): void;
@@ -54,9 +54,8 @@ class JsiNode {
54
54
  }
55
55
  exports.JsiNode = JsiNode;
56
56
  class JsiDeclarationNode extends JsiNode {
57
- constructor(ctx, declarationType, type, props) {
57
+ constructor(ctx, type, props) {
58
58
  super(ctx, type, props);
59
- this.declarationType = declarationType;
60
59
  _defineProperty(this, "invalidate", () => {});
61
60
  }
62
61
  decorateChildren(ctx) {
@@ -1 +1 @@
1
- {"version":3,"names":["JsiNode","constructor","ctx","type","props","_defineProperty","Skia","setProps","setProp","name","v","hasChanged","getProps","children","_children","addChild","child","removeChild","push","dispose","forEach","index","indexOf","node","splice","insertChildBefore","before","beforeIndex","exports","JsiDeclarationNode","declarationType","decorateChildren","decorate","Error","invalidate","setInvalidate"],"sources":["Node.ts"],"sourcesContent":["import type { Skia } from \"../../skia/types\";\nimport type {\n Node,\n DeclarationNode,\n NodeType,\n DeclarationType,\n} from \"../types\";\nimport type { DeclarationContext } from \"../types/DeclarationContext\";\n\nexport interface NodeContext {\n Skia: Skia;\n}\n\nexport abstract class JsiNode<P> implements Node<P> {\n protected _children: JsiNode<unknown>[] = [];\n protected Skia: Skia;\n\n constructor(ctx: NodeContext, public type: NodeType, protected props: P) {\n this.Skia = ctx.Skia;\n }\n\n setProps(props: P) {\n this.props = props;\n }\n\n setProp<K extends keyof P>(name: K, v: P[K]) {\n const hasChanged = this.props[name] !== v;\n this.props[name] = v;\n return hasChanged;\n }\n\n getProps() {\n return this.props;\n }\n\n children() {\n return this._children;\n }\n\n addChild(child: Node<unknown>) {\n this.removeChild(child);\n this._children.push(child as JsiNode<unknown>);\n }\n\n dispose() {\n this._children.forEach((child) => child.dispose());\n }\n\n removeChild(child: Node<unknown>) {\n const index = this._children.indexOf(child as JsiNode<unknown>);\n if (index !== -1) {\n const [node] = this._children.splice(index, 1);\n node.dispose();\n }\n }\n\n insertChildBefore(child: Node<unknown>, before: Node<unknown>) {\n const index = this._children.indexOf(child as JsiNode<unknown>);\n if (index !== -1) {\n this._children.splice(index, 1);\n }\n const beforeIndex = this._children.indexOf(before as JsiNode<unknown>);\n this._children.splice(beforeIndex, 0, child as JsiNode<unknown>);\n }\n}\n\nexport type Invalidate = () => void;\n\nexport abstract class JsiDeclarationNode<P>\n extends JsiNode<P>\n implements DeclarationNode<P>\n{\n private invalidate: Invalidate = () => {};\n\n constructor(\n ctx: NodeContext,\n public declarationType: DeclarationType,\n type: NodeType,\n props: P\n ) {\n super(ctx, type, props);\n }\n\n abstract decorate(ctx: DeclarationContext): void;\n\n protected decorateChildren(ctx: DeclarationContext) {\n this.children().forEach((child) => {\n if (child instanceof JsiDeclarationNode) {\n child.decorate(ctx);\n }\n });\n }\n\n addChild(child: Node<unknown>): void {\n if (!(child instanceof JsiDeclarationNode)) {\n throw new Error(`Cannot add child of type ${child.type} to ${this.type}`);\n }\n super.addChild(child);\n this.invalidate();\n }\n\n insertChildBefore(child: Node<unknown>, before: Node<unknown>): void {\n if (!(child instanceof JsiDeclarationNode)) {\n throw new Error(`Cannot add child of type ${child.type} to ${this.type}`);\n }\n super.insertChildBefore(child, before);\n this.invalidate();\n }\n\n dispose() {\n this.invalidate();\n super.dispose();\n }\n\n setInvalidate(invalidate: Invalidate) {\n this.invalidate = invalidate;\n }\n\n setProps(props: P) {\n super.setProps(props);\n this.invalidate();\n }\n\n setProp<K extends keyof P>(name: K, v: P[K]) {\n const hasChanged = super.setProp(name, v);\n if (hasChanged) {\n this.invalidate();\n }\n return hasChanged;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["JsiNode","constructor","ctx","type","props","_defineProperty","Skia","setProps","setProp","name","v","hasChanged","getProps","children","_children","addChild","child","removeChild","push","dispose","forEach","index","indexOf","node","splice","insertChildBefore","before","beforeIndex","exports","JsiDeclarationNode","decorateChildren","decorate","Error","invalidate","setInvalidate"],"sources":["Node.ts"],"sourcesContent":["import type { Skia } from \"../../skia/types\";\nimport type { Node, DeclarationNode, NodeType } from \"../types\";\nimport type { DeclarationContext } from \"../types/DeclarationContext\";\n\nexport interface NodeContext {\n Skia: Skia;\n}\n\nexport abstract class JsiNode<P> implements Node<P> {\n protected _children: JsiNode<unknown>[] = [];\n protected Skia: Skia;\n\n constructor(ctx: NodeContext, public type: NodeType, protected props: P) {\n this.Skia = ctx.Skia;\n }\n\n setProps(props: P) {\n this.props = props;\n }\n\n setProp<K extends keyof P>(name: K, v: P[K]) {\n const hasChanged = this.props[name] !== v;\n this.props[name] = v;\n return hasChanged;\n }\n\n getProps() {\n return this.props;\n }\n\n children() {\n return this._children;\n }\n\n addChild(child: Node<unknown>) {\n this.removeChild(child);\n this._children.push(child as JsiNode<unknown>);\n }\n\n dispose() {\n this._children.forEach((child) => child.dispose());\n }\n\n removeChild(child: Node<unknown>) {\n const index = this._children.indexOf(child as JsiNode<unknown>);\n if (index !== -1) {\n const [node] = this._children.splice(index, 1);\n node.dispose();\n }\n }\n\n insertChildBefore(child: Node<unknown>, before: Node<unknown>) {\n const index = this._children.indexOf(child as JsiNode<unknown>);\n if (index !== -1) {\n this._children.splice(index, 1);\n }\n const beforeIndex = this._children.indexOf(before as JsiNode<unknown>);\n this._children.splice(beforeIndex, 0, child as JsiNode<unknown>);\n }\n}\n\nexport type Invalidate = () => void;\n\nexport abstract class JsiDeclarationNode<P>\n extends JsiNode<P>\n implements DeclarationNode<P>\n{\n private invalidate: Invalidate = () => {};\n\n constructor(ctx: NodeContext, type: NodeType, props: P) {\n super(ctx, type, props);\n }\n\n abstract decorate(ctx: DeclarationContext): void;\n\n protected decorateChildren(ctx: DeclarationContext) {\n this.children().forEach((child) => {\n if (child instanceof JsiDeclarationNode) {\n child.decorate(ctx);\n }\n });\n }\n\n addChild(child: Node<unknown>): void {\n if (!(child instanceof JsiDeclarationNode)) {\n throw new Error(`Cannot add child of type ${child.type} to ${this.type}`);\n }\n super.addChild(child);\n this.invalidate();\n }\n\n insertChildBefore(child: Node<unknown>, before: Node<unknown>): void {\n if (!(child instanceof JsiDeclarationNode)) {\n throw new Error(`Cannot add child of type ${child.type} to ${this.type}`);\n }\n super.insertChildBefore(child, before);\n this.invalidate();\n }\n\n dispose() {\n this.invalidate();\n super.dispose();\n }\n\n setInvalidate(invalidate: Invalidate) {\n this.invalidate = invalidate;\n }\n\n setProps(props: P) {\n super.setProps(props);\n this.invalidate();\n }\n\n setProp<K extends keyof P>(name: K, v: P[K]) {\n const hasChanged = super.setProp(name, v);\n if (hasChanged) {\n this.invalidate();\n }\n return hasChanged;\n }\n}\n"],"mappings":"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"}
@@ -10,7 +10,7 @@ var _datatypes = require("./datatypes");
10
10
  var _Node = require("./Node");
11
11
  class PaintNode extends _Node.JsiDeclarationNode {
12
12
  constructor(ctx, props = {}) {
13
- super(ctx, _types2.DeclarationType.Paint, _types2.NodeType.Paint, props);
13
+ super(ctx, _types2.NodeType.Paint, props);
14
14
  }
15
15
  decorate(ctx) {
16
16
  const {
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_types2","_datatypes","_Node","PaintNode","JsiDeclarationNode","constructor","ctx","props","DeclarationType","Paint","NodeType","decorate","color","strokeWidth","blendMode","style","strokeJoin","strokeCap","strokeMiter","opacity","antiAlias","dither","paint","Skia","undefined","setColor","Color","setStrokeWidth","setBlendMode","BlendMode","enumKey","setStyle","PaintStyle","setStrokeJoin","StrokeJoin","setStrokeCap","StrokeCap","setStrokeMiter","setAlphaf","setAntiAlias","setDither","save","_children","forEach","child","colorFilter","colorFilters","popAllAsOne","imageFilter","imageFilters","shader","shaders","pop","maskFilter","maskFilters","pathEffect","pathEffects","restore","setImageFilter","setShader","setPathEffect","setColorFilter","setMaskFilter","paints","push","exports"],"sources":["PaintNode.ts"],"sourcesContent":["import { StrokeCap, StrokeJoin, PaintStyle, BlendMode } from \"../../skia/types\";\nimport type { DeclarationNode, PaintProps } from \"../types\";\nimport { DeclarationType, NodeType } from \"../types\";\nimport type { DeclarationContext } from \"../types/DeclarationContext\";\n\nimport { enumKey } from \"./datatypes\";\nimport type { NodeContext } from \"./Node\";\nimport { JsiDeclarationNode } from \"./Node\";\n\nexport class PaintNode\n extends JsiDeclarationNode<PaintProps>\n implements DeclarationNode<PaintProps>\n{\n constructor(ctx: NodeContext, props: PaintProps = {}) {\n super(ctx, DeclarationType.Paint, NodeType.Paint, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const {\n color,\n strokeWidth,\n blendMode,\n style,\n strokeJoin,\n strokeCap,\n strokeMiter,\n opacity,\n antiAlias,\n dither,\n } = this.props;\n const paint = this.Skia.Paint();\n if (color !== undefined) {\n paint.setColor(this.Skia.Color(color));\n }\n if (strokeWidth !== undefined) {\n paint.setStrokeWidth(strokeWidth);\n }\n if (blendMode !== undefined) {\n paint.setBlendMode(BlendMode[enumKey(blendMode)]);\n }\n if (style !== undefined) {\n paint.setStyle(PaintStyle[enumKey(style)]);\n }\n if (strokeJoin !== undefined) {\n paint.setStrokeJoin(StrokeJoin[enumKey(strokeJoin)]);\n }\n if (strokeCap !== undefined) {\n paint.setStrokeCap(StrokeCap[enumKey(strokeCap)]);\n }\n if (strokeMiter !== undefined) {\n paint.setStrokeMiter(strokeMiter);\n }\n if (opacity !== undefined) {\n paint.setAlphaf(opacity);\n }\n if (antiAlias !== undefined) {\n paint.setAntiAlias(antiAlias);\n }\n if (dither !== undefined) {\n paint.setDither(dither);\n }\n ctx.save();\n this._children.forEach((child) => {\n if (child instanceof JsiDeclarationNode) {\n child.decorate(ctx);\n }\n });\n const colorFilter = ctx.colorFilters.popAllAsOne();\n const imageFilter = ctx.imageFilters.popAllAsOne();\n const shader = ctx.shaders.pop();\n const maskFilter = ctx.maskFilters.pop();\n const pathEffect = ctx.pathEffects.popAllAsOne();\n ctx.restore();\n if (imageFilter) {\n paint.setImageFilter(imageFilter);\n }\n if (shader) {\n paint.setShader(shader);\n }\n if (pathEffect) {\n paint.setPathEffect(pathEffect);\n }\n if (colorFilter) {\n paint.setColorFilter(colorFilter);\n }\n if (maskFilter) {\n paint.setMaskFilter(maskFilter);\n }\n ctx.paints.push(paint);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_types","require","_types2","_datatypes","_Node","PaintNode","JsiDeclarationNode","constructor","ctx","props","NodeType","Paint","decorate","color","strokeWidth","blendMode","style","strokeJoin","strokeCap","strokeMiter","opacity","antiAlias","dither","paint","Skia","undefined","setColor","Color","setStrokeWidth","setBlendMode","BlendMode","enumKey","setStyle","PaintStyle","setStrokeJoin","StrokeJoin","setStrokeCap","StrokeCap","setStrokeMiter","setAlphaf","setAntiAlias","setDither","save","_children","forEach","child","colorFilter","colorFilters","popAllAsOne","imageFilter","imageFilters","shader","shaders","pop","maskFilter","maskFilters","pathEffect","pathEffects","restore","setImageFilter","setShader","setPathEffect","setColorFilter","setMaskFilter","paints","push","exports"],"sources":["PaintNode.ts"],"sourcesContent":["import { StrokeCap, StrokeJoin, PaintStyle, BlendMode } from \"../../skia/types\";\nimport type { DeclarationNode, PaintProps } from \"../types\";\nimport { NodeType } from \"../types\";\nimport type { DeclarationContext } from \"../types/DeclarationContext\";\n\nimport { enumKey } from \"./datatypes\";\nimport type { NodeContext } from \"./Node\";\nimport { JsiDeclarationNode } from \"./Node\";\n\nexport class PaintNode\n extends JsiDeclarationNode<PaintProps>\n implements DeclarationNode<PaintProps>\n{\n constructor(ctx: NodeContext, props: PaintProps = {}) {\n super(ctx, NodeType.Paint, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const {\n color,\n strokeWidth,\n blendMode,\n style,\n strokeJoin,\n strokeCap,\n strokeMiter,\n opacity,\n antiAlias,\n dither,\n } = this.props;\n const paint = this.Skia.Paint();\n if (color !== undefined) {\n paint.setColor(this.Skia.Color(color));\n }\n if (strokeWidth !== undefined) {\n paint.setStrokeWidth(strokeWidth);\n }\n if (blendMode !== undefined) {\n paint.setBlendMode(BlendMode[enumKey(blendMode)]);\n }\n if (style !== undefined) {\n paint.setStyle(PaintStyle[enumKey(style)]);\n }\n if (strokeJoin !== undefined) {\n paint.setStrokeJoin(StrokeJoin[enumKey(strokeJoin)]);\n }\n if (strokeCap !== undefined) {\n paint.setStrokeCap(StrokeCap[enumKey(strokeCap)]);\n }\n if (strokeMiter !== undefined) {\n paint.setStrokeMiter(strokeMiter);\n }\n if (opacity !== undefined) {\n paint.setAlphaf(opacity);\n }\n if (antiAlias !== undefined) {\n paint.setAntiAlias(antiAlias);\n }\n if (dither !== undefined) {\n paint.setDither(dither);\n }\n ctx.save();\n this._children.forEach((child) => {\n if (child instanceof JsiDeclarationNode) {\n child.decorate(ctx);\n }\n });\n const colorFilter = ctx.colorFilters.popAllAsOne();\n const imageFilter = ctx.imageFilters.popAllAsOne();\n const shader = ctx.shaders.pop();\n const maskFilter = ctx.maskFilters.pop();\n const pathEffect = ctx.pathEffects.popAllAsOne();\n ctx.restore();\n if (imageFilter) {\n paint.setImageFilter(imageFilter);\n }\n if (shader) {\n paint.setShader(shader);\n }\n if (pathEffect) {\n paint.setPathEffect(pathEffect);\n }\n if (colorFilter) {\n paint.setColorFilter(colorFilter);\n }\n if (maskFilter) {\n paint.setMaskFilter(maskFilter);\n }\n ctx.paints.push(paint);\n }\n}\n"],"mappings":"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"}
@@ -12,7 +12,7 @@ const inflate = (Skia, box, dx, dy, tx = 0, ty = 0) => Skia.RRectXY(Skia.XYWHRec
12
12
  const deflate = (Skia, box, dx, dy, tx = 0, ty = 0) => inflate(Skia, box, -dx, -dy, tx, ty);
13
13
  class BoxShadowNode extends _Node.JsiDeclarationNode {
14
14
  constructor(ctx, props) {
15
- super(ctx, _types2.DeclarationType.Unknown, _types2.NodeType.BoxShadow, props);
15
+ super(ctx, _types2.NodeType.BoxShadow, props);
16
16
  }
17
17
  decorate(_ctx) {
18
18
  // do nothing
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_types2","_Node","_RenderNode","inflate","Skia","box","dx","dy","tx","ty","RRectXY","XYWHRect","rect","x","y","width","height","rx","ry","deflate","BoxShadowNode","JsiDeclarationNode","constructor","ctx","props","DeclarationType","Unknown","NodeType","BoxShadow","decorate","_ctx","materialize","exports","BoxNode","JsiRenderNode","Box","renderNode","canvas","paint","defaultBox","opacity","getAlphaf","isRRect","shadows","_children","map","node","filter","n","shadow","inner","color","blur","spread","lPaint","Paint","setColor","Color","setAlphaf","setMaskFilter","MaskFilter","MakeBlur","BlurStyle","Normal","drawRRect","delta","Point","Math","abs","save","clipRRect","ClipOp","Intersect","outer","drawDRRect","restore"],"sources":["Box.ts"],"sourcesContent":["import type { SkRRect, Skia } from \"../../../skia/types\";\nimport { BlurStyle, ClipOp, isRRect } from \"../../../skia/types\";\nimport type { DrawingContext } from \"../../types\";\nimport { DeclarationType, NodeType } from \"../../types\";\nimport type { BoxShadowProps, BoxProps } from \"../../types/Drawings\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\nimport { JsiRenderNode } from \"../RenderNode\";\nimport type { DeclarationContext } from \"../../types/DeclarationContext\";\n\nconst inflate = (\n Skia: Skia,\n box: SkRRect,\n dx: number,\n dy: number,\n tx = 0,\n ty = 0\n) =>\n Skia.RRectXY(\n Skia.XYWHRect(\n box.rect.x - dx + tx,\n box.rect.y - dy + ty,\n box.rect.width + 2 * dx,\n box.rect.height + 2 * dy\n ),\n box.rx + dx,\n box.ry + dy\n );\n\nconst deflate = (\n Skia: Skia,\n box: SkRRect,\n dx: number,\n dy: number,\n tx = 0,\n ty = 0\n) => inflate(Skia, box, -dx, -dy, tx, ty);\n\nexport class BoxShadowNode extends JsiDeclarationNode<BoxShadowProps> {\n constructor(ctx: NodeContext, props: BoxShadowProps) {\n super(ctx, DeclarationType.Unknown, NodeType.BoxShadow, props);\n }\n\n decorate(_ctx: DeclarationContext) {\n // do nothing\n }\n\n materialize() {\n return this.props;\n }\n}\n\nexport class BoxNode extends JsiRenderNode<BoxProps> {\n constructor(ctx: NodeContext, props: BoxProps) {\n super(ctx, NodeType.Box, props);\n }\n\n renderNode({ canvas, paint }: DrawingContext) {\n const { box: defaultBox } = this.props;\n const opacity = paint.getAlphaf();\n const box = isRRect(defaultBox)\n ? defaultBox\n : this.Skia.RRectXY(defaultBox, 0, 0);\n const shadows = this._children\n .map((node) => {\n if (node instanceof BoxShadowNode) {\n return node.materialize();\n }\n return null;\n })\n .filter((n): n is BoxShadowProps => n !== null);\n shadows\n .filter((shadow) => !shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const lPaint = this.Skia.Paint();\n lPaint.setColor(this.Skia.Color(color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n lPaint.setMaskFilter(\n this.Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n canvas.drawRRect(\n inflate(this.Skia, box, spread, spread, dx, dy),\n lPaint\n );\n });\n\n canvas.drawRRect(box, paint);\n\n shadows\n .filter((shadow) => shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const delta = this.Skia.Point(10 + Math.abs(dx), 10 + Math.abs(dy));\n canvas.save();\n canvas.clipRRect(box, ClipOp.Intersect, false);\n const lPaint = this.Skia.Paint();\n lPaint.setColor(this.Skia.Color(color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n\n lPaint.setMaskFilter(\n this.Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n const inner = deflate(this.Skia, box, spread, spread, dx, dy);\n const outer = inflate(this.Skia, box, delta.x, delta.y);\n canvas.drawDRRect(outer, inner, lPaint);\n canvas.restore();\n });\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAGA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAGA,MAAMI,OAAO,GAAGA,CACdC,IAAU,EACVC,GAAY,EACZC,EAAU,EACVC,EAAU,EACVC,EAAE,GAAG,CAAC,EACNC,EAAE,GAAG,CAAC,KAENL,IAAI,CAACM,OAAO,CACVN,IAAI,CAACO,QAAQ,CACXN,GAAG,CAACO,IAAI,CAACC,CAAC,GAAGP,EAAE,GAAGE,EAAE,EACpBH,GAAG,CAACO,IAAI,CAACE,CAAC,GAAGP,EAAE,GAAGE,EAAE,EACpBJ,GAAG,CAACO,IAAI,CAACG,KAAK,GAAG,CAAC,GAAGT,EAAE,EACvBD,GAAG,CAACO,IAAI,CAACI,MAAM,GAAG,CAAC,GAAGT,EACxB,CAAC,EACDF,GAAG,CAACY,EAAE,GAAGX,EAAE,EACXD,GAAG,CAACa,EAAE,GAAGX,EACX,CAAC;AAEH,MAAMY,OAAO,GAAGA,CACdf,IAAU,EACVC,GAAY,EACZC,EAAU,EACVC,EAAU,EACVC,EAAE,GAAG,CAAC,EACNC,EAAE,GAAG,CAAC,KACHN,OAAO,CAACC,IAAI,EAAEC,GAAG,EAAE,CAACC,EAAE,EAAE,CAACC,EAAE,EAAEC,EAAE,EAAEC,EAAE,CAAC;AAElC,MAAMW,aAAa,SAASC,wBAAkB,CAAiB;EACpEC,WAAWA,CAACC,GAAgB,EAAEC,KAAqB,EAAE;IACnD,KAAK,CAACD,GAAG,EAAEE,uBAAe,CAACC,OAAO,EAAEC,gBAAQ,CAACC,SAAS,EAAEJ,KAAK,CAAC;EAChE;EAEAK,QAAQA,CAACC,IAAwB,EAAE;IACjC;EAAA;EAGFC,WAAWA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACP,KAAK;EACnB;AACF;AAACQ,OAAA,CAAAZ,aAAA,GAAAA,aAAA;AAEM,MAAMa,OAAO,SAASC,yBAAa,CAAW;EACnDZ,WAAWA,CAACC,GAAgB,EAAEC,KAAe,EAAE;IAC7C,KAAK,CAACD,GAAG,EAAEI,gBAAQ,CAACQ,GAAG,EAAEX,KAAK,CAAC;EACjC;EAEAY,UAAUA,CAAC;IAAEC,MAAM;IAAEC;EAAsB,CAAC,EAAE;IAC5C,MAAM;MAAEjC,GAAG,EAAEkC;IAAW,CAAC,GAAG,IAAI,CAACf,KAAK;IACtC,MAAMgB,OAAO,GAAGF,KAAK,CAACG,SAAS,CAAC,CAAC;IACjC,MAAMpC,GAAG,GAAG,IAAAqC,cAAO,EAACH,UAAU,CAAC,GAC3BA,UAAU,GACV,IAAI,CAACnC,IAAI,CAACM,OAAO,CAAC6B,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IACvC,MAAMI,OAAO,GAAG,IAAI,CAACC,SAAS,CAC3BC,GAAG,CAAEC,IAAI,IAAK;MACb,IAAIA,IAAI,YAAY1B,aAAa,EAAE;QACjC,OAAO0B,IAAI,CAACf,WAAW,CAAC,CAAC;MAC3B;MACA,OAAO,IAAI;IACb,CAAC,CAAC,CACDgB,MAAM,CAAEC,CAAC,IAA0BA,CAAC,KAAK,IAAI,CAAC;IACjDL,OAAO,CACJI,MAAM,CAAEE,MAAM,IAAK,CAACA,MAAM,CAACC,KAAK,CAAC,CACjCL,GAAG,CAAEI,MAAM,IAAK;MACf,MAAM;QAAEE,KAAK,GAAG,OAAO;QAAEC,IAAI;QAAEC,MAAM,GAAG,CAAC;QAAE/C,EAAE,GAAG,CAAC;QAAEC,EAAE,GAAG;MAAE,CAAC,GAAG0C,MAAM;MACpE,MAAMK,MAAM,GAAG,IAAI,CAAClD,IAAI,CAACmD,KAAK,CAAC,CAAC;MAChCD,MAAM,CAACE,QAAQ,CAAC,IAAI,CAACpD,IAAI,CAACqD,KAAK,CAACN,KAAK,CAAC,CAAC;MACvCG,MAAM,CAACI,SAAS,CAACpB,KAAK,CAACG,SAAS,CAAC,CAAC,GAAGD,OAAO,CAAC;MAC7Cc,MAAM,CAACK,aAAa,CAClB,IAAI,CAACvD,IAAI,CAACwD,UAAU,CAACC,QAAQ,CAACC,gBAAS,CAACC,MAAM,EAAEX,IAAI,EAAE,IAAI,CAC5D,CAAC;MACDf,MAAM,CAAC2B,SAAS,CACd7D,OAAO,CAAC,IAAI,CAACC,IAAI,EAAEC,GAAG,EAAEgD,MAAM,EAAEA,MAAM,EAAE/C,EAAE,EAAEC,EAAE,CAAC,EAC/C+C,MACF,CAAC;IACH,CAAC,CAAC;IAEJjB,MAAM,CAAC2B,SAAS,CAAC3D,GAAG,EAAEiC,KAAK,CAAC;IAE5BK,OAAO,CACJI,MAAM,CAAEE,MAAM,IAAKA,MAAM,CAACC,KAAK,CAAC,CAChCL,GAAG,CAAEI,MAAM,IAAK;MACf,MAAM;QAAEE,KAAK,GAAG,OAAO;QAAEC,IAAI;QAAEC,MAAM,GAAG,CAAC;QAAE/C,EAAE,GAAG,CAAC;QAAEC,EAAE,GAAG;MAAE,CAAC,GAAG0C,MAAM;MACpE,MAAMgB,KAAK,GAAG,IAAI,CAAC7D,IAAI,CAAC8D,KAAK,CAAC,EAAE,GAAGC,IAAI,CAACC,GAAG,CAAC9D,EAAE,CAAC,EAAE,EAAE,GAAG6D,IAAI,CAACC,GAAG,CAAC7D,EAAE,CAAC,CAAC;MACnE8B,MAAM,CAACgC,IAAI,CAAC,CAAC;MACbhC,MAAM,CAACiC,SAAS,CAACjE,GAAG,EAAEkE,aAAM,CAACC,SAAS,EAAE,KAAK,CAAC;MAC9C,MAAMlB,MAAM,GAAG,IAAI,CAAClD,IAAI,CAACmD,KAAK,CAAC,CAAC;MAChCD,MAAM,CAACE,QAAQ,CAAC,IAAI,CAACpD,IAAI,CAACqD,KAAK,CAACN,KAAK,CAAC,CAAC;MACvCG,MAAM,CAACI,SAAS,CAACpB,KAAK,CAACG,SAAS,CAAC,CAAC,GAAGD,OAAO,CAAC;MAE7Cc,MAAM,CAACK,aAAa,CAClB,IAAI,CAACvD,IAAI,CAACwD,UAAU,CAACC,QAAQ,CAACC,gBAAS,CAACC,MAAM,EAAEX,IAAI,EAAE,IAAI,CAC5D,CAAC;MACD,MAAMF,KAAK,GAAG/B,OAAO,CAAC,IAAI,CAACf,IAAI,EAAEC,GAAG,EAAEgD,MAAM,EAAEA,MAAM,EAAE/C,EAAE,EAAEC,EAAE,CAAC;MAC7D,MAAMkE,KAAK,GAAGtE,OAAO,CAAC,IAAI,CAACC,IAAI,EAAEC,GAAG,EAAE4D,KAAK,CAACpD,CAAC,EAAEoD,KAAK,CAACnD,CAAC,CAAC;MACvDuB,MAAM,CAACqC,UAAU,CAACD,KAAK,EAAEvB,KAAK,EAAEI,MAAM,CAAC;MACvCjB,MAAM,CAACsC,OAAO,CAAC,CAAC;IAClB,CAAC,CAAC;EACN;AACF;AAAC3C,OAAA,CAAAC,OAAA,GAAAA,OAAA"}
1
+ {"version":3,"names":["_types","require","_types2","_Node","_RenderNode","inflate","Skia","box","dx","dy","tx","ty","RRectXY","XYWHRect","rect","x","y","width","height","rx","ry","deflate","BoxShadowNode","JsiDeclarationNode","constructor","ctx","props","NodeType","BoxShadow","decorate","_ctx","materialize","exports","BoxNode","JsiRenderNode","Box","renderNode","canvas","paint","defaultBox","opacity","getAlphaf","isRRect","shadows","_children","map","node","filter","n","shadow","inner","color","blur","spread","lPaint","Paint","setColor","Color","setAlphaf","setMaskFilter","MaskFilter","MakeBlur","BlurStyle","Normal","drawRRect","delta","Point","Math","abs","save","clipRRect","ClipOp","Intersect","outer","drawDRRect","restore"],"sources":["Box.ts"],"sourcesContent":["import type { SkRRect, Skia } from \"../../../skia/types\";\nimport { BlurStyle, ClipOp, isRRect } from \"../../../skia/types\";\nimport type { DrawingContext } from \"../../types\";\nimport { NodeType } from \"../../types\";\nimport type { BoxShadowProps, BoxProps } from \"../../types/Drawings\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\nimport { JsiRenderNode } from \"../RenderNode\";\nimport type { DeclarationContext } from \"../../types/DeclarationContext\";\n\nconst inflate = (\n Skia: Skia,\n box: SkRRect,\n dx: number,\n dy: number,\n tx = 0,\n ty = 0\n) =>\n Skia.RRectXY(\n Skia.XYWHRect(\n box.rect.x - dx + tx,\n box.rect.y - dy + ty,\n box.rect.width + 2 * dx,\n box.rect.height + 2 * dy\n ),\n box.rx + dx,\n box.ry + dy\n );\n\nconst deflate = (\n Skia: Skia,\n box: SkRRect,\n dx: number,\n dy: number,\n tx = 0,\n ty = 0\n) => inflate(Skia, box, -dx, -dy, tx, ty);\n\nexport class BoxShadowNode extends JsiDeclarationNode<BoxShadowProps> {\n constructor(ctx: NodeContext, props: BoxShadowProps) {\n super(ctx, NodeType.BoxShadow, props);\n }\n\n decorate(_ctx: DeclarationContext) {\n // do nothing\n }\n\n materialize() {\n return this.props;\n }\n}\n\nexport class BoxNode extends JsiRenderNode<BoxProps> {\n constructor(ctx: NodeContext, props: BoxProps) {\n super(ctx, NodeType.Box, props);\n }\n\n renderNode({ canvas, paint }: DrawingContext) {\n const { box: defaultBox } = this.props;\n const opacity = paint.getAlphaf();\n const box = isRRect(defaultBox)\n ? defaultBox\n : this.Skia.RRectXY(defaultBox, 0, 0);\n const shadows = this._children\n .map((node) => {\n if (node instanceof BoxShadowNode) {\n return node.materialize();\n }\n return null;\n })\n .filter((n): n is BoxShadowProps => n !== null);\n shadows\n .filter((shadow) => !shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const lPaint = this.Skia.Paint();\n lPaint.setColor(this.Skia.Color(color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n lPaint.setMaskFilter(\n this.Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n canvas.drawRRect(\n inflate(this.Skia, box, spread, spread, dx, dy),\n lPaint\n );\n });\n\n canvas.drawRRect(box, paint);\n\n shadows\n .filter((shadow) => shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const delta = this.Skia.Point(10 + Math.abs(dx), 10 + Math.abs(dy));\n canvas.save();\n canvas.clipRRect(box, ClipOp.Intersect, false);\n const lPaint = this.Skia.Paint();\n lPaint.setColor(this.Skia.Color(color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n\n lPaint.setMaskFilter(\n this.Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n const inner = deflate(this.Skia, box, spread, spread, dx, dy);\n const outer = inflate(this.Skia, box, delta.x, delta.y);\n canvas.drawDRRect(outer, inner, lPaint);\n canvas.restore();\n });\n }\n}\n"],"mappings":"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"}
@@ -11,7 +11,7 @@ var _datatypes = require("../datatypes");
11
11
  var _DeclarationContext = require("../../types/DeclarationContext");
12
12
  class BlendNode extends _Node.JsiDeclarationNode {
13
13
  constructor(ctx, props) {
14
- super(ctx, _NodeType.DeclarationType.ImageFilter, _NodeType.NodeType.Blend, props);
14
+ super(ctx, _NodeType.NodeType.Blend, props);
15
15
  }
16
16
  decorate(ctx) {
17
17
  this.decorateChildren(ctx);
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_NodeType","_Node","_datatypes","_DeclarationContext","BlendNode","JsiDeclarationNode","constructor","ctx","props","DeclarationType","ImageFilter","NodeType","Blend","decorate","decorateChildren","Skia","blend","BlendMode","enumKey","mode","imageFilters","popAll","length","composer","MakeBlend","bind","push","composeDeclarations","shaders","Shader","exports"],"sources":["BlendNode.ts"],"sourcesContent":["import type { BlendProps } from \"../../types/ImageFilters\";\nimport { BlendMode } from \"../../../skia/types\";\nimport { DeclarationType, NodeType } from \"../../types/NodeType\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\nimport { enumKey } from \"../datatypes\";\nimport type { DeclarationContext } from \"../../types/DeclarationContext\";\nimport { composeDeclarations } from \"../../types/DeclarationContext\";\n\nexport class BlendNode extends JsiDeclarationNode<BlendProps> {\n constructor(ctx: NodeContext, props: BlendProps) {\n super(ctx, DeclarationType.ImageFilter, NodeType.Blend, props);\n }\n\n decorate(ctx: DeclarationContext) {\n this.decorateChildren(ctx);\n const { Skia } = this;\n const blend = BlendMode[enumKey(this.props.mode)];\n // Blend ImageFilters\n const imageFilters = ctx.imageFilters.popAll();\n if (imageFilters.length > 0) {\n const composer = Skia.ImageFilter.MakeBlend.bind(Skia.ImageFilter, blend);\n ctx.imageFilters.push(composeDeclarations(imageFilters, composer));\n }\n // Blend Shaders\n const shaders = ctx.shaders.popAll();\n if (shaders.length > 0) {\n const composer = Skia.Shader.MakeBlend.bind(Skia.Shader, blend);\n ctx.shaders.push(composeDeclarations(shaders, composer));\n }\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAEA,IAAAI,mBAAA,GAAAJ,OAAA;AAEO,MAAMK,SAAS,SAASC,wBAAkB,CAAa;EAC5DC,WAAWA,CAACC,GAAgB,EAAEC,KAAiB,EAAE;IAC/C,KAAK,CAACD,GAAG,EAAEE,yBAAe,CAACC,WAAW,EAAEC,kBAAQ,CAACC,KAAK,EAAEJ,KAAK,CAAC;EAChE;EAEAK,QAAQA,CAACN,GAAuB,EAAE;IAChC,IAAI,CAACO,gBAAgB,CAACP,GAAG,CAAC;IAC1B,MAAM;MAAEQ;IAAK,CAAC,GAAG,IAAI;IACrB,MAAMC,KAAK,GAAGC,gBAAS,CAAC,IAAAC,kBAAO,EAAC,IAAI,CAACV,KAAK,CAACW,IAAI,CAAC,CAAC;IACjD;IACA,MAAMC,YAAY,GAAGb,GAAG,CAACa,YAAY,CAACC,MAAM,CAAC,CAAC;IAC9C,IAAID,YAAY,CAACE,MAAM,GAAG,CAAC,EAAE;MAC3B,MAAMC,QAAQ,GAAGR,IAAI,CAACL,WAAW,CAACc,SAAS,CAACC,IAAI,CAACV,IAAI,CAACL,WAAW,EAAEM,KAAK,CAAC;MACzET,GAAG,CAACa,YAAY,CAACM,IAAI,CAAC,IAAAC,uCAAmB,EAACP,YAAY,EAAEG,QAAQ,CAAC,CAAC;IACpE;IACA;IACA,MAAMK,OAAO,GAAGrB,GAAG,CAACqB,OAAO,CAACP,MAAM,CAAC,CAAC;IACpC,IAAIO,OAAO,CAACN,MAAM,GAAG,CAAC,EAAE;MACtB,MAAMC,QAAQ,GAAGR,IAAI,CAACc,MAAM,CAACL,SAAS,CAACC,IAAI,CAACV,IAAI,CAACc,MAAM,EAAEb,KAAK,CAAC;MAC/DT,GAAG,CAACqB,OAAO,CAACF,IAAI,CAAC,IAAAC,uCAAmB,EAACC,OAAO,EAAEL,QAAQ,CAAC,CAAC;IAC1D;EACF;AACF;AAACO,OAAA,CAAA1B,SAAA,GAAAA,SAAA"}
1
+ {"version":3,"names":["_types","require","_NodeType","_Node","_datatypes","_DeclarationContext","BlendNode","JsiDeclarationNode","constructor","ctx","props","NodeType","Blend","decorate","decorateChildren","Skia","blend","BlendMode","enumKey","mode","imageFilters","popAll","length","composer","ImageFilter","MakeBlend","bind","push","composeDeclarations","shaders","Shader","exports"],"sources":["BlendNode.ts"],"sourcesContent":["import type { BlendProps } from \"../../types/ImageFilters\";\nimport { BlendMode } from \"../../../skia/types\";\nimport { NodeType } from \"../../types/NodeType\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\nimport { enumKey } from \"../datatypes\";\nimport type { DeclarationContext } from \"../../types/DeclarationContext\";\nimport { composeDeclarations } from \"../../types/DeclarationContext\";\n\nexport class BlendNode extends JsiDeclarationNode<BlendProps> {\n constructor(ctx: NodeContext, props: BlendProps) {\n super(ctx, NodeType.Blend, props);\n }\n\n decorate(ctx: DeclarationContext) {\n this.decorateChildren(ctx);\n const { Skia } = this;\n const blend = BlendMode[enumKey(this.props.mode)];\n // Blend ImageFilters\n const imageFilters = ctx.imageFilters.popAll();\n if (imageFilters.length > 0) {\n const composer = Skia.ImageFilter.MakeBlend.bind(Skia.ImageFilter, blend);\n ctx.imageFilters.push(composeDeclarations(imageFilters, composer));\n }\n // Blend Shaders\n const shaders = ctx.shaders.popAll();\n if (shaders.length > 0) {\n const composer = Skia.Shader.MakeBlend.bind(Skia.Shader, blend);\n ctx.shaders.push(composeDeclarations(shaders, composer));\n }\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAEA,IAAAI,mBAAA,GAAAJ,OAAA;AAEO,MAAMK,SAAS,SAASC,wBAAkB,CAAa;EAC5DC,WAAWA,CAACC,GAAgB,EAAEC,KAAiB,EAAE;IAC/C,KAAK,CAACD,GAAG,EAAEE,kBAAQ,CAACC,KAAK,EAAEF,KAAK,CAAC;EACnC;EAEAG,QAAQA,CAACJ,GAAuB,EAAE;IAChC,IAAI,CAACK,gBAAgB,CAACL,GAAG,CAAC;IAC1B,MAAM;MAAEM;IAAK,CAAC,GAAG,IAAI;IACrB,MAAMC,KAAK,GAAGC,gBAAS,CAAC,IAAAC,kBAAO,EAAC,IAAI,CAACR,KAAK,CAACS,IAAI,CAAC,CAAC;IACjD;IACA,MAAMC,YAAY,GAAGX,GAAG,CAACW,YAAY,CAACC,MAAM,CAAC,CAAC;IAC9C,IAAID,YAAY,CAACE,MAAM,GAAG,CAAC,EAAE;MAC3B,MAAMC,QAAQ,GAAGR,IAAI,CAACS,WAAW,CAACC,SAAS,CAACC,IAAI,CAACX,IAAI,CAACS,WAAW,EAAER,KAAK,CAAC;MACzEP,GAAG,CAACW,YAAY,CAACO,IAAI,CAAC,IAAAC,uCAAmB,EAACR,YAAY,EAAEG,QAAQ,CAAC,CAAC;IACpE;IACA;IACA,MAAMM,OAAO,GAAGpB,GAAG,CAACoB,OAAO,CAACR,MAAM,CAAC,CAAC;IACpC,IAAIQ,OAAO,CAACP,MAAM,GAAG,CAAC,EAAE;MACtB,MAAMC,QAAQ,GAAGR,IAAI,CAACe,MAAM,CAACL,SAAS,CAACC,IAAI,CAACX,IAAI,CAACe,MAAM,EAAEd,KAAK,CAAC;MAC/DP,GAAG,CAACoB,OAAO,CAACF,IAAI,CAAC,IAAAC,uCAAmB,EAACC,OAAO,EAAEN,QAAQ,CAAC,CAAC;IAC1D;EACF;AACF;AAACQ,OAAA,CAAAzB,SAAA,GAAAA,SAAA"}
@@ -10,7 +10,7 @@ var _types2 = require("../../types");
10
10
  var _Enum = require("../datatypes/Enum");
11
11
  class ColorFilterDeclaration extends _Node.JsiDeclarationNode {
12
12
  constructor(ctx, type, props) {
13
- super(ctx, _types2.DeclarationType.ColorFilter, type, props);
13
+ super(ctx, type, props);
14
14
  }
15
15
  composeAndPush(ctx, cf1) {
16
16
  ctx.save();
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_Node","_types2","_Enum","ColorFilterDeclaration","JsiDeclarationNode","constructor","ctx","type","props","DeclarationType","ColorFilter","composeAndPush","cf1","save","decorateChildren","cf2","colorFilters","popAllAsOne","restore","cf","Skia","MakeCompose","push","exports","MatrixColorFilterNode","NodeType","MatrixColorFilter","decorate","matrix","MakeMatrix","BlendColorFilterNode","BlendColorFilter","mode","color","Color","MakeBlend","BlendMode","enumKey","LinearToSRGBGammaColorFilterNode","LinearToSRGBGammaColorFilter","MakeLinearToSRGBGamma","SRGBToLinearGammaColorFilterNode","SRGBToLinearGammaColorFilter","MakeSRGBToLinearGamma","LumaColorFilterNode","LumaColorFilter","MakeLumaColorFilter","LerpColorFilterNode","LerpColorFilter","t","second","pop","first","Error","MakeLerp"],"sources":["ColorFilters.ts"],"sourcesContent":["import type { SkColorFilter } from \"../../../skia/types\";\nimport { BlendMode } from \"../../../skia/types\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\nimport type {\n BlendColorFilterProps,\n MatrixColorFilterProps,\n} from \"../../types\";\nimport { DeclarationType, NodeType } from \"../../types\";\nimport { enumKey } from \"../datatypes/Enum\";\nimport type { LerpColorFilterProps } from \"../../types/ColorFilters\";\nimport type { DeclarationContext } from \"../../types/DeclarationContext\";\n\nexport abstract class ColorFilterDeclaration<P> extends JsiDeclarationNode<P> {\n constructor(ctx: NodeContext, type: NodeType, props: P) {\n super(ctx, DeclarationType.ColorFilter, type, props);\n }\n\n protected composeAndPush(ctx: DeclarationContext, cf1: SkColorFilter) {\n ctx.save();\n this.decorateChildren(ctx);\n const cf2 = ctx.colorFilters.popAllAsOne();\n ctx.restore();\n const cf = cf2 ? this.Skia.ColorFilter.MakeCompose(cf1, cf2) : cf1;\n ctx.colorFilters.push(cf);\n }\n}\n\nexport class MatrixColorFilterNode extends ColorFilterDeclaration<MatrixColorFilterProps> {\n constructor(ctx: NodeContext, props: MatrixColorFilterProps) {\n super(ctx, NodeType.MatrixColorFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { matrix } = this.props;\n const cf = this.Skia.ColorFilter.MakeMatrix(matrix);\n this.composeAndPush(ctx, cf);\n }\n}\n\nexport class BlendColorFilterNode extends ColorFilterDeclaration<BlendColorFilterProps> {\n constructor(ctx: NodeContext, props: BlendColorFilterProps) {\n super(ctx, NodeType.BlendColorFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { mode } = this.props;\n const color = this.Skia.Color(this.props.color);\n const cf = this.Skia.ColorFilter.MakeBlend(color, BlendMode[enumKey(mode)]);\n this.composeAndPush(ctx, cf);\n }\n}\n\nexport class LinearToSRGBGammaColorFilterNode extends ColorFilterDeclaration<null> {\n constructor(ctx: NodeContext) {\n super(ctx, NodeType.LinearToSRGBGammaColorFilter, null);\n }\n\n decorate(ctx: DeclarationContext) {\n const cf = this.Skia.ColorFilter.MakeLinearToSRGBGamma();\n this.composeAndPush(ctx, cf);\n }\n}\n\nexport class SRGBToLinearGammaColorFilterNode extends ColorFilterDeclaration<null> {\n constructor(ctx: NodeContext) {\n super(ctx, NodeType.SRGBToLinearGammaColorFilter, null);\n }\n\n decorate(ctx: DeclarationContext) {\n const cf = this.Skia.ColorFilter.MakeSRGBToLinearGamma();\n this.composeAndPush(ctx, cf);\n }\n}\n\nexport class LumaColorFilterNode extends ColorFilterDeclaration<null> {\n constructor(ctx: NodeContext) {\n super(ctx, NodeType.LumaColorFilter, null);\n }\n\n decorate(ctx: DeclarationContext) {\n const cf = this.Skia.ColorFilter.MakeLumaColorFilter();\n this.composeAndPush(ctx, cf);\n }\n}\n\nexport class LerpColorFilterNode extends ColorFilterDeclaration<LerpColorFilterProps> {\n constructor(ctx: NodeContext, props: LerpColorFilterProps) {\n super(ctx, NodeType.LerpColorFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n ctx.save();\n this.decorateChildren(ctx);\n const { t } = this.props;\n const second = ctx.colorFilters.pop();\n const first = ctx.colorFilters.pop();\n ctx.restore();\n if (!first || !second) {\n throw new Error(\n \"LerpColorFilterNode: missing two color filters as children\"\n );\n }\n ctx.colorFilters.push(this.Skia.ColorFilter.MakeLerp(t, first, second));\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAIO,MAAeI,sBAAsB,SAAYC,wBAAkB,CAAI;EAC5EC,WAAWA,CAACC,GAAgB,EAAEC,IAAc,EAAEC,KAAQ,EAAE;IACtD,KAAK,CAACF,GAAG,EAAEG,uBAAe,CAACC,WAAW,EAAEH,IAAI,EAAEC,KAAK,CAAC;EACtD;EAEUG,cAAcA,CAACL,GAAuB,EAAEM,GAAkB,EAAE;IACpEN,GAAG,CAACO,IAAI,CAAC,CAAC;IACV,IAAI,CAACC,gBAAgB,CAACR,GAAG,CAAC;IAC1B,MAAMS,GAAG,GAAGT,GAAG,CAACU,YAAY,CAACC,WAAW,CAAC,CAAC;IAC1CX,GAAG,CAACY,OAAO,CAAC,CAAC;IACb,MAAMC,EAAE,GAAGJ,GAAG,GAAG,IAAI,CAACK,IAAI,CAACV,WAAW,CAACW,WAAW,CAACT,GAAG,EAAEG,GAAG,CAAC,GAAGH,GAAG;IAClEN,GAAG,CAACU,YAAY,CAACM,IAAI,CAACH,EAAE,CAAC;EAC3B;AACF;AAACI,OAAA,CAAApB,sBAAA,GAAAA,sBAAA;AAEM,MAAMqB,qBAAqB,SAASrB,sBAAsB,CAAyB;EACxFE,WAAWA,CAACC,GAAgB,EAAEE,KAA6B,EAAE;IAC3D,KAAK,CAACF,GAAG,EAAEmB,gBAAQ,CAACC,iBAAiB,EAAElB,KAAK,CAAC;EAC/C;EAEAmB,QAAQA,CAACrB,GAAuB,EAAE;IAChC,MAAM;MAAEsB;IAAO,CAAC,GAAG,IAAI,CAACpB,KAAK;IAC7B,MAAMW,EAAE,GAAG,IAAI,CAACC,IAAI,CAACV,WAAW,CAACmB,UAAU,CAACD,MAAM,CAAC;IACnD,IAAI,CAACjB,cAAc,CAACL,GAAG,EAAEa,EAAE,CAAC;EAC9B;AACF;AAACI,OAAA,CAAAC,qBAAA,GAAAA,qBAAA;AAEM,MAAMM,oBAAoB,SAAS3B,sBAAsB,CAAwB;EACtFE,WAAWA,CAACC,GAAgB,EAAEE,KAA4B,EAAE;IAC1D,KAAK,CAACF,GAAG,EAAEmB,gBAAQ,CAACM,gBAAgB,EAAEvB,KAAK,CAAC;EAC9C;EAEAmB,QAAQA,CAACrB,GAAuB,EAAE;IAChC,MAAM;MAAE0B;IAAK,CAAC,GAAG,IAAI,CAACxB,KAAK;IAC3B,MAAMyB,KAAK,GAAG,IAAI,CAACb,IAAI,CAACc,KAAK,CAAC,IAAI,CAAC1B,KAAK,CAACyB,KAAK,CAAC;IAC/C,MAAMd,EAAE,GAAG,IAAI,CAACC,IAAI,CAACV,WAAW,CAACyB,SAAS,CAACF,KAAK,EAAEG,gBAAS,CAAC,IAAAC,aAAO,EAACL,IAAI,CAAC,CAAC,CAAC;IAC3E,IAAI,CAACrB,cAAc,CAACL,GAAG,EAAEa,EAAE,CAAC;EAC9B;AACF;AAACI,OAAA,CAAAO,oBAAA,GAAAA,oBAAA;AAEM,MAAMQ,gCAAgC,SAASnC,sBAAsB,CAAO;EACjFE,WAAWA,CAACC,GAAgB,EAAE;IAC5B,KAAK,CAACA,GAAG,EAAEmB,gBAAQ,CAACc,4BAA4B,EAAE,IAAI,CAAC;EACzD;EAEAZ,QAAQA,CAACrB,GAAuB,EAAE;IAChC,MAAMa,EAAE,GAAG,IAAI,CAACC,IAAI,CAACV,WAAW,CAAC8B,qBAAqB,CAAC,CAAC;IACxD,IAAI,CAAC7B,cAAc,CAACL,GAAG,EAAEa,EAAE,CAAC;EAC9B;AACF;AAACI,OAAA,CAAAe,gCAAA,GAAAA,gCAAA;AAEM,MAAMG,gCAAgC,SAAStC,sBAAsB,CAAO;EACjFE,WAAWA,CAACC,GAAgB,EAAE;IAC5B,KAAK,CAACA,GAAG,EAAEmB,gBAAQ,CAACiB,4BAA4B,EAAE,IAAI,CAAC;EACzD;EAEAf,QAAQA,CAACrB,GAAuB,EAAE;IAChC,MAAMa,EAAE,GAAG,IAAI,CAACC,IAAI,CAACV,WAAW,CAACiC,qBAAqB,CAAC,CAAC;IACxD,IAAI,CAAChC,cAAc,CAACL,GAAG,EAAEa,EAAE,CAAC;EAC9B;AACF;AAACI,OAAA,CAAAkB,gCAAA,GAAAA,gCAAA;AAEM,MAAMG,mBAAmB,SAASzC,sBAAsB,CAAO;EACpEE,WAAWA,CAACC,GAAgB,EAAE;IAC5B,KAAK,CAACA,GAAG,EAAEmB,gBAAQ,CAACoB,eAAe,EAAE,IAAI,CAAC;EAC5C;EAEAlB,QAAQA,CAACrB,GAAuB,EAAE;IAChC,MAAMa,EAAE,GAAG,IAAI,CAACC,IAAI,CAACV,WAAW,CAACoC,mBAAmB,CAAC,CAAC;IACtD,IAAI,CAACnC,cAAc,CAACL,GAAG,EAAEa,EAAE,CAAC;EAC9B;AACF;AAACI,OAAA,CAAAqB,mBAAA,GAAAA,mBAAA;AAEM,MAAMG,mBAAmB,SAAS5C,sBAAsB,CAAuB;EACpFE,WAAWA,CAACC,GAAgB,EAAEE,KAA2B,EAAE;IACzD,KAAK,CAACF,GAAG,EAAEmB,gBAAQ,CAACuB,eAAe,EAAExC,KAAK,CAAC;EAC7C;EAEAmB,QAAQA,CAACrB,GAAuB,EAAE;IAChCA,GAAG,CAACO,IAAI,CAAC,CAAC;IACV,IAAI,CAACC,gBAAgB,CAACR,GAAG,CAAC;IAC1B,MAAM;MAAE2C;IAAE,CAAC,GAAG,IAAI,CAACzC,KAAK;IACxB,MAAM0C,MAAM,GAAG5C,GAAG,CAACU,YAAY,CAACmC,GAAG,CAAC,CAAC;IACrC,MAAMC,KAAK,GAAG9C,GAAG,CAACU,YAAY,CAACmC,GAAG,CAAC,CAAC;IACpC7C,GAAG,CAACY,OAAO,CAAC,CAAC;IACb,IAAI,CAACkC,KAAK,IAAI,CAACF,MAAM,EAAE;MACrB,MAAM,IAAIG,KAAK,CACb,4DACF,CAAC;IACH;IACA/C,GAAG,CAACU,YAAY,CAACM,IAAI,CAAC,IAAI,CAACF,IAAI,CAACV,WAAW,CAAC4C,QAAQ,CAACL,CAAC,EAAEG,KAAK,EAAEF,MAAM,CAAC,CAAC;EACzE;AACF;AAAC3B,OAAA,CAAAwB,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"names":["_types","require","_Node","_types2","_Enum","ColorFilterDeclaration","JsiDeclarationNode","constructor","ctx","type","props","composeAndPush","cf1","save","decorateChildren","cf2","colorFilters","popAllAsOne","restore","cf","Skia","ColorFilter","MakeCompose","push","exports","MatrixColorFilterNode","NodeType","MatrixColorFilter","decorate","matrix","MakeMatrix","BlendColorFilterNode","BlendColorFilter","mode","color","Color","MakeBlend","BlendMode","enumKey","LinearToSRGBGammaColorFilterNode","LinearToSRGBGammaColorFilter","MakeLinearToSRGBGamma","SRGBToLinearGammaColorFilterNode","SRGBToLinearGammaColorFilter","MakeSRGBToLinearGamma","LumaColorFilterNode","LumaColorFilter","MakeLumaColorFilter","LerpColorFilterNode","LerpColorFilter","t","second","pop","first","Error","MakeLerp"],"sources":["ColorFilters.ts"],"sourcesContent":["import type { SkColorFilter } from \"../../../skia/types\";\nimport { BlendMode } from \"../../../skia/types\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\nimport type {\n BlendColorFilterProps,\n MatrixColorFilterProps,\n} from \"../../types\";\nimport { NodeType } from \"../../types\";\nimport { enumKey } from \"../datatypes/Enum\";\nimport type { LerpColorFilterProps } from \"../../types/ColorFilters\";\nimport type { DeclarationContext } from \"../../types/DeclarationContext\";\n\nexport abstract class ColorFilterDeclaration<P> extends JsiDeclarationNode<P> {\n constructor(ctx: NodeContext, type: NodeType, props: P) {\n super(ctx, type, props);\n }\n\n protected composeAndPush(ctx: DeclarationContext, cf1: SkColorFilter) {\n ctx.save();\n this.decorateChildren(ctx);\n const cf2 = ctx.colorFilters.popAllAsOne();\n ctx.restore();\n const cf = cf2 ? this.Skia.ColorFilter.MakeCompose(cf1, cf2) : cf1;\n ctx.colorFilters.push(cf);\n }\n}\n\nexport class MatrixColorFilterNode extends ColorFilterDeclaration<MatrixColorFilterProps> {\n constructor(ctx: NodeContext, props: MatrixColorFilterProps) {\n super(ctx, NodeType.MatrixColorFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { matrix } = this.props;\n const cf = this.Skia.ColorFilter.MakeMatrix(matrix);\n this.composeAndPush(ctx, cf);\n }\n}\n\nexport class BlendColorFilterNode extends ColorFilterDeclaration<BlendColorFilterProps> {\n constructor(ctx: NodeContext, props: BlendColorFilterProps) {\n super(ctx, NodeType.BlendColorFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { mode } = this.props;\n const color = this.Skia.Color(this.props.color);\n const cf = this.Skia.ColorFilter.MakeBlend(color, BlendMode[enumKey(mode)]);\n this.composeAndPush(ctx, cf);\n }\n}\n\nexport class LinearToSRGBGammaColorFilterNode extends ColorFilterDeclaration<null> {\n constructor(ctx: NodeContext) {\n super(ctx, NodeType.LinearToSRGBGammaColorFilter, null);\n }\n\n decorate(ctx: DeclarationContext) {\n const cf = this.Skia.ColorFilter.MakeLinearToSRGBGamma();\n this.composeAndPush(ctx, cf);\n }\n}\n\nexport class SRGBToLinearGammaColorFilterNode extends ColorFilterDeclaration<null> {\n constructor(ctx: NodeContext) {\n super(ctx, NodeType.SRGBToLinearGammaColorFilter, null);\n }\n\n decorate(ctx: DeclarationContext) {\n const cf = this.Skia.ColorFilter.MakeSRGBToLinearGamma();\n this.composeAndPush(ctx, cf);\n }\n}\n\nexport class LumaColorFilterNode extends ColorFilterDeclaration<null> {\n constructor(ctx: NodeContext) {\n super(ctx, NodeType.LumaColorFilter, null);\n }\n\n decorate(ctx: DeclarationContext) {\n const cf = this.Skia.ColorFilter.MakeLumaColorFilter();\n this.composeAndPush(ctx, cf);\n }\n}\n\nexport class LerpColorFilterNode extends ColorFilterDeclaration<LerpColorFilterProps> {\n constructor(ctx: NodeContext, props: LerpColorFilterProps) {\n super(ctx, NodeType.LerpColorFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n ctx.save();\n this.decorateChildren(ctx);\n const { t } = this.props;\n const second = ctx.colorFilters.pop();\n const first = ctx.colorFilters.pop();\n ctx.restore();\n if (!first || !second) {\n throw new Error(\n \"LerpColorFilterNode: missing two color filters as children\"\n );\n }\n ctx.colorFilters.push(this.Skia.ColorFilter.MakeLerp(t, first, second));\n }\n}\n"],"mappings":"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"}
@@ -23,7 +23,7 @@ const MakeInnerShadow = (Skia, shadowOnly, dx, dy, sigmaX, sigmaY, color, input)
23
23
  };
24
24
  class ImageFilterDeclaration extends _Node.JsiDeclarationNode {
25
25
  constructor(ctx, type, props) {
26
- super(ctx, _types2.DeclarationType.ImageFilter, type, props);
26
+ super(ctx, type, props);
27
27
  }
28
28
  input(ctx) {
29
29
  var _ctx$imageFilters$pop;
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_types2","_datatypes","_Node","Black","Float32Array","of","MakeInnerShadow","Skia","shadowOnly","dx","dy","sigmaX","sigmaY","color","input","sourceGraphic","ImageFilter","MakeColorFilter","ColorFilter","MakeBlend","BlendMode","Dst","sourceAlpha","SrcIn","f1","SrcOut","f2","MakeOffset","f3","MakeBlur","TileMode","Decal","f4","MakeCompose","SrcOver","ImageFilterDeclaration","JsiDeclarationNode","constructor","ctx","type","props","DeclarationType","_ctx$imageFilters$pop","imageFilters","pop","composeAndPush","imgf1","save","decorateChildren","imgf2","popAllAsOne","cf","colorFilters","restore","_imgf","imgf","push","exports","OffsetImageFilterNode","NodeType","OffsetImageFilter","decorate","x","y","DisplacementMapImageFilterNode","DisplacementMapImageFilter","channelX","channelY","scale","shader","shaders","Error","map","MakeShader","MakeDisplacementMap","ColorChannel","enumKey","BlurImageFilterNode","BlurImageFilter","mode","blur","sigma","processRadius","DropShadowImageFilterNode","DropShadowImageFilter","cl","inner","Color","factory","bind","MakeDropShadowOnly","MakeDropShadow","MorphologyOperator","MorphologyImageFilterNode","MorphologyImageFilter","operator","r","radius","Erode","MakeErode","MakeDilate","BlendImageFilterNode","BlendImageFilter","a","b","RuntimeShaderImageFilterNode","RuntimeShaderImageFilter","source","uniforms","rtb","RuntimeShaderBuilder","processUniforms","MakeRuntimeShader"],"sources":["ImageFilters.ts"],"sourcesContent":["import type { SkImageFilter, SkColor, Skia } from \"../../../skia/types\";\nimport {\n BlendMode,\n ColorChannel,\n processUniforms,\n TileMode,\n} from \"../../../skia/types\";\nimport type {\n BlendImageFilterProps,\n BlurImageFilterProps,\n DeclarationContext,\n DisplacementMapImageFilterProps,\n DropShadowImageFilterProps,\n MorphologyImageFilterProps,\n OffsetImageFilterProps,\n RuntimeShaderImageFilterProps,\n} from \"../../types\";\nimport { DeclarationType, NodeType } from \"../../types\";\nimport { processRadius, enumKey } from \"../datatypes\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\n\nconst Black = Float32Array.of(0, 0, 0, 1);\n\nconst MakeInnerShadow = (\n Skia: Skia,\n shadowOnly: boolean | undefined,\n dx: number,\n dy: number,\n sigmaX: number,\n sigmaY: number,\n color: SkColor,\n input: SkImageFilter | null\n) => {\n const sourceGraphic = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(Black, BlendMode.Dst),\n null\n );\n const sourceAlpha = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(Black, BlendMode.SrcIn),\n null\n );\n const f1 = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(color, BlendMode.SrcOut),\n null\n );\n const f2 = Skia.ImageFilter.MakeOffset(dx, dy, f1);\n const f3 = Skia.ImageFilter.MakeBlur(sigmaX, sigmaY, TileMode.Decal, f2);\n const f4 = Skia.ImageFilter.MakeBlend(BlendMode.SrcIn, sourceAlpha, f3);\n if (shadowOnly) {\n return f4;\n }\n return Skia.ImageFilter.MakeCompose(\n input,\n Skia.ImageFilter.MakeBlend(BlendMode.SrcOver, sourceGraphic, f4)\n );\n};\n\nexport abstract class ImageFilterDeclaration<P> extends JsiDeclarationNode<P> {\n constructor(ctx: NodeContext, type: NodeType, props: P) {\n super(ctx, DeclarationType.ImageFilter, type, props);\n }\n\n protected input(ctx: DeclarationContext) {\n return ctx.imageFilters.pop() ?? null;\n }\n\n protected composeAndPush(ctx: DeclarationContext, imgf1: SkImageFilter) {\n ctx.save();\n this.decorateChildren(ctx);\n let imgf2 = ctx.imageFilters.popAllAsOne();\n const cf = ctx.colorFilters.popAllAsOne();\n ctx.restore();\n if (cf) {\n imgf2 = this.Skia.ImageFilter.MakeCompose(\n imgf2 ?? null,\n this.Skia.ImageFilter.MakeColorFilter(cf, null)\n );\n }\n const imgf = imgf2\n ? this.Skia.ImageFilter.MakeCompose(imgf1, imgf2)\n : imgf1;\n ctx.imageFilters.push(imgf);\n }\n}\n\nexport class OffsetImageFilterNode extends ImageFilterDeclaration<OffsetImageFilterProps> {\n constructor(ctx: NodeContext, props: OffsetImageFilterProps) {\n super(ctx, NodeType.OffsetImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n this.decorateChildren(ctx);\n const { x, y } = this.props;\n const imgf = this.Skia.ImageFilter.MakeOffset(x, y, null);\n this.composeAndPush(ctx, imgf);\n }\n}\n\nexport class DisplacementMapImageFilterNode extends ImageFilterDeclaration<DisplacementMapImageFilterProps> {\n constructor(ctx: NodeContext, props: DisplacementMapImageFilterProps) {\n super(ctx, NodeType.DisplacementMapImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n this.decorateChildren(ctx);\n const { channelX, channelY, scale } = this.props;\n const shader = ctx.shaders.pop();\n if (!shader) {\n throw new Error(\"DisplacementMap expects a shader as child\");\n }\n const map = this.Skia.ImageFilter.MakeShader(shader, null);\n const imgf = this.Skia.ImageFilter.MakeDisplacementMap(\n ColorChannel[enumKey(channelX)],\n ColorChannel[enumKey(channelY)],\n scale,\n map,\n this.input(ctx)\n );\n ctx.imageFilters.push(imgf);\n }\n}\n\nexport class BlurImageFilterNode extends ImageFilterDeclaration<BlurImageFilterProps> {\n constructor(ctx: NodeContext, props: BlurImageFilterProps) {\n super(ctx, NodeType.BlurImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { mode, blur } = this.props;\n const sigma = processRadius(this.Skia, blur);\n const imgf = this.Skia.ImageFilter.MakeBlur(\n sigma.x,\n sigma.y,\n TileMode[enumKey(mode)],\n this.input(ctx)\n );\n this.composeAndPush(ctx, imgf);\n }\n}\n\nexport class DropShadowImageFilterNode extends ImageFilterDeclaration<DropShadowImageFilterProps> {\n constructor(ctx: NodeContext, props: DropShadowImageFilterProps) {\n super(ctx, NodeType.DropShadowImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { dx, dy, blur, shadowOnly, color: cl, inner } = this.props;\n const color = this.Skia.Color(cl);\n let factory;\n if (inner) {\n factory = MakeInnerShadow.bind(null, this.Skia, shadowOnly);\n } else {\n factory = shadowOnly\n ? this.Skia.ImageFilter.MakeDropShadowOnly.bind(this.Skia.ImageFilter)\n : this.Skia.ImageFilter.MakeDropShadow.bind(this.Skia.ImageFilter);\n }\n const imgf = factory(dx, dy, blur, blur, color, this.input(ctx));\n this.composeAndPush(ctx, imgf);\n }\n}\n\nexport enum MorphologyOperator {\n Erode,\n Dilate,\n}\n\nexport class MorphologyImageFilterNode extends ImageFilterDeclaration<MorphologyImageFilterProps> {\n constructor(ctx: NodeContext, props: MorphologyImageFilterProps) {\n super(ctx, NodeType.MorphologyImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { operator } = this.props;\n const r = processRadius(this.Skia, this.props.radius);\n let imgf;\n if (MorphologyOperator[enumKey(operator)] === MorphologyOperator.Erode) {\n imgf = this.Skia.ImageFilter.MakeErode(r.x, r.y, this.input(ctx));\n } else {\n imgf = this.Skia.ImageFilter.MakeDilate(r.x, r.y, this.input(ctx));\n }\n this.composeAndPush(ctx, imgf);\n }\n}\n\nexport class BlendImageFilterNode extends ImageFilterDeclaration<BlendImageFilterProps> {\n constructor(ctx: NodeContext, props: BlendImageFilterProps) {\n super(ctx, NodeType.BlendImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { mode } = this.props;\n const a = ctx.imageFilters.pop();\n const b = ctx.imageFilters.pop();\n if (!a || !b) {\n throw new Error(\"BlendImageFilter requires two image filters\");\n }\n const imgf = this.Skia.ImageFilter.MakeBlend(mode, a, b);\n this.composeAndPush(ctx, imgf);\n }\n}\n\nexport class RuntimeShaderImageFilterNode extends ImageFilterDeclaration<RuntimeShaderImageFilterProps> {\n constructor(ctx: NodeContext, props: RuntimeShaderImageFilterProps) {\n super(ctx, NodeType.RuntimeShaderImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { source, uniforms } = this.props;\n const rtb = this.Skia.RuntimeShaderBuilder(source);\n if (uniforms) {\n processUniforms(source, uniforms, rtb);\n }\n const imgf = this.Skia.ImageFilter.MakeRuntimeShader(\n rtb,\n null,\n this.input(ctx)\n );\n this.composeAndPush(ctx, imgf);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_types","require","_types2","_datatypes","_Node","Black","Float32Array","of","MakeInnerShadow","Skia","shadowOnly","dx","dy","sigmaX","sigmaY","color","input","sourceGraphic","ImageFilter","MakeColorFilter","ColorFilter","MakeBlend","BlendMode","Dst","sourceAlpha","SrcIn","f1","SrcOut","f2","MakeOffset","f3","MakeBlur","TileMode","Decal","f4","MakeCompose","SrcOver","ImageFilterDeclaration","JsiDeclarationNode","constructor","ctx","type","props","_ctx$imageFilters$pop","imageFilters","pop","composeAndPush","imgf1","save","decorateChildren","imgf2","popAllAsOne","cf","colorFilters","restore","_imgf","imgf","push","exports","OffsetImageFilterNode","NodeType","OffsetImageFilter","decorate","x","y","DisplacementMapImageFilterNode","DisplacementMapImageFilter","channelX","channelY","scale","shader","shaders","Error","map","MakeShader","MakeDisplacementMap","ColorChannel","enumKey","BlurImageFilterNode","BlurImageFilter","mode","blur","sigma","processRadius","DropShadowImageFilterNode","DropShadowImageFilter","cl","inner","Color","factory","bind","MakeDropShadowOnly","MakeDropShadow","MorphologyOperator","MorphologyImageFilterNode","MorphologyImageFilter","operator","r","radius","Erode","MakeErode","MakeDilate","BlendImageFilterNode","BlendImageFilter","a","b","RuntimeShaderImageFilterNode","RuntimeShaderImageFilter","source","uniforms","rtb","RuntimeShaderBuilder","processUniforms","MakeRuntimeShader"],"sources":["ImageFilters.ts"],"sourcesContent":["import type { SkImageFilter, SkColor, Skia } from \"../../../skia/types\";\nimport {\n BlendMode,\n ColorChannel,\n processUniforms,\n TileMode,\n} from \"../../../skia/types\";\nimport type {\n BlendImageFilterProps,\n BlurImageFilterProps,\n DeclarationContext,\n DisplacementMapImageFilterProps,\n DropShadowImageFilterProps,\n MorphologyImageFilterProps,\n OffsetImageFilterProps,\n RuntimeShaderImageFilterProps,\n} from \"../../types\";\nimport { NodeType } from \"../../types\";\nimport { processRadius, enumKey } from \"../datatypes\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\n\nconst Black = Float32Array.of(0, 0, 0, 1);\n\nconst MakeInnerShadow = (\n Skia: Skia,\n shadowOnly: boolean | undefined,\n dx: number,\n dy: number,\n sigmaX: number,\n sigmaY: number,\n color: SkColor,\n input: SkImageFilter | null\n) => {\n const sourceGraphic = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(Black, BlendMode.Dst),\n null\n );\n const sourceAlpha = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(Black, BlendMode.SrcIn),\n null\n );\n const f1 = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(color, BlendMode.SrcOut),\n null\n );\n const f2 = Skia.ImageFilter.MakeOffset(dx, dy, f1);\n const f3 = Skia.ImageFilter.MakeBlur(sigmaX, sigmaY, TileMode.Decal, f2);\n const f4 = Skia.ImageFilter.MakeBlend(BlendMode.SrcIn, sourceAlpha, f3);\n if (shadowOnly) {\n return f4;\n }\n return Skia.ImageFilter.MakeCompose(\n input,\n Skia.ImageFilter.MakeBlend(BlendMode.SrcOver, sourceGraphic, f4)\n );\n};\n\nexport abstract class ImageFilterDeclaration<P> extends JsiDeclarationNode<P> {\n constructor(ctx: NodeContext, type: NodeType, props: P) {\n super(ctx, type, props);\n }\n\n protected input(ctx: DeclarationContext) {\n return ctx.imageFilters.pop() ?? null;\n }\n\n protected composeAndPush(ctx: DeclarationContext, imgf1: SkImageFilter) {\n ctx.save();\n this.decorateChildren(ctx);\n let imgf2 = ctx.imageFilters.popAllAsOne();\n const cf = ctx.colorFilters.popAllAsOne();\n ctx.restore();\n if (cf) {\n imgf2 = this.Skia.ImageFilter.MakeCompose(\n imgf2 ?? null,\n this.Skia.ImageFilter.MakeColorFilter(cf, null)\n );\n }\n const imgf = imgf2\n ? this.Skia.ImageFilter.MakeCompose(imgf1, imgf2)\n : imgf1;\n ctx.imageFilters.push(imgf);\n }\n}\n\nexport class OffsetImageFilterNode extends ImageFilterDeclaration<OffsetImageFilterProps> {\n constructor(ctx: NodeContext, props: OffsetImageFilterProps) {\n super(ctx, NodeType.OffsetImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n this.decorateChildren(ctx);\n const { x, y } = this.props;\n const imgf = this.Skia.ImageFilter.MakeOffset(x, y, null);\n this.composeAndPush(ctx, imgf);\n }\n}\n\nexport class DisplacementMapImageFilterNode extends ImageFilterDeclaration<DisplacementMapImageFilterProps> {\n constructor(ctx: NodeContext, props: DisplacementMapImageFilterProps) {\n super(ctx, NodeType.DisplacementMapImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n this.decorateChildren(ctx);\n const { channelX, channelY, scale } = this.props;\n const shader = ctx.shaders.pop();\n if (!shader) {\n throw new Error(\"DisplacementMap expects a shader as child\");\n }\n const map = this.Skia.ImageFilter.MakeShader(shader, null);\n const imgf = this.Skia.ImageFilter.MakeDisplacementMap(\n ColorChannel[enumKey(channelX)],\n ColorChannel[enumKey(channelY)],\n scale,\n map,\n this.input(ctx)\n );\n ctx.imageFilters.push(imgf);\n }\n}\n\nexport class BlurImageFilterNode extends ImageFilterDeclaration<BlurImageFilterProps> {\n constructor(ctx: NodeContext, props: BlurImageFilterProps) {\n super(ctx, NodeType.BlurImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { mode, blur } = this.props;\n const sigma = processRadius(this.Skia, blur);\n const imgf = this.Skia.ImageFilter.MakeBlur(\n sigma.x,\n sigma.y,\n TileMode[enumKey(mode)],\n this.input(ctx)\n );\n this.composeAndPush(ctx, imgf);\n }\n}\n\nexport class DropShadowImageFilterNode extends ImageFilterDeclaration<DropShadowImageFilterProps> {\n constructor(ctx: NodeContext, props: DropShadowImageFilterProps) {\n super(ctx, NodeType.DropShadowImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { dx, dy, blur, shadowOnly, color: cl, inner } = this.props;\n const color = this.Skia.Color(cl);\n let factory;\n if (inner) {\n factory = MakeInnerShadow.bind(null, this.Skia, shadowOnly);\n } else {\n factory = shadowOnly\n ? this.Skia.ImageFilter.MakeDropShadowOnly.bind(this.Skia.ImageFilter)\n : this.Skia.ImageFilter.MakeDropShadow.bind(this.Skia.ImageFilter);\n }\n const imgf = factory(dx, dy, blur, blur, color, this.input(ctx));\n this.composeAndPush(ctx, imgf);\n }\n}\n\nexport enum MorphologyOperator {\n Erode,\n Dilate,\n}\n\nexport class MorphologyImageFilterNode extends ImageFilterDeclaration<MorphologyImageFilterProps> {\n constructor(ctx: NodeContext, props: MorphologyImageFilterProps) {\n super(ctx, NodeType.MorphologyImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { operator } = this.props;\n const r = processRadius(this.Skia, this.props.radius);\n let imgf;\n if (MorphologyOperator[enumKey(operator)] === MorphologyOperator.Erode) {\n imgf = this.Skia.ImageFilter.MakeErode(r.x, r.y, this.input(ctx));\n } else {\n imgf = this.Skia.ImageFilter.MakeDilate(r.x, r.y, this.input(ctx));\n }\n this.composeAndPush(ctx, imgf);\n }\n}\n\nexport class BlendImageFilterNode extends ImageFilterDeclaration<BlendImageFilterProps> {\n constructor(ctx: NodeContext, props: BlendImageFilterProps) {\n super(ctx, NodeType.BlendImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { mode } = this.props;\n const a = ctx.imageFilters.pop();\n const b = ctx.imageFilters.pop();\n if (!a || !b) {\n throw new Error(\"BlendImageFilter requires two image filters\");\n }\n const imgf = this.Skia.ImageFilter.MakeBlend(mode, a, b);\n this.composeAndPush(ctx, imgf);\n }\n}\n\nexport class RuntimeShaderImageFilterNode extends ImageFilterDeclaration<RuntimeShaderImageFilterProps> {\n constructor(ctx: NodeContext, props: RuntimeShaderImageFilterProps) {\n super(ctx, NodeType.RuntimeShaderImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { source, uniforms } = this.props;\n const rtb = this.Skia.RuntimeShaderBuilder(source);\n if (uniforms) {\n processUniforms(source, uniforms, rtb);\n }\n const imgf = this.Skia.ImageFilter.MakeRuntimeShader(\n rtb,\n null,\n this.input(ctx)\n );\n this.composeAndPush(ctx, imgf);\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAgBA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAH,OAAA;AAEA,MAAMI,KAAK,GAAGC,YAAY,CAACC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAEzC,MAAMC,eAAe,GAAGA,CACtBC,IAAU,EACVC,UAA+B,EAC/BC,EAAU,EACVC,EAAU,EACVC,MAAc,EACdC,MAAc,EACdC,KAAc,EACdC,KAA2B,KACxB;EACH,MAAMC,aAAa,GAAGR,IAAI,CAACS,WAAW,CAACC,eAAe,CACpDV,IAAI,CAACW,WAAW,CAACC,SAAS,CAAChB,KAAK,EAAEiB,gBAAS,CAACC,GAAG,CAAC,EAChD,IACF,CAAC;EACD,MAAMC,WAAW,GAAGf,IAAI,CAACS,WAAW,CAACC,eAAe,CAClDV,IAAI,CAACW,WAAW,CAACC,SAAS,CAAChB,KAAK,EAAEiB,gBAAS,CAACG,KAAK,CAAC,EAClD,IACF,CAAC;EACD,MAAMC,EAAE,GAAGjB,IAAI,CAACS,WAAW,CAACC,eAAe,CACzCV,IAAI,CAACW,WAAW,CAACC,SAAS,CAACN,KAAK,EAAEO,gBAAS,CAACK,MAAM,CAAC,EACnD,IACF,CAAC;EACD,MAAMC,EAAE,GAAGnB,IAAI,CAACS,WAAW,CAACW,UAAU,CAAClB,EAAE,EAAEC,EAAE,EAAEc,EAAE,CAAC;EAClD,MAAMI,EAAE,GAAGrB,IAAI,CAACS,WAAW,CAACa,QAAQ,CAAClB,MAAM,EAAEC,MAAM,EAAEkB,eAAQ,CAACC,KAAK,EAAEL,EAAE,CAAC;EACxE,MAAMM,EAAE,GAAGzB,IAAI,CAACS,WAAW,CAACG,SAAS,CAACC,gBAAS,CAACG,KAAK,EAAED,WAAW,EAAEM,EAAE,CAAC;EACvE,IAAIpB,UAAU,EAAE;IACd,OAAOwB,EAAE;EACX;EACA,OAAOzB,IAAI,CAACS,WAAW,CAACiB,WAAW,CACjCnB,KAAK,EACLP,IAAI,CAACS,WAAW,CAACG,SAAS,CAACC,gBAAS,CAACc,OAAO,EAAEnB,aAAa,EAAEiB,EAAE,CACjE,CAAC;AACH,CAAC;AAEM,MAAeG,sBAAsB,SAAYC,wBAAkB,CAAI;EAC5EC,WAAWA,CAACC,GAAgB,EAAEC,IAAc,EAAEC,KAAQ,EAAE;IACtD,KAAK,CAACF,GAAG,EAAEC,IAAI,EAAEC,KAAK,CAAC;EACzB;EAEU1B,KAAKA,CAACwB,GAAuB,EAAE;IAAA,IAAAG,qBAAA;IACvC,QAAAA,qBAAA,GAAOH,GAAG,CAACI,YAAY,CAACC,GAAG,CAAC,CAAC,cAAAF,qBAAA,cAAAA,qBAAA,GAAI,IAAI;EACvC;EAEUG,cAAcA,CAACN,GAAuB,EAAEO,KAAoB,EAAE;IACtEP,GAAG,CAACQ,IAAI,CAAC,CAAC;IACV,IAAI,CAACC,gBAAgB,CAACT,GAAG,CAAC;IAC1B,IAAIU,KAAK,GAAGV,GAAG,CAACI,YAAY,CAACO,WAAW,CAAC,CAAC;IAC1C,MAAMC,EAAE,GAAGZ,GAAG,CAACa,YAAY,CAACF,WAAW,CAAC,CAAC;IACzCX,GAAG,CAACc,OAAO,CAAC,CAAC;IACb,IAAIF,EAAE,EAAE;MAAA,IAAAG,KAAA;MACNL,KAAK,GAAG,IAAI,CAACzC,IAAI,CAACS,WAAW,CAACiB,WAAW,EAAAoB,KAAA,GACvCL,KAAK,cAAAK,KAAA,cAAAA,KAAA,GAAI,IAAI,EACb,IAAI,CAAC9C,IAAI,CAACS,WAAW,CAACC,eAAe,CAACiC,EAAE,EAAE,IAAI,CAChD,CAAC;IACH;IACA,MAAMI,IAAI,GAAGN,KAAK,GACd,IAAI,CAACzC,IAAI,CAACS,WAAW,CAACiB,WAAW,CAACY,KAAK,EAAEG,KAAK,CAAC,GAC/CH,KAAK;IACTP,GAAG,CAACI,YAAY,CAACa,IAAI,CAACD,IAAI,CAAC;EAC7B;AACF;AAACE,OAAA,CAAArB,sBAAA,GAAAA,sBAAA;AAEM,MAAMsB,qBAAqB,SAAStB,sBAAsB,CAAyB;EACxFE,WAAWA,CAACC,GAAgB,EAAEE,KAA6B,EAAE;IAC3D,KAAK,CAACF,GAAG,EAAEoB,gBAAQ,CAACC,iBAAiB,EAAEnB,KAAK,CAAC;EAC/C;EAEAoB,QAAQA,CAACtB,GAAuB,EAAE;IAChC,IAAI,CAACS,gBAAgB,CAACT,GAAG,CAAC;IAC1B,MAAM;MAAEuB,CAAC;MAAEC;IAAE,CAAC,GAAG,IAAI,CAACtB,KAAK;IAC3B,MAAMc,IAAI,GAAG,IAAI,CAAC/C,IAAI,CAACS,WAAW,CAACW,UAAU,CAACkC,CAAC,EAAEC,CAAC,EAAE,IAAI,CAAC;IACzD,IAAI,CAAClB,cAAc,CAACN,GAAG,EAAEgB,IAAI,CAAC;EAChC;AACF;AAACE,OAAA,CAAAC,qBAAA,GAAAA,qBAAA;AAEM,MAAMM,8BAA8B,SAAS5B,sBAAsB,CAAkC;EAC1GE,WAAWA,CAACC,GAAgB,EAAEE,KAAsC,EAAE;IACpE,KAAK,CAACF,GAAG,EAAEoB,gBAAQ,CAACM,0BAA0B,EAAExB,KAAK,CAAC;EACxD;EAEAoB,QAAQA,CAACtB,GAAuB,EAAE;IAChC,IAAI,CAACS,gBAAgB,CAACT,GAAG,CAAC;IAC1B,MAAM;MAAE2B,QAAQ;MAAEC,QAAQ;MAAEC;IAAM,CAAC,GAAG,IAAI,CAAC3B,KAAK;IAChD,MAAM4B,MAAM,GAAG9B,GAAG,CAAC+B,OAAO,CAAC1B,GAAG,CAAC,CAAC;IAChC,IAAI,CAACyB,MAAM,EAAE;MACX,MAAM,IAAIE,KAAK,CAAC,2CAA2C,CAAC;IAC9D;IACA,MAAMC,GAAG,GAAG,IAAI,CAAChE,IAAI,CAACS,WAAW,CAACwD,UAAU,CAACJ,MAAM,EAAE,IAAI,CAAC;IAC1D,MAAMd,IAAI,GAAG,IAAI,CAAC/C,IAAI,CAACS,WAAW,CAACyD,mBAAmB,CACpDC,mBAAY,CAAC,IAAAC,kBAAO,EAACV,QAAQ,CAAC,CAAC,EAC/BS,mBAAY,CAAC,IAAAC,kBAAO,EAACT,QAAQ,CAAC,CAAC,EAC/BC,KAAK,EACLI,GAAG,EACH,IAAI,CAACzD,KAAK,CAACwB,GAAG,CAChB,CAAC;IACDA,GAAG,CAACI,YAAY,CAACa,IAAI,CAACD,IAAI,CAAC;EAC7B;AACF;AAACE,OAAA,CAAAO,8BAAA,GAAAA,8BAAA;AAEM,MAAMa,mBAAmB,SAASzC,sBAAsB,CAAuB;EACpFE,WAAWA,CAACC,GAAgB,EAAEE,KAA2B,EAAE;IACzD,KAAK,CAACF,GAAG,EAAEoB,gBAAQ,CAACmB,eAAe,EAAErC,KAAK,CAAC;EAC7C;EAEAoB,QAAQA,CAACtB,GAAuB,EAAE;IAChC,MAAM;MAAEwC,IAAI;MAAEC;IAAK,CAAC,GAAG,IAAI,CAACvC,KAAK;IACjC,MAAMwC,KAAK,GAAG,IAAAC,wBAAa,EAAC,IAAI,CAAC1E,IAAI,EAAEwE,IAAI,CAAC;IAC5C,MAAMzB,IAAI,GAAG,IAAI,CAAC/C,IAAI,CAACS,WAAW,CAACa,QAAQ,CACzCmD,KAAK,CAACnB,CAAC,EACPmB,KAAK,CAAClB,CAAC,EACPhC,eAAQ,CAAC,IAAA6C,kBAAO,EAACG,IAAI,CAAC,CAAC,EACvB,IAAI,CAAChE,KAAK,CAACwB,GAAG,CAChB,CAAC;IACD,IAAI,CAACM,cAAc,CAACN,GAAG,EAAEgB,IAAI,CAAC;EAChC;AACF;AAACE,OAAA,CAAAoB,mBAAA,GAAAA,mBAAA;AAEM,MAAMM,yBAAyB,SAAS/C,sBAAsB,CAA6B;EAChGE,WAAWA,CAACC,GAAgB,EAAEE,KAAiC,EAAE;IAC/D,KAAK,CAACF,GAAG,EAAEoB,gBAAQ,CAACyB,qBAAqB,EAAE3C,KAAK,CAAC;EACnD;EAEAoB,QAAQA,CAACtB,GAAuB,EAAE;IAChC,MAAM;MAAE7B,EAAE;MAAEC,EAAE;MAAEqE,IAAI;MAAEvE,UAAU;MAAEK,KAAK,EAAEuE,EAAE;MAAEC;IAAM,CAAC,GAAG,IAAI,CAAC7C,KAAK;IACjE,MAAM3B,KAAK,GAAG,IAAI,CAACN,IAAI,CAAC+E,KAAK,CAACF,EAAE,CAAC;IACjC,IAAIG,OAAO;IACX,IAAIF,KAAK,EAAE;MACTE,OAAO,GAAGjF,eAAe,CAACkF,IAAI,CAAC,IAAI,EAAE,IAAI,CAACjF,IAAI,EAAEC,UAAU,CAAC;IAC7D,CAAC,MAAM;MACL+E,OAAO,GAAG/E,UAAU,GAChB,IAAI,CAACD,IAAI,CAACS,WAAW,CAACyE,kBAAkB,CAACD,IAAI,CAAC,IAAI,CAACjF,IAAI,CAACS,WAAW,CAAC,GACpE,IAAI,CAACT,IAAI,CAACS,WAAW,CAAC0E,cAAc,CAACF,IAAI,CAAC,IAAI,CAACjF,IAAI,CAACS,WAAW,CAAC;IACtE;IACA,MAAMsC,IAAI,GAAGiC,OAAO,CAAC9E,EAAE,EAAEC,EAAE,EAAEqE,IAAI,EAAEA,IAAI,EAAElE,KAAK,EAAE,IAAI,CAACC,KAAK,CAACwB,GAAG,CAAC,CAAC;IAChE,IAAI,CAACM,cAAc,CAACN,GAAG,EAAEgB,IAAI,CAAC;EAChC;AACF;AAACE,OAAA,CAAA0B,yBAAA,GAAAA,yBAAA;AAAA,IAEWS,kBAAkB,GAAAnC,OAAA,CAAAmC,kBAAA,0BAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA;AAKvB,MAAMC,yBAAyB,SAASzD,sBAAsB,CAA6B;EAChGE,WAAWA,CAACC,GAAgB,EAAEE,KAAiC,EAAE;IAC/D,KAAK,CAACF,GAAG,EAAEoB,gBAAQ,CAACmC,qBAAqB,EAAErD,KAAK,CAAC;EACnD;EAEAoB,QAAQA,CAACtB,GAAuB,EAAE;IAChC,MAAM;MAAEwD;IAAS,CAAC,GAAG,IAAI,CAACtD,KAAK;IAC/B,MAAMuD,CAAC,GAAG,IAAAd,wBAAa,EAAC,IAAI,CAAC1E,IAAI,EAAE,IAAI,CAACiC,KAAK,CAACwD,MAAM,CAAC;IACrD,IAAI1C,IAAI;IACR,IAAIqC,kBAAkB,CAAC,IAAAhB,kBAAO,EAACmB,QAAQ,CAAC,CAAC,KAAKH,kBAAkB,CAACM,KAAK,EAAE;MACtE3C,IAAI,GAAG,IAAI,CAAC/C,IAAI,CAACS,WAAW,CAACkF,SAAS,CAACH,CAAC,CAAClC,CAAC,EAAEkC,CAAC,CAACjC,CAAC,EAAE,IAAI,CAAChD,KAAK,CAACwB,GAAG,CAAC,CAAC;IACnE,CAAC,MAAM;MACLgB,IAAI,GAAG,IAAI,CAAC/C,IAAI,CAACS,WAAW,CAACmF,UAAU,CAACJ,CAAC,CAAClC,CAAC,EAAEkC,CAAC,CAACjC,CAAC,EAAE,IAAI,CAAChD,KAAK,CAACwB,GAAG,CAAC,CAAC;IACpE;IACA,IAAI,CAACM,cAAc,CAACN,GAAG,EAAEgB,IAAI,CAAC;EAChC;AACF;AAACE,OAAA,CAAAoC,yBAAA,GAAAA,yBAAA;AAEM,MAAMQ,oBAAoB,SAASjE,sBAAsB,CAAwB;EACtFE,WAAWA,CAACC,GAAgB,EAAEE,KAA4B,EAAE;IAC1D,KAAK,CAACF,GAAG,EAAEoB,gBAAQ,CAAC2C,gBAAgB,EAAE7D,KAAK,CAAC;EAC9C;EAEAoB,QAAQA,CAACtB,GAAuB,EAAE;IAChC,MAAM;MAAEwC;IAAK,CAAC,GAAG,IAAI,CAACtC,KAAK;IAC3B,MAAM8D,CAAC,GAAGhE,GAAG,CAACI,YAAY,CAACC,GAAG,CAAC,CAAC;IAChC,MAAM4D,CAAC,GAAGjE,GAAG,CAACI,YAAY,CAACC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC2D,CAAC,IAAI,CAACC,CAAC,EAAE;MACZ,MAAM,IAAIjC,KAAK,CAAC,6CAA6C,CAAC;IAChE;IACA,MAAMhB,IAAI,GAAG,IAAI,CAAC/C,IAAI,CAACS,WAAW,CAACG,SAAS,CAAC2D,IAAI,EAAEwB,CAAC,EAAEC,CAAC,CAAC;IACxD,IAAI,CAAC3D,cAAc,CAACN,GAAG,EAAEgB,IAAI,CAAC;EAChC;AACF;AAACE,OAAA,CAAA4C,oBAAA,GAAAA,oBAAA;AAEM,MAAMI,4BAA4B,SAASrE,sBAAsB,CAAgC;EACtGE,WAAWA,CAACC,GAAgB,EAAEE,KAAoC,EAAE;IAClE,KAAK,CAACF,GAAG,EAAEoB,gBAAQ,CAAC+C,wBAAwB,EAAEjE,KAAK,CAAC;EACtD;EAEAoB,QAAQA,CAACtB,GAAuB,EAAE;IAChC,MAAM;MAAEoE,MAAM;MAAEC;IAAS,CAAC,GAAG,IAAI,CAACnE,KAAK;IACvC,MAAMoE,GAAG,GAAG,IAAI,CAACrG,IAAI,CAACsG,oBAAoB,CAACH,MAAM,CAAC;IAClD,IAAIC,QAAQ,EAAE;MACZ,IAAAG,sBAAe,EAACJ,MAAM,EAAEC,QAAQ,EAAEC,GAAG,CAAC;IACxC;IACA,MAAMtD,IAAI,GAAG,IAAI,CAAC/C,IAAI,CAACS,WAAW,CAAC+F,iBAAiB,CAClDH,GAAG,EACH,IAAI,EACJ,IAAI,CAAC9F,KAAK,CAACwB,GAAG,CAChB,CAAC;IACD,IAAI,CAACM,cAAc,CAACN,GAAG,EAAEgB,IAAI,CAAC;EAChC;AACF;AAACE,OAAA,CAAAgD,4BAAA,GAAAA,4BAAA"}
@@ -10,7 +10,7 @@ var _types2 = require("../../types");
10
10
  var _datatypes = require("../datatypes");
11
11
  class BlurMaskFilterNode extends _Node.JsiDeclarationNode {
12
12
  constructor(ctx, props) {
13
- super(ctx, _types2.DeclarationType.MaskFilter, _types2.NodeType.BlurMaskFilter, props);
13
+ super(ctx, _types2.NodeType.BlurMaskFilter, props);
14
14
  }
15
15
  decorate(ctx) {
16
16
  const {
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_Node","_types2","_datatypes","BlurMaskFilterNode","JsiDeclarationNode","constructor","ctx","props","DeclarationType","MaskFilter","NodeType","BlurMaskFilter","decorate","style","blur","respectCTM","mf","Skia","MakeBlur","BlurStyle","enumKey","maskFilters","push","exports"],"sources":["MaskFilters.ts"],"sourcesContent":["import { BlurStyle } from \"../../../skia/types\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\nimport type { BlurMaskFilterProps } from \"../../types\";\nimport { DeclarationType, NodeType } from \"../../types\";\nimport { enumKey } from \"../datatypes\";\nimport type { DeclarationContext } from \"../../types/DeclarationContext\";\n\nexport class BlurMaskFilterNode extends JsiDeclarationNode<BlurMaskFilterProps> {\n constructor(ctx: NodeContext, props: BlurMaskFilterProps) {\n super(ctx, DeclarationType.MaskFilter, NodeType.BlurMaskFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { style, blur, respectCTM } = this.props;\n const mf = this.Skia.MaskFilter.MakeBlur(\n BlurStyle[enumKey(style)],\n blur,\n respectCTM\n );\n ctx.maskFilters.push(mf);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAGO,MAAMI,kBAAkB,SAASC,wBAAkB,CAAsB;EAC9EC,WAAWA,CAACC,GAAgB,EAAEC,KAA0B,EAAE;IACxD,KAAK,CAACD,GAAG,EAAEE,uBAAe,CAACC,UAAU,EAAEC,gBAAQ,CAACC,cAAc,EAAEJ,KAAK,CAAC;EACxE;EAEAK,QAAQA,CAACN,GAAuB,EAAE;IAChC,MAAM;MAAEO,KAAK;MAAEC,IAAI;MAAEC;IAAW,CAAC,GAAG,IAAI,CAACR,KAAK;IAC9C,MAAMS,EAAE,GAAG,IAAI,CAACC,IAAI,CAACR,UAAU,CAACS,QAAQ,CACtCC,gBAAS,CAAC,IAAAC,kBAAO,EAACP,KAAK,CAAC,CAAC,EACzBC,IAAI,EACJC,UACF,CAAC;IACDT,GAAG,CAACe,WAAW,CAACC,IAAI,CAACN,EAAE,CAAC;EAC1B;AACF;AAACO,OAAA,CAAApB,kBAAA,GAAAA,kBAAA"}
1
+ {"version":3,"names":["_types","require","_Node","_types2","_datatypes","BlurMaskFilterNode","JsiDeclarationNode","constructor","ctx","props","NodeType","BlurMaskFilter","decorate","style","blur","respectCTM","mf","Skia","MaskFilter","MakeBlur","BlurStyle","enumKey","maskFilters","push","exports"],"sources":["MaskFilters.ts"],"sourcesContent":["import { BlurStyle } from \"../../../skia/types\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\nimport type { BlurMaskFilterProps } from \"../../types\";\nimport { NodeType } from \"../../types\";\nimport { enumKey } from \"../datatypes\";\nimport type { DeclarationContext } from \"../../types/DeclarationContext\";\n\nexport class BlurMaskFilterNode extends JsiDeclarationNode<BlurMaskFilterProps> {\n constructor(ctx: NodeContext, props: BlurMaskFilterProps) {\n super(ctx, NodeType.BlurMaskFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { style, blur, respectCTM } = this.props;\n const mf = this.Skia.MaskFilter.MakeBlur(\n BlurStyle[enumKey(style)],\n blur,\n respectCTM\n );\n ctx.maskFilters.push(mf);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAGO,MAAMI,kBAAkB,SAASC,wBAAkB,CAAsB;EAC9EC,WAAWA,CAACC,GAAgB,EAAEC,KAA0B,EAAE;IACxD,KAAK,CAACD,GAAG,EAAEE,gBAAQ,CAACC,cAAc,EAAEF,KAAK,CAAC;EAC5C;EAEAG,QAAQA,CAACJ,GAAuB,EAAE;IAChC,MAAM;MAAEK,KAAK;MAAEC,IAAI;MAAEC;IAAW,CAAC,GAAG,IAAI,CAACN,KAAK;IAC9C,MAAMO,EAAE,GAAG,IAAI,CAACC,IAAI,CAACC,UAAU,CAACC,QAAQ,CACtCC,gBAAS,CAAC,IAAAC,kBAAO,EAACR,KAAK,CAAC,CAAC,EACzBC,IAAI,EACJC,UACF,CAAC;IACDP,GAAG,CAACc,WAAW,CAACC,IAAI,CAACP,EAAE,CAAC;EAC1B;AACF;AAACQ,OAAA,CAAAnB,kBAAA,GAAAA,kBAAA"}
@@ -12,7 +12,7 @@ var _datatypes = require("../datatypes");
12
12
  var _DeclarationContext = require("../../types/DeclarationContext");
13
13
  class PathEffectDeclaration extends _Node.JsiDeclarationNode {
14
14
  constructor(ctx, type, props) {
15
- super(ctx, _types2.DeclarationType.PathEffect, type, props);
15
+ super(ctx, type, props);
16
16
  }
17
17
  composeAndPush(ctx, pe1) {
18
18
  ctx.save();
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_Node","_types2","_Enum","_datatypes","_DeclarationContext","PathEffectDeclaration","JsiDeclarationNode","constructor","ctx","type","props","DeclarationType","PathEffect","composeAndPush","pe1","save","decorateChildren","pe2","pathEffects","popAllAsOne","restore","pe","Skia","MakeCompose","push","DiscretePathEffectNode","NodeType","DiscretePathEffect","decorate","length","deviation","seed","MakeDiscrete","exports","Path2DPathEffectNode","Path2DPathEffect","matrix","path","processPath","MakePath2D","Error","DashPathEffectNode","DashPathEffect","intervals","phase","MakeDash","CornerPathEffectNode","CornerPathEffect","r","MakeCorner","SumPathEffectNode","SumPathEffect","pes","popAll","composeDeclarations","MakeSum","bind","Line2DPathEffectNode","Line2DPathEffect","width","MakeLine2D","Path1DPathEffectNode","Path1DPathEffect","advance","style","MakePath1D","Path1DEffectStyle","enumKey"],"sources":["PathEffects.ts"],"sourcesContent":["import { Path1DEffectStyle } from \"../../../skia/types\";\nimport type { SkPathEffect } from \"../../../skia/types\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\nimport type {\n CornerPathEffectProps,\n DashPathEffectProps,\n DiscretePathEffectProps,\n Line2DPathEffectProps,\n Path1DPathEffectProps,\n Path2DPathEffectProps,\n} from \"../../types\";\nimport { DeclarationType, NodeType } from \"../../types\";\nimport { enumKey } from \"../datatypes/Enum\";\nimport { processPath } from \"../datatypes\";\nimport type { DeclarationContext } from \"../../types/DeclarationContext\";\nimport { composeDeclarations } from \"../../types/DeclarationContext\";\n\nabstract class PathEffectDeclaration<P> extends JsiDeclarationNode<P> {\n constructor(ctx: NodeContext, type: NodeType, props: P) {\n super(ctx, DeclarationType.PathEffect, type, props);\n }\n\n protected composeAndPush(ctx: DeclarationContext, pe1: SkPathEffect) {\n ctx.save();\n this.decorateChildren(ctx);\n const pe2 = ctx.pathEffects.popAllAsOne();\n ctx.restore();\n const pe = pe2 ? this.Skia.PathEffect.MakeCompose(pe1, pe2) : pe1;\n ctx.pathEffects.push(pe);\n }\n}\n\nexport class DiscretePathEffectNode extends PathEffectDeclaration<DiscretePathEffectProps> {\n constructor(ctx: NodeContext, props: DiscretePathEffectProps) {\n super(ctx, NodeType.DiscretePathEffect, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { length, deviation, seed } = this.props;\n const pe = this.Skia.PathEffect.MakeDiscrete(length, deviation, seed);\n this.composeAndPush(ctx, pe);\n }\n}\n\nexport class Path2DPathEffectNode extends PathEffectDeclaration<Path2DPathEffectProps> {\n constructor(ctx: NodeContext, props: Path2DPathEffectProps) {\n super(ctx, NodeType.Path2DPathEffect, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { matrix } = this.props;\n const path = processPath(this.Skia, this.props.path);\n const pe = this.Skia.PathEffect.MakePath2D(matrix, path);\n if (pe === null) {\n throw new Error(\"Path2DPathEffectNode: invalid path\");\n }\n this.composeAndPush(ctx, pe);\n }\n}\n\nexport class DashPathEffectNode extends PathEffectDeclaration<DashPathEffectProps> {\n constructor(ctx: NodeContext, props: DashPathEffectProps) {\n super(ctx, NodeType.DashPathEffect, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { intervals, phase } = this.props;\n const pe = this.Skia.PathEffect.MakeDash(intervals, phase);\n this.composeAndPush(ctx, pe);\n }\n}\n\nexport class CornerPathEffectNode extends PathEffectDeclaration<CornerPathEffectProps> {\n constructor(ctx: NodeContext, props: CornerPathEffectProps) {\n super(ctx, NodeType.CornerPathEffect, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { r } = this.props;\n const pe = this.Skia.PathEffect.MakeCorner(r);\n if (pe === null) {\n throw new Error(\"CornerPathEffectNode: couldn't create path effect\");\n }\n this.composeAndPush(ctx, pe);\n }\n}\n\nexport class SumPathEffectNode extends PathEffectDeclaration<null> {\n constructor(ctx: NodeContext) {\n super(ctx, NodeType.SumPathEffect, null);\n }\n\n decorate(ctx: DeclarationContext) {\n this.decorateChildren(ctx);\n const pes = ctx.pathEffects.popAll();\n const pe = composeDeclarations(\n pes,\n this.Skia.PathEffect.MakeSum.bind(this.Skia.PathEffect)\n );\n ctx.pathEffects.push(pe);\n }\n}\n\nexport class Line2DPathEffectNode extends PathEffectDeclaration<Line2DPathEffectProps> {\n constructor(ctx: NodeContext, props: Line2DPathEffectProps) {\n super(ctx, NodeType.Line2DPathEffect, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { width, matrix } = this.props;\n const pe = this.Skia.PathEffect.MakeLine2D(width, matrix);\n if (pe === null) {\n throw new Error(\"Line2DPathEffectNode: could not create path effect\");\n }\n this.composeAndPush(ctx, pe);\n }\n}\n\nexport class Path1DPathEffectNode extends PathEffectDeclaration<Path1DPathEffectProps> {\n constructor(ctx: NodeContext, props: Path1DPathEffectProps) {\n super(ctx, NodeType.Path1DPathEffect, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { advance, phase, style } = this.props;\n const path = processPath(this.Skia, this.props.path);\n const pe = this.Skia.PathEffect.MakePath1D(\n path,\n advance,\n phase,\n Path1DEffectStyle[enumKey(style)]\n );\n if (pe === null) {\n throw new Error(\"Path1DPathEffectNode: could not create path effect\");\n }\n this.composeAndPush(ctx, pe);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA,IAAAC,KAAA,GAAAD,OAAA;AASA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAEA,IAAAK,mBAAA,GAAAL,OAAA;AAEA,MAAeM,qBAAqB,SAAYC,wBAAkB,CAAI;EACpEC,WAAWA,CAACC,GAAgB,EAAEC,IAAc,EAAEC,KAAQ,EAAE;IACtD,KAAK,CAACF,GAAG,EAAEG,uBAAe,CAACC,UAAU,EAAEH,IAAI,EAAEC,KAAK,CAAC;EACrD;EAEUG,cAAcA,CAACL,GAAuB,EAAEM,GAAiB,EAAE;IACnEN,GAAG,CAACO,IAAI,CAAC,CAAC;IACV,IAAI,CAACC,gBAAgB,CAACR,GAAG,CAAC;IAC1B,MAAMS,GAAG,GAAGT,GAAG,CAACU,WAAW,CAACC,WAAW,CAAC,CAAC;IACzCX,GAAG,CAACY,OAAO,CAAC,CAAC;IACb,MAAMC,EAAE,GAAGJ,GAAG,GAAG,IAAI,CAACK,IAAI,CAACV,UAAU,CAACW,WAAW,CAACT,GAAG,EAAEG,GAAG,CAAC,GAAGH,GAAG;IACjEN,GAAG,CAACU,WAAW,CAACM,IAAI,CAACH,EAAE,CAAC;EAC1B;AACF;AAEO,MAAMI,sBAAsB,SAASpB,qBAAqB,CAA0B;EACzFE,WAAWA,CAACC,GAAgB,EAAEE,KAA8B,EAAE;IAC5D,KAAK,CAACF,GAAG,EAAEkB,gBAAQ,CAACC,kBAAkB,EAAEjB,KAAK,CAAC;EAChD;EAEAkB,QAAQA,CAACpB,GAAuB,EAAE;IAChC,MAAM;MAAEqB,MAAM;MAAEC,SAAS;MAAEC;IAAK,CAAC,GAAG,IAAI,CAACrB,KAAK;IAC9C,MAAMW,EAAE,GAAG,IAAI,CAACC,IAAI,CAACV,UAAU,CAACoB,YAAY,CAACH,MAAM,EAAEC,SAAS,EAAEC,IAAI,CAAC;IACrE,IAAI,CAAClB,cAAc,CAACL,GAAG,EAAEa,EAAE,CAAC;EAC9B;AACF;AAACY,OAAA,CAAAR,sBAAA,GAAAA,sBAAA;AAEM,MAAMS,oBAAoB,SAAS7B,qBAAqB,CAAwB;EACrFE,WAAWA,CAACC,GAAgB,EAAEE,KAA4B,EAAE;IAC1D,KAAK,CAACF,GAAG,EAAEkB,gBAAQ,CAACS,gBAAgB,EAAEzB,KAAK,CAAC;EAC9C;EAEAkB,QAAQA,CAACpB,GAAuB,EAAE;IAChC,MAAM;MAAE4B;IAAO,CAAC,GAAG,IAAI,CAAC1B,KAAK;IAC7B,MAAM2B,IAAI,GAAG,IAAAC,sBAAW,EAAC,IAAI,CAAChB,IAAI,EAAE,IAAI,CAACZ,KAAK,CAAC2B,IAAI,CAAC;IACpD,MAAMhB,EAAE,GAAG,IAAI,CAACC,IAAI,CAACV,UAAU,CAAC2B,UAAU,CAACH,MAAM,EAAEC,IAAI,CAAC;IACxD,IAAIhB,EAAE,KAAK,IAAI,EAAE;MACf,MAAM,IAAImB,KAAK,CAAC,oCAAoC,CAAC;IACvD;IACA,IAAI,CAAC3B,cAAc,CAACL,GAAG,EAAEa,EAAE,CAAC;EAC9B;AACF;AAACY,OAAA,CAAAC,oBAAA,GAAAA,oBAAA;AAEM,MAAMO,kBAAkB,SAASpC,qBAAqB,CAAsB;EACjFE,WAAWA,CAACC,GAAgB,EAAEE,KAA0B,EAAE;IACxD,KAAK,CAACF,GAAG,EAAEkB,gBAAQ,CAACgB,cAAc,EAAEhC,KAAK,CAAC;EAC5C;EAEAkB,QAAQA,CAACpB,GAAuB,EAAE;IAChC,MAAM;MAAEmC,SAAS;MAAEC;IAAM,CAAC,GAAG,IAAI,CAAClC,KAAK;IACvC,MAAMW,EAAE,GAAG,IAAI,CAACC,IAAI,CAACV,UAAU,CAACiC,QAAQ,CAACF,SAAS,EAAEC,KAAK,CAAC;IAC1D,IAAI,CAAC/B,cAAc,CAACL,GAAG,EAAEa,EAAE,CAAC;EAC9B;AACF;AAACY,OAAA,CAAAQ,kBAAA,GAAAA,kBAAA;AAEM,MAAMK,oBAAoB,SAASzC,qBAAqB,CAAwB;EACrFE,WAAWA,CAACC,GAAgB,EAAEE,KAA4B,EAAE;IAC1D,KAAK,CAACF,GAAG,EAAEkB,gBAAQ,CAACqB,gBAAgB,EAAErC,KAAK,CAAC;EAC9C;EAEAkB,QAAQA,CAACpB,GAAuB,EAAE;IAChC,MAAM;MAAEwC;IAAE,CAAC,GAAG,IAAI,CAACtC,KAAK;IACxB,MAAMW,EAAE,GAAG,IAAI,CAACC,IAAI,CAACV,UAAU,CAACqC,UAAU,CAACD,CAAC,CAAC;IAC7C,IAAI3B,EAAE,KAAK,IAAI,EAAE;MACf,MAAM,IAAImB,KAAK,CAAC,mDAAmD,CAAC;IACtE;IACA,IAAI,CAAC3B,cAAc,CAACL,GAAG,EAAEa,EAAE,CAAC;EAC9B;AACF;AAACY,OAAA,CAAAa,oBAAA,GAAAA,oBAAA;AAEM,MAAMI,iBAAiB,SAAS7C,qBAAqB,CAAO;EACjEE,WAAWA,CAACC,GAAgB,EAAE;IAC5B,KAAK,CAACA,GAAG,EAAEkB,gBAAQ,CAACyB,aAAa,EAAE,IAAI,CAAC;EAC1C;EAEAvB,QAAQA,CAACpB,GAAuB,EAAE;IAChC,IAAI,CAACQ,gBAAgB,CAACR,GAAG,CAAC;IAC1B,MAAM4C,GAAG,GAAG5C,GAAG,CAACU,WAAW,CAACmC,MAAM,CAAC,CAAC;IACpC,MAAMhC,EAAE,GAAG,IAAAiC,uCAAmB,EAC5BF,GAAG,EACH,IAAI,CAAC9B,IAAI,CAACV,UAAU,CAAC2C,OAAO,CAACC,IAAI,CAAC,IAAI,CAAClC,IAAI,CAACV,UAAU,CACxD,CAAC;IACDJ,GAAG,CAACU,WAAW,CAACM,IAAI,CAACH,EAAE,CAAC;EAC1B;AACF;AAACY,OAAA,CAAAiB,iBAAA,GAAAA,iBAAA;AAEM,MAAMO,oBAAoB,SAASpD,qBAAqB,CAAwB;EACrFE,WAAWA,CAACC,GAAgB,EAAEE,KAA4B,EAAE;IAC1D,KAAK,CAACF,GAAG,EAAEkB,gBAAQ,CAACgC,gBAAgB,EAAEhD,KAAK,CAAC;EAC9C;EAEAkB,QAAQA,CAACpB,GAAuB,EAAE;IAChC,MAAM;MAAEmD,KAAK;MAAEvB;IAAO,CAAC,GAAG,IAAI,CAAC1B,KAAK;IACpC,MAAMW,EAAE,GAAG,IAAI,CAACC,IAAI,CAACV,UAAU,CAACgD,UAAU,CAACD,KAAK,EAAEvB,MAAM,CAAC;IACzD,IAAIf,EAAE,KAAK,IAAI,EAAE;MACf,MAAM,IAAImB,KAAK,CAAC,oDAAoD,CAAC;IACvE;IACA,IAAI,CAAC3B,cAAc,CAACL,GAAG,EAAEa,EAAE,CAAC;EAC9B;AACF;AAACY,OAAA,CAAAwB,oBAAA,GAAAA,oBAAA;AAEM,MAAMI,oBAAoB,SAASxD,qBAAqB,CAAwB;EACrFE,WAAWA,CAACC,GAAgB,EAAEE,KAA4B,EAAE;IAC1D,KAAK,CAACF,GAAG,EAAEkB,gBAAQ,CAACoC,gBAAgB,EAAEpD,KAAK,CAAC;EAC9C;EAEAkB,QAAQA,CAACpB,GAAuB,EAAE;IAChC,MAAM;MAAEuD,OAAO;MAAEnB,KAAK;MAAEoB;IAAM,CAAC,GAAG,IAAI,CAACtD,KAAK;IAC5C,MAAM2B,IAAI,GAAG,IAAAC,sBAAW,EAAC,IAAI,CAAChB,IAAI,EAAE,IAAI,CAACZ,KAAK,CAAC2B,IAAI,CAAC;IACpD,MAAMhB,EAAE,GAAG,IAAI,CAACC,IAAI,CAACV,UAAU,CAACqD,UAAU,CACxC5B,IAAI,EACJ0B,OAAO,EACPnB,KAAK,EACLsB,wBAAiB,CAAC,IAAAC,aAAO,EAACH,KAAK,CAAC,CAClC,CAAC;IACD,IAAI3C,EAAE,KAAK,IAAI,EAAE;MACf,MAAM,IAAImB,KAAK,CAAC,oDAAoD,CAAC;IACvE;IACA,IAAI,CAAC3B,cAAc,CAACL,GAAG,EAAEa,EAAE,CAAC;EAC9B;AACF;AAACY,OAAA,CAAA4B,oBAAA,GAAAA,oBAAA"}
1
+ {"version":3,"names":["_types","require","_Node","_types2","_Enum","_datatypes","_DeclarationContext","PathEffectDeclaration","JsiDeclarationNode","constructor","ctx","type","props","composeAndPush","pe1","save","decorateChildren","pe2","pathEffects","popAllAsOne","restore","pe","Skia","PathEffect","MakeCompose","push","DiscretePathEffectNode","NodeType","DiscretePathEffect","decorate","length","deviation","seed","MakeDiscrete","exports","Path2DPathEffectNode","Path2DPathEffect","matrix","path","processPath","MakePath2D","Error","DashPathEffectNode","DashPathEffect","intervals","phase","MakeDash","CornerPathEffectNode","CornerPathEffect","r","MakeCorner","SumPathEffectNode","SumPathEffect","pes","popAll","composeDeclarations","MakeSum","bind","Line2DPathEffectNode","Line2DPathEffect","width","MakeLine2D","Path1DPathEffectNode","Path1DPathEffect","advance","style","MakePath1D","Path1DEffectStyle","enumKey"],"sources":["PathEffects.ts"],"sourcesContent":["import { Path1DEffectStyle } from \"../../../skia/types\";\nimport type { SkPathEffect } from \"../../../skia/types\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\nimport type {\n CornerPathEffectProps,\n DashPathEffectProps,\n DiscretePathEffectProps,\n Line2DPathEffectProps,\n Path1DPathEffectProps,\n Path2DPathEffectProps,\n} from \"../../types\";\nimport { NodeType } from \"../../types\";\nimport { enumKey } from \"../datatypes/Enum\";\nimport { processPath } from \"../datatypes\";\nimport type { DeclarationContext } from \"../../types/DeclarationContext\";\nimport { composeDeclarations } from \"../../types/DeclarationContext\";\n\nabstract class PathEffectDeclaration<P> extends JsiDeclarationNode<P> {\n constructor(ctx: NodeContext, type: NodeType, props: P) {\n super(ctx, type, props);\n }\n\n protected composeAndPush(ctx: DeclarationContext, pe1: SkPathEffect) {\n ctx.save();\n this.decorateChildren(ctx);\n const pe2 = ctx.pathEffects.popAllAsOne();\n ctx.restore();\n const pe = pe2 ? this.Skia.PathEffect.MakeCompose(pe1, pe2) : pe1;\n ctx.pathEffects.push(pe);\n }\n}\n\nexport class DiscretePathEffectNode extends PathEffectDeclaration<DiscretePathEffectProps> {\n constructor(ctx: NodeContext, props: DiscretePathEffectProps) {\n super(ctx, NodeType.DiscretePathEffect, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { length, deviation, seed } = this.props;\n const pe = this.Skia.PathEffect.MakeDiscrete(length, deviation, seed);\n this.composeAndPush(ctx, pe);\n }\n}\n\nexport class Path2DPathEffectNode extends PathEffectDeclaration<Path2DPathEffectProps> {\n constructor(ctx: NodeContext, props: Path2DPathEffectProps) {\n super(ctx, NodeType.Path2DPathEffect, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { matrix } = this.props;\n const path = processPath(this.Skia, this.props.path);\n const pe = this.Skia.PathEffect.MakePath2D(matrix, path);\n if (pe === null) {\n throw new Error(\"Path2DPathEffectNode: invalid path\");\n }\n this.composeAndPush(ctx, pe);\n }\n}\n\nexport class DashPathEffectNode extends PathEffectDeclaration<DashPathEffectProps> {\n constructor(ctx: NodeContext, props: DashPathEffectProps) {\n super(ctx, NodeType.DashPathEffect, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { intervals, phase } = this.props;\n const pe = this.Skia.PathEffect.MakeDash(intervals, phase);\n this.composeAndPush(ctx, pe);\n }\n}\n\nexport class CornerPathEffectNode extends PathEffectDeclaration<CornerPathEffectProps> {\n constructor(ctx: NodeContext, props: CornerPathEffectProps) {\n super(ctx, NodeType.CornerPathEffect, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { r } = this.props;\n const pe = this.Skia.PathEffect.MakeCorner(r);\n if (pe === null) {\n throw new Error(\"CornerPathEffectNode: couldn't create path effect\");\n }\n this.composeAndPush(ctx, pe);\n }\n}\n\nexport class SumPathEffectNode extends PathEffectDeclaration<null> {\n constructor(ctx: NodeContext) {\n super(ctx, NodeType.SumPathEffect, null);\n }\n\n decorate(ctx: DeclarationContext) {\n this.decorateChildren(ctx);\n const pes = ctx.pathEffects.popAll();\n const pe = composeDeclarations(\n pes,\n this.Skia.PathEffect.MakeSum.bind(this.Skia.PathEffect)\n );\n ctx.pathEffects.push(pe);\n }\n}\n\nexport class Line2DPathEffectNode extends PathEffectDeclaration<Line2DPathEffectProps> {\n constructor(ctx: NodeContext, props: Line2DPathEffectProps) {\n super(ctx, NodeType.Line2DPathEffect, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { width, matrix } = this.props;\n const pe = this.Skia.PathEffect.MakeLine2D(width, matrix);\n if (pe === null) {\n throw new Error(\"Line2DPathEffectNode: could not create path effect\");\n }\n this.composeAndPush(ctx, pe);\n }\n}\n\nexport class Path1DPathEffectNode extends PathEffectDeclaration<Path1DPathEffectProps> {\n constructor(ctx: NodeContext, props: Path1DPathEffectProps) {\n super(ctx, NodeType.Path1DPathEffect, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { advance, phase, style } = this.props;\n const path = processPath(this.Skia, this.props.path);\n const pe = this.Skia.PathEffect.MakePath1D(\n path,\n advance,\n phase,\n Path1DEffectStyle[enumKey(style)]\n );\n if (pe === null) {\n throw new Error(\"Path1DPathEffectNode: could not create path effect\");\n }\n this.composeAndPush(ctx, pe);\n }\n}\n"],"mappings":"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"}
@@ -10,7 +10,7 @@ var _types2 = require("../../types");
10
10
  var _datatypes = require("../datatypes");
11
11
  class ShaderDeclaration extends _Node.JsiDeclarationNode {
12
12
  constructor(ctx, type, props) {
13
- super(ctx, _types2.DeclarationType.Shader, type, props);
13
+ super(ctx, type, props);
14
14
  }
15
15
  }
16
16
  exports.ShaderDeclaration = ShaderDeclaration;