@zenode/designer 3.5.8 → 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.
Files changed (218) hide show
  1. package/README.md +3 -3
  2. package/dist/defaultConfig.cjs +542 -0
  3. package/dist/defaultConfig.cjs.map +1 -0
  4. package/dist/defaultConfig.js +540 -0
  5. package/dist/defaultConfig.js.map +1 -0
  6. package/dist/defaults-B8cG7xLG.js +181 -0
  7. package/dist/defaults-B8cG7xLG.js.map +1 -0
  8. package/dist/defaults-Bp5gmH4b.js +179 -0
  9. package/dist/defaults-Bp5gmH4b.js.map +1 -0
  10. package/dist/events/mouseClick.js +34 -34
  11. package/dist/events/mouseMove.js +82 -82
  12. package/dist/testConfig.cjs +553 -0
  13. package/dist/testConfig.cjs.map +1 -0
  14. package/dist/testConfig.js +551 -0
  15. package/dist/testConfig.js.map +1 -0
  16. package/package.json +2 -3
  17. package/assets/demo.svg +0 -108
  18. package/dist/config/testXML.cjs +0 -17
  19. package/dist/config/testXML.cjs.map +0 -1
  20. package/dist/config/testXML.d.ts +0 -1
  21. package/dist/config/testXML.js +0 -15
  22. package/dist/config/testXML.js.map +0 -1
  23. package/dist/core/serialization.cjs +0 -123
  24. package/dist/core/serialization.cjs.map +0 -1
  25. package/dist/core/serialization.d.ts +0 -26
  26. package/dist/core/serialization.js +0 -121
  27. package/dist/core/serialization.js.map +0 -1
  28. package/dist/events/mouseClick.cjs +0 -36
  29. package/dist/events/mouseClick.cjs.map +0 -1
  30. package/dist/events/mouseMove.cjs +0 -104
  31. package/dist/events/mouseMove.cjs.map +0 -1
  32. package/dist/icons.bundle.js +0 -763
  33. package/dist/icons.bundle.js.map +0 -1
  34. package/dist/icons.cjs +0 -105
  35. package/dist/icons.cjs.map +0 -1
  36. package/dist/icons.d.ts +0 -7
  37. package/dist/icons.js +0 -89
  38. package/dist/icons.js.map +0 -1
  39. package/dist/node_modules/lucide/dist/esm/createElement.cjs +0 -36
  40. package/dist/node_modules/lucide/dist/esm/createElement.cjs.map +0 -1
  41. package/dist/node_modules/lucide/dist/esm/createElement.js +0 -34
  42. package/dist/node_modules/lucide/dist/esm/createElement.js.map +0 -1
  43. package/dist/node_modules/lucide/dist/esm/defaultAttributes.cjs +0 -23
  44. package/dist/node_modules/lucide/dist/esm/defaultAttributes.cjs.map +0 -1
  45. package/dist/node_modules/lucide/dist/esm/defaultAttributes.js +0 -21
  46. package/dist/node_modules/lucide/dist/esm/defaultAttributes.js.map +0 -1
  47. package/dist/node_modules/lucide/dist/esm/icons/arrow-down-right.cjs +0 -16
  48. package/dist/node_modules/lucide/dist/esm/icons/arrow-down-right.cjs.map +0 -1
  49. package/dist/node_modules/lucide/dist/esm/icons/arrow-down-right.js +0 -14
  50. package/dist/node_modules/lucide/dist/esm/icons/arrow-down-right.js.map +0 -1
  51. package/dist/node_modules/lucide/dist/esm/icons/arrow-right.cjs +0 -16
  52. package/dist/node_modules/lucide/dist/esm/icons/arrow-right.cjs.map +0 -1
  53. package/dist/node_modules/lucide/dist/esm/icons/arrow-right.js +0 -14
  54. package/dist/node_modules/lucide/dist/esm/icons/arrow-right.js.map +0 -1
  55. package/dist/node_modules/lucide/dist/esm/icons/arrow-up-right.cjs +0 -16
  56. package/dist/node_modules/lucide/dist/esm/icons/arrow-up-right.cjs.map +0 -1
  57. package/dist/node_modules/lucide/dist/esm/icons/arrow-up-right.js +0 -14
  58. package/dist/node_modules/lucide/dist/esm/icons/arrow-up-right.js.map +0 -1
  59. package/dist/node_modules/lucide/dist/esm/icons/box.cjs +0 -22
  60. package/dist/node_modules/lucide/dist/esm/icons/box.cjs.map +0 -1
  61. package/dist/node_modules/lucide/dist/esm/icons/box.js +0 -20
  62. package/dist/node_modules/lucide/dist/esm/icons/box.js.map +0 -1
  63. package/dist/node_modules/lucide/dist/esm/icons/chevron-down.cjs +0 -13
  64. package/dist/node_modules/lucide/dist/esm/icons/chevron-down.cjs.map +0 -1
  65. package/dist/node_modules/lucide/dist/esm/icons/chevron-down.js +0 -11
  66. package/dist/node_modules/lucide/dist/esm/icons/chevron-down.js.map +0 -1
  67. package/dist/node_modules/lucide/dist/esm/icons/chevron-right.cjs +0 -13
  68. package/dist/node_modules/lucide/dist/esm/icons/chevron-right.cjs.map +0 -1
  69. package/dist/node_modules/lucide/dist/esm/icons/chevron-right.js +0 -11
  70. package/dist/node_modules/lucide/dist/esm/icons/chevron-right.js.map +0 -1
  71. package/dist/node_modules/lucide/dist/esm/icons/circle-alert.cjs +0 -17
  72. package/dist/node_modules/lucide/dist/esm/icons/circle-alert.cjs.map +0 -1
  73. package/dist/node_modules/lucide/dist/esm/icons/circle-alert.js +0 -15
  74. package/dist/node_modules/lucide/dist/esm/icons/circle-alert.js.map +0 -1
  75. package/dist/node_modules/lucide/dist/esm/icons/circle-check-big.cjs +0 -16
  76. package/dist/node_modules/lucide/dist/esm/icons/circle-check-big.cjs.map +0 -1
  77. package/dist/node_modules/lucide/dist/esm/icons/circle-check-big.js +0 -14
  78. package/dist/node_modules/lucide/dist/esm/icons/circle-check-big.js.map +0 -1
  79. package/dist/node_modules/lucide/dist/esm/icons/circle-question-mark.cjs +0 -17
  80. package/dist/node_modules/lucide/dist/esm/icons/circle-question-mark.cjs.map +0 -1
  81. package/dist/node_modules/lucide/dist/esm/icons/circle-question-mark.js +0 -15
  82. package/dist/node_modules/lucide/dist/esm/icons/circle-question-mark.js.map +0 -1
  83. package/dist/node_modules/lucide/dist/esm/icons/circle.cjs +0 -13
  84. package/dist/node_modules/lucide/dist/esm/icons/circle.cjs.map +0 -1
  85. package/dist/node_modules/lucide/dist/esm/icons/circle.js +0 -11
  86. package/dist/node_modules/lucide/dist/esm/icons/circle.js.map +0 -1
  87. package/dist/node_modules/lucide/dist/esm/icons/cloud.cjs +0 -13
  88. package/dist/node_modules/lucide/dist/esm/icons/cloud.cjs.map +0 -1
  89. package/dist/node_modules/lucide/dist/esm/icons/cloud.js +0 -11
  90. package/dist/node_modules/lucide/dist/esm/icons/cloud.js.map +0 -1
  91. package/dist/node_modules/lucide/dist/esm/icons/copy.cjs +0 -16
  92. package/dist/node_modules/lucide/dist/esm/icons/copy.cjs.map +0 -1
  93. package/dist/node_modules/lucide/dist/esm/icons/copy.js +0 -14
  94. package/dist/node_modules/lucide/dist/esm/icons/copy.js.map +0 -1
  95. package/dist/node_modules/lucide/dist/esm/icons/database.cjs +0 -17
  96. package/dist/node_modules/lucide/dist/esm/icons/database.cjs.map +0 -1
  97. package/dist/node_modules/lucide/dist/esm/icons/database.js +0 -15
  98. package/dist/node_modules/lucide/dist/esm/icons/database.js.map +0 -1
  99. package/dist/node_modules/lucide/dist/esm/icons/diamond.cjs +0 -20
  100. package/dist/node_modules/lucide/dist/esm/icons/diamond.cjs.map +0 -1
  101. package/dist/node_modules/lucide/dist/esm/icons/diamond.js +0 -18
  102. package/dist/node_modules/lucide/dist/esm/icons/diamond.js.map +0 -1
  103. package/dist/node_modules/lucide/dist/esm/icons/download.cjs +0 -17
  104. package/dist/node_modules/lucide/dist/esm/icons/download.cjs.map +0 -1
  105. package/dist/node_modules/lucide/dist/esm/icons/download.js +0 -15
  106. package/dist/node_modules/lucide/dist/esm/icons/download.js.map +0 -1
  107. package/dist/node_modules/lucide/dist/esm/icons/eye-off.cjs +0 -28
  108. package/dist/node_modules/lucide/dist/esm/icons/eye-off.cjs.map +0 -1
  109. package/dist/node_modules/lucide/dist/esm/icons/eye-off.js +0 -26
  110. package/dist/node_modules/lucide/dist/esm/icons/eye-off.js.map +0 -1
  111. package/dist/node_modules/lucide/dist/esm/icons/eye.cjs +0 -21
  112. package/dist/node_modules/lucide/dist/esm/icons/eye.cjs.map +0 -1
  113. package/dist/node_modules/lucide/dist/esm/icons/eye.js +0 -19
  114. package/dist/node_modules/lucide/dist/esm/icons/eye.js.map +0 -1
  115. package/dist/node_modules/lucide/dist/esm/icons/grid-3x3.cjs +0 -19
  116. package/dist/node_modules/lucide/dist/esm/icons/grid-3x3.cjs.map +0 -1
  117. package/dist/node_modules/lucide/dist/esm/icons/grid-3x3.js +0 -17
  118. package/dist/node_modules/lucide/dist/esm/icons/grid-3x3.js.map +0 -1
  119. package/dist/node_modules/lucide/dist/esm/icons/history.cjs +0 -17
  120. package/dist/node_modules/lucide/dist/esm/icons/history.cjs.map +0 -1
  121. package/dist/node_modules/lucide/dist/esm/icons/history.js +0 -15
  122. package/dist/node_modules/lucide/dist/esm/icons/history.js.map +0 -1
  123. package/dist/node_modules/lucide/dist/esm/icons/info.cjs +0 -17
  124. package/dist/node_modules/lucide/dist/esm/icons/info.cjs.map +0 -1
  125. package/dist/node_modules/lucide/dist/esm/icons/info.js +0 -15
  126. package/dist/node_modules/lucide/dist/esm/icons/info.js.map +0 -1
  127. package/dist/node_modules/lucide/dist/esm/icons/lasso.cjs +0 -17
  128. package/dist/node_modules/lucide/dist/esm/icons/lasso.cjs.map +0 -1
  129. package/dist/node_modules/lucide/dist/esm/icons/lasso.js +0 -15
  130. package/dist/node_modules/lucide/dist/esm/icons/lasso.js.map +0 -1
  131. package/dist/node_modules/lucide/dist/esm/icons/maximize.cjs +0 -18
  132. package/dist/node_modules/lucide/dist/esm/icons/maximize.cjs.map +0 -1
  133. package/dist/node_modules/lucide/dist/esm/icons/maximize.js +0 -16
  134. package/dist/node_modules/lucide/dist/esm/icons/maximize.js.map +0 -1
  135. package/dist/node_modules/lucide/dist/esm/icons/minimize.cjs +0 -18
  136. package/dist/node_modules/lucide/dist/esm/icons/minimize.cjs.map +0 -1
  137. package/dist/node_modules/lucide/dist/esm/icons/minimize.js +0 -16
  138. package/dist/node_modules/lucide/dist/esm/icons/minimize.js.map +0 -1
  139. package/dist/node_modules/lucide/dist/esm/icons/mouse-pointer.cjs +0 -21
  140. package/dist/node_modules/lucide/dist/esm/icons/mouse-pointer.cjs.map +0 -1
  141. package/dist/node_modules/lucide/dist/esm/icons/mouse-pointer.js +0 -19
  142. package/dist/node_modules/lucide/dist/esm/icons/mouse-pointer.js.map +0 -1
  143. package/dist/node_modules/lucide/dist/esm/icons/move.cjs +0 -20
  144. package/dist/node_modules/lucide/dist/esm/icons/move.cjs.map +0 -1
  145. package/dist/node_modules/lucide/dist/esm/icons/move.js +0 -18
  146. package/dist/node_modules/lucide/dist/esm/icons/move.js.map +0 -1
  147. package/dist/node_modules/lucide/dist/esm/icons/panels-top-left.cjs +0 -17
  148. package/dist/node_modules/lucide/dist/esm/icons/panels-top-left.cjs.map +0 -1
  149. package/dist/node_modules/lucide/dist/esm/icons/panels-top-left.js +0 -15
  150. package/dist/node_modules/lucide/dist/esm/icons/panels-top-left.js.map +0 -1
  151. package/dist/node_modules/lucide/dist/esm/icons/pen.cjs +0 -20
  152. package/dist/node_modules/lucide/dist/esm/icons/pen.cjs.map +0 -1
  153. package/dist/node_modules/lucide/dist/esm/icons/pen.js +0 -18
  154. package/dist/node_modules/lucide/dist/esm/icons/pen.js.map +0 -1
  155. package/dist/node_modules/lucide/dist/esm/icons/plus.cjs +0 -16
  156. package/dist/node_modules/lucide/dist/esm/icons/plus.cjs.map +0 -1
  157. package/dist/node_modules/lucide/dist/esm/icons/plus.js +0 -14
  158. package/dist/node_modules/lucide/dist/esm/icons/plus.js.map +0 -1
  159. package/dist/node_modules/lucide/dist/esm/icons/search.cjs +0 -16
  160. package/dist/node_modules/lucide/dist/esm/icons/search.cjs.map +0 -1
  161. package/dist/node_modules/lucide/dist/esm/icons/search.js +0 -14
  162. package/dist/node_modules/lucide/dist/esm/icons/search.js.map +0 -1
  163. package/dist/node_modules/lucide/dist/esm/icons/settings.cjs +0 -21
  164. package/dist/node_modules/lucide/dist/esm/icons/settings.cjs.map +0 -1
  165. package/dist/node_modules/lucide/dist/esm/icons/settings.js +0 -19
  166. package/dist/node_modules/lucide/dist/esm/icons/settings.js.map +0 -1
  167. package/dist/node_modules/lucide/dist/esm/icons/share-2.cjs +0 -19
  168. package/dist/node_modules/lucide/dist/esm/icons/share-2.cjs.map +0 -1
  169. package/dist/node_modules/lucide/dist/esm/icons/share-2.js +0 -17
  170. package/dist/node_modules/lucide/dist/esm/icons/share-2.js.map +0 -1
  171. package/dist/node_modules/lucide/dist/esm/icons/square.cjs +0 -13
  172. package/dist/node_modules/lucide/dist/esm/icons/square.cjs.map +0 -1
  173. package/dist/node_modules/lucide/dist/esm/icons/square.js +0 -11
  174. package/dist/node_modules/lucide/dist/esm/icons/square.js.map +0 -1
  175. package/dist/node_modules/lucide/dist/esm/icons/sticky-note.cjs +0 -21
  176. package/dist/node_modules/lucide/dist/esm/icons/sticky-note.cjs.map +0 -1
  177. package/dist/node_modules/lucide/dist/esm/icons/sticky-note.js +0 -19
  178. package/dist/node_modules/lucide/dist/esm/icons/sticky-note.js.map +0 -1
  179. package/dist/node_modules/lucide/dist/esm/icons/trash-2.cjs +0 -19
  180. package/dist/node_modules/lucide/dist/esm/icons/trash-2.cjs.map +0 -1
  181. package/dist/node_modules/lucide/dist/esm/icons/trash-2.js +0 -17
  182. package/dist/node_modules/lucide/dist/esm/icons/trash-2.js.map +0 -1
  183. package/dist/node_modules/lucide/dist/esm/icons/triangle.cjs +0 -15
  184. package/dist/node_modules/lucide/dist/esm/icons/triangle.cjs.map +0 -1
  185. package/dist/node_modules/lucide/dist/esm/icons/triangle.js +0 -13
  186. package/dist/node_modules/lucide/dist/esm/icons/triangle.js.map +0 -1
  187. package/dist/node_modules/lucide/dist/esm/icons/x.cjs +0 -16
  188. package/dist/node_modules/lucide/dist/esm/icons/x.cjs.map +0 -1
  189. package/dist/node_modules/lucide/dist/esm/icons/x.js +0 -14
  190. package/dist/node_modules/lucide/dist/esm/icons/x.js.map +0 -1
  191. package/dist/node_modules/lucide/dist/esm/icons/zap.cjs +0 -20
  192. package/dist/node_modules/lucide/dist/esm/icons/zap.cjs.map +0 -1
  193. package/dist/node_modules/lucide/dist/esm/icons/zap.js +0 -18
  194. package/dist/node_modules/lucide/dist/esm/icons/zap.js.map +0 -1
  195. package/dist/node_modules/lucide/dist/esm/lucide.cjs +0 -56
  196. package/dist/node_modules/lucide/dist/esm/lucide.cjs.map +0 -1
  197. package/dist/node_modules/lucide/dist/esm/lucide.js +0 -54
  198. package/dist/node_modules/lucide/dist/esm/lucide.js.map +0 -1
  199. package/dist/node_modules/lucide/dist/esm/replaceElement.cjs +0 -73
  200. package/dist/node_modules/lucide/dist/esm/replaceElement.cjs.map +0 -1
  201. package/dist/node_modules/lucide/dist/esm/replaceElement.js +0 -67
  202. package/dist/node_modules/lucide/dist/esm/replaceElement.js.map +0 -1
  203. package/dist/node_modules/lucide/dist/esm/shared/src/utils/hasA11yProp.cjs +0 -20
  204. package/dist/node_modules/lucide/dist/esm/shared/src/utils/hasA11yProp.cjs.map +0 -1
  205. package/dist/node_modules/lucide/dist/esm/shared/src/utils/hasA11yProp.js +0 -18
  206. package/dist/node_modules/lucide/dist/esm/shared/src/utils/hasA11yProp.js.map +0 -1
  207. package/dist/node_modules/lucide/dist/esm/shared/src/utils/mergeClasses.cjs +0 -15
  208. package/dist/node_modules/lucide/dist/esm/shared/src/utils/mergeClasses.cjs.map +0 -1
  209. package/dist/node_modules/lucide/dist/esm/shared/src/utils/mergeClasses.js +0 -13
  210. package/dist/node_modules/lucide/dist/esm/shared/src/utils/mergeClasses.js.map +0 -1
  211. package/dist/node_modules/lucide/dist/esm/shared/src/utils/toCamelCase.cjs +0 -16
  212. package/dist/node_modules/lucide/dist/esm/shared/src/utils/toCamelCase.cjs.map +0 -1
  213. package/dist/node_modules/lucide/dist/esm/shared/src/utils/toCamelCase.js +0 -14
  214. package/dist/node_modules/lucide/dist/esm/shared/src/utils/toCamelCase.js.map +0 -1
  215. package/dist/node_modules/lucide/dist/esm/shared/src/utils/toPascalCase.cjs +0 -19
  216. package/dist/node_modules/lucide/dist/esm/shared/src/utils/toPascalCase.cjs.map +0 -1
  217. package/dist/node_modules/lucide/dist/esm/shared/src/utils/toPascalCase.js +0 -17
  218. package/dist/node_modules/lucide/dist/esm/shared/src/utils/toPascalCase.js.map +0 -1
package/assets/demo.svg DELETED
@@ -1,108 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 500" width="100%" height="auto" style="background-color: #FAFAFA; border-radius: 8px;">
2
- <defs>
3
- <!-- Background Grid -->
4
- <pattern id="grid" width="20" height="20" patternUnits="userSpaceOnUse">
5
- <path d="M 20 0 L 0 0 0 20" fill="none" stroke="#E5E7EB" stroke-width="0.5" />
6
- </pattern>
7
- <!-- Markers -->
8
- <marker id="marker-arrow-000000" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse">
9
- <path d="M 0 0 L 10 5 L 0 10 z" fill="#000000" />
10
- </marker>
11
- <marker id="marker-arrow-666666" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse">
12
- <path d="M 0 0 L 10 5 L 0 10 z" fill="#666666" />
13
- </marker>
14
- <marker id="marker-arrow-333333" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse">
15
- <path d="M 0 0 L 10 5 L 0 10 z" fill="#333333" />
16
- </marker>
17
- <marker id="marker-arrow-444444" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse">
18
- <path d="M 0 0 L 10 5 L 0 10 z" fill="#444444" />
19
- </marker>
20
- </defs>
21
-
22
- <rect width="100%" height="100%" fill="url(#grid)" />
23
- <!-- Animation uses SMIL to bypass strict NPM CSP -->
24
-
25
- <g transform="translate(0,-60)">
26
- <!-- Connections -->
27
- <g class="connections">
28
- <g>
29
- <path d="M 130 200 L 240 200" fill="none" stroke="#000000" stroke-width="2" stroke-dasharray="8,4" marker-end="url(#marker-arrow-000000)">
30
- <animate attributeName="stroke-dashoffset" from="0" to="-24" dur="1s" repeatCount="indefinite" />
31
- </path>
32
- </g>
33
- <g>
34
- <path d="M 340 240 C 340 304 276 400 340 400" fill="none" stroke="#666666" stroke-width="2" stroke-dasharray="8,4" marker-end="url(#marker-arrow-666666)">
35
- <animate attributeName="stroke-dashoffset" from="0" to="-24" dur="1s" repeatCount="indefinite" />
36
- </path>
37
- </g>
38
- <g>
39
- <path d="M 440 360 C 490 360 490 280 540 280" fill="none" stroke="#333333" stroke-width="2" stroke-dasharray="4,2" marker-end="url(#marker-arrow-333333)">
40
- <animate attributeName="stroke-dashoffset" from="0" to="-24" dur="1s" repeatCount="indefinite" />
41
- </path>
42
- </g>
43
- <g>
44
- <path d="M 580 240 L 580 220 L 580 180 L 640 180 L 660 180" fill="none" stroke="#444444" stroke-width="2" stroke-dasharray="8,4" marker-end="url(#marker-arrow-444444)">
45
- <animate attributeName="stroke-dashoffset" from="0" to="-24" dur="1s" repeatCount="indefinite" />
46
- </path>
47
- </g>
48
- <g>
49
- <path d="M 780 180 C 823.7 180 874.2 289.3 874.2 289.3" fill="none" stroke="#666666" stroke-width="2" stroke-dasharray="8,4" marker-end="url(#marker-arrow-666666)">
50
- <animate attributeName="stroke-dashoffset" from="0" to="-24" dur="1s" repeatCount="indefinite" />
51
- </path>
52
- </g>
53
- </g>
54
-
55
- <!-- Nodes -->
56
- <g class="placed-nodes">
57
- <!-- Start Node -->
58
- <g transform="translate(100,200)">
59
- <circle cx="0" cy="0" r="30" fill="#3B82F6" fill-opacity="0.35" stroke="#1D4ED8" stroke-width="1.5"></circle>
60
- <g transform="translate(-10, -10)" stroke="#000000" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round">
61
- <circle cx="10" cy="10" r="10"></circle>
62
- <path d="M7 7 L12 10 L7 13 Z" fill="currentColor"></path>
63
- </g>
64
- </g>
65
-
66
- <!-- Process Node 1 -->
67
- <g transform="translate(340,200)">
68
- <path d="M -92,-40 H 92 A 8,8 0 0 1 100,-32 V 32 A 8,8 0 0 1 92,40 H -92 A 8,8 0 0 1 -100,32 V -32 A 8,8 0 0 1 -92,-40 Z" fill="#F8FAFC" fill-opacity="0.9" stroke="#CBD5E1" stroke-width="1"></path>
69
- <text y="4" class="node-text" fill="rgb(40, 61, 226)">process 1</text>
70
- </g>
71
-
72
- <!-- Process Node 2 -->
73
- <g transform="translate(440,400)">
74
- <path d="M -92,-40 H 92 A 8,8 0 0 1 100,-32 V 32 A 8,8 0 0 1 92,40 H -92 A 8,8 0 0 1 -100,32 V -32 A 8,8 0 0 1 -92,-40 Z" fill="#F8FAFC" fill-opacity="0.9" stroke="#CBD5E1" stroke-width="1"></path>
75
- <text y="4" class="node-text" fill="rgb(255, 61, 61)">process 2</text>
76
- </g>
77
-
78
- <!-- Timer/Decision Node -->
79
- <g transform="translate(580,280)">
80
- <path d="M 0 -40 L 40 0 L 0 40 L -40 0 Z" fill="#EC4899" fill-opacity="0.35" stroke="#BE185D" stroke-width="1.5"></path>
81
- <g transform="translate(-12, -12)" stroke="#ffffff" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round">
82
- <circle cx="12" cy="13" r="8"></circle>
83
- <path d="M12 10v6"></path>
84
- <path d="M9 13h6"></path>
85
- </g>
86
- </g>
87
-
88
- <!-- Complete Node -->
89
- <g transform="translate(720,180)">
90
- <path d="M -55,-40 H 55 A 5,5 0 0 1 60,-35 V 35 A 5,5 0 0 1 55,40 H -55 A 5,5 0 0 1 -60,35 V -35 A 5,5 0 0 1 -55,-40 Z" fill="#8B5CF6" fill-opacity="0.35" stroke="#6D28D9" stroke-width="1.5"></path>
91
- <g transform="translate(-10, -20)" stroke="#22a720" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round">
92
- <path d="M18 6 7 17l-5-5"></path>
93
- <path d="m22 10-7.5 7.5L13 16"></path>
94
- </g>
95
- <text y="14" class="node-text" fill="rgb(34, 167, 32)">complete</text>
96
- </g>
97
-
98
- <!-- End/Stop Node -->
99
- <g transform="translate(900,320)">
100
- <path d="M 0 -40 L 25 -30 L 39 -7 L 34 20 L 13 37 L -13 37 L -34 20 L -39 -7 L -25 -30 Z" fill="#FB923C" fill-opacity="0.35" stroke="#C2410C" stroke-width="1.5"></path>
101
- <g transform="translate(-10, -10)" stroke="#ff0000" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round">
102
- <path d="M8 7v6"></path>
103
- <path d="M12 7v6"></path>
104
- </g>
105
- </g>
106
- </g>
107
- </g>
108
- </svg>
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- const testXML = `<?xml version="1.0" encoding="UTF-8"?>
4
- <zenode:workflow xmlns:zenode="http://zenode.dev/schema">
5
- <nodes>
6
- <node id="86f46f77-56cf-4ce7-85e8-30325aea6363" type="rectangle" x="220" y="300">
7
- </node>
8
- <node id="b7db7809-43b4-425f-915a-041317c1bf52" type="triangle" x="560" y="340">
9
- </node>
10
- </nodes>
11
- <connections>
12
- <connection id="conn-86f46f77-56cf-4ce7-85e8-30325aea6363-b7db7809-43b4-425f-915a-041317c1bf52-1775160075674" from="86f46f77-56cf-4ce7-85e8-30325aea6363" to="b7db7809-43b4-425f-915a-041317c1bf52" />
13
- </connections>
14
- </zenode:workflow>`;
15
-
16
- exports.testXML = testXML;
17
- //# sourceMappingURL=testXML.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testXML.cjs","sources":["../../src/config/testXML.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAa,MAAA,OAAO,GAAG,CAAA;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- export declare const testXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<zenode:workflow xmlns:zenode=\"http://zenode.dev/schema\">\n <nodes>\n <node id=\"86f46f77-56cf-4ce7-85e8-30325aea6363\" type=\"rectangle\" x=\"220\" y=\"300\">\n </node>\n <node id=\"b7db7809-43b4-425f-915a-041317c1bf52\" type=\"triangle\" x=\"560\" y=\"340\">\n </node>\n </nodes>\n <connections>\n <connection id=\"conn-86f46f77-56cf-4ce7-85e8-30325aea6363-b7db7809-43b4-425f-915a-041317c1bf52-1775160075674\" from=\"86f46f77-56cf-4ce7-85e8-30325aea6363\" to=\"b7db7809-43b4-425f-915a-041317c1bf52\" />\n </connections>\n</zenode:workflow>";
@@ -1,15 +0,0 @@
1
- const testXML = `<?xml version="1.0" encoding="UTF-8"?>
2
- <zenode:workflow xmlns:zenode="http://zenode.dev/schema">
3
- <nodes>
4
- <node id="86f46f77-56cf-4ce7-85e8-30325aea6363" type="rectangle" x="220" y="300">
5
- </node>
6
- <node id="b7db7809-43b4-425f-915a-041317c1bf52" type="triangle" x="560" y="340">
7
- </node>
8
- </nodes>
9
- <connections>
10
- <connection id="conn-86f46f77-56cf-4ce7-85e8-30325aea6363-b7db7809-43b4-425f-915a-041317c1bf52-1775160075674" from="86f46f77-56cf-4ce7-85e8-30325aea6363" to="b7db7809-43b4-425f-915a-041317c1bf52" />
11
- </connections>
12
- </zenode:workflow>`;
13
-
14
- export { testXML };
15
- //# sourceMappingURL=testXML.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testXML.js","sources":["../../src/config/testXML.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAa,MAAA,OAAO,GAAG,CAAA;;;;;;;;;;;;;;;"}
@@ -1,123 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Handles serialization of Zenode diagrams to various industry-standard formats.
5
- * Fulfills Phase 3.5 of the Layer 1 roadmap.
6
- */
7
- class SerializationEngine {
8
- /**
9
- * Generates a Mermaid.js diagram definition (perfect for GitHub READMEs).
10
- */
11
- toMermaid(nodes, edges) {
12
- let script = "graph TD\n";
13
- // Add nodes with labels
14
- nodes.forEach(n => {
15
- var _a, _b;
16
- const label = ((_b = (_a = n.content) === null || _a === void 0 ? void 0 : _a.items.find(i => i.kind === 'text')) === null || _b === void 0 ? void 0 : _b.value) || n.id;
17
- // Handle the different shape representations in Mermaid
18
- let left = "[", right = "]";
19
- if (n.type === 'circle' || n.type === 'oval') {
20
- left = "((";
21
- right = "))";
22
- }
23
- if (n.type === 'rhombus') {
24
- left = "{";
25
- right = "}";
26
- }
27
- script += ` ${n.id}${left}"${label}"${right}\n`;
28
- });
29
- // Add edges
30
- edges.forEach(e => {
31
- script += ` ${e.sourceNodeId} --> ${e.targetNodeId}\n`;
32
- });
33
- return script;
34
- }
35
- /**
36
- * Generates a Graphviz DOT definition.
37
- */
38
- toDOT(nodes, edges) {
39
- let script = "digraph ZenodeWorkflow {\n";
40
- script += ' rankdir=LR;\n';
41
- script += ' node [shape=box, style=rounded, fontname="Inter"];\n';
42
- nodes.forEach(n => {
43
- var _a, _b;
44
- const label = ((_b = (_a = n.content) === null || _a === void 0 ? void 0 : _a.items.find(i => i.kind === 'text')) === null || _b === void 0 ? void 0 : _b.value) || n.id;
45
- script += ` "${n.id}" [label="${label}"];\n`;
46
- });
47
- edges.forEach(e => {
48
- script += ` "${e.sourceNodeId}" -> "${e.targetNodeId}";\n`;
49
- });
50
- script += "}\n";
51
- return script;
52
- }
53
- /**
54
- * Generates a generic Workflow XML (DSL placeholder for v3.5).
55
- */
56
- toXML(nodes, edges) {
57
- let xml = '<?xml version="1.0" encoding="UTF-8"?>\n';
58
- xml += '<zenode:workflow xmlns:zenode="http://zenode.dev/schema">\n';
59
- xml += ' <nodes>\n';
60
- nodes.forEach(n => {
61
- xml += ` <node id="${n.id}" type="${n.type}" x="${Math.round(n.x)}" y="${Math.round(n.y)}">\n`;
62
- if (n.meta && Object.keys(n.meta).length) {
63
- xml += ' <meta>\n';
64
- for (const [k, v] of Object.entries(n.meta)) {
65
- xml += ` <property name="${k}">${v}</property>\n`;
66
- }
67
- xml += ' </meta>\n';
68
- }
69
- xml += ' </node>\n';
70
- });
71
- xml += ' </nodes>\n';
72
- xml += ' <connections>\n';
73
- edges.forEach(e => {
74
- xml += ` <connection id="${e.id}" from="${e.sourceNodeId}" to="${e.targetNodeId}" />\n`;
75
- });
76
- xml += ' </connections>\n';
77
- xml += '</zenode:workflow>';
78
- return xml;
79
- }
80
- /**
81
- * Parses a Zenode XML string back into node and edge arrays.
82
- */
83
- fromXML(xmlString) {
84
- const parser = new DOMParser();
85
- const xmlDoc = parser.parseFromString(xmlString, "text/xml");
86
- const nodes = [];
87
- const edges = [];
88
- // Parse Nodes
89
- const nodeElems = xmlDoc.getElementsByTagName("node");
90
- for (let i = 0; i < nodeElems.length; i++) {
91
- const el = nodeElems[i];
92
- const id = el.getAttribute("id") || `node-${i}`;
93
- const type = el.getAttribute("type") || "rectangle";
94
- const x = parseFloat(el.getAttribute("x") || "0");
95
- const y = parseFloat(el.getAttribute("y") || "0");
96
- const meta = {};
97
- const metaElems = el.getElementsByTagName("property");
98
- for (let j = 0; j < metaElems.length; j++) {
99
- const p = metaElems[j];
100
- const name = p.getAttribute("name");
101
- if (name)
102
- meta[name] = p.textContent;
103
- }
104
- nodes.push({ id, type, x, y, meta, shapeVariantId: type });
105
- }
106
- // Parse Connections
107
- const connElems = xmlDoc.getElementsByTagName("connection");
108
- for (let i = 0; i < connElems.length; i++) {
109
- const el = connElems[i];
110
- edges.push({
111
- id: el.getAttribute("id") || `edge-${i}`,
112
- sourceNodeId: el.getAttribute("from") || "",
113
- targetNodeId: el.getAttribute("to") || "",
114
- sourcePortId: "right", // Fallback defaults
115
- targetPortId: "left"
116
- });
117
- }
118
- return { nodes, edges };
119
- }
120
- }
121
-
122
- exports.SerializationEngine = SerializationEngine;
123
- //# sourceMappingURL=serialization.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serialization.cjs","sources":["../../src/core/serialization.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import { NodeData, EdgeData } from "../types/index.js";
2
- /**
3
- * Handles serialization of Zenode diagrams to various industry-standard formats.
4
- * Fulfills Phase 3.5 of the Layer 1 roadmap.
5
- */
6
- export declare class SerializationEngine {
7
- /**
8
- * Generates a Mermaid.js diagram definition (perfect for GitHub READMEs).
9
- */
10
- toMermaid(nodes: NodeData[], edges: EdgeData[]): string;
11
- /**
12
- * Generates a Graphviz DOT definition.
13
- */
14
- toDOT(nodes: NodeData[], edges: EdgeData[]): string;
15
- /**
16
- * Generates a generic Workflow XML (DSL placeholder for v3.5).
17
- */
18
- toXML(nodes: NodeData[], edges: EdgeData[]): string;
19
- /**
20
- * Parses a Zenode XML string back into node and edge arrays.
21
- */
22
- fromXML(xmlString: string): {
23
- nodes: NodeData[];
24
- edges: EdgeData[];
25
- };
26
- }
@@ -1,121 +0,0 @@
1
- /**
2
- * Handles serialization of Zenode diagrams to various industry-standard formats.
3
- * Fulfills Phase 3.5 of the Layer 1 roadmap.
4
- */
5
- class SerializationEngine {
6
- /**
7
- * Generates a Mermaid.js diagram definition (perfect for GitHub READMEs).
8
- */
9
- toMermaid(nodes, edges) {
10
- let script = "graph TD\n";
11
- // Add nodes with labels
12
- nodes.forEach(n => {
13
- var _a, _b;
14
- const label = ((_b = (_a = n.content) === null || _a === void 0 ? void 0 : _a.items.find(i => i.kind === 'text')) === null || _b === void 0 ? void 0 : _b.value) || n.id;
15
- // Handle the different shape representations in Mermaid
16
- let left = "[", right = "]";
17
- if (n.type === 'circle' || n.type === 'oval') {
18
- left = "((";
19
- right = "))";
20
- }
21
- if (n.type === 'rhombus') {
22
- left = "{";
23
- right = "}";
24
- }
25
- script += ` ${n.id}${left}"${label}"${right}\n`;
26
- });
27
- // Add edges
28
- edges.forEach(e => {
29
- script += ` ${e.sourceNodeId} --> ${e.targetNodeId}\n`;
30
- });
31
- return script;
32
- }
33
- /**
34
- * Generates a Graphviz DOT definition.
35
- */
36
- toDOT(nodes, edges) {
37
- let script = "digraph ZenodeWorkflow {\n";
38
- script += ' rankdir=LR;\n';
39
- script += ' node [shape=box, style=rounded, fontname="Inter"];\n';
40
- nodes.forEach(n => {
41
- var _a, _b;
42
- const label = ((_b = (_a = n.content) === null || _a === void 0 ? void 0 : _a.items.find(i => i.kind === 'text')) === null || _b === void 0 ? void 0 : _b.value) || n.id;
43
- script += ` "${n.id}" [label="${label}"];\n`;
44
- });
45
- edges.forEach(e => {
46
- script += ` "${e.sourceNodeId}" -> "${e.targetNodeId}";\n`;
47
- });
48
- script += "}\n";
49
- return script;
50
- }
51
- /**
52
- * Generates a generic Workflow XML (DSL placeholder for v3.5).
53
- */
54
- toXML(nodes, edges) {
55
- let xml = '<?xml version="1.0" encoding="UTF-8"?>\n';
56
- xml += '<zenode:workflow xmlns:zenode="http://zenode.dev/schema">\n';
57
- xml += ' <nodes>\n';
58
- nodes.forEach(n => {
59
- xml += ` <node id="${n.id}" type="${n.type}" x="${Math.round(n.x)}" y="${Math.round(n.y)}">\n`;
60
- if (n.meta && Object.keys(n.meta).length) {
61
- xml += ' <meta>\n';
62
- for (const [k, v] of Object.entries(n.meta)) {
63
- xml += ` <property name="${k}">${v}</property>\n`;
64
- }
65
- xml += ' </meta>\n';
66
- }
67
- xml += ' </node>\n';
68
- });
69
- xml += ' </nodes>\n';
70
- xml += ' <connections>\n';
71
- edges.forEach(e => {
72
- xml += ` <connection id="${e.id}" from="${e.sourceNodeId}" to="${e.targetNodeId}" />\n`;
73
- });
74
- xml += ' </connections>\n';
75
- xml += '</zenode:workflow>';
76
- return xml;
77
- }
78
- /**
79
- * Parses a Zenode XML string back into node and edge arrays.
80
- */
81
- fromXML(xmlString) {
82
- const parser = new DOMParser();
83
- const xmlDoc = parser.parseFromString(xmlString, "text/xml");
84
- const nodes = [];
85
- const edges = [];
86
- // Parse Nodes
87
- const nodeElems = xmlDoc.getElementsByTagName("node");
88
- for (let i = 0; i < nodeElems.length; i++) {
89
- const el = nodeElems[i];
90
- const id = el.getAttribute("id") || `node-${i}`;
91
- const type = el.getAttribute("type") || "rectangle";
92
- const x = parseFloat(el.getAttribute("x") || "0");
93
- const y = parseFloat(el.getAttribute("y") || "0");
94
- const meta = {};
95
- const metaElems = el.getElementsByTagName("property");
96
- for (let j = 0; j < metaElems.length; j++) {
97
- const p = metaElems[j];
98
- const name = p.getAttribute("name");
99
- if (name)
100
- meta[name] = p.textContent;
101
- }
102
- nodes.push({ id, type, x, y, meta, shapeVariantId: type });
103
- }
104
- // Parse Connections
105
- const connElems = xmlDoc.getElementsByTagName("connection");
106
- for (let i = 0; i < connElems.length; i++) {
107
- const el = connElems[i];
108
- edges.push({
109
- id: el.getAttribute("id") || `edge-${i}`,
110
- sourceNodeId: el.getAttribute("from") || "",
111
- targetNodeId: el.getAttribute("to") || "",
112
- sourcePortId: "right", // Fallback defaults
113
- targetPortId: "left"
114
- });
115
- }
116
- return { nodes, edges };
117
- }
118
- }
119
-
120
- export { SerializationEngine };
121
- //# sourceMappingURL=serialization.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serialization.js","sources":["../../src/core/serialization.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,36 +0,0 @@
1
- 'use strict';
2
-
3
- var helpers = require('../utils/helpers.cjs');
4
- var mouseMove = require('./mouseMove.cjs');
5
-
6
- /**
7
- * Handles canvas click: if a placement is pending (preview active), places the node
8
- * at the snapped position and clears the preview.
9
- */
10
- function svgMouseClick(event, api, manualPoint) {
11
- if (event && event.defaultPrevented)
12
- return null; // drag fired — ignore
13
- const ctx = api.getPlacementContext();
14
- if (!ctx)
15
- return null;
16
- const point = (event ? api.getCanvasPoint(event) : { x: 0, y: 0 });
17
- const { type, variantId } = ctx;
18
- const node = {
19
- id: helpers.generatePlacedNodeId(),
20
- type: type,
21
- shapeVariantId: variantId || "default",
22
- x: point.x,
23
- y: point.y,
24
- rotation: 0,
25
- meta: {},
26
- visualState: { status: "idle" },
27
- };
28
- api.placeNode(node);
29
- mouseMove.removeAllPreview(api.canvasObject);
30
- api.clearPlacementContext();
31
- api.removePlacementListeners();
32
- return node.id;
33
- }
34
-
35
- exports.svgMouseClick = svgMouseClick;
36
- //# sourceMappingURL=mouseClick.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mouseClick.cjs","sources":["../../src/events/mouseClick.ts"],"sourcesContent":[null],"names":["generatePlacedNodeId","removeAllPreview"],"mappings":";;;;;AAgBA;;;AAGG;SACa,aAAa,CAAC,KAAwB,EAAE,GAAsB,EAAE,WAAsC,EAAA;AACpH,IAAA,IAAI,KAAK,IAAI,KAAK,CAAC,gBAAgB;QAAE,OAAO,IAAI,CAAC;AACjD,IAAA,MAAM,GAAG,GAAG,GAAG,CAAC,mBAAmB,EAAE;AACrC,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,OAAO,IAAI;AAErB,IAAA,MAAM,KAAK,GAAkB,CAAC,KAAK,GAAG,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACjF,IAAA,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,GAAG;AAE/B,IAAA,MAAM,IAAI,GAAe;QACvB,EAAE,EAAEA,4BAAoB,EAAE;AAC1B,QAAA,IAAI,EAAE,IAAI;QACV,cAAc,EAAE,SAAS,IAAI,SAAS;QACtC,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,CAAC,EAAE,KAAK,CAAC,CAAC;AACV,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;KAChC;AAED,IAAA,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;AACnB,IAAAC,0BAAgB,CAAC,GAAG,CAAC,YAAY,CAAC;IAClC,GAAG,CAAC,qBAAqB,EAAE;IAC3B,GAAG,CAAC,wBAAwB,EAAE;IAE9B,OAAO,IAAI,CAAC,EAAE;AAChB;;;;"}
@@ -1,104 +0,0 @@
1
- 'use strict';
2
-
3
- var d3 = require('d3');
4
- var defaultConfig = require('../config/defaultConfig.cjs');
5
- var helpers = require('../utils/helpers.cjs');
6
-
7
- function _interopNamespaceDefault(e) {
8
- var n = Object.create(null);
9
- if (e) {
10
- Object.keys(e).forEach(function (k) {
11
- if (k !== 'default') {
12
- var d = Object.getOwnPropertyDescriptor(e, k);
13
- Object.defineProperty(n, k, d.get ? d : {
14
- enumerable: true,
15
- get: function () { return e[k]; }
16
- });
17
- }
18
- });
19
- }
20
- n.default = e;
21
- return Object.freeze(n);
22
- }
23
-
24
- var d3__namespace = /*#__PURE__*/_interopNamespaceDefault(d3);
25
-
26
- function svgMouseMove(event, shapeType, shapeToFind, grid, config, canvasObject, data, registry, manualPoint) {
27
- const gridSize = config.canvas.grid.gridSize || defaultConfig.defaultConfig.canvas.grid.gridSize;
28
- const zoomTransform = d3__namespace.zoomTransform(canvasObject.svg.node());
29
- let x, y;
30
- if (event) {
31
- const [cursorX, cursorY] = d3__namespace.pointer(event, canvasObject.svg.node());
32
- x = cursorX;
33
- y = cursorY;
34
- }
35
- else {
36
- return { x: 0, y: 0 };
37
- }
38
- const adjustedX = (x - zoomTransform.x) / zoomTransform.k;
39
- const adjustedY = (y - zoomTransform.y) / zoomTransform.k;
40
- let exactPosition;
41
- if (config.canvasProperties.snapToGrid) {
42
- exactPosition = helpers.snapToGrid(adjustedX, adjustedY, gridSize);
43
- }
44
- else {
45
- exactPosition = { x: adjustedX, y: adjustedY };
46
- }
47
- if (shapeToFind.previewEnabled) {
48
- createShapePreview(shapeType, exactPosition.x, exactPosition.y, canvasObject, shapeToFind, registry);
49
- }
50
- return exactPosition;
51
- }
52
- function createShapePreview(shapeType, x, y, canvasObject, shapeToFind, registry) {
53
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
54
- removeAllPreview(canvasObject);
55
- let elementId = `preview_${shapeType}`;
56
- let shape;
57
- if (registry && registry.has(shapeType)) {
58
- const renderer = registry.get(shapeType);
59
- const radius = (_a = shapeToFind.radius) !== null && _a !== void 0 ? _a : 30;
60
- const width = (_b = shapeToFind.width) !== null && _b !== void 0 ? _b : radius * 2;
61
- const height = (_c = shapeToFind.height) !== null && _c !== void 0 ? _c : radius * 2;
62
- // All renderers draw with (0,0) as the anchor (center or top-left).
63
- // We use a <g translate(x,y)> so the path coordinates are always
64
- // relative to (0,0), then shifted to the cursor position regardless
65
- // of shape type. This fixes the circle offset bug.
66
- //
67
- // Circle renderer uses (cx=x, cy=y) as the CENTER — so pass x:0,y:0.
68
- // Rect/polygon renderers use the top-left corner — so offset by -w/2,-h/2
69
- // to keep them visually centered on the cursor too.
70
- const isCircleLike = shapeType === "circle";
71
- const tempConfig = {
72
- type: shapeType,
73
- x: isCircleLike ? 0 : -width / 2,
74
- y: isCircleLike ? 0 : -height / 2,
75
- width,
76
- height,
77
- radius,
78
- color: shapeToFind.color,
79
- stroke: shapeToFind.stroke,
80
- transparency: shapeToFind.transparency,
81
- borderRadius: shapeToFind.borderRadius
82
- };
83
- const pathData = renderer.getPath(tempConfig);
84
- const group = canvasObject.elements.append("g")
85
- .attr("id", elementId)
86
- .attr("transform", `translate(${x},${y})`);
87
- shape = group.append("path")
88
- .attr("d", pathData)
89
- .attr("fill", shapeToFind.color)
90
- .attr("stroke", (_e = (_d = shapeToFind.stroke) === null || _d === void 0 ? void 0 : _d.color) !== null && _e !== void 0 ? _e : "#000")
91
- .attr("stroke-width", (_g = (_f = shapeToFind.stroke) === null || _f === void 0 ? void 0 : _f.width) !== null && _g !== void 0 ? _g : 1)
92
- .attr("stroke-dasharray", ((_j = (_h = shapeToFind.stroke) === null || _h === void 0 ? void 0 : _h.strokeDasharray) === null || _j === void 0 ? void 0 : _j.join(" ")) || null)
93
- .attr("opacity", (_k = shapeToFind.previewTransparency) !== null && _k !== void 0 ? _k : 0.5);
94
- return group;
95
- }
96
- return shape;
97
- }
98
- function removeAllPreview(canvasObject) {
99
- canvasObject.elements.selectAll("path[id^='preview_'], polygon[id^='preview_'], circle[id^='preview_'], g[id^='preview_']").remove();
100
- }
101
-
102
- exports.removeAllPreview = removeAllPreview;
103
- exports.svgMouseMove = svgMouseMove;
104
- //# sourceMappingURL=mouseMove.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mouseMove.cjs","sources":["../../src/events/mouseMove.ts"],"sourcesContent":[null],"names":["defaultConfig","d3","snapToGrid"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;SAQgB,YAAY,CAC1B,KAAwB,EACxB,SAAiB,EACjB,WAAkB,EAClB,IAAS,EACT,MAAc,EACd,YAA4B,EAC5B,IAAuB,EACvB,QAAwB,EACxB,WAAsC,EAAA;AAEtC,IAAA,MAAM,QAAQ,GAAW,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAIA,2BAAa,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;AAC1F,IAAA,MAAM,aAAa,GAAGC,aAAE,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAa,CAAC;IAE1E,IAAI,CAAC,EAAE,CAAC;IAID,IAAI,KAAK,EAAE;AAChB,QAAA,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAGA,aAAE,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACrE,CAAC,GAAG,OAAO;QACX,CAAC,GAAG,OAAO;;SACN;QACL,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;;AAGvB,IAAA,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC;AACzD,IAAA,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC;AAEzD,IAAA,IAAI,aAAuC;AAC3C,IAAA,IAAI,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE;QACtC,aAAa,GAAGC,kBAAU,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;;SACrD;QACL,aAAa,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE;;AAGhD,IAAA,IAAG,WAAW,CAAC,cAAc,EAAE;AAC7B,QAAA,kBAAkB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC;;AAGtG,IAAA,OAAO,aAAa;AACtB;AAEA,SAAS,kBAAkB,CACzB,SAAiB,EACjB,CAAS,EACT,CAAS,EACT,YAAiB,EACjB,WAAkB,EAClB,QAAwB,EAAA;;IAExB,gBAAgB,CAAC,YAAY,CAAC;AAC9B,IAAA,IAAI,SAAS,GAAG,CAAW,QAAA,EAAA,SAAS,EAAE;AACtC,IAAA,IAAI,KAAK;IAET,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;QACxC,MAAM,MAAM,GAAG,CAAA,EAAA,GAAA,WAAW,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;QACvC,MAAM,KAAK,GAAG,CAAA,EAAA,GAAA,WAAW,CAAC,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,MAAM,GAAG,CAAC;QAC7C,MAAM,MAAM,GAAG,CAAA,EAAA,GAAA,WAAW,CAAC,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,MAAM,GAAG,CAAC;;;;;;;;;AAU/C,QAAA,MAAM,YAAY,GAAG,SAAS,KAAK,QAAQ;AAC3C,QAAA,MAAM,UAAU,GAAwB;AACtC,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,CAAC,EAAE,YAAY,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;AAChC,YAAA,CAAC,EAAE,YAAY,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC;YACjC,KAAK;YACL,MAAM;YACN,MAAM;YACN,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,YAAY,EAAE,WAAW,CAAC;SAC3B;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;QAC7C,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG;AAC3C,aAAA,IAAI,CAAC,IAAI,EAAE,SAAS;aACpB,IAAI,CAAC,WAAW,EAAE,CAAA,UAAA,EAAa,CAAC,CAAI,CAAA,EAAA,CAAC,CAAG,CAAA,CAAA,CAAC;AAE5C,QAAA,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM;AACxB,aAAA,IAAI,CAAC,GAAG,EAAE,QAAQ;AAClB,aAAA,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK;AAC9B,aAAA,IAAI,CAAC,QAAQ,EAAE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,WAAW,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,MAAM;AAClD,aAAA,IAAI,CAAC,cAAc,EAAE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,WAAW,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,CAAC;AACnD,aAAA,IAAI,CAAC,kBAAkB,EAAE,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,WAAW,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,eAAe,0CAAE,IAAI,CAAC,GAAG,CAAC,KAAI,IAAI;aAC/E,IAAI,CAAC,SAAS,EAAE,CAAA,EAAA,GAAA,WAAW,CAAC,mBAAmB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG,CAAC;AAE1D,QAAA,OAAO,KAAK;;AAOd,IAAA,OAAO,KAAK;AACd;AAEM,SAAU,gBAAgB,CAAC,YAA4B,EAAA;IAC3D,YAAY,CAAC,QAAQ,CAAC,SAAS,CAC7B,0FAA0F,CAC3F,CAAC,MAAM,EAAE;AACZ;;;;;"}