aldehyde 0.2.486 → 0.2.488

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 (196) hide show
  1. package/lib/controls/direct-file-view/index.d.ts.map +1 -1
  2. package/lib/controls/direct-file-view/index.js +2 -1
  3. package/lib/controls/direct-file-view/index.js.map +1 -1
  4. package/lib/controls/entry-control.d.ts +1 -0
  5. package/lib/controls/entry-control.d.ts.map +1 -1
  6. package/lib/controls/entry-control.js +2 -0
  7. package/lib/controls/entry-control.js.map +1 -1
  8. package/lib/draw-canvas-edit/components/asset-bar/index.d.ts.map +1 -1
  9. package/lib/draw-canvas-edit/components/asset-bar/index.js +26 -7
  10. package/lib/draw-canvas-edit/components/asset-bar/index.js.map +1 -1
  11. package/lib/draw-canvas-edit/components/asset-bar/index.less +1 -1
  12. package/lib/draw-canvas-edit/components/main-header/index.js +1 -1
  13. package/lib/draw-canvas-edit/components/render/draws/bg-draw.d.ts +1 -0
  14. package/lib/draw-canvas-edit/components/render/draws/bg-draw.d.ts.map +1 -1
  15. package/lib/draw-canvas-edit/components/render/draws/bg-draw.js +3 -2
  16. package/lib/draw-canvas-edit/components/render/draws/bg-draw.js.map +1 -1
  17. package/lib/draw-canvas-edit/components/render/draws/contextmenu-draw.d.ts +1 -0
  18. package/lib/draw-canvas-edit/components/render/draws/contextmenu-draw.d.ts.map +1 -1
  19. package/lib/draw-canvas-edit/components/render/draws/contextmenu-draw.js +2 -1
  20. package/lib/draw-canvas-edit/components/render/draws/contextmenu-draw.js.map +1 -1
  21. package/lib/draw-canvas-edit/components/render/draws/graph-draw.d.ts +1 -0
  22. package/lib/draw-canvas-edit/components/render/draws/graph-draw.d.ts.map +1 -1
  23. package/lib/draw-canvas-edit/components/render/draws/graph-draw.js +9 -8
  24. package/lib/draw-canvas-edit/components/render/draws/graph-draw.js.map +1 -1
  25. package/lib/draw-canvas-edit/components/render/draws/link-draw.d.ts +1 -0
  26. package/lib/draw-canvas-edit/components/render/draws/link-draw.d.ts.map +1 -1
  27. package/lib/draw-canvas-edit/components/render/draws/link-draw.js +24 -23
  28. package/lib/draw-canvas-edit/components/render/draws/link-draw.js.map +1 -1
  29. package/lib/draw-canvas-edit/components/render/draws/preview-draw.d.ts +1 -0
  30. package/lib/draw-canvas-edit/components/render/draws/preview-draw.d.ts.map +1 -1
  31. package/lib/draw-canvas-edit/components/render/draws/preview-draw.js +6 -5
  32. package/lib/draw-canvas-edit/components/render/draws/preview-draw.js.map +1 -1
  33. package/lib/draw-canvas-edit/components/render/draws/ref-line-draw.d.ts +1 -0
  34. package/lib/draw-canvas-edit/components/render/draws/ref-line-draw.d.ts.map +1 -1
  35. package/lib/draw-canvas-edit/components/render/draws/ref-line-draw.js +3 -2
  36. package/lib/draw-canvas-edit/components/render/draws/ref-line-draw.js.map +1 -1
  37. package/lib/draw-canvas-edit/components/render/draws/ruler-draw.d.ts +1 -0
  38. package/lib/draw-canvas-edit/components/render/draws/ruler-draw.d.ts.map +1 -1
  39. package/lib/draw-canvas-edit/components/render/draws/ruler-draw.js +8 -7
  40. package/lib/draw-canvas-edit/components/render/draws/ruler-draw.js.map +1 -1
  41. package/lib/draw-canvas-edit/components/render/graphs/base-graph.js +3 -3
  42. package/lib/draw-canvas-edit/components/render/graphs/bezier.js +5 -5
  43. package/lib/draw-canvas-edit/components/render/graphs/circle.js +4 -4
  44. package/lib/draw-canvas-edit/components/render/graphs/curve.js +5 -5
  45. package/lib/draw-canvas-edit/components/render/graphs/line.js +5 -5
  46. package/lib/draw-canvas-edit/components/render/graphs/rect.js +4 -4
  47. package/lib/draw-canvas-edit/components/render/handlers/drag-handlers.d.ts +1 -0
  48. package/lib/draw-canvas-edit/components/render/handlers/drag-handlers.d.ts.map +1 -1
  49. package/lib/draw-canvas-edit/components/render/handlers/drag-handlers.js +7 -6
  50. package/lib/draw-canvas-edit/components/render/handlers/drag-handlers.js.map +1 -1
  51. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.d.ts +1 -0
  52. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.d.ts.map +1 -1
  53. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.js +13 -8
  54. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.js.map +1 -1
  55. package/lib/draw-canvas-edit/components/render/handlers/graph-handlers.d.ts +1 -0
  56. package/lib/draw-canvas-edit/components/render/handlers/graph-handlers.d.ts.map +1 -1
  57. package/lib/draw-canvas-edit/components/render/handlers/graph-handlers.js +2 -1
  58. package/lib/draw-canvas-edit/components/render/handlers/graph-handlers.js.map +1 -1
  59. package/lib/draw-canvas-edit/components/render/handlers/key-move-handlers.d.ts +1 -0
  60. package/lib/draw-canvas-edit/components/render/handlers/key-move-handlers.d.ts.map +1 -1
  61. package/lib/draw-canvas-edit/components/render/handlers/key-move-handlers.js +5 -4
  62. package/lib/draw-canvas-edit/components/render/handlers/key-move-handlers.js.map +1 -1
  63. package/lib/draw-canvas-edit/components/render/handlers/link-handlers.d.ts +1 -0
  64. package/lib/draw-canvas-edit/components/render/handlers/link-handlers.d.ts.map +1 -1
  65. package/lib/draw-canvas-edit/components/render/handlers/link-handlers.js +3 -2
  66. package/lib/draw-canvas-edit/components/render/handlers/link-handlers.js.map +1 -1
  67. package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.d.ts +1 -0
  68. package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.d.ts.map +1 -1
  69. package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.js +5 -4
  70. package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.js.map +1 -1
  71. package/lib/draw-canvas-edit/components/render/handlers/shutcut-handlers.d.ts +1 -0
  72. package/lib/draw-canvas-edit/components/render/handlers/shutcut-handlers.d.ts.map +1 -1
  73. package/lib/draw-canvas-edit/components/render/handlers/shutcut-handlers.js +1 -0
  74. package/lib/draw-canvas-edit/components/render/handlers/shutcut-handlers.js.map +1 -1
  75. package/lib/draw-canvas-edit/components/render/handlers/text-handlers.d.ts +1 -0
  76. package/lib/draw-canvas-edit/components/render/handlers/text-handlers.d.ts.map +1 -1
  77. package/lib/draw-canvas-edit/components/render/handlers/text-handlers.js +1 -0
  78. package/lib/draw-canvas-edit/components/render/handlers/text-handlers.js.map +1 -1
  79. package/lib/draw-canvas-edit/components/render/handlers/zoom-handlers.d.ts +1 -0
  80. package/lib/draw-canvas-edit/components/render/handlers/zoom-handlers.d.ts.map +1 -1
  81. package/lib/draw-canvas-edit/components/render/handlers/zoom-handlers.js +7 -6
  82. package/lib/draw-canvas-edit/components/render/handlers/zoom-handlers.js.map +1 -1
  83. package/lib/draw-canvas-edit/components/render/index.d.ts.map +1 -1
  84. package/lib/draw-canvas-edit/components/render/index.js +49 -49
  85. package/lib/draw-canvas-edit/components/render/index.js.map +1 -1
  86. package/lib/draw-canvas-edit/components/render/tools/align-tool.js +4 -4
  87. package/lib/draw-canvas-edit/components/render/tools/asset-tool.js +1 -1
  88. package/lib/draw-canvas-edit/components/render/tools/copy-tool.js +4 -4
  89. package/lib/draw-canvas-edit/components/render/tools/import-export-tool.js +7 -7
  90. package/lib/draw-canvas-edit/components/render/tools/link-tool.js +9 -9
  91. package/lib/draw-canvas-edit/components/render/tools/position-tool.js +18 -18
  92. package/lib/draw-canvas-edit/components/render/tools/selection-tool.js +2 -2
  93. package/lib/draw-canvas-edit/components/render/tools/z-index-tool.js +16 -16
  94. package/lib/lowcode-components/bar-chart/index.d.ts +4 -1
  95. package/lib/lowcode-components/bar-chart/index.d.ts.map +1 -1
  96. package/lib/lowcode-components/bar-chart/index.js +3 -0
  97. package/lib/lowcode-components/bar-chart/index.js.map +1 -1
  98. package/lib/lowcode-components/column-3d-chart/index.d.ts +4 -1
  99. package/lib/lowcode-components/column-3d-chart/index.d.ts.map +1 -1
  100. package/lib/lowcode-components/column-3d-chart/index.js +3 -0
  101. package/lib/lowcode-components/column-3d-chart/index.js.map +1 -1
  102. package/lib/lowcode-components/column-chart/index.d.ts +6 -3
  103. package/lib/lowcode-components/column-chart/index.d.ts.map +1 -1
  104. package/lib/lowcode-components/column-chart/index.js +4 -1
  105. package/lib/lowcode-components/column-chart/index.js.map +1 -1
  106. package/lib/lowcode-components/line-bar-chart/index.d.ts +4 -1
  107. package/lib/lowcode-components/line-bar-chart/index.d.ts.map +1 -1
  108. package/lib/lowcode-components/line-bar-chart/index.js +3 -0
  109. package/lib/lowcode-components/line-bar-chart/index.js.map +1 -1
  110. package/lib/lowcode-components/line-chart/index.d.ts +5 -2
  111. package/lib/lowcode-components/line-chart/index.d.ts.map +1 -1
  112. package/lib/lowcode-components/line-chart/index.js +6 -2
  113. package/lib/lowcode-components/line-chart/index.js.map +1 -1
  114. package/lib/lowcode-components/pie-chart/index.d.ts +4 -1
  115. package/lib/lowcode-components/pie-chart/index.d.ts.map +1 -1
  116. package/lib/lowcode-components/pie-chart/index.js +3 -0
  117. package/lib/lowcode-components/pie-chart/index.js.map +1 -1
  118. package/lib/module/dtmpl-edit-card.d.ts +1 -1
  119. package/lib/module/dtmpl-edit-card.d.ts.map +1 -1
  120. package/lib/module/dtmpl-edit-card.js +50 -7
  121. package/lib/module/dtmpl-edit-card.js.map +1 -1
  122. package/lib/module/dtmpl-edit-page.d.ts +1 -1
  123. package/lib/module/dtmpl-edit-page.d.ts.map +1 -1
  124. package/lib/module/dtmpl-edit-page.js +50 -7
  125. package/lib/module/dtmpl-edit-page.js.map +1 -1
  126. package/lib/table/act-table.d.ts +2 -0
  127. package/lib/table/act-table.d.ts.map +1 -1
  128. package/lib/table/act-table.js +20 -17
  129. package/lib/table/act-table.js.map +1 -1
  130. package/lib/table/page-chart.d.ts +15 -0
  131. package/lib/table/page-chart.d.ts.map +1 -0
  132. package/lib/table/page-chart.js +147 -0
  133. package/lib/table/page-chart.js.map +1 -0
  134. package/lib/table/page-chart.less +10 -0
  135. package/lib/table/relation-table.d.ts +2 -0
  136. package/lib/table/relation-table.d.ts.map +1 -1
  137. package/lib/table/row-table.d.ts +11 -0
  138. package/lib/table/row-table.d.ts.map +1 -0
  139. package/lib/table/row-table.js +11 -0
  140. package/lib/table/row-table.js.map +1 -0
  141. package/lib/tmpl/interface.d.ts +12 -1
  142. package/lib/tmpl/interface.d.ts.map +1 -1
  143. package/lib/tmpl/interface.js.map +1 -1
  144. package/lib/tmpl/tmpl-config-analysis.js +1 -1
  145. package/lib/tmpl/tmpl-config-analysis.js.map +1 -1
  146. package/package.json +1 -1
  147. package/src/aldehyde/controls/direct-file-view/index.tsx +2 -1
  148. package/src/aldehyde/controls/entry-control.tsx +3 -0
  149. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.less +1 -1
  150. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.tsx +19 -6
  151. package/src/aldehyde/draw-canvas-edit/components/main-header/index.tsx +1 -1
  152. package/src/aldehyde/draw-canvas-edit/components/render/draws/bg-draw.ts +3 -2
  153. package/src/aldehyde/draw-canvas-edit/components/render/draws/contextmenu-draw.ts +2 -1
  154. package/src/aldehyde/draw-canvas-edit/components/render/draws/graph-draw.ts +249 -249
  155. package/src/aldehyde/draw-canvas-edit/components/render/draws/link-draw.ts +1415 -1414
  156. package/src/aldehyde/draw-canvas-edit/components/render/draws/preview-draw.ts +274 -273
  157. package/src/aldehyde/draw-canvas-edit/components/render/draws/ref-line-draw.ts +71 -70
  158. package/src/aldehyde/draw-canvas-edit/components/render/draws/ruler-draw.ts +166 -165
  159. package/src/aldehyde/draw-canvas-edit/components/render/graphs/base-graph.ts +3 -3
  160. package/src/aldehyde/draw-canvas-edit/components/render/graphs/bezier.ts +5 -5
  161. package/src/aldehyde/draw-canvas-edit/components/render/graphs/circle.ts +4 -4
  162. package/src/aldehyde/draw-canvas-edit/components/render/graphs/curve.ts +5 -5
  163. package/src/aldehyde/draw-canvas-edit/components/render/graphs/line.ts +5 -5
  164. package/src/aldehyde/draw-canvas-edit/components/render/graphs/rect.ts +4 -4
  165. package/src/aldehyde/draw-canvas-edit/components/render/handlers/drag-handlers.ts +7 -6
  166. package/src/aldehyde/draw-canvas-edit/components/render/handlers/drag-outside-handlers.ts +8 -3
  167. package/src/aldehyde/draw-canvas-edit/components/render/handlers/graph-handlers.ts +2 -1
  168. package/src/aldehyde/draw-canvas-edit/components/render/handlers/key-move-handlers.ts +5 -4
  169. package/src/aldehyde/draw-canvas-edit/components/render/handlers/link-handlers.ts +3 -2
  170. package/src/aldehyde/draw-canvas-edit/components/render/handlers/selection-handlers.ts +5 -4
  171. package/src/aldehyde/draw-canvas-edit/components/render/handlers/shutcut-handlers.ts +1 -0
  172. package/src/aldehyde/draw-canvas-edit/components/render/handlers/text-handlers.ts +1 -0
  173. package/src/aldehyde/draw-canvas-edit/components/render/handlers/zoom-handlers.ts +7 -6
  174. package/src/aldehyde/draw-canvas-edit/components/render/index.ts +48 -49
  175. package/src/aldehyde/draw-canvas-edit/components/render/tools/align-tool.ts +4 -4
  176. package/src/aldehyde/draw-canvas-edit/components/render/tools/asset-tool.ts +1 -1
  177. package/src/aldehyde/draw-canvas-edit/components/render/tools/copy-tool.ts +4 -4
  178. package/src/aldehyde/draw-canvas-edit/components/render/tools/import-export-tool.ts +7 -7
  179. package/src/aldehyde/draw-canvas-edit/components/render/tools/link-tool.ts +9 -9
  180. package/src/aldehyde/draw-canvas-edit/components/render/tools/position-tool.ts +18 -18
  181. package/src/aldehyde/draw-canvas-edit/components/render/tools/selection-tool.ts +2 -2
  182. package/src/aldehyde/draw-canvas-edit/components/render/tools/z-index-tool.ts +16 -16
  183. package/src/aldehyde/lowcode-components/bar-chart/index.tsx +5 -1
  184. package/src/aldehyde/lowcode-components/column-3d-chart/index.tsx +5 -1
  185. package/src/aldehyde/lowcode-components/column-chart/index.tsx +7 -3
  186. package/src/aldehyde/lowcode-components/line-bar-chart/index.tsx +5 -1
  187. package/src/aldehyde/lowcode-components/line-chart/index.tsx +9 -5
  188. package/src/aldehyde/lowcode-components/pie-chart/index.tsx +5 -1
  189. package/src/aldehyde/module/dtmpl-edit-card.tsx +47 -7
  190. package/src/aldehyde/module/dtmpl-edit-page.tsx +47 -8
  191. package/src/aldehyde/table/act-table.tsx +31 -25
  192. package/src/aldehyde/table/page-chart.less +10 -0
  193. package/src/aldehyde/table/page-chart.tsx +192 -0
  194. package/src/aldehyde/table/row-table.tsx +23 -0
  195. package/src/aldehyde/tmpl/interface.tsx +13 -1
  196. package/src/aldehyde/tmpl/tmpl-config-analysis.tsx +1 -1
@@ -1,70 +1,71 @@
1
- import Konva from 'konva';
2
- import { BaseDraw, Draw, Handler, Render } from '../types';
3
-
4
- // 参考线
5
-
6
- export interface RefLineDrawOption {
7
- padding: number
8
- }
9
-
10
- export class RefLineDraw extends BaseDraw implements Draw, Handler {
11
- option: RefLineDrawOption;
12
-
13
- constructor(render: Render, layer: Konva.Layer, option: RefLineDrawOption) {
14
- super(render, layer);
15
- this.option = option;
16
- this.group.listening(false);
17
- }
18
-
19
- override draw() {
20
- this.clear();
21
- const stageState = this.render.getStageState();
22
- const group = new Konva.Group();
23
- const pos = this.render.stage.getPointerPosition();
24
- if (pos) {
25
- if (pos.y >= this.option.padding) {
26
- //
27
- group.add(
28
- new Konva.Line({
29
- name: this.constructor.name,
30
- points: [
31
- [this.render.toStageValue(-stageState.x), this.render.toStageValue(pos.y - stageState.y)],
32
- [this.render.toStageValue(stageState.width - stageState.x + this.render.rulerSize), this.render.toStageValue(pos.y - stageState.y)]
33
- ].flat(),
34
- stroke: 'rgba(255,0,0,0.2)',
35
- strokeWidth: this.render.toStageValue(1),
36
- listening: false
37
- })
38
- );
39
- }
40
- if (pos.x >= this.option.padding) {
41
- //
42
- group.add(
43
- new Konva.Line({
44
- name: this.constructor.name,
45
- points: [
46
- [this.render.toStageValue(pos.x - stageState.x), this.render.toStageValue(-stageState.y)],
47
- [this.render.toStageValue(pos.x - stageState.x), this.render.toStageValue(stageState.height - stageState.y + this.render.rulerSize)]
48
- ].flat(),
49
- stroke: 'rgba(255,0,0,0.2)',
50
- strokeWidth: this.render.toStageValue(1),
51
- listening: false
52
- })
53
- );
54
- }
55
- }
56
- this.group.add(group);
57
- }
58
- handlers = {
59
- dom: {
60
- mousemove: () => {
61
- // 更新参考线
62
- this.draw();
63
- },
64
- mouseout: () => {
65
- // 清除参考线
66
- this.clear();
67
- }
68
- }
69
- }
70
- }
1
+ import Konva from 'konva';
2
+ import { BaseDraw, Draw, Handler, Render } from '../types';
3
+
4
+ // 参考线
5
+
6
+ export interface RefLineDrawOption {
7
+ padding: number
8
+ }
9
+
10
+ export class RefLineDraw extends BaseDraw implements Draw, Handler {
11
+ static readonly NAME = 'RefLineDraw';
12
+ option: RefLineDrawOption;
13
+
14
+ constructor(render: Render, layer: Konva.Layer, option: RefLineDrawOption) {
15
+ super(render, layer);
16
+ this.option = option;
17
+ this.group.listening(false);
18
+ }
19
+
20
+ override draw() {
21
+ this.clear();
22
+ const stageState = this.render.getStageState();
23
+ const group = new Konva.Group();
24
+ const pos = this.render.stage.getPointerPosition();
25
+ if (pos) {
26
+ if (pos.y >= this.option.padding) {
27
+ // 横
28
+ group.add(
29
+ new Konva.Line({
30
+ name: RefLineDraw.NAME,
31
+ points: [
32
+ [this.render.toStageValue(-stageState.x), this.render.toStageValue(pos.y - stageState.y)],
33
+ [this.render.toStageValue(stageState.width - stageState.x + this.render.rulerSize), this.render.toStageValue(pos.y - stageState.y)]
34
+ ].flat(),
35
+ stroke: 'rgba(255,0,0,0.2)',
36
+ strokeWidth: this.render.toStageValue(1),
37
+ listening: false
38
+ })
39
+ );
40
+ }
41
+ if (pos.x >= this.option.padding) {
42
+ // 竖
43
+ group.add(
44
+ new Konva.Line({
45
+ name: RefLineDraw.NAME,
46
+ points: [
47
+ [this.render.toStageValue(pos.x - stageState.x), this.render.toStageValue(-stageState.y)],
48
+ [this.render.toStageValue(pos.x - stageState.x), this.render.toStageValue(stageState.height - stageState.y + this.render.rulerSize)]
49
+ ].flat(),
50
+ stroke: 'rgba(255,0,0,0.2)',
51
+ strokeWidth: this.render.toStageValue(1),
52
+ listening: false
53
+ })
54
+ );
55
+ }
56
+ }
57
+ this.group.add(group);
58
+ }
59
+ handlers = {
60
+ dom: {
61
+ mousemove: () => {
62
+ // 更新参考线
63
+ this.draw();
64
+ },
65
+ mouseout: () => {
66
+ // 清除参考线
67
+ this.clear();
68
+ }
69
+ }
70
+ }
71
+ }
@@ -1,165 +1,166 @@
1
- import Konva from 'konva';
2
- import { BaseDraw, Render, Draw } from '../types';
3
-
4
- // 画布比例尺
5
-
6
- export interface RulerDrawOption {
7
- size: number
8
- }
9
-
10
- export class RulerDraw extends BaseDraw implements Draw {
11
- option: RulerDrawOption;
12
-
13
- constructor(render: Render, layer: Konva.Layer, option: RulerDrawOption) {
14
- super(render, layer);
15
- this.option = option;
16
- this.group.listening(false);
17
- }
18
-
19
- override draw() {
20
- this.clear();
21
- const stageState = this.render.getStageState();
22
- // 格子大小
23
- const cellSize = 20;
24
- const fontSizeMax = 12;
25
- const lenX = Math.ceil(this.render.toStageValue(stageState.width) / cellSize); // 列数
26
- const lenY = Math.ceil(this.render.toStageValue(stageState.height) / cellSize); // 行数
27
- const startX = -Math.ceil(this.render.toStageValue(stageState.x - this.option.size) / cellSize);
28
- const startY = -Math.ceil(this.render.toStageValue(stageState.y - this.option.size) / cellSize);
29
- const group = new Konva.Group();
30
- // 比例尺 -
31
- const groupTop = new Konva.Group({
32
- x: this.render.toStageValue(-stageState.x + this.option.size),
33
- y: this.render.toStageValue(-stageState.y),
34
- width: this.render.toStageValue(stageState.width - this.option.size + this.render.rulerSize),
35
- height: this.render.toStageValue(this.option.size)
36
- });
37
- // 比例尺 - 左
38
- const groupLeft = new Konva.Group({
39
- x: this.render.toStageValue(-stageState.x),
40
- y: this.render.toStageValue(-stageState.y + this.option.size),
41
- width: this.render.toStageValue(this.option.size),
42
- height: this.render.toStageValue(stageState.height - this.option.size + this.render.rulerSize)
43
- });
44
- {
45
- groupTop.add(
46
- // 上
47
- new Konva.Rect({
48
- name: this.constructor.name,
49
- x: 0,
50
- y: 0,
51
- width: groupTop.width(),
52
- height: groupTop.height(),
53
- fill: '#ddd'
54
- })
55
- );
56
- for (let x = lenX + startX - 1; x >= startX; x--) {
57
- const nx = -groupTop.x() + cellSize * x;
58
- const long = (this.render.toStageValue(this.option.size) / 5) * 4;
59
- const short = (this.render.toStageValue(this.option.size) / 5) * 3;
60
- if (nx >= 0) {
61
- groupTop.add(
62
- new Konva.Line({
63
- name: this.constructor.name,
64
- points: [
65
- [nx, x % 5 ? long : short],
66
- [nx, this.render.toStageValue(this.option.size)]
67
- ].flat(),
68
- stroke: '#999',
69
- strokeWidth: this.render.toStageValue(1),
70
- listening: false
71
- })
72
- );
73
- if (x % 5 === 0) {
74
- let fontSize = fontSizeMax;
75
- const text = new Konva.Text({
76
- name: this.constructor.name,
77
- y: this.render.toStageValue(this.option.size / 2 - fontSize),
78
- text: (x * cellSize).toString(),
79
- fontSize: this.render.toStageValue(fontSize),
80
- fill: '#999',
81
- align: 'center',
82
- verticalAlign: 'middle',
83
- lineHeight: 1.6
84
- });
85
- while (this.render.toStageValue(text.width()) > this.render.toStageValue(cellSize) * 4.6) {
86
- fontSize -= 1;
87
- text.fontSize(this.render.toStageValue(fontSize));
88
- text.y(this.render.toStageValue(this.option.size / 2 - fontSize));
89
- }
90
- text.x(nx - text.width() / 2);
91
- groupTop.add(text);
92
- }
93
- }
94
- }
95
- }
96
- {
97
- groupLeft.add(
98
- // 左
99
- new Konva.Rect({
100
- name: this.constructor.name,
101
- x: 0,
102
- y: 0,
103
- width: groupLeft.width(),
104
- height: groupLeft.height(),
105
- fill: '#ddd'
106
- })
107
- );
108
- for (let y = lenY + startY - 1; y >= startY; y--) {
109
- const ny = -groupLeft.y() + cellSize * y;
110
- const long = (this.render.toStageValue(this.option.size) / 5) * 4;
111
- const short = (this.render.toStageValue(this.option.size) / 5) * 3;
112
- if (ny >= 0) {
113
- groupLeft.add(
114
- new Konva.Line({
115
- name: this.constructor.name,
116
- points: [
117
- [y % 5 ? long : short, ny],
118
- [this.render.toStageValue(this.option.size), ny]
119
- ].flat(),
120
- stroke: '#999',
121
- strokeWidth: this.render.toStageValue(1),
122
- listening: false
123
- })
124
- );
125
- if (y % 5 === 0) {
126
- let fontSize = fontSizeMax;
127
- const text = new Konva.Text({
128
- name: this.constructor.name,
129
- x: 0,
130
- y: ny,
131
- text: (y * cellSize).toString(),
132
- fontSize: this.render.toStageValue(fontSize),
133
- fill: '#999',
134
- align: 'right',
135
- verticalAlign: 'bottom',
136
- lineHeight: 1.6,
137
- wrap: 'none'
138
- });
139
- while (text.width() > short * 0.8) {
140
- fontSize -= 1;
141
- text.fontSize(this.render.toStageValue(fontSize));
142
- }
143
- text.y(ny - text.height() / 2);
144
- text.width(short - this.render.toStageValue(1));
145
- groupLeft.add(text);
146
- }
147
- }
148
- }
149
- }
150
- group.add(
151
- // 角
152
- new Konva.Rect({
153
- name: this.constructor.name,
154
- x: this.render.toStageValue(-stageState.x),
155
- y: this.render.toStageValue(-stageState.y),
156
- width: this.render.toStageValue(this.option.size),
157
- height: this.render.toStageValue(this.option.size),
158
- fill: '#ddd'
159
- })
160
- );
161
- group.add(groupTop);
162
- group.add(groupLeft);
163
- this.group.add(group);
164
- }
165
- }
1
+ import Konva from 'konva';
2
+ import { BaseDraw, Render, Draw } from '../types';
3
+
4
+ // 画布比例尺
5
+
6
+ export interface RulerDrawOption {
7
+ size: number
8
+ }
9
+
10
+ export class RulerDraw extends BaseDraw implements Draw {
11
+ static readonly NAME = 'RulerDraw';
12
+ option: RulerDrawOption;
13
+
14
+ constructor(render: Render, layer: Konva.Layer, option: RulerDrawOption) {
15
+ super(render, layer);
16
+ this.option = option;
17
+ this.group.listening(false);
18
+ }
19
+
20
+ override draw() {
21
+ this.clear();
22
+ const stageState = this.render.getStageState();
23
+ // 格子大小
24
+ const cellSize = 20;
25
+ const fontSizeMax = 12;
26
+ const lenX = Math.ceil(this.render.toStageValue(stageState.width) / cellSize); // 列数
27
+ const lenY = Math.ceil(this.render.toStageValue(stageState.height) / cellSize); // 行数
28
+ const startX = -Math.ceil(this.render.toStageValue(stageState.x - this.option.size) / cellSize);
29
+ const startY = -Math.ceil(this.render.toStageValue(stageState.y - this.option.size) / cellSize);
30
+ const group = new Konva.Group();
31
+ // 比例尺 -
32
+ const groupTop = new Konva.Group({
33
+ x: this.render.toStageValue(-stageState.x + this.option.size),
34
+ y: this.render.toStageValue(-stageState.y),
35
+ width: this.render.toStageValue(stageState.width - this.option.size + this.render.rulerSize),
36
+ height: this.render.toStageValue(this.option.size)
37
+ });
38
+ // 比例尺 -
39
+ const groupLeft = new Konva.Group({
40
+ x: this.render.toStageValue(-stageState.x),
41
+ y: this.render.toStageValue(-stageState.y + this.option.size),
42
+ width: this.render.toStageValue(this.option.size),
43
+ height: this.render.toStageValue(stageState.height - this.option.size + this.render.rulerSize)
44
+ });
45
+ {
46
+ groupTop.add(
47
+ //
48
+ new Konva.Rect({
49
+ name: RulerDraw.NAME,
50
+ x: 0,
51
+ y: 0,
52
+ width: groupTop.width(),
53
+ height: groupTop.height(),
54
+ fill: '#ddd'
55
+ })
56
+ );
57
+ for (let x = lenX + startX - 1; x >= startX; x--) {
58
+ const nx = -groupTop.x() + cellSize * x;
59
+ const long = (this.render.toStageValue(this.option.size) / 5) * 4;
60
+ const short = (this.render.toStageValue(this.option.size) / 5) * 3;
61
+ if (nx >= 0) {
62
+ groupTop.add(
63
+ new Konva.Line({
64
+ name: RulerDraw.NAME,
65
+ points: [
66
+ [nx, x % 5 ? long : short],
67
+ [nx, this.render.toStageValue(this.option.size)]
68
+ ].flat(),
69
+ stroke: '#999',
70
+ strokeWidth: this.render.toStageValue(1),
71
+ listening: false
72
+ })
73
+ );
74
+ if (x % 5 === 0) {
75
+ let fontSize = fontSizeMax;
76
+ const text = new Konva.Text({
77
+ name: RulerDraw.NAME,
78
+ y: this.render.toStageValue(this.option.size / 2 - fontSize),
79
+ text: (x * cellSize).toString(),
80
+ fontSize: this.render.toStageValue(fontSize),
81
+ fill: '#999',
82
+ align: 'center',
83
+ verticalAlign: 'middle',
84
+ lineHeight: 1.6
85
+ });
86
+ while (this.render.toStageValue(text.width()) > this.render.toStageValue(cellSize) * 4.6) {
87
+ fontSize -= 1;
88
+ text.fontSize(this.render.toStageValue(fontSize));
89
+ text.y(this.render.toStageValue(this.option.size / 2 - fontSize));
90
+ }
91
+ text.x(nx - text.width() / 2);
92
+ groupTop.add(text);
93
+ }
94
+ }
95
+ }
96
+ }
97
+ {
98
+ groupLeft.add(
99
+ //
100
+ new Konva.Rect({
101
+ name: RulerDraw.NAME,
102
+ x: 0,
103
+ y: 0,
104
+ width: groupLeft.width(),
105
+ height: groupLeft.height(),
106
+ fill: '#ddd'
107
+ })
108
+ );
109
+ for (let y = lenY + startY - 1; y >= startY; y--) {
110
+ const ny = -groupLeft.y() + cellSize * y;
111
+ const long = (this.render.toStageValue(this.option.size) / 5) * 4;
112
+ const short = (this.render.toStageValue(this.option.size) / 5) * 3;
113
+ if (ny >= 0) {
114
+ groupLeft.add(
115
+ new Konva.Line({
116
+ name: RulerDraw.NAME,
117
+ points: [
118
+ [y % 5 ? long : short, ny],
119
+ [this.render.toStageValue(this.option.size), ny]
120
+ ].flat(),
121
+ stroke: '#999',
122
+ strokeWidth: this.render.toStageValue(1),
123
+ listening: false
124
+ })
125
+ );
126
+ if (y % 5 === 0) {
127
+ let fontSize = fontSizeMax;
128
+ const text = new Konva.Text({
129
+ name: RulerDraw.NAME,
130
+ x: 0,
131
+ y: ny,
132
+ text: (y * cellSize).toString(),
133
+ fontSize: this.render.toStageValue(fontSize),
134
+ fill: '#999',
135
+ align: 'right',
136
+ verticalAlign: 'bottom',
137
+ lineHeight: 1.6,
138
+ wrap: 'none'
139
+ });
140
+ while (text.width() > short * 0.8) {
141
+ fontSize -= 1;
142
+ text.fontSize(this.render.toStageValue(fontSize));
143
+ }
144
+ text.y(ny - text.height() / 2);
145
+ text.width(short - this.render.toStageValue(1));
146
+ groupLeft.add(text);
147
+ }
148
+ }
149
+ }
150
+ }
151
+ group.add(
152
+ //
153
+ new Konva.Rect({
154
+ name: RulerDraw.NAME,
155
+ x: this.render.toStageValue(-stageState.x),
156
+ y: this.render.toStageValue(-stageState.y),
157
+ width: this.render.toStageValue(this.option.size),
158
+ height: this.render.toStageValue(this.option.size),
159
+ fill: '#ddd'
160
+ })
161
+ );
162
+ group.add(groupTop);
163
+ group.add(groupLeft);
164
+ this.group.add(group);
165
+ }
166
+ }
@@ -190,7 +190,7 @@ export abstract class BaseGraph {
190
190
  this.group.add(circle);
191
191
  }
192
192
  this.render.layer.add(this.group);
193
- this.render.redraw([GraphDraw.name]);
193
+ this.render.redraw([GraphDraw.NAME]);
194
194
  }
195
195
 
196
196
  /**
@@ -209,7 +209,7 @@ export abstract class BaseGraph {
209
209
  // 防止进入调整点,重复处理
210
210
  if (!this.group.attrs.hoverAnchor) {
211
211
  this.group.setAttr('hover', true);
212
- this.render.redraw([GraphDraw.name]);
212
+ this.render.redraw([GraphDraw.NAME]);
213
213
  }
214
214
  setTimeout(() => {
215
215
  // 调整产生 redraw,导致离开调整点不触发其 mouseleave(进入其他元素区域除外)
@@ -228,7 +228,7 @@ export abstract class BaseGraph {
228
228
  if (!this.group.attrs.hoverAnchor) {
229
229
  this.group.setAttr('hover', false);
230
230
  this.group.setAttr('hoverAnchor', false);
231
- this.render.redraw([GraphDraw.name]);
231
+ this.render.redraw([GraphDraw.NAME]);
232
232
  }
233
233
  });
234
234
  // 隐藏 连接点
@@ -96,7 +96,7 @@ export class Bezier extends BaseGraph {
96
96
  graph.setAttr('hover', false);
97
97
  graph.setAttr('hoverAnchor', false);
98
98
  // 进入其他元素区域时离开需要靠它 redraw
99
- render.redraw([GraphDraw.name]);
99
+ render.redraw([GraphDraw.NAME]);
100
100
  });
101
101
  anchorAndShadow.shape = anchorShape;
102
102
  } else {
@@ -140,7 +140,7 @@ export class Bezier extends BaseGraph {
140
140
  graph.setAttr('hover', false);
141
141
  graph.setAttr('hoverAnchor', false);
142
142
  // 进入其他元素区域时离开需要靠它 redraw
143
- render.redraw([GraphDraw.name]);
143
+ render.redraw([GraphDraw.NAME]);
144
144
  });
145
145
  anchorAndShadow.shape = anchorShape;
146
146
  }
@@ -278,7 +278,7 @@ export class Bezier extends BaseGraph {
278
278
  }
279
279
  }
280
280
  // 重绘
281
- render.redraw([GraphDraw.name, LinkDraw.name, PreviewDraw.name]);
281
+ render.redraw([GraphDraw.NAME, LinkDraw.NAME, PreviewDraw.NAME]);
282
282
  }
283
283
  const allXs = line.points().reduce((arr, item, idx) => {
284
284
  if (idx % 2 === 0) {
@@ -382,7 +382,7 @@ export class Bezier extends BaseGraph {
382
382
  // 更新 图形 的 连接点 的 锚点位置
383
383
  Bezier.updateLinkAnchorShadows(this.group, this.linkAnchorShadows, this.line);
384
384
  // 重绘
385
- this.render.redraw([GraphDraw.name, LinkDraw.name, PreviewDraw.name]);
385
+ this.render.redraw([GraphDraw.NAME, LinkDraw.NAME, PreviewDraw.NAME]);
386
386
  }
387
387
 
388
388
  // 实现:拖动结束
@@ -412,7 +412,7 @@ export class Bezier extends BaseGraph {
412
412
  // 更新历史
413
413
  this.render.updateHistory();
414
414
  // 重绘
415
- this.render.redraw([GraphDraw.name, LinkDraw.name, PreviewDraw.name]);
415
+ this.render.redraw([GraphDraw.NAME, LinkDraw.NAME, PreviewDraw.NAME]);
416
416
  super.drawEnd(size, {
417
417
  x: Math.min(
418
418
  ...this.line.points().reduce((arr, item, idx) => {
@@ -119,7 +119,7 @@ export class Circle extends BaseGraph {
119
119
  graph.setAttr('hover', false);
120
120
  graph.setAttr('hoverAnchor', false);
121
121
  // 进入其他元素区域时离开需要靠它 redraw
122
- render.redraw([GraphDraw.name]);
122
+ render.redraw([GraphDraw.NAME]);
123
123
  });
124
124
  anchorAndShadow.shape = anchorShape;
125
125
  }
@@ -597,7 +597,7 @@ export class Circle extends BaseGraph {
597
597
  }
598
598
  }
599
599
  }
600
- render.redraw([GraphDraw.name, LinkDraw.name, PreviewDraw.name]); // 重绘
600
+ render.redraw([GraphDraw.NAME, LinkDraw.NAME, PreviewDraw.NAME]); // 重绘
601
601
  }
602
602
  BaseGraph.adjust(render, graph, graphSnap, adjustShape, anchorAndShadows, startPoint, endPoint, hoverRect);
603
603
  }
@@ -671,7 +671,7 @@ export class Circle extends BaseGraph {
671
671
  this.group.size({ width: offsetX, height: offsetY });
672
672
  Circle.updateAnchorShadows(this.group, this.anchorShadows);
673
673
  Circle.updateLinkAnchorShadows(this.group, this.linkAnchorShadows);
674
- this.render.redraw([GraphDraw.name, LinkDraw.name, PreviewDraw.name]);
674
+ this.render.redraw([GraphDraw.NAME, LinkDraw.NAME, PreviewDraw.NAME]);
675
675
  }
676
676
 
677
677
  // 实现:拖动结束
@@ -693,7 +693,7 @@ export class Circle extends BaseGraph {
693
693
  // 更新历史
694
694
  this.render.updateHistory();
695
695
  // 重绘
696
- this.render.redraw([GraphDraw.name, LinkDraw.name, PreviewDraw.name]);
696
+ this.render.redraw([GraphDraw.NAME, LinkDraw.NAME, PreviewDraw.NAME]);
697
697
  }
698
698
  super.drawEnd();
699
699
  }
@@ -98,7 +98,7 @@ export class Curve extends BaseGraph {
98
98
  document.body.style.cursor = anchorShape.attrs.adjusting ? 'move' : 'default';
99
99
  graph.setAttr('hover', false);
100
100
  graph.setAttr('hoverAnchor', false);
101
- render.redraw([GraphDraw.name]);
101
+ render.redraw([GraphDraw.NAME]);
102
102
  });
103
103
  anchorAndShadow.shape = anchorShape;
104
104
  } else {
@@ -134,7 +134,7 @@ export class Curve extends BaseGraph {
134
134
  document.body.style.cursor = anchorShape.attrs.adjusting ? 'move' : 'default';
135
135
  graph.setAttr('hover', false);
136
136
  graph.setAttr('hoverAnchor', false);
137
- render.redraw([GraphDraw.name]);
137
+ render.redraw([GraphDraw.NAME]);
138
138
  });
139
139
  anchorAndShadow.shape = anchorShape;
140
140
  }
@@ -267,7 +267,7 @@ export class Curve extends BaseGraph {
267
267
  }
268
268
  }
269
269
  }
270
- render.redraw([GraphDraw.name, LinkDraw.name, PreviewDraw.name]);
270
+ render.redraw([GraphDraw.NAME, LinkDraw.NAME, PreviewDraw.NAME]);
271
271
  }
272
272
  const allXs = line.points().reduce((arr, item, idx) => {
273
273
  if (idx % 2 === 0) arr.push(item);
@@ -362,7 +362,7 @@ export class Curve extends BaseGraph {
362
362
  Curve.updateAnchorShadows(this.group, this.anchorShadows, this.line);
363
363
  // 更新 图形 的 连接点 的 锚点位置
364
364
  Curve.updateLinkAnchorShadows(this.group, this.linkAnchorShadows, this.line);
365
- this.render.redraw([GraphDraw.name, LinkDraw.name, PreviewDraw.name]);
365
+ this.render.redraw([GraphDraw.NAME, LinkDraw.NAME, PreviewDraw.NAME]);
366
366
  }
367
367
 
368
368
  // 实现:拖动结束
@@ -385,7 +385,7 @@ export class Curve extends BaseGraph {
385
385
  this.group.size(size); // 更新大小
386
386
  this.render.attractTool.alignLinesClear(); // 对齐线清除
387
387
  this.render.updateHistory(); // 更新历史
388
- this.render.redraw([GraphDraw.name, LinkDraw.name, PreviewDraw.name]);
388
+ this.render.redraw([GraphDraw.NAME, LinkDraw.NAME, PreviewDraw.NAME]);
389
389
  super.drawEnd(size, {
390
390
  x: Math.min(...this.line.points().reduce((arr, item, idx) => {
391
391
  if (idx % 2 === 0) arr.push(item);