aldehyde 0.2.474 → 0.2.476

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 (349) hide show
  1. package/lib/controls/action/utils.d.ts +1 -1
  2. package/lib/controls/entity-select/entity-select.d.ts +2 -2
  3. package/lib/controls/entity-select/entity-select.d.ts.map +1 -1
  4. package/lib/controls/entity-select/entity-select.js +16 -7
  5. package/lib/controls/entity-select/entity-select.js.map +1 -1
  6. package/lib/controls/entry-control.d.ts.map +1 -1
  7. package/lib/controls/entry-control.js +1 -0
  8. package/lib/controls/entry-control.js.map +1 -1
  9. package/lib/controls/select/index.d.ts.map +1 -1
  10. package/lib/controls/select/index.js +13 -7
  11. package/lib/controls/select/index.js.map +1 -1
  12. package/lib/controls/text/index.less +1 -0
  13. package/lib/controls/view-control.d.ts.map +1 -1
  14. package/lib/controls/view-control.js +1 -0
  15. package/lib/controls/view-control.js.map +1 -1
  16. package/lib/detail/button/edit-button.d.ts.map +1 -1
  17. package/lib/detail/button/edit-button.js +23 -11
  18. package/lib/detail/button/edit-button.js.map +1 -1
  19. package/lib/detail/button/view-button.d.ts.map +1 -1
  20. package/lib/detail/button/view-button.js +21 -10
  21. package/lib/detail/button/view-button.js.map +1 -1
  22. package/lib/draw-canvas-edit/components/asset-bar/index.d.ts.map +1 -0
  23. package/lib/{draw-canvas/edit → draw-canvas-edit}/components/asset-bar/index.js +2 -1
  24. package/lib/draw-canvas-edit/components/asset-bar/index.js.map +1 -0
  25. package/lib/{draw-canvas/edit → draw-canvas-edit}/components/main-header/index.d.ts +5 -0
  26. package/lib/draw-canvas-edit/components/main-header/index.d.ts.map +1 -0
  27. package/lib/{draw-canvas/edit → draw-canvas-edit}/components/main-header/index.js +55 -15
  28. package/lib/draw-canvas-edit/components/main-header/index.js.map +1 -0
  29. package/lib/draw-canvas-edit/components/render/draws/bg-draw.d.ts +26 -0
  30. package/lib/draw-canvas-edit/components/render/draws/bg-draw.d.ts.map +1 -0
  31. package/lib/draw-canvas-edit/components/render/draws/bg-draw.js +135 -0
  32. package/lib/draw-canvas-edit/components/render/draws/bg-draw.js.map +1 -0
  33. package/lib/draw-canvas-edit/components/render/draws/contextmenu-draw.d.ts +26 -0
  34. package/lib/draw-canvas-edit/components/render/draws/contextmenu-draw.d.ts.map +1 -0
  35. package/lib/draw-canvas-edit/components/render/draws/contextmenu-draw.js +293 -0
  36. package/lib/draw-canvas-edit/components/render/draws/contextmenu-draw.js.map +1 -0
  37. package/lib/draw-canvas-edit/components/render/draws/graph-draw.d.ts +30 -0
  38. package/lib/draw-canvas-edit/components/render/draws/graph-draw.d.ts.map +1 -0
  39. package/lib/draw-canvas-edit/components/render/draws/graph-draw.js +182 -0
  40. package/lib/draw-canvas-edit/components/render/draws/graph-draw.js.map +1 -0
  41. package/lib/draw-canvas-edit/components/render/draws/index.d.ts +8 -0
  42. package/lib/draw-canvas-edit/components/render/draws/index.d.ts.map +1 -0
  43. package/lib/draw-canvas-edit/components/render/draws/index.js +8 -0
  44. package/lib/draw-canvas-edit/components/render/draws/index.js.map +1 -0
  45. package/lib/draw-canvas-edit/components/render/draws/link-draw.d.ts +42 -0
  46. package/lib/draw-canvas-edit/components/render/draws/link-draw.d.ts.map +1 -0
  47. package/lib/draw-canvas-edit/components/render/draws/link-draw.js +1376 -0
  48. package/lib/draw-canvas-edit/components/render/draws/link-draw.js.map +1 -0
  49. package/lib/draw-canvas-edit/components/render/draws/preview-draw.d.ts +15 -0
  50. package/lib/draw-canvas-edit/components/render/draws/preview-draw.d.ts.map +1 -0
  51. package/lib/draw-canvas-edit/components/render/draws/preview-draw.js +245 -0
  52. package/lib/draw-canvas-edit/components/render/draws/preview-draw.js.map +1 -0
  53. package/lib/draw-canvas-edit/components/render/draws/ref-line-draw.d.ts +18 -0
  54. package/lib/draw-canvas-edit/components/render/draws/ref-line-draw.d.ts.map +1 -0
  55. package/lib/draw-canvas-edit/components/render/draws/ref-line-draw.js +59 -0
  56. package/lib/draw-canvas-edit/components/render/draws/ref-line-draw.js.map +1 -0
  57. package/lib/draw-canvas-edit/components/render/draws/ruler-draw.d.ts +12 -0
  58. package/lib/draw-canvas-edit/components/render/draws/ruler-draw.d.ts.map +1 -0
  59. package/lib/draw-canvas-edit/components/render/draws/ruler-draw.js +151 -0
  60. package/lib/draw-canvas-edit/components/render/draws/ruler-draw.js.map +1 -0
  61. package/lib/draw-canvas-edit/components/render/graphs/base-graph.d.ts +112 -0
  62. package/lib/draw-canvas-edit/components/render/graphs/base-graph.d.ts.map +1 -0
  63. package/lib/draw-canvas-edit/components/render/graphs/base-graph.js +199 -0
  64. package/lib/draw-canvas-edit/components/render/graphs/base-graph.js.map +1 -0
  65. package/lib/draw-canvas-edit/components/render/graphs/bezier.d.ts +80 -0
  66. package/lib/draw-canvas-edit/components/render/graphs/bezier.d.ts.map +1 -0
  67. package/lib/draw-canvas-edit/components/render/graphs/bezier.js +485 -0
  68. package/lib/draw-canvas-edit/components/render/graphs/bezier.js.map +1 -0
  69. package/lib/draw-canvas-edit/components/render/graphs/circle.d.ts +48 -0
  70. package/lib/draw-canvas-edit/components/render/graphs/circle.d.ts.map +1 -0
  71. package/lib/draw-canvas-edit/components/render/graphs/circle.js +735 -0
  72. package/lib/draw-canvas-edit/components/render/graphs/circle.js.map +1 -0
  73. package/lib/draw-canvas-edit/components/render/graphs/curve.d.ts +80 -0
  74. package/lib/draw-canvas-edit/components/render/graphs/curve.d.ts.map +1 -0
  75. package/lib/draw-canvas-edit/components/render/graphs/curve.js +451 -0
  76. package/lib/draw-canvas-edit/components/render/graphs/curve.js.map +1 -0
  77. package/lib/draw-canvas-edit/components/render/graphs/index.d.ts +7 -0
  78. package/lib/draw-canvas-edit/components/render/graphs/index.d.ts.map +1 -0
  79. package/lib/draw-canvas-edit/components/render/graphs/index.js +7 -0
  80. package/lib/draw-canvas-edit/components/render/graphs/index.js.map +1 -0
  81. package/lib/draw-canvas-edit/components/render/graphs/line.d.ts +80 -0
  82. package/lib/draw-canvas-edit/components/render/graphs/line.d.ts.map +1 -0
  83. package/lib/draw-canvas-edit/components/render/graphs/line.js +444 -0
  84. package/lib/draw-canvas-edit/components/render/graphs/line.js.map +1 -0
  85. package/lib/draw-canvas-edit/components/render/graphs/rect.d.ts +48 -0
  86. package/lib/draw-canvas-edit/components/render/graphs/rect.d.ts.map +1 -0
  87. package/lib/draw-canvas-edit/components/render/graphs/rect.js +716 -0
  88. package/lib/draw-canvas-edit/components/render/graphs/rect.js.map +1 -0
  89. package/lib/draw-canvas-edit/components/render/handlers/drag-handlers.d.ts +25 -0
  90. package/lib/draw-canvas-edit/components/render/handlers/drag-handlers.d.ts.map +1 -0
  91. package/lib/draw-canvas-edit/components/render/handlers/drag-handlers.js +67 -0
  92. package/lib/draw-canvas-edit/components/render/handlers/drag-handlers.js.map +1 -0
  93. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.d.ts +15 -0
  94. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.d.ts.map +1 -0
  95. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.js +146 -0
  96. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.js.map +1 -0
  97. package/lib/draw-canvas-edit/components/render/handlers/graph-handlers.d.ts +28 -0
  98. package/lib/draw-canvas-edit/components/render/handlers/graph-handlers.d.ts.map +1 -0
  99. package/lib/draw-canvas-edit/components/render/handlers/graph-handlers.js +97 -0
  100. package/lib/draw-canvas-edit/components/render/handlers/graph-handlers.js.map +1 -0
  101. package/lib/draw-canvas-edit/components/render/handlers/index.d.ts +10 -0
  102. package/lib/draw-canvas-edit/components/render/handlers/index.d.ts.map +1 -0
  103. package/lib/draw-canvas-edit/components/render/handlers/index.js +10 -0
  104. package/lib/draw-canvas-edit/components/render/handlers/index.js.map +1 -0
  105. package/lib/draw-canvas-edit/components/render/handlers/key-move-handlers.d.ts +18 -0
  106. package/lib/draw-canvas-edit/components/render/handlers/key-move-handlers.d.ts.map +1 -0
  107. package/lib/draw-canvas-edit/components/render/handlers/key-move-handlers.js +51 -0
  108. package/lib/draw-canvas-edit/components/render/handlers/key-move-handlers.js.map +1 -0
  109. package/lib/draw-canvas-edit/components/render/handlers/link-handlers.d.ts +14 -0
  110. package/lib/draw-canvas-edit/components/render/handlers/link-handlers.d.ts.map +1 -0
  111. package/lib/draw-canvas-edit/components/render/handlers/link-handlers.js +42 -0
  112. package/lib/draw-canvas-edit/components/render/handlers/link-handlers.js.map +1 -0
  113. package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.d.ts +62 -0
  114. package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.d.ts.map +1 -0
  115. package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.js +396 -0
  116. package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.js.map +1 -0
  117. package/lib/draw-canvas-edit/components/render/handlers/shutcut-handlers.d.ts +13 -0
  118. package/lib/draw-canvas-edit/components/render/handlers/shutcut-handlers.d.ts.map +1 -0
  119. package/lib/draw-canvas-edit/components/render/handlers/shutcut-handlers.js +50 -0
  120. package/lib/draw-canvas-edit/components/render/handlers/shutcut-handlers.js.map +1 -0
  121. package/lib/draw-canvas-edit/components/render/handlers/text-handlers.d.ts +24 -0
  122. package/lib/draw-canvas-edit/components/render/handlers/text-handlers.d.ts.map +1 -0
  123. package/lib/draw-canvas-edit/components/render/handlers/text-handlers.js +82 -0
  124. package/lib/draw-canvas-edit/components/render/handlers/text-handlers.js.map +1 -0
  125. package/lib/draw-canvas-edit/components/render/handlers/zoom-handlers.d.ts +17 -0
  126. package/lib/draw-canvas-edit/components/render/handlers/zoom-handlers.d.ts.map +1 -0
  127. package/lib/draw-canvas-edit/components/render/handlers/zoom-handlers.js +55 -0
  128. package/lib/draw-canvas-edit/components/render/handlers/zoom-handlers.js.map +1 -0
  129. package/lib/{draw-canvas/edit → draw-canvas-edit}/components/render/index.d.ts +11 -1
  130. package/lib/draw-canvas-edit/components/render/index.d.ts.map +1 -0
  131. package/lib/{draw-canvas/edit → draw-canvas-edit}/components/render/index.js +42 -14
  132. package/lib/draw-canvas-edit/components/render/index.js.map +1 -0
  133. package/lib/draw-canvas-edit/components/render/tools/align-tool.d.ts +19 -0
  134. package/lib/draw-canvas-edit/components/render/tools/align-tool.d.ts.map +1 -0
  135. package/lib/draw-canvas-edit/components/render/tools/align-tool.js +84 -0
  136. package/lib/draw-canvas-edit/components/render/tools/align-tool.js.map +1 -0
  137. package/lib/draw-canvas-edit/components/render/tools/asset-tool.d.ts +12 -0
  138. package/lib/draw-canvas-edit/components/render/tools/asset-tool.d.ts.map +1 -0
  139. package/lib/draw-canvas-edit/components/render/tools/asset-tool.js +152 -0
  140. package/lib/draw-canvas-edit/components/render/tools/asset-tool.js.map +1 -0
  141. package/lib/draw-canvas-edit/components/render/tools/attract-tool.d.ts +36 -0
  142. package/lib/draw-canvas-edit/components/render/tools/attract-tool.d.ts.map +1 -0
  143. package/lib/draw-canvas-edit/components/render/tools/attract-tool.js +419 -0
  144. package/lib/draw-canvas-edit/components/render/tools/attract-tool.js.map +1 -0
  145. package/lib/draw-canvas-edit/components/render/tools/copy-tool.d.ts +20 -0
  146. package/lib/draw-canvas-edit/components/render/tools/copy-tool.d.ts.map +1 -0
  147. package/lib/draw-canvas-edit/components/render/tools/copy-tool.js +237 -0
  148. package/lib/draw-canvas-edit/components/render/tools/copy-tool.js.map +1 -0
  149. package/lib/draw-canvas-edit/components/render/tools/import-export-tool.d.ts +43 -0
  150. package/lib/draw-canvas-edit/components/render/tools/import-export-tool.d.ts.map +1 -0
  151. package/lib/draw-canvas-edit/components/render/tools/import-export-tool.js +559 -0
  152. package/lib/draw-canvas-edit/components/render/tools/import-export-tool.js.map +1 -0
  153. package/lib/draw-canvas-edit/components/render/tools/index.d.ts +10 -0
  154. package/lib/draw-canvas-edit/components/render/tools/index.d.ts.map +1 -0
  155. package/lib/draw-canvas-edit/components/render/tools/index.js +10 -0
  156. package/lib/draw-canvas-edit/components/render/tools/index.js.map +1 -0
  157. package/lib/draw-canvas-edit/components/render/tools/link-tool.d.ts +15 -0
  158. package/lib/draw-canvas-edit/components/render/tools/link-tool.d.ts.map +1 -0
  159. package/lib/draw-canvas-edit/components/render/tools/link-tool.js +202 -0
  160. package/lib/draw-canvas-edit/components/render/tools/link-tool.js.map +1 -0
  161. package/lib/draw-canvas-edit/components/render/tools/position-tool.d.ts +11 -0
  162. package/lib/draw-canvas-edit/components/render/tools/position-tool.d.ts.map +1 -0
  163. package/lib/draw-canvas-edit/components/render/tools/position-tool.js +183 -0
  164. package/lib/draw-canvas-edit/components/render/tools/position-tool.js.map +1 -0
  165. package/lib/draw-canvas-edit/components/render/tools/selection-tool.d.ts +13 -0
  166. package/lib/draw-canvas-edit/components/render/tools/selection-tool.d.ts.map +1 -0
  167. package/lib/draw-canvas-edit/components/render/tools/selection-tool.js +116 -0
  168. package/lib/draw-canvas-edit/components/render/tools/selection-tool.js.map +1 -0
  169. package/lib/draw-canvas-edit/components/render/tools/z-index-tool.d.ts +18 -0
  170. package/lib/draw-canvas-edit/components/render/tools/z-index-tool.d.ts.map +1 -0
  171. package/lib/draw-canvas-edit/components/render/tools/z-index-tool.js +203 -0
  172. package/lib/draw-canvas-edit/components/render/tools/z-index-tool.js.map +1 -0
  173. package/lib/{draw-canvas/edit → draw-canvas-edit}/components/render/types.d.ts +5 -1
  174. package/lib/draw-canvas-edit/components/render/types.d.ts.map +1 -0
  175. package/lib/draw-canvas-edit/components/render/types.js.map +1 -0
  176. package/lib/draw-canvas-edit/components/render/utils/a-star.d.ts +13 -0
  177. package/lib/draw-canvas-edit/components/render/utils/a-star.d.ts.map +1 -0
  178. package/lib/draw-canvas-edit/components/render/utils/a-star.js +101 -0
  179. package/lib/draw-canvas-edit/components/render/utils/a-star.js.map +1 -0
  180. package/lib/draw-canvas-edit/components/render/utils/bezier-scene-func.d.ts +3 -0
  181. package/lib/draw-canvas-edit/components/render/utils/bezier-scene-func.d.ts.map +1 -0
  182. package/lib/draw-canvas-edit/components/render/utils/bezier-scene-func.js +69 -0
  183. package/lib/draw-canvas-edit/components/render/utils/bezier-scene-func.js.map +1 -0
  184. package/lib/draw-canvas-edit/components/setting-form/imag-upload.d.ts +26 -0
  185. package/lib/draw-canvas-edit/components/setting-form/imag-upload.d.ts.map +1 -0
  186. package/lib/draw-canvas-edit/components/setting-form/imag-upload.js +83 -0
  187. package/lib/draw-canvas-edit/components/setting-form/imag-upload.js.map +1 -0
  188. package/lib/{draw-canvas/edit → draw-canvas-edit}/components/setting-form/index.d.ts +1 -3
  189. package/lib/draw-canvas-edit/components/setting-form/index.d.ts.map +1 -0
  190. package/lib/{draw-canvas/edit → draw-canvas-edit}/components/setting-form/index.js +94 -16
  191. package/lib/draw-canvas-edit/components/setting-form/index.js.map +1 -0
  192. package/lib/draw-canvas-edit/constant.d.ts +7 -0
  193. package/lib/draw-canvas-edit/constant.d.ts.map +1 -0
  194. package/lib/draw-canvas-edit/constant.js +7 -0
  195. package/lib/draw-canvas-edit/constant.js.map +1 -0
  196. package/lib/draw-canvas-edit/index.d.ts +8 -0
  197. package/lib/draw-canvas-edit/index.d.ts.map +1 -0
  198. package/lib/{draw-canvas/edit → draw-canvas-edit}/index.js +63 -10
  199. package/lib/draw-canvas-edit/index.js.map +1 -0
  200. package/{src/aldehyde/draw-canvas/edit → lib/draw-canvas-edit}/index.less +17 -2
  201. package/lib/draw-canvas-view/index.d.ts +8 -0
  202. package/lib/draw-canvas-view/index.d.ts.map +1 -0
  203. package/lib/draw-canvas-view/index.js +50 -0
  204. package/lib/draw-canvas-view/index.js.map +1 -0
  205. package/lib/draw-canvas-view/index.less +60 -0
  206. package/lib/draw-canvas-view/view.d.ts +13 -0
  207. package/lib/draw-canvas-view/view.d.ts.map +1 -0
  208. package/lib/draw-canvas-view/view.js +208 -0
  209. package/lib/draw-canvas-view/view.js.map +1 -0
  210. package/lib/form/form-Item-group.d.ts.map +1 -1
  211. package/lib/form/form-Item-group.js +4 -4
  212. package/lib/form/form-Item-group.js.map +1 -1
  213. package/lib/lowcode-components/index.d.ts +2 -0
  214. package/lib/lowcode-components/index.d.ts.map +1 -1
  215. package/lib/lowcode-components/index.js +2 -1
  216. package/lib/lowcode-components/index.js.map +1 -1
  217. package/lib/lowcode-components/lowcode-view/component/assets.d.ts.map +1 -1
  218. package/lib/lowcode-components/lowcode-view/component/assets.js +8 -0
  219. package/lib/lowcode-components/lowcode-view/component/assets.js.map +1 -1
  220. package/lib/lowcode-components/radar-chart/index.d.ts +51 -0
  221. package/lib/lowcode-components/radar-chart/index.d.ts.map +1 -0
  222. package/lib/lowcode-components/radar-chart/index.js +276 -0
  223. package/lib/lowcode-components/radar-chart/index.js.map +1 -0
  224. package/lib/module/dtmpl-edit-card.d.ts.map +1 -1
  225. package/lib/module/dtmpl-edit-card.js +18 -1
  226. package/lib/module/dtmpl-edit-card.js.map +1 -1
  227. package/lib/module/dtmpl-edit-page.d.ts.map +1 -1
  228. package/lib/module/dtmpl-edit-page.js +19 -2
  229. package/lib/module/dtmpl-edit-page.js.map +1 -1
  230. package/lib/routable/ltmpl-route.d.ts +2 -0
  231. package/lib/routable/ltmpl-route.d.ts.map +1 -1
  232. package/lib/routable/ltmpl-route.js +20 -4
  233. package/lib/routable/ltmpl-route.js.map +1 -1
  234. package/lib/table/act-table.d.ts +2 -0
  235. package/lib/table/act-table.d.ts.map +1 -1
  236. package/lib/table/act-table.js +4 -4
  237. package/lib/table/act-table.js.map +1 -1
  238. package/lib/table/column/column-builder.d.ts.map +1 -1
  239. package/lib/table/column/column-builder.js +23 -8
  240. package/lib/table/column/column-builder.js.map +1 -1
  241. package/lib/table/relation-table.d.ts +3 -0
  242. package/lib/table/relation-table.d.ts.map +1 -1
  243. package/lib/tmpl/control-type-supportor.d.ts.map +1 -1
  244. package/lib/tmpl/control-type-supportor.js +1 -0
  245. package/lib/tmpl/control-type-supportor.js.map +1 -1
  246. package/lib/tmpl/hcservice-v3.d.ts +2 -0
  247. package/lib/tmpl/hcservice-v3.d.ts.map +1 -1
  248. package/lib/tmpl/hcservice-v3.js +34 -0
  249. package/lib/tmpl/hcservice-v3.js.map +1 -1
  250. package/lib/tmpl/interface.d.ts +13 -1
  251. package/lib/tmpl/interface.d.ts.map +1 -1
  252. package/lib/tmpl/interface.js.map +1 -1
  253. package/lib/tmpl/tmpl-config-analysis.js +1 -1
  254. package/lib/tmpl/tmpl-config-analysis.js.map +1 -1
  255. package/lib/units/index.d.ts +2 -1
  256. package/lib/units/index.d.ts.map +1 -1
  257. package/lib/units/index.js +17 -3
  258. package/lib/units/index.js.map +1 -1
  259. package/package.json +4 -1
  260. package/src/aldehyde/controls/entity-select/entity-select.tsx +18 -8
  261. package/src/aldehyde/controls/entry-control.tsx +1 -0
  262. package/src/aldehyde/controls/select/index.tsx +7 -6
  263. package/src/aldehyde/controls/text/index.less +1 -0
  264. package/src/aldehyde/controls/view-control.tsx +1 -0
  265. package/src/aldehyde/detail/button/edit-button.tsx +21 -22
  266. package/src/aldehyde/detail/button/view-button.tsx +23 -21
  267. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/asset-bar/index.tsx +4 -2
  268. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/main-header/index.tsx +60 -14
  269. package/src/aldehyde/draw-canvas-edit/components/render/draws/bg-draw.ts +163 -0
  270. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/draws/preview-draw.ts +33 -15
  271. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/drag-outside-handlers.ts +19 -22
  272. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/selection-handlers.ts +38 -30
  273. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/index.ts +41 -9
  274. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/position-tool.ts +40 -58
  275. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/types.ts +5 -1
  276. package/src/aldehyde/draw-canvas-edit/components/setting-form/imag-upload.tsx +118 -0
  277. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/setting-form/index.tsx +111 -17
  278. package/src/aldehyde/draw-canvas-edit/constant.ts +6 -0
  279. package/{lib/draw-canvas/edit → src/aldehyde/draw-canvas-edit}/index.less +17 -2
  280. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/index.tsx +84 -25
  281. package/src/aldehyde/draw-canvas-view/index.less +60 -0
  282. package/src/aldehyde/draw-canvas-view/index.tsx +48 -0
  283. package/src/aldehyde/draw-canvas-view/view.tsx +212 -0
  284. package/src/aldehyde/form/form-Item-group.tsx +4 -5
  285. package/src/aldehyde/lowcode-components/index.ts +4 -2
  286. package/src/aldehyde/lowcode-components/lowcode-view/component/assets.ts +8 -0
  287. package/src/aldehyde/lowcode-components/radar-chart/index.tsx +323 -0
  288. package/src/aldehyde/module/dtmpl-edit-card.tsx +18 -1
  289. package/src/aldehyde/module/dtmpl-edit-page.tsx +19 -2
  290. package/src/aldehyde/routable/ltmpl-route.tsx +39 -3
  291. package/src/aldehyde/table/act-table.tsx +7 -4
  292. package/src/aldehyde/table/column/column-builder.tsx +29 -9
  293. package/src/aldehyde/tmpl/control-type-supportor.tsx +1 -0
  294. package/src/aldehyde/tmpl/hcservice-v3.tsx +30 -0
  295. package/src/aldehyde/tmpl/interface.tsx +13 -1
  296. package/src/aldehyde/tmpl/tmpl-config-analysis.tsx +1 -1
  297. package/src/aldehyde/units/index.tsx +17 -4
  298. package/lib/draw-canvas/edit/components/asset-bar/index.d.ts.map +0 -1
  299. package/lib/draw-canvas/edit/components/asset-bar/index.js.map +0 -1
  300. package/lib/draw-canvas/edit/components/main-header/index.d.ts.map +0 -1
  301. package/lib/draw-canvas/edit/components/main-header/index.js.map +0 -1
  302. package/lib/draw-canvas/edit/components/render/index.d.ts.map +0 -1
  303. package/lib/draw-canvas/edit/components/render/index.js.map +0 -1
  304. package/lib/draw-canvas/edit/components/render/types.d.ts.map +0 -1
  305. package/lib/draw-canvas/edit/components/render/types.js.map +0 -1
  306. package/lib/draw-canvas/edit/components/setting-form/index.d.ts.map +0 -1
  307. package/lib/draw-canvas/edit/components/setting-form/index.js.map +0 -1
  308. package/lib/draw-canvas/edit/index.d.ts +0 -5
  309. package/lib/draw-canvas/edit/index.d.ts.map +0 -1
  310. package/lib/draw-canvas/edit/index.js.map +0 -1
  311. package/src/aldehyde/draw-canvas/edit/components/render/draws/bg-draw.ts +0 -98
  312. /package/lib/{draw-canvas/edit → draw-canvas-edit}/components/asset-bar/index.d.ts +0 -0
  313. /package/lib/{draw-canvas/edit → draw-canvas-edit}/components/asset-bar/index.less +0 -0
  314. /package/lib/{draw-canvas/edit → draw-canvas-edit}/components/main-header/index.less +0 -0
  315. /package/lib/{draw-canvas/edit → draw-canvas-edit}/components/render/types.js +0 -0
  316. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/asset-bar/index.less +0 -0
  317. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/main-header/index.less +0 -0
  318. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/draws/contextmenu-draw.ts +0 -0
  319. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/draws/graph-draw.ts +0 -0
  320. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/draws/index.ts +0 -0
  321. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/draws/link-draw.ts +0 -0
  322. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/draws/ref-line-draw.ts +0 -0
  323. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/draws/ruler-draw.ts +0 -0
  324. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/graphs/base-graph.ts +0 -0
  325. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/graphs/bezier.ts +0 -0
  326. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/graphs/circle.ts +0 -0
  327. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/graphs/curve.ts +0 -0
  328. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/graphs/index.ts +0 -0
  329. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/graphs/line.ts +0 -0
  330. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/graphs/rect.ts +0 -0
  331. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/drag-handlers.ts +0 -0
  332. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/graph-handlers.ts +0 -0
  333. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/index.ts +0 -0
  334. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/key-move-handlers.ts +0 -0
  335. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/link-handlers.ts +0 -0
  336. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/shutcut-handlers.ts +0 -0
  337. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/text-handlers.ts +0 -0
  338. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/zoom-handlers.ts +0 -0
  339. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/align-tool.ts +0 -0
  340. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/asset-tool.ts +0 -0
  341. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/attract-tool.ts +0 -0
  342. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/copy-tool.ts +0 -0
  343. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/import-export-tool.ts +0 -0
  344. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/index.ts +0 -0
  345. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/link-tool.ts +0 -0
  346. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/selection-tool.ts +0 -0
  347. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/z-index-tool.ts +0 -0
  348. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/utils/a-star.ts +0 -0
  349. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/utils/bezier-scene-func.ts +0 -0
@@ -4,4 +4,5 @@
4
4
  text-overflow: ellipsis;
5
5
  width: fit-content;
6
6
  max-width: 100%;
7
+ min-width: 100%;
7
8
  }
@@ -147,6 +147,7 @@ function renderControl(
147
147
  case "textarea":
148
148
  case "text-view":
149
149
  case "preselect":
150
+ case "scan-code":
150
151
  if (holderType == "table") {
151
152
  viewControl = (
152
153
  <EllipsisText
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { Button } from "antd";
2
+ import { Button, Tooltip } from "antd";
3
3
  import { DoEditParam, DtmplData, LtmplConfig } from "../../tmpl/interface";
4
4
  import { EditOutlined } from "@ant-design/icons";
5
5
  import ActionUtils from "../../controls/action/utils";
@@ -13,26 +13,23 @@ interface EditButtonProps {
13
13
 
14
14
  const EditButton: React.FC<EditButtonProps> = (props) => {
15
15
  const { doEdit, data, ltmplConfig } = props;
16
+ const { classEditConfigs, buttonEditAction, editBtnTitle } = ltmplConfig || {};
16
17
  let button = undefined;
17
- if (ltmplConfig.classEditConfigs) {
18
- ltmplConfig.classEditConfigs.forEach((classEditConfig) => {
18
+ if (classEditConfigs) {
19
+ classEditConfigs.forEach((classEditConfig) => {
19
20
  if (
20
21
  !button &&
21
22
  ActionUtils.isShow(classEditConfig.preposes, [data], undefined)
22
23
  ) {
24
+ const btnProps: any = {
25
+ size: "small",
26
+ type: "dashed",
27
+ onClick: () => doEdit({ code: data.code, mode: "update", dtmplSourceId: classEditConfig.id })
28
+ };
23
29
  button = (
24
- <Button
25
- size="small"
26
- type="dashed"
27
- icon={<EditOutlined />}
28
- onClick={() =>
29
- doEdit({
30
- code: data.code,
31
- mode: "update",
32
- dtmplSourceId: classEditConfig.id,
33
- })
34
- }
35
- ></Button>
30
+ (!editBtnTitle || editBtnTitle?.length < 4) ?
31
+ <Button {...btnProps}>{editBtnTitle || <EditOutlined />}</Button> :
32
+ <Tooltip title={editBtnTitle}><Button {...btnProps} icon={<EditOutlined />} /></Tooltip>
36
33
  );
37
34
  }
38
35
  });
@@ -42,18 +39,20 @@ const EditButton: React.FC<EditButtonProps> = (props) => {
42
39
  if (
43
40
  !button &&
44
41
  ActionUtils.isShow(
45
- ltmplConfig.buttonEditAction?.preposes,
42
+ buttonEditAction?.preposes,
46
43
  [data],
47
44
  undefined
48
45
  )
49
46
  ) {
47
+ const btnProps: any = {
48
+ size: "small",
49
+ type: "dashed",
50
+ onClick: () => doEdit({ code: data.code, mode: "update" })
51
+ };
50
52
  button = (
51
- <Button
52
- size="small"
53
- type="dashed"
54
- icon={<EditOutlined />}
55
- onClick={() => doEdit({ code: data.code, mode: "update" })}
56
- ></Button>
53
+ (!editBtnTitle || editBtnTitle?.length < 4) ?
54
+ <Button {...btnProps}>{editBtnTitle || <EditOutlined />}</Button> :
55
+ <Tooltip title={editBtnTitle}><Button {...btnProps} icon={<EditOutlined />} /></Tooltip>
57
56
  );
58
57
  }
59
58
 
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { Button } from "antd";
2
+ import { Button, Tooltip } from "antd";
3
3
  import { DtmplData, LtmplConfig, ShowViewParam } from "../../tmpl/interface";
4
4
  import { AlignCenterOutlined } from "@ant-design/icons";
5
5
  import ActionUtils from "../../controls/action/utils";
@@ -14,25 +14,24 @@ interface ViewButtonProps {
14
14
 
15
15
  const ViewButton: React.FC<ViewButtonProps> = (props) => {
16
16
  const { showView, data, ltmplConfig, buttonType = "primary" } = props;
17
+ const { classViewConfigs, detailBtnTitle, buttonViewAction } = ltmplConfig || {};
17
18
  let button = undefined;
18
- if (ltmplConfig.classViewConfigs) {
19
- ltmplConfig.classViewConfigs.forEach((classViewConfig) => {
19
+ if (classViewConfigs) {
20
+ classViewConfigs.forEach((classViewConfig) => {
20
21
  if (
21
22
  !button &&
22
23
  ActionUtils.isShow(classViewConfig.preposes, [data], undefined)
23
24
  ) {
25
+ const btnProps: any = {
26
+ size: "small",
27
+ type: buttonType,
28
+ onClick: () => showView({ code: data.code, dtmplSourceId: classViewConfig.id, })
29
+ };
24
30
  button = (
25
- <Button
26
- size="small"
27
- type={buttonType}
28
- icon={<AlignCenterOutlined />}
29
- onClick={() =>
30
- showView({
31
- code: data.code,
32
- dtmplSourceId: classViewConfig.id,
33
- })
34
- }
35
- ></Button>
31
+ (!detailBtnTitle || detailBtnTitle?.length < 4) ?
32
+ <Button {...btnProps} >
33
+ {detailBtnTitle || <AlignCenterOutlined />}
34
+ </Button> : <Tooltip title={detailBtnTitle}><Button {...btnProps} icon={<AlignCenterOutlined />} /></Tooltip>
36
35
  );
37
36
  }
38
37
  });
@@ -42,18 +41,21 @@ const ViewButton: React.FC<ViewButtonProps> = (props) => {
42
41
  if (
43
42
  !button &&
44
43
  ActionUtils.isShow(
45
- ltmplConfig.buttonViewAction?.preposes,
44
+ buttonViewAction?.preposes,
46
45
  [data],
47
46
  undefined
48
47
  )
49
48
  ) {
49
+ const btnProps: any = {
50
+ size: "small",
51
+ type: buttonType,
52
+ onClick: () => showView({ code: data.code })
53
+ };
50
54
  button = (
51
- <Button
52
- size="small"
53
- type={buttonType}
54
- icon={<AlignCenterOutlined />}
55
- onClick={() => showView({ code: data.code })}
56
- ></Button>
55
+ (!detailBtnTitle || detailBtnTitle?.length < 4) ?
56
+ <Button {...btnProps}>
57
+ {detailBtnTitle || <AlignCenterOutlined />}
58
+ </Button> : <Tooltip title={detailBtnTitle}><Button {...btnProps} icon={<AlignCenterOutlined />} /></Tooltip>
57
59
  );
58
60
  }
59
61
 
@@ -1,6 +1,6 @@
1
1
  import React, { DragEvent, useEffect, useMemo, useState } from 'react';
2
2
  import { Collapse, Empty, Tooltip } from "antd";
3
- import { ProgramConfig } from "../../../../index";
3
+ import { ProgramConfig } from "../../../index";
4
4
  import './index.less';
5
5
 
6
6
  // 组件分组配置
@@ -37,7 +37,8 @@ interface AssetItem {
37
37
  body: {
38
38
  path: string;
39
39
  suffix: string;
40
- }
40
+ };
41
+ type: string; // 组件类型
41
42
  }
42
43
 
43
44
  const AssetList = () => {
@@ -52,6 +53,7 @@ const AssetList = () => {
52
53
  const url = handleImgUrl(item.body.path);
53
54
  e.dataTransfer.setData('src', url);
54
55
  e.dataTransfer.setData('type', item.body.suffix);
56
+ e.dataTransfer.setData('componentType', item.type); // 组件类型
55
57
  // e.dataTransfer.setData('points', '[]');
56
58
  };
57
59
 
@@ -1,6 +1,10 @@
1
1
  import React, { useState, useEffect, useCallback, useMemo } from 'react';
2
2
  import { Dropdown, Modal, Space, Button, Divider, Tooltip } from 'antd';
3
- import IconFont from "../../../../icon/aliIcon";
3
+ import { ImportOutlined, ExportOutlined, SaveOutlined, QuestionCircleOutlined, MergeCellsOutlined, NumberOutlined } from '@ant-design/icons';
4
+ import { gzipSync, strToU8 } from 'fflate';
5
+ import { uint8ArrayToHex } from 'uint8array-extras';
6
+ import HcserviceV3 from "../../../tmpl/hcservice-v3";
7
+ import IconFont from "../../../icon/aliIcon";
4
8
  import { Render } from '../render';
5
9
  import { GraphType, LinkType, AlignType } from '../render/types';
6
10
  import * as Draws from '../render/draws';
@@ -35,12 +39,17 @@ interface MainHeaderProps {
35
39
  render: Render | null;
36
40
  graphType?: GraphType; // 图类型
37
41
  texting?: boolean; // 添加文本状态
42
+ showGrid?: boolean; // 显示网格
43
+ showAttract?: boolean; // 显示磁吸
38
44
  onGraphTypeChange: (type: GraphType | undefined) => void; // 更新图类型
39
45
  onTexting: (texting: boolean) => void;
46
+ setShowGrid?: (show: boolean) => void;
47
+ setShowAttract?: (show: boolean) => void;
48
+ recordCode: string;
40
49
  }
41
50
 
42
51
  const MainHeader = (props: MainHeaderProps) => {
43
- const { render, graphType, onGraphTypeChange, onTexting, texting } = props;
52
+ const { render, graphType, onGraphTypeChange, onTexting, texting, recordCode, showGrid, setShowGrid, showAttract, setShowAttract } = props;
44
53
  const [scale, setScale] = useState<number>(100); // 缩放
45
54
  const [history, setHistory] = useState<string[]>([]); // 历史记录
46
55
  const [historyIndex, setHistoryIndex] = useState(-1); // 当前历史记录标签
@@ -69,17 +78,37 @@ const MainHeader = (props: MainHeaderProps) => {
69
78
  input.click();
70
79
  }, [render]);
71
80
 
81
+ // 保存
82
+ const handleSave = async () => {
83
+ if (!recordCode) {
84
+ return;
85
+ }
86
+ setLoading(true);
87
+ const data = render.importExportTool.save();
88
+ // 1. 将普通字符串转换为 Uint8Array
89
+ const dataBuffer = strToU8(data);
90
+ // 2. 压缩为 ByteArray
91
+ const content = gzipSync(dataBuffer, { level: 9 });
92
+ // 3. 将 Uint8Array 转为 16进制字符串
93
+ const hexString = uint8ArrayToHex(content);
94
+ await HcserviceV3.postDiagram2DConfig(recordCode, hexString);
95
+ setLoading(false);
96
+ }
97
+
72
98
  // 数据导出
73
- const handleSave = useCallback((type: 'json' | 'svg' | 'asset' | 'png' | 'assetPng') => {
99
+ const handleExport = useCallback((type: 'json' | 'svg' | 'asset' | 'png' | 'assetPng', action?: "save" | "download") => {
74
100
  if (!render) return;
75
- const data: { name: string; content: string }[] = [];
76
101
  switch (type) {
77
102
  case 'json':
78
- data.push({ name: 'data.json', content: render.importExportTool.save() });
79
- break;
103
+ if (action === "save") {
104
+ handleSave();
105
+ } else {
106
+ download("data.json", render.importExportTool.save());
107
+ }
108
+ return;
80
109
  case 'asset':
81
- data.push({ name: 'asset.json', content: render.importExportTool.getAsset() });
82
- break;
110
+ download("asset.json", render.importExportTool.getAsset());
111
+ return;
83
112
  case 'png':
84
113
  download('image.png', render.importExportTool.getAssetImage(2));
85
114
  return;
@@ -87,9 +116,6 @@ const MainHeader = (props: MainHeaderProps) => {
87
116
  download('image.png', render.importExportTool.getAssetImage());
88
117
  return;
89
118
  }
90
- if (data.length) {
91
- data.forEach(({ name, content }) => download(name, content));
92
- }
93
119
  }, [render]);
94
120
 
95
121
  // 下载辅助函数
@@ -138,8 +164,8 @@ const MainHeader = (props: MainHeaderProps) => {
138
164
 
139
165
  // 缩放菜单选项
140
166
  const scaleMenu = [
141
- { key: "fit", label: <a onClick={() => handleScale('fit')}>自适应大小</a> },
142
- { key: "reset", label: <a onClick={() => handleScale('reset')}>重置位置大小</a> },
167
+ { key: "fit", label: <a onClick={() => handleScale('fit')}>自适应</a> },
168
+ { key: "reset", label: <a onClick={() => handleScale('reset')}>重置位置及缩放</a> },
143
169
  { key: "position", label: <a onClick={() => handleScale('position')}>仅重置位置</a> }
144
170
  ];
145
171
 
@@ -173,9 +199,29 @@ const MainHeader = (props: MainHeaderProps) => {
173
199
  <Tooltip title="插入文字">
174
200
  <Button type="text" onClick={() => onTexting(true)} className={texting ? "active" : ""} ><IconFont type="icon-wenben" /></Button>
175
201
  </Tooltip>
202
+ <Tooltip title="网格">
203
+ <Button type="text" onClick={() => setShowGrid(!showGrid)} className={showGrid ? "active" : ""} ><NumberOutlined /></Button>
204
+ </Tooltip>
205
+ <Tooltip title="磁吸">
206
+ <Button type="text" onClick={() => setShowAttract(!showAttract)} className={showAttract ? "active" : ""} ><MergeCellsOutlined /></Button>
207
+ </Tooltip>
208
+ </Space>
209
+ <Space size={4} separator={<Divider vertical styles={{ root: { margin: "0 4px" } }} />}>
210
+ <Tooltip title="快捷键">
211
+ <Button type="text" onClick={() => setShowShortCut(true)} ><QuestionCircleOutlined /></Button>
212
+ </Tooltip>
213
+ <Tooltip title="导入">
214
+ <Button type="text" onClick={handleRestore} ><ImportOutlined /></Button>
215
+ </Tooltip>
216
+ <Tooltip title="导出">
217
+ <Button type="text" onClick={() => handleExport("json")} ><ExportOutlined /></Button>
218
+ </Tooltip>
219
+ <Tooltip title="保存">
220
+ <Button loading={loading} type="text" onClick={() => handleExport("json", "save")} ><SaveOutlined /></Button>
221
+ </Tooltip>
176
222
  </Space>
177
223
  {showShortCut &&
178
- <Modal title="快捷键" open={showShortCut} onCancel={() => setShowShortCut(false)}>
224
+ <Modal title="快捷键" width={600} footer={null} open={showShortCut} onCancel={() => setShowShortCut(false)}>
179
225
  <p>1、复制、粘贴、多选、全选、删除、上一步、下一步等快捷键与一般文档编辑器类似;</p>
180
226
  <p>2、放大缩小,【Win】鼠标上滚动下滚动,【Mac】触控板双指放大、缩小;</p>
181
227
  <p>3、画布拖动,在空白处,【Win】右键按下移动,【Mac】control + 触控板三指移动;</p>
@@ -0,0 +1,163 @@
1
+ import Konva from 'konva';
2
+ import { Draw, BaseDraw, Render } from '../types';
3
+
4
+ // 画布
5
+
6
+ export interface BgDrawOption {
7
+ size: number;
8
+ readonly?: boolean;
9
+ showGrid?: boolean;
10
+ }
11
+
12
+ export class BgDraw extends BaseDraw implements Draw {
13
+ // @ts-ignore
14
+ static override readonly name = 'bg';
15
+ option: BgDrawOption;
16
+
17
+ // 独立容器:用于存放静态的背景和画布
18
+ private staticGroup: Konva.Group;
19
+ // 独立容器:专门用于存放动态网格
20
+ private gridGroup: Konva.Group;
21
+ // 标记静态元素是否需要重绘
22
+ private isStaticInitialized: boolean = false;
23
+
24
+ constructor(render: Render, layer: Konva.Layer, option: BgDrawOption) {
25
+ super(render, layer);
26
+ this.option = option;
27
+ this.group.listening(false);
28
+
29
+ // 预先创建好两个独立的 Group
30
+ this.staticGroup = new Konva.Group({ name: 'bg-static', listening: false });
31
+ this.gridGroup = new Konva.Group({ name: 'bg-grid', listening: false });
32
+
33
+ // 注意添加顺序:静态在下,网格在上
34
+ this.group.add(this.staticGroup);
35
+ this.group.add(this.gridGroup);
36
+
37
+ // 监听页面配置变化,当配置改变时,重置静态层初始化状态
38
+ this.render.on('page-settings-change', () => {
39
+ this.isStaticInitialized = false;
40
+ // 触发整体重绘,让 draw 方法重新执行
41
+ this.draw();
42
+ });
43
+ }
44
+
45
+ // 更新配置项,触发重绘
46
+ public updateOption(newOption: Partial<BgDrawOption>) {
47
+ this.option = { ...this.option, ...newOption };
48
+ this.draw();
49
+ }
50
+
51
+ override draw() {
52
+ // 1. 如果静态元素未初始化,或者配置发生变化导致标记被重置,则重新绘制
53
+ if (!this.isStaticInitialized) {
54
+ this.renderStaticElements();
55
+ this.isStaticInitialized = true;
56
+ }
57
+ // 2. 仅重绘网格部分(拖拽/缩放时高频调用)
58
+ if (!this.option.readonly && this.option.showGrid) { // 只读页面不显示网格
59
+ this.renderGrid();
60
+ } else { // 清除已渲染网格
61
+ this.gridGroup.destroyChildren();
62
+ }
63
+ }
64
+
65
+ /**
66
+ * 渲染静态元素(仅在初始化或配置改变时执行)
67
+ */
68
+ private renderStaticElements() {
69
+ // 清除旧的静态元素
70
+ this.staticGroup.destroyChildren();
71
+ const { width, height, x, y } = this.render.getStageState();
72
+ const { pageWidth, pageHeight, background, backgroundImg } = this.render.getPageSettings();
73
+
74
+ // 背景层(填满整个 stage)
75
+ const bgRect = new Konva.Rect({
76
+ name: `${this.constructor.name}__background`,
77
+ x: this.render.toStageValue(-x + this.render.rulerSize),
78
+ y: this.render.toStageValue(-y + this.render.rulerSize),
79
+ width: this.render.toStageValue(width),
80
+ height: this.render.toStageValue(height),
81
+ listening: false,
82
+ fill: 'transparent'
83
+ });
84
+
85
+ // 画布边框
86
+ const canvas = new Konva.Rect({
87
+ name: this.constructor.name,
88
+ x: 0,
89
+ y: 0,
90
+ width: pageWidth,
91
+ height: pageHeight,
92
+ stroke: this.option.readonly ? "transparent" : 'rgba(255,0,0,0.3)',
93
+ strokeWidth: this.render.toStageValue(2),
94
+ listening: false,
95
+ dash: [this.render.toStageValue(6), this.render.toStageValue(6)],
96
+ fill: background || 'transparent',
97
+ });
98
+
99
+ this.staticGroup.add(bgRect);
100
+ this.staticGroup.add(canvas);
101
+
102
+ // 处理背景图(异步)
103
+ if (backgroundImg?.src) {
104
+ const img = new Image();
105
+ img.crossOrigin = 'anonymous'; // 如果图片在 CDN 上,必须加上此属性防止跨域问题
106
+ img.src = backgroundImg.src;
107
+ img.onload = () => {
108
+ canvas.fill(null);
109
+ canvas.fillPatternImage(img);
110
+ canvas.fillPatternRepeat('no-repeat');
111
+ // 让图片自适应填满矩形(等比缩放裁剪效果)
112
+ const scaleX = pageWidth / img.width;
113
+ const scaleY = pageHeight / img.height;
114
+ canvas.fillPatternScaleX(scaleX);
115
+ canvas.fillPatternScaleY(scaleY);
116
+ };
117
+ }
118
+ }
119
+
120
+ /**
121
+ * 渲染网格(每次拖拽/缩放时调用)
122
+ */
123
+ private renderGrid() {
124
+ // 仅清空网格 Group,不影响静态层
125
+ this.gridGroup.destroyChildren();
126
+ const { width, height, x, y } = this.render.getStageState();
127
+ const cellSize = this.option.size;
128
+ const lenX = Math.ceil(this.render.toStageValue(width + this.render.rulerSize) / cellSize);
129
+ const lenY = Math.ceil(this.render.toStageValue(height + this.render.rulerSize) / cellSize);
130
+ const startX = -Math.ceil(this.render.toStageValue(x) / cellSize);
131
+ const startY = -Math.ceil(this.render.toStageValue(y) / cellSize);
132
+ const lines: Konva.Line[] = [];
133
+
134
+ // 生成竖线
135
+ for (let i = startX; i < lenX + startX + 2; i++) {
136
+ lines.push(new Konva.Line({
137
+ points: [
138
+ cellSize * i, this.render.toStageValue(-y + this.render.rulerSize),
139
+ cellSize * i, this.render.toStageValue(height - y + this.render.rulerSize)
140
+ ],
141
+ stroke: '#ddd',
142
+ strokeWidth: this.render.toStageValue(1),
143
+ listening: false
144
+ }));
145
+ }
146
+
147
+ // 生成横线
148
+ for (let j = startY; j < lenY + startY + 2; j++) {
149
+ lines.push(new Konva.Line({
150
+ points: [
151
+ this.render.toStageValue(-x + this.render.rulerSize), cellSize * j,
152
+ this.render.toStageValue(width - x + this.render.rulerSize), cellSize * j
153
+ ],
154
+ stroke: '#ddd',
155
+ strokeWidth: this.render.toStageValue(1),
156
+ listening: false
157
+ }));
158
+ }
159
+
160
+ // 批量添加线条到网格 Group
161
+ this.gridGroup.add(...lines);
162
+ }
163
+ }
@@ -25,7 +25,7 @@ export class PreviewDraw extends BaseDraw implements Draw {
25
25
  override draw() {
26
26
  this.clear();
27
27
  const stageState = this.render.getStageState();
28
- const { pageWidth, pageHeight, background } = this.render.getPageSettings(); // 画布尺寸
28
+ const { pageWidth, pageHeight, background, backgroundImg } = this.render.getPageSettings(); // 画布尺寸
29
29
  const previewMargin = 20; // 预览框的外边距
30
30
  // 预览框 group
31
31
  const group = new Konva.Group({
@@ -101,7 +101,6 @@ export class PreviewDraw extends BaseDraw implements Draw {
101
101
  height: group.height(),
102
102
  stroke: '#666',
103
103
  strokeWidth: this.render.toStageValue(1),
104
- fill: !background ? "#ffffff" : background
105
104
  });
106
105
 
107
106
  // 根据预览框内部拖动,同步画布的移动
@@ -139,19 +138,38 @@ export class PreviewDraw extends BaseDraw implements Draw {
139
138
  this.state.moving = false;
140
139
  })
141
140
  group.add(bg);
142
- // 预览框 边框
143
- group.add(
144
- new Konva.Rect({
145
- name: this.constructor.name,
146
- x: 0,
147
- y: 0,
148
- width: this.render.toStageValue(pageWidth * stageState.scale),
149
- height: this.render.toStageValue(pageHeight * stageState.scale),
150
- stroke: 'rgba(255,0,0,0.2)',
151
- strokeWidth: 1 / this.option.size,
152
- listening: false
153
- })
154
- );
141
+ // 预览框 画布
142
+ const canvas = new Konva.Rect({
143
+ name: this.constructor.name,
144
+ x: 0,
145
+ y: 0,
146
+ width: this.render.toStageValue(pageWidth * stageState.scale),
147
+ height: this.render.toStageValue(pageHeight * stageState.scale),
148
+ stroke: 'rgba(255,0,0,0.2)',
149
+ strokeWidth: 1 / this.option.size,
150
+ listening: false,
151
+ fill: !background ? "#ffffff" : background
152
+ });
153
+
154
+ group.add(canvas);
155
+
156
+ // // 处理背景图(异步)
157
+ // if (backgroundImg?.src) {
158
+ // const img = new Image();
159
+ // img.crossOrigin = 'anonymous'; // 如果图片在 CDN 上,必须加上此属性防止跨域问题
160
+ // img.src = backgroundImg.src;
161
+ // img.onload = () => {
162
+ // canvas.fill(null);
163
+ // canvas.fillPatternImage(img);
164
+ // canvas.fillPatternRepeat('no-repeat');
165
+ // // 让图片自适应填满矩形(等比缩放裁剪效果)
166
+ // const scaleX = pageWidth / img.width;
167
+ // const scaleY = pageHeight / img.height;
168
+ // canvas.fillPatternScaleX(scaleX);
169
+ // canvas.fillPatternScaleY(scaleY);
170
+ // };
171
+ // }
172
+
155
173
  // 复制提取的节点,用作预览
156
174
  for (const node of nodes) {
157
175
  const copy = node.clone();
@@ -1,7 +1,7 @@
1
1
  import Konva from 'konva';
2
2
  import { nanoid } from 'nanoid';
3
3
  import { Render } from '../index';
4
- import { Handler, AssetInfoPoint, ImageType, AssetType, LinkDrawPoint } from '../types';
4
+ import { Handler, AssetInfoPoint, AssetType, LinkDrawPoint } from '../types';
5
5
  import { RefLineDraw, PreviewDraw } from '../draws';
6
6
 
7
7
  export class DragOutsideHandlers implements Handler {
@@ -25,6 +25,7 @@ export class DragOutsideHandlers implements Handler {
25
25
  },
26
26
  drop: (e: GlobalEventHandlersEventMap['drop']) => {
27
27
  const src = e.dataTransfer?.getData('src');
28
+ const componentType = e.dataTransfer?.getData('componentType'); // 组件类型
28
29
  // 接收连接点信息
29
30
  let morePoints: AssetInfoPoint[] = [];
30
31
  const morePointsTxt = e.dataTransfer?.getData('points') ?? '[]';
@@ -36,37 +37,34 @@ export class DragOutsideHandlers implements Handler {
36
37
  const type = e.dataTransfer?.getData('type');
37
38
  if (src && type) {
38
39
  const stageState = this.render.getStageState();
40
+ const { pageHeight, pageWidth } = this.render.getPageSettings()
39
41
  this.render.stage.setPointersPositions(e);
40
42
  const pos = this.render.stage.getPointerPosition();
41
43
  if (pos) {
42
- this.render.assetTool[
43
- type === ImageType.svg
44
- ? `loadSvg`
45
- : type === ImageType.gif
46
- ? 'loadGif'
47
- : type === 'json'
48
- ? 'loadJson'
49
- : 'loadImg'
50
- ](src).then((target: Konva.Image | Konva.Group) => {
44
+ this.render.assetTool[type === 'json' ? 'loadJson' : ({ svg: "loadSvg", gif: "loadGif" }[type] || "loadImg")](src).then((target: Konva.Image | Konva.Group) => {
51
45
  let group = null;
46
+ let width = target.width();
47
+ let height = target.height();
48
+ if (width > pageWidth || height > pageHeight) {
49
+ const sizeScale = Math.min(pageWidth / width, pageHeight / height);
50
+ width *= sizeScale;
51
+ height *= sizeScale;
52
+ target.setSize({ width, height });
53
+ }
52
54
  // 默认连接点
53
55
  let points: AssetInfoPoint[] = [];
54
- // 图片素材
55
- if (target instanceof Konva.Image) {
56
+ if (target instanceof Konva.Image) { // 图片素材
56
57
  group = new Konva.Group({
57
58
  id: nanoid(),
58
- width: target.width(),
59
- height: target.height(),
59
+ width,
60
+ height,
60
61
  name: 'asset',
61
62
  assetType: AssetType.Image,
62
63
  draggable: true,
64
+ componentType,
63
65
  imageType:
64
66
  type !== 'json'
65
- ? type === ImageType.svg
66
- ? ImageType.svg
67
- : type === ImageType.gif
68
- ? ImageType.gif
69
- : ImageType.other
67
+ ? (["svg", "gif", "other"].includes(type) ? type : "other")
70
68
  : undefined
71
69
  });
72
70
  this.render.setAssetSettings(group, this.render.getAssetSettings(), false);
@@ -77,8 +75,7 @@ export class DragOutsideHandlers implements Handler {
77
75
  { x: group.width() / 2, y: 0, direction: 'top' }, // 上
78
76
  { x: group.width() / 2, y: group.height(), direction: 'bottom' } // 下
79
77
  ];
80
- } else {
81
- // json 素材
78
+ } else {// json 素材
82
79
  target.id(nanoid());
83
80
  target.setAttrs({
84
81
  name: 'asset',
@@ -89,7 +86,7 @@ export class DragOutsideHandlers implements Handler {
89
86
  this.render.linkTool.groupIdCover(group);
90
87
  }
91
88
  target.setAttrs({ x: 0, y: 0 } as any);
92
- this.render.layer.add(group);
89
+ this.render.layer.add(group); // 组件添加到画布
93
90
  const x = this.render.toStageValue(pos.x - stageState.x) - group.width() / 2;
94
91
  const y = this.render.toStageValue(pos.y - stageState.y) - group.height() / 2;
95
92
  group.setAttrs({ x, y });