@cloudbase/weda-ui 3.4.8 → 3.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. package/README.md +65 -30
  2. package/dist/configs/components/carousel.json +12 -2
  3. package/dist/configs/components/chart/bar.json +2 -2
  4. package/dist/configs/components/chart/line.js +2 -2
  5. package/dist/configs/components/chart/pie.json +2 -2
  6. package/dist/configs/components/chart/statisticsCard.json +1 -1
  7. package/dist/configs/components/common/form-input-required.js +176 -0
  8. package/dist/configs/components/container.js +1 -1
  9. package/dist/configs/components/customer-service.js +262 -0
  10. package/dist/configs/components/dataView.js +10 -66
  11. package/dist/configs/components/flowgraph.json +22 -0
  12. package/dist/configs/components/form/departTreeSelect.json +10 -0
  13. package/dist/configs/components/form-checkbox.js +261 -0
  14. package/dist/configs/components/form-date.js +268 -0
  15. package/dist/configs/components/form-depart-tree-select.js +237 -0
  16. package/dist/configs/components/form-email.js +258 -0
  17. package/dist/configs/components/form-image-uploader.js +326 -0
  18. package/dist/configs/components/form-input.js +477 -0
  19. package/dist/configs/components/form-location.js +328 -0
  20. package/dist/configs/components/form-multi-region.js +202 -0
  21. package/dist/configs/components/form-phone.js +250 -0
  22. package/dist/configs/components/form-radio.js +261 -0
  23. package/dist/configs/components/form-region.js +198 -0
  24. package/dist/configs/components/form-rich-text.js +212 -0
  25. package/dist/configs/components/form-select.js +368 -0
  26. package/dist/configs/components/form-switch.js +153 -0
  27. package/dist/configs/components/form-text-area.js +241 -0
  28. package/dist/configs/components/form-time.js +221 -0
  29. package/dist/configs/components/form-upload-file.js +269 -0
  30. package/dist/configs/components/form-url.js +259 -0
  31. package/dist/configs/components/form-user-tree-select.js +315 -0
  32. package/dist/configs/components/formdetail.json +8 -0
  33. package/dist/configs/components/grid/col.js +6 -0
  34. package/dist/configs/components/listView.js +34 -92
  35. package/dist/configs/components/modal.js +2 -3
  36. package/dist/configs/components/navigationBar.json +2 -4
  37. package/dist/configs/components/pagelayout.json +1 -1
  38. package/dist/configs/components/qr_code.js +117 -0
  39. package/dist/configs/components/repeater.js +3 -2
  40. package/dist/configs/components/scrollVeiw.json +3 -1
  41. package/dist/configs/components/table.json +14 -4
  42. package/dist/configs/components/tabs.js +1 -1
  43. package/dist/configs/components/wd-bubble.js +2 -2
  44. package/dist/configs/components/wd-button.js +5 -5
  45. package/dist/configs/components/wd-divider.js +3 -3
  46. package/dist/configs/components/wd-form-detail.js +229 -0
  47. package/dist/configs/components/wd-form.js +394 -0
  48. package/dist/configs/components/wd-icon.js +4 -4
  49. package/dist/configs/components/wd-image.js +5 -0
  50. package/dist/configs/components/wd-link.js +5 -5
  51. package/dist/configs/components/wd-table.js +1110 -24
  52. package/dist/configs/components/wd-text.js +4 -3
  53. package/dist/configs/components/web-view.js +152 -0
  54. package/dist/configs/components/wedaVideo.json +4 -2
  55. package/dist/configs/components/wxOpenApi/share.js +1 -0
  56. package/dist/configs/index.js +50 -0
  57. package/dist/configs/type-utils/index.js +0 -1
  58. package/dist/docs/common/componentList.js +8 -37
  59. package/dist/docs/common/components/classes-view.js +2 -32
  60. package/dist/docs/common/components/event-view.js +2 -43
  61. package/dist/docs/common/components/json-schema-view.js +4 -8
  62. package/dist/docs/common/components/methods-view.js +2 -30
  63. package/dist/docs/common/components/properties-view.js +4 -43
  64. package/dist/docs/common/tableView.js +15 -94
  65. package/dist/enum/index.js +53 -0
  66. package/dist/setupTests.js +4 -0
  67. package/dist/style/index.scss +1 -1
  68. package/dist/web/actions/showModal/index.js +15 -21
  69. package/dist/web/components/button/index.css +1 -0
  70. package/dist/web/components/button/index.js +3 -6
  71. package/dist/web/components/calendar/index.js +19 -45
  72. package/dist/web/components/carousel/index.js +35 -45
  73. package/dist/web/components/chart/bar/index.js +6 -7
  74. package/dist/web/components/chart/bar/index.old.js +3 -2
  75. package/dist/web/components/chart/common/Chart.js +3 -2
  76. package/dist/web/components/chart/common/chart-custom-connector.js +3 -7
  77. package/dist/web/components/chart/common/core/eChartLine.js +12 -1
  78. package/dist/web/components/chart/common/data-transform.js +13 -9
  79. package/dist/web/components/chart/line/index.js +6 -7
  80. package/dist/web/components/chart/line/index.old.js +5 -3
  81. package/dist/web/components/chart/pie/index.js +6 -7
  82. package/dist/web/components/chart/pie/index.old.js +3 -2
  83. package/dist/web/components/chart/statisticsCard/index.js +3 -9
  84. package/dist/web/components/common/error-boundary.js +13 -15
  85. package/dist/web/components/common/form-item-wrapper.js +4 -0
  86. package/dist/web/components/common/use-loop-render-detect.js +2 -2
  87. package/dist/web/components/container/index.js +2 -2
  88. package/dist/web/components/customer-service/convert-legacy-props.js +14 -0
  89. package/dist/web/components/customer-service/customer-service.js +13 -0
  90. package/dist/web/components/customer-service/index.js +3 -0
  91. package/dist/web/components/dataView/index.js +5 -1
  92. package/dist/web/components/drawer/index.js +2 -3
  93. package/dist/web/components/flow/common/components/container.js +12 -0
  94. package/dist/web/components/flow/common/components/index.js +2 -0
  95. package/dist/web/components/flow/common/components/text/index.js +62 -0
  96. package/dist/web/components/flow/common/constants.js +14 -0
  97. package/dist/web/components/flow/common/hooks/index.js +2 -0
  98. package/dist/web/components/flow/common/hooks/useCommonFlowData/flow-get.js +83 -0
  99. package/dist/web/components/flow/common/hooks/useCommonFlowData/index.js +67 -0
  100. package/dist/web/components/flow/common/hooks/useCommonFlowData/preview-data.js +45 -0
  101. package/dist/web/components/flow/common/hooks/useCommonFlowData/request-hub.js +125 -0
  102. package/dist/web/components/flow/common/hooks/useCommonFlowData/types.js +1 -0
  103. package/dist/web/components/flow/common/hooks/useElementMediaQuery.js +23 -0
  104. package/dist/web/components/flow/common/hooks/useFlowConfig.js +44 -0
  105. package/dist/web/components/flow/common/hooks/useFlowFormLoad.js +64 -0
  106. package/dist/web/components/flow/common/hooks/useFlowPageType.js +49 -0
  107. package/dist/web/components/flow/common/index.js +6 -0
  108. package/dist/web/components/flow/common/request.js +47 -0
  109. package/dist/web/components/flow/common/types.js +1 -0
  110. package/dist/web/components/flow/common/utils.js +15 -0
  111. package/dist/web/components/flow/modules/basic/Basic.js +14 -22
  112. package/dist/web/components/flow/modules/basic/BasicMobile.js +12 -30
  113. package/dist/web/components/flow/modules/basic/index.js +19 -11
  114. package/dist/web/components/flow/modules/basic/status-text.js +37 -0
  115. package/dist/web/components/flow/modules/basic/utils.js +17 -8
  116. package/dist/web/components/flow/modules/chart/Chart.js +22 -41
  117. package/dist/web/components/flow/modules/chart/index.js +49 -5
  118. package/dist/web/components/flow/modules/chart/preview-data.js +88 -0
  119. package/dist/web/components/flow/modules/chart/utils.js +111 -0
  120. package/dist/web/components/flow/modules/combination/index.js +4 -6
  121. package/dist/web/components/flow/modules/layout/index.css +2 -2
  122. package/dist/web/components/flow/modules/layout/index.js +11 -15
  123. package/dist/web/components/flow/modules/operations/components/button/index.js +2 -4
  124. package/dist/web/components/flow/modules/operations/components/popup/index.js +11 -15
  125. package/dist/web/components/flow/modules/operations/components/user-select/index.js +4 -5
  126. package/dist/web/components/flow/modules/operations/config/approval-form-config.js +8 -9
  127. package/dist/web/components/flow/modules/operations/config/control-config.js +38 -33
  128. package/dist/web/components/flow/modules/operations/control.js +21 -15
  129. package/dist/web/components/flow/modules/operations/controls-items/add-assignee-btn.js +8 -8
  130. package/dist/web/components/flow/modules/operations/controls-items/apply-cc-btn.js +2 -2
  131. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/comment/index.js +3 -6
  132. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/drawer-form/index.js +25 -32
  133. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/field/index.js +2 -6
  134. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/index.js +15 -7
  135. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/style.css +1 -0
  136. package/dist/web/components/flow/modules/operations/controls-items/cancel-apply-btn.js +2 -2
  137. package/dist/web/components/flow/modules/operations/controls-items/check-list-popup/index.js +2 -4
  138. package/dist/web/components/flow/modules/operations/controls-items/flow-task-info-modal/index.js +20 -0
  139. package/dist/web/components/flow/modules/operations/controls-items/flow-task-info-modal/view-model.js +119 -0
  140. package/dist/web/components/flow/modules/operations/controls-items/initiation-btn.js +6 -3
  141. package/dist/web/components/flow/modules/operations/controls-items/revoke-modal/index.js +13 -22
  142. package/dist/web/components/flow/modules/operations/controls-items/roll-back-modal.js +18 -26
  143. package/dist/web/components/flow/modules/operations/view-model.js +95 -70
  144. package/dist/web/components/flow/process/components/comment-text/index.js +24 -0
  145. package/dist/web/components/flow/process/components/comment-text/style.css +33 -0
  146. package/dist/web/components/flow/process/components/descriptions/index.js +19 -0
  147. package/dist/web/components/flow/process/components/descriptions/style.css +31 -0
  148. package/dist/web/components/flow/process/components/index.js +4 -0
  149. package/dist/web/components/flow/process/components/timeline/index.js +13 -0
  150. package/dist/web/components/flow/process/components/timeline/style.css +75 -0
  151. package/dist/web/components/flow/process/constants.js +46 -0
  152. package/dist/web/components/flow/process/index.js +2 -0
  153. package/dist/web/components/flow/process/process.js +113 -0
  154. package/dist/web/components/flow/process/style.css +17 -0
  155. package/dist/web/components/flow/process/types.js +1 -0
  156. package/dist/web/components/flow/process/view-model.js +135 -0
  157. package/dist/web/components/flow-graph/constants.js +28 -0
  158. package/dist/web/components/flow-graph/graph.js +267 -0
  159. package/dist/web/components/flow-graph/index.js +2 -0
  160. package/dist/web/components/flow-graph/style.css +109 -0
  161. package/dist/web/components/flow-graph/types.js +1 -0
  162. package/dist/web/components/form/checkbox/index.js +18 -19
  163. package/dist/web/components/form/enumSelect/MultipleSelect.js +4 -5
  164. package/dist/web/components/form/enumSelect/NormalSelect.js +4 -5
  165. package/dist/web/components/form/enumSelect/SelectContainer.js +2 -2
  166. package/dist/web/components/form/form/index.js +8 -14
  167. package/dist/web/components/form/formcell/index.js +12 -18
  168. package/dist/web/components/form/input/index.js +17 -16
  169. package/dist/web/components/form/location/common/mapChoose.js +37 -69
  170. package/dist/web/components/form/location/common/mapView.js +2 -1
  171. package/dist/web/components/form/location/common/selectModal.js +3 -7
  172. package/dist/web/components/form/location/components/LocationH5/location.h5.js +22 -34
  173. package/dist/web/components/form/location/components/LocationPC/Header.js +6 -15
  174. package/dist/web/components/form/location/components/LocationPC/location.PC.js +13 -15
  175. package/dist/web/components/form/location/index.js +5 -7
  176. package/dist/web/components/form/radio/index.js +8 -12
  177. package/dist/web/components/form/renderDecorator.js +3 -2
  178. package/dist/web/components/form/select/allTimePicker/calendar.js +27 -28
  179. package/dist/web/components/form/select/allTimePicker/index.js +66 -91
  180. package/dist/web/components/form/select/dropdown-select/h5.js +30 -53
  181. package/dist/web/components/form/select/dropdown-select/index.css +4 -0
  182. package/dist/web/components/form/select/dropdown-select/index.js +7 -3
  183. package/dist/web/components/form/select/dropdown-select/pc.js +27 -29
  184. package/dist/web/components/form/select/dropdown-select/ui.js +4 -8
  185. package/dist/web/components/form/select/h5.js +8 -6
  186. package/dist/web/components/form/select/index.js +19 -20
  187. package/dist/web/components/form/select/region/index.js +2 -2
  188. package/dist/web/components/form/select/request.js +10 -10
  189. package/dist/web/components/form/select/status/allEmpty.js +2 -2
  190. package/dist/web/components/form/select/status/empty.js +3 -2
  191. package/dist/web/components/form/select/status/loading.js +3 -4
  192. package/dist/web/components/form/select/status/retry.js +3 -4
  193. package/dist/web/components/form/select/year.js +16 -31
  194. package/dist/web/components/form/switch/index.js +11 -15
  195. package/dist/web/components/form/textarea/index.js +5 -10
  196. package/dist/web/components/form/tips/index.js +2 -2
  197. package/dist/web/components/form/uploader/index.js +5 -4
  198. package/dist/web/components/form/uploader/uploader.h5.js +29 -54
  199. package/dist/web/components/form/uploader/uploader.pc.js +18 -44
  200. package/dist/web/components/form/uploaderFile/index.js +4 -5
  201. package/dist/web/components/form/uploaderFile/uploadFile.h5.js +58 -104
  202. package/dist/web/components/form/uploaderFile/uploadFile.pc.js +42 -69
  203. package/dist/web/components/form/userOrgSelect/common/fetch-data-service.js +44 -62
  204. package/dist/web/components/form/userOrgSelect/common/utils.js +225 -0
  205. package/dist/web/components/form/userOrgSelect/component/OrgPaths.js +12 -0
  206. package/dist/web/components/form/userOrgSelect/component/depart-breadcrumb.js +5 -10
  207. package/dist/web/components/form/userOrgSelect/component/depart-select/depart-select-pc.js +9 -19
  208. package/dist/web/components/form/userOrgSelect/component/depart-select/departTreeSelect.h5.js +156 -0
  209. package/dist/web/components/form/userOrgSelect/component/depart-select/index.js +58 -21
  210. package/dist/web/components/form/userOrgSelect/component/depart-select/org-modal-pc.js +29 -35
  211. package/dist/web/components/form/userOrgSelect/component/error-tips.js +4 -4
  212. package/dist/web/components/form/userOrgSelect/component/index.css +52 -0
  213. package/dist/web/components/form/userOrgSelect/component/input-tags.js +4 -18
  214. package/dist/web/components/form/userOrgSelect/component/modal-search-h5.js +11 -19
  215. package/dist/web/components/form/userOrgSelect/component/modal-search.js +2 -5
  216. package/dist/web/components/form/userOrgSelect/component/modal-select-h5.js +49 -35
  217. package/dist/web/components/form/userOrgSelect/component/org-tree-h5.js +7 -13
  218. package/dist/web/components/form/userOrgSelect/component/org-tree.js +26 -18
  219. package/dist/web/components/form/userOrgSelect/component/selected-list-h5.js +23 -40
  220. package/dist/web/components/form/userOrgSelect/component/selected-list.js +8 -5
  221. package/dist/web/components/form/userOrgSelect/component/user-org-list.js +35 -35
  222. package/dist/web/components/form/userOrgSelect/component/user-select-h5/index.js +30 -4
  223. package/dist/web/components/form/userOrgSelect/component/user-select-h5/user-list-h5.js +36 -50
  224. package/dist/web/components/form/userOrgSelect/component/user-select-h5/user-select-h5.js +9 -11
  225. package/dist/web/components/form/userOrgSelect/component/user-select-pc/error-tips.js +4 -4
  226. package/dist/web/components/form/userOrgSelect/component/user-select-pc/model-user-list.js +24 -17
  227. package/dist/web/components/form/userOrgSelect/component/user-select-pc/org-tree.js +2 -2
  228. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-model.js +12 -30
  229. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-select-pc.js +8 -8
  230. package/dist/web/components/form/userOrgSelect/component/userOrgSelect.css +20 -2
  231. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.js +68 -158
  232. package/dist/web/components/form/userOrgSelect/hooks/use-depart-data.js +4 -2
  233. package/dist/web/components/form-checkbox/index.js +36 -0
  234. package/dist/web/components/form-date/index.js +52 -0
  235. package/dist/web/components/form-depart-tree-select/index.js +22 -0
  236. package/dist/web/components/form-email/index.js +31 -0
  237. package/dist/web/components/form-image-uploader/index.js +50 -0
  238. package/dist/web/components/form-input/index.js +25 -0
  239. package/dist/web/components/form-input-hooks/index.js +284 -0
  240. package/dist/web/components/form-input-hooks/validator.js +124 -0
  241. package/dist/web/components/form-location/index.js +24 -0
  242. package/dist/web/components/form-multi-region/index.js +22 -0
  243. package/dist/web/components/form-phone/index.js +32 -0
  244. package/dist/web/components/form-radio/index.js +38 -0
  245. package/dist/web/components/form-region/index.js +24 -0
  246. package/dist/web/components/form-rich-text/index.js +22 -0
  247. package/dist/web/components/form-select/index.js +21 -0
  248. package/dist/web/components/form-switch/index.js +22 -0
  249. package/dist/web/components/form-text-area/index.js +22 -0
  250. package/dist/web/components/form-time/index.js +22 -0
  251. package/dist/web/components/form-upload-file/index.js +47 -0
  252. package/dist/web/components/form-url/index.js +31 -0
  253. package/dist/web/components/form-user-tree-select/index.js +24 -0
  254. package/dist/web/components/formdetail/index.css +213 -3
  255. package/dist/web/components/formdetail/index.js +156 -30
  256. package/dist/web/components/graphicCard/index.js +13 -25
  257. package/dist/web/components/grid/col.js +3 -2
  258. package/dist/web/components/grid/grid.js +4 -3
  259. package/dist/web/components/grid/row.js +3 -2
  260. package/dist/web/components/image/image.js +52 -57
  261. package/dist/web/components/image/index.js +2 -2
  262. package/dist/web/components/index.js +46 -3
  263. package/dist/web/components/link/index.js +3 -5
  264. package/dist/web/components/listView/index.js +29 -49
  265. package/dist/web/components/lottery/index.js +123 -143
  266. package/dist/web/components/modal/h5.css +3 -0
  267. package/dist/web/components/modal/index.js +3 -2
  268. package/dist/web/components/modal/modal.h5.js +8 -14
  269. package/dist/web/components/modal/modal.pc.js +5 -7
  270. package/dist/web/components/navLayout/index.js +13 -20
  271. package/dist/web/components/navigationBar/common.js +12 -14
  272. package/dist/web/components/navigationBar/h5Menu.js +18 -37
  273. package/dist/web/components/navigationBar/horizontalMenu.js +33 -50
  274. package/dist/web/components/navigationBar/index.css +2 -1
  275. package/dist/web/components/navigationBar/index.js +5 -10
  276. package/dist/web/components/navigationBar/verticalMenu.js +11 -13
  277. package/dist/web/components/pageLayout/PageContent/index.js +7 -14
  278. package/dist/web/components/pageLayout/index.css +10 -0
  279. package/dist/web/components/pageLayout/index.js +7 -12
  280. package/dist/web/components/phone/index.js +2 -4
  281. package/dist/web/components/phoneCode/index.js +2 -4
  282. package/dist/web/components/picker/datePicker.js +2 -2
  283. package/dist/web/components/picker/picker.js +2 -2
  284. package/dist/web/components/picker/timePicker.js +2 -2
  285. package/dist/web/components/qrcode/index.js +3 -0
  286. package/dist/web/components/qrcode/qr-code.js +26 -0
  287. package/dist/web/components/repeater/index.js +2 -2
  288. package/dist/web/components/repeater-item/index.js +2 -2
  289. package/dist/web/components/richText/index.js +74 -93
  290. package/dist/web/components/richTextView/index.js +3 -3
  291. package/dist/web/components/scrollView/index.js +4 -3
  292. package/dist/web/components/share/index.js +2 -4
  293. package/dist/web/components/slot/index.js +2 -2
  294. package/dist/web/components/statusContent/index.css +39 -0
  295. package/dist/web/components/statusContent/index.js +9 -0
  296. package/dist/web/components/swiper/index.js +44 -48
  297. package/dist/web/components/table/BaseTable.js +142 -190
  298. package/dist/web/components/table/ExportFileModalByApi/index.js +29 -60
  299. package/dist/web/components/table/FieldRender.js +47 -51
  300. package/dist/web/components/table/FilterFields.js +45 -71
  301. package/dist/web/components/table/Form/Enum.js +4 -4
  302. package/dist/web/components/table/Form/Location.js +9 -9
  303. package/dist/web/components/table/ImportFileModal/index.css +261 -0
  304. package/dist/web/components/table/ImportFileModal/index.js +47 -107
  305. package/dist/web/components/table/ImportFileModal/validate.js +9 -9
  306. package/dist/web/components/table/ImportFileModalByApi/index.css +35 -3
  307. package/dist/web/components/table/ImportFileModalByApi/index.js +96 -113
  308. package/dist/web/components/table/ImportFileModalByApi/uploadCSVFile.js +23 -47
  309. package/dist/web/components/table/InOrOutRecordModeal.js +26 -47
  310. package/dist/web/components/table/QuoteModal.js +3 -5
  311. package/dist/web/components/table/SelectableBlock/index.js +23 -27
  312. package/dist/web/components/table/UserDepartment/ViewCell.js +3 -3
  313. package/dist/web/components/table/UserDepartment/utils.js +4 -4
  314. package/dist/web/components/table/baseTable.css +0 -10
  315. package/dist/web/components/table/index.js +3 -5
  316. package/dist/web/components/tabs/index.js +5 -6
  317. package/dist/web/components/tabs/tabs.h5.js +12 -14
  318. package/dist/web/components/tabs/tabs.pc.js +15 -14
  319. package/dist/web/components/text/index.js +3 -2
  320. package/dist/web/components/uploaderFileView/index.js +4 -3
  321. package/dist/web/components/uploaderView/index.js +12 -16
  322. package/dist/web/components/userInfo/index.js +2 -4
  323. package/dist/web/components/wd-bubble/wd-bubble.js +10 -11
  324. package/dist/web/components/wd-button/wd-button.js +24 -8
  325. package/dist/web/components/wd-config-provider/wd-config-provider.js +3 -2
  326. package/dist/web/components/wd-divider/wd-divider.js +3 -2
  327. package/dist/web/components/wd-form/hooks/use-auth-value.js +43 -0
  328. package/dist/web/components/wd-form/hooks/use-remote-value.js +79 -0
  329. package/dist/web/components/wd-form/index.js +382 -0
  330. package/dist/web/components/wd-icon/wd-icon.js +3 -2
  331. package/dist/web/components/wd-image/image.js +98 -96
  332. package/dist/web/components/wd-image/index.js +4 -3
  333. package/dist/web/components/wd-link/wd-link.js +4 -8
  334. package/dist/web/components/wd-table/components/ExportFileModalByApi/ExportFileModalByApi.js +7 -0
  335. package/dist/web/components/wd-table/components/ExportFileModalByApi/index.css +9 -0
  336. package/dist/web/components/wd-table/components/ExportFileModalByApi/index.js +74 -0
  337. package/dist/web/components/wd-table/components/FieldRender/Form/Enum.js +56 -0
  338. package/dist/web/components/wd-table/components/FieldRender/Form/Location.css +11 -0
  339. package/dist/web/components/wd-table/components/FieldRender/Form/Location.js +127 -0
  340. package/dist/web/components/wd-table/components/FieldRender/ImagePreview.js +8 -0
  341. package/dist/web/components/wd-table/components/FieldRender/QuoteModal.js +17 -0
  342. package/dist/web/components/wd-table/components/FieldRender/UserDepartment/ViewCell.js +11 -0
  343. package/dist/web/components/wd-table/components/FieldRender/UserDepartment/utils.js +82 -0
  344. package/dist/web/components/wd-table/components/FieldRender/UserDepartment/viewCell.css +11 -0
  345. package/dist/web/components/wd-table/components/FieldRender/index.js +702 -0
  346. package/dist/web/components/wd-table/components/FilterFieldsPanel/Fields.js +82 -0
  347. package/dist/web/components/wd-table/components/FilterFieldsPanel/FilterFieldItem.js +86 -0
  348. package/dist/web/components/wd-table/components/FilterFieldsPanel/InputAdornment.js +9 -0
  349. package/dist/web/components/wd-table/components/FilterFieldsPanel/SelectSearch.js +44 -0
  350. package/dist/web/components/wd-table/components/FilterFieldsPanel/filterFieldsGenerate.js +113 -0
  351. package/dist/web/components/wd-table/components/FilterFieldsPanel/index.js +169 -0
  352. package/dist/web/components/wd-table/components/ImportFileModalByApi/index.js +44 -0
  353. package/dist/web/components/wd-table/components/InOrOutRecordModal.js +14 -0
  354. package/dist/web/components/wd-table/components/Pagination/index.js +11 -0
  355. package/dist/web/components/wd-table/components/SearchBox/index.js +45 -0
  356. package/dist/web/components/wd-table/components/Table/index.js +172 -0
  357. package/dist/web/components/wd-table/components/Table/util.js +63 -0
  358. package/dist/web/components/wd-table/components/ToolBar/index.js +34 -0
  359. package/dist/web/components/wd-table/components/deleteModal.js +40 -0
  360. package/dist/web/components/wd-table/components/index.js +10 -0
  361. package/dist/web/components/wd-table/hooks/useAuthFields.js +13 -0
  362. package/dist/web/components/wd-table/hooks/useChooseList.js +70 -0
  363. package/dist/web/components/wd-table/hooks/useDataSource.js +5 -0
  364. package/dist/web/components/wd-table/hooks/useQueryParams.js +41 -0
  365. package/dist/web/components/wd-table/hooks/useTableData.js +42 -0
  366. package/dist/web/components/wd-table/hooks/useViewFields.js +20 -0
  367. package/dist/web/components/wd-table/mock/index.js +202 -0
  368. package/dist/web/components/wd-table/utils/index.js +326 -0
  369. package/dist/web/components/wd-table/wd-table.js +459 -21
  370. package/dist/web/components/wd-text/wd-text.js +15 -14
  371. package/dist/web/components/web-view/index.css +5 -0
  372. package/dist/web/components/web-view/index.js +3 -0
  373. package/dist/web/components/web-view/web-view.js +61 -0
  374. package/dist/web/components/wedaVideo/index.js +2 -5
  375. package/dist/web/utils/constant.js +1 -0
  376. package/dist/web/utils/datasource.js +3 -1
  377. package/dist/web/utils/getModelParams.js +32 -0
  378. package/dist/web/utils/hooks/CreatePortal.js +3 -2
  379. package/dist/web/utils/hooks/EnumHoc.js +3 -2
  380. package/dist/web/utils/hooks/globalConnect.js +2 -3
  381. package/dist/web/utils/hooks/use-cloud-id-temp-url.js +6 -6
  382. package/dist/web/utils/hooks/useDataSource.js +22 -0
  383. package/dist/web/utils/loading-fallback.js +2 -2
  384. package/dist/web/utils/platform.js +21 -0
  385. package/dist/web/utils/tcb.js +0 -13
  386. package/dist/web/utils/tool.js +14 -0
  387. package/dist/web/utils/widget-api/index.js +39 -7
  388. package/package.json +32 -25
  389. package/dist/web/components/emptyContent/index.css +0 -26
  390. package/dist/web/components/flow/components/FlowModuleText/index.css +0 -4
  391. package/dist/web/components/flow/modules/process/index.css +0 -194
@@ -0,0 +1,382 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /* eslint max-lines: [error, 500] */
3
+ import React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState, } from 'react';
4
+ import { useDebouncedCallback, useMap, useMountEffect, useSyncedRef, } from '@react-hookz/web';
5
+ import { isInIde, usePlatform } from '../../utils/platform';
6
+ import { ConfigProvider, Form as TeaForm } from 'tea-component';
7
+ import classNames from '../../utils/classnames';
8
+ import { debug } from '../../utils/console';
9
+ import { useWedaAppContext } from '../../utils/widget-api';
10
+ import { useLoopRenderDetect } from '../common/use-loop-render-detect';
11
+ import { emptyObject, NOT_EXISTED_VALUE } from '../../utils/constant';
12
+ import * as tcbAppCloud from '../../utils/tcb';
13
+ import { useRemoteValue } from './hooks/use-remote-value';
14
+ import { createSetStateForAuth, useAuthValue } from './hooks/use-auth-value';
15
+ import lodashSet from 'lodash.set';
16
+ import lodashGet from 'lodash.get';
17
+ import isObjectEqual from '../../utils/isObjectEqual';
18
+ import { useDataSource } from '../../utils/hooks/useDataSource';
19
+ const logger = debug('wd-form');
20
+ const WdForm = React.forwardRef(function WdForm(props, ref) {
21
+ var _a;
22
+ const { className, id, style, contentSlot: contentSlotEl, layout, formType, _id, datasourceType, dataSourceName, methodGetItem, paramGetItem, appCloud = tcbAppCloud,
23
+ // 兼容流程setValue调用,其他地方别用
24
+ $node, } = props;
25
+ const formItemMap = useMap([]);
26
+ /**
27
+ * 根据他的文档
28
+ * 上面返回的 formItemMap 引用会保持不变,但是Map的方法会导致重渲染
29
+ * 所以要用它作useEffect deps的时候用下面这个string
30
+ * */
31
+ const formItemMapKey = [...formItemMap.keys()].sort().join(',');
32
+ const platform = usePlatform();
33
+ const contentSlot = useMemo(() => contentSlotEl, [contentSlotEl]);
34
+ const cls = classNames({
35
+ 'weda-ui': true,
36
+ 'weda-form': true,
37
+ 'weui-form': platform === 'h5',
38
+ 'weda-form-pc': platform === 'pc',
39
+ 'gsd-h5-react-form-pc': platform === 'pc',
40
+ }, className);
41
+ const [initialValues, setInitialValues] = useState((_a = props.initialValues) !== null && _a !== void 0 ? _a : emptyObject);
42
+ const eventsRef = useSyncedRef(props.events);
43
+ const validate = useCallback(async () => {
44
+ const validatePromise = [];
45
+ const validateKey = [];
46
+ formItemMap.forEach((item) => {
47
+ if (!item)
48
+ return;
49
+ if (item.handleValidate) {
50
+ const validate = item.handleValidate();
51
+ const { name } = item;
52
+ if (validate) {
53
+ validatePromise.push(validate);
54
+ validateKey.push(name);
55
+ }
56
+ }
57
+ });
58
+ let errorArr = await Promise.all(validatePromise);
59
+ const errObj = {};
60
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
61
+ errorArr = errorArr.filter((item, index) => {
62
+ if ((item !== null && item !== void 0 ? item : []).length) {
63
+ errObj[validateKey[index]] = item;
64
+ }
65
+ return (item === null || item === void 0 ? void 0 : item.length) > 0;
66
+ });
67
+ if (Object.keys(errObj).length > 0) {
68
+ console.error(errObj);
69
+ }
70
+ return errObj;
71
+ }, [formItemMap]);
72
+ const [errors, setErrors] = useState(undefined);
73
+ const submit = useCallback(async () => {
74
+ const { submit } = eventsRef.current;
75
+ const errorObj = await validate();
76
+ if (Object.keys(errorObj !== null && errorObj !== void 0 ? errorObj : {}).length === 0) {
77
+ const formData = getFormDataFromItemMap(formItemMap);
78
+ const extra = ['read', 'edit'].includes(formType) && _id ? { _id } : {};
79
+ submit && submit(JSON.parse(JSON.stringify({ ...extra, ...formData })));
80
+ // 流程用了;
81
+ return formData;
82
+ }
83
+ else {
84
+ setErrors(errorObj);
85
+ }
86
+ }, [_id, eventsRef, formItemMap, formType, validate]);
87
+ const updateFormContext = useCallback(() => {
88
+ Promise.resolve().then(() => {
89
+ var _a, _b;
90
+ const formData = getFormDataFromItemMap(formItemMap);
91
+ if (!isObjectEqual(formData, preFormCtxRef.current, true)) {
92
+ (_b = (_a = eventsRef === null || eventsRef === void 0 ? void 0 : eventsRef.current) === null || _a === void 0 ? void 0 : _a.onDataChange) === null || _b === void 0 ? void 0 : _b.call(_a, { data: formData });
93
+ setFormData(formData);
94
+ preFormCtxRef.current = formData;
95
+ }
96
+ });
97
+ }, [eventsRef, formItemMap]);
98
+ const setValue = useCallback((data, setNull) => {
99
+ if (typeof data !== 'object' || typeof data === null) {
100
+ console.warn('setValue data need expect a object but got', data);
101
+ return;
102
+ }
103
+ formItemMap.forEach((item, name) => {
104
+ if (!item.setValue) {
105
+ console.error('表单组件缺少setValue方法:', item);
106
+ return;
107
+ }
108
+ const value = lodashGet(data, name, NOT_EXISTED_VALUE);
109
+ if (value !== NOT_EXISTED_VALUE) {
110
+ item.setValue(value);
111
+ }
112
+ else {
113
+ setNull && item.setValue(null);
114
+ }
115
+ });
116
+ updateFormContext();
117
+ }, [formItemMap, updateFormContext]);
118
+ const clearValidate = useCallback(() => {
119
+ formItemMap.forEach((item) => {
120
+ if (!item.clearValidate || typeof item.clearValidate !== 'function') {
121
+ console.error('表单组件缺少clearValidate方法:', item);
122
+ return;
123
+ }
124
+ item.clearValidate();
125
+ });
126
+ }, [formItemMap]);
127
+ // useWhatChanged([formItemMap, initialValues, submit, validate]);
128
+ useLoopRenderDetect();
129
+ const { ready } = useWedaAppContext();
130
+ const previousFormType = useRef(null);
131
+ useEffect(() => {
132
+ if (!ready) {
133
+ return;
134
+ }
135
+ // if (formType === previousFormType.current) return;
136
+ logger.debug('listen formType', { formType, previousFormType }, formItemMap);
137
+ previousFormType.current = formType;
138
+ Promise.resolve().then(() => {
139
+ if (formType === 'read') {
140
+ formItemMap.forEach((item) => {
141
+ item.setReadOnly(true);
142
+ });
143
+ }
144
+ else {
145
+ formItemMap.forEach((item) => {
146
+ item.setReadOnly(item.initialDisabled);
147
+ });
148
+ }
149
+ });
150
+ }, [ready, formType, formItemMap, formItemMapKey]);
151
+ useMountEffect(() => {
152
+ logger.debug('formItemMap', formItemMap);
153
+ });
154
+ const isDataModel = !['connector', 'custom-connector'].includes(datasourceType); // 是否为数据模型,兼容历史 undefined
155
+ const { remoteValue: fetchedInitialValues, isLoading: isLoadingInitValues, error: initValueFetchError, } = useRemoteValue({
156
+ appCloud,
157
+ formType,
158
+ _id,
159
+ // methodCreate,
160
+ methodGetItem,
161
+ // methodUpdate,
162
+ paramGetItem,
163
+ dataSourceName,
164
+ isDataModel,
165
+ });
166
+ useEffect(() => {
167
+ if (isLoadingInitValues)
168
+ return;
169
+ if (!initValueFetchError && fetchedInitialValues) {
170
+ /*
171
+ 错误处理放在了 @link {onInitialValuesError}
172
+ 下面是可以拿到data了
173
+ */
174
+ // TODO: 有哪些key可以暴露
175
+ setInitialValues(fetchedInitialValues);
176
+ setValue(fetchedInitialValues, true);
177
+ }
178
+ }, [fetchedInitialValues, initValueFetchError, isLoadingInitValues, setValue]);
179
+ const { data: dataSourceProfile } = useDataSource();
180
+ const authValue = useAuthValue({
181
+ appCloud,
182
+ isDataModel,
183
+ dataSourceName,
184
+ });
185
+ const onInitDataSourceFieldsWithAuth = useCallback((authValue) => {
186
+ logger.debug('onInitDataSourceFieldsWithAuth', authValue);
187
+ const { isDataModel, dataSourceFieldsWidthAuthList } = authValue;
188
+ try {
189
+ formItemMap.forEach((item, name) => {
190
+ const setStateForAuth = createSetStateForAuth({
191
+ setVisible: item.setVisible,
192
+ setReadOnly: item.setReadOnly,
193
+ });
194
+ if (!isDataModel) {
195
+ // 非模型数据源
196
+ setStateForAuth('rw');
197
+ }
198
+ else {
199
+ if ((dataSourceFieldsWidthAuthList === null || dataSourceFieldsWidthAuthList === void 0 ? void 0 : dataSourceFieldsWidthAuthList.length) > 0) {
200
+ // 返回了权限相关字段
201
+ const fieldsPower = dataSourceFieldsWidthAuthList === null || dataSourceFieldsWidthAuthList === void 0 ? void 0 : dataSourceFieldsWidthAuthList.filter((fieldItem) => fieldItem[name])[0];
202
+ if (fieldsPower && fieldsPower[name]) {
203
+ setStateForAuth(fieldsPower[name]);
204
+ }
205
+ else {
206
+ // 没有匹配到数据源字段,是用户自定义字段默认读写权限
207
+ }
208
+ }
209
+ else {
210
+ // 兼容私有化接口不会返回权限相关字段,没有返回默认不校验权限
211
+ setStateForAuth('rw');
212
+ }
213
+ }
214
+ });
215
+ }
216
+ catch (error) {
217
+ formItemMap.forEach((item) => {
218
+ const setStateForAuth = createSetStateForAuth({
219
+ setReadOnly: item.setReadOnly,
220
+ setVisible: item.setVisible,
221
+ });
222
+ if (!item || !item.setDataSourceFieldsWithAuth)
223
+ return;
224
+ setStateForAuth('rw');
225
+ });
226
+ console.error('init form setDataSourceFieldsWithAuth error', error);
227
+ }
228
+ }, [formItemMap]);
229
+ React.useEffect(() => {
230
+ var _a, _b;
231
+ // 兼容私有环境,新接口不存在的情况,产品策略完善后移除
232
+ if ((window === null || window === void 0 ? void 0 : window['_isPrivate']) &&
233
+ !((_b = (_a = window === null || window === void 0 ? void 0 : window.app) === null || _a === void 0 ? void 0 : _a.cloud) === null || _b === void 0 ? void 0 : _b.getDataSourceProfileAsync)) {
234
+ onInitDataSourceFieldsWithAuth === null || onInitDataSourceFieldsWithAuth === void 0 ? void 0 : onInitDataSourceFieldsWithAuth({ isDataModel });
235
+ return;
236
+ }
237
+ if (!isInIde()) {
238
+ onInitDataSourceFieldsWithAuth(authValue);
239
+ }
240
+ }, [
241
+ authValue,
242
+ isDataModel,
243
+ onInitDataSourceFieldsWithAuth,
244
+ formItemMap,
245
+ formItemMapKey,
246
+ ]);
247
+ const initedItemMapRef = useRef({});
248
+ const preFormCtxRef = useRef(null);
249
+ const [formData, setFormData] = useState(() => getFormDataFromItemMap(formItemMap));
250
+ React.useImperativeHandle(ref, () => {
251
+ return {
252
+ formType,
253
+ addFormItem(name, formItem) {
254
+ var _a;
255
+ if (((_a = formItemMap.get(name)) === null || _a === void 0 ? void 0 : _a.id) !== formItem.id) {
256
+ logger.log('addFormItem', formItem, formItem.id, formItem.name);
257
+ formItemMap.set(name, formItem);
258
+ }
259
+ return () => {
260
+ formItemMap.delete(name);
261
+ };
262
+ },
263
+ setValue,
264
+ reset() {
265
+ setValue({}, true);
266
+ },
267
+ validate() {
268
+ return validate();
269
+ },
270
+ submit() {
271
+ return submit();
272
+ },
273
+ getConfig() {
274
+ return {
275
+ componentType: 'form',
276
+ };
277
+ },
278
+ initialValues: initialValues,
279
+ authValue,
280
+ layout,
281
+ dataSourceName,
282
+ value: formData,
283
+ remoteValue: fetchedInitialValues,
284
+ updateFormContext,
285
+ dataSourceProfile,
286
+ errors,
287
+ clearValidate,
288
+ };
289
+ }, [
290
+ authValue,
291
+ dataSourceName,
292
+ dataSourceProfile,
293
+ errors,
294
+ fetchedInitialValues,
295
+ formItemMap,
296
+ formType,
297
+ initialValues,
298
+ layout,
299
+ setValue,
300
+ submit,
301
+ validate,
302
+ clearValidate,
303
+ updateFormContext,
304
+ formData,
305
+ ]);
306
+ const setInitValue = useDebouncedCallback(() => {
307
+ var _a;
308
+ for (const [name, formItem] of formItemMap.entries()) {
309
+ const value = lodashGet(initialValues, name);
310
+ if (initedItemMapRef.current[name] !== true && value !== undefined) {
311
+ (_a = formItem.setValue) === null || _a === void 0 ? void 0 : _a.call(formItem, value);
312
+ initedItemMapRef.current[name] = true;
313
+ }
314
+ }
315
+ updateFormContext();
316
+ }, [formItemMap, initialValues, updateFormContext],
317
+ // eslint-disable-next-line @typescript-eslint/no-magic-numbers
318
+ 200);
319
+ React.useEffect(() => {
320
+ // 单向 Form向下设置值
321
+ let setValueReady = false;
322
+ const timeout = 30;
323
+ let id;
324
+ const setValueUntilReady = () => {
325
+ setValueReady = [...formItemMap.values()].every((item) => !!item.setValue);
326
+ if (!setValueReady) {
327
+ // eslint-disable-next-line rulesdir/no-timer
328
+ id = setTimeout(() => {
329
+ setValueUntilReady();
330
+ }, timeout);
331
+ return;
332
+ }
333
+ if (id) {
334
+ clearTimeout(id);
335
+ }
336
+ setInitValue();
337
+ };
338
+ setValueUntilReady();
339
+ return () => {
340
+ if (id) {
341
+ clearTimeout(id);
342
+ }
343
+ };
344
+ });
345
+ useEffect(() => {
346
+ formItemMap.forEach((item) => {
347
+ var _a;
348
+ (_a = item === null || item === void 0 ? void 0 : item.forceUpdate) === null || _a === void 0 ? void 0 : _a.call(item);
349
+ });
350
+ // eslint-disable-next-line react-hooks/exhaustive-deps
351
+ }, [layout]);
352
+ useLayoutEffect(() => {
353
+ // 兼容流程
354
+ if ($node) {
355
+ $node.setValue = setValue;
356
+ $node.submit = submit;
357
+ $node.formItems = '为了兼容不报错';
358
+ return () => {
359
+ $node.setValue = undefined;
360
+ $node.submit = undefined;
361
+ $node.formItems = undefined;
362
+ };
363
+ }
364
+ }, [$node, setValue, submit]);
365
+ if (platform === 'h5') {
366
+ return (_jsx("div", { className: cls, style: style, id: id, children: _jsx("div", { className: "weui-cells__group weui-cells__group_form", children: contentSlot }) }));
367
+ }
368
+ else {
369
+ return (_jsx(ConfigProvider, { classPrefix: "wedatea2td", children: _jsx(TeaForm, { layout: layout, className: cls, style: style, id: id, children: contentSlot }) }));
370
+ }
371
+ });
372
+ function getFormDataFromItemMap(formItemMap) {
373
+ const formData = {};
374
+ formItemMap.forEach((item, name) => {
375
+ var _a, _b, _c;
376
+ if (((_b = (_a = item.getConfig) === null || _a === void 0 ? void 0 : _a.call(item)) === null || _b === void 0 ? void 0 : _b.componentType) !== 'formdetail') {
377
+ lodashSet(formData, name, (_c = item === null || item === void 0 ? void 0 : item.getValue) === null || _c === void 0 ? void 0 : _c.call(item));
378
+ }
379
+ });
380
+ return formData;
381
+ }
382
+ export default React.memo(WdForm);
@@ -1,3 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
1
2
  import React, { forwardRef, useImperativeHandle } from 'react';
2
3
  import classNames from '../../utils/classnames';
3
4
  import { emptyObject } from '../../utils/constant';
@@ -62,10 +63,10 @@ export const WdIcon = forwardRef(function WdIcon({ type: _type = 'inner', name,
62
63
  };
63
64
  }, [type, name, src, size]);
64
65
  if (type === 'inner') {
65
- return (React.createElement("i", { className: classNames(classes, className), style: style, id: id, onClick: onClick, ...propsStartWithOn }));
66
+ return (_jsx("i", { className: classNames(classes, className), style: style, id: id, onClick: onClick, ...propsStartWithOn }));
66
67
  }
67
68
  else {
68
- return (React.createElement("img", { className: classNames(classes, className), style: style, id: id, src: src
69
+ return (_jsx("img", { className: classNames(classes, className), style: style, id: id, src: src
69
70
  ? src
70
71
  : 'https://qcloudimg.tencent-cloud.cn/raw/4a29d51b504f12b4933ce4490110b4dc.svg', onClick: onClick, ...propsStartWithOn }));
71
72
  }
@@ -1,6 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
2
  import * as React from 'react';
2
3
  import { usePlatform } from '../../utils/platform';
3
- // import { CreatePortal } from '../../utils/hooks/CreatePortal';
4
+ import { CreatePortal } from '../../utils/hooks/CreatePortal';
4
5
  import { useGesture } from '@use-gesture/react';
5
6
  import { useConfig } from '../../utils/config-context';
6
7
  import { useRef } from 'react';
@@ -9,12 +10,15 @@ const ASPECT_RASIO = 1;
9
10
  const OFFSET_RASIO = 0.5;
10
11
  const SCALE_RASIO_PC = 0.8;
11
12
  const SCALE_RASIO_H5 = 1;
12
- export function ImageInner({ objectFit, style, className, alt, src, isError, setIsError, events, lazyLoad, maskClosable, imgPreview, }) {
13
+ export function ImageInner({ objectFit, style, className, alt, src, isError, setIsError, events, lazyLoad, maskClosable, imgPreview, id, isStopPropagation, }) {
13
14
  const { classPrefix } = useConfig();
14
15
  const platform = usePlatform();
15
16
  const [imgShow, setImgShow] = React.useState(false);
16
17
  const imagePreviewRef = useRef();
17
- const onMaskClick = () => {
18
+ const onMaskClick = (e) => {
19
+ if (isStopPropagation) {
20
+ e.stopPropagation();
21
+ }
18
22
  if (maskClosable) {
19
23
  setImgShow(false);
20
24
  }
@@ -72,100 +76,98 @@ export function ImageInner({ objectFit, style, className, alt, src, isError, set
72
76
  },
73
77
  });
74
78
  if (platform === 'h5' || !imgPreview || isError) {
75
- return (React.createElement(React.Fragment, null,
76
- React.createElement("img", { style: {
77
- objectFit,
78
- ...style,
79
- }, className: `${className} wd-h5-image`, alt: alt, src: src, onLoad: (e) => {
80
- const img = e.target;
81
- const { naturalHeight, naturalWidth } = img;
82
- realHeight.current = naturalHeight;
83
- realWidth.current = naturalWidth;
84
- setIsError(false);
85
- events.load && events.load({}, { originEvent: e });
86
- }, onError: (e) => {
87
- setIsError(true);
88
- events.error && events.error({}, { originEvent: e });
89
- }, onClick: (e) => {
90
- if (imgPreview && !isError) {
91
- setTranslateX(0);
92
- setTranslateY(0);
93
- setPreviewScale(ASPECT_RASIO);
94
- const windowHeight = window.innerHeight;
95
- const windowWidth = window.innerWidth;
96
- const widthRasio = (windowWidth * SCALE_RASIO_H5) / realWidth.current;
97
- const heightRasio = (windowHeight * SCALE_RASIO_H5) / realHeight.current;
98
- const scale = Math.min(widthRasio, heightRasio, ASPECT_RASIO) || ASPECT_RASIO;
99
- setOffsetHeight((windowHeight - realHeight.current * scale) * OFFSET_RASIO);
100
- setOffsetWidth((windowWidth - realWidth.current * scale) * OFFSET_RASIO);
101
- setShowHeight(realHeight.current * scale);
102
- setShowWidth(realWidth.current * scale);
103
- setImgShow(true);
104
- }
105
- events.tap && events.tap({}, { originEvent: e });
106
- }, loading: lazyLoad ? 'lazy' : undefined }),
107
- imgShow && (
108
- // <CreatePortal>
109
- React.createElement("div", { className: `${classPrefix}-image-mask`, onClick: onMaskClick },
110
- React.createElement("div", { onClick: () => setImgShow(false), className: `${classPrefix}-image-mask__close-btn` },
111
- React.createElement("i", { className: `${classPrefix}-image-mask__icon-close` })),
112
- React.createElement("div", { ...bind(), ref: imagePreviewRef, className: `${classPrefix}-image-preview`, style: {
113
- touchAction: 'none',
114
- backgroundImage: `url('${src}')`,
115
- transform: `translate(${translateX}px, ${translateY}px) scale(${previewScale})`,
116
- width: showWidth,
117
- height: showHeight,
118
- marginTop: offsetHeight,
119
- marginLeft: offsetWidth,
120
- } }))
121
- // </CreatePortal>
122
- )));
79
+ return (_jsxs(_Fragment, { children: [_jsx("img", { id: id, style: {
80
+ objectFit,
81
+ ...style,
82
+ }, className: `${className} wd-h5-image`, alt: alt, src: src, onLoad: (e) => {
83
+ const img = e.target;
84
+ const { naturalHeight, naturalWidth } = img;
85
+ realHeight.current = naturalHeight;
86
+ realWidth.current = naturalWidth;
87
+ setIsError(false);
88
+ events.load && events.load({}, { originEvent: e });
89
+ }, onError: (e) => {
90
+ setIsError(true);
91
+ events.error && events.error({}, { originEvent: e });
92
+ }, onClick: (e) => {
93
+ if (isStopPropagation) {
94
+ e.stopPropagation();
95
+ }
96
+ if (imgPreview && !isError) {
97
+ setTranslateX(0);
98
+ setTranslateY(0);
99
+ setPreviewScale(ASPECT_RASIO);
100
+ const windowHeight = window.innerHeight;
101
+ const windowWidth = window.innerWidth;
102
+ const widthRasio = (windowWidth * SCALE_RASIO_H5) / realWidth.current;
103
+ const heightRasio = (windowHeight * SCALE_RASIO_H5) / realHeight.current;
104
+ const scale = Math.min(widthRasio, heightRasio, ASPECT_RASIO) || ASPECT_RASIO;
105
+ setOffsetHeight((windowHeight - realHeight.current * scale) * OFFSET_RASIO);
106
+ setOffsetWidth((windowWidth - realWidth.current * scale) * OFFSET_RASIO);
107
+ setShowHeight(realHeight.current * scale);
108
+ setShowWidth(realWidth.current * scale);
109
+ setImgShow(true);
110
+ }
111
+ events.tap && events.tap({}, { originEvent: e });
112
+ }, loading: lazyLoad ? 'lazy' : undefined }), imgShow && (_jsx(CreatePortal, { className: `${classPrefix}-image-preview-container`, children: _jsxs("div", { className: `${classPrefix}-image-mask`, onClick: onMaskClick, children: [_jsx("div", { onClick: (e) => {
113
+ if (isStopPropagation) {
114
+ e.stopPropagation();
115
+ }
116
+ setImgShow(false);
117
+ }, className: `${classPrefix}-image-mask__close-btn`, children: _jsx("i", { className: `${classPrefix}-image-mask__icon-close` }) }), _jsx("div", { ...bind(), ref: imagePreviewRef, className: `${classPrefix}-image-preview`, style: {
118
+ touchAction: 'none',
119
+ backgroundImage: `url('${src}')`,
120
+ transform: `translate(${translateX}px, ${translateY}px) scale(${previewScale})`,
121
+ width: showWidth,
122
+ height: showHeight,
123
+ marginTop: offsetHeight,
124
+ marginLeft: offsetWidth,
125
+ } })] }) }))] }));
123
126
  }
124
127
  else {
125
- return (React.createElement(React.Fragment, null,
126
- React.createElement("img", { style: {
127
- objectFit,
128
- cursor: 'zoom-in',
129
- ...style,
130
- }, className: `${className} wd-pc-image`, alt: alt, src: src, onLoad: (e) => {
131
- const img = e.target;
132
- const { naturalHeight, naturalWidth } = img;
133
- realHeight.current = naturalHeight;
134
- realWidth.current = naturalWidth;
135
- setIsError(false);
136
- events.load && events.load({}, { originEvent: e });
137
- }, onError: (e) => {
138
- setIsError(true);
139
- events.error && events.error({}, { originEvent: e });
140
- }, loading: lazyLoad ? 'lazy' : undefined, onClick: (e) => {
141
- if (imgPreview && !isError) {
142
- const windowHeight = window.innerHeight;
143
- const windowWidth = window.innerWidth;
144
- const widthRasio = (windowWidth * SCALE_RASIO_PC) / realWidth.current;
145
- const heightRasio = (windowHeight * SCALE_RASIO_PC) / realHeight.current;
146
- const scale = Math.min(widthRasio, heightRasio, ASPECT_RASIO) || ASPECT_RASIO;
147
- setOffsetHeight((windowHeight - realHeight.current * scale) * OFFSET_RASIO);
148
- setOffsetWidth((windowWidth - realWidth.current * scale) * OFFSET_RASIO);
149
- setShowHeight(realHeight.current * scale);
150
- setShowWidth(realWidth.current * scale);
151
- setImgShow(true);
152
- }
153
- events.tap && events.tap({}, { originEvent: e });
154
- } }),
155
- imgShow && (
156
- // <CreatePortal>
157
- React.createElement("div", { className: `${classPrefix}-image-mask`, onClick: onMaskClick },
158
- React.createElement("div", { onClick: () => setImgShow(false), className: `${classPrefix}-image-mask__close-btn` },
159
- React.createElement("i", { className: `${classPrefix}-image-mask__icon-close` })),
160
- React.createElement("div", { ...bind(), className: `${classPrefix}-image-preview`, style: {
161
- touchAction: 'none',
162
- backgroundImage: `url('${src}')`,
163
- width: showWidth,
164
- height: showHeight,
165
- marginTop: offsetHeight,
166
- marginLeft: offsetWidth,
167
- } }))
168
- // </CreatePortal>
169
- )));
128
+ return (_jsxs(_Fragment, { children: [_jsx("img", { id: id, style: {
129
+ objectFit,
130
+ cursor: 'zoom-in',
131
+ ...style,
132
+ }, className: `${className} wd-pc-image`, alt: alt, src: src, onLoad: (e) => {
133
+ const img = e.target;
134
+ const { naturalHeight, naturalWidth } = img;
135
+ realHeight.current = naturalHeight;
136
+ realWidth.current = naturalWidth;
137
+ setIsError(false);
138
+ events.load && events.load({}, { originEvent: e });
139
+ }, onError: (e) => {
140
+ setIsError(true);
141
+ events.error && events.error({}, { originEvent: e });
142
+ }, loading: lazyLoad ? 'lazy' : undefined, onClick: (e) => {
143
+ if (isStopPropagation) {
144
+ e.stopPropagation();
145
+ }
146
+ if (imgPreview && !isError) {
147
+ const windowHeight = window.innerHeight;
148
+ const windowWidth = window.innerWidth;
149
+ const widthRasio = (windowWidth * SCALE_RASIO_PC) / realWidth.current;
150
+ const heightRasio = (windowHeight * SCALE_RASIO_PC) / realHeight.current;
151
+ const scale = Math.min(widthRasio, heightRasio, ASPECT_RASIO) || ASPECT_RASIO;
152
+ setOffsetHeight((windowHeight - realHeight.current * scale) * OFFSET_RASIO);
153
+ setOffsetWidth((windowWidth - realWidth.current * scale) * OFFSET_RASIO);
154
+ setShowHeight(realHeight.current * scale);
155
+ setShowWidth(realWidth.current * scale);
156
+ setImgShow(true);
157
+ }
158
+ events.tap && events.tap({}, { originEvent: e });
159
+ } }), imgShow && (_jsx(CreatePortal, { className: `${classPrefix}-image-preview-container`, children: _jsxs("div", { className: `${classPrefix}-image-mask`, onClick: onMaskClick, children: [_jsx("div", { onClick: (e) => {
160
+ if (isStopPropagation) {
161
+ e.stopPropagation();
162
+ }
163
+ setImgShow(false);
164
+ }, className: `${classPrefix}-image-mask__close-btn`, children: _jsx("i", { className: `${classPrefix}-image-mask__icon-close` }) }), _jsx("div", { ...bind(), className: `${classPrefix}-image-preview`, style: {
165
+ touchAction: 'none',
166
+ backgroundImage: `url('${src}')`,
167
+ width: showWidth,
168
+ height: showHeight,
169
+ marginTop: offsetHeight,
170
+ marginLeft: offsetWidth,
171
+ } })] }) }))] }));
170
172
  }
171
173
  }
@@ -1,4 +1,5 @@
1
- import React, { forwardRef, useImperativeHandle, useState, useMemo, } from 'react';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef, useImperativeHandle, useState, useMemo, } from 'react';
2
3
  import classNames from '../../utils/classnames';
3
4
  import { ImageInner } from './image';
4
5
  import { emptyObject } from '../../utils/constant';
@@ -8,7 +9,7 @@ export default forwardRef(function WdImage({
8
9
  // 系统属性
9
10
  className, events = emptyObject, style,
10
11
  // 组件属性
11
- src, alt, mode, lazyLoad, imgPreview, maskClosable, fit, }, ref) {
12
+ src, alt, mode, lazyLoad, imgPreview, maskClosable, fit, id, isStopPropagation = false, }, ref) {
12
13
  const [isError, setIsError] = useState(false);
13
14
  const { classPrefix } = useConfig();
14
15
  const cls = classNames({
@@ -59,7 +60,7 @@ src, alt, mode, lazyLoad, imgPreview, maskClosable, fit, }, ref) {
59
60
  alt,
60
61
  };
61
62
  }, [fit, src, alt]);
62
- return src === realSrc || (realSrc !== undefined && src !== realSrc) ? (React.createElement(ImageInner, { objectFit: realFit, style: realStyle, className: cls, alt: alt, src: realSrc, isError: isError, setIsError: setIsError, events: events, lazyLoad: lazyLoad, imgPreview: imgPreview, maskClosable: maskClosable })) : null;
63
+ return src === realSrc || (realSrc !== undefined && src !== realSrc) ? (_jsx(ImageInner, { objectFit: realFit, style: realStyle, className: cls, alt: alt, src: realSrc, isError: isError, setIsError: setIsError, events: events, lazyLoad: lazyLoad, imgPreview: imgPreview, maskClosable: maskClosable, id: id, isStopPropagation: isStopPropagation })) : null;
63
64
  });
64
65
  function getObjectFitByWxImageMode(mode) {
65
66
  const array = [