aldehyde 0.2.426 → 0.2.428

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 (68) hide show
  1. package/lib/controls/2dEditor/2dEditor/index.d.ts +15 -0
  2. package/lib/controls/2dEditor/2dEditor/index.d.ts.map +1 -0
  3. package/lib/controls/2dEditor/2dEditor/index.js +201 -0
  4. package/lib/controls/2dEditor/2dEditor/index.js.map +1 -0
  5. package/lib/controls/2dEditor/2dEditor/index.less +6 -0
  6. package/lib/controls/2dEditor/2dView/index.d.ts +19 -0
  7. package/lib/controls/2dEditor/2dView/index.d.ts.map +1 -0
  8. package/lib/controls/2dEditor/2dView/index.js +75 -0
  9. package/lib/controls/2dEditor/2dView/index.js.map +1 -0
  10. package/lib/controls/2dEditor/2dView/index.less +9 -0
  11. package/lib/controls/2dEditor/components/card.d.ts +20 -0
  12. package/lib/controls/2dEditor/components/card.d.ts.map +1 -0
  13. package/lib/controls/2dEditor/components/card.js +66 -0
  14. package/lib/controls/2dEditor/components/card.js.map +1 -0
  15. package/lib/controls/2dEditor/components/component.less +52 -0
  16. package/lib/controls/2dEditor/components/hotspot.d.ts +17 -0
  17. package/lib/controls/2dEditor/components/hotspot.d.ts.map +1 -0
  18. package/lib/controls/2dEditor/components/hotspot.js +36 -0
  19. package/lib/controls/2dEditor/components/hotspot.js.map +1 -0
  20. package/lib/controls/2dEditor/components/html-box.d.ts +21 -0
  21. package/lib/controls/2dEditor/components/html-box.d.ts.map +1 -0
  22. package/lib/controls/2dEditor/components/html-box.js +51 -0
  23. package/lib/controls/2dEditor/components/html-box.js.map +1 -0
  24. package/lib/controls/2dEditor/components/image.d.ts +13 -0
  25. package/lib/controls/2dEditor/components/image.d.ts.map +1 -0
  26. package/lib/controls/2dEditor/components/image.js +61 -0
  27. package/lib/controls/2dEditor/components/image.js.map +1 -0
  28. package/lib/controls/2dEditor/components/line.d.ts +16 -0
  29. package/lib/controls/2dEditor/components/line.d.ts.map +1 -0
  30. package/lib/controls/2dEditor/components/line.js +42 -0
  31. package/lib/controls/2dEditor/components/line.js.map +1 -0
  32. package/lib/index.d.ts +3 -1
  33. package/lib/index.d.ts.map +1 -1
  34. package/lib/index.js +4 -1
  35. package/lib/index.js.map +1 -1
  36. package/lib/module/ltmpl-table.d.ts +1 -0
  37. package/lib/module/ltmpl-table.d.ts.map +1 -1
  38. package/lib/module/ltmpl-table.js +2 -2
  39. package/lib/module/ltmpl-table.js.map +1 -1
  40. package/lib/table/act-table.d.ts +5 -2
  41. package/lib/table/act-table.d.ts.map +1 -1
  42. package/lib/table/act-table.js +12 -9
  43. package/lib/table/act-table.js.map +1 -1
  44. package/lib/table/column/column-builder.js +2 -2
  45. package/lib/table/column/column-builder.js.map +1 -1
  46. package/lib/tmpl/interface.d.ts +2 -2
  47. package/lib/tmpl/interface.d.ts.map +1 -1
  48. package/lib/tree/tmpl-tree.d.ts.map +1 -1
  49. package/lib/tree/tmpl-tree.js +9 -7
  50. package/lib/tree/tmpl-tree.js.map +1 -1
  51. package/package.json +5 -1
  52. package/src/aldehyde/controls/2dEditor/2dEditor/index.less +6 -0
  53. package/src/aldehyde/controls/2dEditor/2dEditor/index.tsx +272 -0
  54. package/src/aldehyde/controls/2dEditor/2dView/index.less +9 -0
  55. package/src/aldehyde/controls/2dEditor/2dView/index.tsx +110 -0
  56. package/src/aldehyde/controls/2dEditor/components/card.tsx +106 -0
  57. package/src/aldehyde/controls/2dEditor/components/component.less +52 -0
  58. package/src/aldehyde/controls/2dEditor/components/data.d.ts +28 -0
  59. package/src/aldehyde/controls/2dEditor/components/hotspot.tsx +81 -0
  60. package/src/aldehyde/controls/2dEditor/components/html-box.tsx +102 -0
  61. package/src/aldehyde/controls/2dEditor/components/image.tsx +100 -0
  62. package/src/aldehyde/controls/2dEditor/components/line.tsx +74 -0
  63. package/src/aldehyde/index.tsx +7 -1
  64. package/src/aldehyde/module/ltmpl-table.tsx +3 -1
  65. package/src/aldehyde/table/act-table.tsx +15 -10
  66. package/src/aldehyde/table/column/column-builder.tsx +2 -2
  67. package/src/aldehyde/tmpl/interface.tsx +2 -2
  68. package/src/aldehyde/tree/tmpl-tree.tsx +9 -7
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { CommonNode } from "../components/data";
3
+ import "./index.less";
4
+ export type { CommonNode };
5
+ /**
6
+ * 主组件
7
+ */
8
+ interface Props {
9
+ defNodes?: CommonNode[];
10
+ dbClickAddNode?: boolean;
11
+ onAddNode?: (nodes: CommonNode[]) => void;
12
+ }
13
+ declare const Index: React.ForwardRefExoticComponent<Props & React.RefAttributes<unknown>>;
14
+ export default Index;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/aldehyde/controls/2dEditor/2dEditor/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6F,MAAM,OAAO,CAAC;AAOlH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,cAAc,CAAC;AAItB,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B;;GAEG;AAEH,UAAU,KAAK;IACX,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;CAC7C;AAED,QAAA,MAAM,KAAK,uEAqPT,CAAC;AAEH,eAAe,KAAK,CAAC"}
@@ -0,0 +1,201 @@
1
+ import React, { useState, useCallback, useMemo, useEffect, useRef, forwardRef, useImperativeHandle } from 'react';
2
+ import { Stage, Layer } from 'react-konva';
3
+ import { theme } from "antd";
4
+ import CardComponent from "../components/card";
5
+ import LineComponent from "../components/line";
6
+ import HotspotComponent from "../components/hotspot";
7
+ import ImageComponent from "../components/image";
8
+ import "./index.less";
9
+ const { useToken } = theme;
10
+ const Index = forwardRef((props, ref) => {
11
+ const { defNodes, dbClickAddNode = false, onAddNode } = props;
12
+ const [nodesMap, setNodesMap] = useState(); // 组件Map
13
+ const [selectedId, setSelectedId] = useState(); // 选中组件
14
+ const [scale, setScale] = useState(1); // 画布缩放比例
15
+ const [stagePos, setStagePos] = useState({ x: 0, y: 0 }); // 画布移动
16
+ const [stageSize, setStageSize] = useState({ width: 0, height: 0 }); // 画布尺寸
17
+ const stageRef = useRef(null);
18
+ const containerRef = useRef(null);
19
+ const { token } = useToken();
20
+ // 获取所有组件
21
+ const getAllNodes = () => {
22
+ if (!nodesMap) {
23
+ return [];
24
+ }
25
+ const nodesArr = Array.from(nodesMap.values()).sort((a, b) => a.zIndex - b.zIndex);
26
+ return nodesArr;
27
+ };
28
+ // 删除组件
29
+ const deleteNode = (node) => {
30
+ if (!nodesMap) {
31
+ return;
32
+ }
33
+ const temMap = new Map(nodesMap);
34
+ if (node.type === "hotspot") {
35
+ const nodesArr = Array.from(nodesMap.values());
36
+ const lineNode = nodesArr.find(r => r.sourceId === node.id);
37
+ if (lineNode) {
38
+ temMap.delete(lineNode.id);
39
+ temMap.delete(lineNode.targetId);
40
+ }
41
+ }
42
+ temMap.delete(node.id);
43
+ setNodesMap(temMap);
44
+ const temArr = Array.from(temMap.values()).sort((a, b) => a.zIndex - b.zIndex);
45
+ return temArr;
46
+ };
47
+ // 暴露给父组件的方法
48
+ useImperativeHandle(ref, () => ({ getAllNodes, deleteNode, stageSize }));
49
+ const handleStageSize = () => {
50
+ if (containerRef.current) {
51
+ const { clientWidth, clientHeight } = containerRef.current;
52
+ setStageSize({ width: clientWidth, height: clientHeight });
53
+ }
54
+ };
55
+ useEffect(() => {
56
+ handleStageSize();
57
+ window.addEventListener('resize', handleStageSize);
58
+ return () => window.removeEventListener('resize', handleStageSize);
59
+ }, []);
60
+ useEffect(() => {
61
+ if (defNodes === null || defNodes === void 0 ? void 0 : defNodes.length) {
62
+ const defNodesMap = new Map(defNodes.map(item => [item.id, item]));
63
+ setNodesMap(defNodesMap);
64
+ }
65
+ }, [defNodes]);
66
+ // 获取节点位置
67
+ const getNodePosition = useCallback((nodeId) => {
68
+ const node = nodesMap === null || nodesMap === void 0 ? void 0 : nodesMap.get(nodeId);
69
+ return node ? node.position : { x: 0, y: 0 };
70
+ }, [nodesMap]);
71
+ // 更新节点位置
72
+ const updateNodePosition = useCallback((id, newPosition) => {
73
+ setNodesMap(prev => {
74
+ const node = prev.get(id);
75
+ if (!node)
76
+ return prev;
77
+ const newMap = new Map(prev);
78
+ newMap.set(id, Object.assign(Object.assign({}, node), { position: newPosition }));
79
+ return newMap;
80
+ });
81
+ }, []);
82
+ // 组件拖拽处理
83
+ const handleNodeDragMove = useCallback((e, id) => {
84
+ const node = e.target;
85
+ updateNodePosition(id, { x: node.x(), y: node.y() });
86
+ }, [updateNodePosition]);
87
+ // 添加新节点
88
+ const handleStageDblClick = useCallback((e) => {
89
+ if (!dbClickAddNode || !e.currentTarget)
90
+ return;
91
+ const attrs = e.target.getAttrs();
92
+ const targetNode = attrs.id ? nodesMap.get(attrs.id) : undefined;
93
+ if (targetNode && !["image"].includes(targetNode.type)) { // 双击添加新节点,画布和图片上可添加
94
+ return;
95
+ }
96
+ const pointer = e.currentTarget.getPointerPosition();
97
+ if (!pointer)
98
+ return;
99
+ const nodeNumber = new Map(nodesMap).size;
100
+ const newId = Date.now().toString();
101
+ const newHotspotId = `hotspot-${newId}`;
102
+ const newCardId = `card-${newId}`;
103
+ const newLineId = `line-${newId}`;
104
+ const newLine = {
105
+ id: newLineId,
106
+ type: "line",
107
+ sourceId: newHotspotId,
108
+ targetId: newCardId,
109
+ zIndex: nodeNumber + 1
110
+ };
111
+ const newCardNode = {
112
+ id: newCardId,
113
+ type: "card",
114
+ position: { x: pointer.x + 200, y: pointer.y },
115
+ size: { width: 280, height: 190 },
116
+ zIndex: nodeNumber + 2
117
+ };
118
+ const newHotspot = {
119
+ id: newHotspotId,
120
+ type: "hotspot",
121
+ position: { x: pointer.x, y: pointer.y },
122
+ zIndex: nodeNumber + 3,
123
+ };
124
+ setNodesMap(prev => {
125
+ const newMap = new Map(prev);
126
+ newMap.set(newCardId, newCardNode);
127
+ newMap.set(newLineId, newLine);
128
+ newMap.set(newHotspotId, newHotspot);
129
+ return newMap;
130
+ });
131
+ if (onAddNode) {
132
+ onAddNode([newCardNode, newLine, newHotspot]);
133
+ }
134
+ }, [nodesMap]);
135
+ // 处理缩放
136
+ const handleWheel = useCallback((e) => {
137
+ e.evt.preventDefault();
138
+ const scaleBy = 1.1;
139
+ const stage = e.target.getStage();
140
+ const oldScale = stage.scaleX();
141
+ const pointer = stage.getPointerPosition();
142
+ const mousePointTo = {
143
+ x: (pointer.x - stage.x()) / oldScale,
144
+ y: (pointer.y - stage.y()) / oldScale,
145
+ };
146
+ const newScale = e.evt.deltaY > 0 ? oldScale / scaleBy : oldScale * scaleBy;
147
+ const clampedScale = Math.max(0.1, Math.min(newScale, 5));
148
+ stage.scale({ x: clampedScale, y: clampedScale });
149
+ stage.position({
150
+ x: pointer.x - mousePointTo.x * clampedScale,
151
+ y: pointer.y - mousePointTo.y * clampedScale,
152
+ });
153
+ setScale(clampedScale);
154
+ setStagePos({ x: stage.x(), y: stage.y() });
155
+ }, []);
156
+ // 处理画布拖拽
157
+ const handleStageDragEnd = useCallback((e) => {
158
+ const stage = e.target;
159
+ setStagePos({ x: stage.x(), y: stage.y() });
160
+ }, []);
161
+ // 更新组件配置
162
+ const handleChangeNode = (id, val) => {
163
+ setNodesMap(prev => {
164
+ const nodeCur = prev.get(id);
165
+ if (!nodeCur)
166
+ return prev;
167
+ const newMap = new Map(prev);
168
+ newMap.set(id, val);
169
+ return newMap;
170
+ });
171
+ };
172
+ // 组件渲染
173
+ const renderNode = (node) => {
174
+ switch (node.type) {
175
+ case "line": // 连线
176
+ return React.createElement(LineComponent, { key: node.id, node: node, getNodePosition: getNodePosition, lineType: "line" });
177
+ case "hotspot": // 热点
178
+ return React.createElement(HotspotComponent, { key: node.id, node: node, onDragMove: handleNodeDragMove, isSelected: node.id === selectedId, onSelect: () => setSelectedId(node.id), onChange: (val) => handleChangeNode(node.id, val) });
179
+ case "card": // 卡片
180
+ return React.createElement(CardComponent, { node: node, onDragMove: updateNodePosition, isSelected: node.id === selectedId, onSelect: () => setSelectedId(node.id), onChange: (val) => handleChangeNode(node.id, val) });
181
+ case "image":
182
+ return React.createElement(ImageComponent, { key: node.id, node: node, onDragMove: handleNodeDragMove, isSelected: node.id === selectedId, onSelect: () => setSelectedId(node.id), onChange: (val) => handleChangeNode(node.id, val) });
183
+ default:
184
+ break;
185
+ }
186
+ };
187
+ // 置空选中的组件
188
+ const checkDeselect = (e) => {
189
+ const clickedOnEmpty = e.target === e.target.getStage();
190
+ if (clickedOnEmpty) {
191
+ setSelectedId(null);
192
+ }
193
+ };
194
+ // 节点Map转数组并排序
195
+ const nodesArr = useMemo(() => nodesMap ? Array.from(nodesMap.values()).sort((a, b) => a.zIndex - b.zIndex) : [], [nodesMap]);
196
+ return (React.createElement("div", { ref: containerRef, className: 'editor-2d', style: { border: `1px solid ${token.colorBorderSecondary}` } },
197
+ React.createElement(Stage, { ref: stageRef, width: stageSize.width, height: stageSize.height, onDblClick: handleStageDblClick, onClick: checkDeselect },
198
+ React.createElement(Layer, null, nodesArr.map(node => renderNode(node))))));
199
+ });
200
+ export default Index;
201
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/aldehyde/controls/2dEditor/2dEditor/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ .editor-2d {
2
+ width: 100%;
3
+ height: 100%;
4
+ position: relative;
5
+ overflow: hidden;
6
+ }
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { CommonNode } from "../components/data";
3
+ import "./index.less";
4
+ export type { CommonNode };
5
+ /**
6
+ * 渲染组件
7
+ */
8
+ interface Props {
9
+ config?: {
10
+ nodes: CommonNode[];
11
+ canvasSize: {
12
+ width: number;
13
+ height: number;
14
+ };
15
+ };
16
+ }
17
+ declare const Index: (props: Props) => React.JSX.Element;
18
+ export default Index;
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/aldehyde/controls/2dEditor/2dView/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAMjF,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,cAAc,CAAC;AAEtB,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B;;GAEG;AAEH,UAAU,KAAK;IACX,MAAM,CAAC,EAAE;QACL,KAAK,EAAE,UAAU,EAAE,CAAC;QACpB,UAAU,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KACjD,CAAA;CACJ;AAED,QAAA,MAAM,KAAK,GAAI,OAAO,KAAK,sBAqF1B,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,75 @@
1
+ import React, { useState, useCallback, useMemo, useEffect, useRef } from 'react';
2
+ import { Stage, Layer } from 'react-konva';
3
+ import CardComponent from "../components/card";
4
+ import LineComponent from "../components/line";
5
+ import HotspotComponent from "../components/hotspot";
6
+ import ImageComponent from "../components/image";
7
+ import "./index.less";
8
+ const Index = (props) => {
9
+ const { config } = props;
10
+ const [nodesMap, setNodesMap] = useState(); // 组件Map
11
+ const [canvasSize, setCanvasSize] = useState();
12
+ const [stageScale, setStageScale] = useState(1);
13
+ const stageRef = useRef(null);
14
+ const viewRef = useRef(null);
15
+ // 获取缩放比例
16
+ const getScale = () => {
17
+ // 创建 ResizeObserver 实例
18
+ const observer = new ResizeObserver((entries) => {
19
+ const entry = entries[0];
20
+ const { width, height } = entry.contentRect;
21
+ const canvasSize = config.canvasSize;
22
+ const widthScale = width / canvasSize.width;
23
+ const heightScale = height / canvasSize.height;
24
+ setStageScale(widthScale > heightScale ? heightScale : widthScale);
25
+ });
26
+ observer.observe(viewRef.current);
27
+ return observer;
28
+ };
29
+ useEffect(() => {
30
+ var _a;
31
+ let observer;
32
+ if (config) {
33
+ const defNodesMap = new Map(((_a = config.nodes) === null || _a === void 0 ? void 0 : _a.map(item => [item.id, item])) || []);
34
+ setNodesMap(defNodesMap);
35
+ setCanvasSize(config.canvasSize);
36
+ observer = getScale();
37
+ }
38
+ return () => {
39
+ // 取消监听
40
+ observer && observer.disconnect();
41
+ };
42
+ }, [config]);
43
+ // 获取节点位置
44
+ const getNodePosition = useCallback((nodeId) => {
45
+ const node = nodesMap === null || nodesMap === void 0 ? void 0 : nodesMap.get(nodeId);
46
+ return node ? node.position : { x: 0, y: 0 };
47
+ }, [nodesMap]);
48
+ // 组件渲染
49
+ const renderNode = (node) => {
50
+ const commonProps = {
51
+ key: node.id,
52
+ node,
53
+ isDesignMode: false
54
+ };
55
+ switch (node.type) {
56
+ case "line": // 连线
57
+ return React.createElement(LineComponent, Object.assign({}, commonProps, { getNodePosition: getNodePosition, lineType: "line" }));
58
+ case "hotspot": // 热点
59
+ return React.createElement(HotspotComponent, Object.assign({}, commonProps));
60
+ case "card": // 卡片
61
+ return React.createElement(CardComponent, Object.assign({}, commonProps));
62
+ case "image":
63
+ return React.createElement(ImageComponent, Object.assign({}, commonProps));
64
+ default:
65
+ break;
66
+ }
67
+ };
68
+ // 节点Map转数组并排序
69
+ const nodesArr = useMemo(() => nodesMap ? Array.from(nodesMap.values()).sort((a, b) => a.zIndex - b.zIndex) : [], [nodesMap]);
70
+ return (React.createElement("div", { className: 'view-2d', ref: viewRef },
71
+ React.createElement(Stage, { ref: stageRef, width: canvasSize.width, height: canvasSize.height, scale: { x: stageScale, y: stageScale } },
72
+ React.createElement(Layer, null, nodesArr.map(node => renderNode(node))))));
73
+ };
74
+ export default Index;
75
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/aldehyde/controls/2dEditor/2dView/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ .view-2d {
2
+ width: 100%;
3
+ height: 100%;
4
+ position: relative;
5
+ overflow: hidden;
6
+ display: flex;
7
+ justify-content: center;
8
+ align-items: center;
9
+ }
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { BaseNode } from "./data";
3
+ import "./component.less";
4
+ /**
5
+ * 卡片组件
6
+ */
7
+ interface Props {
8
+ node: BaseNode;
9
+ onDragMove?: (id: string, position: {
10
+ x: number;
11
+ y: number;
12
+ }) => void;
13
+ isSelected?: boolean;
14
+ onSelect?: () => void;
15
+ onChange?: (node: BaseNode) => void;
16
+ isDesignMode?: boolean;
17
+ }
18
+ declare const Index: (props: Props) => React.JSX.Element;
19
+ export default Index;
20
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../../../../src/aldehyde/controls/2dEditor/components/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAGxE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,kBAAkB,CAAC;AAI1B;;GAEG;AAEH,UAAU,KAAK;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACtE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,QAAA,MAAM,KAAK,GAAI,OAAO,KAAK,sBAkF1B,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,66 @@
1
+ import React, { useState, useRef, useEffect, useCallback } from 'react';
2
+ import { theme, Row, Col } from "antd";
3
+ import HtmlBox from "./html-box";
4
+ import "./component.less";
5
+ const { useToken } = theme;
6
+ const Index = (props) => {
7
+ const { node, onDragMove, isSelected, onSelect, onChange, isDesignMode = true } = props;
8
+ const { id, position, draggable = true, rotation } = node;
9
+ const [isDragging, setIsDragging] = useState(false);
10
+ const isDraggingRef = useRef(false);
11
+ const { token } = useToken();
12
+ const handleMouseDown = useCallback((e) => {
13
+ if (!draggable) {
14
+ return;
15
+ }
16
+ e.preventDefault();
17
+ e.stopPropagation();
18
+ setIsDragging(true);
19
+ isDraggingRef.current = true;
20
+ }, [id, position]);
21
+ const handleMouseMove = (e) => {
22
+ if (!isDraggingRef.current || !onDragMove)
23
+ return;
24
+ const newX = e.clientX;
25
+ const newY = e.clientY;
26
+ onDragMove(id, { x: newX, y: newY });
27
+ };
28
+ const handleMouseUp = () => {
29
+ if (isDraggingRef.current) {
30
+ setIsDragging(false);
31
+ isDraggingRef.current = false;
32
+ }
33
+ };
34
+ // Html监听组件位置变化
35
+ useEffect(() => {
36
+ if (id) {
37
+ window.addEventListener('mousemove', handleMouseMove);
38
+ window.addEventListener('mouseup', handleMouseUp);
39
+ }
40
+ return () => {
41
+ window.removeEventListener('mousemove', handleMouseMove);
42
+ window.removeEventListener('mouseup', handleMouseUp);
43
+ };
44
+ }, [id]);
45
+ return (React.createElement(HtmlBox, { node: node, onChange: onChange, isSelected: isSelected, onSelect: onSelect, onDragMove: onDragMove, isDesignMode: isDesignMode },
46
+ React.createElement("div", { className: 'card-component', style: {
47
+ transform: `translate(-50%, -50%) rotate(${rotation || 0}deg)`,
48
+ cursor: isDesignMode && isDragging ? 'grab' : 'default',
49
+ background: token.colorBgContainer,
50
+ border: `1px solid ${token.colorBorderSecondary}`
51
+ }, onMouseDown: handleMouseDown, onClick: onSelect },
52
+ React.createElement("div", { className: 'card-title' }, "\u76D1\u6D4B\u70B91"),
53
+ React.createElement("div", { className: 'card-detail' },
54
+ React.createElement(Row, { gutter: [16, 16] }, [{ title: "传感器编号", value: "E2125021822" },
55
+ { title: "温度", value: 20, unit: "℃" },
56
+ { title: "振动", value: 20, unit: "m/s²" },
57
+ { title: "最大能量", value: 20 }
58
+ ].map((item, index) => React.createElement(Col, { className: "card-detail-item", span: 24, key: index },
59
+ React.createElement("div", { className: "card-detail-item-title" },
60
+ item.title,
61
+ "\uFF1A"),
62
+ React.createElement("div", { className: "card-detail-item-value" }, item.value || item.value === 0 ? item.value : "-"),
63
+ item.unit ? React.createElement("div", { className: 'card-detail-item-unit' }, item.unit) : "")))))));
64
+ };
65
+ export default Index;
66
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["../../../../../../src/aldehyde/controls/2dEditor/components/card.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ .card-component {
2
+ width: 100%;
3
+ height: 100%;
4
+ user-select: none;
5
+ pointer-events: auto;
6
+ border-radius: 12px;
7
+ overflow: hidden;
8
+
9
+ .card-title {
10
+ font-size: 18px;
11
+ padding: 12px;
12
+ position: relative;
13
+ }
14
+
15
+ .card-title::after {
16
+ content: '';
17
+ position: absolute;
18
+ left: 0;
19
+ bottom: 0;
20
+ width: 100%;
21
+ height: 1px;
22
+ background: linear-gradient(54deg,
23
+ rgba(12, 80, 88, 0) 1.43%,
24
+ #0C5058 7.04%,
25
+ rgba(12, 80, 88, 0) 100%);
26
+ }
27
+
28
+ .card-detail {
29
+ padding: 12px 16px;
30
+
31
+ .card-detail-item {
32
+ display: flex;
33
+ align-items: center;
34
+
35
+ .card-detail-item-title {
36
+ white-space: nowrap;
37
+ }
38
+
39
+ .card-detail-item-value {
40
+ text-overflow: ellipsis;
41
+ overflow: hidden;
42
+ white-space: nowrap;
43
+ max-height: 22px;
44
+ color: #F7B500;
45
+ }
46
+
47
+ .card-detail-item-unit {
48
+ margin-left: 4px;
49
+ }
50
+ }
51
+ }
52
+ }
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { BaseNode } from "./data";
3
+ interface Props {
4
+ node: BaseNode;
5
+ onDragMove?: (e: any, id: string) => void;
6
+ isSelected?: boolean;
7
+ onSelect?: () => void;
8
+ onChange?: (node: BaseNode) => void;
9
+ style?: {
10
+ fill: string;
11
+ stroke: string;
12
+ };
13
+ isDesignMode?: boolean;
14
+ }
15
+ declare const Index: (props: Props) => React.JSX.Element;
16
+ export default Index;
17
+ //# sourceMappingURL=hotspot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotspot.d.ts","sourceRoot":"","sources":["../../../../../../src/aldehyde/controls/2dEditor/components/hotspot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAG3D,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAIlC,UAAU,KAAK;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,CAAC,CAAC,KAAA,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAGD,QAAA,MAAM,KAAK,GAAI,OAAO,KAAK,sBA4D1B,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,36 @@
1
+ import React, { Fragment, useRef, useEffect } from 'react';
2
+ import { Circle, Transformer } from 'react-konva';
3
+ import { theme } from "antd";
4
+ const { useToken } = theme;
5
+ // 热点组件
6
+ const Index = (props) => {
7
+ const { node, onDragMove, style, isSelected, onSelect, onChange, isDesignMode = true } = props;
8
+ const { position, size, draggable = true, selected = true, rotation } = node;
9
+ const nodeRef = useRef(null);
10
+ const trRef = useRef(null);
11
+ const { token } = useToken();
12
+ useEffect(() => {
13
+ trRef.current.nodes(isDesignMode && selected && isSelected ? [nodeRef.current] : []); // 选中设置可拖拽size
14
+ }, [isSelected]);
15
+ // 尺寸拖拽、旋转后执行
16
+ const onTransformEnd = () => {
17
+ const nodeCur = nodeRef.current;
18
+ const scaleX = nodeCur.scaleX();
19
+ const scaleY = nodeCur.scaleY();
20
+ const rotation = nodeCur.rotation();
21
+ nodeCur.scaleX(1);
22
+ nodeCur.scaleY(1);
23
+ onChange(Object.assign(Object.assign({}, node), { position: { x: nodeCur.x(), y: nodeCur.y() }, size: { width: Math.max(5, nodeCur.width() * scaleX), height: Math.max(nodeCur.height() * scaleY) }, rotation }));
24
+ };
25
+ return (React.createElement(Fragment, null,
26
+ React.createElement(Circle, { id: node.id, ref: nodeRef, x: position.x, y: position.y, radius: (size === null || size === void 0 ? void 0 : size.width) || 8, fill: (style === null || style === void 0 ? void 0 : style.fill) || token.colorPrimary, stroke: (style === null || style === void 0 ? void 0 : style.stroke) || "#ffffff", strokeWidth: 0, draggable: isDesignMode && draggable, shadowColor: "black", shadowBlur: 4, shadowOpacity: 0.3, onDragMove: (e) => onDragMove && onDragMove(e, node.id), onClick: onSelect, onTransformEnd: onTransformEnd, rotation: rotation }),
27
+ React.createElement(Transformer, { ref: trRef, flipEnabled: false, boundBoxFunc: (oldBox, newBox) => {
28
+ // limit resize
29
+ if (Math.abs(newBox.width) < 5 || Math.abs(newBox.height) < 5) {
30
+ return oldBox;
31
+ }
32
+ return newBox;
33
+ } })));
34
+ };
35
+ export default Index;
36
+ //# sourceMappingURL=hotspot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotspot.js","sourceRoot":"","sources":["../../../../../../src/aldehyde/controls/2dEditor/components/hotspot.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { BaseNode } from "./data";
3
+ /**
4
+ * Html盒子组件
5
+ * 包装Html组件,以设置组件宽高和旋转
6
+ */
7
+ interface Props {
8
+ node: BaseNode;
9
+ onDragMove?: (id: string, position: {
10
+ x: number;
11
+ y: number;
12
+ }) => void;
13
+ onChange?: (node: BaseNode) => void;
14
+ isSelected?: boolean;
15
+ onSelect?: () => void;
16
+ isDesignMode?: boolean;
17
+ children: ReactNode;
18
+ }
19
+ declare const Index: (props: Props) => React.JSX.Element;
20
+ export default Index;
21
+ //# sourceMappingURL=html-box.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-box.d.ts","sourceRoot":"","sources":["../../../../../../src/aldehyde/controls/2dEditor/components/html-box.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA+B,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC;;;GAGG;AAEH,UAAU,KAAK;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACtE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,QAAA,MAAM,KAAK,GAAI,OAAO,KAAK,sBA+E1B,CAAC;AAEF,eAAe,KAAK,CAAC"}