aldehyde 0.2.511 → 0.2.513

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 (73) hide show
  1. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +99 -99
  2. package/lib/draw-canvas-edit/components/asset-bar/index.less +35 -35
  3. package/lib/draw-canvas-edit/components/main-header/index.less +23 -23
  4. package/lib/form/criteria-form.d.ts +1 -0
  5. package/lib/form/criteria-form.d.ts.map +1 -1
  6. package/lib/form/criteria-form.js +14 -4
  7. package/lib/form/criteria-form.js.map +1 -1
  8. package/lib/lowcode-components/base-table/index.less +61 -61
  9. package/lib/lowcode-components/data-number/index.less +10 -10
  10. package/lib/lowcode-components/date-time/index.less +4 -4
  11. package/lib/lowcode-components/four-angle-glow-border/index.less +49 -49
  12. package/lib/lowcode-components/lowcode-view/component/font/FontGlobal.css +26 -26
  13. package/lib/lowcode-components/lowcode-view/component/screen-fit/index.less +13 -13
  14. package/lib/lowcode-components/text-scroller/index.less +28 -28
  15. package/lib/table/act-table.js +1 -1
  16. package/lib/table/act-table.js.map +1 -1
  17. package/lib/table/select-table.d.ts.map +1 -1
  18. package/lib/table/select-table.js +36 -4
  19. package/lib/table/select-table.js.map +1 -1
  20. package/package.json +1 -1
  21. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +99 -99
  22. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.json +156 -156
  23. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.less +35 -35
  24. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.tsx +110 -110
  25. package/src/aldehyde/draw-canvas-edit/components/main-header/index.less +23 -23
  26. package/src/aldehyde/draw-canvas-edit/components/main-header/index.tsx +263 -263
  27. package/src/aldehyde/draw-canvas-edit/components/render/draws/index.ts +7 -7
  28. package/src/aldehyde/draw-canvas-edit/components/render/graphs/base-graph.ts +241 -241
  29. package/src/aldehyde/draw-canvas-edit/components/render/graphs/circle.ts +699 -699
  30. package/src/aldehyde/draw-canvas-edit/components/render/graphs/curve.ts +500 -500
  31. package/src/aldehyde/draw-canvas-edit/components/render/graphs/index.ts +5 -5
  32. package/src/aldehyde/draw-canvas-edit/components/render/graphs/line.ts +493 -493
  33. package/src/aldehyde/draw-canvas-edit/components/render/graphs/rect.ts +680 -680
  34. package/src/aldehyde/draw-canvas-edit/components/render/handlers/drag-handlers.ts +68 -68
  35. package/src/aldehyde/draw-canvas-edit/components/render/handlers/graph-handlers.ts +113 -113
  36. package/src/aldehyde/draw-canvas-edit/components/render/handlers/index.ts +9 -9
  37. package/src/aldehyde/draw-canvas-edit/components/render/handlers/key-move-handlers.ts +49 -49
  38. package/src/aldehyde/draw-canvas-edit/components/render/handlers/link-handlers.ts +45 -45
  39. package/src/aldehyde/draw-canvas-edit/components/render/handlers/shutcut-handlers.ts +45 -45
  40. package/src/aldehyde/draw-canvas-edit/components/render/handlers/text-handlers.ts +81 -81
  41. package/src/aldehyde/draw-canvas-edit/components/render/handlers/zoom-handlers.ts +59 -59
  42. package/src/aldehyde/draw-canvas-edit/components/render/tools/align-tool.ts +89 -89
  43. package/src/aldehyde/draw-canvas-edit/components/render/tools/asset-tool.ts +154 -154
  44. package/src/aldehyde/draw-canvas-edit/components/render/tools/link-tool.ts +222 -222
  45. package/src/aldehyde/draw-canvas-edit/components/render/tools/z-index-tool.ts +224 -224
  46. package/src/aldehyde/draw-canvas-edit/components/render/utils/a-star.ts +116 -116
  47. package/src/aldehyde/draw-canvas-edit/components/render/utils/bezier-scene-func.ts +72 -72
  48. package/src/aldehyde/draw-canvas-edit/components/setting-form/imag-upload.tsx +119 -119
  49. package/src/aldehyde/form/criteria-form.tsx +15 -3
  50. package/src/aldehyde/layout4/imgs/user.svg +26 -26
  51. package/src/aldehyde/lowcode-components/base-color-block/index.tsx +31 -31
  52. package/src/aldehyde/lowcode-components/base-table/index.less +61 -61
  53. package/src/aldehyde/lowcode-components/data-number/index.less +10 -10
  54. package/src/aldehyde/lowcode-components/date-time/index.less +4 -4
  55. package/src/aldehyde/lowcode-components/date-time/index.tsx +64 -64
  56. package/src/aldehyde/lowcode-components/four-angle-glow-border/index.less +49 -49
  57. package/src/aldehyde/lowcode-components/four-angle-glow-border/index.tsx +53 -53
  58. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-controller.ts +64 -64
  59. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-definition.ts +77 -77
  60. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-designer-loader.ts +36 -36
  61. package/src/aldehyde/lowcode-components/lowcode-view/component/component-container.tsx +144 -144
  62. package/src/aldehyde/lowcode-components/lowcode-view/component/font/FontGlobal.css +26 -26
  63. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/controller.ts +36 -36
  64. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/definition.ts +53 -53
  65. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/index.tsx +15 -15
  66. package/src/aldehyde/lowcode-components/lowcode-view/component/layer-builder.tsx +98 -98
  67. package/src/aldehyde/lowcode-components/lowcode-view/component/screen-fit/index.less +13 -13
  68. package/src/aldehyde/lowcode-components/lowcode-view/component/screen-fit/index.tsx +121 -121
  69. package/src/aldehyde/lowcode-components/placeholder-component/index.tsx +81 -81
  70. package/src/aldehyde/lowcode-components/text-scroller/index.less +28 -28
  71. package/src/aldehyde/lowcode-components/text-scroller/index.tsx +173 -173
  72. package/src/aldehyde/table/act-table.tsx +1 -1
  73. package/src/aldehyde/table/select-table.tsx +40 -2
@@ -1,68 +1,68 @@
1
- import Konva from 'konva';
2
- import { Render } from '../index';
3
- import { Handler, MouseButton } from '../types';
4
- import { LinkDraw, BgDraw, GraphDraw, RulerDraw, PreviewDraw } from '../draws';
5
-
6
- export class DragHandlers implements Handler {
7
- static readonly NAME = 'DragHandlers';
8
- private render: Render;
9
- constructor(render: Render) {
10
- this.render = render;
11
- }
12
- // 右键是否按下
13
- mousedownRight = false;
14
- // 右键按下 stage 位置
15
- mousedownStagePos = { x: 0, y: 0 };
16
- // 右键按下位置
17
- mousedownPointerPos = { x: 0, y: 0 };
18
- handlers = {
19
- stage: {
20
- mousedown: (e: Konva.KonvaEventObject<GlobalEventHandlersEventMap['mousedown']>) => {
21
- // 拐点操作中,防止异常拖动
22
- // 新建图形并拖动中
23
- if (!(this.render.draws[LinkDraw.NAME] as LinkDraw)?.state.linkManualing && !this.render.graphType) {
24
- if (e.evt.button === MouseButton["右键"] || (e.evt.ctrlKey && e.evt.button === MouseButton["左键"])) // mac 拖动画布快捷键
25
- {
26
- const stageState = this.render.getStageState();
27
- // 鼠标右键
28
- this.mousedownRight = true;
29
- // 暂停元素 draggable
30
- this.render.changeDraggable(false);
31
- this.mousedownStagePos = { x: stageState.x, y: stageState.y };
32
- const pos = this.render.stage.getPointerPosition();
33
- if (pos) {
34
- this.mousedownPointerPos = { x: pos.x, y: pos.y };
35
- }
36
- document.body.style.cursor = 'pointer';
37
- }
38
- }
39
- },
40
- mouseup: () => {
41
- this.mousedownRight = false;
42
- // 恢复元素 draggable
43
- this.render.changeDraggable(!this.render.config.readonly);
44
- document.body.style.cursor = 'default';
45
- },
46
- mousemove: () => {
47
- if (this.mousedownRight) {
48
- // 鼠标右键拖动
49
- const pos = this.render.stage.getPointerPosition();
50
- if (pos) {
51
- const offsetX = pos.x - this.mousedownPointerPos.x;
52
- const offsetY = pos.y - this.mousedownPointerPos.y;
53
- // 移动 stage
54
- this.render.stage.position({ x: this.mousedownStagePos.x + offsetX, y: this.mousedownStagePos.y + offsetY });
55
- // 重绘
56
- this.render.redraw([
57
- BgDraw.NAME,
58
- GraphDraw.NAME,
59
- LinkDraw.NAME,
60
- RulerDraw.NAME,
61
- PreviewDraw.NAME
62
- ]);
63
- }
64
- }
65
- }
66
- }
67
- }
68
- }
1
+ import Konva from 'konva';
2
+ import { Render } from '../index';
3
+ import { Handler, MouseButton } from '../types';
4
+ import { LinkDraw, BgDraw, GraphDraw, RulerDraw, PreviewDraw } from '../draws';
5
+
6
+ export class DragHandlers implements Handler {
7
+ static readonly NAME = 'DragHandlers';
8
+ private render: Render;
9
+ constructor(render: Render) {
10
+ this.render = render;
11
+ }
12
+ // 右键是否按下
13
+ mousedownRight = false;
14
+ // 右键按下 stage 位置
15
+ mousedownStagePos = { x: 0, y: 0 };
16
+ // 右键按下位置
17
+ mousedownPointerPos = { x: 0, y: 0 };
18
+ handlers = {
19
+ stage: {
20
+ mousedown: (e: Konva.KonvaEventObject<GlobalEventHandlersEventMap['mousedown']>) => {
21
+ // 拐点操作中,防止异常拖动
22
+ // 新建图形并拖动中
23
+ if (!(this.render.draws[LinkDraw.NAME] as LinkDraw)?.state.linkManualing && !this.render.graphType) {
24
+ if (e.evt.button === MouseButton["右键"] || (e.evt.ctrlKey && e.evt.button === MouseButton["左键"])) // mac 拖动画布快捷键
25
+ {
26
+ const stageState = this.render.getStageState();
27
+ // 鼠标右键
28
+ this.mousedownRight = true;
29
+ // 暂停元素 draggable
30
+ this.render.changeDraggable(false);
31
+ this.mousedownStagePos = { x: stageState.x, y: stageState.y };
32
+ const pos = this.render.stage.getPointerPosition();
33
+ if (pos) {
34
+ this.mousedownPointerPos = { x: pos.x, y: pos.y };
35
+ }
36
+ document.body.style.cursor = 'pointer';
37
+ }
38
+ }
39
+ },
40
+ mouseup: () => {
41
+ this.mousedownRight = false;
42
+ // 恢复元素 draggable
43
+ this.render.changeDraggable(!this.render.config.readonly);
44
+ document.body.style.cursor = 'default';
45
+ },
46
+ mousemove: () => {
47
+ if (this.mousedownRight) {
48
+ // 鼠标右键拖动
49
+ const pos = this.render.stage.getPointerPosition();
50
+ if (pos) {
51
+ const offsetX = pos.x - this.mousedownPointerPos.x;
52
+ const offsetY = pos.y - this.mousedownPointerPos.y;
53
+ // 移动 stage
54
+ this.render.stage.position({ x: this.mousedownStagePos.x + offsetX, y: this.mousedownStagePos.y + offsetY });
55
+ // 重绘
56
+ this.render.redraw([
57
+ BgDraw.NAME,
58
+ GraphDraw.NAME,
59
+ LinkDraw.NAME,
60
+ RulerDraw.NAME,
61
+ PreviewDraw.NAME
62
+ ]);
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ }
@@ -1,113 +1,113 @@
1
- import Konva from 'konva';
2
- import { Render } from '../index';
3
- import { Handler } from '../types';
4
- import { BaseGraph, Circle, Rect, Line, Bezier, Curve } from '../graphs';
5
- import { GraphDraw } from '../draws';
6
-
7
- export class GraphHandlers implements Handler {
8
- static readonly NAME = 'GraphHandlers';
9
- private render: Render;
10
- constructor(render: Render) {
11
- this.render = render;
12
- }
13
- graphing = false; // 新建图形中
14
- currentGraph: BaseGraph | undefined; // 当前新建图形类型
15
-
16
- /**
17
- * 获取鼠标位置,并处理为 相对大小
18
- * @param attract 含磁贴计算
19
- * @returns
20
- */
21
- getStagePoint(attract = false) {
22
- const pos = this.render.stage.getPointerPosition();
23
- if (pos) {
24
- const stageState = this.render.getStageState();
25
- if (attract) { // 磁贴
26
- const { pos: transformerPos } = this.render.attractTool.attractPoint(pos);
27
- return {
28
- x: this.render.toStageValue(transformerPos.x - stageState.x),
29
- y: this.render.toStageValue(transformerPos.y - stageState.y)
30
- };
31
- } else {
32
- return {
33
- x: this.render.toStageValue(pos.x - stageState.x),
34
- y: this.render.toStageValue(pos.y - stageState.y)
35
- };
36
- }
37
- }
38
- return null;
39
- }
40
-
41
- handlers = {
42
- stage: {
43
- mousedown: (e: Konva.KonvaEventObject<GlobalEventHandlersEventMap['mousedown']>) => {
44
- if (this.render.graphType) {
45
- // 选中图形类型,开始
46
- if (e.target === this.render.stage) {
47
- this.graphing = true;
48
- this.render.selectionTool.selectingClear();
49
- this.render.linkTool.selectingClear();
50
- const point = this.getStagePoint();
51
- if (point) {
52
- switch (this.render.graphType) {
53
- case "Circle": // 新建 圆/椭圆 实例
54
- this.currentGraph = new Circle(this.render, point);
55
- break;
56
- case "Rect": // 新建 矩形 实例
57
- this.currentGraph = new Rect(this.render, point);
58
- break;
59
- case "Line": // 新建 直线、折线
60
- this.currentGraph = new Line(this.render, point);
61
- break;
62
- case "Curve": // 新建 曲线
63
- this.currentGraph = new Curve(this.render, point);
64
- break;
65
- case "Bezier": // 新建 贝赛尔曲线
66
- this.currentGraph = new Bezier(this.render, point);
67
- break;
68
- default:
69
- break;
70
- }
71
-
72
- // 初始化设置信息
73
- if (this.currentGraph) {
74
- const temSetting = this.render.getAssetSettings(this.currentGraph.group);
75
- this.render.setAssetSettings(
76
- this.currentGraph.group,
77
- {
78
- ...temSetting,
79
- stroke: temSetting.stroke || "#000000",
80
- strokeWidth: temSetting.strokeWidth || 1,
81
- fill: temSetting.fill || (["Circle", "Rect"].includes(this.render.graphType) ? "transparent" : "#000000"),
82
- },
83
- false
84
- );
85
- }
86
- }
87
- }
88
- }
89
- },
90
- mousemove: () => {
91
- if (this.graphing) {
92
- if (this.currentGraph) {
93
- const pos = this.getStagePoint(true);
94
- if (pos) { // 新建并马上调整图形
95
- this.currentGraph.drawMove(pos);
96
- }
97
- }
98
- }
99
- },
100
- mouseup: () => {
101
- if (this.graphing) {
102
- if (this.currentGraph) {
103
- this.currentGraph.drawEnd(); // 调整结束
104
- }
105
- this.graphing = false; // 调整结束
106
- this.render.changeGraphType(); // 清空图形类型选择
107
- this.render.attractTool.alignLinesClear(); // 对齐线清除
108
- this.render.redraw([GraphDraw.NAME]);
109
- }
110
- }
111
- }
112
- }
113
- }
1
+ import Konva from 'konva';
2
+ import { Render } from '../index';
3
+ import { Handler } from '../types';
4
+ import { BaseGraph, Circle, Rect, Line, Bezier, Curve } from '../graphs';
5
+ import { GraphDraw } from '../draws';
6
+
7
+ export class GraphHandlers implements Handler {
8
+ static readonly NAME = 'GraphHandlers';
9
+ private render: Render;
10
+ constructor(render: Render) {
11
+ this.render = render;
12
+ }
13
+ graphing = false; // 新建图形中
14
+ currentGraph: BaseGraph | undefined; // 当前新建图形类型
15
+
16
+ /**
17
+ * 获取鼠标位置,并处理为 相对大小
18
+ * @param attract 含磁贴计算
19
+ * @returns
20
+ */
21
+ getStagePoint(attract = false) {
22
+ const pos = this.render.stage.getPointerPosition();
23
+ if (pos) {
24
+ const stageState = this.render.getStageState();
25
+ if (attract) { // 磁贴
26
+ const { pos: transformerPos } = this.render.attractTool.attractPoint(pos);
27
+ return {
28
+ x: this.render.toStageValue(transformerPos.x - stageState.x),
29
+ y: this.render.toStageValue(transformerPos.y - stageState.y)
30
+ };
31
+ } else {
32
+ return {
33
+ x: this.render.toStageValue(pos.x - stageState.x),
34
+ y: this.render.toStageValue(pos.y - stageState.y)
35
+ };
36
+ }
37
+ }
38
+ return null;
39
+ }
40
+
41
+ handlers = {
42
+ stage: {
43
+ mousedown: (e: Konva.KonvaEventObject<GlobalEventHandlersEventMap['mousedown']>) => {
44
+ if (this.render.graphType) {
45
+ // 选中图形类型,开始
46
+ if (e.target === this.render.stage) {
47
+ this.graphing = true;
48
+ this.render.selectionTool.selectingClear();
49
+ this.render.linkTool.selectingClear();
50
+ const point = this.getStagePoint();
51
+ if (point) {
52
+ switch (this.render.graphType) {
53
+ case "Circle": // 新建 圆/椭圆 实例
54
+ this.currentGraph = new Circle(this.render, point);
55
+ break;
56
+ case "Rect": // 新建 矩形 实例
57
+ this.currentGraph = new Rect(this.render, point);
58
+ break;
59
+ case "Line": // 新建 直线、折线
60
+ this.currentGraph = new Line(this.render, point);
61
+ break;
62
+ case "Curve": // 新建 曲线
63
+ this.currentGraph = new Curve(this.render, point);
64
+ break;
65
+ case "Bezier": // 新建 贝赛尔曲线
66
+ this.currentGraph = new Bezier(this.render, point);
67
+ break;
68
+ default:
69
+ break;
70
+ }
71
+
72
+ // 初始化设置信息
73
+ if (this.currentGraph) {
74
+ const temSetting = this.render.getAssetSettings(this.currentGraph.group);
75
+ this.render.setAssetSettings(
76
+ this.currentGraph.group,
77
+ {
78
+ ...temSetting,
79
+ stroke: temSetting.stroke || "#000000",
80
+ strokeWidth: temSetting.strokeWidth || 1,
81
+ fill: temSetting.fill || (["Circle", "Rect"].includes(this.render.graphType) ? "transparent" : "#000000"),
82
+ },
83
+ false
84
+ );
85
+ }
86
+ }
87
+ }
88
+ }
89
+ },
90
+ mousemove: () => {
91
+ if (this.graphing) {
92
+ if (this.currentGraph) {
93
+ const pos = this.getStagePoint(true);
94
+ if (pos) { // 新建并马上调整图形
95
+ this.currentGraph.drawMove(pos);
96
+ }
97
+ }
98
+ }
99
+ },
100
+ mouseup: () => {
101
+ if (this.graphing) {
102
+ if (this.currentGraph) {
103
+ this.currentGraph.drawEnd(); // 调整结束
104
+ }
105
+ this.graphing = false; // 调整结束
106
+ this.render.changeGraphType(); // 清空图形类型选择
107
+ this.render.attractTool.alignLinesClear(); // 对齐线清除
108
+ this.render.redraw([GraphDraw.NAME]);
109
+ }
110
+ }
111
+ }
112
+ }
113
+ }
@@ -1,9 +1,9 @@
1
- export { DragHandlers } from './drag-handlers';
2
- export { ZoomHandlers } from './zoom-handlers';
3
- export { DragOutsideHandlers } from './drag-outside-handlers';
4
- export { SelectionHandlers } from './selection-handlers';
5
- export { KeyMoveHandlers } from './key-move-handlers';
6
- export { ShutcutHandlers } from './shutcut-handlers';
7
- export { LinkHandlers } from './link-handlers';
8
- export { GraphHandlers } from './graph-handlers';
9
- export { TextHandlers } from './text-handlers';
1
+ export { DragHandlers } from './drag-handlers';
2
+ export { ZoomHandlers } from './zoom-handlers';
3
+ export { DragOutsideHandlers } from './drag-outside-handlers';
4
+ export { SelectionHandlers } from './selection-handlers';
5
+ export { KeyMoveHandlers } from './key-move-handlers';
6
+ export { ShutcutHandlers } from './shutcut-handlers';
7
+ export { LinkHandlers } from './link-handlers';
8
+ export { GraphHandlers } from './graph-handlers';
9
+ export { TextHandlers } from './text-handlers';
@@ -1,49 +1,49 @@
1
- import * as _ from 'lodash';
2
- import { Render } from '../index';
3
- import { Handler, MoveKey } from '../types';
4
- import { GraphDraw, LinkDraw, RulerDraw, PreviewDraw } from '../draws';
5
-
6
- // 键盘控制组件移动
7
- export class KeyMoveHandlers implements Handler {
8
- static readonly NAME = 'KeyMoveHandlers';
9
- private render: Render;
10
- constructor(render: Render) {
11
- this.render = render;
12
- }
13
- speed = 1;
14
- speedMax = 20;
15
- change = _.debounce(() => this.render.updateHistory(), 200); // 更新历史
16
- handlers = {
17
- dom: {
18
- keydown: (e: GlobalEventHandlersEventMap['keydown']) => {
19
- if (!e.ctrlKey) {
20
- if (Object.values(MoveKey).map((o) => o.toString()).includes(e.code)) {
21
- if (e.code === MoveKey["上"]) {
22
- this.render.selectionTool.selectingNodesMove({ x: 0, y: -this.speed });
23
- } else if (e.code === MoveKey["左"]) {
24
- this.render.selectionTool.selectingNodesMove({ x: -this.speed, y: 0 });
25
- } else if (e.code === MoveKey["右"]) {
26
- this.render.selectionTool.selectingNodesMove({ x: this.speed, y: 0 });
27
- } else if (e.code === MoveKey["下"]) {
28
- this.render.selectionTool.selectingNodesMove({ x: 0, y: this.speed });
29
- }
30
- if (this.speed < this.speedMax) {
31
- this.speed++;
32
- }
33
- this.change();
34
- // 重绘
35
- this.render.redraw([
36
- GraphDraw.NAME,
37
- LinkDraw.NAME,
38
- RulerDraw.NAME,
39
- PreviewDraw.NAME
40
- ]);
41
- }
42
- }
43
- },
44
- keyup: () => {
45
- this.speed = 1;
46
- }
47
- }
48
- }
49
- }
1
+ import * as _ from 'lodash';
2
+ import { Render } from '../index';
3
+ import { Handler, MoveKey } from '../types';
4
+ import { GraphDraw, LinkDraw, RulerDraw, PreviewDraw } from '../draws';
5
+
6
+ // 键盘控制组件移动
7
+ export class KeyMoveHandlers implements Handler {
8
+ static readonly NAME = 'KeyMoveHandlers';
9
+ private render: Render;
10
+ constructor(render: Render) {
11
+ this.render = render;
12
+ }
13
+ speed = 1;
14
+ speedMax = 20;
15
+ change = _.debounce(() => this.render.updateHistory(), 200); // 更新历史
16
+ handlers = {
17
+ dom: {
18
+ keydown: (e: GlobalEventHandlersEventMap['keydown']) => {
19
+ if (!e.ctrlKey) {
20
+ if (Object.values(MoveKey).map((o) => o.toString()).includes(e.code)) {
21
+ if (e.code === MoveKey["上"]) {
22
+ this.render.selectionTool.selectingNodesMove({ x: 0, y: -this.speed });
23
+ } else if (e.code === MoveKey["左"]) {
24
+ this.render.selectionTool.selectingNodesMove({ x: -this.speed, y: 0 });
25
+ } else if (e.code === MoveKey["右"]) {
26
+ this.render.selectionTool.selectingNodesMove({ x: this.speed, y: 0 });
27
+ } else if (e.code === MoveKey["下"]) {
28
+ this.render.selectionTool.selectingNodesMove({ x: 0, y: this.speed });
29
+ }
30
+ if (this.speed < this.speedMax) {
31
+ this.speed++;
32
+ }
33
+ this.change();
34
+ // 重绘
35
+ this.render.redraw([
36
+ GraphDraw.NAME,
37
+ LinkDraw.NAME,
38
+ RulerDraw.NAME,
39
+ PreviewDraw.NAME
40
+ ]);
41
+ }
42
+ }
43
+ },
44
+ keyup: () => {
45
+ this.speed = 1;
46
+ }
47
+ }
48
+ }
49
+ }
@@ -1,45 +1,45 @@
1
- import { Render } from '../index';
2
- import { Handler } from '../types';
3
- import { LinkDraw } from '../draws';
4
-
5
- // 临时连接线
6
-
7
- export class LinkHandlers implements Handler {
8
- static readonly NAME = 'LinkHandlers';
9
- private render: Render;
10
- constructor(render: Render) {
11
- this.render = render;
12
- }
13
- handlers = {
14
- stage: {
15
- mouseup: () => {
16
- const linkDrawState = (this.render.draws[LinkDraw.NAME] as LinkDraw)?.state;
17
- if (linkDrawState) { // 临时 连接线 移除
18
- linkDrawState.linkingLine?.line.destroy();
19
- linkDrawState.linkingLine = null;
20
- }
21
- },
22
- mousemove: () => {
23
- const linkDrawState = (this.render.draws[LinkDraw.NAME] as LinkDraw)?.state;
24
- if (linkDrawState) {
25
- const pos = this.render.stage.getPointerPosition();
26
- if (pos) {
27
- const stageState = this.render.getStageState();
28
- if (linkDrawState.linkingLine) { // 临时 连接线 画
29
- const { circle, line } = linkDrawState.linkingLine;
30
- line.points(
31
- [
32
- [circle.x(), circle.y()],
33
- [
34
- this.render.toStageValue(pos.x - stageState.x),
35
- this.render.toStageValue(pos.y - stageState.y)
36
- ]
37
- ].flat()
38
- );
39
- }
40
- }
41
- }
42
- }
43
- }
44
- }
45
- }
1
+ import { Render } from '../index';
2
+ import { Handler } from '../types';
3
+ import { LinkDraw } from '../draws';
4
+
5
+ // 临时连接线
6
+
7
+ export class LinkHandlers implements Handler {
8
+ static readonly NAME = 'LinkHandlers';
9
+ private render: Render;
10
+ constructor(render: Render) {
11
+ this.render = render;
12
+ }
13
+ handlers = {
14
+ stage: {
15
+ mouseup: () => {
16
+ const linkDrawState = (this.render.draws[LinkDraw.NAME] as LinkDraw)?.state;
17
+ if (linkDrawState) { // 临时 连接线 移除
18
+ linkDrawState.linkingLine?.line.destroy();
19
+ linkDrawState.linkingLine = null;
20
+ }
21
+ },
22
+ mousemove: () => {
23
+ const linkDrawState = (this.render.draws[LinkDraw.NAME] as LinkDraw)?.state;
24
+ if (linkDrawState) {
25
+ const pos = this.render.stage.getPointerPosition();
26
+ if (pos) {
27
+ const stageState = this.render.getStageState();
28
+ if (linkDrawState.linkingLine) { // 临时 连接线 画
29
+ const { circle, line } = linkDrawState.linkingLine;
30
+ line.points(
31
+ [
32
+ [circle.x(), circle.y()],
33
+ [
34
+ this.render.toStageValue(pos.x - stageState.x),
35
+ this.render.toStageValue(pos.y - stageState.y)
36
+ ]
37
+ ].flat()
38
+ );
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }
44
+ }
45
+ }
@@ -1,45 +1,45 @@
1
- import { Render } from '../index';
2
- import { Handler, ShutcutKey } from '../types';
3
-
4
- export class ShutcutHandlers implements Handler {
5
- static readonly NAME = 'ShutcutHandlers';
6
- private render: Render;
7
- constructor(render: Render) {
8
- this.render = render;
9
- }
10
- handlers = {
11
- dom: {
12
- keydown: (e: GlobalEventHandlersEventMap['keydown']) => {
13
- if (!this.render.config.readonly) {
14
- if (e.ctrlKey || e.metaKey) {
15
- if (e.code === ShutcutKey.C) {
16
- this.render.copyTool.pasteStart();
17
- } else if (e.code === ShutcutKey.V) {
18
- this.render.copyTool.pasteEnd();
19
- } else if (e.code === ShutcutKey.Z) {
20
- if (e.shiftKey) {
21
- this.render.nextHistory();
22
- } else {
23
- this.render.prevHistory();
24
- }
25
- } else if (e.code === ShutcutKey.A) {
26
- this.render.selectionTool.selectAll();
27
- }
28
- } else if (e.code === ShutcutKey["删除"] || e.code === ShutcutKey.Backspace) {
29
- this.render.remove(this.render.selectionTool.selectingNodes);
30
- // 删除 连接线
31
- this.render.linkTool.remove();
32
- } else if (e.code === ShutcutKey.Esc) {
33
- this.render.selectionTool.selectingClear();
34
- this.render.linkTool.selectingClear();
35
- }
36
- }
37
- if (e.code === ShutcutKey.R) {
38
- if (e.ctrlKey || e.metaKey) {
39
- window.location.reload();
40
- }
41
- }
42
- }
43
- }
44
- }
45
- }
1
+ import { Render } from '../index';
2
+ import { Handler, ShutcutKey } from '../types';
3
+
4
+ export class ShutcutHandlers implements Handler {
5
+ static readonly NAME = 'ShutcutHandlers';
6
+ private render: Render;
7
+ constructor(render: Render) {
8
+ this.render = render;
9
+ }
10
+ handlers = {
11
+ dom: {
12
+ keydown: (e: GlobalEventHandlersEventMap['keydown']) => {
13
+ if (!this.render.config.readonly) {
14
+ if (e.ctrlKey || e.metaKey) {
15
+ if (e.code === ShutcutKey.C) {
16
+ this.render.copyTool.pasteStart();
17
+ } else if (e.code === ShutcutKey.V) {
18
+ this.render.copyTool.pasteEnd();
19
+ } else if (e.code === ShutcutKey.Z) {
20
+ if (e.shiftKey) {
21
+ this.render.nextHistory();
22
+ } else {
23
+ this.render.prevHistory();
24
+ }
25
+ } else if (e.code === ShutcutKey.A) {
26
+ this.render.selectionTool.selectAll();
27
+ }
28
+ } else if (e.code === ShutcutKey["删除"] || e.code === ShutcutKey.Backspace) {
29
+ this.render.remove(this.render.selectionTool.selectingNodes);
30
+ // 删除 连接线
31
+ this.render.linkTool.remove();
32
+ } else if (e.code === ShutcutKey.Esc) {
33
+ this.render.selectionTool.selectingClear();
34
+ this.render.linkTool.selectingClear();
35
+ }
36
+ }
37
+ if (e.code === ShutcutKey.R) {
38
+ if (e.ctrlKey || e.metaKey) {
39
+ window.location.reload();
40
+ }
41
+ }
42
+ }
43
+ }
44
+ }
45
+ }