@cloudbase/weda-ui 3.2.0 → 3.3.0

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 (356) hide show
  1. package/dist/cypress/support/commands.d.ts +1 -0
  2. package/dist/cypress/support/commands.js +40 -0
  3. package/dist/cypress/support/e2e.d.ts +24 -0
  4. package/dist/cypress/support/e2e.js +22 -0
  5. package/dist/src/configs/actions/showModal.json +48 -0
  6. package/dist/src/configs/actions/showToast.json +41 -0
  7. package/dist/src/configs/components/auth.json +16 -0
  8. package/dist/src/configs/components/button.json +239 -0
  9. package/dist/src/configs/components/calendar.json +81 -0
  10. package/dist/src/configs/components/carousel.json +292 -0
  11. package/dist/src/configs/components/chart/bar.json +962 -0
  12. package/dist/src/configs/components/chart/line.json +878 -0
  13. package/dist/src/configs/components/chart/pie.json +685 -0
  14. package/dist/src/configs/components/chart/statisticsCard.json +376 -0
  15. package/dist/src/configs/components/container.json +50 -0
  16. package/dist/src/configs/components/dataView.json +247 -0
  17. package/dist/src/configs/components/drawer.json +115 -0
  18. package/dist/src/configs/components/form/checkbox.json +179 -0
  19. package/dist/src/configs/components/form/departTreeSelect.json +124 -0
  20. package/dist/src/configs/components/form/form.json +73 -0
  21. package/dist/src/configs/components/form/input.json +154 -0
  22. package/dist/src/configs/components/form/location.json +216 -0
  23. package/dist/src/configs/components/form/radio.json +203 -0
  24. package/dist/src/configs/components/form/richText.json +133 -0
  25. package/dist/src/configs/components/form/select.json +449 -0
  26. package/dist/src/configs/components/form/switch.json +58 -0
  27. package/dist/src/configs/components/form/textarea.json +116 -0
  28. package/dist/src/configs/components/form/tips.json +34 -0
  29. package/dist/src/configs/components/form/uploader.json +171 -0
  30. package/dist/src/configs/components/form/uploaderFile.json +158 -0
  31. package/dist/src/configs/components/form/userTreeSelect.json +128 -0
  32. package/dist/src/configs/components/formdetail.json +105 -0
  33. package/dist/src/configs/components/graphicCard.json +413 -0
  34. package/dist/src/configs/components/image.json +187 -0
  35. package/dist/src/configs/components/link.json +79 -0
  36. package/dist/src/configs/components/listView.json +378 -0
  37. package/dist/src/configs/components/lottery.json +163 -0
  38. package/dist/src/configs/components/modal.json +72 -0
  39. package/dist/src/configs/components/navLayout.json +368 -0
  40. package/dist/src/configs/components/navigationBar.json +62 -0
  41. package/dist/src/configs/components/richtextview.json +26 -0
  42. package/dist/src/configs/components/scrollVeiw.json +253 -0
  43. package/dist/src/configs/components/slot.json +17 -0
  44. package/dist/src/configs/components/swiper.json +90 -0
  45. package/dist/src/configs/components/tabs.json +122 -0
  46. package/dist/src/configs/components/text.json +95 -0
  47. package/dist/src/configs/components/wedaVideo.json +89 -0
  48. package/dist/src/configs/components/wxOpenApi/phone.json +127 -0
  49. package/dist/src/configs/components/wxOpenApi/phoneCode.json +109 -0
  50. package/dist/src/configs/components/wxOpenApi/share.json +160 -0
  51. package/dist/src/configs/components/wxOpenApi/userInfo.json +156 -0
  52. package/dist/src/configs/index.d.ts +103 -0
  53. package/dist/src/configs/index.js +111 -0
  54. package/dist/src/docs/common/format.d.ts +13 -0
  55. package/dist/src/docs/common/format.js +122 -0
  56. package/dist/src/docs/common/tableView.d.ts +30 -0
  57. package/dist/src/docs/common/tableView.js +156 -0
  58. package/dist/src/index.d.ts +2 -0
  59. package/dist/src/index.js +3 -0
  60. package/dist/src/setupTests.d.ts +2 -0
  61. package/dist/src/setupTests.js +19 -0
  62. package/dist/src/web/actions/index.d.ts +2 -0
  63. package/dist/src/web/actions/index.js +2 -0
  64. package/dist/src/web/actions/showModal/index.d.ts +4 -0
  65. package/dist/src/web/actions/showModal/index.js +66 -0
  66. package/dist/src/web/actions/showToast/index.d.ts +1 -0
  67. package/dist/src/web/actions/showToast/index.js +3 -0
  68. package/dist/src/web/components/button/index.d.ts +32 -0
  69. package/dist/src/web/components/button/index.js +48 -0
  70. package/dist/src/web/components/calendar/index.d.ts +19 -0
  71. package/dist/src/web/components/calendar/index.js +191 -0
  72. package/dist/src/web/components/calendar/util.d.ts +13 -0
  73. package/dist/src/web/components/calendar/util.js +74 -0
  74. package/dist/src/web/components/carousel/index.d.ts +41 -0
  75. package/dist/src/web/components/carousel/index.js +244 -0
  76. package/dist/src/web/components/chart/bar/index.d.ts +3 -0
  77. package/dist/src/web/components/chart/bar/index.js +45 -0
  78. package/dist/src/web/components/chart/bar/index.old.d.ts +40 -0
  79. package/dist/src/web/components/chart/bar/index.old.js +56 -0
  80. package/dist/src/web/components/chart/common/Chart.d.ts +10 -0
  81. package/dist/src/web/components/chart/common/Chart.js +31 -0
  82. package/dist/src/web/components/chart/common/chart-custom-connector.d.ts +6 -0
  83. package/dist/src/web/components/chart/common/chart-custom-connector.js +35 -0
  84. package/dist/src/web/components/chart/common/chart-error.d.ts +2 -0
  85. package/dist/src/web/components/chart/common/chart-error.js +2 -0
  86. package/dist/src/web/components/chart/common/config/bar.d.ts +48 -0
  87. package/dist/src/web/components/chart/common/config/bar.js +49 -0
  88. package/dist/src/web/components/chart/common/config/global.d.ts +13 -0
  89. package/dist/src/web/components/chart/common/config/global.js +16 -0
  90. package/dist/src/web/components/chart/common/config/line.d.ts +46 -0
  91. package/dist/src/web/components/chart/common/config/line.js +49 -0
  92. package/dist/src/web/components/chart/common/config/pie.d.ts +29 -0
  93. package/dist/src/web/components/chart/common/config/pie.js +36 -0
  94. package/dist/src/web/components/chart/common/core/eChartBar.d.ts +66 -0
  95. package/dist/src/web/components/chart/common/core/eChartBar.js +201 -0
  96. package/dist/src/web/components/chart/common/core/eChartBase.d.ts +127 -0
  97. package/dist/src/web/components/chart/common/core/eChartBase.js +394 -0
  98. package/dist/src/web/components/chart/common/core/eChartLine.d.ts +60 -0
  99. package/dist/src/web/components/chart/common/core/eChartLine.js +173 -0
  100. package/dist/src/web/components/chart/common/core/eChartPie.d.ts +48 -0
  101. package/dist/src/web/components/chart/common/core/eChartPie.js +135 -0
  102. package/dist/src/web/components/chart/common/core/type.d.ts +35 -0
  103. package/dist/src/web/components/chart/common/core/type.js +9 -0
  104. package/dist/src/web/components/chart/common/data-transform.d.ts +6 -0
  105. package/dist/src/web/components/chart/common/data-transform.js +248 -0
  106. package/dist/src/web/components/chart/common/echarts.d.ts +5 -0
  107. package/dist/src/web/components/chart/common/echarts.js +24 -0
  108. package/dist/src/web/components/chart/common/error-boundary.d.ts +5 -0
  109. package/dist/src/web/components/chart/common/error-boundary.js +26 -0
  110. package/dist/src/web/components/chart/common/useChart.d.ts +8 -0
  111. package/dist/src/web/components/chart/common/useChart.js +72 -0
  112. package/dist/src/web/components/chart/line/index.d.ts +3 -0
  113. package/dist/src/web/components/chart/line/index.js +42 -0
  114. package/dist/src/web/components/chart/line/index.old.d.ts +38 -0
  115. package/dist/src/web/components/chart/line/index.old.js +53 -0
  116. package/dist/src/web/components/chart/pie/index.d.ts +3 -0
  117. package/dist/src/web/components/chart/pie/index.js +42 -0
  118. package/dist/src/web/components/chart/pie/index.old.d.ts +27 -0
  119. package/dist/src/web/components/chart/pie/index.old.js +40 -0
  120. package/dist/src/web/components/chart/statisticsCard/index.d.ts +85 -0
  121. package/dist/src/web/components/chart/statisticsCard/index.js +203 -0
  122. package/dist/src/web/components/chart/statisticsCard/interface.d.ts +13 -0
  123. package/dist/src/web/components/chart/statisticsCard/interface.js +1 -0
  124. package/dist/src/web/components/common/error-boundary.d.ts +5 -0
  125. package/dist/src/web/components/common/error-boundary.js +33 -0
  126. package/dist/src/web/components/common/portal.d.ts +7 -0
  127. package/dist/src/web/components/common/portal.js +14 -0
  128. package/dist/src/web/components/common/use-loop-render-detect.d.ts +11 -0
  129. package/dist/src/web/components/common/use-loop-render-detect.js +124 -0
  130. package/dist/src/web/components/container/index.d.ts +6 -0
  131. package/dist/src/web/components/container/index.js +6 -0
  132. package/dist/src/web/components/dataView/index.d.ts +6 -0
  133. package/dist/src/web/components/dataView/index.js +8 -0
  134. package/dist/src/web/components/dataView/interface.d.ts +5 -0
  135. package/dist/src/web/components/dataView/interface.js +1 -0
  136. package/dist/src/web/components/drawer/index.d.ts +13 -0
  137. package/dist/src/web/components/drawer/index.js +12 -0
  138. package/dist/src/web/components/form/checkbox/index.d.ts +13 -0
  139. package/dist/src/web/components/form/checkbox/index.js +167 -0
  140. package/dist/src/web/components/form/enumSelect/MultipleSelect.d.ts +78 -0
  141. package/dist/src/web/components/form/enumSelect/MultipleSelect.js +52 -0
  142. package/dist/src/web/components/form/enumSelect/NormalSelect.d.ts +83 -0
  143. package/dist/src/web/components/form/enumSelect/NormalSelect.js +52 -0
  144. package/dist/src/web/components/form/enumSelect/SelectContainer.d.ts +16 -0
  145. package/dist/src/web/components/form/enumSelect/SelectContainer.js +30 -0
  146. package/dist/src/web/components/form/enumSelect/index.d.ts +82 -0
  147. package/dist/src/web/components/form/enumSelect/index.js +6 -0
  148. package/dist/src/web/components/form/enumSelect/props/defaultProps.d.ts +34 -0
  149. package/dist/src/web/components/form/enumSelect/props/defaultProps.js +40 -0
  150. package/dist/src/web/components/form/enumSelect/props/propsTypes.d.ts +39 -0
  151. package/dist/src/web/components/form/enumSelect/props/propsTypes.js +47 -0
  152. package/dist/src/web/components/form/form/index.d.ts +32 -0
  153. package/dist/src/web/components/form/form/index.js +150 -0
  154. package/dist/src/web/components/form/formcell/index.d.ts +8 -0
  155. package/dist/src/web/components/form/formcell/index.js +40 -0
  156. package/dist/src/web/components/form/input/index.d.ts +14 -0
  157. package/dist/src/web/components/form/input/index.js +94 -0
  158. package/dist/src/web/components/form/location/common/mapChoose.d.ts +15 -0
  159. package/dist/src/web/components/form/location/common/mapChoose.js +496 -0
  160. package/dist/src/web/components/form/location/common/mapView.d.ts +19 -0
  161. package/dist/src/web/components/form/location/common/mapView.js +175 -0
  162. package/dist/src/web/components/form/location/common/propsConfig.d.ts +59 -0
  163. package/dist/src/web/components/form/location/common/propsConfig.js +50 -0
  164. package/dist/src/web/components/form/location/common/selectModal.d.ts +21 -0
  165. package/dist/src/web/components/form/location/common/selectModal.js +44 -0
  166. package/dist/src/web/components/form/location/common/tmap.d.ts +3 -0
  167. package/dist/src/web/components/form/location/common/tmap.js +21 -0
  168. package/dist/src/web/components/form/location/common/useLocationInfo.d.ts +36 -0
  169. package/dist/src/web/components/form/location/common/useLocationInfo.js +105 -0
  170. package/dist/src/web/components/form/location/components/LocationH5/location.h5.d.ts +8 -0
  171. package/dist/src/web/components/form/location/components/LocationH5/location.h5.js +328 -0
  172. package/dist/src/web/components/form/location/components/LocationPC/Header.d.ts +12 -0
  173. package/dist/src/web/components/form/location/components/LocationPC/Header.js +43 -0
  174. package/dist/src/web/components/form/location/components/LocationPC/location.PC.d.ts +8 -0
  175. package/dist/src/web/components/form/location/components/LocationPC/location.PC.js +228 -0
  176. package/dist/src/web/components/form/location/constants.d.ts +2 -0
  177. package/dist/src/web/components/form/location/constants.js +3 -0
  178. package/dist/src/web/components/form/location/index.d.ts +1 -0
  179. package/dist/src/web/components/form/location/index.js +24 -0
  180. package/dist/src/web/components/form/radio/index.d.ts +11 -0
  181. package/dist/src/web/components/form/radio/index.js +115 -0
  182. package/dist/src/web/components/form/renderDecorator.d.ts +6 -0
  183. package/dist/src/web/components/form/renderDecorator.js +20 -0
  184. package/dist/src/web/components/form/select/allTimePicker/calendar.d.ts +13 -0
  185. package/dist/src/web/components/form/select/allTimePicker/calendar.js +104 -0
  186. package/dist/src/web/components/form/select/allTimePicker/dataUtils.d.ts +24 -0
  187. package/dist/src/web/components/form/select/allTimePicker/dataUtils.js +265 -0
  188. package/dist/src/web/components/form/select/allTimePicker/index.d.ts +14 -0
  189. package/dist/src/web/components/form/select/allTimePicker/index.js +944 -0
  190. package/dist/src/web/components/form/select/dropdown-select/ui.d.ts +15 -0
  191. package/dist/src/web/components/form/select/dropdown-select/ui.js +55 -0
  192. package/dist/src/web/components/form/select/h5.d.ts +16 -0
  193. package/dist/src/web/components/form/select/h5.js +466 -0
  194. package/dist/src/web/components/form/select/index.d.ts +66 -0
  195. package/dist/src/web/components/form/select/index.js +255 -0
  196. package/dist/src/web/components/form/select/region/index.d.ts +6 -0
  197. package/dist/src/web/components/form/select/region/index.js +147 -0
  198. package/dist/src/web/components/form/select/time.d.ts +9 -0
  199. package/dist/src/web/components/form/select/time.js +146 -0
  200. package/dist/src/web/components/form/select/use-options.d.ts +26 -0
  201. package/dist/src/web/components/form/select/use-options.js +103 -0
  202. package/dist/src/web/components/form/select/year.d.ts +7 -0
  203. package/dist/src/web/components/form/select/year.js +72 -0
  204. package/dist/src/web/components/form/switch/index.d.ts +6 -0
  205. package/dist/src/web/components/form/switch/index.js +58 -0
  206. package/dist/src/web/components/form/textarea/index.d.ts +12 -0
  207. package/dist/src/web/components/form/textarea/index.js +66 -0
  208. package/dist/src/web/components/form/tips/index.d.ts +8 -0
  209. package/dist/src/web/components/form/tips/index.js +17 -0
  210. package/dist/src/web/components/form/uploader/index.d.ts +3 -0
  211. package/dist/src/web/components/form/uploader/index.js +42 -0
  212. package/dist/src/web/components/form/uploader/uploader.h5.d.ts +20 -0
  213. package/dist/src/web/components/form/uploader/uploader.h5.js +199 -0
  214. package/dist/src/web/components/form/uploader/uploader.pc.d.ts +29 -0
  215. package/dist/src/web/components/form/uploader/uploader.pc.js +208 -0
  216. package/dist/src/web/components/form/uploaderFile/index.d.ts +4 -0
  217. package/dist/src/web/components/form/uploaderFile/index.js +19 -0
  218. package/dist/src/web/components/form/uploaderFile/uploadFile.h5.d.ts +23 -0
  219. package/dist/src/web/components/form/uploaderFile/uploadFile.h5.js +330 -0
  220. package/dist/src/web/components/form/uploaderFile/uploadFile.pc.d.ts +24 -0
  221. package/dist/src/web/components/form/uploaderFile/uploadFile.pc.js +302 -0
  222. package/dist/src/web/components/form/userOrgSelect/comTool.d.ts +8 -0
  223. package/dist/src/web/components/form/userOrgSelect/comTool.js +101 -0
  224. package/dist/src/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.d.ts +19 -0
  225. package/dist/src/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.js +252 -0
  226. package/dist/src/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.pc.d.ts +4 -0
  227. package/dist/src/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.pc.js +157 -0
  228. package/dist/src/web/components/form/userOrgSelect/departTreeSelect/index.d.ts +2 -0
  229. package/dist/src/web/components/form/userOrgSelect/departTreeSelect/index.js +17 -0
  230. package/dist/src/web/components/form/userOrgSelect/getUserService.d.ts +11 -0
  231. package/dist/src/web/components/form/userOrgSelect/getUserService.js +159 -0
  232. package/dist/src/web/components/form/userOrgSelect/index.d.ts +2 -0
  233. package/dist/src/web/components/form/userOrgSelect/index.js +17 -0
  234. package/dist/src/web/components/form/userOrgSelect/userTreeSelect.h5.d.ts +27 -0
  235. package/dist/src/web/components/form/userOrgSelect/userTreeSelect.h5.js +276 -0
  236. package/dist/src/web/components/form/userOrgSelect/userTreeSelect.pc.d.ts +9 -0
  237. package/dist/src/web/components/form/userOrgSelect/userTreeSelect.pc.js +253 -0
  238. package/dist/src/web/components/form/userOrgSelect/utils.d.ts +36 -0
  239. package/dist/src/web/components/form/userOrgSelect/utils.js +80 -0
  240. package/dist/src/web/components/formdetail/index.d.ts +28 -0
  241. package/dist/src/web/components/formdetail/index.js +173 -0
  242. package/dist/src/web/components/graphicCard/index.d.ts +46 -0
  243. package/dist/src/web/components/graphicCard/index.js +178 -0
  244. package/dist/src/web/components/image/image.d.ts +9 -0
  245. package/dist/src/web/components/image/image.js +119 -0
  246. package/dist/src/web/components/image/index.d.ts +13 -0
  247. package/dist/src/web/components/image/index.js +77 -0
  248. package/dist/src/web/components/index.d.ts +50 -0
  249. package/dist/src/web/components/index.js +99 -0
  250. package/dist/src/web/components/link/index.d.ts +24 -0
  251. package/dist/src/web/components/link/index.js +71 -0
  252. package/dist/src/web/components/listView/index.d.ts +7 -0
  253. package/dist/src/web/components/listView/index.js +297 -0
  254. package/dist/src/web/components/listView/interface.d.ts +127 -0
  255. package/dist/src/web/components/listView/interface.js +1 -0
  256. package/dist/src/web/components/lottery/index.d.ts +22 -0
  257. package/dist/src/web/components/lottery/index.js +385 -0
  258. package/dist/src/web/components/lottery/lotteryUtil.d.ts +23 -0
  259. package/dist/src/web/components/lottery/lotteryUtil.js +181 -0
  260. package/dist/src/web/components/modal/index.d.ts +17 -0
  261. package/dist/src/web/components/modal/index.js +11 -0
  262. package/dist/src/web/components/modal/modal.h5.d.ts +4 -0
  263. package/dist/src/web/components/modal/modal.h5.js +46 -0
  264. package/dist/src/web/components/modal/modal.pc.d.ts +3 -0
  265. package/dist/src/web/components/modal/modal.pc.js +31 -0
  266. package/dist/src/web/components/navLayout/index.d.ts +61 -0
  267. package/dist/src/web/components/navLayout/index.js +127 -0
  268. package/dist/src/web/components/navigationBar/common.d.ts +15 -0
  269. package/dist/src/web/components/navigationBar/common.js +127 -0
  270. package/dist/src/web/components/navigationBar/h5Menu.d.ts +14 -0
  271. package/dist/src/web/components/navigationBar/h5Menu.js +72 -0
  272. package/dist/src/web/components/navigationBar/horizontalMenu.d.ts +12 -0
  273. package/dist/src/web/components/navigationBar/horizontalMenu.js +99 -0
  274. package/dist/src/web/components/navigationBar/index.d.ts +13 -0
  275. package/dist/src/web/components/navigationBar/index.js +157 -0
  276. package/dist/src/web/components/navigationBar/verticalMenu.d.ts +13 -0
  277. package/dist/src/web/components/navigationBar/verticalMenu.js +38 -0
  278. package/dist/src/web/components/phone/index.d.ts +18 -0
  279. package/dist/src/web/components/phone/index.js +4 -0
  280. package/dist/src/web/components/phoneCode/index.d.ts +18 -0
  281. package/dist/src/web/components/phoneCode/index.js +4 -0
  282. package/dist/src/web/components/picker/datePicker.d.ts +10 -0
  283. package/dist/src/web/components/picker/datePicker.js +31 -0
  284. package/dist/src/web/components/picker/picker.d.ts +6 -0
  285. package/dist/src/web/components/picker/picker.js +45 -0
  286. package/dist/src/web/components/picker/timePicker.d.ts +7 -0
  287. package/dist/src/web/components/picker/timePicker.js +42 -0
  288. package/dist/src/web/components/richText/const.d.ts +1 -0
  289. package/dist/src/web/components/richText/const.js +2 -0
  290. package/dist/src/web/components/richText/index.d.ts +50 -0
  291. package/dist/src/web/components/richText/index.js +351 -0
  292. package/dist/src/web/components/richTextView/index.d.ts +7 -0
  293. package/dist/src/web/components/richTextView/index.js +46 -0
  294. package/dist/src/web/components/scrollView/index.d.ts +26 -0
  295. package/dist/src/web/components/scrollView/index.js +97 -0
  296. package/dist/src/web/components/share/index.d.ts +34 -0
  297. package/dist/src/web/components/share/index.js +4 -0
  298. package/dist/src/web/components/slot/index.d.ts +6 -0
  299. package/dist/src/web/components/slot/index.js +9 -0
  300. package/dist/src/web/components/swiper/index.d.ts +24 -0
  301. package/dist/src/web/components/swiper/index.js +153 -0
  302. package/dist/src/web/components/tabs/index.d.ts +13 -0
  303. package/dist/src/web/components/tabs/index.js +20 -0
  304. package/dist/src/web/components/tabs/tabs.h5.d.ts +4 -0
  305. package/dist/src/web/components/tabs/tabs.h5.js +44 -0
  306. package/dist/src/web/components/tabs/tabs.pc.d.ts +3 -0
  307. package/dist/src/web/components/tabs/tabs.pc.js +40 -0
  308. package/dist/src/web/components/text/index.d.ts +14 -0
  309. package/dist/src/web/components/text/index.js +19 -0
  310. package/dist/src/web/components/uploaderFileView/index.d.ts +10 -0
  311. package/dist/src/web/components/uploaderFileView/index.js +46 -0
  312. package/dist/src/web/components/uploaderView/index.d.ts +17 -0
  313. package/dist/src/web/components/uploaderView/index.js +48 -0
  314. package/dist/src/web/components/userInfo/index.d.ts +26 -0
  315. package/dist/src/web/components/userInfo/index.js +4 -0
  316. package/dist/src/web/components/wedaVideo/index.d.ts +17 -0
  317. package/dist/src/web/components/wedaVideo/index.js +156 -0
  318. package/dist/src/web/index.d.ts +8 -0
  319. package/dist/src/web/index.js +4 -0
  320. package/dist/src/web/utils/classnames.d.ts +2 -0
  321. package/dist/src/web/utils/classnames.js +37 -0
  322. package/dist/src/web/utils/console.d.ts +3 -0
  323. package/dist/src/web/utils/console.js +26 -0
  324. package/dist/src/web/utils/constant.d.ts +23 -0
  325. package/dist/src/web/utils/constant.js +24 -0
  326. package/dist/src/web/utils/debounce.d.ts +2 -0
  327. package/dist/src/web/utils/debounce.js +92 -0
  328. package/dist/src/web/utils/getLocalCounter.d.ts +1 -0
  329. package/dist/src/web/utils/getLocalCounter.js +4 -0
  330. package/dist/src/web/utils/getUserService.d.ts +11 -0
  331. package/dist/src/web/utils/getUserService.js +156 -0
  332. package/dist/src/web/utils/isObjectEqual.d.ts +2 -0
  333. package/dist/src/web/utils/isObjectEqual.js +12 -0
  334. package/dist/src/web/utils/loading-fallback.d.ts +2 -0
  335. package/dist/src/web/utils/loading-fallback.js +2 -0
  336. package/dist/src/web/utils/lodash.d.ts +1 -0
  337. package/dist/src/web/utils/lodash.js +2 -0
  338. package/dist/src/web/utils/platform.d.ts +18 -0
  339. package/dist/src/web/utils/platform.js +193 -0
  340. package/dist/src/web/utils/tcb.d.ts +33 -0
  341. package/dist/src/web/utils/tcb.js +118 -0
  342. package/dist/src/web/utils/tmap.d.ts +3 -0
  343. package/dist/src/web/utils/tmap.js +21 -0
  344. package/dist/src/web/utils/use-cloud-id-temp-url.d.ts +1 -0
  345. package/dist/src/web/utils/use-cloud-id-temp-url.js +15 -0
  346. package/dist/src/web/utils/useSetState.d.ts +1 -0
  347. package/dist/src/web/utils/useSetState.js +8 -0
  348. package/dist/src/web/utils/useSyncValue.d.ts +4 -0
  349. package/dist/src/web/utils/useSyncValue.js +16 -0
  350. package/dist/src/web/utils/weui.d.ts +1 -0
  351. package/dist/src/web/utils/weui.js +2 -0
  352. package/dist/web/components/form/input/index.css +16 -0
  353. package/dist/web/components/form/select/allTimePicker/calendar.css +114 -0
  354. package/dist/web/components/form/select/allTimePicker/index.css +136 -0
  355. package/dist/web/components/form/userOrgSelect/userOrgSelect.css +809 -0
  356. package/package.json +34 -21
@@ -0,0 +1,103 @@
1
+ import { useAsync, useDeepCompareEffect } from '@react-hookz/web';
2
+ import destr from 'destr';
3
+ import { useCallback, useEffect } from 'react';
4
+ import { getWhereList } from '../../../utils/platform';
5
+ import { callDataSource as tcbCallDataSource, callWedaApi as tcbCallWedaApi, } from '../../../utils/tcb';
6
+ import { useSyncValue } from '../../../utils/useSyncValue';
7
+ const formatNeedDataFetch = ['father-son', 'related', 'x-enum'];
8
+ export function useOptions(params) {
9
+ const { format, controlledValue, callDataSource = tcbCallDataSource, callWedaApi = tcbCallWedaApi, ...restOptions } = params;
10
+ // 获取自定义选项集
11
+ const fetchEnumData = useCallback(async (param) => {
12
+ var _a, _b, _c;
13
+ const data = await callWedaApi({
14
+ action: 'DescribeGeneralOptionsDetailList',
15
+ data: param,
16
+ });
17
+ const config = (_c = destr((_b = (_a = data === null || data === void 0 ? void 0 : data.Items) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.Config)) !== null && _c !== void 0 ? _c : [];
18
+ const enumOption = config.map((item) => {
19
+ return {
20
+ label: item.value,
21
+ value: item.key,
22
+ };
23
+ });
24
+ return enumOption;
25
+ }, [callWedaApi]);
26
+ const fetchData = useCallback(async (param) => {
27
+ let pageNo = 1;
28
+ const pageSize = 200;
29
+ let records = [];
30
+ let total = 99999;
31
+ for (let index = 0; index < Math.floor(total / pageSize) + 1; index++) {
32
+ const data = await callDataSource({
33
+ dataSourceName: param.dataSourceName,
34
+ viewId: param.viewId,
35
+ methodName: param.methodName,
36
+ params: {
37
+ pageNo: pageNo,
38
+ pageSize: pageSize,
39
+ where: param.params,
40
+ },
41
+ });
42
+ pageNo = pageNo + 1;
43
+ if (data === null || data === void 0 ? void 0 : data.records) {
44
+ total = (data === null || data === void 0 ? void 0 : data.total) || 0;
45
+ records = records.concat(data === null || data === void 0 ? void 0 : data.records);
46
+ }
47
+ }
48
+ return records;
49
+ }, [callDataSource]);
50
+ const [options, setOptions] = useSyncValue(controlledValue);
51
+ const [state, actions] = useAsync(async () => {
52
+ if (format === 'father-son' || format === 'related') {
53
+ const { dataSourceName, viewId, where, primaryField } = restOptions;
54
+ const whereEffected = [].concat(getWhereList(where));
55
+ const results = await fetchData({
56
+ dataSourceName,
57
+ viewId,
58
+ methodName: 'wedaGetRecords',
59
+ params: whereEffected,
60
+ });
61
+ if (primaryField) {
62
+ if (results && results.length !== 0) {
63
+ const option = results.map((item) => {
64
+ return {
65
+ label: item[primaryField] || item._id,
66
+ value: item._id,
67
+ };
68
+ });
69
+ return option;
70
+ }
71
+ else {
72
+ // 留一个空的weui才正常
73
+ return [{ label: '', value: '' }];
74
+ }
75
+ }
76
+ return results.map((opt) => ({
77
+ label: opt._id,
78
+ value: opt._id,
79
+ })); // 兜底 正常来说一定有primaryField
80
+ }
81
+ if (format === 'x-enum') {
82
+ // 如果绑定字段类型为枚举,且传入自定义选项集的名称则默认使用自定义选项集的内容作为选项
83
+ const { enumName } = restOptions;
84
+ return fetchEnumData({
85
+ OptNameList: [enumName],
86
+ PageIndex: 1,
87
+ PageSize: 10,
88
+ });
89
+ }
90
+ }, []);
91
+ useDeepCompareEffect(() => {
92
+ if (formatNeedDataFetch.includes(format)) {
93
+ actions.execute();
94
+ }
95
+ // @ts-ignore not check
96
+ }, [format, restOptions.enumName, restOptions.where]);
97
+ useEffect(() => {
98
+ if (state.status === 'success') {
99
+ setOptions(state.result);
100
+ }
101
+ }, [setOptions, state, state.status]);
102
+ return [options];
103
+ }
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import './index.css';
3
+ /**
4
+ * pc 版简易年份选择器
5
+ * 传参与 DatePicker 保持一致
6
+ */
7
+ export default function YearPicker(props: any): JSX.Element;
@@ -0,0 +1,72 @@
1
+ import * as React from 'react';
2
+ import { Popover, ConfigProvider, useConfig, Input, Icon, Button, } from 'tea-component';
3
+ import classNames from '../../../utils/classnames';
4
+ import { moment } from './index';
5
+ import './index.css';
6
+ /**
7
+ * pc 版简易年份选择器
8
+ * 传参与 DatePicker 保持一致
9
+ */
10
+ export default function YearPicker(props) {
11
+ const { range = [], disabled, value, onChange, className, placeholder, size, ...rest } = props;
12
+ const { classPrefix } = useConfig();
13
+ const inputRef = React.useRef(null);
14
+ const [show, setShow] = React.useState(false);
15
+ const [page, setPage] = React.useState(0);
16
+ const [inputValue, setInputValue] = React.useState(transValueToYear(value));
17
+ const { pageYears, pageStart, pageEnd } = getYears(inputValue, page);
18
+ const [min, max] = [
19
+ transValueToYear(range === null || range === void 0 ? void 0 : range[0]),
20
+ transValueToYear(range === null || range === void 0 ? void 0 : range[1]),
21
+ ];
22
+ React.useEffect(() => {
23
+ setInputValue(transValueToYear(value));
24
+ }, [value]);
25
+ return (React.createElement(ConfigProvider, { classPrefix: "wedatea2td" },
26
+ React.createElement(Popover, { trigger: "click", visible: show, onVisibleChange: (v) => !v && setShow(v), overlay: React.createElement("div", { className: classNames(`${classPrefix}-dropdown-box`, 'year-picker__overlay') },
27
+ React.createElement("div", { className: classNames(`${classPrefix}-calendar__caption`, 'year-picker__header') },
28
+ React.createElement("div", { className: "year-picker__header-title" },
29
+ pageStart,
30
+ "-",
31
+ pageEnd),
32
+ React.createElement("div", { className: "year-picker__header-actions" },
33
+ React.createElement(Button, { type: "link", icon: "arrowleft", title: "\u4E0A\u4E8C\u5341\u5E74", onClick: () => setPage((d) => d - 1) }),
34
+ React.createElement(Button, { type: "link", icon: "cur-active", title: "\u5F53\u524D\u4E8C\u5341\u5E74", onClick: () => setPage(0) }),
35
+ React.createElement(Button, { type: "link", icon: "arrowright", title: "\u4E0B\u4E8C\u5341\u5E74", onClick: () => setPage((d) => d + 1) }))),
36
+ React.createElement("div", { className: classNames(`${classPrefix}-calendar__type--year`, 'year-picker__body') }, pageYears.map((list) => (React.createElement("div", { key: list.join(), className: classNames(`${classPrefix}-calendar__row`) }, list.map((item) => {
37
+ const isSelected = item === inputValue;
38
+ const isDisabled = (min && Number(item) < Number(min)) ||
39
+ (max && Number(item) > Number(max));
40
+ return (React.createElement("div", { key: item, className: classNames(`${classPrefix}-calendar__cell`, 'year-picker__cell', {
41
+ 'is-selected': isSelected,
42
+ 'is-disabled': isDisabled,
43
+ }), onClick: () => {
44
+ if (isDisabled)
45
+ return;
46
+ setShow(false);
47
+ setInputValue(item);
48
+ onChange === null || onChange === void 0 ? void 0 : onChange(moment(item));
49
+ } },
50
+ React.createElement("span", null, item)));
51
+ })))))) },
52
+ React.createElement("div", { ...rest, onClick: () => !disabled && setShow(true), className: classNames(`${classPrefix}-datepicker`, className) },
53
+ React.createElement("div", { className: classNames(`${classPrefix}-datepicker__input`) },
54
+ React.createElement(Input, { size: size, ref: inputRef, disabled: disabled, placeholder: placeholder, value: inputValue, onFocus: () => inputRef.current.blur() }),
55
+ React.createElement(Icon, { type: "dismiss" }))))));
56
+ }
57
+ /**
58
+ * 获取当前20年,page 表示分页,1表示下一页,-1表示上一页
59
+ * @returns [][]
60
+ */
61
+ const getYears = (currentYear, page = 0) => {
62
+ currentYear = currentYear || new Date().getFullYear();
63
+ const startYear = (Math.floor(parseInt(currentYear) / 20) + page) * 20;
64
+ const pageYears = Array.from({ length: 5 }).map((item, i1) => Array.from({ length: 4 }).map((item, i2) => i1 * 4 + i2 + startYear + ''));
65
+ return { pageYears, pageStart: startYear, pageEnd: startYear + 20 - 1 };
66
+ };
67
+ /**
68
+ * 输入 moment 值转 string 年份
69
+ */
70
+ const transValueToYear = (val) => {
71
+ return moment.isMoment(val) ? val.format('YYYY') : '';
72
+ };
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import type { CommonFormPropsType } from '../types';
3
+ export default function Switch({ id, className, style, events, label, labelVisible, checked: defaultChecked, layout, disabled, requiredFlag, decorator, }: PropsType): JSX.Element;
4
+ export interface PropsType extends CommonFormPropsType {
5
+ checked?: boolean;
6
+ }
@@ -0,0 +1,58 @@
1
+ import * as React from 'react';
2
+ import classNames from '../../../utils/classnames';
3
+ import getLocalCounter from '../../../utils/getLocalCounter';
4
+ import { usePlatform } from '../../../utils/platform';
5
+ import { ConfigProvider, Switch as TeaSwitch } from 'tea-component';
6
+ import { renderDecorator } from '../renderDecorator';
7
+ import { useSyncValue } from '../../../utils/useSyncValue';
8
+ import { emptyObject } from '../../../utils/constant';
9
+ import styles from './switch.module.css';
10
+ export default function Switch({
11
+ // 系统属性
12
+ id, className, style, events = emptyObject,
13
+ // 组件属性
14
+ label = '标题', labelVisible = true, checked: defaultChecked, layout = 'horizontal', disabled = false, requiredFlag = false, decorator, }) {
15
+ const isFlex = layout !== 'vertical';
16
+ const cls = classNames({
17
+ 'weda-ui': true,
18
+ 'weda-switch': true,
19
+ [className]: className,
20
+ });
21
+ const subCls = classNames({
22
+ 'weui-cell': true,
23
+ 'weui-cell_active': true,
24
+ 'weui-cell_switch': true,
25
+ 'weui-flex__item': isFlex,
26
+ 'weui-cell_disabled': disabled,
27
+ });
28
+ const platform = usePlatform();
29
+ // 两次默认值不同时, 需要刷新
30
+ const [checked, setChecked] = useSyncValue(defaultChecked);
31
+ // 现在低码组件往源码组件传入的id不唯一, 暂时使用hashcode替代
32
+ const hashcode = getLocalCounter();
33
+ const _id = `switch-${hashcode}`;
34
+ const switchElement = platform === 'h5' ? (React.createElement("div", { className: subCls, "data-testid": "form-switch" },
35
+ isFlex ? React.createElement("div", { className: "weui-cell__bd" }) : null,
36
+ React.createElement("div", { className: isFlex ? 'weui-cell__ft' : 'weui-cell__bd' },
37
+ React.createElement("label", { htmlFor: _id, key: _id, className: "weui-switch-cp" },
38
+ React.createElement("input", { id: _id, className: `weui-switch-cp__input ${styles.wedaSwitchInput}`, type: "checkbox", checked: checked, disabled: disabled, onChange: (ev) => {
39
+ const value = ev.target.checked;
40
+ setChecked(value);
41
+ events.change({ value }, { orgianalEvent: ev });
42
+ } }),
43
+ React.createElement("div", { className: "weui-switch-cp__box" }))))) : (React.createElement(ConfigProvider, { classPrefix: "wedatea2td" },
44
+ React.createElement(TeaSwitch, { id: _id, value: checked, disabled: disabled, onChange: (value, context) => {
45
+ const originEvent = context.event;
46
+ setChecked(value);
47
+ events.change({ value }, { originEvent });
48
+ }, "data-testid": "form-switch" })));
49
+ return renderDecorator(switchElement, decorator)({
50
+ id,
51
+ className: cls,
52
+ style,
53
+ label: labelVisible ? label : null,
54
+ layout,
55
+ multiCell: false,
56
+ requiredFlag,
57
+ });
58
+ }
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import './index.css';
3
+ import type { CommonFormPropsType } from '../types';
4
+ export default function Textarea({ id, className, style, events, label, labelVisible, defaultValue, placeholder, maxLength, disabled, focus: autoFocus, layout, requiredFlag, counterVisible, size, decorator, }: PropsType): JSX.Element;
5
+ export interface PropsType extends CommonFormPropsType {
6
+ defaultValue?: string;
7
+ placeholder?: string;
8
+ maxLength?: number;
9
+ focus?: boolean;
10
+ counterVisible?: boolean;
11
+ size?: 's' | 'm' | 'l' | 'full';
12
+ }
@@ -0,0 +1,66 @@
1
+ import * as React from 'react';
2
+ import classNames from '../../../utils/classnames';
3
+ import './index.css';
4
+ import { ConfigProvider, Input } from 'tea-component';
5
+ import { usePlatform } from '../../../utils/platform';
6
+ import { renderDecorator } from '../renderDecorator';
7
+ import { useSyncValue } from '../../../utils/useSyncValue';
8
+ import { emptyObject } from '../../../utils/constant';
9
+ export default function Textarea({
10
+ // 系统属性
11
+ id, className, style, events = emptyObject,
12
+ // 组件属性
13
+ label = '标题', labelVisible = true, defaultValue = '', placeholder = '请输入', maxLength = 140, disabled = false, focus: autoFocus = false, layout = 'horizontal', requiredFlag = false, counterVisible = true, size = 'l', decorator, }) {
14
+ const platform = usePlatform();
15
+ const cls = classNames({
16
+ 'weda-ui': true,
17
+ 'weda-textarea': true,
18
+ [className]: className,
19
+ });
20
+ const subCls = classNames({
21
+ 'weui-cell': true,
22
+ 'weui-cell_active': true,
23
+ 'weui-cell_form': true,
24
+ 'weui-cell_disabled': disabled,
25
+ });
26
+ // 两次默认值不同时, 需要刷新value
27
+ const [value, setValue] = useSyncValue(defaultValue);
28
+ const counter = React.useMemo(() => (value === null || value === void 0 ? void 0 : value.length) || 0, [value]);
29
+ const onChange = function (e) {
30
+ const text = typeof e === 'string' ? e : e.target.value;
31
+ setValue(text);
32
+ events.change({ value: text });
33
+ };
34
+ const onFocus = function (e) {
35
+ var _a;
36
+ (_a = events.focus) === null || _a === void 0 ? void 0 : _a.call(events, { value: e.target.value }, { originEvent: e });
37
+ };
38
+ const onBlur = function (e) {
39
+ var _a;
40
+ (_a = events.blur) === null || _a === void 0 ? void 0 : _a.call(events, { value: e.target.value }, { originEvent: e });
41
+ };
42
+ let textAreaElement;
43
+ if (platform === 'h5') {
44
+ textAreaElement = (React.createElement("div", { className: subCls },
45
+ React.createElement("div", { className: "weui-cell__bd" },
46
+ React.createElement("textarea", { className: "weui-textarea", placeholder: placeholder, value: value, onChange: onChange, onFocus: onFocus, onBlur: onBlur, maxLength: maxLength, disabled: disabled, autoFocus: autoFocus }),
47
+ counterVisible ? (React.createElement("div", { className: "weui-textarea-counter" },
48
+ React.createElement("span", null, counter),
49
+ "/",
50
+ maxLength)) : null)));
51
+ }
52
+ else {
53
+ textAreaElement = (React.createElement(ConfigProvider, { classPrefix: "wedatea2td" },
54
+ React.createElement(Input.TextArea, { "data-testid": "weui-textarea-test", size: size, placeholder: placeholder, value: value, onChange: onChange, onFocus: onFocus, onBlur: onBlur, maxLength: maxLength, disabled: disabled, autoFocus: autoFocus, showCount: true })));
55
+ }
56
+ return renderDecorator(textAreaElement, decorator)({
57
+ id,
58
+ className: cls,
59
+ style,
60
+ label: labelVisible ? label : null,
61
+ layout,
62
+ multiCell: false,
63
+ requiredFlag,
64
+ size,
65
+ });
66
+ }
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import type { CommonPropsType } from '../../../types';
3
+ import './index.css';
4
+ export default function Tips({ className, tips, type, id, style, }: PropsType): JSX.Element;
5
+ export interface PropsType extends CommonPropsType {
6
+ tips?: string;
7
+ type?: 'warn' | 'normal';
8
+ }
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import classNames from '../../../utils/classnames';
3
+ import './index.css';
4
+ export default function Tips({
5
+ // 系统属性
6
+ className,
7
+ // 组件属性
8
+ tips = '表单提示', type = 'normal', id, style, }) {
9
+ const cls = classNames({
10
+ 'weda-ui': true,
11
+ 'weda-tips': true,
12
+ 'weui-cells__tips': !!tips,
13
+ 'weui-cells__tips_warn': !!tips && type === 'warn',
14
+ [className]: className,
15
+ });
16
+ return (React.createElement("div", { className: cls, id: id, style: style }, tips));
17
+ }
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import './index.css';
3
+ export default function Uploader(props: any): JSX.Element;
@@ -0,0 +1,42 @@
1
+ /* eslint-disable react/prop-types */
2
+ import * as React from 'react';
3
+ import { usePlatform } from '../../../utils/platform';
4
+ import { ImageUploaderH5 as UploaderH5 } from './uploader.h5';
5
+ import classNames from '../../../utils/classnames';
6
+ import { UploaderPCInner } from './uploader.pc';
7
+ import './index.css';
8
+ import { renderDecorator } from '../renderDecorator';
9
+ /**
10
+ * 图片组件上传,区分 h5端/pc端
11
+ */
12
+ function UploaderPc(props) {
13
+ const { layout, className, id, style, labelVisible = true, title = '上传图片', requiredFlag = false, decorator, ...restProps } = props;
14
+ const cls = classNames({
15
+ 'weda-ui': true,
16
+ [className]: className,
17
+ cloudbase_standard: true,
18
+ });
19
+ return renderDecorator(React.createElement(UploaderPCInner, { ...restProps, style: {
20
+ height: '100%',
21
+ display: 'flex',
22
+ alignItems: 'center',
23
+ } }), decorator)({
24
+ id,
25
+ className: cls,
26
+ style,
27
+ label: labelVisible ? title : null,
28
+ layout,
29
+ multiCell: false,
30
+ requiredFlag,
31
+ });
32
+ }
33
+ export default function Uploader(props) {
34
+ const platform = usePlatform();
35
+ if ((props === null || props === void 0 ? void 0 : props.showType) === 'pc') {
36
+ return React.createElement(UploaderPc, { ...props });
37
+ }
38
+ if ((props === null || props === void 0 ? void 0 : props.showType) === 'h5') {
39
+ return React.createElement(UploaderH5, { ...props });
40
+ }
41
+ return platform === 'h5' ? (React.createElement(UploaderH5, { ...props })) : (React.createElement(UploaderPc, { ...props }));
42
+ }
@@ -0,0 +1,20 @@
1
+ /// <reference types="react" />
2
+ import type { CommonFormPropsType } from '../types';
3
+ /**
4
+ * H5端
5
+ */
6
+ export declare function ImageUploaderH5({ title, maxUploadCount, maxSize, acceptTypes, className, id, events, layout, defaultValue, single, disabled, requiredFlag, onChange, style, }: H5UploaderProps): JSX.Element;
7
+ export interface SingleImageProps {
8
+ src: string;
9
+ deleteBySrc: (url: string) => void;
10
+ disabled: boolean;
11
+ }
12
+ export interface H5UploaderProps extends CommonFormPropsType {
13
+ title?: string;
14
+ maxSize?: number;
15
+ acceptTypes?: unknown[];
16
+ maxUploadCount?: number;
17
+ defaultValue?: string[] | string;
18
+ single?: boolean;
19
+ onChange?: (v: any) => void;
20
+ }
@@ -0,0 +1,199 @@
1
+ import * as React from 'react';
2
+ import weui from '../../../utils/weui';
3
+ import classNames from '../../../utils/classnames';
4
+ import { getCloudInstance } from '../../../utils/tcb';
5
+ import isObjectEqual from '../../../utils/isObjectEqual';
6
+ import { useSyncValue } from '../../../utils/useSyncValue';
7
+ import { randomStr } from '../../../utils/platform';
8
+ import { IMAGE_TYPES } from './uploader.pc';
9
+ import { useTempUrl } from '../../../utils/use-cloud-id-temp-url';
10
+ const uploadPath = 'weda-uploader';
11
+ /**
12
+ * H5端
13
+ */
14
+ export function ImageUploaderH5({ title, maxUploadCount, maxSize = 10, acceptTypes, className, id, events, layout, defaultValue, single = false, disabled = false, requiredFlag = false, onChange, style, }) {
15
+ const cls = classNames({
16
+ 'weda-ui': true,
17
+ 'weui-cells': true,
18
+ 'weui-cells_form': true,
19
+ [className]: className,
20
+ });
21
+ // 上传中
22
+ const [uploading, setUploading] = React.useState(false);
23
+ //上传进度
24
+ const [progress, setProgress] = React.useState(0);
25
+ const [inputValue, setInputValue] = useSyncValue(defaultValue, isObjectEqual);
26
+ const fileIdList = React.useMemo(() => {
27
+ //兼容h5默认值为空时情况
28
+ if (inputValue === null) {
29
+ setInputValue('');
30
+ }
31
+ if (typeof inputValue === 'string') {
32
+ // single = true 传入的是字符串
33
+ return [inputValue].filter((i) => i.length > 0); // 排除空串
34
+ }
35
+ if (Array.isArray(inputValue)) {
36
+ return inputValue;
37
+ }
38
+ return [];
39
+ }, [inputValue, setInputValue]);
40
+ const finalMaxImgCount = React.useMemo(() => {
41
+ if (single)
42
+ return 1;
43
+ return maxUploadCount;
44
+ }, [single, maxUploadCount]);
45
+ const deleteFile = (url) => {
46
+ if (single) {
47
+ setInputValue('');
48
+ return;
49
+ }
50
+ setInputValue((list) => list.filter((f) => f !== url));
51
+ };
52
+ React.useEffect(() => {
53
+ if (single) {
54
+ const file = fileIdList[0] || '';
55
+ onChange && onChange(file);
56
+ events.change && events.change({ value: file });
57
+ }
58
+ else {
59
+ onChange && onChange(fileIdList);
60
+ events.change && events.change({ value: fileIdList });
61
+ }
62
+ }, [events, fileIdList, onChange, single]);
63
+ const onProgress = (progressEvent) => {
64
+ let percentCompleted = 0;
65
+ try {
66
+ percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);
67
+ percentCompleted < 100 ? percentCompleted : 100;
68
+ }
69
+ catch (e) { }
70
+ setProgress(percentCompleted);
71
+ };
72
+ const uploadToTcb = (file) => {
73
+ setUploading(true);
74
+ getCloudInstance().then(async (tcb) => {
75
+ try {
76
+ const cloudPath = `${uploadPath}/${randomStr()}-${file === null || file === void 0 ? void 0 : file.name}`;
77
+ const { fileID } = await tcb.uploadFile({
78
+ cloudPath,
79
+ filePath: file,
80
+ onUploadProgress: onProgress,
81
+ });
82
+ fileID && setInputValue((list) => [...list, fileID]);
83
+ fileID && events.success && events.success({ value: fileID, file });
84
+ }
85
+ catch (err) {
86
+ weui.alert('上传失败,请检查网络后重试');
87
+ events.error && events.error(err);
88
+ }
89
+ finally {
90
+ setUploading(false);
91
+ setProgress(0);
92
+ }
93
+ });
94
+ };
95
+ const accepts = React.useMemo(() => {
96
+ return acceptTypes.includes('image/*') || acceptTypes.length === 0
97
+ ? IMAGE_TYPES
98
+ : Array.from(new Set(acceptTypes));
99
+ }, [acceptTypes]);
100
+ const islegalType = (files, accepts) => {
101
+ const illegalType = [];
102
+ let isImage = true;
103
+ for (const file of files) {
104
+ if ((file === null || file === void 0 ? void 0 : file.type.split('/')[0]) !== 'image') {
105
+ weui.alert('请上传图片', {
106
+ title: 'Image Type Error',
107
+ });
108
+ isImage = false;
109
+ break;
110
+ }
111
+ accepts.some((item) => item === (file === null || file === void 0 ? void 0 : file.type))
112
+ ? null
113
+ : illegalType.push(file === null || file === void 0 ? void 0 : file.type);
114
+ }
115
+ if (!isImage)
116
+ return false;
117
+ if (illegalType.length > 0) {
118
+ weui.alert('不支持上传' + Array.from(new Set(illegalType)).join(',') + '格式图片');
119
+ return false;
120
+ }
121
+ return true;
122
+ };
123
+ const showAdd = React.useMemo(() => {
124
+ if (single) {
125
+ // single 模式时,当数组为空且不在上传文件过程中时显示
126
+ return fileIdList.length < 1 && !uploading;
127
+ }
128
+ return fileIdList.length < maxUploadCount;
129
+ }, [fileIdList, single, maxUploadCount, uploading]);
130
+ return (React.createElement("div", { className: cls, id: id, style: style },
131
+ React.createElement("div", { className: classNames('weui-uploader', layout) },
132
+ React.createElement("div", { className: classNames('weui-uploader__hd', layout) },
133
+ React.createElement(UploaderLabel, { layout: layout, title: title, currentCount: fileIdList.length, maxCount: finalMaxImgCount, requiredFlag: requiredFlag })),
134
+ React.createElement("div", { className: "weui-uploader__bd" },
135
+ React.createElement("ul", { className: "weui-uploader__files", id: "uploaderFiles" },
136
+ (fileIdList !== null && fileIdList !== void 0 ? fileIdList : []).map((f) => (React.createElement(SingleImage, { key: f, src: f, deleteBySrc: deleteFile, disabled: disabled }))),
137
+ uploading && (React.createElement("li", { className: "weui-uploader__file weui-uploader__file_status" },
138
+ React.createElement("div", { className: "weui-uploader__file-content" },
139
+ progress,
140
+ "%")))),
141
+ showAdd && (React.createElement("div", { className: "weui-uploader__input-box" }, !disabled && (React.createElement("input", { id: "uploaderInput", className: "weui-uploader__input", type: "file", accept: accepts.join(','), multiple: true, onChange: (e) => {
142
+ const files = [...e.target.files];
143
+ if (!islegalType(files, accepts))
144
+ return;
145
+ if (files.some((f) => f.size > maxSize * 1024 * 1024)) {
146
+ weui.alert('请上传不超过10M的图片');
147
+ return false;
148
+ }
149
+ if (files.length > finalMaxImgCount) {
150
+ // 防止一下子选择过多文件
151
+ weui.alert(`最多只能上传${finalMaxImgCount}张图片,请重新选择`);
152
+ return false;
153
+ }
154
+ if (fileIdList.length + files.length > finalMaxImgCount) {
155
+ weui.alert(`最多只能上传${finalMaxImgCount}张图片`);
156
+ return false;
157
+ }
158
+ files.forEach((f) => uploadToTcb(f));
159
+ } }))))))));
160
+ }
161
+ function SingleImage({ src, deleteBySrc }) {
162
+ const cls = classNames({
163
+ 'weui-uploader__file': true,
164
+ });
165
+ const { data: realSrc, error } = useTempUrl(src);
166
+ const imgStyle = {
167
+ backgroundImage: `url(${realSrc})`,
168
+ };
169
+ const showGallery = () => {
170
+ const gallery = weui.gallery(encodeURI(realSrc), {
171
+ onDelete: function () {
172
+ deleteBySrc(src);
173
+ gallery.hide();
174
+ },
175
+ });
176
+ };
177
+ return (React.createElement("li", { className: cls, style: imgStyle, onClick: showGallery }, error || status ? (React.createElement("div", { className: "weui-uploader__file-content" }, error ? (React.createElement("i", { role: "img", "aria-label": "\u9519\u8BEF", className: "weui-icon-warn" })) : (React.createElement("i", { className: "weui-loading", style: { width: 30, height: 30 } })))) : (false)));
178
+ }
179
+ const UploaderLabel = ({ layout, title, currentCount, maxCount, requiredFlag, }) => {
180
+ if (layout === 'horizontal') {
181
+ return (React.createElement(React.Fragment, null,
182
+ React.createElement("div", { className: "weda-formcells__label weui-cell" },
183
+ React.createElement("div", null,
184
+ React.createElement("p", { className: "weui-uploader__title" }, title),
185
+ React.createElement("div", { className: "weui-uploader__info" },
186
+ React.createElement("span", { id: "uploadCount" }, currentCount),
187
+ "/",
188
+ maxCount)),
189
+ requiredFlag && React.createElement("label", { className: "weda-formcells__flag" }, "*"))));
190
+ }
191
+ return (React.createElement("div", { className: "weda-formcells__label weui-cell" },
192
+ React.createElement("div", { className: "weui-uploader__label" },
193
+ React.createElement("p", { className: "weui-uploader__title" }, title),
194
+ requiredFlag && React.createElement("label", { className: "weda-formcells__flag" }, "*")),
195
+ React.createElement("div", { className: "weui-uploader__info" },
196
+ React.createElement("span", { id: "uploadCount" }, currentCount),
197
+ "/",
198
+ maxCount)));
199
+ };
@@ -0,0 +1,29 @@
1
+ /// <reference types="react" />
2
+ import { H5UploaderProps } from './uploader.h5';
3
+ export declare const CLASS_PREFIX = "weda-uploader-pc";
4
+ export declare const IMAGE_TYPES: string[];
5
+ /**
6
+ * 上传图片-官方组件
7
+ */
8
+ export declare function UploaderPC({ layout, className, id, style, title, tips, ...props }: {
9
+ [x: string]: any;
10
+ layout: any;
11
+ className: any;
12
+ id: any;
13
+ style: any;
14
+ title: any;
15
+ tips: any;
16
+ }): JSX.Element;
17
+ export declare function UploaderPCInner(props: any): JSX.Element;
18
+ export interface TcbImageProps {
19
+ fileID?: string;
20
+ isZoom?: boolean;
21
+ onError?: (e: unknown) => void;
22
+ }
23
+ export declare const TcbImage: (props: TcbImageProps) => JSX.Element;
24
+ export interface PropsType extends H5UploaderProps {
25
+ tips?: string;
26
+ value: string | string[];
27
+ btnTitle?: string;
28
+ uploadPath?: string;
29
+ }