@zenode/designer 3.5.7 → 3.5.9
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.
- package/README.md +3 -3
- package/dist/defaultConfig.cjs +542 -0
- package/dist/defaultConfig.cjs.map +1 -0
- package/dist/defaultConfig.js +540 -0
- package/dist/defaultConfig.js.map +1 -0
- package/dist/defaults-B8cG7xLG.js +181 -0
- package/dist/defaults-B8cG7xLG.js.map +1 -0
- package/dist/defaults-Bp5gmH4b.js +179 -0
- package/dist/defaults-Bp5gmH4b.js.map +1 -0
- package/dist/events/mouseClick.js +34 -34
- package/dist/events/mouseMove.js +82 -82
- package/dist/testConfig.cjs +553 -0
- package/dist/testConfig.cjs.map +1 -0
- package/dist/testConfig.js +551 -0
- package/dist/testConfig.js.map +1 -0
- package/package.json +1 -1
- package/dist/config/testXML.cjs +0 -17
- package/dist/config/testXML.cjs.map +0 -1
- package/dist/config/testXML.d.ts +0 -1
- package/dist/config/testXML.js +0 -15
- package/dist/config/testXML.js.map +0 -1
- package/dist/core/serialization.cjs +0 -123
- package/dist/core/serialization.cjs.map +0 -1
- package/dist/core/serialization.d.ts +0 -26
- package/dist/core/serialization.js +0 -121
- package/dist/core/serialization.js.map +0 -1
- package/dist/events/mouseClick.cjs +0 -36
- package/dist/events/mouseClick.cjs.map +0 -1
- package/dist/events/mouseMove.cjs +0 -104
- package/dist/events/mouseMove.cjs.map +0 -1
- package/dist/icons.bundle.js +0 -763
- package/dist/icons.bundle.js.map +0 -1
- package/dist/icons.cjs +0 -105
- package/dist/icons.cjs.map +0 -1
- package/dist/icons.d.ts +0 -7
- package/dist/icons.js +0 -89
- package/dist/icons.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/createElement.cjs +0 -36
- package/dist/node_modules/lucide/dist/esm/createElement.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/createElement.js +0 -34
- package/dist/node_modules/lucide/dist/esm/createElement.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/defaultAttributes.cjs +0 -23
- package/dist/node_modules/lucide/dist/esm/defaultAttributes.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/defaultAttributes.js +0 -21
- package/dist/node_modules/lucide/dist/esm/defaultAttributes.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/arrow-down-right.cjs +0 -16
- package/dist/node_modules/lucide/dist/esm/icons/arrow-down-right.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/arrow-down-right.js +0 -14
- package/dist/node_modules/lucide/dist/esm/icons/arrow-down-right.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/arrow-right.cjs +0 -16
- package/dist/node_modules/lucide/dist/esm/icons/arrow-right.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/arrow-right.js +0 -14
- package/dist/node_modules/lucide/dist/esm/icons/arrow-right.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/arrow-up-right.cjs +0 -16
- package/dist/node_modules/lucide/dist/esm/icons/arrow-up-right.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/arrow-up-right.js +0 -14
- package/dist/node_modules/lucide/dist/esm/icons/arrow-up-right.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/box.cjs +0 -22
- package/dist/node_modules/lucide/dist/esm/icons/box.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/box.js +0 -20
- package/dist/node_modules/lucide/dist/esm/icons/box.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/chevron-down.cjs +0 -13
- package/dist/node_modules/lucide/dist/esm/icons/chevron-down.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/chevron-down.js +0 -11
- package/dist/node_modules/lucide/dist/esm/icons/chevron-down.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/chevron-right.cjs +0 -13
- package/dist/node_modules/lucide/dist/esm/icons/chevron-right.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/chevron-right.js +0 -11
- package/dist/node_modules/lucide/dist/esm/icons/chevron-right.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/circle-alert.cjs +0 -17
- package/dist/node_modules/lucide/dist/esm/icons/circle-alert.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/circle-alert.js +0 -15
- package/dist/node_modules/lucide/dist/esm/icons/circle-alert.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/circle-check-big.cjs +0 -16
- package/dist/node_modules/lucide/dist/esm/icons/circle-check-big.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/circle-check-big.js +0 -14
- package/dist/node_modules/lucide/dist/esm/icons/circle-check-big.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/circle-question-mark.cjs +0 -17
- package/dist/node_modules/lucide/dist/esm/icons/circle-question-mark.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/circle-question-mark.js +0 -15
- package/dist/node_modules/lucide/dist/esm/icons/circle-question-mark.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/circle.cjs +0 -13
- package/dist/node_modules/lucide/dist/esm/icons/circle.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/circle.js +0 -11
- package/dist/node_modules/lucide/dist/esm/icons/circle.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/cloud.cjs +0 -13
- package/dist/node_modules/lucide/dist/esm/icons/cloud.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/cloud.js +0 -11
- package/dist/node_modules/lucide/dist/esm/icons/cloud.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/copy.cjs +0 -16
- package/dist/node_modules/lucide/dist/esm/icons/copy.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/copy.js +0 -14
- package/dist/node_modules/lucide/dist/esm/icons/copy.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/database.cjs +0 -17
- package/dist/node_modules/lucide/dist/esm/icons/database.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/database.js +0 -15
- package/dist/node_modules/lucide/dist/esm/icons/database.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/diamond.cjs +0 -20
- package/dist/node_modules/lucide/dist/esm/icons/diamond.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/diamond.js +0 -18
- package/dist/node_modules/lucide/dist/esm/icons/diamond.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/download.cjs +0 -17
- package/dist/node_modules/lucide/dist/esm/icons/download.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/download.js +0 -15
- package/dist/node_modules/lucide/dist/esm/icons/download.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/eye-off.cjs +0 -28
- package/dist/node_modules/lucide/dist/esm/icons/eye-off.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/eye-off.js +0 -26
- package/dist/node_modules/lucide/dist/esm/icons/eye-off.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/eye.cjs +0 -21
- package/dist/node_modules/lucide/dist/esm/icons/eye.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/eye.js +0 -19
- package/dist/node_modules/lucide/dist/esm/icons/eye.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/grid-3x3.cjs +0 -19
- package/dist/node_modules/lucide/dist/esm/icons/grid-3x3.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/grid-3x3.js +0 -17
- package/dist/node_modules/lucide/dist/esm/icons/grid-3x3.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/history.cjs +0 -17
- package/dist/node_modules/lucide/dist/esm/icons/history.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/history.js +0 -15
- package/dist/node_modules/lucide/dist/esm/icons/history.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/info.cjs +0 -17
- package/dist/node_modules/lucide/dist/esm/icons/info.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/info.js +0 -15
- package/dist/node_modules/lucide/dist/esm/icons/info.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/lasso.cjs +0 -17
- package/dist/node_modules/lucide/dist/esm/icons/lasso.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/lasso.js +0 -15
- package/dist/node_modules/lucide/dist/esm/icons/lasso.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/maximize.cjs +0 -18
- package/dist/node_modules/lucide/dist/esm/icons/maximize.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/maximize.js +0 -16
- package/dist/node_modules/lucide/dist/esm/icons/maximize.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/minimize.cjs +0 -18
- package/dist/node_modules/lucide/dist/esm/icons/minimize.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/minimize.js +0 -16
- package/dist/node_modules/lucide/dist/esm/icons/minimize.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/mouse-pointer.cjs +0 -21
- package/dist/node_modules/lucide/dist/esm/icons/mouse-pointer.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/mouse-pointer.js +0 -19
- package/dist/node_modules/lucide/dist/esm/icons/mouse-pointer.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/move.cjs +0 -20
- package/dist/node_modules/lucide/dist/esm/icons/move.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/move.js +0 -18
- package/dist/node_modules/lucide/dist/esm/icons/move.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/panels-top-left.cjs +0 -17
- package/dist/node_modules/lucide/dist/esm/icons/panels-top-left.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/panels-top-left.js +0 -15
- package/dist/node_modules/lucide/dist/esm/icons/panels-top-left.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/pen.cjs +0 -20
- package/dist/node_modules/lucide/dist/esm/icons/pen.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/pen.js +0 -18
- package/dist/node_modules/lucide/dist/esm/icons/pen.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/plus.cjs +0 -16
- package/dist/node_modules/lucide/dist/esm/icons/plus.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/plus.js +0 -14
- package/dist/node_modules/lucide/dist/esm/icons/plus.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/search.cjs +0 -16
- package/dist/node_modules/lucide/dist/esm/icons/search.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/search.js +0 -14
- package/dist/node_modules/lucide/dist/esm/icons/search.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/settings.cjs +0 -21
- package/dist/node_modules/lucide/dist/esm/icons/settings.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/settings.js +0 -19
- package/dist/node_modules/lucide/dist/esm/icons/settings.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/share-2.cjs +0 -19
- package/dist/node_modules/lucide/dist/esm/icons/share-2.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/share-2.js +0 -17
- package/dist/node_modules/lucide/dist/esm/icons/share-2.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/square.cjs +0 -13
- package/dist/node_modules/lucide/dist/esm/icons/square.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/square.js +0 -11
- package/dist/node_modules/lucide/dist/esm/icons/square.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/sticky-note.cjs +0 -21
- package/dist/node_modules/lucide/dist/esm/icons/sticky-note.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/sticky-note.js +0 -19
- package/dist/node_modules/lucide/dist/esm/icons/sticky-note.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/trash-2.cjs +0 -19
- package/dist/node_modules/lucide/dist/esm/icons/trash-2.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/trash-2.js +0 -17
- package/dist/node_modules/lucide/dist/esm/icons/trash-2.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/triangle.cjs +0 -15
- package/dist/node_modules/lucide/dist/esm/icons/triangle.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/triangle.js +0 -13
- package/dist/node_modules/lucide/dist/esm/icons/triangle.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/x.cjs +0 -16
- package/dist/node_modules/lucide/dist/esm/icons/x.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/x.js +0 -14
- package/dist/node_modules/lucide/dist/esm/icons/x.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/zap.cjs +0 -20
- package/dist/node_modules/lucide/dist/esm/icons/zap.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/icons/zap.js +0 -18
- package/dist/node_modules/lucide/dist/esm/icons/zap.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/lucide.cjs +0 -56
- package/dist/node_modules/lucide/dist/esm/lucide.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/lucide.js +0 -54
- package/dist/node_modules/lucide/dist/esm/lucide.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/replaceElement.cjs +0 -73
- package/dist/node_modules/lucide/dist/esm/replaceElement.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/replaceElement.js +0 -67
- package/dist/node_modules/lucide/dist/esm/replaceElement.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/shared/src/utils/hasA11yProp.cjs +0 -20
- package/dist/node_modules/lucide/dist/esm/shared/src/utils/hasA11yProp.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/shared/src/utils/hasA11yProp.js +0 -18
- package/dist/node_modules/lucide/dist/esm/shared/src/utils/hasA11yProp.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/shared/src/utils/mergeClasses.cjs +0 -15
- package/dist/node_modules/lucide/dist/esm/shared/src/utils/mergeClasses.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/shared/src/utils/mergeClasses.js +0 -13
- package/dist/node_modules/lucide/dist/esm/shared/src/utils/mergeClasses.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/shared/src/utils/toCamelCase.cjs +0 -16
- package/dist/node_modules/lucide/dist/esm/shared/src/utils/toCamelCase.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/shared/src/utils/toCamelCase.js +0 -14
- package/dist/node_modules/lucide/dist/esm/shared/src/utils/toCamelCase.js.map +0 -1
- package/dist/node_modules/lucide/dist/esm/shared/src/utils/toPascalCase.cjs +0 -19
- package/dist/node_modules/lucide/dist/esm/shared/src/utils/toPascalCase.cjs.map +0 -1
- package/dist/node_modules/lucide/dist/esm/shared/src/utils/toPascalCase.js +0 -17
- package/dist/node_modules/lucide/dist/esm/shared/src/utils/toPascalCase.js.map +0 -1
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const defaultActions = [
|
|
4
|
+
{
|
|
5
|
+
id: "delete",
|
|
6
|
+
icon: `<i data-lucide="trash-2" style="width:16px; height:16px;"></i>`,
|
|
7
|
+
tooltip: "Delete Node",
|
|
8
|
+
group: "danger",
|
|
9
|
+
targets: ["node", "edge", "group"],
|
|
10
|
+
style: {
|
|
11
|
+
color: "#ff453a",
|
|
12
|
+
hoverColor: "rgba(255, 69, 58, 0.2)"
|
|
13
|
+
},
|
|
14
|
+
handler: (target, engine, event) => {
|
|
15
|
+
if (target.kind === "node") {
|
|
16
|
+
engine.setSelectedNodeIds([target.id]);
|
|
17
|
+
}
|
|
18
|
+
else if (target.kind === "edge") {
|
|
19
|
+
engine.setSelectedEdgeIds([target.id]);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
// Group: data is array of nodeIds
|
|
23
|
+
engine.setSelectedNodeIds(target.data);
|
|
24
|
+
}
|
|
25
|
+
engine.deleteSelection();
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
id: "duplicate",
|
|
30
|
+
icon: `<i data-lucide="copy" style="width:16px; height:16px;"></i>`,
|
|
31
|
+
tooltip: "Duplicate",
|
|
32
|
+
group: "primary",
|
|
33
|
+
targets: ["node"],
|
|
34
|
+
handler: (target, engine, event) => {
|
|
35
|
+
if (target.kind === "node") {
|
|
36
|
+
engine.duplicateNode(target.id);
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
id: "edit-content",
|
|
42
|
+
icon: `<i data-lucide="edit-3" style="width:16px; height:16px;"></i>`,
|
|
43
|
+
tooltip: "Edit Content",
|
|
44
|
+
group: "primary",
|
|
45
|
+
targets: ["node"],
|
|
46
|
+
handler: (target, engine, event) => {
|
|
47
|
+
engine.emit("contextpad:edit-content", { target });
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
id: "connect",
|
|
52
|
+
icon: `<i data-lucide="link-2" style="width:16px; height:16px;"></i>`,
|
|
53
|
+
tooltip: "Connect",
|
|
54
|
+
group: "primary",
|
|
55
|
+
targets: ["node", "group"],
|
|
56
|
+
handler: (target, engine, event) => {
|
|
57
|
+
const isEnabled = engine.isConnectionModeEnabled();
|
|
58
|
+
engine.setConnectionModeEnabled(!isEnabled);
|
|
59
|
+
},
|
|
60
|
+
isActive: (target, engine) => {
|
|
61
|
+
return engine.isConnectionModeEnabled();
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: "rotate",
|
|
66
|
+
icon: `<i data-lucide="rotate-cw" style="width:16px; height:16px;"></i>`,
|
|
67
|
+
tooltip: "Toggle Rotation Mode",
|
|
68
|
+
group: "secondary",
|
|
69
|
+
targets: ["node"],
|
|
70
|
+
handler: (target, engine, event) => {
|
|
71
|
+
if (target.kind === "node") {
|
|
72
|
+
const isEnabled = engine.isRotationModeEnabled();
|
|
73
|
+
engine.setRotationModeEnabled(!isEnabled);
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
isActive: (target, engine) => {
|
|
77
|
+
return engine.isRotationModeEnabled();
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
id: "reshape",
|
|
82
|
+
icon: `<i data-lucide="maximize-2" style="width:16px; height:16px;"></i>`,
|
|
83
|
+
tooltip: "Toggle Resize Mode",
|
|
84
|
+
group: "secondary",
|
|
85
|
+
targets: ["node"],
|
|
86
|
+
handler: (target, engine, event) => {
|
|
87
|
+
if (target.kind === "node") {
|
|
88
|
+
const isEnabled = engine.isResizeModeEnabled();
|
|
89
|
+
engine.setResizeModeEnabled(!isEnabled);
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
isActive: (target, engine) => {
|
|
93
|
+
return engine.isResizeModeEnabled();
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
id: "style",
|
|
98
|
+
icon: `<i data-lucide="palette" style="width:16px; height:16px;"></i>`,
|
|
99
|
+
tooltip: "Change Style",
|
|
100
|
+
group: "secondary",
|
|
101
|
+
targets: ["node"],
|
|
102
|
+
handler: (target, engine, event) => {
|
|
103
|
+
engine.emit("contextpad:style", { target });
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
id: "bringToFront",
|
|
108
|
+
icon: `<i data-lucide="arrow-up" style="width:16px; height:16px;"></i>`,
|
|
109
|
+
tooltip: "Bring to Front",
|
|
110
|
+
group: "secondary",
|
|
111
|
+
targets: ["node"],
|
|
112
|
+
handler: (target, engine, event) => {
|
|
113
|
+
if (target.kind === "node") {
|
|
114
|
+
engine.bringToFront([target.id]);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
id: "sendToBack",
|
|
120
|
+
icon: `<i data-lucide="arrow-down" style="width:16px; height:16px;"></i>`,
|
|
121
|
+
tooltip: "Send to Back",
|
|
122
|
+
group: "secondary",
|
|
123
|
+
targets: ["node"],
|
|
124
|
+
handler: (target, engine, event) => {
|
|
125
|
+
if (target.kind === "node") {
|
|
126
|
+
engine.sendToBack([target.id]);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
id: "toggle-dashed",
|
|
132
|
+
icon: `<i data-lucide="square-dashed" style="width:16px; height:16px;"></i>`,
|
|
133
|
+
tooltip: "Toggle Dashed",
|
|
134
|
+
group: "primary",
|
|
135
|
+
targets: ["edge"],
|
|
136
|
+
handler: (target, engine, event) => {
|
|
137
|
+
if (target.kind === "edge") {
|
|
138
|
+
engine.toggleConnectionStyle(target.id, 'dashed');
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
isActive: (target, engine) => {
|
|
142
|
+
const conn = engine.getConnections().find((c) => c.id === target.id);
|
|
143
|
+
return (conn === null || conn === void 0 ? void 0 : conn.dashed) === true;
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
id: "toggle-animated",
|
|
148
|
+
icon: `<i data-lucide="activity" style="width:16px; height:16px;"></i>`,
|
|
149
|
+
tooltip: "Toggle Animation",
|
|
150
|
+
group: "primary",
|
|
151
|
+
targets: ["edge"],
|
|
152
|
+
handler: (target, engine, event) => {
|
|
153
|
+
if (target.kind === "edge") {
|
|
154
|
+
engine.toggleConnectionStyle(target.id, 'animated');
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
isActive: (target, engine) => {
|
|
158
|
+
const conn = engine.getConnections().find((c) => c.id === target.id);
|
|
159
|
+
return (conn === null || conn === void 0 ? void 0 : conn.animated) === true;
|
|
160
|
+
},
|
|
161
|
+
isVisible: (target, engine) => {
|
|
162
|
+
if (target.kind !== "edge")
|
|
163
|
+
return false;
|
|
164
|
+
const conn = engine.getConnections().find((c) => c.id === target.id);
|
|
165
|
+
return (conn === null || conn === void 0 ? void 0 : conn.dashed) === true;
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
id: "ungroup",
|
|
170
|
+
icon: `<i data-lucide="ungroup" style="width:16px; height:16px;"></i>`,
|
|
171
|
+
tooltip: "Ungroup",
|
|
172
|
+
group: "primary",
|
|
173
|
+
targets: ["group"],
|
|
174
|
+
handler: (target, engine, event) => {
|
|
175
|
+
engine.ungroupSelection();
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
];
|
|
179
|
+
|
|
180
|
+
exports.defaultActions = defaultActions;
|
|
181
|
+
//# sourceMappingURL=defaults-B8cG7xLG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults-B8cG7xLG.js","sources":["../src/contextpad/defaults.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
const defaultActions = [
|
|
2
|
+
{
|
|
3
|
+
id: "delete",
|
|
4
|
+
icon: `<i data-lucide="trash-2" style="width:16px; height:16px;"></i>`,
|
|
5
|
+
tooltip: "Delete Node",
|
|
6
|
+
group: "danger",
|
|
7
|
+
targets: ["node", "edge", "group"],
|
|
8
|
+
style: {
|
|
9
|
+
color: "#ff453a",
|
|
10
|
+
hoverColor: "rgba(255, 69, 58, 0.2)"
|
|
11
|
+
},
|
|
12
|
+
handler: (target, engine, event) => {
|
|
13
|
+
if (target.kind === "node") {
|
|
14
|
+
engine.setSelectedNodeIds([target.id]);
|
|
15
|
+
}
|
|
16
|
+
else if (target.kind === "edge") {
|
|
17
|
+
engine.setSelectedEdgeIds([target.id]);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
// Group: data is array of nodeIds
|
|
21
|
+
engine.setSelectedNodeIds(target.data);
|
|
22
|
+
}
|
|
23
|
+
engine.deleteSelection();
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: "duplicate",
|
|
28
|
+
icon: `<i data-lucide="copy" style="width:16px; height:16px;"></i>`,
|
|
29
|
+
tooltip: "Duplicate",
|
|
30
|
+
group: "primary",
|
|
31
|
+
targets: ["node"],
|
|
32
|
+
handler: (target, engine, event) => {
|
|
33
|
+
if (target.kind === "node") {
|
|
34
|
+
engine.duplicateNode(target.id);
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: "edit-content",
|
|
40
|
+
icon: `<i data-lucide="edit-3" style="width:16px; height:16px;"></i>`,
|
|
41
|
+
tooltip: "Edit Content",
|
|
42
|
+
group: "primary",
|
|
43
|
+
targets: ["node"],
|
|
44
|
+
handler: (target, engine, event) => {
|
|
45
|
+
engine.emit("contextpad:edit-content", { target });
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: "connect",
|
|
50
|
+
icon: `<i data-lucide="link-2" style="width:16px; height:16px;"></i>`,
|
|
51
|
+
tooltip: "Connect",
|
|
52
|
+
group: "primary",
|
|
53
|
+
targets: ["node", "group"],
|
|
54
|
+
handler: (target, engine, event) => {
|
|
55
|
+
const isEnabled = engine.isConnectionModeEnabled();
|
|
56
|
+
engine.setConnectionModeEnabled(!isEnabled);
|
|
57
|
+
},
|
|
58
|
+
isActive: (target, engine) => {
|
|
59
|
+
return engine.isConnectionModeEnabled();
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
id: "rotate",
|
|
64
|
+
icon: `<i data-lucide="rotate-cw" style="width:16px; height:16px;"></i>`,
|
|
65
|
+
tooltip: "Toggle Rotation Mode",
|
|
66
|
+
group: "secondary",
|
|
67
|
+
targets: ["node"],
|
|
68
|
+
handler: (target, engine, event) => {
|
|
69
|
+
if (target.kind === "node") {
|
|
70
|
+
const isEnabled = engine.isRotationModeEnabled();
|
|
71
|
+
engine.setRotationModeEnabled(!isEnabled);
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
isActive: (target, engine) => {
|
|
75
|
+
return engine.isRotationModeEnabled();
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
id: "reshape",
|
|
80
|
+
icon: `<i data-lucide="maximize-2" style="width:16px; height:16px;"></i>`,
|
|
81
|
+
tooltip: "Toggle Resize Mode",
|
|
82
|
+
group: "secondary",
|
|
83
|
+
targets: ["node"],
|
|
84
|
+
handler: (target, engine, event) => {
|
|
85
|
+
if (target.kind === "node") {
|
|
86
|
+
const isEnabled = engine.isResizeModeEnabled();
|
|
87
|
+
engine.setResizeModeEnabled(!isEnabled);
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
isActive: (target, engine) => {
|
|
91
|
+
return engine.isResizeModeEnabled();
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
id: "style",
|
|
96
|
+
icon: `<i data-lucide="palette" style="width:16px; height:16px;"></i>`,
|
|
97
|
+
tooltip: "Change Style",
|
|
98
|
+
group: "secondary",
|
|
99
|
+
targets: ["node"],
|
|
100
|
+
handler: (target, engine, event) => {
|
|
101
|
+
engine.emit("contextpad:style", { target });
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
id: "bringToFront",
|
|
106
|
+
icon: `<i data-lucide="arrow-up" style="width:16px; height:16px;"></i>`,
|
|
107
|
+
tooltip: "Bring to Front",
|
|
108
|
+
group: "secondary",
|
|
109
|
+
targets: ["node"],
|
|
110
|
+
handler: (target, engine, event) => {
|
|
111
|
+
if (target.kind === "node") {
|
|
112
|
+
engine.bringToFront([target.id]);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
id: "sendToBack",
|
|
118
|
+
icon: `<i data-lucide="arrow-down" style="width:16px; height:16px;"></i>`,
|
|
119
|
+
tooltip: "Send to Back",
|
|
120
|
+
group: "secondary",
|
|
121
|
+
targets: ["node"],
|
|
122
|
+
handler: (target, engine, event) => {
|
|
123
|
+
if (target.kind === "node") {
|
|
124
|
+
engine.sendToBack([target.id]);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
id: "toggle-dashed",
|
|
130
|
+
icon: `<i data-lucide="square-dashed" style="width:16px; height:16px;"></i>`,
|
|
131
|
+
tooltip: "Toggle Dashed",
|
|
132
|
+
group: "primary",
|
|
133
|
+
targets: ["edge"],
|
|
134
|
+
handler: (target, engine, event) => {
|
|
135
|
+
if (target.kind === "edge") {
|
|
136
|
+
engine.toggleConnectionStyle(target.id, 'dashed');
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
isActive: (target, engine) => {
|
|
140
|
+
const conn = engine.getConnections().find((c) => c.id === target.id);
|
|
141
|
+
return (conn === null || conn === void 0 ? void 0 : conn.dashed) === true;
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
id: "toggle-animated",
|
|
146
|
+
icon: `<i data-lucide="activity" style="width:16px; height:16px;"></i>`,
|
|
147
|
+
tooltip: "Toggle Animation",
|
|
148
|
+
group: "primary",
|
|
149
|
+
targets: ["edge"],
|
|
150
|
+
handler: (target, engine, event) => {
|
|
151
|
+
if (target.kind === "edge") {
|
|
152
|
+
engine.toggleConnectionStyle(target.id, 'animated');
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
isActive: (target, engine) => {
|
|
156
|
+
const conn = engine.getConnections().find((c) => c.id === target.id);
|
|
157
|
+
return (conn === null || conn === void 0 ? void 0 : conn.animated) === true;
|
|
158
|
+
},
|
|
159
|
+
isVisible: (target, engine) => {
|
|
160
|
+
if (target.kind !== "edge")
|
|
161
|
+
return false;
|
|
162
|
+
const conn = engine.getConnections().find((c) => c.id === target.id);
|
|
163
|
+
return (conn === null || conn === void 0 ? void 0 : conn.dashed) === true;
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
id: "ungroup",
|
|
168
|
+
icon: `<i data-lucide="ungroup" style="width:16px; height:16px;"></i>`,
|
|
169
|
+
tooltip: "Ungroup",
|
|
170
|
+
group: "primary",
|
|
171
|
+
targets: ["group"],
|
|
172
|
+
handler: (target, engine, event) => {
|
|
173
|
+
engine.ungroupSelection();
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
];
|
|
177
|
+
|
|
178
|
+
export { defaultActions };
|
|
179
|
+
//# sourceMappingURL=defaults-Bp5gmH4b.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults-Bp5gmH4b.js","sources":["../src/contextpad/defaults.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { generatePlacedNodeId } from '../utils/helpers.js';
|
|
2
|
-
import { removeAllPreview } from './mouseMove.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Handles canvas click: if a placement is pending (preview active), places the node
|
|
6
|
-
* at the snapped position and clears the preview.
|
|
7
|
-
*/
|
|
8
|
-
function svgMouseClick(event, api, manualPoint) {
|
|
9
|
-
if (event && event.defaultPrevented)
|
|
10
|
-
return null; // drag fired — ignore
|
|
11
|
-
const ctx = api.getPlacementContext();
|
|
12
|
-
if (!ctx)
|
|
13
|
-
return null;
|
|
14
|
-
const point = (event ? api.getCanvasPoint(event) : { x: 0, y: 0 });
|
|
15
|
-
const { type, variantId } = ctx;
|
|
16
|
-
const node = {
|
|
17
|
-
id: generatePlacedNodeId(),
|
|
18
|
-
type: type,
|
|
19
|
-
shapeVariantId: variantId || "default",
|
|
20
|
-
x: point.x,
|
|
21
|
-
y: point.y,
|
|
22
|
-
rotation: 0,
|
|
23
|
-
meta: {},
|
|
24
|
-
visualState: { status: "idle" },
|
|
25
|
-
};
|
|
26
|
-
api.placeNode(node);
|
|
27
|
-
removeAllPreview(api.canvasObject);
|
|
28
|
-
api.clearPlacementContext();
|
|
29
|
-
api.removePlacementListeners();
|
|
30
|
-
return node.id;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export { svgMouseClick };
|
|
34
|
-
//# sourceMappingURL=mouseClick.js.map
|
|
1
|
+
import { generatePlacedNodeId } from '../utils/helpers.js';
|
|
2
|
+
import { removeAllPreview } from './mouseMove.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Handles canvas click: if a placement is pending (preview active), places the node
|
|
6
|
+
* at the snapped position and clears the preview.
|
|
7
|
+
*/
|
|
8
|
+
function svgMouseClick(event, api, manualPoint) {
|
|
9
|
+
if (event && event.defaultPrevented)
|
|
10
|
+
return null; // drag fired — ignore
|
|
11
|
+
const ctx = api.getPlacementContext();
|
|
12
|
+
if (!ctx)
|
|
13
|
+
return null;
|
|
14
|
+
const point = (event ? api.getCanvasPoint(event) : { x: 0, y: 0 });
|
|
15
|
+
const { type, variantId } = ctx;
|
|
16
|
+
const node = {
|
|
17
|
+
id: generatePlacedNodeId(),
|
|
18
|
+
type: type,
|
|
19
|
+
shapeVariantId: variantId || "default",
|
|
20
|
+
x: point.x,
|
|
21
|
+
y: point.y,
|
|
22
|
+
rotation: 0,
|
|
23
|
+
meta: {},
|
|
24
|
+
visualState: { status: "idle" },
|
|
25
|
+
};
|
|
26
|
+
api.placeNode(node);
|
|
27
|
+
removeAllPreview(api.canvasObject);
|
|
28
|
+
api.clearPlacementContext();
|
|
29
|
+
api.removePlacementListeners();
|
|
30
|
+
return node.id;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { svgMouseClick };
|
|
34
|
+
//# sourceMappingURL=mouseClick.js.map
|
package/dist/events/mouseMove.js
CHANGED
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
import * as d3 from 'd3';
|
|
2
|
-
import { defaultConfig } from '../config/defaultConfig.js';
|
|
3
|
-
import { snapToGrid } from '../utils/helpers.js';
|
|
4
|
-
|
|
5
|
-
function svgMouseMove(event, shapeType, shapeToFind, grid, config, canvasObject, data, registry, manualPoint) {
|
|
6
|
-
const gridSize = config.canvas.grid.gridSize || defaultConfig.canvas.grid.gridSize;
|
|
7
|
-
const zoomTransform = d3.zoomTransform(canvasObject.svg.node());
|
|
8
|
-
let x, y;
|
|
9
|
-
if (event) {
|
|
10
|
-
const [cursorX, cursorY] = d3.pointer(event, canvasObject.svg.node());
|
|
11
|
-
x = cursorX;
|
|
12
|
-
y = cursorY;
|
|
13
|
-
}
|
|
14
|
-
else {
|
|
15
|
-
return { x: 0, y: 0 };
|
|
16
|
-
}
|
|
17
|
-
const adjustedX = (x - zoomTransform.x) / zoomTransform.k;
|
|
18
|
-
const adjustedY = (y - zoomTransform.y) / zoomTransform.k;
|
|
19
|
-
let exactPosition;
|
|
20
|
-
if (config.canvasProperties.snapToGrid) {
|
|
21
|
-
exactPosition = snapToGrid(adjustedX, adjustedY, gridSize);
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
exactPosition = { x: adjustedX, y: adjustedY };
|
|
25
|
-
}
|
|
26
|
-
if (shapeToFind.previewEnabled) {
|
|
27
|
-
createShapePreview(shapeType, exactPosition.x, exactPosition.y, canvasObject, shapeToFind, registry);
|
|
28
|
-
}
|
|
29
|
-
return exactPosition;
|
|
30
|
-
}
|
|
31
|
-
function createShapePreview(shapeType, x, y, canvasObject, shapeToFind, registry) {
|
|
32
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
33
|
-
removeAllPreview(canvasObject);
|
|
34
|
-
let elementId = `preview_${shapeType}`;
|
|
35
|
-
let shape;
|
|
36
|
-
if (registry && registry.has(shapeType)) {
|
|
37
|
-
const renderer = registry.get(shapeType);
|
|
38
|
-
const radius = (_a = shapeToFind.radius) !== null && _a !== void 0 ? _a : 30;
|
|
39
|
-
const width = (_b = shapeToFind.width) !== null && _b !== void 0 ? _b : radius * 2;
|
|
40
|
-
const height = (_c = shapeToFind.height) !== null && _c !== void 0 ? _c : radius * 2;
|
|
41
|
-
// All renderers draw with (0,0) as the anchor (center or top-left).
|
|
42
|
-
// We use a <g translate(x,y)> so the path coordinates are always
|
|
43
|
-
// relative to (0,0), then shifted to the cursor position regardless
|
|
44
|
-
// of shape type. This fixes the circle offset bug.
|
|
45
|
-
//
|
|
46
|
-
// Circle renderer uses (cx=x, cy=y) as the CENTER — so pass x:0,y:0.
|
|
47
|
-
// Rect/polygon renderers use the top-left corner — so offset by -w/2,-h/2
|
|
48
|
-
// to keep them visually centered on the cursor too.
|
|
49
|
-
const isCircleLike = shapeType === "circle";
|
|
50
|
-
const tempConfig = {
|
|
51
|
-
type: shapeType,
|
|
52
|
-
x: isCircleLike ? 0 : -width / 2,
|
|
53
|
-
y: isCircleLike ? 0 : -height / 2,
|
|
54
|
-
width,
|
|
55
|
-
height,
|
|
56
|
-
radius,
|
|
57
|
-
color: shapeToFind.color,
|
|
58
|
-
stroke: shapeToFind.stroke,
|
|
59
|
-
transparency: shapeToFind.transparency,
|
|
60
|
-
borderRadius: shapeToFind.borderRadius
|
|
61
|
-
};
|
|
62
|
-
const pathData = renderer.getPath(tempConfig);
|
|
63
|
-
const group = canvasObject.elements.append("g")
|
|
64
|
-
.attr("id", elementId)
|
|
65
|
-
.attr("transform", `translate(${x},${y})`);
|
|
66
|
-
shape = group.append("path")
|
|
67
|
-
.attr("d", pathData)
|
|
68
|
-
.attr("fill", shapeToFind.color)
|
|
69
|
-
.attr("stroke", (_e = (_d = shapeToFind.stroke) === null || _d === void 0 ? void 0 : _d.color) !== null && _e !== void 0 ? _e : "#000")
|
|
70
|
-
.attr("stroke-width", (_g = (_f = shapeToFind.stroke) === null || _f === void 0 ? void 0 : _f.width) !== null && _g !== void 0 ? _g : 1)
|
|
71
|
-
.attr("stroke-dasharray", ((_j = (_h = shapeToFind.stroke) === null || _h === void 0 ? void 0 : _h.strokeDasharray) === null || _j === void 0 ? void 0 : _j.join(" ")) || null)
|
|
72
|
-
.attr("opacity", (_k = shapeToFind.previewTransparency) !== null && _k !== void 0 ? _k : 0.5);
|
|
73
|
-
return group;
|
|
74
|
-
}
|
|
75
|
-
return shape;
|
|
76
|
-
}
|
|
77
|
-
function removeAllPreview(canvasObject) {
|
|
78
|
-
canvasObject.elements.selectAll("path[id^='preview_'], polygon[id^='preview_'], circle[id^='preview_'], g[id^='preview_']").remove();
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export { removeAllPreview, svgMouseMove };
|
|
82
|
-
//# sourceMappingURL=mouseMove.js.map
|
|
1
|
+
import * as d3 from 'd3';
|
|
2
|
+
import { defaultConfig } from '../config/defaultConfig.js';
|
|
3
|
+
import { snapToGrid } from '../utils/helpers.js';
|
|
4
|
+
|
|
5
|
+
function svgMouseMove(event, shapeType, shapeToFind, grid, config, canvasObject, data, registry, manualPoint) {
|
|
6
|
+
const gridSize = config.canvas.grid.gridSize || defaultConfig.canvas.grid.gridSize;
|
|
7
|
+
const zoomTransform = d3.zoomTransform(canvasObject.svg.node());
|
|
8
|
+
let x, y;
|
|
9
|
+
if (event) {
|
|
10
|
+
const [cursorX, cursorY] = d3.pointer(event, canvasObject.svg.node());
|
|
11
|
+
x = cursorX;
|
|
12
|
+
y = cursorY;
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
return { x: 0, y: 0 };
|
|
16
|
+
}
|
|
17
|
+
const adjustedX = (x - zoomTransform.x) / zoomTransform.k;
|
|
18
|
+
const adjustedY = (y - zoomTransform.y) / zoomTransform.k;
|
|
19
|
+
let exactPosition;
|
|
20
|
+
if (config.canvasProperties.snapToGrid) {
|
|
21
|
+
exactPosition = snapToGrid(adjustedX, adjustedY, gridSize);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
exactPosition = { x: adjustedX, y: adjustedY };
|
|
25
|
+
}
|
|
26
|
+
if (shapeToFind.previewEnabled) {
|
|
27
|
+
createShapePreview(shapeType, exactPosition.x, exactPosition.y, canvasObject, shapeToFind, registry);
|
|
28
|
+
}
|
|
29
|
+
return exactPosition;
|
|
30
|
+
}
|
|
31
|
+
function createShapePreview(shapeType, x, y, canvasObject, shapeToFind, registry) {
|
|
32
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
33
|
+
removeAllPreview(canvasObject);
|
|
34
|
+
let elementId = `preview_${shapeType}`;
|
|
35
|
+
let shape;
|
|
36
|
+
if (registry && registry.has(shapeType)) {
|
|
37
|
+
const renderer = registry.get(shapeType);
|
|
38
|
+
const radius = (_a = shapeToFind.radius) !== null && _a !== void 0 ? _a : 30;
|
|
39
|
+
const width = (_b = shapeToFind.width) !== null && _b !== void 0 ? _b : radius * 2;
|
|
40
|
+
const height = (_c = shapeToFind.height) !== null && _c !== void 0 ? _c : radius * 2;
|
|
41
|
+
// All renderers draw with (0,0) as the anchor (center or top-left).
|
|
42
|
+
// We use a <g translate(x,y)> so the path coordinates are always
|
|
43
|
+
// relative to (0,0), then shifted to the cursor position regardless
|
|
44
|
+
// of shape type. This fixes the circle offset bug.
|
|
45
|
+
//
|
|
46
|
+
// Circle renderer uses (cx=x, cy=y) as the CENTER — so pass x:0,y:0.
|
|
47
|
+
// Rect/polygon renderers use the top-left corner — so offset by -w/2,-h/2
|
|
48
|
+
// to keep them visually centered on the cursor too.
|
|
49
|
+
const isCircleLike = shapeType === "circle";
|
|
50
|
+
const tempConfig = {
|
|
51
|
+
type: shapeType,
|
|
52
|
+
x: isCircleLike ? 0 : -width / 2,
|
|
53
|
+
y: isCircleLike ? 0 : -height / 2,
|
|
54
|
+
width,
|
|
55
|
+
height,
|
|
56
|
+
radius,
|
|
57
|
+
color: shapeToFind.color,
|
|
58
|
+
stroke: shapeToFind.stroke,
|
|
59
|
+
transparency: shapeToFind.transparency,
|
|
60
|
+
borderRadius: shapeToFind.borderRadius
|
|
61
|
+
};
|
|
62
|
+
const pathData = renderer.getPath(tempConfig);
|
|
63
|
+
const group = canvasObject.elements.append("g")
|
|
64
|
+
.attr("id", elementId)
|
|
65
|
+
.attr("transform", `translate(${x},${y})`);
|
|
66
|
+
shape = group.append("path")
|
|
67
|
+
.attr("d", pathData)
|
|
68
|
+
.attr("fill", shapeToFind.color)
|
|
69
|
+
.attr("stroke", (_e = (_d = shapeToFind.stroke) === null || _d === void 0 ? void 0 : _d.color) !== null && _e !== void 0 ? _e : "#000")
|
|
70
|
+
.attr("stroke-width", (_g = (_f = shapeToFind.stroke) === null || _f === void 0 ? void 0 : _f.width) !== null && _g !== void 0 ? _g : 1)
|
|
71
|
+
.attr("stroke-dasharray", ((_j = (_h = shapeToFind.stroke) === null || _h === void 0 ? void 0 : _h.strokeDasharray) === null || _j === void 0 ? void 0 : _j.join(" ")) || null)
|
|
72
|
+
.attr("opacity", (_k = shapeToFind.previewTransparency) !== null && _k !== void 0 ? _k : 0.5);
|
|
73
|
+
return group;
|
|
74
|
+
}
|
|
75
|
+
return shape;
|
|
76
|
+
}
|
|
77
|
+
function removeAllPreview(canvasObject) {
|
|
78
|
+
canvasObject.elements.selectAll("path[id^='preview_'], polygon[id^='preview_'], circle[id^='preview_'], g[id^='preview_']").remove();
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export { removeAllPreview, svgMouseMove };
|
|
82
|
+
//# sourceMappingURL=mouseMove.js.map
|