aldehyde 0.2.488 → 0.2.490

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 (576) 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.less +9 -9
  18. package/lib/controls/html-editor/index.less +67 -67
  19. package/lib/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.css +147 -147
  20. package/lib/controls/password-setter/index.css +2 -2
  21. package/lib/controls/password-setter/index.d.ts.map +1 -1
  22. package/lib/controls/qr-code/index.less +28 -28
  23. package/lib/controls/relation-existion/index.css +3 -3
  24. package/lib/controls/relation-existion/index.d.ts.map +1 -1
  25. package/lib/controls/rfield/index.css +4 -4
  26. package/lib/controls/rfield/index.d.ts.map +1 -1
  27. package/lib/controls/select/index.d.ts.map +1 -1
  28. package/lib/controls/signature/index.d.ts.map +1 -1
  29. package/lib/controls/text/ellipsis-text.d.ts.map +1 -1
  30. package/lib/controls/text/index.less +7 -7
  31. package/lib/controls/upload/index.d.ts.map +1 -1
  32. package/lib/controls/upload/mult-file-upload.d.ts.map +1 -1
  33. package/lib/custom-page/dtmpl-custom-edit-modal-page.d.ts.map +1 -1
  34. package/lib/detail/button/bottom-submit-button-bar.d.ts.map +1 -1
  35. package/lib/detail/button/cquery-button-bar.d.ts.map +1 -1
  36. package/lib/detail/button/fix-right-submit-button-bar.d.ts.map +1 -1
  37. package/lib/detail/button/index.css +42 -42
  38. package/lib/detail/dtmpl.css +72 -72
  39. package/lib/detail/edit/fields-edit-card.d.ts.map +1 -1
  40. package/lib/detail/edit/modal-row-edit.d.ts.map +1 -1
  41. package/lib/detail/edit/popover-edit-card.d.ts.map +1 -1
  42. package/lib/detail/rightbar/index.css +34 -34
  43. package/lib/detail/rightbar/index.d.ts.map +1 -1
  44. package/lib/detail/view/act-dtmpl-view.d.ts.map +1 -1
  45. package/lib/detail/view/field-view-group.d.ts.map +1 -1
  46. package/lib/detail/view/modal-dtmpl-view.d.ts.map +1 -1
  47. package/lib/detail/view/snapshot-timeline.d.ts.map +1 -1
  48. package/lib/detail/view/tab-act-dtmpl-view.d.ts.map +1 -1
  49. package/lib/draw-canvas-edit/components/render/components/index.less +60 -60
  50. package/lib/draw-canvas-edit/components/render/components/workstation-component.js +6 -6
  51. package/lib/draw-canvas-edit/index.less +48 -48
  52. package/lib/draw-canvas-view/index.less +66 -66
  53. package/lib/export/export-frame.css +2 -2
  54. package/lib/export/export-frame.d.ts.map +1 -1
  55. package/lib/export/select-code-export-frame.d.ts.map +1 -1
  56. package/lib/form/dtmpl-form.css +3 -3
  57. package/lib/form/dtmpl-form.d.ts.map +1 -1
  58. package/lib/form/field-group-form.d.ts.map +1 -1
  59. package/lib/form/form-Item-group.d.ts.map +1 -1
  60. package/lib/form/index.css +12 -12
  61. package/lib/import/excel-import.d.ts.map +1 -1
  62. package/lib/import/index.css +53 -53
  63. package/lib/import/template.css +50 -50
  64. package/lib/layout/common.css +64 -64
  65. package/lib/layout/coverstyle.css +51 -51
  66. package/lib/layout/footer/index.css +5 -5
  67. package/lib/layout/header/index.css +122 -122
  68. package/lib/layout/menu/block.css +7 -7
  69. package/lib/layout/menu/block.d.ts.map +1 -1
  70. package/lib/layout/menu/l2menu-quick-bar.d.ts.map +1 -1
  71. package/lib/layout/menu/menu-2layers.d.ts.map +1 -1
  72. package/lib/layout/menu/message-bar.less +73 -73
  73. package/lib/layout/menu/reset-password.d.ts.map +1 -1
  74. package/lib/layout/menu/user-bar.d.ts.map +1 -1
  75. package/lib/layout/menu/userinfo-bar.d.ts.map +1 -1
  76. package/lib/layout/sidebar/index.css +57 -57
  77. package/lib/layout2/css/header.css +41 -41
  78. package/lib/layout2/css/sider.less +17 -17
  79. package/lib/layout2/css/tabs-layout.less +18 -18
  80. package/lib/layout3/css/header.less +195 -195
  81. package/lib/layout3/css/main.less +161 -161
  82. package/lib/layout3/css/sider.less +32 -32
  83. package/lib/layout3/css/tabs-layout.less +38 -38
  84. package/lib/layout4/css/header.less +196 -196
  85. package/lib/layout4/css/main.less +154 -154
  86. package/lib/layout4/css/sider.less +37 -37
  87. package/lib/layout4/css/tabs-layout.less +42 -42
  88. package/lib/layout5/css/header.less +35 -35
  89. package/lib/layout5/css/sider.less +18 -18
  90. package/lib/list/calendar/index.less +20 -20
  91. package/lib/list/card-list/index.less +154 -154
  92. package/lib/list/gantt/index.less +8 -8
  93. package/lib/list/vertical-list/index.less +208 -208
  94. package/lib/login/index.css +19 -19
  95. package/lib/login/login.d.ts.map +1 -1
  96. package/lib/login/vertify/index.css +143 -143
  97. package/lib/login3/index.less +136 -136
  98. package/lib/lowcode-components/act-table/index.less +26 -26
  99. package/lib/lowcode-components/base-button/index.less +7 -7
  100. package/lib/lowcode-components/base-map/index.js +6 -6
  101. package/lib/lowcode-components/base-radio/index.less +23 -23
  102. package/lib/lowcode-components/base-tabs/index.less +14 -14
  103. package/lib/lowcode-components/border/border10/index.less +26 -26
  104. package/lib/lowcode-components/border/border11/index.js +46 -46
  105. package/lib/lowcode-components/border/border11/index.less +17 -17
  106. package/lib/lowcode-components/border/border12/index.js +13 -13
  107. package/lib/lowcode-components/border/border12/index.less +13 -13
  108. package/lib/lowcode-components/border/border13/index.js +5 -5
  109. package/lib/lowcode-components/border/border13/index.less +13 -13
  110. package/lib/lowcode-components/border/border2/index.less +17 -17
  111. package/lib/lowcode-components/border/border3/index.less +25 -25
  112. package/lib/lowcode-components/border/border4/index.js +2 -2
  113. package/lib/lowcode-components/border/border4/index.less +72 -72
  114. package/lib/lowcode-components/border/border5/index.js +2 -2
  115. package/lib/lowcode-components/border/border5/index.less +35 -35
  116. package/lib/lowcode-components/border/border6/index.less +17 -17
  117. package/lib/lowcode-components/border/border7/index.less +26 -26
  118. package/lib/lowcode-components/border/border8/index.less +13 -13
  119. package/lib/lowcode-components/border/border9/index.js +14 -14
  120. package/lib/lowcode-components/border/border9/index.less +13 -13
  121. package/lib/lowcode-components/decoration/decoration1/index.less +7 -7
  122. package/lib/lowcode-components/decoration/decoration10/index.js +3 -3
  123. package/lib/lowcode-components/decoration/decoration10/index.less +5 -5
  124. package/lib/lowcode-components/decoration/decoration11/index.less +5 -5
  125. package/lib/lowcode-components/decoration/decoration2/index.less +6 -6
  126. package/lib/lowcode-components/decoration/decoration3/index.less +7 -7
  127. package/lib/lowcode-components/decoration/decoration4/index.less +29 -29
  128. package/lib/lowcode-components/decoration/decoration5/index.less +3 -3
  129. package/lib/lowcode-components/decoration/decoration6/index.less +7 -7
  130. package/lib/lowcode-components/decoration/decoration7/index.less +4 -4
  131. package/lib/lowcode-components/decoration/decoration8/index.less +14 -14
  132. package/lib/lowcode-components/decoration/decoration9/index.less +4 -4
  133. package/lib/lowcode-components/effectScatter-map/index.js +6 -6
  134. package/lib/lowcode-components/effectScatter-map-3d/index.js +6 -6
  135. package/lib/lowcode-components/lowcode-view/index.less +19 -19
  136. package/lib/lowcode-components/search-form/index.less +25 -25
  137. package/lib/module/dtmpl-edit-card.d.ts.map +1 -1
  138. package/lib/module/dtmpl-edit-page.d.ts.map +1 -1
  139. package/lib/module/index.less +4 -4
  140. package/lib/module/ltmpl-modal.d.ts.map +1 -1
  141. package/lib/module/ltmpl-table.d.ts.map +1 -1
  142. package/lib/routable/index.less +25 -25
  143. package/lib/table/act-table.d.ts.map +1 -1
  144. package/lib/table/column/index.less +85 -85
  145. package/lib/table/index.css +211 -211
  146. package/lib/table/modal-select-table.d.ts.map +1 -1
  147. package/lib/table/page-chart.d.ts +1 -1
  148. package/lib/table/page-chart.d.ts.map +1 -1
  149. package/lib/table/page-chart.js +4 -1
  150. package/lib/table/page-chart.js.map +1 -1
  151. package/lib/table/page-chart.less +9 -9
  152. package/lib/table/pagination.css +14 -14
  153. package/lib/table/pagination.d.ts.map +1 -1
  154. package/lib/table/relation-table.d.ts.map +1 -1
  155. package/lib/table/selected-rows-card.d.ts.map +1 -1
  156. package/lib/table/stat/restat.d.ts.map +1 -1
  157. package/lib/tree/act-tree.d.ts.map +1 -1
  158. package/lib/tree/block-menu-auth-tree.d.ts.map +1 -1
  159. package/lib/tree/index.css +22 -22
  160. package/lib/tree/tmpl-tree.d.ts.map +1 -1
  161. package/lib/welcome/components/menu-card.less +96 -96
  162. package/lib/welcome/components/page-card.less +49 -49
  163. package/lib/welcome/components/quick-entrance.less +120 -120
  164. package/lib/welcome/components/user-menus.less +192 -192
  165. package/lib/welcome/components/workbench.less +118 -118
  166. package/lib/welcome/index.css +13 -13
  167. package/package.json +224 -224
  168. package/src/aldehyde/controls/2dEditor/2dEditor/index.less +5 -5
  169. package/src/aldehyde/controls/2dEditor/2dEditor/index.tsx +270 -270
  170. package/src/aldehyde/controls/2dEditor/2dView/index.less +8 -8
  171. package/src/aldehyde/controls/2dEditor/2dView/index.tsx +110 -110
  172. package/src/aldehyde/controls/2dEditor/components/card.tsx +256 -256
  173. package/src/aldehyde/controls/2dEditor/components/component.less +83 -83
  174. package/src/aldehyde/controls/2dEditor/components/data.d.ts +32 -32
  175. package/src/aldehyde/controls/2dEditor/components/hotspot.tsx +80 -80
  176. package/src/aldehyde/controls/2dEditor/components/html-box.tsx +101 -101
  177. package/src/aldehyde/controls/2dEditor/components/image.tsx +99 -99
  178. package/src/aldehyde/controls/2dEditor/components/line.tsx +73 -73
  179. package/src/aldehyde/controls/action/index.css +8 -8
  180. package/src/aldehyde/controls/action/index.tsx +406 -406
  181. package/src/aldehyde/controls/action/utils.tsx +306 -306
  182. package/src/aldehyde/controls/auto-complete/index.tsx +82 -82
  183. package/src/aldehyde/controls/cascader/index.tsx +112 -112
  184. package/src/aldehyde/controls/chemstruc/graph.tsx +185 -185
  185. package/src/aldehyde/controls/chemstruc/index.css +28 -28
  186. package/src/aldehyde/controls/code-editor/sql-code-editor.tsx +73 -73
  187. package/src/aldehyde/controls/collapse-card/index.css +8 -8
  188. package/src/aldehyde/controls/collapse-card/index.tsx +109 -109
  189. package/src/aldehyde/controls/color-picker/index.tsx +21 -21
  190. package/src/aldehyde/controls/counting-tag/index.tsx +53 -53
  191. package/src/aldehyde/controls/cquery/cquick-button.tsx +145 -145
  192. package/src/aldehyde/controls/date-picker/index.tsx +199 -199
  193. package/src/aldehyde/controls/direct-file-view/drawer-file-view.tsx +54 -54
  194. package/src/aldehyde/controls/direct-file-view/index.tsx +147 -147
  195. package/src/aldehyde/controls/direct-upload/index.tsx +140 -140
  196. package/src/aldehyde/controls/entity-select/entity-select.tsx +791 -791
  197. package/src/aldehyde/controls/entity-select/index.css +7 -7
  198. package/src/aldehyde/controls/entity-select/lab-tree-select.tsx +154 -154
  199. package/src/aldehyde/controls/entity-select/popover-entity-select.tsx +205 -205
  200. package/src/aldehyde/controls/entry-control.tsx +431 -431
  201. package/src/aldehyde/controls/enum-badge/index.tsx +42 -42
  202. package/src/aldehyde/controls/enum-tag/index.tsx +45 -45
  203. package/src/aldehyde/controls/field-history/index.tsx +81 -81
  204. package/src/aldehyde/controls/file-export/select-code-export.tsx +40 -40
  205. package/src/aldehyde/controls/file-view/drawer-file-view.tsx +117 -117
  206. package/src/aldehyde/controls/file-view/index.less +9 -9
  207. package/src/aldehyde/controls/file-view/index.tsx +148 -148
  208. package/src/aldehyde/controls/file-view/multi-file-view.tsx +39 -39
  209. package/src/aldehyde/controls/file-view/newin-file-view.tsx +40 -40
  210. package/src/aldehyde/controls/html-editor/draft.tsx +136 -136
  211. package/src/aldehyde/controls/html-editor/index.less +67 -67
  212. package/src/aldehyde/controls/icon-selector/app-icon-selector.tsx +68 -68
  213. package/src/aldehyde/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.css +147 -147
  214. package/src/aldehyde/controls/icon-selector/icon/aldehyde-menu-icon/iconfont.json +240 -240
  215. package/src/aldehyde/controls/icon-selector/pc-icon-selector.tsx +68 -68
  216. package/src/aldehyde/controls/input-number/index.tsx +148 -148
  217. package/src/aldehyde/controls/input-range/index.tsx +59 -59
  218. package/src/aldehyde/controls/password-setter/index.css +2 -2
  219. package/src/aldehyde/controls/password-setter/index.js +88 -88
  220. package/src/aldehyde/controls/progress/index.tsx +74 -74
  221. package/src/aldehyde/controls/qr-code/index.less +28 -28
  222. package/src/aldehyde/controls/qr-code/index.tsx +40 -40
  223. package/src/aldehyde/controls/relation-existion/index.css +3 -3
  224. package/src/aldehyde/controls/relation-existion/index.tsx +144 -144
  225. package/src/aldehyde/controls/rfield/index.css +4 -4
  226. package/src/aldehyde/controls/rfield/index.tsx +225 -225
  227. package/src/aldehyde/controls/select/index.tsx +226 -226
  228. package/src/aldehyde/controls/signature/index.tsx +226 -226
  229. package/src/aldehyde/controls/single-checkbox/index.tsx +18 -18
  230. package/src/aldehyde/controls/steps/index.tsx +59 -59
  231. package/src/aldehyde/controls/text/ellipsis-text.tsx +98 -98
  232. package/src/aldehyde/controls/text/index.less +7 -7
  233. package/src/aldehyde/controls/tree-select/navigation-tree.tsx +122 -122
  234. package/src/aldehyde/controls/tree-select/tree-entity-select.tsx +121 -121
  235. package/src/aldehyde/controls/upload/index.tsx +128 -128
  236. package/src/aldehyde/controls/upload/mult-file-upload.tsx +240 -240
  237. package/src/aldehyde/controls/upload-read-excel/index.tsx +43 -43
  238. package/src/aldehyde/controls/view-control.tsx +289 -289
  239. package/src/aldehyde/custom-page/custom-detail-modal-page.tsx +69 -69
  240. package/src/aldehyde/custom-page/custom-page-router.tsx +64 -64
  241. package/src/aldehyde/custom-page/def-custom-page.tsx +17 -17
  242. package/src/aldehyde/custom-page/dtmpl-custom-edit-modal-page.tsx +88 -88
  243. package/src/aldehyde/detail/button/bottom-submit-button-bar.tsx +91 -91
  244. package/src/aldehyde/detail/button/cquery-button-bar.tsx +144 -144
  245. package/src/aldehyde/detail/button/edit-button.tsx +61 -61
  246. package/src/aldehyde/detail/button/fix-right-submit-button-bar.tsx +186 -186
  247. package/src/aldehyde/detail/button/index.css +42 -42
  248. package/src/aldehyde/detail/button/inline-edit-button.tsx +40 -40
  249. package/src/aldehyde/detail/button/submit-button-bar.tsx +57 -57
  250. package/src/aldehyde/detail/button/view-button.tsx +64 -64
  251. package/src/aldehyde/detail/dtmpl.css +72 -72
  252. package/src/aldehyde/detail/edit/dtmpl-edit.tsx +279 -279
  253. package/src/aldehyde/detail/edit/fields-edit-card.tsx +145 -145
  254. package/src/aldehyde/detail/edit/modal-row-edit.tsx +95 -95
  255. package/src/aldehyde/detail/edit/popover-edit-card.tsx +167 -167
  256. package/src/aldehyde/detail/edit/popover-editor.tsx +70 -70
  257. package/src/aldehyde/detail/edit/post-result/index.tsx +86 -86
  258. package/src/aldehyde/detail/rightbar/index.css +34 -34
  259. package/src/aldehyde/detail/rightbar/index.tsx +92 -92
  260. package/src/aldehyde/detail/tooltipbar/index.tsx +32 -32
  261. package/src/aldehyde/detail/view/act-dtmpl-view.tsx +288 -288
  262. package/src/aldehyde/detail/view/dtmpl-view.tsx +334 -334
  263. package/src/aldehyde/detail/view/field-view-group.tsx +88 -88
  264. package/src/aldehyde/detail/view/modal-dtmpl-view.tsx +73 -73
  265. package/src/aldehyde/detail/view/snapshot-timeline.tsx +231 -231
  266. package/src/aldehyde/detail/view/tab-act-dtmpl-view.tsx +304 -304
  267. package/src/aldehyde/detail/view/view-compare-panel.tsx +57 -57
  268. package/src/aldehyde/draw-canvas-edit/components/render/components/index.less +60 -60
  269. package/src/aldehyde/draw-canvas-edit/components/render/components/index.ts +3 -3
  270. package/src/aldehyde/draw-canvas-edit/components/render/components/workstation-component.tsx +220 -220
  271. package/src/aldehyde/draw-canvas-edit/components/render/draws/bg-draw.ts +177 -177
  272. package/src/aldehyde/draw-canvas-edit/components/render/draws/contextmenu-draw.ts +330 -330
  273. package/src/aldehyde/draw-canvas-edit/components/render/draws/graph-draw.ts +249 -249
  274. package/src/aldehyde/draw-canvas-edit/components/render/draws/link-draw.ts +1415 -1415
  275. package/src/aldehyde/draw-canvas-edit/components/render/draws/preview-draw.ts +274 -274
  276. package/src/aldehyde/draw-canvas-edit/components/render/draws/ref-line-draw.ts +71 -71
  277. package/src/aldehyde/draw-canvas-edit/components/render/draws/ruler-draw.ts +166 -166
  278. package/src/aldehyde/draw-canvas-edit/components/render/graphs/bezier.ts +542 -542
  279. package/src/aldehyde/draw-canvas-edit/components/render/handlers/drag-outside-handlers.ts +77 -77
  280. package/src/aldehyde/draw-canvas-edit/components/render/handlers/selection-handlers.ts +410 -410
  281. package/src/aldehyde/draw-canvas-edit/components/render/index.ts +817 -817
  282. package/src/aldehyde/draw-canvas-edit/components/render/tools/attract-tool.ts +457 -457
  283. package/src/aldehyde/draw-canvas-edit/components/render/tools/component-factory.ts +269 -269
  284. package/src/aldehyde/draw-canvas-edit/components/render/tools/copy-tool.ts +244 -244
  285. package/src/aldehyde/draw-canvas-edit/components/render/tools/import-export-tool.ts +588 -588
  286. package/src/aldehyde/draw-canvas-edit/components/render/tools/index.ts +10 -10
  287. package/src/aldehyde/draw-canvas-edit/components/render/tools/position-tool.ts +191 -191
  288. package/src/aldehyde/draw-canvas-edit/components/render/tools/selection-tool.ts +140 -140
  289. package/src/aldehyde/draw-canvas-edit/components/render/types.ts +298 -298
  290. package/src/aldehyde/draw-canvas-edit/components/setting-form/index.tsx +305 -305
  291. package/src/aldehyde/draw-canvas-edit/constant.ts +5 -5
  292. package/src/aldehyde/draw-canvas-edit/index.less +48 -48
  293. package/src/aldehyde/draw-canvas-edit/index.tsx +213 -213
  294. package/src/aldehyde/draw-canvas-view/index.less +66 -66
  295. package/src/aldehyde/draw-canvas-view/index.tsx +49 -49
  296. package/src/aldehyde/draw-canvas-view/view.tsx +237 -237
  297. package/src/aldehyde/export/export-frame.css +2 -2
  298. package/src/aldehyde/export/export-frame.tsx +301 -301
  299. package/src/aldehyde/export/select-code-export-frame.tsx +212 -212
  300. package/src/aldehyde/form/criteria-form.tsx +604 -604
  301. package/src/aldehyde/form/dtmpl-form.css +3 -3
  302. package/src/aldehyde/form/dtmpl-form.tsx +571 -571
  303. package/src/aldehyde/form/field-group-form.tsx +103 -103
  304. package/src/aldehyde/form/fields-form.tsx +45 -45
  305. package/src/aldehyde/form/form-Item-group.tsx +246 -246
  306. package/src/aldehyde/form/index.css +12 -12
  307. package/src/aldehyde/hooks/use-match-route/index.tsx +62 -62
  308. package/src/aldehyde/hooks/use-tabs/index.tsx +139 -139
  309. package/src/aldehyde/hooks/useVarCssColor.ts +6 -6
  310. package/src/aldehyde/icon/aliIcon.tsx +9 -9
  311. package/src/aldehyde/icon/index.tsx +28 -28
  312. package/src/aldehyde/import/excel-import.tsx +450 -450
  313. package/src/aldehyde/import/index.css +53 -53
  314. package/src/aldehyde/import/template.css +50 -50
  315. package/src/aldehyde/index.tsx +220 -220
  316. package/src/aldehyde/layout/MainPage.tsx +334 -334
  317. package/src/aldehyde/layout/common.css +64 -64
  318. package/src/aldehyde/layout/coverstyle.css +51 -51
  319. package/src/aldehyde/layout/footer/index.css +5 -5
  320. package/src/aldehyde/layout/footer/index.js +17 -17
  321. package/src/aldehyde/layout/header/index.css +122 -122
  322. package/src/aldehyde/layout/header/index.tsx +152 -152
  323. package/src/aldehyde/layout/menu/block.css +7 -7
  324. package/src/aldehyde/layout/menu/block.tsx +174 -174
  325. package/src/aldehyde/layout/menu/l2menu-message-bar.tsx +160 -160
  326. package/src/aldehyde/layout/menu/l2menu-quick-bar.tsx +175 -175
  327. package/src/aldehyde/layout/menu/menu-2layers.tsx +117 -117
  328. package/src/aldehyde/layout/menu/menu-render.tsx +168 -168
  329. package/src/aldehyde/layout/menu/message-bar.less +73 -73
  330. package/src/aldehyde/layout/menu/reset-password.tsx +255 -255
  331. package/src/aldehyde/layout/menu/user-bar.tsx +259 -259
  332. package/src/aldehyde/layout/menu/userinfo-bar.tsx +69 -69
  333. package/src/aldehyde/layout/sidebar/index.css +57 -57
  334. package/src/aldehyde/layout/sidebar/index.tsx +84 -84
  335. package/src/aldehyde/layout2/components/icon-font.tsx +7 -7
  336. package/src/aldehyde/layout2/components/screenfull-button.tsx +21 -21
  337. package/src/aldehyde/layout2/components/search-menu.tsx +85 -85
  338. package/src/aldehyde/layout2/components/system-messages.tsx +75 -75
  339. package/src/aldehyde/layout2/components/theme-button.tsx +65 -65
  340. package/src/aldehyde/layout2/components/user-button.tsx +258 -258
  341. package/src/aldehyde/layout2/components/user-notification.tsx +74 -74
  342. package/src/aldehyde/layout2/css/header.css +41 -41
  343. package/src/aldehyde/layout2/css/sider.less +17 -17
  344. package/src/aldehyde/layout2/css/tabs-layout.less +18 -18
  345. package/src/aldehyde/layout2/header.tsx +278 -278
  346. package/src/aldehyde/layout2/layout-context.tsx +95 -95
  347. package/src/aldehyde/layout2/main.tsx +30 -30
  348. package/src/aldehyde/layout2/page.tsx +315 -315
  349. package/src/aldehyde/layout2/sider.tsx +230 -230
  350. package/src/aldehyde/layout2/tabs/tabs-context.tsx +37 -37
  351. package/src/aldehyde/layout2/tabs/tabs-layout.tsx +146 -146
  352. package/src/aldehyde/layout2/type/layout-type.ts +15 -15
  353. package/src/aldehyde/layout2/util/menu-util.tsx +125 -125
  354. package/src/aldehyde/layout3/components/tabs-layout.tsx +110 -110
  355. package/src/aldehyde/layout3/components/time.tsx +25 -25
  356. package/src/aldehyde/layout3/css/header.less +195 -195
  357. package/src/aldehyde/layout3/css/main.less +161 -161
  358. package/src/aldehyde/layout3/css/sider.less +32 -32
  359. package/src/aldehyde/layout3/css/tabs-layout.less +38 -38
  360. package/src/aldehyde/layout3/header.tsx +187 -187
  361. package/src/aldehyde/layout3/main.tsx +29 -29
  362. package/src/aldehyde/layout3/page.tsx +110 -110
  363. package/src/aldehyde/layout3/sider.tsx +198 -198
  364. package/src/aldehyde/layout4/components/tabs-layout.tsx +110 -110
  365. package/src/aldehyde/layout4/css/header.less +196 -196
  366. package/src/aldehyde/layout4/css/main.less +154 -154
  367. package/src/aldehyde/layout4/css/sider.less +37 -37
  368. package/src/aldehyde/layout4/css/tabs-layout.less +42 -42
  369. package/src/aldehyde/layout4/header.tsx +190 -190
  370. package/src/aldehyde/layout4/main.tsx +29 -29
  371. package/src/aldehyde/layout4/page.tsx +125 -125
  372. package/src/aldehyde/layout4/sider.tsx +201 -201
  373. package/src/aldehyde/layout5/css/header.less +35 -35
  374. package/src/aldehyde/layout5/css/sider.less +18 -18
  375. package/src/aldehyde/layout5/header.tsx +204 -204
  376. package/src/aldehyde/layout5/page.tsx +107 -107
  377. package/src/aldehyde/layout5/sider.tsx +235 -235
  378. package/src/aldehyde/list/calendar/index.less +20 -20
  379. package/src/aldehyde/list/calendar/index.tsx +157 -157
  380. package/src/aldehyde/list/card-list/card-list-item.tsx +112 -112
  381. package/src/aldehyde/list/card-list/index.less +154 -154
  382. package/src/aldehyde/list/card-list/index.tsx +83 -83
  383. package/src/aldehyde/list/gantt/index.less +8 -8
  384. package/src/aldehyde/list/gantt/index.tsx +508 -508
  385. package/src/aldehyde/list/vertical-list/index.less +208 -208
  386. package/src/aldehyde/list/vertical-list/index.tsx +55 -55
  387. package/src/aldehyde/list/vertical-list/item.tsx +136 -136
  388. package/src/aldehyde/locale/LocaleButton.tsx +48 -48
  389. package/src/aldehyde/locale/LocaleProvider.tsx +265 -265
  390. package/src/aldehyde/locale/langMp.ts +45 -45
  391. package/src/aldehyde/locale/translate.ts +80 -80
  392. package/src/aldehyde/locale/useLocale.ts +72 -72
  393. package/src/aldehyde/login/context-setter.tsx +130 -130
  394. package/src/aldehyde/login/index.css +19 -19
  395. package/src/aldehyde/login/login.tsx +255 -255
  396. package/src/aldehyde/login/router-login.tsx +107 -107
  397. package/src/aldehyde/login/vertify/index.css +143 -143
  398. package/src/aldehyde/login/vertify/index.tsx +360 -360
  399. package/src/aldehyde/login/vertify/tool.ts +13 -13
  400. package/src/aldehyde/login2/login-page.tsx +92 -92
  401. package/src/aldehyde/login2/login.tsx +227 -227
  402. package/src/aldehyde/login3/index.less +136 -136
  403. package/src/aldehyde/login3/login-page.tsx +71 -71
  404. package/src/aldehyde/lowcode-components/act-table/index.less +26 -26
  405. package/src/aldehyde/lowcode-components/act-table/index.tsx +139 -139
  406. package/src/aldehyde/lowcode-components/assets/lowcode-constant.tsx +12 -12
  407. package/src/aldehyde/lowcode-components/bar-chart/index.tsx +272 -272
  408. package/src/aldehyde/lowcode-components/base-button/index.less +7 -7
  409. package/src/aldehyde/lowcode-components/base-button/index.tsx +197 -197
  410. package/src/aldehyde/lowcode-components/base-image/index.tsx +220 -220
  411. package/src/aldehyde/lowcode-components/base-map/index.tsx +292 -292
  412. package/src/aldehyde/lowcode-components/base-radio/index.less +23 -23
  413. package/src/aldehyde/lowcode-components/base-radio/index.tsx +157 -157
  414. package/src/aldehyde/lowcode-components/base-table/index.tsx +268 -268
  415. package/src/aldehyde/lowcode-components/base-tabs/index.less +14 -14
  416. package/src/aldehyde/lowcode-components/base-tabs/index.tsx +183 -183
  417. package/src/aldehyde/lowcode-components/base-text/index.tsx +58 -58
  418. package/src/aldehyde/lowcode-components/border/border1/index.tsx +70 -70
  419. package/src/aldehyde/lowcode-components/border/border10/index.less +26 -26
  420. package/src/aldehyde/lowcode-components/border/border10/index.tsx +45 -45
  421. package/src/aldehyde/lowcode-components/border/border11/index.less +17 -17
  422. package/src/aldehyde/lowcode-components/border/border11/index.tsx +232 -232
  423. package/src/aldehyde/lowcode-components/border/border12/index.less +13 -13
  424. package/src/aldehyde/lowcode-components/border/border12/index.tsx +115 -115
  425. package/src/aldehyde/lowcode-components/border/border13/index.less +13 -13
  426. package/src/aldehyde/lowcode-components/border/border13/index.tsx +69 -69
  427. package/src/aldehyde/lowcode-components/border/border2/index.less +17 -17
  428. package/src/aldehyde/lowcode-components/border/border2/index.tsx +51 -51
  429. package/src/aldehyde/lowcode-components/border/border3/index.less +25 -25
  430. package/src/aldehyde/lowcode-components/border/border3/index.tsx +61 -61
  431. package/src/aldehyde/lowcode-components/border/border4/index.less +72 -72
  432. package/src/aldehyde/lowcode-components/border/border4/index.tsx +79 -79
  433. package/src/aldehyde/lowcode-components/border/border5/index.less +35 -35
  434. package/src/aldehyde/lowcode-components/border/border5/index.tsx +75 -75
  435. package/src/aldehyde/lowcode-components/border/border6/index.less +17 -17
  436. package/src/aldehyde/lowcode-components/border/border6/index.tsx +60 -60
  437. package/src/aldehyde/lowcode-components/border/border7/index.less +26 -26
  438. package/src/aldehyde/lowcode-components/border/border7/index.tsx +75 -75
  439. package/src/aldehyde/lowcode-components/border/border8/index.less +13 -13
  440. package/src/aldehyde/lowcode-components/border/border8/index.tsx +84 -84
  441. package/src/aldehyde/lowcode-components/border/border9/index.less +13 -13
  442. package/src/aldehyde/lowcode-components/border/border9/index.tsx +154 -154
  443. package/src/aldehyde/lowcode-components/capsule-bar-chart/index.tsx +290 -290
  444. package/src/aldehyde/lowcode-components/carousel/index.tsx +218 -218
  445. package/src/aldehyde/lowcode-components/circular-progress-chart/index.tsx +263 -263
  446. package/src/aldehyde/lowcode-components/column-3d-chart/index.tsx +442 -442
  447. package/src/aldehyde/lowcode-components/column-chart/index.tsx +297 -297
  448. package/src/aldehyde/lowcode-components/data-number/index.tsx +219 -219
  449. package/src/aldehyde/lowcode-components/data.d.ts +19 -19
  450. package/src/aldehyde/lowcode-components/decoration/decoration1/index.less +7 -7
  451. package/src/aldehyde/lowcode-components/decoration/decoration1/index.tsx +153 -153
  452. package/src/aldehyde/lowcode-components/decoration/decoration10/index.less +5 -5
  453. package/src/aldehyde/lowcode-components/decoration/decoration10/index.tsx +89 -89
  454. package/src/aldehyde/lowcode-components/decoration/decoration11/index.less +5 -5
  455. package/src/aldehyde/lowcode-components/decoration/decoration11/index.tsx +133 -133
  456. package/src/aldehyde/lowcode-components/decoration/decoration2/index.less +6 -6
  457. package/src/aldehyde/lowcode-components/decoration/decoration2/index.tsx +61 -61
  458. package/src/aldehyde/lowcode-components/decoration/decoration3/index.less +7 -7
  459. package/src/aldehyde/lowcode-components/decoration/decoration3/index.tsx +87 -87
  460. package/src/aldehyde/lowcode-components/decoration/decoration4/index.less +29 -29
  461. package/src/aldehyde/lowcode-components/decoration/decoration4/index.tsx +53 -53
  462. package/src/aldehyde/lowcode-components/decoration/decoration5/index.less +3 -3
  463. package/src/aldehyde/lowcode-components/decoration/decoration5/index.tsx +116 -116
  464. package/src/aldehyde/lowcode-components/decoration/decoration6/index.less +7 -7
  465. package/src/aldehyde/lowcode-components/decoration/decoration6/index.tsx +121 -121
  466. package/src/aldehyde/lowcode-components/decoration/decoration7/index.less +4 -4
  467. package/src/aldehyde/lowcode-components/decoration/decoration7/index.tsx +70 -70
  468. package/src/aldehyde/lowcode-components/decoration/decoration8/index.less +14 -14
  469. package/src/aldehyde/lowcode-components/decoration/decoration8/index.tsx +122 -122
  470. package/src/aldehyde/lowcode-components/decoration/decoration9/index.less +4 -4
  471. package/src/aldehyde/lowcode-components/decoration/decoration9/index.tsx +196 -196
  472. package/src/aldehyde/lowcode-components/effectScatter-map/index.tsx +315 -315
  473. package/src/aldehyde/lowcode-components/effectScatter-map-3d/index.tsx +419 -419
  474. package/src/aldehyde/lowcode-components/gauge-chart/index.tsx +254 -254
  475. package/src/aldehyde/lowcode-components/index.ts +130 -130
  476. package/src/aldehyde/lowcode-components/line-bar-chart/index.tsx +304 -304
  477. package/src/aldehyde/lowcode-components/line-chart/index.tsx +294 -294
  478. package/src/aldehyde/lowcode-components/liquid-chart/index.tsx +250 -250
  479. package/src/aldehyde/lowcode-components/lowcode-view/component/assets.ts +478 -478
  480. package/src/aldehyde/lowcode-components/lowcode-view/component/component-controller.ts +153 -153
  481. package/src/aldehyde/lowcode-components/lowcode-view/component/component-definition.ts +23 -23
  482. package/src/aldehyde/lowcode-components/lowcode-view/component/loading.tsx +20 -20
  483. package/src/aldehyde/lowcode-components/lowcode-view/component/util.ts +27 -27
  484. package/src/aldehyde/lowcode-components/lowcode-view/index.less +19 -19
  485. package/src/aldehyde/lowcode-components/lowcode-view/index.tsx +277 -277
  486. package/src/aldehyde/lowcode-components/lowcode-view/interface.ts +189 -189
  487. package/src/aldehyde/lowcode-components/pie-chart/index.tsx +353 -353
  488. package/src/aldehyde/lowcode-components/progress-chart/index.tsx +295 -295
  489. package/src/aldehyde/lowcode-components/radar-chart/index.tsx +322 -322
  490. package/src/aldehyde/lowcode-components/search-form/index.less +25 -25
  491. package/src/aldehyde/lowcode-components/search-form/index.tsx +121 -121
  492. package/src/aldehyde/lowcode-components/stroke-animation/index.tsx +219 -219
  493. package/src/aldehyde/module/block-menu-tree-drawer.tsx +118 -118
  494. package/src/aldehyde/module/criteria-page.tsx1 +175 -175
  495. package/src/aldehyde/module/draggable-modal.tsx +66 -66
  496. package/src/aldehyde/module/dtmpl-edit-card.tsx +477 -477
  497. package/src/aldehyde/module/dtmpl-edit-drawer.tsx +23 -23
  498. package/src/aldehyde/module/dtmpl-edit-modal.tsx +25 -25
  499. package/src/aldehyde/module/dtmpl-edit-page.tsx +597 -597
  500. package/src/aldehyde/module/dtmpl-editor.tsx +165 -165
  501. package/src/aldehyde/module/dtmpl-view-card.tsx +64 -64
  502. package/src/aldehyde/module/dtmpl-view-drawer.tsx +71 -71
  503. package/src/aldehyde/module/dtmpl-view-modal.tsx +56 -56
  504. package/src/aldehyde/module/embed-dtmpl-edit-page.tsx +137 -137
  505. package/src/aldehyde/module/index.less +4 -4
  506. package/src/aldehyde/module/ltmpl-drawer.tsx +60 -60
  507. package/src/aldehyde/module/ltmpl-modal.tsx +63 -63
  508. package/src/aldehyde/module/ltmpl-table.tsx +379 -379
  509. package/src/aldehyde/module/ttmpl-tree.tsx +47 -47
  510. package/src/aldehyde/routable/dtmpl-route.tsx +173 -173
  511. package/src/aldehyde/routable/import-route.tsx +35 -35
  512. package/src/aldehyde/routable/index.less +25 -25
  513. package/src/aldehyde/routable/ltmpl-route.tsx +539 -539
  514. package/src/aldehyde/routable/splitview-ltmpl-route.tsx +377 -377
  515. package/src/aldehyde/routable/ttmpl-route.tsx +93 -93
  516. package/src/aldehyde/routable/withroute.tsx +36 -36
  517. package/src/aldehyde/sso-Login/index.tsx +73 -73
  518. package/src/aldehyde/sso-Login/service/index.js +16 -16
  519. package/src/aldehyde/sso-Login/service/login.js +75 -75
  520. package/src/aldehyde/table/act-table.tsx +1844 -1844
  521. package/src/aldehyde/table/column/column-builder.tsx +876 -876
  522. package/src/aldehyde/table/column/column-selector.tsx +130 -130
  523. package/src/aldehyde/table/column/index.less +85 -85
  524. package/src/aldehyde/table/column/summary-builder.tsx +712 -712
  525. package/src/aldehyde/table/column/theme-color-getter.tsx +25 -25
  526. package/src/aldehyde/table/control-table-x-axis-wrapper.tsx +80 -80
  527. package/src/aldehyde/table/index.css +211 -211
  528. package/src/aldehyde/table/l2-act-table.tsx +91 -91
  529. package/src/aldehyde/table/modal-select-table.tsx +308 -308
  530. package/src/aldehyde/table/page-chart.less +9 -9
  531. package/src/aldehyde/table/page-chart.tsx +196 -192
  532. package/src/aldehyde/table/page-config-button.tsx +203 -203
  533. package/src/aldehyde/table/pagination.css +14 -14
  534. package/src/aldehyde/table/pagination.tsx +81 -81
  535. package/src/aldehyde/table/query-table.tsx +668 -668
  536. package/src/aldehyde/table/relation-table.tsx +1078 -1078
  537. package/src/aldehyde/table/report-table.tsx +125 -125
  538. package/src/aldehyde/table/resizable-table.tsx +97 -97
  539. package/src/aldehyde/table/row-table.tsx +22 -22
  540. package/src/aldehyde/table/select-table.tsx +559 -559
  541. package/src/aldehyde/table/selected-rows-card.tsx +78 -78
  542. package/src/aldehyde/table/stat/restat.tsx +122 -122
  543. package/src/aldehyde/table/table-util.tsx +25 -25
  544. package/src/aldehyde/tmpl/control-type-supportor.tsx +154 -154
  545. package/src/aldehyde/tmpl/hc-data-source.tsx +574 -574
  546. package/src/aldehyde/tmpl/hcservice-v3.tsx +1590 -1590
  547. package/src/aldehyde/tmpl/interface.tsx +936 -936
  548. package/src/aldehyde/tmpl/model-struc-v3.tsx +111 -111
  549. package/src/aldehyde/tmpl/superagent.js +146 -146
  550. package/src/aldehyde/tmpl/tmpl-config-analysis.tsx +585 -585
  551. package/src/aldehyde/tmpl/web-socket.ts +366 -366
  552. package/src/aldehyde/tree/act-tree.tsx +217 -217
  553. package/src/aldehyde/tree/block-menu-auth-tree.tsx +189 -189
  554. package/src/aldehyde/tree/index.css +22 -22
  555. package/src/aldehyde/tree/navigation-tree.tsx +39 -39
  556. package/src/aldehyde/tree/tmpl-tree.tsx +751 -751
  557. package/src/aldehyde/tree/tree-node.tsx +73 -73
  558. package/src/aldehyde/tree/tree-utils.tsx +317 -317
  559. package/src/aldehyde/units/EncryptUtils.js +37 -37
  560. package/src/aldehyde/units/image.d.ts +7 -7
  561. package/src/aldehyde/units/index.tsx +1367 -1367
  562. package/src/aldehyde/units/storage.js +2 -2
  563. package/src/aldehyde/utils/dsu.ts +27 -27
  564. package/src/aldehyde/welcome/HCWelcome.js +404 -404
  565. package/src/aldehyde/welcome/HCWelcome1.js +259 -259
  566. package/src/aldehyde/welcome/components/menu-card.less +96 -96
  567. package/src/aldehyde/welcome/components/menu-card.tsx +70 -70
  568. package/src/aldehyde/welcome/components/page-card.less +49 -49
  569. package/src/aldehyde/welcome/components/page-card.tsx +97 -97
  570. package/src/aldehyde/welcome/components/quick-entrance.less +120 -120
  571. package/src/aldehyde/welcome/components/quick-entrance.tsx +80 -80
  572. package/src/aldehyde/welcome/components/user-menus.less +192 -192
  573. package/src/aldehyde/welcome/components/user-menus.tsx +279 -279
  574. package/src/aldehyde/welcome/components/workbench.less +118 -118
  575. package/src/aldehyde/welcome/components/workbench.tsx +146 -146
  576. package/src/aldehyde/welcome/index.css +13 -13
@@ -1,360 +1,360 @@
1
- import React, { useRef, useState, useEffect, ReactNode, memo } from "react";
2
- import { getRandomNumberByRange, sum, square } from "./tool";
3
- import "./index.css";
4
- import { useLocale } from "../../locale/useLocale";
5
-
6
- interface VertifyType {
7
- spliced: boolean;
8
- verified: boolean; // 简单验证拖动轨迹,为零时表示Y轴上下没有波动,可能非人为操作
9
- left: number; // 滑块的移动位置
10
- destX: number; // 滑块的目标位置
11
- }
12
-
13
- interface IVertifyProp {
14
- /**
15
- * @description canvas宽度
16
- * @default 320
17
- */
18
- width?: number;
19
- /**
20
- * @description canvas高度
21
- * @default 160
22
- */
23
- height?: number;
24
- /**
25
- * @description 滑块边长
26
- * @default 42
27
- */
28
- l?: number;
29
- /**
30
- * @description 滑块半径
31
- * @default 9
32
- */
33
- r?: number;
34
- /**
35
- * @description 是否可见
36
- * @default true
37
- */
38
- visible?: boolean;
39
- /**
40
- * @description 滑块文本
41
- * @default 向右滑动填充拼图
42
- */
43
- text?: string | ReactNode;
44
- /**
45
- * @description 刷新按钮icon, 为icon的url地址
46
- * @default -
47
- */
48
- refreshIcon?: string;
49
- /**
50
- * @description 用于获取随机图片的url地址
51
- * @default https://picsum.photos/${id}/${width}/${height}, 具体参考https://picsum.photos/, 只需要实现类似接口即可
52
- */
53
- imgUrl?: string;
54
- /**
55
- * @description 拖拽滑块时的回调, 参数为当前滑块拖拽的距离
56
- * @default (l: number):void => {}
57
- */
58
- onDraw?: (l: number) => {};
59
- /**
60
- * @description 用户的自定义验证逻辑
61
- * @default (arg: VertifyType) => VertifyType
62
- */
63
- onCustomVertify?: (arg: VertifyType) => VertifyType;
64
- /**
65
- * @description 验证成功回调
66
- * @default ():void => {}
67
- */
68
- onSuccess?: VoidFunction;
69
- /**
70
- * @description 验证失败回调
71
- * @default ():void => {}
72
- */
73
- onFail?: VoidFunction;
74
- /**
75
- * @description 刷新时回调
76
- * @default ():void => {}
77
- */
78
- onRefresh?: VoidFunction;
79
- }
80
-
81
- export default memo(
82
- ({
83
- width = 320,
84
- height = 160,
85
- l = 42,
86
- r = 9,
87
- imgUrl,
88
- text,
89
- refreshIcon = "http://cdn.dooring.cn/dr/icon12.png",
90
- visible = true,
91
- onDraw,
92
- onCustomVertify,
93
- onSuccess,
94
- onFail,
95
- onRefresh,
96
- }: IVertifyProp) => {
97
- const { translate } = useLocale();
98
-
99
- const [isLoading, setLoading] = useState(false);
100
- const [sliderLeft, setSliderLeft] = useState(0);
101
- const [sliderClass, setSliderClass] = useState("sliderContainer");
102
- const [textTip, setTextTip] = useState(text);
103
- const canvasRef = useRef<any>(null);
104
- const blockRef = useRef<any>(null);
105
- const imgRef = useRef<any>(null);
106
- const isMouseDownRef = useRef<boolean>(false);
107
- const trailRef = useRef<number[]>([]);
108
- const originXRef = useRef<number>(0);
109
- const originYRef = useRef<number>(0);
110
- const xRef = useRef<number>(0);
111
- const yRef = useRef<number>(0);
112
- const PI = Math.PI;
113
- const L = l + r * 2 + 3; // 滑块实际边长
114
-
115
- const drawPath = (
116
- ctx: any,
117
- x: number,
118
- y: number,
119
- operation: "fill" | "clip"
120
- ) => {
121
- ctx.beginPath();
122
- ctx.moveTo(x, y);
123
- ctx.arc(x + l / 2, y - r + 2, r, 0.72 * PI, 2.26 * PI);
124
- ctx.lineTo(x + l, y);
125
- ctx.arc(x + l + r - 2, y + l / 2, r, 1.21 * PI, 2.78 * PI);
126
- ctx.lineTo(x + l, y + l);
127
- ctx.lineTo(x, y + l);
128
- ctx.arc(x + r - 2, y + l / 2, r + 0.4, 2.76 * PI, 1.24 * PI, true);
129
- ctx.lineTo(x, y);
130
- ctx.lineWidth = 2;
131
- ctx.fillStyle = "rgba(255, 255, 255, 0.7)";
132
- ctx.strokeStyle = "rgba(255, 255, 255, 0.7)";
133
- ctx.stroke();
134
- ctx.globalCompositeOperation = "destination-over";
135
- operation === "fill" ? ctx.fill() : ctx.clip();
136
- };
137
-
138
- const getRandomImgSrc = () => {
139
- return (
140
- imgUrl ||
141
- `https://picsum.photos/id/${getRandomNumberByRange(
142
- 0,
143
- 1084
144
- )}/${width}/${height}`
145
- );
146
- };
147
-
148
- const createImg = (onload: VoidFunction) => {
149
- const img = new Image();
150
- img.crossOrigin = "Anonymous";
151
- img.onload = onload;
152
- img.onerror = () => {
153
- (img as any).setSrc(getRandomImgSrc()); // 图片加载失败的时候重新加载其他图片
154
- };
155
-
156
- (img as any).setSrc = (src: string) => {
157
- const isIE = window.navigator.userAgent.indexOf("Trident") > -1;
158
- if (isIE) {
159
- // IE浏览器无法通过img.crossOrigin跨域,使用ajax获取图片blob然后转为dataURL显示
160
- const xhr = new XMLHttpRequest();
161
- xhr.onloadend = function(e: any) {
162
- const file = new FileReader(); // FileReader仅支持IE10+
163
- file.readAsDataURL(e.target.response);
164
- file.onloadend = function(e) {
165
- img.src = e?.target?.result as string;
166
- };
167
- };
168
- xhr.open("GET", src);
169
- xhr.responseType = "blob";
170
- xhr.send();
171
- } else img.src = src;
172
- };
173
-
174
- (img as any).setSrc(getRandomImgSrc());
175
- return img;
176
- };
177
-
178
- const draw = (img: HTMLImageElement) => {
179
- const canvasCtx = canvasRef.current.getContext("2d");
180
- const blockCtx = blockRef.current.getContext("2d");
181
- // 随机位置创建拼图形状
182
- xRef.current = getRandomNumberByRange(L + 10, width - (L + 10));
183
- yRef.current = getRandomNumberByRange(10 + r * 2, height - (L + 10));
184
- drawPath(canvasCtx, xRef.current, yRef.current, "fill");
185
- drawPath(blockCtx, xRef.current, yRef.current, "clip");
186
-
187
- // 画入图片
188
- canvasCtx.drawImage(img, 0, 0, width, height);
189
- blockCtx.drawImage(img, 0, 0, width, height);
190
-
191
- // 提取滑块并放到最左边
192
- const y1 = yRef.current - r * 2 - 1;
193
- const ImageData = blockCtx.getImageData(xRef.current - 3, y1, L, L);
194
- blockRef.current.width = L;
195
- blockCtx.putImageData(ImageData, 0, y1);
196
- };
197
-
198
- const initImg = () => {
199
- setLoading(true);
200
- const img = createImg(() => {
201
- setLoading(false);
202
- draw(img);
203
- });
204
- imgRef.current = img;
205
- };
206
-
207
- const reset = () => {
208
- const canvasCtx = canvasRef.current.getContext("2d");
209
- const blockCtx = blockRef.current.getContext("2d");
210
- // 重置样式
211
- setSliderLeft(0);
212
- setSliderClass("sliderContainer");
213
- blockRef.current.width = width;
214
- blockRef.current.style.left = 0 + "px";
215
-
216
- // 清空画布
217
- canvasCtx.clearRect(0, 0, width, height);
218
- blockCtx.clearRect(0, 0, width, height);
219
-
220
- // 重新加载图片
221
- setLoading(true);
222
- imgRef.current.setSrc(getRandomImgSrc());
223
- };
224
-
225
- const handleRefresh = () => {
226
- reset();
227
- typeof onRefresh === "function" && onRefresh();
228
- };
229
-
230
- const verify = () => {
231
- const arr = trailRef.current; // 拖动时y轴的移动距离
232
- const average = arr.reduce(sum) / arr.length;
233
- const deviations = arr.map((x) => x - average);
234
- const stddev = Math.sqrt(deviations.map(square).reduce(sum) / arr.length);
235
- const left = parseInt(blockRef.current.style.left);
236
- return {
237
- spliced: Math.abs(left - xRef.current) < 10,
238
- verified: stddev !== 0, // 简单验证拖动轨迹,为零时表示Y轴上下没有波动,可能非人为操作
239
- left,
240
- destX: xRef.current,
241
- };
242
- };
243
-
244
- const handleDragStart = function(e: any) {
245
- originXRef.current = e.clientX || e.touches[0].clientX;
246
- originYRef.current = e.clientY || e.touches[0].clientY;
247
- isMouseDownRef.current = true;
248
- };
249
-
250
- const handleDragMove = (e: any) => {
251
- if (!isMouseDownRef.current) return false;
252
- e.preventDefault();
253
- const eventX = e.clientX || e.touches[0].clientX;
254
- const eventY = e.clientY || e.touches[0].clientY;
255
- const moveX = eventX - originXRef.current;
256
- const moveY = eventY - originYRef.current;
257
- if (moveX < 0 || moveX + 38 >= width) return false;
258
- setSliderLeft(moveX);
259
- const blockLeft = ((width - 40 - 20) / (width - 40)) * moveX;
260
- blockRef.current.style.left = blockLeft + "px";
261
-
262
- setSliderClass("sliderContainer sliderContainer_active");
263
- trailRef.current.push(moveY);
264
- onDraw && onDraw(blockLeft);
265
- };
266
-
267
- const handleDragEnd = (e: any) => {
268
- if (!isMouseDownRef.current) return false;
269
- isMouseDownRef.current = false;
270
- const eventX = e.clientX || e.changedTouches[0].clientX;
271
- if (eventX === originXRef.current) return false;
272
- setSliderClass("sliderContainer");
273
- const { spliced, verified } = onCustomVertify
274
- ? onCustomVertify(verify())
275
- : verify();
276
- if (spliced) {
277
- if (verified) {
278
- setSliderClass("sliderContainer sliderContainer_success");
279
- typeof onSuccess === "function" && onSuccess();
280
- } else {
281
- setSliderClass("sliderContainer sliderContainer_fail");
282
- setTextTip(translate("${请再试一次}"));
283
- reset();
284
- }
285
- } else {
286
- setSliderClass("sliderContainer sliderContainer_fail");
287
- typeof onFail === "function" && onFail();
288
- setTimeout(reset.bind(this), 1000);
289
- }
290
- };
291
-
292
- useEffect(() => {
293
- if (visible) {
294
- imgRef.current ? reset() : initImg();
295
- }
296
- }, [visible]);
297
-
298
- return (
299
- <div
300
- className="vertifyWrap"
301
- style={{
302
- width: width + "px",
303
- margin: "0 auto",
304
- display: visible ? "" : "none",
305
- background: "white",
306
- }}
307
- onMouseMove={handleDragMove}
308
- onMouseUp={handleDragEnd}
309
- onTouchMove={handleDragMove}
310
- onTouchEnd={handleDragEnd}
311
- >
312
- <div className="canvasArea">
313
- <canvas ref={canvasRef} width={width} height={height}></canvas>
314
- <canvas
315
- ref={blockRef}
316
- className="block"
317
- width={width}
318
- height={height}
319
- onMouseDown={handleDragStart}
320
- onTouchStart={handleDragStart}
321
- ></canvas>
322
- </div>
323
- <div
324
- className={sliderClass}
325
- style={{
326
- pointerEvents: isLoading ? "none" : "auto",
327
- width: width + "px",
328
- }}
329
- >
330
- <div className="sliderMask" style={{ width: sliderLeft + "px" }}>
331
- <div
332
- className="slider"
333
- style={{ left: sliderLeft + "px" }}
334
- onMouseDown={handleDragStart}
335
- onTouchStart={handleDragStart}
336
- >
337
- <div className="sliderIcon">&rarr;</div>
338
- </div>
339
- </div>
340
- <div className="sliderText">{textTip}</div>
341
- </div>
342
- <div
343
- className="refreshIcon"
344
- onClick={handleRefresh}
345
- style={{ backgroundImage: `url(${refreshIcon})` }}
346
- ></div>
347
- <div
348
- className="loadingContainer"
349
- style={{
350
- width: width + "px",
351
- height: height + "px",
352
- display: isLoading ? "" : "none",
353
- }}
354
- >
355
- <div className="loadingIcon"></div>
356
- </div>
357
- </div>
358
- );
359
- }
360
- );
1
+ import React, { useRef, useState, useEffect, ReactNode, memo } from "react";
2
+ import { getRandomNumberByRange, sum, square } from "./tool";
3
+ import "./index.css";
4
+ import { useLocale } from "../../locale/useLocale";
5
+
6
+ interface VertifyType {
7
+ spliced: boolean;
8
+ verified: boolean; // 简单验证拖动轨迹,为零时表示Y轴上下没有波动,可能非人为操作
9
+ left: number; // 滑块的移动位置
10
+ destX: number; // 滑块的目标位置
11
+ }
12
+
13
+ interface IVertifyProp {
14
+ /**
15
+ * @description canvas宽度
16
+ * @default 320
17
+ */
18
+ width?: number;
19
+ /**
20
+ * @description canvas高度
21
+ * @default 160
22
+ */
23
+ height?: number;
24
+ /**
25
+ * @description 滑块边长
26
+ * @default 42
27
+ */
28
+ l?: number;
29
+ /**
30
+ * @description 滑块半径
31
+ * @default 9
32
+ */
33
+ r?: number;
34
+ /**
35
+ * @description 是否可见
36
+ * @default true
37
+ */
38
+ visible?: boolean;
39
+ /**
40
+ * @description 滑块文本
41
+ * @default 向右滑动填充拼图
42
+ */
43
+ text?: string | ReactNode;
44
+ /**
45
+ * @description 刷新按钮icon, 为icon的url地址
46
+ * @default -
47
+ */
48
+ refreshIcon?: string;
49
+ /**
50
+ * @description 用于获取随机图片的url地址
51
+ * @default https://picsum.photos/${id}/${width}/${height}, 具体参考https://picsum.photos/, 只需要实现类似接口即可
52
+ */
53
+ imgUrl?: string;
54
+ /**
55
+ * @description 拖拽滑块时的回调, 参数为当前滑块拖拽的距离
56
+ * @default (l: number):void => {}
57
+ */
58
+ onDraw?: (l: number) => {};
59
+ /**
60
+ * @description 用户的自定义验证逻辑
61
+ * @default (arg: VertifyType) => VertifyType
62
+ */
63
+ onCustomVertify?: (arg: VertifyType) => VertifyType;
64
+ /**
65
+ * @description 验证成功回调
66
+ * @default ():void => {}
67
+ */
68
+ onSuccess?: VoidFunction;
69
+ /**
70
+ * @description 验证失败回调
71
+ * @default ():void => {}
72
+ */
73
+ onFail?: VoidFunction;
74
+ /**
75
+ * @description 刷新时回调
76
+ * @default ():void => {}
77
+ */
78
+ onRefresh?: VoidFunction;
79
+ }
80
+
81
+ export default memo(
82
+ ({
83
+ width = 320,
84
+ height = 160,
85
+ l = 42,
86
+ r = 9,
87
+ imgUrl,
88
+ text,
89
+ refreshIcon = "http://cdn.dooring.cn/dr/icon12.png",
90
+ visible = true,
91
+ onDraw,
92
+ onCustomVertify,
93
+ onSuccess,
94
+ onFail,
95
+ onRefresh,
96
+ }: IVertifyProp) => {
97
+ const { translate } = useLocale();
98
+
99
+ const [isLoading, setLoading] = useState(false);
100
+ const [sliderLeft, setSliderLeft] = useState(0);
101
+ const [sliderClass, setSliderClass] = useState("sliderContainer");
102
+ const [textTip, setTextTip] = useState(text);
103
+ const canvasRef = useRef<any>(null);
104
+ const blockRef = useRef<any>(null);
105
+ const imgRef = useRef<any>(null);
106
+ const isMouseDownRef = useRef<boolean>(false);
107
+ const trailRef = useRef<number[]>([]);
108
+ const originXRef = useRef<number>(0);
109
+ const originYRef = useRef<number>(0);
110
+ const xRef = useRef<number>(0);
111
+ const yRef = useRef<number>(0);
112
+ const PI = Math.PI;
113
+ const L = l + r * 2 + 3; // 滑块实际边长
114
+
115
+ const drawPath = (
116
+ ctx: any,
117
+ x: number,
118
+ y: number,
119
+ operation: "fill" | "clip"
120
+ ) => {
121
+ ctx.beginPath();
122
+ ctx.moveTo(x, y);
123
+ ctx.arc(x + l / 2, y - r + 2, r, 0.72 * PI, 2.26 * PI);
124
+ ctx.lineTo(x + l, y);
125
+ ctx.arc(x + l + r - 2, y + l / 2, r, 1.21 * PI, 2.78 * PI);
126
+ ctx.lineTo(x + l, y + l);
127
+ ctx.lineTo(x, y + l);
128
+ ctx.arc(x + r - 2, y + l / 2, r + 0.4, 2.76 * PI, 1.24 * PI, true);
129
+ ctx.lineTo(x, y);
130
+ ctx.lineWidth = 2;
131
+ ctx.fillStyle = "rgba(255, 255, 255, 0.7)";
132
+ ctx.strokeStyle = "rgba(255, 255, 255, 0.7)";
133
+ ctx.stroke();
134
+ ctx.globalCompositeOperation = "destination-over";
135
+ operation === "fill" ? ctx.fill() : ctx.clip();
136
+ };
137
+
138
+ const getRandomImgSrc = () => {
139
+ return (
140
+ imgUrl ||
141
+ `https://picsum.photos/id/${getRandomNumberByRange(
142
+ 0,
143
+ 1084
144
+ )}/${width}/${height}`
145
+ );
146
+ };
147
+
148
+ const createImg = (onload: VoidFunction) => {
149
+ const img = new Image();
150
+ img.crossOrigin = "Anonymous";
151
+ img.onload = onload;
152
+ img.onerror = () => {
153
+ (img as any).setSrc(getRandomImgSrc()); // 图片加载失败的时候重新加载其他图片
154
+ };
155
+
156
+ (img as any).setSrc = (src: string) => {
157
+ const isIE = window.navigator.userAgent.indexOf("Trident") > -1;
158
+ if (isIE) {
159
+ // IE浏览器无法通过img.crossOrigin跨域,使用ajax获取图片blob然后转为dataURL显示
160
+ const xhr = new XMLHttpRequest();
161
+ xhr.onloadend = function(e: any) {
162
+ const file = new FileReader(); // FileReader仅支持IE10+
163
+ file.readAsDataURL(e.target.response);
164
+ file.onloadend = function(e) {
165
+ img.src = e?.target?.result as string;
166
+ };
167
+ };
168
+ xhr.open("GET", src);
169
+ xhr.responseType = "blob";
170
+ xhr.send();
171
+ } else img.src = src;
172
+ };
173
+
174
+ (img as any).setSrc(getRandomImgSrc());
175
+ return img;
176
+ };
177
+
178
+ const draw = (img: HTMLImageElement) => {
179
+ const canvasCtx = canvasRef.current.getContext("2d");
180
+ const blockCtx = blockRef.current.getContext("2d");
181
+ // 随机位置创建拼图形状
182
+ xRef.current = getRandomNumberByRange(L + 10, width - (L + 10));
183
+ yRef.current = getRandomNumberByRange(10 + r * 2, height - (L + 10));
184
+ drawPath(canvasCtx, xRef.current, yRef.current, "fill");
185
+ drawPath(blockCtx, xRef.current, yRef.current, "clip");
186
+
187
+ // 画入图片
188
+ canvasCtx.drawImage(img, 0, 0, width, height);
189
+ blockCtx.drawImage(img, 0, 0, width, height);
190
+
191
+ // 提取滑块并放到最左边
192
+ const y1 = yRef.current - r * 2 - 1;
193
+ const ImageData = blockCtx.getImageData(xRef.current - 3, y1, L, L);
194
+ blockRef.current.width = L;
195
+ blockCtx.putImageData(ImageData, 0, y1);
196
+ };
197
+
198
+ const initImg = () => {
199
+ setLoading(true);
200
+ const img = createImg(() => {
201
+ setLoading(false);
202
+ draw(img);
203
+ });
204
+ imgRef.current = img;
205
+ };
206
+
207
+ const reset = () => {
208
+ const canvasCtx = canvasRef.current.getContext("2d");
209
+ const blockCtx = blockRef.current.getContext("2d");
210
+ // 重置样式
211
+ setSliderLeft(0);
212
+ setSliderClass("sliderContainer");
213
+ blockRef.current.width = width;
214
+ blockRef.current.style.left = 0 + "px";
215
+
216
+ // 清空画布
217
+ canvasCtx.clearRect(0, 0, width, height);
218
+ blockCtx.clearRect(0, 0, width, height);
219
+
220
+ // 重新加载图片
221
+ setLoading(true);
222
+ imgRef.current.setSrc(getRandomImgSrc());
223
+ };
224
+
225
+ const handleRefresh = () => {
226
+ reset();
227
+ typeof onRefresh === "function" && onRefresh();
228
+ };
229
+
230
+ const verify = () => {
231
+ const arr = trailRef.current; // 拖动时y轴的移动距离
232
+ const average = arr.reduce(sum) / arr.length;
233
+ const deviations = arr.map((x) => x - average);
234
+ const stddev = Math.sqrt(deviations.map(square).reduce(sum) / arr.length);
235
+ const left = parseInt(blockRef.current.style.left);
236
+ return {
237
+ spliced: Math.abs(left - xRef.current) < 10,
238
+ verified: stddev !== 0, // 简单验证拖动轨迹,为零时表示Y轴上下没有波动,可能非人为操作
239
+ left,
240
+ destX: xRef.current,
241
+ };
242
+ };
243
+
244
+ const handleDragStart = function(e: any) {
245
+ originXRef.current = e.clientX || e.touches[0].clientX;
246
+ originYRef.current = e.clientY || e.touches[0].clientY;
247
+ isMouseDownRef.current = true;
248
+ };
249
+
250
+ const handleDragMove = (e: any) => {
251
+ if (!isMouseDownRef.current) return false;
252
+ e.preventDefault();
253
+ const eventX = e.clientX || e.touches[0].clientX;
254
+ const eventY = e.clientY || e.touches[0].clientY;
255
+ const moveX = eventX - originXRef.current;
256
+ const moveY = eventY - originYRef.current;
257
+ if (moveX < 0 || moveX + 38 >= width) return false;
258
+ setSliderLeft(moveX);
259
+ const blockLeft = ((width - 40 - 20) / (width - 40)) * moveX;
260
+ blockRef.current.style.left = blockLeft + "px";
261
+
262
+ setSliderClass("sliderContainer sliderContainer_active");
263
+ trailRef.current.push(moveY);
264
+ onDraw && onDraw(blockLeft);
265
+ };
266
+
267
+ const handleDragEnd = (e: any) => {
268
+ if (!isMouseDownRef.current) return false;
269
+ isMouseDownRef.current = false;
270
+ const eventX = e.clientX || e.changedTouches[0].clientX;
271
+ if (eventX === originXRef.current) return false;
272
+ setSliderClass("sliderContainer");
273
+ const { spliced, verified } = onCustomVertify
274
+ ? onCustomVertify(verify())
275
+ : verify();
276
+ if (spliced) {
277
+ if (verified) {
278
+ setSliderClass("sliderContainer sliderContainer_success");
279
+ typeof onSuccess === "function" && onSuccess();
280
+ } else {
281
+ setSliderClass("sliderContainer sliderContainer_fail");
282
+ setTextTip(translate("${请再试一次}"));
283
+ reset();
284
+ }
285
+ } else {
286
+ setSliderClass("sliderContainer sliderContainer_fail");
287
+ typeof onFail === "function" && onFail();
288
+ setTimeout(reset.bind(this), 1000);
289
+ }
290
+ };
291
+
292
+ useEffect(() => {
293
+ if (visible) {
294
+ imgRef.current ? reset() : initImg();
295
+ }
296
+ }, [visible]);
297
+
298
+ return (
299
+ <div
300
+ className="vertifyWrap"
301
+ style={{
302
+ width: width + "px",
303
+ margin: "0 auto",
304
+ display: visible ? "" : "none",
305
+ background: "white",
306
+ }}
307
+ onMouseMove={handleDragMove}
308
+ onMouseUp={handleDragEnd}
309
+ onTouchMove={handleDragMove}
310
+ onTouchEnd={handleDragEnd}
311
+ >
312
+ <div className="canvasArea">
313
+ <canvas ref={canvasRef} width={width} height={height}></canvas>
314
+ <canvas
315
+ ref={blockRef}
316
+ className="block"
317
+ width={width}
318
+ height={height}
319
+ onMouseDown={handleDragStart}
320
+ onTouchStart={handleDragStart}
321
+ ></canvas>
322
+ </div>
323
+ <div
324
+ className={sliderClass}
325
+ style={{
326
+ pointerEvents: isLoading ? "none" : "auto",
327
+ width: width + "px",
328
+ }}
329
+ >
330
+ <div className="sliderMask" style={{ width: sliderLeft + "px" }}>
331
+ <div
332
+ className="slider"
333
+ style={{ left: sliderLeft + "px" }}
334
+ onMouseDown={handleDragStart}
335
+ onTouchStart={handleDragStart}
336
+ >
337
+ <div className="sliderIcon">&rarr;</div>
338
+ </div>
339
+ </div>
340
+ <div className="sliderText">{textTip}</div>
341
+ </div>
342
+ <div
343
+ className="refreshIcon"
344
+ onClick={handleRefresh}
345
+ style={{ backgroundImage: `url(${refreshIcon})` }}
346
+ ></div>
347
+ <div
348
+ className="loadingContainer"
349
+ style={{
350
+ width: width + "px",
351
+ height: height + "px",
352
+ display: isLoading ? "" : "none",
353
+ }}
354
+ >
355
+ <div className="loadingIcon"></div>
356
+ </div>
357
+ </div>
358
+ );
359
+ }
360
+ );