@visactor/vrender-kits 0.9.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/README.md +9 -0
  2. package/cjs/canvas/contributions/canvas-module.d.ts +2 -0
  3. package/cjs/canvas/contributions/canvas-module.js +20 -0
  4. package/cjs/canvas/contributions/canvas-module.js.map +1 -0
  5. package/cjs/canvas/contributions/node/canvas.d.ts +44 -0
  6. package/cjs/canvas/contributions/node/canvas.js +100 -0
  7. package/cjs/canvas/contributions/node/canvas.js.map +1 -0
  8. package/cjs/canvas/contributions/node/context.d.ts +7 -0
  9. package/cjs/canvas/contributions/node/context.js +30 -0
  10. package/cjs/canvas/contributions/node/context.js.map +1 -0
  11. package/cjs/canvas/contributions/node/index.d.ts +2 -0
  12. package/cjs/canvas/contributions/node/index.js +21 -0
  13. package/cjs/canvas/contributions/node/index.js.map +1 -0
  14. package/cjs/canvas/contributions/node/modules.d.ts +3 -0
  15. package/cjs/canvas/contributions/node/modules.js +13 -0
  16. package/cjs/canvas/contributions/node/modules.js.map +1 -0
  17. package/cjs/canvas/index.d.ts +1 -0
  18. package/cjs/canvas/index.js +6 -0
  19. package/cjs/canvas/index.js.map +1 -0
  20. package/cjs/env/contributions/module.d.ts +3 -0
  21. package/cjs/env/contributions/module.js +12 -0
  22. package/cjs/env/contributions/module.js.map +1 -0
  23. package/cjs/env/contributions/node-contribution.d.ts +47 -0
  24. package/cjs/env/contributions/node-contribution.js +118 -0
  25. package/cjs/env/contributions/node-contribution.js.map +1 -0
  26. package/cjs/index-node.d.ts +5 -0
  27. package/cjs/index-node.js +25 -0
  28. package/cjs/index-node.js.map +1 -0
  29. package/cjs/index.d.ts +4 -0
  30. package/cjs/index.js +16 -0
  31. package/cjs/index.js.map +1 -0
  32. package/cjs/node-bind.d.ts +2 -0
  33. package/cjs/node-bind.js +20 -0
  34. package/cjs/node-bind.js.map +1 -0
  35. package/cjs/render/contributions/render-module.d.ts +1 -0
  36. package/cjs/render/contributions/render-module.js +1 -0
  37. package/cjs/render/contributions/render-module.js.map +1 -0
  38. package/cjs/render/contributions/rough/config.d.ts +2 -0
  39. package/cjs/render/contributions/rough/config.js +28 -0
  40. package/cjs/render/contributions/rough/config.js.map +1 -0
  41. package/cjs/render/contributions/rough/module.d.ts +3 -0
  42. package/cjs/render/contributions/rough/module.js +18 -0
  43. package/cjs/render/contributions/rough/module.js.map +1 -0
  44. package/cjs/render/contributions/rough/rough-arc.d.ts +10 -0
  45. package/cjs/render/contributions/rough/rough-arc.js +75 -0
  46. package/cjs/render/contributions/rough/rough-arc.js.map +1 -0
  47. package/cjs/render/contributions/rough/rough-area.d.ts +8 -0
  48. package/cjs/render/contributions/rough/rough-area.js +67 -0
  49. package/cjs/render/contributions/rough/rough-area.js.map +1 -0
  50. package/cjs/render/contributions/rough/rough-circle.d.ts +10 -0
  51. package/cjs/render/contributions/rough/rough-circle.js +55 -0
  52. package/cjs/render/contributions/rough/rough-circle.js.map +1 -0
  53. package/cjs/render/contributions/rough/rough-line.d.ts +8 -0
  54. package/cjs/render/contributions/rough/rough-line.js +68 -0
  55. package/cjs/render/contributions/rough/rough-line.js.map +1 -0
  56. package/cjs/render/contributions/rough/rough-path.d.ts +10 -0
  57. package/cjs/render/contributions/rough/rough-path.js +73 -0
  58. package/cjs/render/contributions/rough/rough-path.js.map +1 -0
  59. package/cjs/render/contributions/rough/rough-rect.d.ts +10 -0
  60. package/cjs/render/contributions/rough/rough-rect.js +77 -0
  61. package/cjs/render/contributions/rough/rough-rect.js.map +1 -0
  62. package/cjs/render/contributions/rough/rough-symbol.d.ts +10 -0
  63. package/cjs/render/contributions/rough/rough-symbol.js +79 -0
  64. package/cjs/render/contributions/rough/rough-symbol.js.map +1 -0
  65. package/cjs/window/contributions/modules.d.ts +3 -0
  66. package/cjs/window/contributions/modules.js +13 -0
  67. package/cjs/window/contributions/modules.js.map +1 -0
  68. package/cjs/window/contributions/node-contribution.d.ts +38 -0
  69. package/cjs/window/contributions/node-contribution.js +109 -0
  70. package/cjs/window/contributions/node-contribution.js.map +1 -0
  71. package/dist/vrender-kits.js.js +1 -0
  72. package/dist/vrender-kits.js.min.js +1 -0
  73. package/es/canvas/contributions/canvas-module.d.ts +2 -0
  74. package/es/canvas/contributions/canvas-module.js +6 -0
  75. package/es/canvas/contributions/canvas-module.js.map +1 -0
  76. package/es/canvas/contributions/node/canvas.d.ts +44 -0
  77. package/es/canvas/contributions/node/canvas.js +99 -0
  78. package/es/canvas/contributions/node/canvas.js.map +1 -0
  79. package/es/canvas/contributions/node/context.d.ts +7 -0
  80. package/es/canvas/contributions/node/context.js +31 -0
  81. package/es/canvas/contributions/node/context.js.map +1 -0
  82. package/es/canvas/contributions/node/index.d.ts +2 -0
  83. package/es/canvas/contributions/node/index.js +4 -0
  84. package/es/canvas/contributions/node/index.js.map +1 -0
  85. package/es/canvas/contributions/node/modules.d.ts +3 -0
  86. package/es/canvas/contributions/node/modules.js +13 -0
  87. package/es/canvas/contributions/node/modules.js.map +1 -0
  88. package/es/canvas/index.d.ts +1 -0
  89. package/es/canvas/index.js +2 -0
  90. package/es/canvas/index.js.map +1 -0
  91. package/es/env/contributions/module.d.ts +3 -0
  92. package/es/env/contributions/module.js +10 -0
  93. package/es/env/contributions/module.js.map +1 -0
  94. package/es/env/contributions/node-contribution.d.ts +47 -0
  95. package/es/env/contributions/node-contribution.js +94 -0
  96. package/es/env/contributions/node-contribution.js.map +1 -0
  97. package/es/index-node.d.ts +5 -0
  98. package/es/index-node.js +11 -0
  99. package/es/index-node.js.map +1 -0
  100. package/es/index.d.ts +4 -0
  101. package/es/index.js +10 -0
  102. package/es/index.js.map +1 -0
  103. package/es/node-bind.d.ts +2 -0
  104. package/es/node-bind.js +10 -0
  105. package/es/node-bind.js.map +1 -0
  106. package/es/render/contributions/render-module.d.ts +1 -0
  107. package/es/render/contributions/render-module.js +1 -0
  108. package/es/render/contributions/render-module.js.map +1 -0
  109. package/es/render/contributions/rough/config.d.ts +2 -0
  110. package/es/render/contributions/rough/config.js +24 -0
  111. package/es/render/contributions/rough/config.js.map +1 -0
  112. package/es/render/contributions/rough/module.d.ts +3 -0
  113. package/es/render/contributions/rough/module.js +28 -0
  114. package/es/render/contributions/rough/module.js.map +1 -0
  115. package/es/render/contributions/rough/rough-arc.d.ts +10 -0
  116. package/es/render/contributions/rough/rough-arc.js +71 -0
  117. package/es/render/contributions/rough/rough-arc.js.map +1 -0
  118. package/es/render/contributions/rough/rough-area.d.ts +8 -0
  119. package/es/render/contributions/rough/rough-area.js +64 -0
  120. package/es/render/contributions/rough/rough-area.js.map +1 -0
  121. package/es/render/contributions/rough/rough-circle.d.ts +10 -0
  122. package/es/render/contributions/rough/rough-circle.js +48 -0
  123. package/es/render/contributions/rough/rough-circle.js.map +1 -0
  124. package/es/render/contributions/rough/rough-line.d.ts +8 -0
  125. package/es/render/contributions/rough/rough-line.js +65 -0
  126. package/es/render/contributions/rough/rough-line.js.map +1 -0
  127. package/es/render/contributions/rough/rough-path.d.ts +10 -0
  128. package/es/render/contributions/rough/rough-path.js +69 -0
  129. package/es/render/contributions/rough/rough-path.js.map +1 -0
  130. package/es/render/contributions/rough/rough-rect.d.ts +10 -0
  131. package/es/render/contributions/rough/rough-rect.js +73 -0
  132. package/es/render/contributions/rough/rough-rect.js.map +1 -0
  133. package/es/render/contributions/rough/rough-symbol.d.ts +10 -0
  134. package/es/render/contributions/rough/rough-symbol.js +75 -0
  135. package/es/render/contributions/rough/rough-symbol.js.map +1 -0
  136. package/es/window/contributions/modules.d.ts +3 -0
  137. package/es/window/contributions/modules.js +10 -0
  138. package/es/window/contributions/modules.js.map +1 -0
  139. package/es/window/contributions/node-contribution.d.ts +38 -0
  140. package/es/window/contributions/node-contribution.js +107 -0
  141. package/es/window/contributions/node-contribution.js.map +1 -0
  142. package/package.json +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/render/contributions/rough/rough-path.ts"],"names":[],"mappings":"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","file":"rough-path.js","sourcesContent":["import { inject, injectable } from 'inversify';\nimport type {\n IGraphicRender,\n IRenderService,\n IGraphic,\n IContext2d,\n IMarkAttribute,\n IThemeAttribute,\n IGraphicAttribute,\n IPath,\n IDrawContext,\n IGraphicRenderDrawParams\n} from '@visactor/vrender';\nimport { PATH_NUMBER_TYPE, DefaultCanvasPathRender, getTheme } from '@visactor/vrender';\nimport rough from 'roughjs';\nimport { defaultRouthThemeSpec } from './config';\n\n@injectable()\nexport class RoughCanvasPathRender implements IGraphicRender {\n type: 'path';\n numberType: number;\n style: 'rough' = 'rough';\n\n constructor(\n @inject(DefaultCanvasPathRender)\n public readonly canvasRenderer: IGraphicRender\n ) {\n this.type = 'path';\n this.numberType = PATH_NUMBER_TYPE;\n }\n\n draw(path: IPath, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const { context } = drawContext;\n if (!context) {\n return;\n }\n\n // 获取到原生canvas\n const canvas = context.canvas.nativeCanvas;\n const rc = rough.canvas(canvas, {});\n\n context.highPerformanceSave();\n\n const pathAttribute = getTheme(path).path;\n context.transformFromMatrix(path.transMatrix, true);\n\n const {\n fill = pathAttribute.fill == null ? !!path.attribute.fillColor : pathAttribute.fill,\n stroke = pathAttribute.stroke == null ? !!path.attribute.strokeColor : pathAttribute.stroke,\n fillColor = pathAttribute.fillColor,\n strokeColor = pathAttribute.strokeColor,\n lineWidth = pathAttribute.lineWidth,\n path: p = pathAttribute.path,\n maxRandomnessOffset = defaultRouthThemeSpec.maxRandomnessOffset,\n roughness = defaultRouthThemeSpec.roughness,\n bowing = defaultRouthThemeSpec.bowing,\n curveFitting = defaultRouthThemeSpec.curveFitting,\n curveTightness = defaultRouthThemeSpec.curveTightness,\n curveStepCount = defaultRouthThemeSpec.curveStepCount,\n fillStyle = defaultRouthThemeSpec.fillStyle,\n fillWeight = defaultRouthThemeSpec.fillWeight,\n hachureAngle = defaultRouthThemeSpec.hachureAngle,\n hachureGap = defaultRouthThemeSpec.hachureGap,\n simplification = defaultRouthThemeSpec.simplification,\n dashOffset = defaultRouthThemeSpec.dashOffset,\n dashGap = defaultRouthThemeSpec.dashGap,\n zigzagOffset = defaultRouthThemeSpec.zigzagOffset,\n seed = defaultRouthThemeSpec.seed,\n fillLineDash = defaultRouthThemeSpec.fillLineDash,\n fillLineDashOffset = defaultRouthThemeSpec.fillLineDashOffset,\n disableMultiStroke = defaultRouthThemeSpec.disableMultiStroke,\n disableMultiStrokeFill = defaultRouthThemeSpec.disableMultiStrokeFill,\n preserveVertices = defaultRouthThemeSpec.preserveVertices,\n fixedDecimalPlaceDigits = defaultRouthThemeSpec.fixedDecimalPlaceDigits\n } = path.attribute as any;\n if (typeof p === 'string') {\n rc.path(p, {\n fill: fill ? (fillColor as string) : undefined,\n stroke: stroke ? (strokeColor as string) : undefined,\n strokeWidth: lineWidth,\n maxRandomnessOffset,\n roughness,\n bowing,\n curveFitting,\n curveTightness,\n curveStepCount,\n fillStyle,\n fillWeight,\n hachureAngle,\n hachureGap,\n simplification,\n dashOffset,\n dashGap,\n zigzagOffset,\n seed,\n fillLineDash,\n fillLineDashOffset,\n disableMultiStroke,\n disableMultiStrokeFill,\n preserveVertices,\n fixedDecimalPlaceDigits\n });\n }\n\n context.highPerformanceRestore();\n }\n drawShape(\n graphic: IGraphic,\n ctx: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ): void {\n if (this.canvasRenderer.drawShape) {\n return this.canvasRenderer.drawShape(graphic, ctx, x, y, drawContext, params, fillCb, strokeCb);\n }\n }\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import type { IGraphicRender, IRenderService, IRect, IGraphicAttribute, IContext2d, IGraphic, IMarkAttribute, IThemeAttribute, IDrawContext, IGraphicRenderDrawParams } from '@visactor/vrender';
2
+ export declare class RoughCanvasRectRender implements IGraphicRender {
3
+ readonly canvasRenderer: IGraphicRender;
4
+ type: 'rect';
5
+ numberType: number;
6
+ style: 'rough';
7
+ constructor(canvasRenderer: IGraphicRender);
8
+ draw(rect: IRect, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams): void;
9
+ drawShape(graphic: IGraphic, ctx: IContext2d, x: number, y: number, drawContext: IDrawContext, params?: IGraphicRenderDrawParams, fillCb?: (ctx: IContext2d, markAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean, strokeCb?: (ctx: IContext2d, markAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean): void;
10
+ }
@@ -0,0 +1,73 @@
1
+ var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
2
+ var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
3
+ if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
4
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
5
+ }, __metadata = this && this.__metadata || function(k, v) {
6
+ if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
7
+ }, __param = this && this.__param || function(paramIndex, decorator) {
8
+ return function(target, key) {
9
+ decorator(target, key, paramIndex);
10
+ };
11
+ };
12
+
13
+ import { inject, injectable } from "inversify";
14
+
15
+ import { RECT_NUMBER_TYPE, DefaultCanvasRectRender, getTheme } from "@visactor/vrender";
16
+
17
+ import rough from "roughjs";
18
+
19
+ import { defaultRouthThemeSpec } from "./config";
20
+
21
+ let RoughCanvasRectRender = class {
22
+ constructor(canvasRenderer) {
23
+ this.canvasRenderer = canvasRenderer, this.style = "rough", this.type = "rect",
24
+ this.numberType = RECT_NUMBER_TYPE;
25
+ }
26
+ draw(rect, renderService, drawContext, params) {
27
+ const {context: context} = drawContext;
28
+ if (!context) return;
29
+ const canvas = context.canvas.nativeCanvas, rc = rough.canvas(canvas);
30
+ context.highPerformanceSave();
31
+ const rectAttribute = getTheme(rect).rect;
32
+ let {x: x = rectAttribute.x, y: y = rectAttribute.y} = rect.attribute;
33
+ if (rect.transMatrix.onlyTranslate()) {
34
+ const {dx: dx = rectAttribute.dx, dy: dy = rectAttribute.dy} = rect.attribute;
35
+ x += dx, y += dy, context.setTransformForCurrent();
36
+ } else x = 0, y = 0, context.transformFromMatrix(rect.transMatrix, !0);
37
+ const {fill: fill = (null == rectAttribute.fill ? !!rect.attribute.fillColor : rectAttribute.fill), stroke: stroke = (null == rectAttribute.stroke ? !!rect.attribute.strokeColor : rectAttribute.stroke), fillColor: fillColor = rectAttribute.fillColor, strokeColor: strokeColor = rectAttribute.strokeColor, width: width = rectAttribute.width, height: height = rectAttribute.height, lineWidth: lineWidth = rectAttribute.lineWidth, maxRandomnessOffset: maxRandomnessOffset = defaultRouthThemeSpec.maxRandomnessOffset, roughness: roughness = defaultRouthThemeSpec.roughness, bowing: bowing = defaultRouthThemeSpec.bowing, curveFitting: curveFitting = defaultRouthThemeSpec.curveFitting, curveTightness: curveTightness = defaultRouthThemeSpec.curveTightness, curveStepCount: curveStepCount = defaultRouthThemeSpec.curveStepCount, fillStyle: fillStyle = defaultRouthThemeSpec.fillStyle, fillWeight: fillWeight = defaultRouthThemeSpec.fillWeight, hachureAngle: hachureAngle = defaultRouthThemeSpec.hachureAngle, hachureGap: hachureGap = defaultRouthThemeSpec.hachureGap, simplification: simplification = defaultRouthThemeSpec.simplification, dashOffset: dashOffset = defaultRouthThemeSpec.dashOffset, dashGap: dashGap = defaultRouthThemeSpec.dashGap, zigzagOffset: zigzagOffset = defaultRouthThemeSpec.zigzagOffset, seed: seed = defaultRouthThemeSpec.seed, fillLineDash: fillLineDash = defaultRouthThemeSpec.fillLineDash, fillLineDashOffset: fillLineDashOffset = defaultRouthThemeSpec.fillLineDashOffset, disableMultiStroke: disableMultiStroke = defaultRouthThemeSpec.disableMultiStroke, disableMultiStrokeFill: disableMultiStrokeFill = defaultRouthThemeSpec.disableMultiStrokeFill, preserveVertices: preserveVertices = defaultRouthThemeSpec.preserveVertices, fixedDecimalPlaceDigits: fixedDecimalPlaceDigits = defaultRouthThemeSpec.fixedDecimalPlaceDigits} = rect.attribute;
38
+ rc.rectangle(x, y, width, height, {
39
+ fill: fill ? fillColor : void 0,
40
+ stroke: stroke ? strokeColor : void 0,
41
+ strokeWidth: lineWidth,
42
+ maxRandomnessOffset: maxRandomnessOffset,
43
+ roughness: roughness,
44
+ bowing: bowing,
45
+ curveFitting: curveFitting,
46
+ curveTightness: curveTightness,
47
+ curveStepCount: curveStepCount,
48
+ fillStyle: fillStyle,
49
+ fillWeight: fillWeight,
50
+ hachureAngle: hachureAngle,
51
+ hachureGap: hachureGap,
52
+ simplification: simplification,
53
+ dashOffset: dashOffset,
54
+ dashGap: dashGap,
55
+ zigzagOffset: zigzagOffset,
56
+ seed: seed,
57
+ fillLineDash: fillLineDash,
58
+ fillLineDashOffset: fillLineDashOffset,
59
+ disableMultiStroke: disableMultiStroke,
60
+ disableMultiStrokeFill: disableMultiStrokeFill,
61
+ preserveVertices: preserveVertices,
62
+ fixedDecimalPlaceDigits: fixedDecimalPlaceDigits
63
+ }), context.highPerformanceRestore();
64
+ }
65
+ drawShape(graphic, ctx, x, y, drawContext, params, fillCb, strokeCb) {
66
+ if (this.canvasRenderer.drawShape) return this.canvasRenderer.drawShape(graphic, ctx, x, y, drawContext, params, fillCb, strokeCb);
67
+ }
68
+ };
69
+
70
+ RoughCanvasRectRender = __decorate([ injectable(), __param(0, inject(DefaultCanvasRectRender)), __metadata("design:paramtypes", [ Object ]) ], RoughCanvasRectRender);
71
+
72
+ export { RoughCanvasRectRender };
73
+ //# sourceMappingURL=rough-rect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/render/contributions/rough/rough-rect.ts"],"names":[],"mappings":"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","file":"rough-rect.js","sourcesContent":["import { inject, injectable } from 'inversify';\nimport type {\n IGraphicRender,\n IRenderService,\n IRect,\n IGraphicAttribute,\n IContext2d,\n IGraphic,\n IMarkAttribute,\n IThemeAttribute,\n IDrawContext,\n IGraphicRenderDrawParams\n} from '@visactor/vrender';\nimport { RECT_NUMBER_TYPE, DefaultCanvasRectRender, getTheme } from '@visactor/vrender';\nimport rough from 'roughjs';\nimport { defaultRouthThemeSpec } from './config';\n\n@injectable()\nexport class RoughCanvasRectRender implements IGraphicRender {\n type: 'rect';\n numberType: number;\n style: 'rough' = 'rough';\n\n constructor(\n @inject(DefaultCanvasRectRender)\n public readonly canvasRenderer: IGraphicRender\n ) {\n this.type = 'rect';\n this.numberType = RECT_NUMBER_TYPE;\n }\n\n draw(rect: IRect, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const { context } = drawContext;\n if (!context) {\n return;\n }\n // 获取到原生canvas\n const canvas = context.canvas.nativeCanvas;\n const rc = rough.canvas(canvas);\n\n context.highPerformanceSave();\n\n // const rectAttribute = graphicService.themeService.getCurrentTheme().rectAttribute;\n const rectAttribute = getTheme(rect).rect;\n let { x = rectAttribute.x, y = rectAttribute.y } = rect.attribute;\n if (!rect.transMatrix.onlyTranslate()) {\n // 性能较差\n x = 0;\n y = 0;\n context.transformFromMatrix(rect.transMatrix, true);\n } else {\n const { dx = rectAttribute.dx, dy = rectAttribute.dy } = rect.attribute;\n x += dx;\n y += dy;\n // 当前context有rotate/scale,重置matrix\n context.setTransformForCurrent();\n }\n\n const {\n fill = rectAttribute.fill == null ? !!rect.attribute.fillColor : rectAttribute.fill,\n stroke = rectAttribute.stroke == null ? !!rect.attribute.strokeColor : rectAttribute.stroke,\n fillColor = rectAttribute.fillColor,\n strokeColor = rectAttribute.strokeColor,\n width = rectAttribute.width,\n height = rectAttribute.height,\n lineWidth = rectAttribute.lineWidth,\n maxRandomnessOffset = defaultRouthThemeSpec.maxRandomnessOffset,\n roughness = defaultRouthThemeSpec.roughness,\n bowing = defaultRouthThemeSpec.bowing,\n curveFitting = defaultRouthThemeSpec.curveFitting,\n curveTightness = defaultRouthThemeSpec.curveTightness,\n curveStepCount = defaultRouthThemeSpec.curveStepCount,\n fillStyle = defaultRouthThemeSpec.fillStyle,\n fillWeight = defaultRouthThemeSpec.fillWeight,\n hachureAngle = defaultRouthThemeSpec.hachureAngle,\n hachureGap = defaultRouthThemeSpec.hachureGap,\n simplification = defaultRouthThemeSpec.simplification,\n dashOffset = defaultRouthThemeSpec.dashOffset,\n dashGap = defaultRouthThemeSpec.dashGap,\n zigzagOffset = defaultRouthThemeSpec.zigzagOffset,\n seed = defaultRouthThemeSpec.seed,\n fillLineDash = defaultRouthThemeSpec.fillLineDash,\n fillLineDashOffset = defaultRouthThemeSpec.fillLineDashOffset,\n disableMultiStroke = defaultRouthThemeSpec.disableMultiStroke,\n disableMultiStrokeFill = defaultRouthThemeSpec.disableMultiStrokeFill,\n preserveVertices = defaultRouthThemeSpec.preserveVertices,\n fixedDecimalPlaceDigits = defaultRouthThemeSpec.fixedDecimalPlaceDigits\n } = rect.attribute as any;\n rc.rectangle(x, y, width, height, {\n fill: fill ? (fillColor as string) : undefined,\n stroke: stroke ? (strokeColor as string) : undefined,\n strokeWidth: lineWidth,\n maxRandomnessOffset,\n roughness,\n bowing,\n curveFitting,\n curveTightness,\n curveStepCount,\n fillStyle,\n fillWeight,\n hachureAngle,\n hachureGap,\n simplification,\n dashOffset,\n dashGap,\n zigzagOffset,\n seed,\n fillLineDash,\n fillLineDashOffset,\n disableMultiStroke,\n disableMultiStrokeFill,\n preserveVertices,\n fixedDecimalPlaceDigits\n });\n\n context.highPerformanceRestore();\n }\n\n drawShape(\n graphic: IGraphic,\n ctx: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ): void {\n if (this.canvasRenderer.drawShape) {\n return this.canvasRenderer.drawShape(graphic, ctx, x, y, drawContext, params, fillCb, strokeCb);\n }\n }\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import type { IGraphicRender, IRenderService, ISymbol, IGraphicAttribute, IContext2d, IGraphic, IMarkAttribute, IThemeAttribute, IDrawContext, IGraphicRenderDrawParams } from '@visactor/vrender';
2
+ export declare class RoughCanvasSymbolRender implements IGraphicRender {
3
+ readonly canvasRenderer: IGraphicRender;
4
+ type: 'symbol';
5
+ numberType: number;
6
+ style: 'rough';
7
+ constructor(canvasRenderer: IGraphicRender);
8
+ draw(symbol: ISymbol, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams): void;
9
+ drawShape(graphic: IGraphic, ctx: IContext2d, x: number, y: number, drawContext: IDrawContext, params?: IGraphicRenderDrawParams, fillCb?: (ctx: IContext2d, markAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean, strokeCb?: (ctx: IContext2d, markAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean): void;
10
+ }
@@ -0,0 +1,75 @@
1
+ var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
2
+ var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
3
+ if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
4
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
5
+ }, __metadata = this && this.__metadata || function(k, v) {
6
+ if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
7
+ }, __param = this && this.__param || function(paramIndex, decorator) {
8
+ return function(target, key) {
9
+ decorator(target, key, paramIndex);
10
+ };
11
+ };
12
+
13
+ import { inject, injectable } from "inversify";
14
+
15
+ import { SYMBOL_NUMBER_TYPE, DefaultCanvasSymbolRender, getTheme, CustomPath2D } from "@visactor/vrender";
16
+
17
+ import rough from "roughjs";
18
+
19
+ import { defaultRouthThemeSpec } from "./config";
20
+
21
+ let RoughCanvasSymbolRender = class {
22
+ constructor(canvasRenderer) {
23
+ this.canvasRenderer = canvasRenderer, this.style = "rough", this.type = "symbol",
24
+ this.numberType = SYMBOL_NUMBER_TYPE;
25
+ }
26
+ draw(symbol, renderService, drawContext, params) {
27
+ const {context: context} = drawContext;
28
+ if (!context) return;
29
+ const canvas = context.canvas.nativeCanvas, rc = rough.canvas(canvas);
30
+ context.highPerformanceSave();
31
+ const symbolAttribute = getTheme(symbol).symbol;
32
+ let {x: x = symbolAttribute.x, y: y = symbolAttribute.y} = symbol.attribute;
33
+ if (symbol.transMatrix.onlyTranslate()) {
34
+ const {dx: dx = symbolAttribute.dx, dy: dy = symbolAttribute.dy} = symbol.attribute;
35
+ x += dx, y += dy, context.setTransformForCurrent();
36
+ } else x = 0, y = 0, context.transformFromMatrix(symbol.transMatrix, !0);
37
+ const parsedPath = symbol.getParsedPath();
38
+ if (!parsedPath) return;
39
+ const {fill: fill = (null == symbolAttribute.fill ? !!symbol.attribute.fillColor : symbolAttribute.fill), stroke: stroke = (null == symbolAttribute.stroke ? !!symbol.attribute.strokeColor : symbolAttribute.stroke), fillColor: fillColor = symbolAttribute.fillColor, strokeColor: strokeColor = symbolAttribute.strokeColor, size: size = symbolAttribute.size, lineWidth: lineWidth = symbolAttribute.lineWidth, maxRandomnessOffset: maxRandomnessOffset = defaultRouthThemeSpec.maxRandomnessOffset, roughness: roughness = defaultRouthThemeSpec.roughness, bowing: bowing = defaultRouthThemeSpec.bowing, curveFitting: curveFitting = defaultRouthThemeSpec.curveFitting, curveTightness: curveTightness = defaultRouthThemeSpec.curveTightness, curveStepCount: curveStepCount = defaultRouthThemeSpec.curveStepCount, fillStyle: fillStyle = defaultRouthThemeSpec.fillStyle, fillWeight: fillWeight = defaultRouthThemeSpec.fillWeight, hachureAngle: hachureAngle = defaultRouthThemeSpec.hachureAngle, hachureGap: hachureGap = defaultRouthThemeSpec.hachureGap, simplification: simplification = defaultRouthThemeSpec.simplification, dashOffset: dashOffset = defaultRouthThemeSpec.dashOffset, dashGap: dashGap = defaultRouthThemeSpec.dashGap, zigzagOffset: zigzagOffset = defaultRouthThemeSpec.zigzagOffset, seed: seed = defaultRouthThemeSpec.seed, fillLineDash: fillLineDash = defaultRouthThemeSpec.fillLineDash, fillLineDashOffset: fillLineDashOffset = defaultRouthThemeSpec.fillLineDashOffset, disableMultiStroke: disableMultiStroke = defaultRouthThemeSpec.disableMultiStroke, disableMultiStrokeFill: disableMultiStrokeFill = defaultRouthThemeSpec.disableMultiStrokeFill, preserveVertices: preserveVertices = defaultRouthThemeSpec.preserveVertices, fixedDecimalPlaceDigits: fixedDecimalPlaceDigits = defaultRouthThemeSpec.fixedDecimalPlaceDigits} = symbol.attribute, customPath = new CustomPath2D;
40
+ parsedPath.draw(customPath, size, x, y) && customPath.closePath(), rc.path(customPath.toString(), {
41
+ fill: fill ? fillColor : void 0,
42
+ stroke: stroke ? strokeColor : void 0,
43
+ strokeWidth: lineWidth,
44
+ maxRandomnessOffset: maxRandomnessOffset,
45
+ roughness: roughness,
46
+ bowing: bowing,
47
+ curveFitting: curveFitting,
48
+ curveTightness: curveTightness,
49
+ curveStepCount: curveStepCount,
50
+ fillStyle: fillStyle,
51
+ fillWeight: fillWeight,
52
+ hachureAngle: hachureAngle,
53
+ hachureGap: hachureGap,
54
+ simplification: simplification,
55
+ dashOffset: dashOffset,
56
+ dashGap: dashGap,
57
+ zigzagOffset: zigzagOffset,
58
+ seed: seed,
59
+ fillLineDash: fillLineDash,
60
+ fillLineDashOffset: fillLineDashOffset,
61
+ disableMultiStroke: disableMultiStroke,
62
+ disableMultiStrokeFill: disableMultiStrokeFill,
63
+ preserveVertices: preserveVertices,
64
+ fixedDecimalPlaceDigits: fixedDecimalPlaceDigits
65
+ }), context.highPerformanceRestore();
66
+ }
67
+ drawShape(graphic, ctx, x, y, drawContext, params, fillCb, strokeCb) {
68
+ if (this.canvasRenderer.drawShape) return this.canvasRenderer.drawShape(graphic, ctx, x, y, drawContext, params, fillCb, strokeCb);
69
+ }
70
+ };
71
+
72
+ RoughCanvasSymbolRender = __decorate([ injectable(), __param(0, inject(DefaultCanvasSymbolRender)), __metadata("design:paramtypes", [ Object ]) ], RoughCanvasSymbolRender);
73
+
74
+ export { RoughCanvasSymbolRender };
75
+ //# sourceMappingURL=rough-symbol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/render/contributions/rough/rough-symbol.ts"],"names":[],"mappings":"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","file":"rough-symbol.js","sourcesContent":["import { inject, injectable } from 'inversify';\nimport type {\n IGraphicRender,\n IRenderService,\n ISymbol,\n IGraphicAttribute,\n IContext2d,\n IGraphic,\n IMarkAttribute,\n IThemeAttribute,\n IDrawContext,\n IGraphicRenderDrawParams\n} from '@visactor/vrender';\nimport { SYMBOL_NUMBER_TYPE, DefaultCanvasSymbolRender, getTheme, CustomPath2D } from '@visactor/vrender';\nimport rough from 'roughjs';\nimport { defaultRouthThemeSpec } from './config';\n\n@injectable()\nexport class RoughCanvasSymbolRender implements IGraphicRender {\n type: 'symbol';\n numberType: number;\n style: 'rough' = 'rough';\n\n constructor(\n @inject(DefaultCanvasSymbolRender)\n public readonly canvasRenderer: IGraphicRender\n ) {\n this.type = 'symbol';\n this.numberType = SYMBOL_NUMBER_TYPE;\n }\n\n draw(symbol: ISymbol, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const { context } = drawContext;\n if (!context) {\n return;\n }\n // 获取到原生canvas\n const canvas = context.canvas.nativeCanvas;\n const rc = rough.canvas(canvas);\n\n context.highPerformanceSave();\n\n // const rectAttribute = graphicService.themeService.getCurrentTheme().rectAttribute;\n const symbolAttribute = getTheme(symbol).symbol;\n let { x = symbolAttribute.x, y = symbolAttribute.y } = symbol.attribute;\n if (!symbol.transMatrix.onlyTranslate()) {\n // 性能较差\n x = 0;\n y = 0;\n context.transformFromMatrix(symbol.transMatrix, true);\n } else {\n const { dx = symbolAttribute.dx, dy = symbolAttribute.dy } = symbol.attribute;\n x += dx;\n y += dy;\n // 当前context有rotate/scale,重置matrix\n context.setTransformForCurrent();\n }\n\n const parsedPath = symbol.getParsedPath();\n // todo: 考虑使用path\n if (!parsedPath) {\n return;\n }\n\n const {\n fill = symbolAttribute.fill == null ? !!symbol.attribute.fillColor : symbolAttribute.fill,\n stroke = symbolAttribute.stroke == null ? !!symbol.attribute.strokeColor : symbolAttribute.stroke,\n fillColor = symbolAttribute.fillColor,\n strokeColor = symbolAttribute.strokeColor,\n size = symbolAttribute.size,\n lineWidth = symbolAttribute.lineWidth,\n maxRandomnessOffset = defaultRouthThemeSpec.maxRandomnessOffset,\n roughness = defaultRouthThemeSpec.roughness,\n bowing = defaultRouthThemeSpec.bowing,\n curveFitting = defaultRouthThemeSpec.curveFitting,\n curveTightness = defaultRouthThemeSpec.curveTightness,\n curveStepCount = defaultRouthThemeSpec.curveStepCount,\n fillStyle = defaultRouthThemeSpec.fillStyle,\n fillWeight = defaultRouthThemeSpec.fillWeight,\n hachureAngle = defaultRouthThemeSpec.hachureAngle,\n hachureGap = defaultRouthThemeSpec.hachureGap,\n simplification = defaultRouthThemeSpec.simplification,\n dashOffset = defaultRouthThemeSpec.dashOffset,\n dashGap = defaultRouthThemeSpec.dashGap,\n zigzagOffset = defaultRouthThemeSpec.zigzagOffset,\n seed = defaultRouthThemeSpec.seed,\n fillLineDash = defaultRouthThemeSpec.fillLineDash,\n fillLineDashOffset = defaultRouthThemeSpec.fillLineDashOffset,\n disableMultiStroke = defaultRouthThemeSpec.disableMultiStroke,\n disableMultiStrokeFill = defaultRouthThemeSpec.disableMultiStrokeFill,\n preserveVertices = defaultRouthThemeSpec.preserveVertices,\n fixedDecimalPlaceDigits = defaultRouthThemeSpec.fixedDecimalPlaceDigits\n } = symbol.attribute as any;\n\n const customPath = new CustomPath2D();\n if (parsedPath.draw(customPath, size, x, y)) {\n customPath.closePath();\n }\n\n rc.path(customPath.toString(), {\n fill: fill ? (fillColor as string) : undefined,\n stroke: stroke ? (strokeColor as string) : undefined,\n strokeWidth: lineWidth,\n maxRandomnessOffset,\n roughness,\n bowing,\n curveFitting,\n curveTightness,\n curveStepCount,\n fillStyle,\n fillWeight,\n hachureAngle,\n hachureGap,\n simplification,\n dashOffset,\n dashGap,\n zigzagOffset,\n seed,\n fillLineDash,\n fillLineDashOffset,\n disableMultiStroke,\n disableMultiStrokeFill,\n preserveVertices,\n fixedDecimalPlaceDigits\n });\n\n context.highPerformanceRestore();\n }\n\n drawShape(\n graphic: IGraphic,\n ctx: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ): void {\n if (this.canvasRenderer.drawShape) {\n return this.canvasRenderer.drawShape(graphic, ctx, x, y, drawContext, params, fillCb, strokeCb);\n }\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import { ContainerModule } from 'inversify';
2
+ declare const _default: ContainerModule;
3
+ export default _default;
@@ -0,0 +1,10 @@
1
+ import { ContainerModule } from "inversify";
2
+
3
+ import { WindowHandlerContribution } from "@visactor/vrender";
4
+
5
+ import { NodeWindowHandlerContribution } from "./node-contribution";
6
+
7
+ export default new ContainerModule((bind => {
8
+ bind(NodeWindowHandlerContribution).toSelf().inSingletonScope(), bind(WindowHandlerContribution).toService(NodeWindowHandlerContribution);
9
+ }));
10
+ //# sourceMappingURL=modules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/window/contributions/modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAA4B,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAEpE,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;IACxC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAChE,IAAI,CAAC,yBAAyB,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;AAE3E,CAAC,CAAC,CAAC","file":"modules.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport { bindContributionProvider, WindowHandlerContribution } from '@visactor/vrender';\nimport { NodeWindowHandlerContribution } from './node-contribution';\n\nexport default new ContainerModule(bind => {\n bind(NodeWindowHandlerContribution).toSelf().inSingletonScope();\n bind(WindowHandlerContribution).toService(NodeWindowHandlerContribution);\n // bindContributionProvider(bind, WindowHandlerContribution);\n});\n"]}
@@ -0,0 +1,38 @@
1
+ import type { EnvType, IGlobal, IWindowHandlerContribution, IWindowParams, IContext2d, ICanvas, IDomRectLike } from '@visactor/vrender';
2
+ import { BaseWindowHandlerContribution } from '@visactor/vrender';
3
+ import type { IBoundsLike } from '@visactor/vutils';
4
+ export declare class NodeWindowHandlerContribution extends BaseWindowHandlerContribution implements IWindowHandlerContribution {
5
+ private readonly global;
6
+ type: EnvType;
7
+ canvas: ICanvas;
8
+ get container(): HTMLElement | null;
9
+ constructor(global: IGlobal);
10
+ getTitle(): string;
11
+ getWH(): {
12
+ width: number;
13
+ height: number;
14
+ };
15
+ getXY(): {
16
+ x: number;
17
+ y: number;
18
+ };
19
+ createWindow(params: IWindowParams): void;
20
+ private createWindowByConfig;
21
+ private createWindowByCanvas;
22
+ releaseWindow(): void;
23
+ resizeWindow(width: number, height: number): void;
24
+ setDpr(dpr: number): void;
25
+ getContext(): IContext2d;
26
+ getNativeHandler(): ICanvas;
27
+ getDpr(): number;
28
+ getImageBuffer(type?: string): any;
29
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
30
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
31
+ dispatchEvent(event: any): boolean;
32
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
33
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
34
+ getStyle(): CSSStyleDeclaration | Record<string, any>;
35
+ setStyle(style: CSSStyleDeclaration | Record<string, any>): void;
36
+ getBoundingClientRect(): IDomRectLike;
37
+ clearViewBox(vb: IBoundsLike, color?: string): void;
38
+ }
@@ -0,0 +1,107 @@
1
+ var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
2
+ var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
3
+ if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
4
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
5
+ }, __metadata = this && this.__metadata || function(k, v) {
6
+ if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
7
+ }, __param = this && this.__param || function(paramIndex, decorator) {
8
+ return function(target, key) {
9
+ decorator(target, key, paramIndex);
10
+ };
11
+ };
12
+
13
+ import { inject, injectable } from "inversify";
14
+
15
+ import { Generator, Global, BaseWindowHandlerContribution } from "@visactor/vrender";
16
+
17
+ import { NodeCanvas } from "../../canvas/contributions/node/canvas";
18
+
19
+ let NodeWindowHandlerContribution = class extends BaseWindowHandlerContribution {
20
+ get container() {
21
+ return null;
22
+ }
23
+ constructor(global) {
24
+ super(), this.global = global, this.type = "node";
25
+ }
26
+ getTitle() {
27
+ return "";
28
+ }
29
+ getWH() {
30
+ return {
31
+ width: this.canvas.displayWidth,
32
+ height: this.canvas.displayHeight
33
+ };
34
+ }
35
+ getXY() {
36
+ return {
37
+ x: 0,
38
+ y: 0
39
+ };
40
+ }
41
+ createWindow(params) {
42
+ params.canvas ? this.createWindowByCanvas(params) : this.createWindowByConfig(params);
43
+ }
44
+ createWindowByConfig(params) {
45
+ const nativeCanvas = this.global.createCanvas({
46
+ width: params.width,
47
+ height: params.height
48
+ }), options = {
49
+ width: params.width,
50
+ height: params.height,
51
+ dpr: params.dpr,
52
+ nativeCanvas: nativeCanvas,
53
+ id: Generator.GenAutoIncrementId().toString(),
54
+ canvasControled: !0
55
+ };
56
+ this.canvas = new NodeCanvas(options);
57
+ }
58
+ createWindowByCanvas(params) {
59
+ const canvas = params.canvas;
60
+ let width = params.width, height = params.height;
61
+ null != width && null != height && params.canvasControled || (width = canvas.width,
62
+ height = canvas.height), this.canvas = new NodeCanvas({
63
+ width: width,
64
+ height: height,
65
+ dpr: 1,
66
+ nativeCanvas: canvas,
67
+ canvasControled: params.canvasControled
68
+ });
69
+ }
70
+ releaseWindow() {
71
+ this.canvas.release();
72
+ }
73
+ resizeWindow(width, height) {
74
+ this.canvas.resize(width, height);
75
+ }
76
+ setDpr(dpr) {
77
+ this.canvas.dpr = dpr;
78
+ }
79
+ getContext() {
80
+ return this.canvas.getContext();
81
+ }
82
+ getNativeHandler() {
83
+ return this.canvas;
84
+ }
85
+ getDpr() {
86
+ return this.canvas.dpr;
87
+ }
88
+ getImageBuffer(type = "image/png") {
89
+ return this.canvas.nativeCanvas.toBuffer(type);
90
+ }
91
+ addEventListener(type, listener, options) {}
92
+ dispatchEvent(event) {
93
+ return !0;
94
+ }
95
+ removeEventListener(type, listener, options) {}
96
+ getStyle() {}
97
+ setStyle(style) {}
98
+ getBoundingClientRect() {
99
+ return null;
100
+ }
101
+ clearViewBox(vb, color) {}
102
+ };
103
+
104
+ NodeWindowHandlerContribution = __decorate([ injectable(), __param(0, inject(Global)), __metadata("design:paramtypes", [ Object ]) ], NodeWindowHandlerContribution);
105
+
106
+ export { NodeWindowHandlerContribution };
107
+ //# sourceMappingURL=node-contribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/window/contributions/node-contribution.ts"],"names":[],"mappings":"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","file":"node-contribution.js","sourcesContent":["import { inject, injectable } from 'inversify';\nimport type {\n EnvType,\n IGlobal,\n IWindowHandlerContribution,\n IWindowParams,\n IContext2d,\n ICanvas,\n IDomRectLike\n} from '@visactor/vrender';\nimport { Generator, Global, BaseWindowHandlerContribution } from '@visactor/vrender';\nimport { NodeCanvas } from '../../canvas/contributions/node/canvas';\nimport type { IBoundsLike } from '@visactor/vutils';\n\n@injectable()\nexport class NodeWindowHandlerContribution extends BaseWindowHandlerContribution implements IWindowHandlerContribution {\n type: EnvType = 'node';\n\n canvas: ICanvas;\n get container(): HTMLElement | null {\n return null;\n }\n\n constructor(@inject(Global) private readonly global: IGlobal) {\n super();\n }\n\n getTitle(): string {\n return '';\n }\n\n getWH(): { width: number; height: number } {\n return {\n width: this.canvas.displayWidth,\n height: this.canvas.displayHeight\n };\n }\n\n getXY(): { x: number; y: number } {\n return { x: 0, y: 0 };\n }\n\n createWindow(params: IWindowParams): void {\n // 如果没有传入canvas,那么就创建一个canvas\n if (!params.canvas) {\n this.createWindowByConfig(params);\n } else {\n this.createWindowByCanvas(params);\n }\n }\n private createWindowByConfig(params: IWindowParams) {\n // 创建canvas\n const nativeCanvas = this.global.createCanvas({ width: params.width, height: params.height });\n\n // 绑定\n const options = {\n width: params.width,\n height: params.height,\n dpr: params.dpr,\n nativeCanvas,\n id: Generator.GenAutoIncrementId().toString(),\n canvasControled: true\n };\n this.canvas = new NodeCanvas(options);\n }\n private createWindowByCanvas(params: IWindowParams) {\n // 获取canvas\n const canvas = params!.canvas as HTMLCanvasElement | null;\n\n // 如果没有传入wh,或者是不受控制的canvas,那就用canvas的原始wh\n let width = params.width;\n let height = params.height;\n if (width == null || height == null || !params.canvasControled) {\n width = canvas.width;\n height = canvas.height;\n }\n\n this.canvas = new NodeCanvas({\n width: width,\n height: height,\n dpr: 1,\n nativeCanvas: canvas,\n canvasControled: params.canvasControled\n });\n }\n releaseWindow(): void {\n this.canvas.release();\n }\n resizeWindow(width: number, height: number): void {\n this.canvas.resize(width, height);\n }\n setDpr(dpr: number): void {\n this.canvas.dpr = dpr;\n }\n\n getContext(): IContext2d {\n return this.canvas.getContext();\n }\n getNativeHandler(): ICanvas {\n return this.canvas;\n }\n getDpr(): number {\n return this.canvas.dpr;\n }\n\n getImageBuffer(type: string = 'image/png'): any {\n const canvas = this.canvas.nativeCanvas;\n return canvas.toBuffer(type);\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return;\n }\n\n dispatchEvent(event: any): boolean {\n return true;\n }\n\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void;\n removeEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return;\n }\n\n getStyle(): CSSStyleDeclaration | Record<string, any> {\n return;\n }\n setStyle(style: CSSStyleDeclaration | Record<string, any>): void {\n return;\n }\n\n getBoundingClientRect(): IDomRectLike {\n return null;\n }\n\n clearViewBox(vb: IBoundsLike, color?: string): void {\n return;\n }\n}\n"]}
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@visactor/vrender-kits",
3
+ "version": "0.9.0-alpha.0",
4
+ "description": "",
5
+ "sideEffects": false,
6
+ "main": "cjs/index.js",
7
+ "module": "es/index.js",
8
+ "types": "es/index.d.ts",
9
+ "files": [
10
+ "cjs",
11
+ "es",
12
+ "dist"
13
+ ],
14
+ "dependencies": {
15
+ "@visactor/vrender": "0.9.0-alpha.0",
16
+ "@visactor/vutils": "0.9.0-alpha.2",
17
+ "@resvg/resvg-js": "2.4.1",
18
+ "canvas": "2.11.2",
19
+ "inversify": "6.0.1",
20
+ "node-fetch": "2.6.6",
21
+ "reflect-metadata": "0.1.13",
22
+ "roughjs": "4.5.2"
23
+ },
24
+ "devDependencies": {
25
+ "@rushstack/eslint-patch": "~1.1.4",
26
+ "react": "16.13.0",
27
+ "react-dom": "16.13.0",
28
+ "@types/react": "16.9.49",
29
+ "@types/react-dom": "16.9.8",
30
+ "@types/node-fetch": "2.6.4",
31
+ "@vitejs/plugin-react": "3.1.0",
32
+ "eslint": "~8.18.0",
33
+ "vite": "3.2.6",
34
+ "typescript": "4.9.5",
35
+ "@internal/ts-config": "0.0.1",
36
+ "@internal/bundler": "0.0.1",
37
+ "@internal/eslint-config": "0.0.1"
38
+ },
39
+ "publishConfig": {
40
+ "access": "public"
41
+ },
42
+ "scripts": {
43
+ "compile": "tsc --noEmit",
44
+ "eslint": "eslint --debug --fix src/",
45
+ "build": "bundle",
46
+ "dev": "bundle --clean -f es -w",
47
+ "start": "vite ./vite",
48
+ "test": ""
49
+ }
50
+ }