aldehyde 0.2.494 → 0.2.496

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 (686) 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/entity-select/entity-select.d.ts.map +1 -1
  14. package/lib/controls/entity-select/index.css +7 -7
  15. package/lib/controls/entity-select/lab-tree-select.d.ts.map +1 -1
  16. package/lib/controls/entity-select/popover-entity-select.d.ts.map +1 -1
  17. package/lib/controls/file-view/index.js +1 -1
  18. package/lib/controls/file-view/index.js.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.map +1 -1
  37. package/lib/detail/button/bottom-submit-button-bar.d.ts.map +1 -1
  38. package/lib/detail/button/cquery-button-bar.d.ts.map +1 -1
  39. package/lib/detail/button/fix-right-submit-button-bar.d.ts.map +1 -1
  40. package/lib/detail/button/index.css +42 -42
  41. package/lib/detail/dtmpl.css +72 -72
  42. package/lib/detail/edit/fields-edit-card.d.ts.map +1 -1
  43. package/lib/detail/edit/modal-row-edit.d.ts.map +1 -1
  44. package/lib/detail/edit/popover-edit-card.d.ts.map +1 -1
  45. package/lib/detail/rightbar/index.css +34 -34
  46. package/lib/detail/rightbar/index.d.ts.map +1 -1
  47. package/lib/detail/view/act-dtmpl-view.d.ts.map +1 -1
  48. package/lib/detail/view/field-view-group.d.ts.map +1 -1
  49. package/lib/detail/view/modal-dtmpl-view.d.ts.map +1 -1
  50. package/lib/detail/view/snapshot-timeline.d.ts.map +1 -1
  51. package/lib/detail/view/tab-act-dtmpl-view.d.ts.map +1 -1
  52. package/lib/draw-canvas-edit/components/asset-bar/index.less +35 -35
  53. package/lib/draw-canvas-edit/components/main-header/index.less +23 -23
  54. package/lib/draw-canvas-edit/components/render/components/index.less +60 -60
  55. package/lib/draw-canvas-edit/components/render/components/workstation-component.js +6 -6
  56. package/lib/draw-canvas-edit/index.less +48 -48
  57. package/lib/draw-canvas-view/index.less +66 -66
  58. package/lib/export/export-frame.css +2 -2
  59. package/lib/export/export-frame.d.ts.map +1 -1
  60. package/lib/export/select-code-export-frame.d.ts.map +1 -1
  61. package/lib/form/dtmpl-form.css +3 -3
  62. package/lib/form/dtmpl-form.d.ts.map +1 -1
  63. package/lib/form/field-group-form.d.ts.map +1 -1
  64. package/lib/form/form-Item-group.d.ts.map +1 -1
  65. package/lib/form/index.css +12 -12
  66. package/lib/import/excel-import.d.ts.map +1 -1
  67. package/lib/import/index.css +53 -53
  68. package/lib/import/template.css +50 -50
  69. package/lib/layout/common.css +64 -64
  70. package/lib/layout/coverstyle.css +51 -51
  71. package/lib/layout/footer/index.css +5 -5
  72. package/lib/layout/header/index.css +122 -122
  73. package/lib/layout/menu/block.css +7 -7
  74. package/lib/layout/menu/block.d.ts.map +1 -1
  75. package/lib/layout/menu/l2menu-quick-bar.d.ts.map +1 -1
  76. package/lib/layout/menu/menu-2layers.d.ts.map +1 -1
  77. package/lib/layout/menu/message-bar.less +73 -73
  78. package/lib/layout/menu/reset-password.d.ts.map +1 -1
  79. package/lib/layout/menu/user-bar.d.ts.map +1 -1
  80. package/lib/layout/menu/userinfo-bar.d.ts.map +1 -1
  81. package/lib/layout/sidebar/index.css +57 -57
  82. package/lib/layout2/css/header.css +41 -41
  83. package/lib/layout2/css/sider.less +17 -17
  84. package/lib/layout2/css/tabs-layout.less +18 -18
  85. package/lib/layout2/page.d.ts +2 -1
  86. package/lib/layout2/page.d.ts.map +1 -1
  87. package/lib/layout2/page.js +19 -8
  88. package/lib/layout2/page.js.map +1 -1
  89. package/lib/layout2/type/layout-type.d.ts +1 -0
  90. package/lib/layout2/type/layout-type.d.ts.map +1 -1
  91. package/lib/layout3/css/header.less +195 -195
  92. package/lib/layout3/css/main.less +161 -161
  93. package/lib/layout3/css/sider.less +32 -32
  94. package/lib/layout3/css/tabs-layout.less +38 -38
  95. package/lib/layout4/css/header.less +196 -196
  96. package/lib/layout4/css/main.less +154 -154
  97. package/lib/layout4/css/sider.less +37 -37
  98. package/lib/layout4/css/tabs-layout.less +42 -42
  99. package/lib/layout5/css/header.less +35 -35
  100. package/lib/layout5/css/sider.less +18 -18
  101. package/lib/list/calendar/index.less +20 -20
  102. package/lib/list/card-list/index.less +154 -154
  103. package/lib/list/gantt/index.less +8 -8
  104. package/lib/list/vertical-list/index.less +208 -208
  105. package/lib/login/index.css +19 -19
  106. package/lib/login/login.d.ts.map +1 -1
  107. package/lib/login/vertify/index.css +143 -143
  108. package/lib/login3/index.less +136 -136
  109. package/lib/lowcode-components/act-table/index.less +26 -26
  110. package/lib/lowcode-components/base-button/index.less +7 -7
  111. package/lib/lowcode-components/base-map/index.js +6 -6
  112. package/lib/lowcode-components/base-radio/index.less +23 -23
  113. package/lib/lowcode-components/base-table/index.less +61 -61
  114. package/lib/lowcode-components/base-tabs/index.less +14 -14
  115. package/lib/lowcode-components/base-text/index.less +19 -19
  116. package/lib/lowcode-components/border/border10/index.less +26 -26
  117. package/lib/lowcode-components/border/border11/index.js +46 -46
  118. package/lib/lowcode-components/border/border11/index.less +17 -17
  119. package/lib/lowcode-components/border/border12/index.js +13 -13
  120. package/lib/lowcode-components/border/border12/index.less +13 -13
  121. package/lib/lowcode-components/border/border13/index.js +5 -5
  122. package/lib/lowcode-components/border/border13/index.less +13 -13
  123. package/lib/lowcode-components/border/border2/index.less +17 -17
  124. package/lib/lowcode-components/border/border3/index.less +25 -25
  125. package/lib/lowcode-components/border/border4/index.js +2 -2
  126. package/lib/lowcode-components/border/border4/index.less +72 -72
  127. package/lib/lowcode-components/border/border5/index.js +2 -2
  128. package/lib/lowcode-components/border/border5/index.less +35 -35
  129. package/lib/lowcode-components/border/border6/index.less +17 -17
  130. package/lib/lowcode-components/border/border7/index.less +26 -26
  131. package/lib/lowcode-components/border/border8/index.less +13 -13
  132. package/lib/lowcode-components/border/border9/index.js +14 -14
  133. package/lib/lowcode-components/border/border9/index.less +13 -13
  134. package/lib/lowcode-components/data-number/index.less +10 -10
  135. package/lib/lowcode-components/date-time/index.less +4 -4
  136. package/lib/lowcode-components/decoration/decoration1/index.less +7 -7
  137. package/lib/lowcode-components/decoration/decoration10/index.js +3 -3
  138. package/lib/lowcode-components/decoration/decoration10/index.less +5 -5
  139. package/lib/lowcode-components/decoration/decoration11/index.less +5 -5
  140. package/lib/lowcode-components/decoration/decoration2/index.less +6 -6
  141. package/lib/lowcode-components/decoration/decoration3/index.less +7 -7
  142. package/lib/lowcode-components/decoration/decoration4/index.less +29 -29
  143. package/lib/lowcode-components/decoration/decoration5/index.less +3 -3
  144. package/lib/lowcode-components/decoration/decoration6/index.less +7 -7
  145. package/lib/lowcode-components/decoration/decoration7/index.less +4 -4
  146. package/lib/lowcode-components/decoration/decoration8/index.less +14 -14
  147. package/lib/lowcode-components/decoration/decoration9/index.less +4 -4
  148. package/lib/lowcode-components/effectScatter-map/index.js +6 -6
  149. package/lib/lowcode-components/effectScatter-map-3d/index.js +6 -6
  150. package/lib/lowcode-components/four-angle-glow-border/index.less +49 -49
  151. package/lib/lowcode-components/lowcode-view/component/font/FontGlobal.css +26 -26
  152. package/lib/lowcode-components/lowcode-view/component/screen-fit/index.less +13 -13
  153. package/lib/lowcode-components/lowcode-view/index.less +19 -19
  154. package/lib/lowcode-components/search-form/index.less +25 -25
  155. package/lib/lowcode-components/text-scroller/index.less +28 -28
  156. package/lib/module/dtmpl-edit-card.d.ts.map +1 -1
  157. package/lib/module/dtmpl-edit-page.d.ts.map +1 -1
  158. package/lib/module/index.less +4 -4
  159. package/lib/module/ltmpl-modal.d.ts.map +1 -1
  160. package/lib/module/ltmpl-table.d.ts +7 -0
  161. package/lib/module/ltmpl-table.d.ts.map +1 -1
  162. package/lib/module/ltmpl-table.js +12 -16
  163. package/lib/module/ltmpl-table.js.map +1 -1
  164. package/lib/routable/dtmpl-route.d.ts.map +1 -1
  165. package/lib/routable/dtmpl-route.js +8 -2
  166. package/lib/routable/dtmpl-route.js.map +1 -1
  167. package/lib/routable/import-route.d.ts.map +1 -1
  168. package/lib/routable/import-route.js +9 -1
  169. package/lib/routable/import-route.js.map +1 -1
  170. package/lib/routable/index.less +25 -25
  171. package/lib/routable/ltmpl-route.d.ts.map +1 -1
  172. package/lib/routable/ltmpl-route.js +13 -6
  173. package/lib/routable/ltmpl-route.js.map +1 -1
  174. package/lib/routable/splitview-ltmpl-route.d.ts.map +1 -1
  175. package/lib/routable/splitview-ltmpl-route.js +11 -10
  176. package/lib/routable/splitview-ltmpl-route.js.map +1 -1
  177. package/lib/routable/ttmpl-route.d.ts.map +1 -1
  178. package/lib/routable/ttmpl-route.js +9 -2
  179. package/lib/routable/ttmpl-route.js.map +1 -1
  180. package/lib/table/act-table.d.ts +1 -0
  181. package/lib/table/act-table.d.ts.map +1 -1
  182. package/lib/table/act-table.js +31 -9
  183. package/lib/table/act-table.js.map +1 -1
  184. package/lib/table/column/index.less +85 -85
  185. package/lib/table/index.css +211 -211
  186. package/lib/table/modal-select-table.d.ts.map +1 -1
  187. package/lib/table/page-chart.js +1 -1
  188. package/lib/table/page-chart.js.map +1 -1
  189. package/lib/table/page-chart.less +9 -9
  190. package/lib/table/pagination.css +14 -14
  191. package/lib/table/pagination.d.ts.map +1 -1
  192. package/lib/table/relation-table.d.ts.map +1 -1
  193. package/lib/table/row-table.d.ts +6 -0
  194. package/lib/table/row-table.d.ts.map +1 -1
  195. package/lib/table/row-table.js +21 -6
  196. package/lib/table/row-table.js.map +1 -1
  197. package/lib/table/selected-rows-card.d.ts.map +1 -1
  198. package/lib/table/stat/restat.d.ts.map +1 -1
  199. package/lib/tmpl/hcservice-v3.d.ts +1 -1
  200. package/lib/tmpl/hcservice-v3.d.ts.map +1 -1
  201. package/lib/tmpl/hcservice-v3.js +3 -3
  202. package/lib/tmpl/hcservice-v3.js.map +1 -1
  203. package/lib/tmpl/interface.d.ts +1 -0
  204. package/lib/tmpl/interface.d.ts.map +1 -1
  205. package/lib/tree/act-tree.d.ts +1 -0
  206. package/lib/tree/act-tree.d.ts.map +1 -1
  207. package/lib/tree/act-tree.js +6 -7
  208. package/lib/tree/act-tree.js.map +1 -1
  209. package/lib/tree/block-menu-auth-tree.d.ts.map +1 -1
  210. package/lib/tree/index.css +22 -22
  211. package/lib/tree/tmpl-tree.d.ts.map +1 -1
  212. package/lib/tree/tree-utils.d.ts +1 -1
  213. package/lib/tree/tree-utils.d.ts.map +1 -1
  214. package/lib/tree/tree-utils.js +4 -4
  215. package/lib/tree/tree-utils.js.map +1 -1
  216. package/lib/units/index.d.ts +4 -0
  217. package/lib/units/index.d.ts.map +1 -1
  218. package/lib/units/index.js +10 -3
  219. package/lib/units/index.js.map +1 -1
  220. package/lib/welcome/components/menu-card.less +96 -96
  221. package/lib/welcome/components/page-card.less +49 -49
  222. package/lib/welcome/components/quick-entrance.less +120 -120
  223. package/lib/welcome/components/user-menus.less +192 -192
  224. package/lib/welcome/components/workbench.less +118 -118
  225. package/lib/welcome/index.css +13 -13
  226. package/package.json +224 -224
  227. package/src/aldehyde/controls/2dEditor/2dEditor/index.less +5 -5
  228. package/src/aldehyde/controls/2dEditor/2dEditor/index.tsx +270 -270
  229. package/src/aldehyde/controls/2dEditor/2dView/index.less +8 -8
  230. package/src/aldehyde/controls/2dEditor/2dView/index.tsx +110 -110
  231. package/src/aldehyde/controls/2dEditor/components/card.tsx +256 -256
  232. package/src/aldehyde/controls/2dEditor/components/component.less +83 -83
  233. package/src/aldehyde/controls/2dEditor/components/data.d.ts +32 -32
  234. package/src/aldehyde/controls/2dEditor/components/hotspot.tsx +80 -80
  235. package/src/aldehyde/controls/2dEditor/components/html-box.tsx +101 -101
  236. package/src/aldehyde/controls/2dEditor/components/image.tsx +99 -99
  237. package/src/aldehyde/controls/2dEditor/components/line.tsx +73 -73
  238. package/src/aldehyde/controls/action/index.css +8 -8
  239. package/src/aldehyde/controls/action/index.tsx +406 -406
  240. package/src/aldehyde/controls/action/utils.tsx +306 -306
  241. package/src/aldehyde/controls/auto-complete/index.tsx +82 -82
  242. package/src/aldehyde/controls/cascader/index.tsx +112 -112
  243. package/src/aldehyde/controls/chemstruc/graph.tsx +185 -185
  244. package/src/aldehyde/controls/chemstruc/index.css +28 -28
  245. package/src/aldehyde/controls/code-editor/sql-code-editor.tsx +73 -73
  246. package/src/aldehyde/controls/collapse-card/index.css +8 -8
  247. package/src/aldehyde/controls/collapse-card/index.tsx +109 -109
  248. package/src/aldehyde/controls/color-picker/index.tsx +21 -21
  249. package/src/aldehyde/controls/counting-tag/index.tsx +53 -53
  250. package/src/aldehyde/controls/cquery/cquick-button.tsx +145 -145
  251. package/src/aldehyde/controls/date-picker/index.tsx +199 -199
  252. package/src/aldehyde/controls/direct-file-view/drawer-file-view.tsx +54 -54
  253. package/src/aldehyde/controls/direct-file-view/index.tsx +147 -147
  254. package/src/aldehyde/controls/direct-upload/index.tsx +140 -140
  255. package/src/aldehyde/controls/entity-select/entity-select.tsx +791 -791
  256. package/src/aldehyde/controls/entity-select/index.css +7 -7
  257. package/src/aldehyde/controls/entity-select/lab-tree-select.tsx +154 -154
  258. package/src/aldehyde/controls/entity-select/popover-entity-select.tsx +205 -205
  259. package/src/aldehyde/controls/entry-control.tsx +431 -431
  260. package/src/aldehyde/controls/enum-badge/index.tsx +42 -42
  261. package/src/aldehyde/controls/enum-tag/index.tsx +45 -45
  262. package/src/aldehyde/controls/field-history/index.tsx +81 -81
  263. package/src/aldehyde/controls/file-export/select-code-export.tsx +40 -40
  264. package/src/aldehyde/controls/file-view/drawer-file-view.tsx +117 -117
  265. package/src/aldehyde/controls/file-view/index.less +9 -9
  266. package/src/aldehyde/controls/file-view/index.tsx +148 -148
  267. package/src/aldehyde/controls/file-view/multi-file-view.tsx +39 -39
  268. package/src/aldehyde/controls/file-view/newin-file-view.tsx +40 -40
  269. package/src/aldehyde/controls/html-editor/draft.tsx +136 -136
  270. package/src/aldehyde/controls/html-editor/index.less +67 -67
  271. package/src/aldehyde/controls/icon-selector/app-icon-selector.tsx +68 -68
  272. package/src/aldehyde/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.css +147 -147
  273. package/src/aldehyde/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.json +240 -240
  274. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +63 -63
  275. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.json +93 -93
  276. package/src/aldehyde/controls/icon-selector/pc-icon-selector.tsx +68 -68
  277. package/src/aldehyde/controls/input-number/index.tsx +148 -148
  278. package/src/aldehyde/controls/input-range/index.tsx +59 -59
  279. package/src/aldehyde/controls/password-setter/index.css +2 -2
  280. package/src/aldehyde/controls/password-setter/index.js +88 -88
  281. package/src/aldehyde/controls/progress/index.tsx +74 -74
  282. package/src/aldehyde/controls/qr-code/index.less +28 -28
  283. package/src/aldehyde/controls/qr-code/index.tsx +40 -40
  284. package/src/aldehyde/controls/relation-existion/index.css +3 -3
  285. package/src/aldehyde/controls/relation-existion/index.tsx +144 -144
  286. package/src/aldehyde/controls/rfield/index.css +4 -4
  287. package/src/aldehyde/controls/rfield/index.tsx +225 -225
  288. package/src/aldehyde/controls/select/index.tsx +226 -226
  289. package/src/aldehyde/controls/signature/index.tsx +226 -226
  290. package/src/aldehyde/controls/single-checkbox/index.tsx +18 -18
  291. package/src/aldehyde/controls/steps/index.tsx +59 -59
  292. package/src/aldehyde/controls/text/ellipsis-text.tsx +98 -98
  293. package/src/aldehyde/controls/text/index.less +7 -7
  294. package/src/aldehyde/controls/tree-select/navigation-tree.tsx +122 -122
  295. package/src/aldehyde/controls/tree-select/tree-entity-select.tsx +121 -121
  296. package/src/aldehyde/controls/upload/index.tsx +128 -128
  297. package/src/aldehyde/controls/upload/mult-file-upload.tsx +240 -240
  298. package/src/aldehyde/controls/upload-read-excel/index.tsx +43 -43
  299. package/src/aldehyde/controls/view-control.tsx +289 -289
  300. package/src/aldehyde/custom-page/custom-detail-modal-page.tsx +69 -69
  301. package/src/aldehyde/custom-page/custom-page-router.tsx +64 -64
  302. package/src/aldehyde/custom-page/def-custom-page.tsx +17 -17
  303. package/src/aldehyde/custom-page/dtmpl-custom-edit-modal-page.tsx +91 -91
  304. package/src/aldehyde/detail/button/bottom-submit-button-bar.tsx +91 -91
  305. package/src/aldehyde/detail/button/cquery-button-bar.tsx +144 -144
  306. package/src/aldehyde/detail/button/edit-button.tsx +61 -61
  307. package/src/aldehyde/detail/button/fix-right-submit-button-bar.tsx +186 -186
  308. package/src/aldehyde/detail/button/index.css +42 -42
  309. package/src/aldehyde/detail/button/inline-edit-button.tsx +40 -40
  310. package/src/aldehyde/detail/button/submit-button-bar.tsx +57 -57
  311. package/src/aldehyde/detail/button/view-button.tsx +64 -64
  312. package/src/aldehyde/detail/dtmpl.css +72 -72
  313. package/src/aldehyde/detail/edit/dtmpl-edit.tsx +279 -279
  314. package/src/aldehyde/detail/edit/fields-edit-card.tsx +145 -145
  315. package/src/aldehyde/detail/edit/modal-row-edit.tsx +95 -95
  316. package/src/aldehyde/detail/edit/popover-edit-card.tsx +167 -167
  317. package/src/aldehyde/detail/edit/popover-editor.tsx +70 -70
  318. package/src/aldehyde/detail/edit/post-result/index.tsx +86 -86
  319. package/src/aldehyde/detail/rightbar/index.css +34 -34
  320. package/src/aldehyde/detail/rightbar/index.tsx +92 -92
  321. package/src/aldehyde/detail/tooltipbar/index.tsx +32 -32
  322. package/src/aldehyde/detail/view/act-dtmpl-view.tsx +288 -288
  323. package/src/aldehyde/detail/view/dtmpl-view.tsx +334 -334
  324. package/src/aldehyde/detail/view/field-view-group.tsx +88 -88
  325. package/src/aldehyde/detail/view/modal-dtmpl-view.tsx +73 -73
  326. package/src/aldehyde/detail/view/snapshot-timeline.tsx +231 -231
  327. package/src/aldehyde/detail/view/tab-act-dtmpl-view.tsx +304 -304
  328. package/src/aldehyde/detail/view/view-compare-panel.tsx +57 -57
  329. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.less +35 -35
  330. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.tsx +110 -110
  331. package/src/aldehyde/draw-canvas-edit/components/main-header/index.less +23 -23
  332. package/src/aldehyde/draw-canvas-edit/components/main-header/index.tsx +263 -263
  333. package/src/aldehyde/draw-canvas-edit/components/render/components/index.less +60 -60
  334. package/src/aldehyde/draw-canvas-edit/components/render/components/index.ts +3 -3
  335. package/src/aldehyde/draw-canvas-edit/components/render/components/workstation-component.tsx +220 -220
  336. package/src/aldehyde/draw-canvas-edit/components/render/draws/bg-draw.ts +177 -177
  337. package/src/aldehyde/draw-canvas-edit/components/render/draws/contextmenu-draw.ts +330 -330
  338. package/src/aldehyde/draw-canvas-edit/components/render/draws/graph-draw.ts +249 -249
  339. package/src/aldehyde/draw-canvas-edit/components/render/draws/index.ts +7 -7
  340. package/src/aldehyde/draw-canvas-edit/components/render/draws/link-draw.ts +1415 -1415
  341. package/src/aldehyde/draw-canvas-edit/components/render/draws/preview-draw.ts +274 -274
  342. package/src/aldehyde/draw-canvas-edit/components/render/draws/ref-line-draw.ts +71 -71
  343. package/src/aldehyde/draw-canvas-edit/components/render/draws/ruler-draw.ts +166 -166
  344. package/src/aldehyde/draw-canvas-edit/components/render/graphs/base-graph.ts +241 -241
  345. package/src/aldehyde/draw-canvas-edit/components/render/graphs/bezier.ts +542 -542
  346. package/src/aldehyde/draw-canvas-edit/components/render/graphs/circle.ts +699 -699
  347. package/src/aldehyde/draw-canvas-edit/components/render/graphs/curve.ts +500 -500
  348. package/src/aldehyde/draw-canvas-edit/components/render/graphs/index.ts +5 -5
  349. package/src/aldehyde/draw-canvas-edit/components/render/graphs/line.ts +493 -493
  350. package/src/aldehyde/draw-canvas-edit/components/render/graphs/rect.ts +680 -680
  351. package/src/aldehyde/draw-canvas-edit/components/render/handlers/drag-handlers.ts +68 -68
  352. package/src/aldehyde/draw-canvas-edit/components/render/handlers/drag-outside-handlers.ts +77 -77
  353. package/src/aldehyde/draw-canvas-edit/components/render/handlers/graph-handlers.ts +113 -113
  354. package/src/aldehyde/draw-canvas-edit/components/render/handlers/index.ts +9 -9
  355. package/src/aldehyde/draw-canvas-edit/components/render/handlers/key-move-handlers.ts +49 -49
  356. package/src/aldehyde/draw-canvas-edit/components/render/handlers/link-handlers.ts +45 -45
  357. package/src/aldehyde/draw-canvas-edit/components/render/handlers/selection-handlers.ts +410 -410
  358. package/src/aldehyde/draw-canvas-edit/components/render/handlers/shutcut-handlers.ts +45 -45
  359. package/src/aldehyde/draw-canvas-edit/components/render/handlers/text-handlers.ts +81 -81
  360. package/src/aldehyde/draw-canvas-edit/components/render/handlers/zoom-handlers.ts +59 -59
  361. package/src/aldehyde/draw-canvas-edit/components/render/index.ts +817 -817
  362. package/src/aldehyde/draw-canvas-edit/components/render/tools/align-tool.ts +89 -89
  363. package/src/aldehyde/draw-canvas-edit/components/render/tools/asset-tool.ts +154 -154
  364. package/src/aldehyde/draw-canvas-edit/components/render/tools/attract-tool.ts +457 -457
  365. package/src/aldehyde/draw-canvas-edit/components/render/tools/component-factory.ts +269 -269
  366. package/src/aldehyde/draw-canvas-edit/components/render/tools/copy-tool.ts +244 -244
  367. package/src/aldehyde/draw-canvas-edit/components/render/tools/import-export-tool.ts +588 -588
  368. package/src/aldehyde/draw-canvas-edit/components/render/tools/index.ts +10 -10
  369. package/src/aldehyde/draw-canvas-edit/components/render/tools/link-tool.ts +222 -222
  370. package/src/aldehyde/draw-canvas-edit/components/render/tools/position-tool.ts +191 -191
  371. package/src/aldehyde/draw-canvas-edit/components/render/tools/selection-tool.ts +140 -140
  372. package/src/aldehyde/draw-canvas-edit/components/render/tools/z-index-tool.ts +224 -224
  373. package/src/aldehyde/draw-canvas-edit/components/render/types.ts +298 -298
  374. package/src/aldehyde/draw-canvas-edit/components/render/utils/a-star.ts +116 -116
  375. package/src/aldehyde/draw-canvas-edit/components/render/utils/bezier-scene-func.ts +72 -72
  376. package/src/aldehyde/draw-canvas-edit/components/setting-form/imag-upload.tsx +119 -119
  377. package/src/aldehyde/draw-canvas-edit/components/setting-form/index.tsx +305 -305
  378. package/src/aldehyde/draw-canvas-edit/constant.ts +5 -5
  379. package/src/aldehyde/draw-canvas-edit/index.less +48 -48
  380. package/src/aldehyde/draw-canvas-edit/index.tsx +213 -213
  381. package/src/aldehyde/draw-canvas-view/index.less +66 -66
  382. package/src/aldehyde/draw-canvas-view/index.tsx +49 -49
  383. package/src/aldehyde/draw-canvas-view/view.tsx +237 -237
  384. package/src/aldehyde/export/export-frame.css +2 -2
  385. package/src/aldehyde/export/export-frame.tsx +301 -301
  386. package/src/aldehyde/export/select-code-export-frame.tsx +212 -212
  387. package/src/aldehyde/form/criteria-form.tsx +604 -604
  388. package/src/aldehyde/form/dtmpl-form.css +3 -3
  389. package/src/aldehyde/form/dtmpl-form.tsx +571 -571
  390. package/src/aldehyde/form/field-group-form.tsx +103 -103
  391. package/src/aldehyde/form/fields-form.tsx +45 -45
  392. package/src/aldehyde/form/form-Item-group.tsx +246 -246
  393. package/src/aldehyde/form/index.css +12 -12
  394. package/src/aldehyde/hooks/use-match-route/index.tsx +62 -62
  395. package/src/aldehyde/hooks/use-tabs/index.tsx +139 -139
  396. package/src/aldehyde/hooks/useVarCssColor.ts +6 -6
  397. package/src/aldehyde/icon/aliIcon.tsx +9 -9
  398. package/src/aldehyde/icon/index.tsx +28 -28
  399. package/src/aldehyde/import/excel-import.tsx +450 -450
  400. package/src/aldehyde/import/index.css +53 -53
  401. package/src/aldehyde/import/template.css +50 -50
  402. package/src/aldehyde/index.tsx +220 -220
  403. package/src/aldehyde/layout/MainPage.tsx +334 -334
  404. package/src/aldehyde/layout/common.css +64 -64
  405. package/src/aldehyde/layout/coverstyle.css +51 -51
  406. package/src/aldehyde/layout/footer/index.css +5 -5
  407. package/src/aldehyde/layout/footer/index.js +17 -17
  408. package/src/aldehyde/layout/header/index.css +122 -122
  409. package/src/aldehyde/layout/header/index.tsx +152 -152
  410. package/src/aldehyde/layout/menu/block.css +7 -7
  411. package/src/aldehyde/layout/menu/block.tsx +174 -174
  412. package/src/aldehyde/layout/menu/l2menu-message-bar.tsx +160 -160
  413. package/src/aldehyde/layout/menu/l2menu-quick-bar.tsx +175 -175
  414. package/src/aldehyde/layout/menu/menu-2layers.tsx +117 -117
  415. package/src/aldehyde/layout/menu/menu-render.tsx +168 -168
  416. package/src/aldehyde/layout/menu/message-bar.less +73 -73
  417. package/src/aldehyde/layout/menu/reset-password.tsx +255 -255
  418. package/src/aldehyde/layout/menu/user-bar.tsx +259 -259
  419. package/src/aldehyde/layout/menu/userinfo-bar.tsx +69 -69
  420. package/src/aldehyde/layout/sidebar/index.css +57 -57
  421. package/src/aldehyde/layout/sidebar/index.tsx +84 -84
  422. package/src/aldehyde/layout2/components/icon-font.tsx +7 -7
  423. package/src/aldehyde/layout2/components/screenfull-button.tsx +21 -21
  424. package/src/aldehyde/layout2/components/search-menu.tsx +85 -85
  425. package/src/aldehyde/layout2/components/system-messages.tsx +75 -75
  426. package/src/aldehyde/layout2/components/theme-button.tsx +65 -65
  427. package/src/aldehyde/layout2/components/user-button.tsx +258 -258
  428. package/src/aldehyde/layout2/components/user-notification.tsx +74 -74
  429. package/src/aldehyde/layout2/css/header.css +41 -41
  430. package/src/aldehyde/layout2/css/sider.less +17 -17
  431. package/src/aldehyde/layout2/css/tabs-layout.less +18 -18
  432. package/src/aldehyde/layout2/header.tsx +278 -278
  433. package/src/aldehyde/layout2/layout-context.tsx +95 -95
  434. package/src/aldehyde/layout2/main.tsx +30 -30
  435. package/src/aldehyde/layout2/page.tsx +323 -315
  436. package/src/aldehyde/layout2/sider.tsx +230 -230
  437. package/src/aldehyde/layout2/tabs/tabs-context.tsx +37 -37
  438. package/src/aldehyde/layout2/tabs/tabs-layout.tsx +146 -146
  439. package/src/aldehyde/layout2/type/layout-type.ts +16 -15
  440. package/src/aldehyde/layout2/util/menu-util.tsx +125 -125
  441. package/src/aldehyde/layout3/components/tabs-layout.tsx +110 -110
  442. package/src/aldehyde/layout3/components/time.tsx +25 -25
  443. package/src/aldehyde/layout3/css/header.less +195 -195
  444. package/src/aldehyde/layout3/css/main.less +161 -161
  445. package/src/aldehyde/layout3/css/sider.less +32 -32
  446. package/src/aldehyde/layout3/css/tabs-layout.less +38 -38
  447. package/src/aldehyde/layout3/header.tsx +187 -187
  448. package/src/aldehyde/layout3/main.tsx +29 -29
  449. package/src/aldehyde/layout3/page.tsx +110 -110
  450. package/src/aldehyde/layout3/sider.tsx +198 -198
  451. package/src/aldehyde/layout4/components/tabs-layout.tsx +110 -110
  452. package/src/aldehyde/layout4/css/header.less +196 -196
  453. package/src/aldehyde/layout4/css/main.less +154 -154
  454. package/src/aldehyde/layout4/css/sider.less +37 -37
  455. package/src/aldehyde/layout4/css/tabs-layout.less +42 -42
  456. package/src/aldehyde/layout4/header.tsx +190 -190
  457. package/src/aldehyde/layout4/imgs/user.svg +26 -26
  458. package/src/aldehyde/layout4/main.tsx +29 -29
  459. package/src/aldehyde/layout4/page.tsx +125 -125
  460. package/src/aldehyde/layout4/sider.tsx +201 -201
  461. package/src/aldehyde/layout5/css/header.less +35 -35
  462. package/src/aldehyde/layout5/css/sider.less +18 -18
  463. package/src/aldehyde/layout5/header.tsx +204 -204
  464. package/src/aldehyde/layout5/page.tsx +107 -107
  465. package/src/aldehyde/layout5/sider.tsx +235 -235
  466. package/src/aldehyde/list/calendar/index.less +20 -20
  467. package/src/aldehyde/list/calendar/index.tsx +157 -157
  468. package/src/aldehyde/list/card-list/card-list-item.tsx +112 -112
  469. package/src/aldehyde/list/card-list/index.less +154 -154
  470. package/src/aldehyde/list/card-list/index.tsx +83 -83
  471. package/src/aldehyde/list/gantt/index.less +8 -8
  472. package/src/aldehyde/list/gantt/index.tsx +508 -508
  473. package/src/aldehyde/list/vertical-list/index.less +208 -208
  474. package/src/aldehyde/list/vertical-list/index.tsx +55 -55
  475. package/src/aldehyde/list/vertical-list/item.tsx +136 -136
  476. package/src/aldehyde/locale/LocaleButton.tsx +48 -48
  477. package/src/aldehyde/locale/LocaleProvider.tsx +265 -265
  478. package/src/aldehyde/locale/langMp.ts +45 -45
  479. package/src/aldehyde/locale/translate.ts +80 -80
  480. package/src/aldehyde/locale/useLocale.ts +72 -72
  481. package/src/aldehyde/login/context-setter.tsx +130 -130
  482. package/src/aldehyde/login/index.css +19 -19
  483. package/src/aldehyde/login/login.tsx +255 -255
  484. package/src/aldehyde/login/router-login.tsx +107 -107
  485. package/src/aldehyde/login/vertify/index.css +143 -143
  486. package/src/aldehyde/login/vertify/index.tsx +360 -360
  487. package/src/aldehyde/login/vertify/tool.ts +13 -13
  488. package/src/aldehyde/login2/login-page.tsx +92 -92
  489. package/src/aldehyde/login2/login.tsx +227 -227
  490. package/src/aldehyde/login3/index.less +136 -136
  491. package/src/aldehyde/login3/login-page.tsx +71 -71
  492. package/src/aldehyde/lowcode-components/act-table/index.less +26 -26
  493. package/src/aldehyde/lowcode-components/act-table/index.tsx +139 -139
  494. package/src/aldehyde/lowcode-components/assets/lowcode-constant.tsx +12 -12
  495. package/src/aldehyde/lowcode-components/bar-chart/index.tsx +272 -272
  496. package/src/aldehyde/lowcode-components/base-button/index.less +7 -7
  497. package/src/aldehyde/lowcode-components/base-button/index.tsx +197 -197
  498. package/src/aldehyde/lowcode-components/base-color-block/index.tsx +31 -31
  499. package/src/aldehyde/lowcode-components/base-image/index.tsx +220 -220
  500. package/src/aldehyde/lowcode-components/base-map/index.tsx +292 -292
  501. package/src/aldehyde/lowcode-components/base-radio/index.less +23 -23
  502. package/src/aldehyde/lowcode-components/base-radio/index.tsx +157 -157
  503. package/src/aldehyde/lowcode-components/base-table/index.less +61 -61
  504. package/src/aldehyde/lowcode-components/base-table/index.tsx +268 -268
  505. package/src/aldehyde/lowcode-components/base-tabs/index.less +14 -14
  506. package/src/aldehyde/lowcode-components/base-tabs/index.tsx +183 -183
  507. package/src/aldehyde/lowcode-components/base-text/index.less +19 -19
  508. package/src/aldehyde/lowcode-components/base-text/index.tsx +58 -58
  509. package/src/aldehyde/lowcode-components/border/border1/index.tsx +70 -70
  510. package/src/aldehyde/lowcode-components/border/border10/index.less +26 -26
  511. package/src/aldehyde/lowcode-components/border/border10/index.tsx +45 -45
  512. package/src/aldehyde/lowcode-components/border/border11/index.less +17 -17
  513. package/src/aldehyde/lowcode-components/border/border11/index.tsx +232 -232
  514. package/src/aldehyde/lowcode-components/border/border12/index.less +13 -13
  515. package/src/aldehyde/lowcode-components/border/border12/index.tsx +115 -115
  516. package/src/aldehyde/lowcode-components/border/border13/index.less +13 -13
  517. package/src/aldehyde/lowcode-components/border/border13/index.tsx +69 -69
  518. package/src/aldehyde/lowcode-components/border/border2/index.less +17 -17
  519. package/src/aldehyde/lowcode-components/border/border2/index.tsx +51 -51
  520. package/src/aldehyde/lowcode-components/border/border3/index.less +25 -25
  521. package/src/aldehyde/lowcode-components/border/border3/index.tsx +61 -61
  522. package/src/aldehyde/lowcode-components/border/border4/index.less +72 -72
  523. package/src/aldehyde/lowcode-components/border/border4/index.tsx +79 -79
  524. package/src/aldehyde/lowcode-components/border/border5/index.less +35 -35
  525. package/src/aldehyde/lowcode-components/border/border5/index.tsx +75 -75
  526. package/src/aldehyde/lowcode-components/border/border6/index.less +17 -17
  527. package/src/aldehyde/lowcode-components/border/border6/index.tsx +60 -60
  528. package/src/aldehyde/lowcode-components/border/border7/index.less +26 -26
  529. package/src/aldehyde/lowcode-components/border/border7/index.tsx +75 -75
  530. package/src/aldehyde/lowcode-components/border/border8/index.less +13 -13
  531. package/src/aldehyde/lowcode-components/border/border8/index.tsx +84 -84
  532. package/src/aldehyde/lowcode-components/border/border9/index.less +13 -13
  533. package/src/aldehyde/lowcode-components/border/border9/index.tsx +154 -154
  534. package/src/aldehyde/lowcode-components/capsule-bar-chart/index.tsx +290 -290
  535. package/src/aldehyde/lowcode-components/carousel/index.tsx +218 -218
  536. package/src/aldehyde/lowcode-components/circular-progress-chart/index.tsx +263 -263
  537. package/src/aldehyde/lowcode-components/column-3d-chart/index.tsx +442 -442
  538. package/src/aldehyde/lowcode-components/column-chart/index.tsx +352 -352
  539. package/src/aldehyde/lowcode-components/data-number/index.less +10 -10
  540. package/src/aldehyde/lowcode-components/data-number/index.tsx +219 -219
  541. package/src/aldehyde/lowcode-components/data.d.ts +19 -19
  542. package/src/aldehyde/lowcode-components/date-time/index.less +4 -4
  543. package/src/aldehyde/lowcode-components/date-time/index.tsx +64 -64
  544. package/src/aldehyde/lowcode-components/decoration/decoration1/index.less +7 -7
  545. package/src/aldehyde/lowcode-components/decoration/decoration1/index.tsx +153 -153
  546. package/src/aldehyde/lowcode-components/decoration/decoration10/index.less +5 -5
  547. package/src/aldehyde/lowcode-components/decoration/decoration10/index.tsx +89 -89
  548. package/src/aldehyde/lowcode-components/decoration/decoration11/index.less +5 -5
  549. package/src/aldehyde/lowcode-components/decoration/decoration11/index.tsx +133 -133
  550. package/src/aldehyde/lowcode-components/decoration/decoration2/index.less +6 -6
  551. package/src/aldehyde/lowcode-components/decoration/decoration2/index.tsx +61 -61
  552. package/src/aldehyde/lowcode-components/decoration/decoration3/index.less +7 -7
  553. package/src/aldehyde/lowcode-components/decoration/decoration3/index.tsx +87 -87
  554. package/src/aldehyde/lowcode-components/decoration/decoration4/index.less +29 -29
  555. package/src/aldehyde/lowcode-components/decoration/decoration4/index.tsx +53 -53
  556. package/src/aldehyde/lowcode-components/decoration/decoration5/index.less +3 -3
  557. package/src/aldehyde/lowcode-components/decoration/decoration5/index.tsx +116 -116
  558. package/src/aldehyde/lowcode-components/decoration/decoration6/index.less +7 -7
  559. package/src/aldehyde/lowcode-components/decoration/decoration6/index.tsx +121 -121
  560. package/src/aldehyde/lowcode-components/decoration/decoration7/index.less +4 -4
  561. package/src/aldehyde/lowcode-components/decoration/decoration7/index.tsx +70 -70
  562. package/src/aldehyde/lowcode-components/decoration/decoration8/index.less +14 -14
  563. package/src/aldehyde/lowcode-components/decoration/decoration8/index.tsx +122 -122
  564. package/src/aldehyde/lowcode-components/decoration/decoration9/index.less +4 -4
  565. package/src/aldehyde/lowcode-components/decoration/decoration9/index.tsx +196 -196
  566. package/src/aldehyde/lowcode-components/effectScatter-map/index.tsx +315 -315
  567. package/src/aldehyde/lowcode-components/effectScatter-map-3d/index.tsx +419 -419
  568. package/src/aldehyde/lowcode-components/four-angle-glow-border/index.less +49 -49
  569. package/src/aldehyde/lowcode-components/four-angle-glow-border/index.tsx +53 -53
  570. package/src/aldehyde/lowcode-components/gauge-chart/index.tsx +254 -254
  571. package/src/aldehyde/lowcode-components/index.ts +130 -130
  572. package/src/aldehyde/lowcode-components/line-bar-chart/index.tsx +362 -362
  573. package/src/aldehyde/lowcode-components/line-chart/index.tsx +352 -352
  574. package/src/aldehyde/lowcode-components/liquid-chart/index.tsx +250 -250
  575. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-controller.ts +64 -64
  576. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-definition.ts +77 -77
  577. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-designer-loader.ts +36 -36
  578. package/src/aldehyde/lowcode-components/lowcode-view/component/assets.ts +478 -478
  579. package/src/aldehyde/lowcode-components/lowcode-view/component/component-container.tsx +91 -91
  580. package/src/aldehyde/lowcode-components/lowcode-view/component/component-controller.ts +153 -153
  581. package/src/aldehyde/lowcode-components/lowcode-view/component/component-definition.ts +23 -23
  582. package/src/aldehyde/lowcode-components/lowcode-view/component/font/FontGlobal.css +26 -26
  583. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/controller.ts +36 -36
  584. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/definition.ts +53 -53
  585. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/index.tsx +15 -15
  586. package/src/aldehyde/lowcode-components/lowcode-view/component/layer-builder.tsx +98 -98
  587. package/src/aldehyde/lowcode-components/lowcode-view/component/loading.tsx +20 -20
  588. package/src/aldehyde/lowcode-components/lowcode-view/component/screen-fit/index.less +13 -13
  589. package/src/aldehyde/lowcode-components/lowcode-view/component/screen-fit/index.tsx +121 -121
  590. package/src/aldehyde/lowcode-components/lowcode-view/component/util.ts +27 -27
  591. package/src/aldehyde/lowcode-components/lowcode-view/index.less +19 -19
  592. package/src/aldehyde/lowcode-components/lowcode-view/index.tsx +279 -279
  593. package/src/aldehyde/lowcode-components/lowcode-view/interface.ts +189 -189
  594. package/src/aldehyde/lowcode-components/pie-chart/index.tsx +353 -353
  595. package/src/aldehyde/lowcode-components/placeholder-component/index.tsx +81 -81
  596. package/src/aldehyde/lowcode-components/progress-chart/index.tsx +295 -295
  597. package/src/aldehyde/lowcode-components/radar-chart/index.tsx +322 -322
  598. package/src/aldehyde/lowcode-components/search-form/index.less +25 -25
  599. package/src/aldehyde/lowcode-components/search-form/index.tsx +121 -121
  600. package/src/aldehyde/lowcode-components/stroke-animation/index.tsx +219 -219
  601. package/src/aldehyde/lowcode-components/text-scroller/index.less +28 -28
  602. package/src/aldehyde/lowcode-components/text-scroller/index.tsx +173 -173
  603. package/src/aldehyde/module/block-menu-tree-drawer.tsx +118 -118
  604. package/src/aldehyde/module/criteria-page.tsx1 +175 -175
  605. package/src/aldehyde/module/draggable-modal.tsx +66 -66
  606. package/src/aldehyde/module/dtmpl-edit-card.tsx +479 -479
  607. package/src/aldehyde/module/dtmpl-edit-drawer.tsx +24 -24
  608. package/src/aldehyde/module/dtmpl-edit-modal.tsx +26 -26
  609. package/src/aldehyde/module/dtmpl-edit-page.tsx +600 -600
  610. package/src/aldehyde/module/dtmpl-editor.tsx +165 -165
  611. package/src/aldehyde/module/dtmpl-view-card.tsx +64 -64
  612. package/src/aldehyde/module/dtmpl-view-drawer.tsx +71 -71
  613. package/src/aldehyde/module/dtmpl-view-modal.tsx +56 -56
  614. package/src/aldehyde/module/embed-dtmpl-edit-page.tsx +137 -137
  615. package/src/aldehyde/module/index.less +4 -4
  616. package/src/aldehyde/module/ltmpl-drawer.tsx +60 -60
  617. package/src/aldehyde/module/ltmpl-modal.tsx +63 -63
  618. package/src/aldehyde/module/ltmpl-table.tsx +387 -388
  619. package/src/aldehyde/module/ttmpl-tree.tsx +47 -47
  620. package/src/aldehyde/routable/dtmpl-route.tsx +179 -173
  621. package/src/aldehyde/routable/import-route.tsx +42 -35
  622. package/src/aldehyde/routable/index.less +25 -25
  623. package/src/aldehyde/routable/ltmpl-route.tsx +549 -544
  624. package/src/aldehyde/routable/splitview-ltmpl-route.tsx +385 -382
  625. package/src/aldehyde/routable/ttmpl-route.tsx +98 -93
  626. package/src/aldehyde/routable/withroute.tsx +36 -36
  627. package/src/aldehyde/sso-Login/index.tsx +73 -73
  628. package/src/aldehyde/sso-Login/service/index.js +16 -16
  629. package/src/aldehyde/sso-Login/service/login.js +75 -75
  630. package/src/aldehyde/table/act-table.tsx +1865 -1846
  631. package/src/aldehyde/table/column/column-builder.tsx +882 -882
  632. package/src/aldehyde/table/column/column-selector.tsx +130 -130
  633. package/src/aldehyde/table/column/index.less +85 -85
  634. package/src/aldehyde/table/column/summary-builder.tsx +712 -712
  635. package/src/aldehyde/table/column/theme-color-getter.tsx +25 -25
  636. package/src/aldehyde/table/control-table-x-axis-wrapper.tsx +80 -80
  637. package/src/aldehyde/table/index.css +211 -211
  638. package/src/aldehyde/table/l2-act-table.tsx +91 -91
  639. package/src/aldehyde/table/modal-select-table.tsx +308 -308
  640. package/src/aldehyde/table/page-chart.less +9 -9
  641. package/src/aldehyde/table/page-chart.tsx +196 -196
  642. package/src/aldehyde/table/page-config-button.tsx +203 -203
  643. package/src/aldehyde/table/pagination.css +14 -14
  644. package/src/aldehyde/table/pagination.tsx +81 -81
  645. package/src/aldehyde/table/query-table.tsx +668 -668
  646. package/src/aldehyde/table/relation-table.tsx +1078 -1078
  647. package/src/aldehyde/table/report-table.tsx +125 -125
  648. package/src/aldehyde/table/resizable-table.tsx +97 -97
  649. package/src/aldehyde/table/row-table.tsx +45 -22
  650. package/src/aldehyde/table/select-table.tsx +559 -559
  651. package/src/aldehyde/table/selected-rows-card.tsx +78 -78
  652. package/src/aldehyde/table/stat/restat.tsx +122 -122
  653. package/src/aldehyde/table/table-util.tsx +25 -25
  654. package/src/aldehyde/tmpl/control-type-supportor.tsx +154 -154
  655. package/src/aldehyde/tmpl/hc-data-source.tsx +574 -574
  656. package/src/aldehyde/tmpl/hcservice-v3.tsx +1590 -1590
  657. package/src/aldehyde/tmpl/interface.tsx +940 -939
  658. package/src/aldehyde/tmpl/model-struc-v3.tsx +111 -111
  659. package/src/aldehyde/tmpl/superagent.js +146 -146
  660. package/src/aldehyde/tmpl/tmpl-config-analysis.tsx +585 -585
  661. package/src/aldehyde/tmpl/web-socket.ts +366 -366
  662. package/src/aldehyde/tree/act-tree.tsx +219 -217
  663. package/src/aldehyde/tree/block-menu-auth-tree.tsx +189 -189
  664. package/src/aldehyde/tree/index.css +22 -22
  665. package/src/aldehyde/tree/navigation-tree.tsx +39 -39
  666. package/src/aldehyde/tree/tmpl-tree.tsx +751 -751
  667. package/src/aldehyde/tree/tree-node.tsx +73 -73
  668. package/src/aldehyde/tree/tree-utils.tsx +317 -317
  669. package/src/aldehyde/units/EncryptUtils.js +37 -37
  670. package/src/aldehyde/units/image.d.ts +7 -7
  671. package/src/aldehyde/units/index.tsx +1375 -1367
  672. package/src/aldehyde/units/storage.js +2 -2
  673. package/src/aldehyde/utils/dsu.ts +27 -27
  674. package/src/aldehyde/welcome/HCWelcome.js +404 -404
  675. package/src/aldehyde/welcome/HCWelcome1.js +259 -259
  676. package/src/aldehyde/welcome/components/menu-card.less +96 -96
  677. package/src/aldehyde/welcome/components/menu-card.tsx +70 -70
  678. package/src/aldehyde/welcome/components/page-card.less +49 -49
  679. package/src/aldehyde/welcome/components/page-card.tsx +97 -97
  680. package/src/aldehyde/welcome/components/quick-entrance.less +120 -120
  681. package/src/aldehyde/welcome/components/quick-entrance.tsx +80 -80
  682. package/src/aldehyde/welcome/components/user-menus.less +192 -192
  683. package/src/aldehyde/welcome/components/user-menus.tsx +279 -279
  684. package/src/aldehyde/welcome/components/workbench.less +118 -118
  685. package/src/aldehyde/welcome/components/workbench.tsx +146 -146
  686. 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
  }