aldehyde 0.2.490 → 0.2.491

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 (689) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +2 -2
  3. package/lib/controls/2dEditor/2dEditor/index.less +5 -5
  4. package/lib/controls/2dEditor/2dView/index.less +8 -8
  5. package/lib/controls/2dEditor/components/component.less +83 -83
  6. package/lib/controls/action/index.css +8 -8
  7. package/lib/controls/action/index.d.ts.map +1 -1
  8. package/lib/controls/chemstruc/graph.d.ts.map +1 -1
  9. package/lib/controls/chemstruc/index.css +28 -28
  10. package/lib/controls/collapse-card/index.css +8 -8
  11. package/lib/controls/collapse-card/index.d.ts.map +1 -1
  12. package/lib/controls/cquery/cquick-button.d.ts.map +1 -1
  13. package/lib/controls/date-picker/index.js +9 -9
  14. package/lib/controls/date-picker/index.js.map +1 -1
  15. package/lib/controls/entity-select/entity-select.d.ts.map +1 -1
  16. package/lib/controls/entity-select/index.css +7 -7
  17. package/lib/controls/entity-select/lab-tree-select.d.ts.map +1 -1
  18. package/lib/controls/entity-select/popover-entity-select.d.ts.map +1 -1
  19. package/lib/controls/file-view/index.less +9 -9
  20. package/lib/controls/html-editor/index.less +67 -67
  21. package/lib/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.css +147 -147
  22. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +63 -63
  23. package/lib/controls/password-setter/index.css +2 -2
  24. package/lib/controls/password-setter/index.d.ts.map +1 -1
  25. package/lib/controls/qr-code/index.less +28 -28
  26. package/lib/controls/relation-existion/index.css +3 -3
  27. package/lib/controls/relation-existion/index.d.ts.map +1 -1
  28. package/lib/controls/rfield/index.css +4 -4
  29. package/lib/controls/rfield/index.d.ts.map +1 -1
  30. package/lib/controls/select/index.d.ts.map +1 -1
  31. package/lib/controls/signature/index.d.ts.map +1 -1
  32. package/lib/controls/text/ellipsis-text.d.ts.map +1 -1
  33. package/lib/controls/text/index.less +7 -7
  34. package/lib/controls/upload/index.d.ts.map +1 -1
  35. package/lib/controls/upload/mult-file-upload.d.ts.map +1 -1
  36. package/lib/custom-page/dtmpl-custom-edit-modal-page.d.ts +4 -0
  37. package/lib/custom-page/dtmpl-custom-edit-modal-page.d.ts.map +1 -1
  38. package/lib/custom-page/dtmpl-custom-edit-modal-page.js +3 -1
  39. package/lib/custom-page/dtmpl-custom-edit-modal-page.js.map +1 -1
  40. package/lib/detail/button/bottom-submit-button-bar.d.ts.map +1 -1
  41. package/lib/detail/button/cquery-button-bar.d.ts.map +1 -1
  42. package/lib/detail/button/fix-right-submit-button-bar.d.ts.map +1 -1
  43. package/lib/detail/button/index.css +42 -42
  44. package/lib/detail/dtmpl.css +72 -72
  45. package/lib/detail/edit/fields-edit-card.d.ts.map +1 -1
  46. package/lib/detail/edit/modal-row-edit.d.ts.map +1 -1
  47. package/lib/detail/edit/popover-edit-card.d.ts.map +1 -1
  48. package/lib/detail/rightbar/index.css +34 -34
  49. package/lib/detail/rightbar/index.d.ts.map +1 -1
  50. package/lib/detail/view/act-dtmpl-view.d.ts.map +1 -1
  51. package/lib/detail/view/field-view-group.d.ts.map +1 -1
  52. package/lib/detail/view/modal-dtmpl-view.d.ts.map +1 -1
  53. package/lib/detail/view/snapshot-timeline.d.ts.map +1 -1
  54. package/lib/detail/view/tab-act-dtmpl-view.d.ts.map +1 -1
  55. package/lib/draw-canvas-edit/components/asset-bar/index.less +35 -35
  56. package/lib/draw-canvas-edit/components/main-header/index.less +23 -23
  57. package/lib/draw-canvas-edit/components/render/components/index.less +60 -60
  58. package/lib/draw-canvas-edit/components/render/components/workstation-component.js +6 -6
  59. package/lib/draw-canvas-edit/index.less +48 -48
  60. package/lib/draw-canvas-view/index.less +66 -66
  61. package/lib/export/export-frame.css +2 -2
  62. package/lib/export/export-frame.d.ts.map +1 -1
  63. package/lib/export/select-code-export-frame.d.ts.map +1 -1
  64. package/lib/form/dtmpl-form.css +3 -3
  65. package/lib/form/dtmpl-form.d.ts.map +1 -1
  66. package/lib/form/field-group-form.d.ts.map +1 -1
  67. package/lib/form/form-Item-group.d.ts.map +1 -1
  68. package/lib/form/index.css +12 -12
  69. package/lib/import/excel-import.d.ts.map +1 -1
  70. package/lib/import/index.css +53 -53
  71. package/lib/import/template.css +50 -50
  72. package/lib/layout/common.css +64 -64
  73. package/lib/layout/coverstyle.css +51 -51
  74. package/lib/layout/footer/index.css +5 -5
  75. package/lib/layout/header/index.css +122 -122
  76. package/lib/layout/menu/block.css +7 -7
  77. package/lib/layout/menu/block.d.ts.map +1 -1
  78. package/lib/layout/menu/l2menu-quick-bar.d.ts.map +1 -1
  79. package/lib/layout/menu/menu-2layers.d.ts.map +1 -1
  80. package/lib/layout/menu/message-bar.less +73 -73
  81. package/lib/layout/menu/reset-password.d.ts.map +1 -1
  82. package/lib/layout/menu/user-bar.d.ts.map +1 -1
  83. package/lib/layout/menu/userinfo-bar.d.ts.map +1 -1
  84. package/lib/layout/sidebar/index.css +57 -57
  85. package/lib/layout2/components/system-messages.js +1 -1
  86. package/lib/layout2/components/system-messages.js.map +1 -1
  87. package/lib/layout2/components/user-notification.js +1 -1
  88. package/lib/layout2/components/user-notification.js.map +1 -1
  89. package/lib/layout2/css/header.css +41 -41
  90. package/lib/layout2/css/sider.less +17 -17
  91. package/lib/layout2/css/tabs-layout.less +18 -18
  92. package/lib/layout3/css/header.less +195 -195
  93. package/lib/layout3/css/main.less +161 -161
  94. package/lib/layout3/css/sider.less +32 -32
  95. package/lib/layout3/css/tabs-layout.less +38 -38
  96. package/lib/layout4/css/header.less +196 -196
  97. package/lib/layout4/css/main.less +154 -154
  98. package/lib/layout4/css/sider.less +37 -37
  99. package/lib/layout4/css/tabs-layout.less +42 -42
  100. package/lib/layout5/css/header.less +35 -35
  101. package/lib/layout5/css/sider.less +18 -18
  102. package/lib/list/calendar/index.less +20 -20
  103. package/lib/list/card-list/index.less +154 -154
  104. package/lib/list/gantt/index.less +8 -8
  105. package/lib/list/vertical-list/index.less +208 -208
  106. package/lib/login/index.css +19 -19
  107. package/lib/login/login.d.ts.map +1 -1
  108. package/lib/login/vertify/index.css +143 -143
  109. package/lib/login3/index.less +136 -136
  110. package/lib/lowcode-components/act-table/index.less +26 -26
  111. package/lib/lowcode-components/base-button/index.less +7 -7
  112. package/lib/lowcode-components/base-map/index.js +6 -6
  113. package/lib/lowcode-components/base-radio/index.less +23 -23
  114. package/lib/lowcode-components/base-table/index.less +61 -61
  115. package/lib/lowcode-components/base-tabs/index.less +14 -14
  116. package/lib/lowcode-components/base-text/index.less +19 -19
  117. package/lib/lowcode-components/border/border10/index.less +26 -26
  118. package/lib/lowcode-components/border/border11/index.js +46 -46
  119. package/lib/lowcode-components/border/border11/index.less +17 -17
  120. package/lib/lowcode-components/border/border12/index.js +13 -13
  121. package/lib/lowcode-components/border/border12/index.less +13 -13
  122. package/lib/lowcode-components/border/border13/index.js +5 -5
  123. package/lib/lowcode-components/border/border13/index.less +13 -13
  124. package/lib/lowcode-components/border/border2/index.less +17 -17
  125. package/lib/lowcode-components/border/border3/index.less +25 -25
  126. package/lib/lowcode-components/border/border4/index.js +2 -2
  127. package/lib/lowcode-components/border/border4/index.less +72 -72
  128. package/lib/lowcode-components/border/border5/index.js +2 -2
  129. package/lib/lowcode-components/border/border5/index.less +35 -35
  130. package/lib/lowcode-components/border/border6/index.less +17 -17
  131. package/lib/lowcode-components/border/border7/index.less +26 -26
  132. package/lib/lowcode-components/border/border8/index.less +13 -13
  133. package/lib/lowcode-components/border/border9/index.js +14 -14
  134. package/lib/lowcode-components/border/border9/index.less +13 -13
  135. package/lib/lowcode-components/column-chart/index.d.ts +1 -0
  136. package/lib/lowcode-components/column-chart/index.d.ts.map +1 -1
  137. package/lib/lowcode-components/column-chart/index.js +49 -7
  138. package/lib/lowcode-components/column-chart/index.js.map +1 -1
  139. package/lib/lowcode-components/data-number/index.less +10 -10
  140. package/lib/lowcode-components/date-time/index.less +4 -4
  141. package/lib/lowcode-components/decoration/decoration1/index.less +7 -7
  142. package/lib/lowcode-components/decoration/decoration10/index.js +3 -3
  143. package/lib/lowcode-components/decoration/decoration10/index.less +5 -5
  144. package/lib/lowcode-components/decoration/decoration11/index.less +5 -5
  145. package/lib/lowcode-components/decoration/decoration2/index.less +6 -6
  146. package/lib/lowcode-components/decoration/decoration3/index.less +7 -7
  147. package/lib/lowcode-components/decoration/decoration4/index.less +29 -29
  148. package/lib/lowcode-components/decoration/decoration5/index.less +3 -3
  149. package/lib/lowcode-components/decoration/decoration6/index.less +7 -7
  150. package/lib/lowcode-components/decoration/decoration7/index.less +4 -4
  151. package/lib/lowcode-components/decoration/decoration8/index.less +14 -14
  152. package/lib/lowcode-components/decoration/decoration9/index.less +4 -4
  153. package/lib/lowcode-components/effectScatter-map/index.js +6 -6
  154. package/lib/lowcode-components/effectScatter-map-3d/index.js +6 -6
  155. package/lib/lowcode-components/four-angle-glow-border/index.less +49 -49
  156. package/lib/lowcode-components/line-bar-chart/index.d.ts +2 -1
  157. package/lib/lowcode-components/line-bar-chart/index.d.ts.map +1 -1
  158. package/lib/lowcode-components/line-bar-chart/index.js +53 -11
  159. package/lib/lowcode-components/line-bar-chart/index.js.map +1 -1
  160. package/lib/lowcode-components/line-chart/index.d.ts +1 -0
  161. package/lib/lowcode-components/line-chart/index.d.ts.map +1 -1
  162. package/lib/lowcode-components/line-chart/index.js +52 -10
  163. package/lib/lowcode-components/line-chart/index.js.map +1 -1
  164. package/lib/lowcode-components/lowcode-view/component/font/FontGlobal.css +26 -26
  165. package/lib/lowcode-components/lowcode-view/component/screen-fit/index.less +13 -13
  166. package/lib/lowcode-components/lowcode-view/index.d.ts.map +1 -1
  167. package/lib/lowcode-components/lowcode-view/index.js +3 -1
  168. package/lib/lowcode-components/lowcode-view/index.js.map +1 -1
  169. package/lib/lowcode-components/lowcode-view/index.less +19 -19
  170. package/lib/lowcode-components/search-form/index.less +25 -25
  171. package/lib/lowcode-components/text-scroller/index.less +28 -28
  172. package/lib/module/dtmpl-edit-card.d.ts +2 -0
  173. package/lib/module/dtmpl-edit-card.d.ts.map +1 -1
  174. package/lib/module/dtmpl-edit-card.js +15 -12
  175. package/lib/module/dtmpl-edit-card.js.map +1 -1
  176. package/lib/module/dtmpl-edit-drawer.d.ts +1 -0
  177. package/lib/module/dtmpl-edit-drawer.d.ts.map +1 -1
  178. package/lib/module/dtmpl-edit-drawer.js.map +1 -1
  179. package/lib/module/dtmpl-edit-modal.d.ts +1 -0
  180. package/lib/module/dtmpl-edit-modal.d.ts.map +1 -1
  181. package/lib/module/dtmpl-edit-modal.js.map +1 -1
  182. package/lib/module/dtmpl-edit-page.d.ts +2 -0
  183. package/lib/module/dtmpl-edit-page.d.ts.map +1 -1
  184. package/lib/module/dtmpl-edit-page.js +16 -12
  185. package/lib/module/dtmpl-edit-page.js.map +1 -1
  186. package/lib/module/index.less +4 -4
  187. package/lib/module/ltmpl-modal.d.ts.map +1 -1
  188. package/lib/module/ltmpl-table.d.ts +4 -0
  189. package/lib/module/ltmpl-table.d.ts.map +1 -1
  190. package/lib/module/ltmpl-table.js +10 -6
  191. package/lib/module/ltmpl-table.js.map +1 -1
  192. package/lib/routable/index.less +25 -25
  193. package/lib/routable/ltmpl-route.d.ts +1 -0
  194. package/lib/routable/ltmpl-route.d.ts.map +1 -1
  195. package/lib/routable/ltmpl-route.js +5 -3
  196. package/lib/routable/ltmpl-route.js.map +1 -1
  197. package/lib/routable/splitview-ltmpl-route.d.ts.map +1 -1
  198. package/lib/routable/splitview-ltmpl-route.js +4 -2
  199. package/lib/routable/splitview-ltmpl-route.js.map +1 -1
  200. package/lib/table/act-table.d.ts +3 -1
  201. package/lib/table/act-table.d.ts.map +1 -1
  202. package/lib/table/act-table.js +8 -7
  203. package/lib/table/act-table.js.map +1 -1
  204. package/lib/table/column/column-builder.d.ts.map +1 -1
  205. package/lib/table/column/column-builder.js +15 -6
  206. package/lib/table/column/column-builder.js.map +1 -1
  207. package/lib/table/column/index.less +85 -85
  208. package/lib/table/index.css +211 -211
  209. package/lib/table/modal-select-table.d.ts.map +1 -1
  210. package/lib/table/page-chart.less +9 -9
  211. package/lib/table/pagination.css +14 -14
  212. package/lib/table/pagination.d.ts.map +1 -1
  213. package/lib/table/relation-table.d.ts.map +1 -1
  214. package/lib/table/selected-rows-card.d.ts.map +1 -1
  215. package/lib/table/stat/restat.d.ts.map +1 -1
  216. package/lib/tmpl/interface.d.ts +4 -1
  217. package/lib/tmpl/interface.d.ts.map +1 -1
  218. package/lib/tmpl/interface.js.map +1 -1
  219. package/lib/tree/act-tree.d.ts.map +1 -1
  220. package/lib/tree/block-menu-auth-tree.d.ts.map +1 -1
  221. package/lib/tree/index.css +22 -22
  222. package/lib/tree/tmpl-tree.d.ts.map +1 -1
  223. package/lib/welcome/components/menu-card.less +96 -96
  224. package/lib/welcome/components/page-card.less +49 -49
  225. package/lib/welcome/components/quick-entrance.less +120 -120
  226. package/lib/welcome/components/user-menus.less +192 -192
  227. package/lib/welcome/components/workbench.less +118 -118
  228. package/lib/welcome/index.css +13 -13
  229. package/package.json +224 -224
  230. package/src/aldehyde/controls/2dEditor/2dEditor/index.less +5 -5
  231. package/src/aldehyde/controls/2dEditor/2dEditor/index.tsx +270 -270
  232. package/src/aldehyde/controls/2dEditor/2dView/index.less +8 -8
  233. package/src/aldehyde/controls/2dEditor/2dView/index.tsx +110 -110
  234. package/src/aldehyde/controls/2dEditor/components/card.tsx +256 -256
  235. package/src/aldehyde/controls/2dEditor/components/component.less +83 -83
  236. package/src/aldehyde/controls/2dEditor/components/data.d.ts +32 -32
  237. package/src/aldehyde/controls/2dEditor/components/hotspot.tsx +80 -80
  238. package/src/aldehyde/controls/2dEditor/components/html-box.tsx +101 -101
  239. package/src/aldehyde/controls/2dEditor/components/image.tsx +99 -99
  240. package/src/aldehyde/controls/2dEditor/components/line.tsx +73 -73
  241. package/src/aldehyde/controls/action/index.css +8 -8
  242. package/src/aldehyde/controls/action/index.tsx +406 -406
  243. package/src/aldehyde/controls/action/utils.tsx +306 -306
  244. package/src/aldehyde/controls/auto-complete/index.tsx +82 -82
  245. package/src/aldehyde/controls/cascader/index.tsx +112 -112
  246. package/src/aldehyde/controls/chemstruc/graph.tsx +185 -185
  247. package/src/aldehyde/controls/chemstruc/index.css +28 -28
  248. package/src/aldehyde/controls/code-editor/sql-code-editor.tsx +73 -73
  249. package/src/aldehyde/controls/collapse-card/index.css +8 -8
  250. package/src/aldehyde/controls/collapse-card/index.tsx +109 -109
  251. package/src/aldehyde/controls/color-picker/index.tsx +21 -21
  252. package/src/aldehyde/controls/counting-tag/index.tsx +53 -53
  253. package/src/aldehyde/controls/cquery/cquick-button.tsx +145 -145
  254. package/src/aldehyde/controls/date-picker/index.tsx +199 -199
  255. package/src/aldehyde/controls/direct-file-view/drawer-file-view.tsx +54 -54
  256. package/src/aldehyde/controls/direct-file-view/index.tsx +147 -147
  257. package/src/aldehyde/controls/direct-upload/index.tsx +140 -140
  258. package/src/aldehyde/controls/entity-select/entity-select.tsx +791 -791
  259. package/src/aldehyde/controls/entity-select/index.css +7 -7
  260. package/src/aldehyde/controls/entity-select/lab-tree-select.tsx +154 -154
  261. package/src/aldehyde/controls/entity-select/popover-entity-select.tsx +205 -205
  262. package/src/aldehyde/controls/entry-control.tsx +431 -431
  263. package/src/aldehyde/controls/enum-badge/index.tsx +42 -42
  264. package/src/aldehyde/controls/enum-tag/index.tsx +45 -45
  265. package/src/aldehyde/controls/field-history/index.tsx +81 -81
  266. package/src/aldehyde/controls/file-export/select-code-export.tsx +40 -40
  267. package/src/aldehyde/controls/file-view/drawer-file-view.tsx +117 -117
  268. package/src/aldehyde/controls/file-view/index.less +9 -9
  269. package/src/aldehyde/controls/file-view/index.tsx +148 -148
  270. package/src/aldehyde/controls/file-view/multi-file-view.tsx +39 -39
  271. package/src/aldehyde/controls/file-view/newin-file-view.tsx +40 -40
  272. package/src/aldehyde/controls/html-editor/draft.tsx +136 -136
  273. package/src/aldehyde/controls/html-editor/index.less +67 -67
  274. package/src/aldehyde/controls/icon-selector/app-icon-selector.tsx +68 -68
  275. package/src/aldehyde/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.css +147 -147
  276. package/src/aldehyde/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.json +240 -240
  277. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +63 -63
  278. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.json +93 -93
  279. package/src/aldehyde/controls/icon-selector/pc-icon-selector.tsx +68 -68
  280. package/src/aldehyde/controls/input-number/index.tsx +148 -148
  281. package/src/aldehyde/controls/input-range/index.tsx +59 -59
  282. package/src/aldehyde/controls/password-setter/index.css +2 -2
  283. package/src/aldehyde/controls/password-setter/index.js +88 -88
  284. package/src/aldehyde/controls/progress/index.tsx +74 -74
  285. package/src/aldehyde/controls/qr-code/index.less +28 -28
  286. package/src/aldehyde/controls/qr-code/index.tsx +40 -40
  287. package/src/aldehyde/controls/relation-existion/index.css +3 -3
  288. package/src/aldehyde/controls/relation-existion/index.tsx +144 -144
  289. package/src/aldehyde/controls/rfield/index.css +4 -4
  290. package/src/aldehyde/controls/rfield/index.tsx +225 -225
  291. package/src/aldehyde/controls/select/index.tsx +226 -226
  292. package/src/aldehyde/controls/signature/index.tsx +226 -226
  293. package/src/aldehyde/controls/single-checkbox/index.tsx +18 -18
  294. package/src/aldehyde/controls/steps/index.tsx +59 -59
  295. package/src/aldehyde/controls/text/ellipsis-text.tsx +98 -98
  296. package/src/aldehyde/controls/text/index.less +7 -7
  297. package/src/aldehyde/controls/tree-select/navigation-tree.tsx +122 -122
  298. package/src/aldehyde/controls/tree-select/tree-entity-select.tsx +121 -121
  299. package/src/aldehyde/controls/upload/index.tsx +128 -128
  300. package/src/aldehyde/controls/upload/mult-file-upload.tsx +240 -240
  301. package/src/aldehyde/controls/upload-read-excel/index.tsx +43 -43
  302. package/src/aldehyde/controls/view-control.tsx +289 -289
  303. package/src/aldehyde/custom-page/custom-detail-modal-page.tsx +69 -69
  304. package/src/aldehyde/custom-page/custom-page-router.tsx +64 -64
  305. package/src/aldehyde/custom-page/def-custom-page.tsx +17 -17
  306. package/src/aldehyde/custom-page/dtmpl-custom-edit-modal-page.tsx +91 -88
  307. package/src/aldehyde/detail/button/bottom-submit-button-bar.tsx +91 -91
  308. package/src/aldehyde/detail/button/cquery-button-bar.tsx +144 -144
  309. package/src/aldehyde/detail/button/edit-button.tsx +61 -61
  310. package/src/aldehyde/detail/button/fix-right-submit-button-bar.tsx +186 -186
  311. package/src/aldehyde/detail/button/index.css +42 -42
  312. package/src/aldehyde/detail/button/inline-edit-button.tsx +40 -40
  313. package/src/aldehyde/detail/button/submit-button-bar.tsx +57 -57
  314. package/src/aldehyde/detail/button/view-button.tsx +64 -64
  315. package/src/aldehyde/detail/dtmpl.css +72 -72
  316. package/src/aldehyde/detail/edit/dtmpl-edit.tsx +279 -279
  317. package/src/aldehyde/detail/edit/fields-edit-card.tsx +145 -145
  318. package/src/aldehyde/detail/edit/modal-row-edit.tsx +95 -95
  319. package/src/aldehyde/detail/edit/popover-edit-card.tsx +167 -167
  320. package/src/aldehyde/detail/edit/popover-editor.tsx +70 -70
  321. package/src/aldehyde/detail/edit/post-result/index.tsx +86 -86
  322. package/src/aldehyde/detail/rightbar/index.css +34 -34
  323. package/src/aldehyde/detail/rightbar/index.tsx +92 -92
  324. package/src/aldehyde/detail/tooltipbar/index.tsx +32 -32
  325. package/src/aldehyde/detail/view/act-dtmpl-view.tsx +288 -288
  326. package/src/aldehyde/detail/view/dtmpl-view.tsx +334 -334
  327. package/src/aldehyde/detail/view/field-view-group.tsx +88 -88
  328. package/src/aldehyde/detail/view/modal-dtmpl-view.tsx +73 -73
  329. package/src/aldehyde/detail/view/snapshot-timeline.tsx +231 -231
  330. package/src/aldehyde/detail/view/tab-act-dtmpl-view.tsx +304 -304
  331. package/src/aldehyde/detail/view/view-compare-panel.tsx +57 -57
  332. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.less +35 -35
  333. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.tsx +110 -110
  334. package/src/aldehyde/draw-canvas-edit/components/main-header/index.less +23 -23
  335. package/src/aldehyde/draw-canvas-edit/components/main-header/index.tsx +263 -263
  336. package/src/aldehyde/draw-canvas-edit/components/render/components/index.less +60 -60
  337. package/src/aldehyde/draw-canvas-edit/components/render/components/index.ts +3 -3
  338. package/src/aldehyde/draw-canvas-edit/components/render/components/workstation-component.tsx +220 -220
  339. package/src/aldehyde/draw-canvas-edit/components/render/draws/bg-draw.ts +177 -177
  340. package/src/aldehyde/draw-canvas-edit/components/render/draws/contextmenu-draw.ts +330 -330
  341. package/src/aldehyde/draw-canvas-edit/components/render/draws/graph-draw.ts +249 -249
  342. package/src/aldehyde/draw-canvas-edit/components/render/draws/index.ts +7 -7
  343. package/src/aldehyde/draw-canvas-edit/components/render/draws/link-draw.ts +1415 -1415
  344. package/src/aldehyde/draw-canvas-edit/components/render/draws/preview-draw.ts +274 -274
  345. package/src/aldehyde/draw-canvas-edit/components/render/draws/ref-line-draw.ts +71 -71
  346. package/src/aldehyde/draw-canvas-edit/components/render/draws/ruler-draw.ts +166 -166
  347. package/src/aldehyde/draw-canvas-edit/components/render/graphs/base-graph.ts +241 -241
  348. package/src/aldehyde/draw-canvas-edit/components/render/graphs/bezier.ts +542 -542
  349. package/src/aldehyde/draw-canvas-edit/components/render/graphs/circle.ts +699 -699
  350. package/src/aldehyde/draw-canvas-edit/components/render/graphs/curve.ts +500 -500
  351. package/src/aldehyde/draw-canvas-edit/components/render/graphs/index.ts +5 -5
  352. package/src/aldehyde/draw-canvas-edit/components/render/graphs/line.ts +493 -493
  353. package/src/aldehyde/draw-canvas-edit/components/render/graphs/rect.ts +680 -680
  354. package/src/aldehyde/draw-canvas-edit/components/render/handlers/drag-handlers.ts +68 -68
  355. package/src/aldehyde/draw-canvas-edit/components/render/handlers/drag-outside-handlers.ts +77 -77
  356. package/src/aldehyde/draw-canvas-edit/components/render/handlers/graph-handlers.ts +113 -113
  357. package/src/aldehyde/draw-canvas-edit/components/render/handlers/index.ts +9 -9
  358. package/src/aldehyde/draw-canvas-edit/components/render/handlers/key-move-handlers.ts +49 -49
  359. package/src/aldehyde/draw-canvas-edit/components/render/handlers/link-handlers.ts +45 -45
  360. package/src/aldehyde/draw-canvas-edit/components/render/handlers/selection-handlers.ts +410 -410
  361. package/src/aldehyde/draw-canvas-edit/components/render/handlers/shutcut-handlers.ts +45 -45
  362. package/src/aldehyde/draw-canvas-edit/components/render/handlers/text-handlers.ts +81 -81
  363. package/src/aldehyde/draw-canvas-edit/components/render/handlers/zoom-handlers.ts +59 -59
  364. package/src/aldehyde/draw-canvas-edit/components/render/index.ts +817 -817
  365. package/src/aldehyde/draw-canvas-edit/components/render/tools/align-tool.ts +89 -89
  366. package/src/aldehyde/draw-canvas-edit/components/render/tools/asset-tool.ts +154 -154
  367. package/src/aldehyde/draw-canvas-edit/components/render/tools/attract-tool.ts +457 -457
  368. package/src/aldehyde/draw-canvas-edit/components/render/tools/component-factory.ts +269 -269
  369. package/src/aldehyde/draw-canvas-edit/components/render/tools/copy-tool.ts +244 -244
  370. package/src/aldehyde/draw-canvas-edit/components/render/tools/import-export-tool.ts +588 -588
  371. package/src/aldehyde/draw-canvas-edit/components/render/tools/index.ts +10 -10
  372. package/src/aldehyde/draw-canvas-edit/components/render/tools/link-tool.ts +222 -222
  373. package/src/aldehyde/draw-canvas-edit/components/render/tools/position-tool.ts +191 -191
  374. package/src/aldehyde/draw-canvas-edit/components/render/tools/selection-tool.ts +140 -140
  375. package/src/aldehyde/draw-canvas-edit/components/render/tools/z-index-tool.ts +224 -224
  376. package/src/aldehyde/draw-canvas-edit/components/render/types.ts +298 -298
  377. package/src/aldehyde/draw-canvas-edit/components/render/utils/a-star.ts +116 -116
  378. package/src/aldehyde/draw-canvas-edit/components/render/utils/bezier-scene-func.ts +72 -72
  379. package/src/aldehyde/draw-canvas-edit/components/setting-form/imag-upload.tsx +119 -119
  380. package/src/aldehyde/draw-canvas-edit/components/setting-form/index.tsx +305 -305
  381. package/src/aldehyde/draw-canvas-edit/constant.ts +5 -5
  382. package/src/aldehyde/draw-canvas-edit/index.less +48 -48
  383. package/src/aldehyde/draw-canvas-edit/index.tsx +213 -213
  384. package/src/aldehyde/draw-canvas-view/index.less +66 -66
  385. package/src/aldehyde/draw-canvas-view/index.tsx +49 -49
  386. package/src/aldehyde/draw-canvas-view/view.tsx +237 -237
  387. package/src/aldehyde/export/export-frame.css +2 -2
  388. package/src/aldehyde/export/export-frame.tsx +301 -301
  389. package/src/aldehyde/export/select-code-export-frame.tsx +212 -212
  390. package/src/aldehyde/form/criteria-form.tsx +604 -604
  391. package/src/aldehyde/form/dtmpl-form.css +3 -3
  392. package/src/aldehyde/form/dtmpl-form.tsx +571 -571
  393. package/src/aldehyde/form/field-group-form.tsx +103 -103
  394. package/src/aldehyde/form/fields-form.tsx +45 -45
  395. package/src/aldehyde/form/form-Item-group.tsx +246 -246
  396. package/src/aldehyde/form/index.css +12 -12
  397. package/src/aldehyde/hooks/use-match-route/index.tsx +62 -62
  398. package/src/aldehyde/hooks/use-tabs/index.tsx +139 -139
  399. package/src/aldehyde/hooks/useVarCssColor.ts +6 -6
  400. package/src/aldehyde/icon/aliIcon.tsx +9 -9
  401. package/src/aldehyde/icon/index.tsx +28 -28
  402. package/src/aldehyde/import/excel-import.tsx +450 -450
  403. package/src/aldehyde/import/index.css +53 -53
  404. package/src/aldehyde/import/template.css +50 -50
  405. package/src/aldehyde/index.tsx +220 -220
  406. package/src/aldehyde/layout/MainPage.tsx +334 -334
  407. package/src/aldehyde/layout/common.css +64 -64
  408. package/src/aldehyde/layout/coverstyle.css +51 -51
  409. package/src/aldehyde/layout/footer/index.css +5 -5
  410. package/src/aldehyde/layout/footer/index.js +17 -17
  411. package/src/aldehyde/layout/header/index.css +122 -122
  412. package/src/aldehyde/layout/header/index.tsx +152 -152
  413. package/src/aldehyde/layout/menu/block.css +7 -7
  414. package/src/aldehyde/layout/menu/block.tsx +174 -174
  415. package/src/aldehyde/layout/menu/l2menu-message-bar.tsx +160 -160
  416. package/src/aldehyde/layout/menu/l2menu-quick-bar.tsx +175 -175
  417. package/src/aldehyde/layout/menu/menu-2layers.tsx +117 -117
  418. package/src/aldehyde/layout/menu/menu-render.tsx +168 -168
  419. package/src/aldehyde/layout/menu/message-bar.less +73 -73
  420. package/src/aldehyde/layout/menu/reset-password.tsx +255 -255
  421. package/src/aldehyde/layout/menu/user-bar.tsx +259 -259
  422. package/src/aldehyde/layout/menu/userinfo-bar.tsx +69 -69
  423. package/src/aldehyde/layout/sidebar/index.css +57 -57
  424. package/src/aldehyde/layout/sidebar/index.tsx +84 -84
  425. package/src/aldehyde/layout2/components/icon-font.tsx +7 -7
  426. package/src/aldehyde/layout2/components/screenfull-button.tsx +21 -21
  427. package/src/aldehyde/layout2/components/search-menu.tsx +85 -85
  428. package/src/aldehyde/layout2/components/system-messages.tsx +75 -75
  429. package/src/aldehyde/layout2/components/theme-button.tsx +65 -65
  430. package/src/aldehyde/layout2/components/user-button.tsx +258 -258
  431. package/src/aldehyde/layout2/components/user-notification.tsx +74 -74
  432. package/src/aldehyde/layout2/css/header.css +41 -41
  433. package/src/aldehyde/layout2/css/sider.less +17 -17
  434. package/src/aldehyde/layout2/css/tabs-layout.less +18 -18
  435. package/src/aldehyde/layout2/header.tsx +278 -278
  436. package/src/aldehyde/layout2/layout-context.tsx +95 -95
  437. package/src/aldehyde/layout2/main.tsx +30 -30
  438. package/src/aldehyde/layout2/page.tsx +315 -315
  439. package/src/aldehyde/layout2/sider.tsx +230 -230
  440. package/src/aldehyde/layout2/tabs/tabs-context.tsx +37 -37
  441. package/src/aldehyde/layout2/tabs/tabs-layout.tsx +146 -146
  442. package/src/aldehyde/layout2/type/layout-type.ts +15 -15
  443. package/src/aldehyde/layout2/util/menu-util.tsx +125 -125
  444. package/src/aldehyde/layout3/components/tabs-layout.tsx +110 -110
  445. package/src/aldehyde/layout3/components/time.tsx +25 -25
  446. package/src/aldehyde/layout3/css/header.less +195 -195
  447. package/src/aldehyde/layout3/css/main.less +161 -161
  448. package/src/aldehyde/layout3/css/sider.less +32 -32
  449. package/src/aldehyde/layout3/css/tabs-layout.less +38 -38
  450. package/src/aldehyde/layout3/header.tsx +187 -187
  451. package/src/aldehyde/layout3/main.tsx +29 -29
  452. package/src/aldehyde/layout3/page.tsx +110 -110
  453. package/src/aldehyde/layout3/sider.tsx +198 -198
  454. package/src/aldehyde/layout4/components/tabs-layout.tsx +110 -110
  455. package/src/aldehyde/layout4/css/header.less +196 -196
  456. package/src/aldehyde/layout4/css/main.less +154 -154
  457. package/src/aldehyde/layout4/css/sider.less +37 -37
  458. package/src/aldehyde/layout4/css/tabs-layout.less +42 -42
  459. package/src/aldehyde/layout4/header.tsx +190 -190
  460. package/src/aldehyde/layout4/imgs/user.svg +26 -26
  461. package/src/aldehyde/layout4/main.tsx +29 -29
  462. package/src/aldehyde/layout4/page.tsx +125 -125
  463. package/src/aldehyde/layout4/sider.tsx +201 -201
  464. package/src/aldehyde/layout5/css/header.less +35 -35
  465. package/src/aldehyde/layout5/css/sider.less +18 -18
  466. package/src/aldehyde/layout5/header.tsx +204 -204
  467. package/src/aldehyde/layout5/page.tsx +107 -107
  468. package/src/aldehyde/layout5/sider.tsx +235 -235
  469. package/src/aldehyde/list/calendar/index.less +20 -20
  470. package/src/aldehyde/list/calendar/index.tsx +157 -157
  471. package/src/aldehyde/list/card-list/card-list-item.tsx +112 -112
  472. package/src/aldehyde/list/card-list/index.less +154 -154
  473. package/src/aldehyde/list/card-list/index.tsx +83 -83
  474. package/src/aldehyde/list/gantt/index.less +8 -8
  475. package/src/aldehyde/list/gantt/index.tsx +508 -508
  476. package/src/aldehyde/list/vertical-list/index.less +208 -208
  477. package/src/aldehyde/list/vertical-list/index.tsx +55 -55
  478. package/src/aldehyde/list/vertical-list/item.tsx +136 -136
  479. package/src/aldehyde/locale/LocaleButton.tsx +48 -48
  480. package/src/aldehyde/locale/LocaleProvider.tsx +265 -265
  481. package/src/aldehyde/locale/langMp.ts +45 -45
  482. package/src/aldehyde/locale/translate.ts +80 -80
  483. package/src/aldehyde/locale/useLocale.ts +72 -72
  484. package/src/aldehyde/login/context-setter.tsx +130 -130
  485. package/src/aldehyde/login/index.css +19 -19
  486. package/src/aldehyde/login/login.tsx +255 -255
  487. package/src/aldehyde/login/router-login.tsx +107 -107
  488. package/src/aldehyde/login/vertify/index.css +143 -143
  489. package/src/aldehyde/login/vertify/index.tsx +360 -360
  490. package/src/aldehyde/login/vertify/tool.ts +13 -13
  491. package/src/aldehyde/login2/login-page.tsx +92 -92
  492. package/src/aldehyde/login2/login.tsx +227 -227
  493. package/src/aldehyde/login3/index.less +136 -136
  494. package/src/aldehyde/login3/login-page.tsx +71 -71
  495. package/src/aldehyde/lowcode-components/act-table/index.less +26 -26
  496. package/src/aldehyde/lowcode-components/act-table/index.tsx +139 -139
  497. package/src/aldehyde/lowcode-components/assets/lowcode-constant.tsx +12 -12
  498. package/src/aldehyde/lowcode-components/bar-chart/index.tsx +272 -272
  499. package/src/aldehyde/lowcode-components/base-button/index.less +7 -7
  500. package/src/aldehyde/lowcode-components/base-button/index.tsx +197 -197
  501. package/src/aldehyde/lowcode-components/base-color-block/index.tsx +31 -31
  502. package/src/aldehyde/lowcode-components/base-image/index.tsx +220 -220
  503. package/src/aldehyde/lowcode-components/base-map/index.tsx +292 -292
  504. package/src/aldehyde/lowcode-components/base-radio/index.less +23 -23
  505. package/src/aldehyde/lowcode-components/base-radio/index.tsx +157 -157
  506. package/src/aldehyde/lowcode-components/base-table/index.less +61 -61
  507. package/src/aldehyde/lowcode-components/base-table/index.tsx +268 -268
  508. package/src/aldehyde/lowcode-components/base-tabs/index.less +14 -14
  509. package/src/aldehyde/lowcode-components/base-tabs/index.tsx +183 -183
  510. package/src/aldehyde/lowcode-components/base-text/index.less +19 -19
  511. package/src/aldehyde/lowcode-components/base-text/index.tsx +58 -58
  512. package/src/aldehyde/lowcode-components/border/border1/index.tsx +70 -70
  513. package/src/aldehyde/lowcode-components/border/border10/index.less +26 -26
  514. package/src/aldehyde/lowcode-components/border/border10/index.tsx +45 -45
  515. package/src/aldehyde/lowcode-components/border/border11/index.less +17 -17
  516. package/src/aldehyde/lowcode-components/border/border11/index.tsx +232 -232
  517. package/src/aldehyde/lowcode-components/border/border12/index.less +13 -13
  518. package/src/aldehyde/lowcode-components/border/border12/index.tsx +115 -115
  519. package/src/aldehyde/lowcode-components/border/border13/index.less +13 -13
  520. package/src/aldehyde/lowcode-components/border/border13/index.tsx +69 -69
  521. package/src/aldehyde/lowcode-components/border/border2/index.less +17 -17
  522. package/src/aldehyde/lowcode-components/border/border2/index.tsx +51 -51
  523. package/src/aldehyde/lowcode-components/border/border3/index.less +25 -25
  524. package/src/aldehyde/lowcode-components/border/border3/index.tsx +61 -61
  525. package/src/aldehyde/lowcode-components/border/border4/index.less +72 -72
  526. package/src/aldehyde/lowcode-components/border/border4/index.tsx +79 -79
  527. package/src/aldehyde/lowcode-components/border/border5/index.less +35 -35
  528. package/src/aldehyde/lowcode-components/border/border5/index.tsx +75 -75
  529. package/src/aldehyde/lowcode-components/border/border6/index.less +17 -17
  530. package/src/aldehyde/lowcode-components/border/border6/index.tsx +60 -60
  531. package/src/aldehyde/lowcode-components/border/border7/index.less +26 -26
  532. package/src/aldehyde/lowcode-components/border/border7/index.tsx +75 -75
  533. package/src/aldehyde/lowcode-components/border/border8/index.less +13 -13
  534. package/src/aldehyde/lowcode-components/border/border8/index.tsx +84 -84
  535. package/src/aldehyde/lowcode-components/border/border9/index.less +13 -13
  536. package/src/aldehyde/lowcode-components/border/border9/index.tsx +154 -154
  537. package/src/aldehyde/lowcode-components/capsule-bar-chart/index.tsx +290 -290
  538. package/src/aldehyde/lowcode-components/carousel/index.tsx +218 -218
  539. package/src/aldehyde/lowcode-components/circular-progress-chart/index.tsx +263 -263
  540. package/src/aldehyde/lowcode-components/column-3d-chart/index.tsx +442 -442
  541. package/src/aldehyde/lowcode-components/column-chart/index.tsx +349 -297
  542. package/src/aldehyde/lowcode-components/data-number/index.less +10 -10
  543. package/src/aldehyde/lowcode-components/data-number/index.tsx +219 -219
  544. package/src/aldehyde/lowcode-components/data.d.ts +19 -19
  545. package/src/aldehyde/lowcode-components/date-time/index.less +4 -4
  546. package/src/aldehyde/lowcode-components/date-time/index.tsx +64 -64
  547. package/src/aldehyde/lowcode-components/decoration/decoration1/index.less +7 -7
  548. package/src/aldehyde/lowcode-components/decoration/decoration1/index.tsx +153 -153
  549. package/src/aldehyde/lowcode-components/decoration/decoration10/index.less +5 -5
  550. package/src/aldehyde/lowcode-components/decoration/decoration10/index.tsx +89 -89
  551. package/src/aldehyde/lowcode-components/decoration/decoration11/index.less +5 -5
  552. package/src/aldehyde/lowcode-components/decoration/decoration11/index.tsx +133 -133
  553. package/src/aldehyde/lowcode-components/decoration/decoration2/index.less +6 -6
  554. package/src/aldehyde/lowcode-components/decoration/decoration2/index.tsx +61 -61
  555. package/src/aldehyde/lowcode-components/decoration/decoration3/index.less +7 -7
  556. package/src/aldehyde/lowcode-components/decoration/decoration3/index.tsx +87 -87
  557. package/src/aldehyde/lowcode-components/decoration/decoration4/index.less +29 -29
  558. package/src/aldehyde/lowcode-components/decoration/decoration4/index.tsx +53 -53
  559. package/src/aldehyde/lowcode-components/decoration/decoration5/index.less +3 -3
  560. package/src/aldehyde/lowcode-components/decoration/decoration5/index.tsx +116 -116
  561. package/src/aldehyde/lowcode-components/decoration/decoration6/index.less +7 -7
  562. package/src/aldehyde/lowcode-components/decoration/decoration6/index.tsx +121 -121
  563. package/src/aldehyde/lowcode-components/decoration/decoration7/index.less +4 -4
  564. package/src/aldehyde/lowcode-components/decoration/decoration7/index.tsx +70 -70
  565. package/src/aldehyde/lowcode-components/decoration/decoration8/index.less +14 -14
  566. package/src/aldehyde/lowcode-components/decoration/decoration8/index.tsx +122 -122
  567. package/src/aldehyde/lowcode-components/decoration/decoration9/index.less +4 -4
  568. package/src/aldehyde/lowcode-components/decoration/decoration9/index.tsx +196 -196
  569. package/src/aldehyde/lowcode-components/effectScatter-map/index.tsx +315 -315
  570. package/src/aldehyde/lowcode-components/effectScatter-map-3d/index.tsx +419 -419
  571. package/src/aldehyde/lowcode-components/four-angle-glow-border/index.less +49 -49
  572. package/src/aldehyde/lowcode-components/four-angle-glow-border/index.tsx +53 -53
  573. package/src/aldehyde/lowcode-components/gauge-chart/index.tsx +254 -254
  574. package/src/aldehyde/lowcode-components/index.ts +130 -130
  575. package/src/aldehyde/lowcode-components/line-bar-chart/index.tsx +356 -304
  576. package/src/aldehyde/lowcode-components/line-chart/index.tsx +346 -294
  577. package/src/aldehyde/lowcode-components/liquid-chart/index.tsx +250 -250
  578. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-controller.ts +64 -64
  579. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-definition.ts +77 -77
  580. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-designer-loader.ts +36 -36
  581. package/src/aldehyde/lowcode-components/lowcode-view/component/assets.ts +478 -478
  582. package/src/aldehyde/lowcode-components/lowcode-view/component/component-container.tsx +91 -91
  583. package/src/aldehyde/lowcode-components/lowcode-view/component/component-controller.ts +153 -153
  584. package/src/aldehyde/lowcode-components/lowcode-view/component/component-definition.ts +23 -23
  585. package/src/aldehyde/lowcode-components/lowcode-view/component/font/FontGlobal.css +26 -26
  586. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/controller.ts +36 -36
  587. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/definition.ts +53 -53
  588. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/index.tsx +15 -15
  589. package/src/aldehyde/lowcode-components/lowcode-view/component/layer-builder.tsx +98 -98
  590. package/src/aldehyde/lowcode-components/lowcode-view/component/loading.tsx +20 -20
  591. package/src/aldehyde/lowcode-components/lowcode-view/component/screen-fit/index.less +13 -13
  592. package/src/aldehyde/lowcode-components/lowcode-view/component/screen-fit/index.tsx +121 -121
  593. package/src/aldehyde/lowcode-components/lowcode-view/component/util.ts +27 -27
  594. package/src/aldehyde/lowcode-components/lowcode-view/index.less +19 -19
  595. package/src/aldehyde/lowcode-components/lowcode-view/index.tsx +279 -277
  596. package/src/aldehyde/lowcode-components/lowcode-view/interface.ts +189 -189
  597. package/src/aldehyde/lowcode-components/pie-chart/index.tsx +353 -353
  598. package/src/aldehyde/lowcode-components/placeholder-component/index.tsx +81 -81
  599. package/src/aldehyde/lowcode-components/progress-chart/index.tsx +295 -295
  600. package/src/aldehyde/lowcode-components/radar-chart/index.tsx +322 -322
  601. package/src/aldehyde/lowcode-components/search-form/index.less +25 -25
  602. package/src/aldehyde/lowcode-components/search-form/index.tsx +121 -121
  603. package/src/aldehyde/lowcode-components/stroke-animation/index.tsx +219 -219
  604. package/src/aldehyde/lowcode-components/text-scroller/index.less +28 -28
  605. package/src/aldehyde/lowcode-components/text-scroller/index.tsx +173 -173
  606. package/src/aldehyde/module/block-menu-tree-drawer.tsx +118 -118
  607. package/src/aldehyde/module/criteria-page.tsx1 +175 -175
  608. package/src/aldehyde/module/draggable-modal.tsx +66 -66
  609. package/src/aldehyde/module/dtmpl-edit-card.tsx +479 -477
  610. package/src/aldehyde/module/dtmpl-edit-drawer.tsx +24 -23
  611. package/src/aldehyde/module/dtmpl-edit-modal.tsx +26 -25
  612. package/src/aldehyde/module/dtmpl-edit-page.tsx +600 -597
  613. package/src/aldehyde/module/dtmpl-editor.tsx +165 -165
  614. package/src/aldehyde/module/dtmpl-view-card.tsx +64 -64
  615. package/src/aldehyde/module/dtmpl-view-drawer.tsx +71 -71
  616. package/src/aldehyde/module/dtmpl-view-modal.tsx +56 -56
  617. package/src/aldehyde/module/embed-dtmpl-edit-page.tsx +137 -137
  618. package/src/aldehyde/module/index.less +4 -4
  619. package/src/aldehyde/module/ltmpl-drawer.tsx +60 -60
  620. package/src/aldehyde/module/ltmpl-modal.tsx +63 -63
  621. package/src/aldehyde/module/ltmpl-table.tsx +388 -379
  622. package/src/aldehyde/module/ttmpl-tree.tsx +47 -47
  623. package/src/aldehyde/routable/dtmpl-route.tsx +173 -173
  624. package/src/aldehyde/routable/import-route.tsx +35 -35
  625. package/src/aldehyde/routable/index.less +25 -25
  626. package/src/aldehyde/routable/ltmpl-route.tsx +544 -539
  627. package/src/aldehyde/routable/splitview-ltmpl-route.tsx +382 -377
  628. package/src/aldehyde/routable/ttmpl-route.tsx +93 -93
  629. package/src/aldehyde/routable/withroute.tsx +36 -36
  630. package/src/aldehyde/sso-Login/index.tsx +73 -73
  631. package/src/aldehyde/sso-Login/service/index.js +16 -16
  632. package/src/aldehyde/sso-Login/service/login.js +75 -75
  633. package/src/aldehyde/table/act-table.tsx +1846 -1844
  634. package/src/aldehyde/table/column/column-builder.tsx +882 -876
  635. package/src/aldehyde/table/column/column-selector.tsx +130 -130
  636. package/src/aldehyde/table/column/index.less +85 -85
  637. package/src/aldehyde/table/column/summary-builder.tsx +712 -712
  638. package/src/aldehyde/table/column/theme-color-getter.tsx +25 -25
  639. package/src/aldehyde/table/control-table-x-axis-wrapper.tsx +80 -80
  640. package/src/aldehyde/table/index.css +211 -211
  641. package/src/aldehyde/table/l2-act-table.tsx +91 -91
  642. package/src/aldehyde/table/modal-select-table.tsx +308 -308
  643. package/src/aldehyde/table/page-chart.less +9 -9
  644. package/src/aldehyde/table/page-chart.tsx +196 -196
  645. package/src/aldehyde/table/page-config-button.tsx +203 -203
  646. package/src/aldehyde/table/pagination.css +14 -14
  647. package/src/aldehyde/table/pagination.tsx +81 -81
  648. package/src/aldehyde/table/query-table.tsx +668 -668
  649. package/src/aldehyde/table/relation-table.tsx +1078 -1078
  650. package/src/aldehyde/table/report-table.tsx +125 -125
  651. package/src/aldehyde/table/resizable-table.tsx +97 -97
  652. package/src/aldehyde/table/row-table.tsx +22 -22
  653. package/src/aldehyde/table/select-table.tsx +559 -559
  654. package/src/aldehyde/table/selected-rows-card.tsx +78 -78
  655. package/src/aldehyde/table/stat/restat.tsx +122 -122
  656. package/src/aldehyde/table/table-util.tsx +25 -25
  657. package/src/aldehyde/tmpl/control-type-supportor.tsx +154 -154
  658. package/src/aldehyde/tmpl/hc-data-source.tsx +574 -574
  659. package/src/aldehyde/tmpl/hcservice-v3.tsx +1590 -1590
  660. package/src/aldehyde/tmpl/interface.tsx +939 -936
  661. package/src/aldehyde/tmpl/model-struc-v3.tsx +111 -111
  662. package/src/aldehyde/tmpl/superagent.js +146 -146
  663. package/src/aldehyde/tmpl/tmpl-config-analysis.tsx +585 -585
  664. package/src/aldehyde/tmpl/web-socket.ts +366 -366
  665. package/src/aldehyde/tree/act-tree.tsx +217 -217
  666. package/src/aldehyde/tree/block-menu-auth-tree.tsx +189 -189
  667. package/src/aldehyde/tree/index.css +22 -22
  668. package/src/aldehyde/tree/navigation-tree.tsx +39 -39
  669. package/src/aldehyde/tree/tmpl-tree.tsx +751 -751
  670. package/src/aldehyde/tree/tree-node.tsx +73 -73
  671. package/src/aldehyde/tree/tree-utils.tsx +317 -317
  672. package/src/aldehyde/units/EncryptUtils.js +37 -37
  673. package/src/aldehyde/units/image.d.ts +7 -7
  674. package/src/aldehyde/units/index.tsx +1367 -1367
  675. package/src/aldehyde/units/storage.js +2 -2
  676. package/src/aldehyde/utils/dsu.ts +27 -27
  677. package/src/aldehyde/welcome/HCWelcome.js +404 -404
  678. package/src/aldehyde/welcome/HCWelcome1.js +259 -259
  679. package/src/aldehyde/welcome/components/menu-card.less +96 -96
  680. package/src/aldehyde/welcome/components/menu-card.tsx +70 -70
  681. package/src/aldehyde/welcome/components/page-card.less +49 -49
  682. package/src/aldehyde/welcome/components/page-card.tsx +97 -97
  683. package/src/aldehyde/welcome/components/quick-entrance.less +120 -120
  684. package/src/aldehyde/welcome/components/quick-entrance.tsx +80 -80
  685. package/src/aldehyde/welcome/components/user-menus.less +192 -192
  686. package/src/aldehyde/welcome/components/user-menus.tsx +279 -279
  687. package/src/aldehyde/welcome/components/workbench.less +118 -118
  688. package/src/aldehyde/welcome/components/workbench.tsx +146 -146
  689. package/src/aldehyde/welcome/index.css +13 -13
@@ -1,589 +1,589 @@
1
- import Konva from 'konva';
2
- import { nanoid } from 'nanoid';
3
- import { Render } from '../index';
4
- import { LinkDraw, GraphDraw, RulerDraw, PreviewDraw } from '../draws';
5
- import { AssetSettings, AssetType } from '../types';
6
- import { BezierSceneFunc } from '../utils/bezier-scene-func';
7
-
8
- // 导入导出
9
-
10
- export class ImportExportTool {
11
-
12
- private render: Render;
13
- constructor(render: Render) {
14
- this.render = render;
15
- }
16
-
17
- /**
18
- * 获得显示内容
19
- * @param withLink 是否包含线条
20
- * @returns
21
- */
22
- getView(withLink: boolean = false) {
23
- // 复制画布
24
- const copy = this.render.stage.clone();
25
- // 提取 main layer 备用
26
- const main = copy.find('#main')[0] as Konva.Layer;
27
- const cover = copy.find('#cover')[0] as Konva.Layer;
28
- // 暂时清空所有 layer
29
- const copyChildren = copy.getChildren();
30
- copy.removeChildren();
31
- if (main && cover) {
32
- // 提取节点
33
- let nodes = main.getChildren((node) => !this.render.ignore(node));
34
- // 移除多余结构
35
- for (const node of nodes) {
36
- // 如果当前被选中,listening 会是 false,需恢复
37
- node.listening(true);
38
- // 恢复 draggable(因为,绘制 Graph 的时候,不允许直接拖动其他素材)
39
- node.draggable(!this.render.config.readonly && !node.attrs.locked);
40
- for (const child of (node as Konva.Group).children) {
41
- if (this.render.ignoreSelect(child)) {
42
- child.remove();
43
- }
44
- }
45
- }
46
-
47
- if (withLink) {
48
- // 从 Link group 中提取 连接线
49
- const linkDraw = cover.children.find((o) => o.attrs.name === LinkDraw.NAME) as Konva.Group;
50
- if (linkDraw) {
51
- nodes = nodes.concat(linkDraw.children.filter((o) => o.attrs.name === 'link-line'));
52
- }
53
- }
54
-
55
- // 重新装载节点
56
- const layer = new Konva.Layer();
57
- layer.add(...nodes);
58
- nodes = layer.getChildren();
59
-
60
- for (const node of nodes) {
61
- if (node.attrs.nodeMousedownPos) {
62
- // 修正正在选中的节点透明度
63
- node.setAttrs({ opacity: copy.attrs.lastOpacity ?? 1 });
64
- }
65
- }
66
-
67
- // 重新装载 layer
68
- copy.add(layer);
69
- main.removeChildren();
70
- cover.removeChildren();
71
- }
72
-
73
- copyChildren.forEach((o) => o.destroy());
74
- // 返回可视节点和 layer
75
- return copy;
76
- }
77
-
78
- // 保存
79
- save() {
80
- const copy = this.getView();
81
- const json = copy.toJSON();
82
- copy.destroy();
83
- // 通过 stage api 导出 json
84
- return json;
85
- }
86
-
87
- // 加载 image(用于导入)
88
- loadImage(src: string) {
89
- return new Promise<HTMLImageElement | null>((resolve) => {
90
- const img = new Image();
91
- img.onload = () => {
92
- // 返回加载完成的图片 element
93
- resolve(img);
94
- };
95
- img.onerror = () => {
96
- resolve(null);
97
- };
98
- img.src = src;
99
- });
100
- }
101
-
102
- // 汇总图片组件
103
- getImgNodes(nodes: Konva.Node[] = []) {
104
- const temNodes = nodes.map(node => {
105
- if (node instanceof Konva.Group) {
106
- return this.getImgNodes(node.getChildren());
107
- } else if (node instanceof Konva.Image) {
108
- return node;
109
- }
110
- }).flat(Infinity).filter(Boolean);
111
- return temNodes;
112
- }
113
-
114
- // 恢复图片(用于导入)
115
- async restoreImage(nodes: Konva.Node[] = []) {
116
- const imgNodes = this.getImgNodes(nodes);
117
- const tasks = imgNodes.map(node => {
118
- // 处理图片
119
- if (node.attrs.svgXML) { // svg 素材
120
- return this.render.assetTool.loadSvgXML(node.attrs.svgXML);
121
- } else if (node.attrs.gif) { // gif 素材
122
- return this.render.assetTool.loadGif(node.attrs.gif);
123
- } else if (node.attrs.src) { // 其他图片素材
124
- return this.loadImage(node.attrs.src);
125
- }
126
- });
127
- Promise.all(tasks).then(res => {
128
- res.forEach((imageNode, index) => {
129
- const node = imgNodes[index];
130
- // 处理图片
131
- if (imageNode && node) {
132
- if (node.attrs.svgXML) { // svg 素材
133
- node.image(imageNode.image());
134
- } else if (node.attrs.gif) { // gif 素材
135
- node.image(imageNode.image());
136
- } else if (node.attrs.src) { // 其他图片素材
137
- node.image(imageNode);
138
- }
139
- }
140
- })
141
- });
142
- }
143
-
144
- // 恢复图形
145
- restoreGraph(nodes: Konva.Node[] = []) {
146
- for (const node of nodes) {
147
- if (node instanceof Konva.Group && node.attrs.assetType === AssetType.Graph) {
148
- if (node.attrs.graphType === "Bezier") {
149
- const graph = node.findOne('.graph');
150
- if (graph instanceof Konva.Arrow) {
151
- graph.sceneFunc(BezierSceneFunc);
152
- }
153
- }
154
- const hoverRect = node.findOne('.hoverRect');
155
- if (hoverRect instanceof Konva.Rect) {
156
- hoverRect.on('mouseenter', () => {
157
- // 防止进入调整点,重复处理
158
- if (!node.attrs.hoverAnchor) {
159
- node.setAttr('hover', true);
160
- this.render.redraw([GraphDraw.NAME]);
161
- }
162
- setTimeout(() => {
163
- // 调整产生 redraw,导致离开调整点不触发其 mouseleave(进入其他元素区域除外)
164
- // 在此静态补充"离开调整点"
165
- // 不影响正常处理(调整点会不停 hoverAnchor = true)
166
- node.setAttr('hoverAnchor', false);
167
- });
168
-
169
- // 显示 连接点
170
- this.render.linkTool.pointsVisible(true, node);
171
- });
172
- hoverRect.on('mouseleave', () => {
173
- // 延迟事件,使调整点的 mouseleave 优先
174
- setTimeout(() => {
175
- // 防止进入调整点,重复处理
176
- // 补充 2,快速调整会漏掉
177
- if (!node.attrs.hoverAnchor) {
178
- node.setAttr('hover', false);
179
- node.setAttr('hoverAnchor', false);
180
- this.render.redraw([GraphDraw.NAME]);
181
- }
182
- });
183
- // 隐藏 连接点
184
- this.render.linkTool.pointsVisible(false, node);
185
- // 隐藏 hover 框
186
- node.findOne('#hoverRect')?.visible(false);
187
- });
188
- }
189
- }
190
- }
191
- }
192
-
193
- // 恢复(导入)
194
- async restore(json: string, silent = false) {
195
- if (!Object.keys(JSON.parse(json)).length) {
196
- return;
197
- }
198
- const readonly = this.render.config.readonly;
199
- try {
200
- this.render.emit('loading', true);
201
- // 清空选择
202
- this.render.selectionTool.selectingClear();
203
- this.render.linkTool.selectingClear();
204
- // 清空 main layer 节点
205
- this.render.layer.getChildren().forEach((o) => o.destroy());
206
- this.render.layer.removeChildren();
207
- // 加载 json,提取节点
208
- const container = document.createElement('div');
209
- // 反序列化
210
- const stage = Konva.Node.create(json, container);
211
- const main = stage.getChildren()[0];
212
- const nodes = main.getChildren();
213
- // 恢复节点图片素材
214
- await this.restoreImage(nodes);
215
- await this.restoreGraph(nodes);
216
- for (const node of nodes) {
217
- // 重置旧数据节点为可 draggable
218
- node.draggable(!readonly && !node.attrs.locked);
219
- // 组件鼠标移入移出事件
220
- this.render.componentFactory.groupMouseenter({ group: node });
221
- this.render.componentFactory.groupMouseleave({ group: node });
222
- if (readonly) {
223
- this.render.componentFactory.readonlyInitComponentSetting({ node });
224
- }
225
- }
226
- this.render.layer.add(...nodes); // 插入节点
227
- // 同步页面设置
228
- this.render.stage.setAttr('pageSettings', stage.attrs.pageSettings);
229
- this.render.emit('page-settings-change', this.render.getPageSettings());
230
- // 更新背景
231
- this.render.updateBackground();
232
- // 上一步、下一步 无需更新 history 记录
233
- if (!silent) {
234
- // 更新历史
235
- this.render.updateHistory();
236
- }
237
- // 隐藏 连接点
238
- this.render.linkTool.pointsVisible(false);
239
- // 重绘
240
- this.render.redraw([
241
- GraphDraw.NAME,
242
- LinkDraw.NAME,
243
- RulerDraw.NAME,
244
- PreviewDraw.NAME
245
- ]);
246
- stage.destroy();
247
- } catch (e) {
248
- console.error(e);
249
- } finally {
250
- this.render.emit('loading', false);
251
- }
252
- }
253
-
254
- // 获取图片
255
- getImage(pixelRatio = 1, bgColor?: string) {
256
- // 在 getAssetView 的基础上,增加背景即可
257
- const copy = this.getAssetView();
258
- // 背景层
259
- const bgLayer = new Konva.Layer();
260
- // 背景矩形
261
- const bg = new Konva.Rect({ listening: false });
262
-
263
- bg.setAttrs({
264
- x: 0,
265
- y: 0,
266
- width: copy.width(),
267
- height: copy.height(),
268
- fill: bgColor ?? this.render.getPageSettings().background
269
- });
270
- // 添加背景
271
- bgLayer.add(bg);
272
- const children = copy.getChildren() as Konva.Layer[];
273
- copy.removeChildren();
274
- copy.add(bgLayer);
275
- copy.add(children[0], ...children.slice(1));
276
- const url = copy.toDataURL({ pixelRatio });
277
- copy.destroy();
278
- // 通过 stage api 导出图片
279
- return url;
280
- }
281
-
282
- // 获取元素图片
283
- getAssetImage(pixelRatio = 1, bgColor?: string) {
284
- // 获取可视节点和 layer
285
- const copy = this.getAssetView();
286
- // 背景层
287
- const bgLayer = new Konva.Layer();
288
- // 背景矩形
289
- const bg = new Konva.Rect({ listening: false });
290
- bg.setAttrs({
291
- x: -copy.x(),
292
- y: -copy.y(),
293
- width: copy.width(),
294
- height: copy.height(),
295
- fill: bgColor ?? this.render.getPageSettings().background
296
- });
297
- // 添加背景
298
- bgLayer.add(bg);
299
- // 插入背景
300
- const children = copy.getChildren();
301
- copy.removeChildren();
302
- copy.add(bgLayer);
303
- copy.add(children[0], ...children.slice(1));
304
- const url = copy.toDataURL({ pixelRatio });
305
- copy.destroy();
306
- // 通过 stage api 导出图片
307
- return url;
308
- }
309
-
310
- // blob to base64 url
311
- blobToBase64(blob: Blob, type: string): Promise<string> {
312
- return new Promise((resolve) => {
313
- const file = new File([blob], 'image', { type });
314
- const fileReader = new FileReader();
315
- fileReader.readAsDataURL(file);
316
- fileReader.onload = function () {
317
- resolve((this.result as string) ?? '');
318
- };
319
- });
320
- }
321
-
322
- // 替换 svg blob: 链接
323
- parseSvgImage(urls: string[]): Promise<string[]> {
324
- return new Promise((resolve) => {
325
- if (urls.length > 0) {
326
- Promise.all(urls.map((o) => fetch(o))).then((rs: Response[]) => {
327
- // fetch
328
- // 替换为 svg 嵌套
329
- Promise.all(rs.map((o) => o.text())).then((xmls: string[]) => {
330
- // svg xml
331
- resolve(xmls);
332
- });
333
- });
334
- } else {
335
- resolve([]);
336
- }
337
- });
338
- }
339
-
340
- // 替换其他 image 链接
341
- parseOtherImage(urls: string[]): Promise<string[]> {
342
- return new Promise((resolve) => {
343
- if (urls.length > 0) {
344
- Promise.all(urls.map((o) => fetch(o))).then((rs: Response[]) => {
345
- // fetch
346
- // 替换为 base64 url image
347
- Promise.all(rs.map((o) => o.blob())).then((bs: Blob[]) => {
348
- // blob
349
- Promise.all(bs.map((o) => this.blobToBase64(o, 'image/*'))).then((urls: string[]) => {
350
- // base64
351
- resolve(urls);
352
- });
353
- });
354
- });
355
- } else {
356
- resolve([]);
357
- }
358
- });
359
- }
360
-
361
- // 替换 image 链接
362
- parseImage(xml: string): Promise<string> {
363
- return new Promise((resolve) => {
364
- // 找出 blob:http 图片链接(目前发现只有 svg 是)
365
- const svgs = xml.match(/(?<=xlink:href=")blob:https?:\/\/[^"]+(?=")/g) ?? [];
366
- // 其他图片转为 base64
367
- const imgs = xml.match(/(?<=xlink:href=")(?<!blob:)[^"]+(?=")/g) ?? [];
368
- Promise.all([this.parseSvgImage(svgs), this.parseOtherImage(imgs)]).then(
369
- ([svgXmls, imgUrls]) => {
370
- // svg xml
371
- svgs.forEach((svg, idx) => {
372
- // 替换
373
- xml = xml.replace(
374
- new RegExp(`<image[^><]* xlink:href="${svg}"[^><]*/>`),
375
- svgXmls[idx].match(/<svg[^><]*>.*<\/svg>/)?.[0] ?? '' // 仅保留 svg 结构
376
- );
377
- });
378
- // base64
379
- imgs.forEach((img, idx) => {
380
- // 替换
381
- xml = xml.replace(`"${img}"`, `"${imgUrls[idx]}"`);
382
- });
383
- // 替换完成
384
- resolve(xml);
385
- }
386
- );
387
- });
388
- }
389
-
390
- /**
391
- * 获得显示内容(用于另存为元素)
392
- * @returns Konva.Stage
393
- */
394
- getAssetView() {
395
- const copy = this.getView(true);
396
- const children = copy.getChildren()[0].getChildren();
397
- const nodes: Konva.Stage | Konva.Layer | Konva.Group | Konva.Node[] = [...children];
398
-
399
- let minX = Infinity,
400
- maxX = -Infinity,
401
- minY = Infinity,
402
- maxY = -Infinity,
403
- minStartX = Infinity,
404
- minStartY = Infinity;
405
-
406
- const stageState = this.render.getStageState();
407
- for (const node of nodes) {
408
- if (node instanceof Konva.Group) {
409
- const { x, y, width, height } = ((rect) => ({
410
- x: this.render.toStageValue(rect.x - stageState.x),
411
- y: this.render.toStageValue(rect.y - stageState.y),
412
- width: this.render.toStageValue(rect.width),
413
- height: this.render.toStageValue(rect.height)
414
- }))(node.getClientRect());
415
- if (x < minX) {
416
- minX = x;
417
- }
418
- if (x + width > maxX) {
419
- maxX = x + width;
420
- }
421
- if (y < minY) {
422
- minY = y;
423
- }
424
- if (y + height > maxY) {
425
- maxY = y + height;
426
- }
427
- if (x < minStartX) {
428
- minStartX = x;
429
- }
430
- if (y < minStartY) {
431
- minStartY = y;
432
- }
433
-
434
- // 移除辅助元素
435
- if (node instanceof Konva.Group) {
436
- const clickMask = node.findOne('#click-mask');
437
- if (clickMask) {
438
- clickMask.destroy();
439
- }
440
- }
441
- } else if (node instanceof Konva.Line && node.name() === 'link-line') {
442
- // 连线占用空间
443
- const points = node.points();
444
- for (let i = 0; i < points.length; i += 2) {
445
- const [x, y] = [points[i], points[i + 1]];
446
- if (x < minX) {
447
- minX = x - 1;
448
- }
449
- if (x > maxX) {
450
- maxX = x + 1;
451
- }
452
- if (y < minY) {
453
- minY = y - 1;
454
- }
455
- if (y > maxY) {
456
- maxY = y + 1;
457
- }
458
- if (x < minStartX) {
459
- minStartX = x - 1;
460
- }
461
- if (y < minStartY) {
462
- minStartY = y - 1;
463
- }
464
- }
465
- }
466
- }
467
-
468
- for (const node of nodes) {
469
- if (node instanceof Konva.Group) {
470
- node.x(node.x() - minStartX);
471
- node.y(node.y() - minStartY);
472
- } else if (node instanceof Konva.Line && node.name() === 'link-line') {
473
- const points = node.points();
474
- for (let i = 0; i < points.length; i += 2) {
475
- points[i] = points[i] - minStartX;
476
- points[i + 1] = points[i + 1] - minStartY;
477
- }
478
- node.points(points);
479
- }
480
- }
481
-
482
- copy.x(0);
483
- copy.y(0);
484
- copy.width(maxX - minX);
485
- copy.height(maxY - minY);
486
- copy.scale({ x: 1, y: 1 });
487
- return copy;
488
- }
489
-
490
- /**
491
- * 获得元素(用于另存为元素)
492
- * @returns Konva.Stage
493
- */
494
- getAsset() {
495
- const copy = this.getAssetView();
496
- // 添加背景
497
- const background = this.render.getBackground();
498
- background.width(copy.width());
499
- background.height(copy.height());
500
- copy.children[0].add(background);
501
- background.moveToBottom();
502
- const json = copy.toJSON();
503
- const obj = JSON.parse(json);
504
- const assets = obj.children[0].children;
505
-
506
- for (const asset of assets) {
507
- if (asset.attrs.name === 'asset') {
508
- asset.attrs.name = 'sub-asset';
509
- }
510
- if (asset.attrs.selected) {
511
- asset.attrs.selected = false;
512
- }
513
- }
514
-
515
- this.render.linkTool.jsonIdCover(assets);
516
-
517
- // 通过 stage api 导出 json
518
- const result = JSON.stringify({
519
- ...obj.children[0],
520
- className: 'Group',
521
- attrs: {
522
- width: copy.width(),
523
- height: copy.height(),
524
- x: 0,
525
- y: 0
526
- }
527
- });
528
-
529
- copy.destroy();
530
- return result;
531
- }
532
-
533
- /**
534
- * 添加文字素材
535
- * @param pos 落点位置
536
- * @param settings 设置项
537
- * @returns
538
- */
539
- addTextAsset(pos: Konva.Vector2d, settings?: Partial<AssetSettings>) {
540
- // 获取页面默认设置
541
- const pageSettings = this.render.getPageSettings();
542
-
543
- // 合并设置
544
- const assetSettings: AssetSettings = {
545
- stroke: "#000000",
546
- strokeWidth: 1,
547
- fill: "#000000",
548
- arrowStart: false,
549
- arrowEnd: false,
550
- fontSize: pageSettings.fontSize,
551
- textFill: pageSettings.textFill,
552
- text: 'Text',
553
- x: pos.x,
554
- y: pos.y,
555
- rotation: 0,
556
- tension: 0.5,
557
- ...settings
558
- };
559
-
560
- const group = new Konva.Group({
561
- id: nanoid(),
562
- name: 'asset',
563
- assetType: AssetType.Text,
564
- draggable: true,
565
- position: { x: pos.x, y: pos.y }
566
- });
567
-
568
- group.setAttr('assetSettings', assetSettings);
569
-
570
- const text = new Konva.Text({
571
- text: assetSettings.text,
572
- fill: assetSettings.textFill,
573
- fontSize: assetSettings.fontSize,
574
- draggable: false,
575
- name: 'text-node'
576
- });
577
-
578
- const bg = new Konva.Rect({
579
- width: text.width(),
580
- height: text.height()
581
- });
582
-
583
- group.add(text);
584
- group.add(bg);
585
- this.render.layer.add(group);
586
- this.render.layer.draw();
587
- return group;
588
- }
1
+ import Konva from 'konva';
2
+ import { nanoid } from 'nanoid';
3
+ import { Render } from '../index';
4
+ import { LinkDraw, GraphDraw, RulerDraw, PreviewDraw } from '../draws';
5
+ import { AssetSettings, AssetType } from '../types';
6
+ import { BezierSceneFunc } from '../utils/bezier-scene-func';
7
+
8
+ // 导入导出
9
+
10
+ export class ImportExportTool {
11
+
12
+ private render: Render;
13
+ constructor(render: Render) {
14
+ this.render = render;
15
+ }
16
+
17
+ /**
18
+ * 获得显示内容
19
+ * @param withLink 是否包含线条
20
+ * @returns
21
+ */
22
+ getView(withLink: boolean = false) {
23
+ // 复制画布
24
+ const copy = this.render.stage.clone();
25
+ // 提取 main layer 备用
26
+ const main = copy.find('#main')[0] as Konva.Layer;
27
+ const cover = copy.find('#cover')[0] as Konva.Layer;
28
+ // 暂时清空所有 layer
29
+ const copyChildren = copy.getChildren();
30
+ copy.removeChildren();
31
+ if (main && cover) {
32
+ // 提取节点
33
+ let nodes = main.getChildren((node) => !this.render.ignore(node));
34
+ // 移除多余结构
35
+ for (const node of nodes) {
36
+ // 如果当前被选中,listening 会是 false,需恢复
37
+ node.listening(true);
38
+ // 恢复 draggable(因为,绘制 Graph 的时候,不允许直接拖动其他素材)
39
+ node.draggable(!this.render.config.readonly && !node.attrs.locked);
40
+ for (const child of (node as Konva.Group).children) {
41
+ if (this.render.ignoreSelect(child)) {
42
+ child.remove();
43
+ }
44
+ }
45
+ }
46
+
47
+ if (withLink) {
48
+ // 从 Link group 中提取 连接线
49
+ const linkDraw = cover.children.find((o) => o.attrs.name === LinkDraw.NAME) as Konva.Group;
50
+ if (linkDraw) {
51
+ nodes = nodes.concat(linkDraw.children.filter((o) => o.attrs.name === 'link-line'));
52
+ }
53
+ }
54
+
55
+ // 重新装载节点
56
+ const layer = new Konva.Layer();
57
+ layer.add(...nodes);
58
+ nodes = layer.getChildren();
59
+
60
+ for (const node of nodes) {
61
+ if (node.attrs.nodeMousedownPos) {
62
+ // 修正正在选中的节点透明度
63
+ node.setAttrs({ opacity: copy.attrs.lastOpacity ?? 1 });
64
+ }
65
+ }
66
+
67
+ // 重新装载 layer
68
+ copy.add(layer);
69
+ main.removeChildren();
70
+ cover.removeChildren();
71
+ }
72
+
73
+ copyChildren.forEach((o) => o.destroy());
74
+ // 返回可视节点和 layer
75
+ return copy;
76
+ }
77
+
78
+ // 保存
79
+ save() {
80
+ const copy = this.getView();
81
+ const json = copy.toJSON();
82
+ copy.destroy();
83
+ // 通过 stage api 导出 json
84
+ return json;
85
+ }
86
+
87
+ // 加载 image(用于导入)
88
+ loadImage(src: string) {
89
+ return new Promise<HTMLImageElement | null>((resolve) => {
90
+ const img = new Image();
91
+ img.onload = () => {
92
+ // 返回加载完成的图片 element
93
+ resolve(img);
94
+ };
95
+ img.onerror = () => {
96
+ resolve(null);
97
+ };
98
+ img.src = src;
99
+ });
100
+ }
101
+
102
+ // 汇总图片组件
103
+ getImgNodes(nodes: Konva.Node[] = []) {
104
+ const temNodes = nodes.map(node => {
105
+ if (node instanceof Konva.Group) {
106
+ return this.getImgNodes(node.getChildren());
107
+ } else if (node instanceof Konva.Image) {
108
+ return node;
109
+ }
110
+ }).flat(Infinity).filter(Boolean);
111
+ return temNodes;
112
+ }
113
+
114
+ // 恢复图片(用于导入)
115
+ async restoreImage(nodes: Konva.Node[] = []) {
116
+ const imgNodes = this.getImgNodes(nodes);
117
+ const tasks = imgNodes.map(node => {
118
+ // 处理图片
119
+ if (node.attrs.svgXML) { // svg 素材
120
+ return this.render.assetTool.loadSvgXML(node.attrs.svgXML);
121
+ } else if (node.attrs.gif) { // gif 素材
122
+ return this.render.assetTool.loadGif(node.attrs.gif);
123
+ } else if (node.attrs.src) { // 其他图片素材
124
+ return this.loadImage(node.attrs.src);
125
+ }
126
+ });
127
+ Promise.all(tasks).then(res => {
128
+ res.forEach((imageNode, index) => {
129
+ const node = imgNodes[index];
130
+ // 处理图片
131
+ if (imageNode && node) {
132
+ if (node.attrs.svgXML) { // svg 素材
133
+ node.image(imageNode.image());
134
+ } else if (node.attrs.gif) { // gif 素材
135
+ node.image(imageNode.image());
136
+ } else if (node.attrs.src) { // 其他图片素材
137
+ node.image(imageNode);
138
+ }
139
+ }
140
+ })
141
+ });
142
+ }
143
+
144
+ // 恢复图形
145
+ restoreGraph(nodes: Konva.Node[] = []) {
146
+ for (const node of nodes) {
147
+ if (node instanceof Konva.Group && node.attrs.assetType === AssetType.Graph) {
148
+ if (node.attrs.graphType === "Bezier") {
149
+ const graph = node.findOne('.graph');
150
+ if (graph instanceof Konva.Arrow) {
151
+ graph.sceneFunc(BezierSceneFunc);
152
+ }
153
+ }
154
+ const hoverRect = node.findOne('.hoverRect');
155
+ if (hoverRect instanceof Konva.Rect) {
156
+ hoverRect.on('mouseenter', () => {
157
+ // 防止进入调整点,重复处理
158
+ if (!node.attrs.hoverAnchor) {
159
+ node.setAttr('hover', true);
160
+ this.render.redraw([GraphDraw.NAME]);
161
+ }
162
+ setTimeout(() => {
163
+ // 调整产生 redraw,导致离开调整点不触发其 mouseleave(进入其他元素区域除外)
164
+ // 在此静态补充"离开调整点"
165
+ // 不影响正常处理(调整点会不停 hoverAnchor = true)
166
+ node.setAttr('hoverAnchor', false);
167
+ });
168
+
169
+ // 显示 连接点
170
+ this.render.linkTool.pointsVisible(true, node);
171
+ });
172
+ hoverRect.on('mouseleave', () => {
173
+ // 延迟事件,使调整点的 mouseleave 优先
174
+ setTimeout(() => {
175
+ // 防止进入调整点,重复处理
176
+ // 补充 2,快速调整会漏掉
177
+ if (!node.attrs.hoverAnchor) {
178
+ node.setAttr('hover', false);
179
+ node.setAttr('hoverAnchor', false);
180
+ this.render.redraw([GraphDraw.NAME]);
181
+ }
182
+ });
183
+ // 隐藏 连接点
184
+ this.render.linkTool.pointsVisible(false, node);
185
+ // 隐藏 hover 框
186
+ node.findOne('#hoverRect')?.visible(false);
187
+ });
188
+ }
189
+ }
190
+ }
191
+ }
192
+
193
+ // 恢复(导入)
194
+ async restore(json: string, silent = false) {
195
+ if (!Object.keys(JSON.parse(json)).length) {
196
+ return;
197
+ }
198
+ const readonly = this.render.config.readonly;
199
+ try {
200
+ this.render.emit('loading', true);
201
+ // 清空选择
202
+ this.render.selectionTool.selectingClear();
203
+ this.render.linkTool.selectingClear();
204
+ // 清空 main layer 节点
205
+ this.render.layer.getChildren().forEach((o) => o.destroy());
206
+ this.render.layer.removeChildren();
207
+ // 加载 json,提取节点
208
+ const container = document.createElement('div');
209
+ // 反序列化
210
+ const stage = Konva.Node.create(json, container);
211
+ const main = stage.getChildren()[0];
212
+ const nodes = main.getChildren();
213
+ // 恢复节点图片素材
214
+ await this.restoreImage(nodes);
215
+ await this.restoreGraph(nodes);
216
+ for (const node of nodes) {
217
+ // 重置旧数据节点为可 draggable
218
+ node.draggable(!readonly && !node.attrs.locked);
219
+ // 组件鼠标移入移出事件
220
+ this.render.componentFactory.groupMouseenter({ group: node });
221
+ this.render.componentFactory.groupMouseleave({ group: node });
222
+ if (readonly) {
223
+ this.render.componentFactory.readonlyInitComponentSetting({ node });
224
+ }
225
+ }
226
+ this.render.layer.add(...nodes); // 插入节点
227
+ // 同步页面设置
228
+ this.render.stage.setAttr('pageSettings', stage.attrs.pageSettings);
229
+ this.render.emit('page-settings-change', this.render.getPageSettings());
230
+ // 更新背景
231
+ this.render.updateBackground();
232
+ // 上一步、下一步 无需更新 history 记录
233
+ if (!silent) {
234
+ // 更新历史
235
+ this.render.updateHistory();
236
+ }
237
+ // 隐藏 连接点
238
+ this.render.linkTool.pointsVisible(false);
239
+ // 重绘
240
+ this.render.redraw([
241
+ GraphDraw.NAME,
242
+ LinkDraw.NAME,
243
+ RulerDraw.NAME,
244
+ PreviewDraw.NAME
245
+ ]);
246
+ stage.destroy();
247
+ } catch (e) {
248
+ console.error(e);
249
+ } finally {
250
+ this.render.emit('loading', false);
251
+ }
252
+ }
253
+
254
+ // 获取图片
255
+ getImage(pixelRatio = 1, bgColor?: string) {
256
+ // 在 getAssetView 的基础上,增加背景即可
257
+ const copy = this.getAssetView();
258
+ // 背景层
259
+ const bgLayer = new Konva.Layer();
260
+ // 背景矩形
261
+ const bg = new Konva.Rect({ listening: false });
262
+
263
+ bg.setAttrs({
264
+ x: 0,
265
+ y: 0,
266
+ width: copy.width(),
267
+ height: copy.height(),
268
+ fill: bgColor ?? this.render.getPageSettings().background
269
+ });
270
+ // 添加背景
271
+ bgLayer.add(bg);
272
+ const children = copy.getChildren() as Konva.Layer[];
273
+ copy.removeChildren();
274
+ copy.add(bgLayer);
275
+ copy.add(children[0], ...children.slice(1));
276
+ const url = copy.toDataURL({ pixelRatio });
277
+ copy.destroy();
278
+ // 通过 stage api 导出图片
279
+ return url;
280
+ }
281
+
282
+ // 获取元素图片
283
+ getAssetImage(pixelRatio = 1, bgColor?: string) {
284
+ // 获取可视节点和 layer
285
+ const copy = this.getAssetView();
286
+ // 背景层
287
+ const bgLayer = new Konva.Layer();
288
+ // 背景矩形
289
+ const bg = new Konva.Rect({ listening: false });
290
+ bg.setAttrs({
291
+ x: -copy.x(),
292
+ y: -copy.y(),
293
+ width: copy.width(),
294
+ height: copy.height(),
295
+ fill: bgColor ?? this.render.getPageSettings().background
296
+ });
297
+ // 添加背景
298
+ bgLayer.add(bg);
299
+ // 插入背景
300
+ const children = copy.getChildren();
301
+ copy.removeChildren();
302
+ copy.add(bgLayer);
303
+ copy.add(children[0], ...children.slice(1));
304
+ const url = copy.toDataURL({ pixelRatio });
305
+ copy.destroy();
306
+ // 通过 stage api 导出图片
307
+ return url;
308
+ }
309
+
310
+ // blob to base64 url
311
+ blobToBase64(blob: Blob, type: string): Promise<string> {
312
+ return new Promise((resolve) => {
313
+ const file = new File([blob], 'image', { type });
314
+ const fileReader = new FileReader();
315
+ fileReader.readAsDataURL(file);
316
+ fileReader.onload = function () {
317
+ resolve((this.result as string) ?? '');
318
+ };
319
+ });
320
+ }
321
+
322
+ // 替换 svg blob: 链接
323
+ parseSvgImage(urls: string[]): Promise<string[]> {
324
+ return new Promise((resolve) => {
325
+ if (urls.length > 0) {
326
+ Promise.all(urls.map((o) => fetch(o))).then((rs: Response[]) => {
327
+ // fetch
328
+ // 替换为 svg 嵌套
329
+ Promise.all(rs.map((o) => o.text())).then((xmls: string[]) => {
330
+ // svg xml
331
+ resolve(xmls);
332
+ });
333
+ });
334
+ } else {
335
+ resolve([]);
336
+ }
337
+ });
338
+ }
339
+
340
+ // 替换其他 image 链接
341
+ parseOtherImage(urls: string[]): Promise<string[]> {
342
+ return new Promise((resolve) => {
343
+ if (urls.length > 0) {
344
+ Promise.all(urls.map((o) => fetch(o))).then((rs: Response[]) => {
345
+ // fetch
346
+ // 替换为 base64 url image
347
+ Promise.all(rs.map((o) => o.blob())).then((bs: Blob[]) => {
348
+ // blob
349
+ Promise.all(bs.map((o) => this.blobToBase64(o, 'image/*'))).then((urls: string[]) => {
350
+ // base64
351
+ resolve(urls);
352
+ });
353
+ });
354
+ });
355
+ } else {
356
+ resolve([]);
357
+ }
358
+ });
359
+ }
360
+
361
+ // 替换 image 链接
362
+ parseImage(xml: string): Promise<string> {
363
+ return new Promise((resolve) => {
364
+ // 找出 blob:http 图片链接(目前发现只有 svg 是)
365
+ const svgs = xml.match(/(?<=xlink:href=")blob:https?:\/\/[^"]+(?=")/g) ?? [];
366
+ // 其他图片转为 base64
367
+ const imgs = xml.match(/(?<=xlink:href=")(?<!blob:)[^"]+(?=")/g) ?? [];
368
+ Promise.all([this.parseSvgImage(svgs), this.parseOtherImage(imgs)]).then(
369
+ ([svgXmls, imgUrls]) => {
370
+ // svg xml
371
+ svgs.forEach((svg, idx) => {
372
+ // 替换
373
+ xml = xml.replace(
374
+ new RegExp(`<image[^><]* xlink:href="${svg}"[^><]*/>`),
375
+ svgXmls[idx].match(/<svg[^><]*>.*<\/svg>/)?.[0] ?? '' // 仅保留 svg 结构
376
+ );
377
+ });
378
+ // base64
379
+ imgs.forEach((img, idx) => {
380
+ // 替换
381
+ xml = xml.replace(`"${img}"`, `"${imgUrls[idx]}"`);
382
+ });
383
+ // 替换完成
384
+ resolve(xml);
385
+ }
386
+ );
387
+ });
388
+ }
389
+
390
+ /**
391
+ * 获得显示内容(用于另存为元素)
392
+ * @returns Konva.Stage
393
+ */
394
+ getAssetView() {
395
+ const copy = this.getView(true);
396
+ const children = copy.getChildren()[0].getChildren();
397
+ const nodes: Konva.Stage | Konva.Layer | Konva.Group | Konva.Node[] = [...children];
398
+
399
+ let minX = Infinity,
400
+ maxX = -Infinity,
401
+ minY = Infinity,
402
+ maxY = -Infinity,
403
+ minStartX = Infinity,
404
+ minStartY = Infinity;
405
+
406
+ const stageState = this.render.getStageState();
407
+ for (const node of nodes) {
408
+ if (node instanceof Konva.Group) {
409
+ const { x, y, width, height } = ((rect) => ({
410
+ x: this.render.toStageValue(rect.x - stageState.x),
411
+ y: this.render.toStageValue(rect.y - stageState.y),
412
+ width: this.render.toStageValue(rect.width),
413
+ height: this.render.toStageValue(rect.height)
414
+ }))(node.getClientRect());
415
+ if (x < minX) {
416
+ minX = x;
417
+ }
418
+ if (x + width > maxX) {
419
+ maxX = x + width;
420
+ }
421
+ if (y < minY) {
422
+ minY = y;
423
+ }
424
+ if (y + height > maxY) {
425
+ maxY = y + height;
426
+ }
427
+ if (x < minStartX) {
428
+ minStartX = x;
429
+ }
430
+ if (y < minStartY) {
431
+ minStartY = y;
432
+ }
433
+
434
+ // 移除辅助元素
435
+ if (node instanceof Konva.Group) {
436
+ const clickMask = node.findOne('#click-mask');
437
+ if (clickMask) {
438
+ clickMask.destroy();
439
+ }
440
+ }
441
+ } else if (node instanceof Konva.Line && node.name() === 'link-line') {
442
+ // 连线占用空间
443
+ const points = node.points();
444
+ for (let i = 0; i < points.length; i += 2) {
445
+ const [x, y] = [points[i], points[i + 1]];
446
+ if (x < minX) {
447
+ minX = x - 1;
448
+ }
449
+ if (x > maxX) {
450
+ maxX = x + 1;
451
+ }
452
+ if (y < minY) {
453
+ minY = y - 1;
454
+ }
455
+ if (y > maxY) {
456
+ maxY = y + 1;
457
+ }
458
+ if (x < minStartX) {
459
+ minStartX = x - 1;
460
+ }
461
+ if (y < minStartY) {
462
+ minStartY = y - 1;
463
+ }
464
+ }
465
+ }
466
+ }
467
+
468
+ for (const node of nodes) {
469
+ if (node instanceof Konva.Group) {
470
+ node.x(node.x() - minStartX);
471
+ node.y(node.y() - minStartY);
472
+ } else if (node instanceof Konva.Line && node.name() === 'link-line') {
473
+ const points = node.points();
474
+ for (let i = 0; i < points.length; i += 2) {
475
+ points[i] = points[i] - minStartX;
476
+ points[i + 1] = points[i + 1] - minStartY;
477
+ }
478
+ node.points(points);
479
+ }
480
+ }
481
+
482
+ copy.x(0);
483
+ copy.y(0);
484
+ copy.width(maxX - minX);
485
+ copy.height(maxY - minY);
486
+ copy.scale({ x: 1, y: 1 });
487
+ return copy;
488
+ }
489
+
490
+ /**
491
+ * 获得元素(用于另存为元素)
492
+ * @returns Konva.Stage
493
+ */
494
+ getAsset() {
495
+ const copy = this.getAssetView();
496
+ // 添加背景
497
+ const background = this.render.getBackground();
498
+ background.width(copy.width());
499
+ background.height(copy.height());
500
+ copy.children[0].add(background);
501
+ background.moveToBottom();
502
+ const json = copy.toJSON();
503
+ const obj = JSON.parse(json);
504
+ const assets = obj.children[0].children;
505
+
506
+ for (const asset of assets) {
507
+ if (asset.attrs.name === 'asset') {
508
+ asset.attrs.name = 'sub-asset';
509
+ }
510
+ if (asset.attrs.selected) {
511
+ asset.attrs.selected = false;
512
+ }
513
+ }
514
+
515
+ this.render.linkTool.jsonIdCover(assets);
516
+
517
+ // 通过 stage api 导出 json
518
+ const result = JSON.stringify({
519
+ ...obj.children[0],
520
+ className: 'Group',
521
+ attrs: {
522
+ width: copy.width(),
523
+ height: copy.height(),
524
+ x: 0,
525
+ y: 0
526
+ }
527
+ });
528
+
529
+ copy.destroy();
530
+ return result;
531
+ }
532
+
533
+ /**
534
+ * 添加文字素材
535
+ * @param pos 落点位置
536
+ * @param settings 设置项
537
+ * @returns
538
+ */
539
+ addTextAsset(pos: Konva.Vector2d, settings?: Partial<AssetSettings>) {
540
+ // 获取页面默认设置
541
+ const pageSettings = this.render.getPageSettings();
542
+
543
+ // 合并设置
544
+ const assetSettings: AssetSettings = {
545
+ stroke: "#000000",
546
+ strokeWidth: 1,
547
+ fill: "#000000",
548
+ arrowStart: false,
549
+ arrowEnd: false,
550
+ fontSize: pageSettings.fontSize,
551
+ textFill: pageSettings.textFill,
552
+ text: 'Text',
553
+ x: pos.x,
554
+ y: pos.y,
555
+ rotation: 0,
556
+ tension: 0.5,
557
+ ...settings
558
+ };
559
+
560
+ const group = new Konva.Group({
561
+ id: nanoid(),
562
+ name: 'asset',
563
+ assetType: AssetType.Text,
564
+ draggable: true,
565
+ position: { x: pos.x, y: pos.y }
566
+ });
567
+
568
+ group.setAttr('assetSettings', assetSettings);
569
+
570
+ const text = new Konva.Text({
571
+ text: assetSettings.text,
572
+ fill: assetSettings.textFill,
573
+ fontSize: assetSettings.fontSize,
574
+ draggable: false,
575
+ name: 'text-node'
576
+ });
577
+
578
+ const bg = new Konva.Rect({
579
+ width: text.width(),
580
+ height: text.height()
581
+ });
582
+
583
+ group.add(text);
584
+ group.add(bg);
585
+ this.render.layer.add(group);
586
+ this.render.layer.draw();
587
+ return group;
588
+ }
589
589
  }