@cloudbase/weda-ui 3.2.1 → 3.3.1

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 (394) hide show
  1. package/dist/src/configs/components/chart/bar.json +9 -1
  2. package/dist/src/configs/components/chart/line.json +8 -0
  3. package/dist/src/configs/components/chart/pie.json +8 -0
  4. package/dist/src/web/actions/showModal/index.js +0 -1
  5. package/dist/src/web/components/calendar/index.js +39 -37
  6. package/dist/src/web/components/carousel/index.js +62 -62
  7. package/dist/src/web/components/chart/bar/index.js +6 -2
  8. package/dist/src/web/components/chart/common/Chart.d.ts +1 -0
  9. package/dist/src/web/components/chart/common/Chart.js +9 -1
  10. package/dist/src/web/components/chart/common/chart-custom-connector.js +1 -1
  11. package/dist/src/web/components/chart/common/core/eChartBase.js +1 -1
  12. package/dist/src/web/components/chart/common/data-transform.js +3 -1
  13. package/dist/src/web/components/chart/common/useChart.js +13 -2
  14. package/dist/src/web/components/chart/line/index.js +2 -2
  15. package/dist/src/web/components/chart/pie/index.js +2 -2
  16. package/dist/src/web/components/common/error-boundary.d.ts +5 -0
  17. package/dist/src/web/components/common/error-boundary.js +33 -0
  18. package/dist/src/web/components/common/use-loop-render-detect.d.ts +11 -0
  19. package/dist/src/web/components/common/use-loop-render-detect.js +124 -0
  20. package/dist/src/web/components/form/checkbox/index.js +29 -29
  21. package/dist/src/web/components/form/form/index.js +39 -26
  22. package/dist/src/web/components/form/input/index.js +11 -3
  23. package/dist/src/web/components/form/location/common/mapChoose.js +6 -5
  24. package/dist/src/web/components/form/location/common/mapView.js +9 -6
  25. package/dist/src/web/{utils → components/form/location/common}/tmap.d.ts +0 -0
  26. package/dist/src/web/{utils → components/form/location/common}/tmap.js +0 -0
  27. package/dist/src/web/components/form/location/common/useLocationInfo.js +3 -2
  28. package/dist/src/web/components/form/location/components/LocationH5/location.h5.js +6 -3
  29. package/dist/src/web/components/form/location/components/LocationPC/location.PC.js +5 -1
  30. package/dist/src/web/components/form/location/index.js +7 -0
  31. package/dist/src/web/components/form/radio/index.js +3 -3
  32. package/dist/src/web/components/form/select/allTimePicker/index.js +1 -0
  33. package/dist/src/web/components/form/select/h5.js +18 -4
  34. package/dist/src/web/components/form/select/index.js +15 -1
  35. package/dist/src/web/components/form/select/use-options.js +1 -1
  36. package/dist/src/web/components/form/uploader/uploader.h5.js +2 -2
  37. package/dist/src/web/components/form/uploader/uploader.pc.js +1 -1
  38. package/dist/src/web/components/form/uploaderFile/uploadFile.h5.js +9 -7
  39. package/dist/src/web/components/form/uploaderFile/uploadFile.pc.js +9 -6
  40. package/dist/src/web/components/form/userOrgSelect/comTool.js +3 -9
  41. package/dist/src/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.js +47 -34
  42. package/dist/src/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.pc.d.ts +1 -1
  43. package/dist/src/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.pc.js +35 -36
  44. package/dist/src/web/{utils → components/form/userOrgSelect}/getUserService.d.ts +0 -0
  45. package/dist/src/web/{utils → components/form/userOrgSelect}/getUserService.js +8 -5
  46. package/dist/src/web/components/form/userOrgSelect/userTreeSelect.h5.d.ts +3 -2
  47. package/dist/src/web/components/form/userOrgSelect/userTreeSelect.h5.js +42 -20
  48. package/dist/src/web/components/form/userOrgSelect/userTreeSelect.pc.d.ts +1 -1
  49. package/dist/src/web/components/form/userOrgSelect/userTreeSelect.pc.js +111 -129
  50. package/dist/src/web/components/form/userOrgSelect/utils.d.ts +3 -2
  51. package/dist/src/web/components/form/userOrgSelect/utils.js +24 -16
  52. package/dist/src/web/components/formdetail/index.js +14 -11
  53. package/dist/src/web/components/graphicCard/index.js +5 -6
  54. package/dist/src/web/components/image/index.js +1 -1
  55. package/dist/src/web/components/listView/index.js +1 -0
  56. package/dist/src/web/components/lottery/index.js +10 -16
  57. package/dist/src/web/components/navLayout/index.js +1 -1
  58. package/dist/src/web/components/navigationBar/horizontalMenu.js +1 -1
  59. package/dist/src/web/components/navigationBar/index.js +13 -8
  60. package/dist/src/web/components/richText/index.js +1 -2
  61. package/dist/src/web/components/richTextView/index.js +20 -18
  62. package/dist/src/web/components/scrollView/index.d.ts +1 -2
  63. package/dist/src/web/components/scrollView/index.js +7 -5
  64. package/dist/src/web/components/swiper/index.js +62 -62
  65. package/dist/src/web/components/tabs/index.js +6 -1
  66. package/dist/src/web/components/tabs/tabs.h5.js +2 -0
  67. package/dist/src/web/components/text/index.js +10 -8
  68. package/dist/src/web/components/uploaderFileView/index.js +1 -1
  69. package/dist/src/web/components/uploaderView/index.js +1 -1
  70. package/dist/src/web/components/wedaVideo/index.js +15 -3
  71. package/dist/src/web/utils/console.d.ts +3 -0
  72. package/dist/src/web/utils/console.js +26 -0
  73. package/dist/src/web/utils/platform.js +1 -1
  74. package/dist/src/web/utils/tcb.js +1 -1
  75. package/dist/src/web/utils/useSyncValue.js +1 -0
  76. package/dist/web/components/form/input/index.css +16 -0
  77. package/dist/web/components/form/userOrgSelect/userOrgSelect.css +4 -0
  78. package/package.json +22 -22
  79. package/dist/configs/actions/showModal.json +0 -48
  80. package/dist/configs/actions/showToast.json +0 -41
  81. package/dist/configs/components/auth.json +0 -16
  82. package/dist/configs/components/button.json +0 -239
  83. package/dist/configs/components/calendar.json +0 -81
  84. package/dist/configs/components/carousel.json +0 -292
  85. package/dist/configs/components/chart/bar.json +0 -728
  86. package/dist/configs/components/chart/line.json +0 -681
  87. package/dist/configs/components/chart/pie.json +0 -500
  88. package/dist/configs/components/chart/statisticsCard.json +0 -376
  89. package/dist/configs/components/container.json +0 -50
  90. package/dist/configs/components/dataView.json +0 -239
  91. package/dist/configs/components/drawer.json +0 -115
  92. package/dist/configs/components/form/checkbox.json +0 -179
  93. package/dist/configs/components/form/departTreeSelect.json +0 -124
  94. package/dist/configs/components/form/form.json +0 -69
  95. package/dist/configs/components/form/input.json +0 -154
  96. package/dist/configs/components/form/location.json +0 -216
  97. package/dist/configs/components/form/radio.json +0 -203
  98. package/dist/configs/components/form/richText.json +0 -133
  99. package/dist/configs/components/form/select.json +0 -431
  100. package/dist/configs/components/form/switch.json +0 -58
  101. package/dist/configs/components/form/textarea.json +0 -116
  102. package/dist/configs/components/form/tips.json +0 -34
  103. package/dist/configs/components/form/uploader.json +0 -171
  104. package/dist/configs/components/form/uploaderFile.json +0 -158
  105. package/dist/configs/components/form/userTreeSelect.json +0 -128
  106. package/dist/configs/components/formdetail.json +0 -105
  107. package/dist/configs/components/graphicCard.json +0 -413
  108. package/dist/configs/components/image.json +0 -187
  109. package/dist/configs/components/link.json +0 -79
  110. package/dist/configs/components/listView.json +0 -378
  111. package/dist/configs/components/lottery.json +0 -163
  112. package/dist/configs/components/modal.json +0 -72
  113. package/dist/configs/components/navLayout.json +0 -368
  114. package/dist/configs/components/navigationBar.json +0 -62
  115. package/dist/configs/components/richtextview.json +0 -26
  116. package/dist/configs/components/scrollVeiw.json +0 -253
  117. package/dist/configs/components/slot.json +0 -17
  118. package/dist/configs/components/swiper.json +0 -90
  119. package/dist/configs/components/tabs.json +0 -122
  120. package/dist/configs/components/text.json +0 -95
  121. package/dist/configs/components/wedaVideo.json +0 -89
  122. package/dist/configs/components/wxOpenApi/phone.json +0 -127
  123. package/dist/configs/components/wxOpenApi/phoneCode.json +0 -109
  124. package/dist/configs/components/wxOpenApi/share.json +0 -160
  125. package/dist/configs/components/wxOpenApi/userInfo.json +0 -156
  126. package/dist/configs/index.d.ts +0 -103
  127. package/dist/configs/index.js +0 -111
  128. package/dist/docs/common/format.d.ts +0 -13
  129. package/dist/docs/common/format.js +0 -122
  130. package/dist/docs/common/tableView.d.ts +0 -30
  131. package/dist/docs/common/tableView.js +0 -159
  132. package/dist/index.d.ts +0 -2
  133. package/dist/index.js +0 -3
  134. package/dist/setupTests.d.ts +0 -1
  135. package/dist/setupTests.js +0 -14
  136. package/dist/src/web/components/chart/common/error-boundary.d.ts +0 -5
  137. package/dist/src/web/components/chart/common/error-boundary.js +0 -26
  138. package/dist/web/actions/index.d.ts +0 -2
  139. package/dist/web/actions/index.js +0 -2
  140. package/dist/web/actions/showModal/index.d.ts +0 -4
  141. package/dist/web/actions/showModal/index.js +0 -67
  142. package/dist/web/actions/showToast/index.d.ts +0 -1
  143. package/dist/web/actions/showToast/index.js +0 -3
  144. package/dist/web/components/button/index.d.ts +0 -32
  145. package/dist/web/components/button/index.js +0 -48
  146. package/dist/web/components/calendar/index.d.ts +0 -19
  147. package/dist/web/components/calendar/index.js +0 -189
  148. package/dist/web/components/calendar/util.d.ts +0 -13
  149. package/dist/web/components/calendar/util.js +0 -74
  150. package/dist/web/components/carousel/index.d.ts +0 -41
  151. package/dist/web/components/carousel/index.js +0 -244
  152. package/dist/web/components/chart/bar/index.d.ts +0 -41
  153. package/dist/web/components/chart/bar/index.js +0 -56
  154. package/dist/web/components/chart/common/config/bar.d.ts +0 -48
  155. package/dist/web/components/chart/common/config/bar.js +0 -49
  156. package/dist/web/components/chart/common/config/global.d.ts +0 -13
  157. package/dist/web/components/chart/common/config/global.js +0 -16
  158. package/dist/web/components/chart/common/config/line.d.ts +0 -46
  159. package/dist/web/components/chart/common/config/line.js +0 -49
  160. package/dist/web/components/chart/common/config/pie.d.ts +0 -29
  161. package/dist/web/components/chart/common/config/pie.js +0 -36
  162. package/dist/web/components/chart/common/core/eChartBar.d.ts +0 -68
  163. package/dist/web/components/chart/common/core/eChartBar.js +0 -198
  164. package/dist/web/components/chart/common/core/eChartBase.d.ts +0 -128
  165. package/dist/web/components/chart/common/core/eChartBase.js +0 -352
  166. package/dist/web/components/chart/common/core/eChartLine.d.ts +0 -62
  167. package/dist/web/components/chart/common/core/eChartLine.js +0 -170
  168. package/dist/web/components/chart/common/core/eChartPie.d.ts +0 -50
  169. package/dist/web/components/chart/common/core/eChartPie.js +0 -132
  170. package/dist/web/components/chart/common/core/type.d.ts +0 -35
  171. package/dist/web/components/chart/common/core/type.js +0 -9
  172. package/dist/web/components/chart/common/echarts.d.ts +0 -2
  173. package/dist/web/components/chart/common/echarts.js +0 -24
  174. package/dist/web/components/chart/common/useChart.d.ts +0 -8
  175. package/dist/web/components/chart/common/useChart.js +0 -60
  176. package/dist/web/components/chart/line/index.d.ts +0 -39
  177. package/dist/web/components/chart/line/index.js +0 -53
  178. package/dist/web/components/chart/pie/index.d.ts +0 -27
  179. package/dist/web/components/chart/pie/index.js +0 -40
  180. package/dist/web/components/chart/statisticsCard/index.d.ts +0 -85
  181. package/dist/web/components/chart/statisticsCard/index.js +0 -203
  182. package/dist/web/components/chart/statisticsCard/interface.d.ts +0 -13
  183. package/dist/web/components/chart/statisticsCard/interface.js +0 -1
  184. package/dist/web/components/container/index.d.ts +0 -6
  185. package/dist/web/components/container/index.js +0 -6
  186. package/dist/web/components/dataView/index.d.ts +0 -6
  187. package/dist/web/components/dataView/index.js +0 -8
  188. package/dist/web/components/dataView/interface.d.ts +0 -5
  189. package/dist/web/components/dataView/interface.js +0 -1
  190. package/dist/web/components/drawer/index.d.ts +0 -13
  191. package/dist/web/components/drawer/index.js +0 -12
  192. package/dist/web/components/form/checkbox/index.d.ts +0 -13
  193. package/dist/web/components/form/checkbox/index.js +0 -167
  194. package/dist/web/components/form/enumSelect/MultipleSelect.d.ts +0 -78
  195. package/dist/web/components/form/enumSelect/MultipleSelect.js +0 -52
  196. package/dist/web/components/form/enumSelect/NormalSelect.d.ts +0 -83
  197. package/dist/web/components/form/enumSelect/NormalSelect.js +0 -52
  198. package/dist/web/components/form/enumSelect/SelectContainer.d.ts +0 -16
  199. package/dist/web/components/form/enumSelect/SelectContainer.js +0 -30
  200. package/dist/web/components/form/enumSelect/index.d.ts +0 -82
  201. package/dist/web/components/form/enumSelect/index.js +0 -6
  202. package/dist/web/components/form/enumSelect/props/defaultProps.d.ts +0 -34
  203. package/dist/web/components/form/enumSelect/props/defaultProps.js +0 -40
  204. package/dist/web/components/form/enumSelect/props/propsTypes.d.ts +0 -39
  205. package/dist/web/components/form/enumSelect/props/propsTypes.js +0 -47
  206. package/dist/web/components/form/form/index.d.ts +0 -32
  207. package/dist/web/components/form/form/index.js +0 -108
  208. package/dist/web/components/form/formcell/index.d.ts +0 -8
  209. package/dist/web/components/form/formcell/index.js +0 -40
  210. package/dist/web/components/form/input/index.d.ts +0 -14
  211. package/dist/web/components/form/input/index.js +0 -86
  212. package/dist/web/components/form/location/common/mapChoose.d.ts +0 -15
  213. package/dist/web/components/form/location/common/mapChoose.js +0 -495
  214. package/dist/web/components/form/location/common/mapView.d.ts +0 -19
  215. package/dist/web/components/form/location/common/mapView.js +0 -172
  216. package/dist/web/components/form/location/common/propsConfig.d.ts +0 -59
  217. package/dist/web/components/form/location/common/propsConfig.js +0 -50
  218. package/dist/web/components/form/location/common/selectModal.d.ts +0 -21
  219. package/dist/web/components/form/location/common/selectModal.js +0 -44
  220. package/dist/web/components/form/location/common/useLocationInfo.d.ts +0 -36
  221. package/dist/web/components/form/location/common/useLocationInfo.js +0 -104
  222. package/dist/web/components/form/location/components/LocationH5/location.h5.d.ts +0 -8
  223. package/dist/web/components/form/location/components/LocationH5/location.h5.js +0 -325
  224. package/dist/web/components/form/location/components/LocationPC/Header.d.ts +0 -12
  225. package/dist/web/components/form/location/components/LocationPC/Header.js +0 -43
  226. package/dist/web/components/form/location/components/LocationPC/location.PC.d.ts +0 -8
  227. package/dist/web/components/form/location/components/LocationPC/location.PC.js +0 -224
  228. package/dist/web/components/form/location/constants.d.ts +0 -2
  229. package/dist/web/components/form/location/constants.js +0 -3
  230. package/dist/web/components/form/location/index.d.ts +0 -1
  231. package/dist/web/components/form/location/index.js +0 -17
  232. package/dist/web/components/form/radio/index.d.ts +0 -11
  233. package/dist/web/components/form/radio/index.js +0 -115
  234. package/dist/web/components/form/renderDecorator.d.ts +0 -6
  235. package/dist/web/components/form/renderDecorator.js +0 -20
  236. package/dist/web/components/form/select/dropdown-select/ui.d.ts +0 -15
  237. package/dist/web/components/form/select/dropdown-select/ui.js +0 -55
  238. package/dist/web/components/form/select/h5.d.ts +0 -16
  239. package/dist/web/components/form/select/h5.js +0 -410
  240. package/dist/web/components/form/select/index.d.ts +0 -65
  241. package/dist/web/components/form/select/index.js +0 -232
  242. package/dist/web/components/form/select/region/index.d.ts +0 -6
  243. package/dist/web/components/form/select/region/index.js +0 -147
  244. package/dist/web/components/form/select/time.d.ts +0 -9
  245. package/dist/web/components/form/select/time.js +0 -146
  246. package/dist/web/components/form/select/use-options.d.ts +0 -26
  247. package/dist/web/components/form/select/use-options.js +0 -103
  248. package/dist/web/components/form/select/year.d.ts +0 -7
  249. package/dist/web/components/form/select/year.js +0 -72
  250. package/dist/web/components/form/switch/index.d.ts +0 -6
  251. package/dist/web/components/form/switch/index.js +0 -58
  252. package/dist/web/components/form/textarea/index.d.ts +0 -12
  253. package/dist/web/components/form/textarea/index.js +0 -66
  254. package/dist/web/components/form/tips/index.d.ts +0 -8
  255. package/dist/web/components/form/tips/index.js +0 -17
  256. package/dist/web/components/form/uploader/index.d.ts +0 -3
  257. package/dist/web/components/form/uploader/index.js +0 -42
  258. package/dist/web/components/form/uploader/uploader.h5.d.ts +0 -20
  259. package/dist/web/components/form/uploader/uploader.h5.js +0 -224
  260. package/dist/web/components/form/uploader/uploader.pc.d.ts +0 -29
  261. package/dist/web/components/form/uploader/uploader.pc.js +0 -214
  262. package/dist/web/components/form/uploaderFile/index.d.ts +0 -4
  263. package/dist/web/components/form/uploaderFile/index.js +0 -19
  264. package/dist/web/components/form/uploaderFile/uploadFile.h5.d.ts +0 -23
  265. package/dist/web/components/form/uploaderFile/uploadFile.h5.js +0 -337
  266. package/dist/web/components/form/uploaderFile/uploadFile.pc.d.ts +0 -24
  267. package/dist/web/components/form/uploaderFile/uploadFile.pc.js +0 -313
  268. package/dist/web/components/form/userOrgSelect/comTool.d.ts +0 -7
  269. package/dist/web/components/form/userOrgSelect/comTool.js +0 -89
  270. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.d.ts +0 -20
  271. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.js +0 -259
  272. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.pc.d.ts +0 -4
  273. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.pc.js +0 -153
  274. package/dist/web/components/form/userOrgSelect/departTreeSelect/index.d.ts +0 -2
  275. package/dist/web/components/form/userOrgSelect/departTreeSelect/index.js +0 -17
  276. package/dist/web/components/form/userOrgSelect/index.d.ts +0 -2
  277. package/dist/web/components/form/userOrgSelect/index.js +0 -17
  278. package/dist/web/components/form/userOrgSelect/userOrgSelect.less +0 -643
  279. package/dist/web/components/form/userOrgSelect/userTreeSelect.h5.d.ts +0 -24
  280. package/dist/web/components/form/userOrgSelect/userTreeSelect.h5.js +0 -276
  281. package/dist/web/components/form/userOrgSelect/userTreeSelect.pc.d.ts +0 -9
  282. package/dist/web/components/form/userOrgSelect/userTreeSelect.pc.js +0 -229
  283. package/dist/web/components/form/userOrgSelect/utils.d.ts +0 -35
  284. package/dist/web/components/form/userOrgSelect/utils.js +0 -72
  285. package/dist/web/components/formdetail/index.d.ts +0 -28
  286. package/dist/web/components/formdetail/index.js +0 -170
  287. package/dist/web/components/graphicCard/index.d.ts +0 -31
  288. package/dist/web/components/graphicCard/index.js +0 -166
  289. package/dist/web/components/image/image.d.ts +0 -9
  290. package/dist/web/components/image/image.js +0 -119
  291. package/dist/web/components/image/index.d.ts +0 -13
  292. package/dist/web/components/image/index.js +0 -91
  293. package/dist/web/components/index.d.ts +0 -50
  294. package/dist/web/components/index.js +0 -97
  295. package/dist/web/components/link/index.d.ts +0 -24
  296. package/dist/web/components/link/index.js +0 -71
  297. package/dist/web/components/listView/index.d.ts +0 -7
  298. package/dist/web/components/listView/index.js +0 -286
  299. package/dist/web/components/listView/interface.d.ts +0 -127
  300. package/dist/web/components/listView/interface.js +0 -1
  301. package/dist/web/components/lottery/index.d.ts +0 -22
  302. package/dist/web/components/lottery/index.js +0 -391
  303. package/dist/web/components/lottery/lotteryUtil.d.ts +0 -23
  304. package/dist/web/components/lottery/lotteryUtil.js +0 -181
  305. package/dist/web/components/modal/index.d.ts +0 -17
  306. package/dist/web/components/modal/index.js +0 -11
  307. package/dist/web/components/modal/modal.h5.d.ts +0 -4
  308. package/dist/web/components/modal/modal.h5.js +0 -46
  309. package/dist/web/components/modal/modal.pc.d.ts +0 -3
  310. package/dist/web/components/modal/modal.pc.js +0 -31
  311. package/dist/web/components/navLayout/index.d.ts +0 -46
  312. package/dist/web/components/navLayout/index.js +0 -116
  313. package/dist/web/components/navigationBar/common.d.ts +0 -15
  314. package/dist/web/components/navigationBar/common.js +0 -127
  315. package/dist/web/components/navigationBar/h5Menu.d.ts +0 -14
  316. package/dist/web/components/navigationBar/h5Menu.js +0 -72
  317. package/dist/web/components/navigationBar/horizontalMenu.d.ts +0 -12
  318. package/dist/web/components/navigationBar/horizontalMenu.js +0 -99
  319. package/dist/web/components/navigationBar/index.d.ts +0 -13
  320. package/dist/web/components/navigationBar/index.js +0 -157
  321. package/dist/web/components/navigationBar/verticalMenu.d.ts +0 -13
  322. package/dist/web/components/navigationBar/verticalMenu.js +0 -38
  323. package/dist/web/components/phone/index.d.ts +0 -18
  324. package/dist/web/components/phone/index.js +0 -4
  325. package/dist/web/components/phoneCode/index.d.ts +0 -18
  326. package/dist/web/components/phoneCode/index.js +0 -4
  327. package/dist/web/components/picker/datePicker.d.ts +0 -10
  328. package/dist/web/components/picker/datePicker.js +0 -31
  329. package/dist/web/components/picker/picker.d.ts +0 -6
  330. package/dist/web/components/picker/picker.js +0 -45
  331. package/dist/web/components/picker/timePicker.d.ts +0 -7
  332. package/dist/web/components/picker/timePicker.js +0 -42
  333. package/dist/web/components/richText/const.d.ts +0 -1
  334. package/dist/web/components/richText/const.js +0 -2
  335. package/dist/web/components/richText/index.d.ts +0 -50
  336. package/dist/web/components/richText/index.js +0 -352
  337. package/dist/web/components/richTextView/index.d.ts +0 -7
  338. package/dist/web/components/richTextView/index.js +0 -44
  339. package/dist/web/components/scrollView/index.d.ts +0 -27
  340. package/dist/web/components/scrollView/index.js +0 -95
  341. package/dist/web/components/share/index.d.ts +0 -34
  342. package/dist/web/components/share/index.js +0 -4
  343. package/dist/web/components/slot/index.d.ts +0 -6
  344. package/dist/web/components/slot/index.js +0 -9
  345. package/dist/web/components/swiper/index.d.ts +0 -24
  346. package/dist/web/components/swiper/index.js +0 -153
  347. package/dist/web/components/tabs/index.d.ts +0 -13
  348. package/dist/web/components/tabs/index.js +0 -15
  349. package/dist/web/components/tabs/tabs.h5.d.ts +0 -4
  350. package/dist/web/components/tabs/tabs.h5.js +0 -42
  351. package/dist/web/components/tabs/tabs.pc.d.ts +0 -3
  352. package/dist/web/components/tabs/tabs.pc.js +0 -40
  353. package/dist/web/components/text/index.d.ts +0 -14
  354. package/dist/web/components/text/index.js +0 -17
  355. package/dist/web/components/uploaderFileView/index.d.ts +0 -10
  356. package/dist/web/components/uploaderFileView/index.js +0 -61
  357. package/dist/web/components/uploaderView/index.d.ts +0 -17
  358. package/dist/web/components/uploaderView/index.js +0 -48
  359. package/dist/web/components/userInfo/index.d.ts +0 -26
  360. package/dist/web/components/userInfo/index.js +0 -4
  361. package/dist/web/components/wedaVideo/index.d.ts +0 -17
  362. package/dist/web/components/wedaVideo/index.js +0 -160
  363. package/dist/web/index.d.ts +0 -8
  364. package/dist/web/index.js +0 -4
  365. package/dist/web/utils/classnames.d.ts +0 -2
  366. package/dist/web/utils/classnames.js +0 -37
  367. package/dist/web/utils/constant.d.ts +0 -23
  368. package/dist/web/utils/constant.js +0 -24
  369. package/dist/web/utils/debounce.d.ts +0 -2
  370. package/dist/web/utils/debounce.js +0 -92
  371. package/dist/web/utils/getLocalCounter.d.ts +0 -1
  372. package/dist/web/utils/getLocalCounter.js +0 -4
  373. package/dist/web/utils/getUserService.d.ts +0 -17
  374. package/dist/web/utils/getUserService.js +0 -148
  375. package/dist/web/utils/isObjectEqual.d.ts +0 -2
  376. package/dist/web/utils/isObjectEqual.js +0 -12
  377. package/dist/web/utils/loading-fallback.d.ts +0 -2
  378. package/dist/web/utils/loading-fallback.js +0 -2
  379. package/dist/web/utils/lodash.d.ts +0 -1
  380. package/dist/web/utils/lodash.js +0 -2
  381. package/dist/web/utils/platform.d.ts +0 -18
  382. package/dist/web/utils/platform.js +0 -193
  383. package/dist/web/utils/tcb.d.ts +0 -27
  384. package/dist/web/utils/tcb.js +0 -105
  385. package/dist/web/utils/tmap.d.ts +0 -3
  386. package/dist/web/utils/tmap.js +0 -21
  387. package/dist/web/utils/use-cloud-id-temp-url.d.ts +0 -1
  388. package/dist/web/utils/use-cloud-id-temp-url.js +0 -13
  389. package/dist/web/utils/useSetState.d.ts +0 -1
  390. package/dist/web/utils/useSetState.js +0 -8
  391. package/dist/web/utils/useSyncValue.d.ts +0 -4
  392. package/dist/web/utils/useSyncValue.js +0 -15
  393. package/dist/web/utils/weui.d.ts +0 -1
  394. package/dist/web/utils/weui.js +0 -2
@@ -473,6 +473,14 @@
473
473
  "type": "array",
474
474
  "title": "配色",
475
475
  "x-index": 70,
476
+ "default": [
477
+ "#2A70E2",
478
+ "#46B690",
479
+ "#EDB539",
480
+ "#E46961",
481
+ "#4FB3D2",
482
+ "#805FDC"
483
+ ],
476
484
  "x-component": "color-plate",
477
485
  "remarks": "当有多个数值字段或维度字段分组时,不同类别将按照不同配色展示,支持自定义色卡"
478
486
  },
@@ -553,7 +561,7 @@
553
561
  {
554
562
  "type": "value:visible",
555
563
  "target": "*(groupKey)",
556
- "condition": "{{ console.log($self, 'BaR') || (!$self.value || !$self.value.numValue || $self.value.numValue.length<=1) && !!$self.__datasourceName }}"
564
+ "condition": "{{ (!$self.value || !$self.value.numValue || $self.value.numValue.length<=1) && !!$self.__datasourceName }}"
557
565
  }
558
566
  ],
559
567
  "remarks": "Y轴数值字段选择"
@@ -424,6 +424,14 @@
424
424
  "type": "array",
425
425
  "title": "配色",
426
426
  "x-index": 58,
427
+ "default": [
428
+ "#2A70E2",
429
+ "#46B690",
430
+ "#EDB539",
431
+ "#E46961",
432
+ "#4FB3D2",
433
+ "#805FDC"
434
+ ],
427
435
  "x-component": "color-plate",
428
436
  "remarks": "当有多个数值字段或维度字段分组时,不同类别将按照不同配色展示,支持自定义色卡"
429
437
  },
@@ -408,6 +408,14 @@
408
408
  "type": "array",
409
409
  "title": "配色",
410
410
  "x-index": 60,
411
+ "default": [
412
+ "#2A70E2",
413
+ "#46B690",
414
+ "#EDB539",
415
+ "#E46961",
416
+ "#4FB3D2",
417
+ "#805FDC"
418
+ ],
411
419
  "x-component": "color-plate",
412
420
  "remarks": "当有多个数值字段或维度字段分组时,不同类别将按照不同配色展示,支持自定义色卡"
413
421
  },
@@ -59,7 +59,6 @@ export default async function showModal({ data }) {
59
59
  success && success(res);
60
60
  return res;
61
61
  }, (e) => {
62
- // console.log(e);
63
62
  fail && fail();
64
63
  complete && complete();
65
64
  throw e;
@@ -50,43 +50,45 @@ export default function Calendar({ className, style, initVisible, initValue, con
50
50
  });
51
51
  }
52
52
  return [yearList, monthList];
53
- }, [year, month]);
54
- // 匹配数据
55
- const _dateList = (configList) => {
56
- const _map = new Map();
57
- const configArr = JSON.parse(JSON.stringify(configData));
58
- // 补日期的零
59
- configArr &&
60
- configArr.length &&
61
- configArr.map((item) => {
62
- if (item.matchDate === '' || item.matchDate === undefined)
63
- return;
64
- const date = item.matchDate.split('-');
65
- const day = date[2].split('');
66
- if (day.length === 1) {
67
- date[2] = `0${date[2]}`;
68
- item.matchDate = date.join('-');
69
- }
70
- });
71
- for (const item of configArr) {
72
- _map.set(item.matchDate, item);
73
- }
74
- return configList.map((item) => {
75
- return item.reduce((res, i) => {
76
- if (_map.has(i.formattedDate)) {
77
- const _disabled = _map.get(i.formattedDate)['disabled'];
78
- const _marked = _map.get(i.formattedDate)['marked'];
79
- i['disabled'] =
80
- _disabled !== undefined ? JSON.parse(_disabled) : false;
81
- i['marked'] = _marked;
82
- }
83
- res.push(i);
84
- return res;
85
- }, []);
86
- });
87
- };
53
+ }, [year]);
88
54
  // 日历单元格数据
89
- const dateList = useMemo(() => _dateList(createDateList(year, month, firstDayOfWeek, value, format)), [year, month, firstDayOfWeek, format, value, configData]);
55
+ const dateList = useMemo(() => {
56
+ // 匹配数据
57
+ const _dateList = (configList) => {
58
+ const _map = new Map();
59
+ const configArr = JSON.parse(JSON.stringify(configData));
60
+ // 补日期的零
61
+ configArr &&
62
+ configArr.length &&
63
+ configArr.map((item) => {
64
+ if (item.matchDate === '' || item.matchDate === undefined)
65
+ return;
66
+ const date = item.matchDate.split('-');
67
+ const day = date[2].split('');
68
+ if (day.length === 1) {
69
+ date[2] = `0${date[2]}`;
70
+ item.matchDate = date.join('-');
71
+ }
72
+ });
73
+ for (const item of configArr) {
74
+ _map.set(item.matchDate, item);
75
+ }
76
+ return configList.map((item) => {
77
+ return item.reduce((res, i) => {
78
+ if (_map.has(i.formattedDate)) {
79
+ const _disabled = _map.get(i.formattedDate)['disabled'];
80
+ const _marked = _map.get(i.formattedDate)['marked'];
81
+ i['disabled'] =
82
+ _disabled !== undefined ? JSON.parse(_disabled) : false;
83
+ i['marked'] = _marked;
84
+ }
85
+ res.push(i);
86
+ return res;
87
+ }, []);
88
+ });
89
+ };
90
+ return _dateList(createDateList(year, month, firstDayOfWeek, value, format));
91
+ }, [year, month, value, configData]);
90
92
  // 表头数组
91
93
  const colHeaderList = useMemo(() => {
92
94
  const weekTextArr = week;
@@ -112,7 +114,7 @@ export default function Calendar({ className, style, initVisible, initValue, con
112
114
  }
113
115
  }
114
116
  return list;
115
- }, [firstDayOfWeek, isShowWeekend, week]);
117
+ }, []);
116
118
  // 补零
117
119
  // const fix0 = (num) => {
118
120
  // return num < 10 ? `0${num}` : num;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { useState, useEffect, useRef } from 'react';
2
+ import { useState, useEffect, useRef, useCallback } from 'react';
3
3
  import classNames from '../../utils/classnames';
4
4
  import Swipe from 'react-easy-swipe';
5
5
  import { useDebouncedCallback, useEventListener, useResizeObserver, } from '@react-hookz/web';
@@ -13,6 +13,15 @@ export default function Carousel({ className, style, autoplay, circular, vertica
13
13
  const [swipeStyle, setSwipeStyle] = useState(null);
14
14
  const [height, setHeight] = useState(0);
15
15
  const { change = () => { } } = events;
16
+ const setIndex = useCallback((index) => {
17
+ if (index >= itemCount) {
18
+ index = 0;
19
+ }
20
+ if (index < 0) {
21
+ index = itemCount - 1;
22
+ }
23
+ setCurrentIndex(index);
24
+ }, [itemCount, setCurrentIndex]);
16
25
  // 自动切换
17
26
  useEffect(() => {
18
27
  if (autoplay) {
@@ -23,10 +32,60 @@ export default function Carousel({ className, style, autoplay, circular, vertica
23
32
  }, interval);
24
33
  return () => clearInterval(timer);
25
34
  }
26
- }, [currentIndex, autoplay]);
35
+ }, [currentIndex, autoplay, interval, setIndex]);
27
36
  // 触发切换
28
37
  const pre = useRef({ index: currentIndex }).current;
29
38
  useEffect(() => {
39
+ // 设置容器样式、动画
40
+ // TODO fix settimeout mess
41
+ const updateSwipeStyle = (to, cur, length) => {
42
+ let style = {};
43
+ // 最后向前到最开始
44
+ if (to === 0 && cur === length - 1) {
45
+ circular &&
46
+ setSwipeStyle({
47
+ transform: `translate3d(0, 0, 0)`,
48
+ });
49
+ // eslint-disable-next-line rulesdir/no-timer
50
+ setTimeout(() => {
51
+ setSwipeStyle({
52
+ transform: vertical
53
+ ? `translate3d(0, -100%, 0)`
54
+ : `translate3d(-100%, 0, 0)`,
55
+ transitionDuration: `${duration}ms`,
56
+ });
57
+ }, 50);
58
+ return;
59
+ }
60
+ // 第一个后退到最后
61
+ if (to === length - 1 && cur === 0) {
62
+ circular &&
63
+ setSwipeStyle({
64
+ transform: vertical
65
+ ? `translate3d(0, -${(to + 2) * 100}%, 0)`
66
+ : `translate3d(-${(to + 2) * 100}%, 0, 0)`,
67
+ });
68
+ // eslint-disable-next-line rulesdir/no-timer
69
+ setTimeout(() => {
70
+ setSwipeStyle({
71
+ transform: vertical
72
+ ? `translate3d(0, -${(to + 1) * 100}%, 0)`
73
+ : `translate3d(-${(to + 1) * 100}%, 0, 0)`,
74
+ transitionDuration: `${duration}ms`,
75
+ });
76
+ }, 50);
77
+ return;
78
+ }
79
+ style = {
80
+ transform: vertical
81
+ ? `translate3d(0, -${(to + 1) * 100}%, 0)`
82
+ : `translate3d(-${(to + 1) * 100}%, 0, 0)`,
83
+ };
84
+ if (to !== cur) {
85
+ style.transitionDuration = `${duration}ms`;
86
+ }
87
+ setSwipeStyle(style);
88
+ };
30
89
  updateSwipeStyle(currentIndex, pre.index, itemCount);
31
90
  change({
32
91
  current: currentIndex,
@@ -34,7 +93,7 @@ export default function Carousel({ className, style, autoplay, circular, vertica
34
93
  return () => {
35
94
  pre.index = currentIndex;
36
95
  };
37
- }, [currentIndex, vertical]);
96
+ }, [currentIndex, vertical, pre, change, itemCount, circular, duration]);
38
97
  const outerWrapRef = useRef();
39
98
  useEventListener(outerWrapRef, 'load', (e) => {
40
99
  setHeight(e.target.clientHeight);
@@ -46,65 +105,6 @@ export default function Carousel({ className, style, autoplay, circular, vertica
46
105
  width: x.width ? x.width : '100%',
47
106
  } })));
48
107
  });
49
- const setIndex = (index) => {
50
- if (index >= itemCount) {
51
- index = 0;
52
- }
53
- if (index < 0) {
54
- index = itemCount - 1;
55
- }
56
- setCurrentIndex(index);
57
- };
58
- // 设置容器样式、动画
59
- // TODO fix settimeout mess
60
- const updateSwipeStyle = (to, cur, length) => {
61
- let style = {};
62
- // 最后向前到最开始
63
- if (to === 0 && cur === length - 1) {
64
- circular &&
65
- setSwipeStyle({
66
- transform: `translate3d(0, 0, 0)`,
67
- });
68
- // eslint-disable-next-line rulesdir/no-timer
69
- setTimeout(() => {
70
- setSwipeStyle({
71
- transform: vertical
72
- ? `translate3d(0, -100%, 0)`
73
- : `translate3d(-100%, 0, 0)`,
74
- transitionDuration: `${duration}ms`,
75
- });
76
- }, 50);
77
- return;
78
- }
79
- // 第一个后退到最后
80
- if (to === length - 1 && cur === 0) {
81
- circular &&
82
- setSwipeStyle({
83
- transform: vertical
84
- ? `translate3d(0, -${(to + 2) * 100}%, 0)`
85
- : `translate3d(-${(to + 2) * 100}%, 0, 0)`,
86
- });
87
- // eslint-disable-next-line rulesdir/no-timer
88
- setTimeout(() => {
89
- setSwipeStyle({
90
- transform: vertical
91
- ? `translate3d(0, -${(to + 1) * 100}%, 0)`
92
- : `translate3d(-${(to + 1) * 100}%, 0, 0)`,
93
- transitionDuration: `${duration}ms`,
94
- });
95
- }, 50);
96
- return;
97
- }
98
- style = {
99
- transform: vertical
100
- ? `translate3d(0, -${(to + 1) * 100}%, 0)`
101
- : `translate3d(-${(to + 1) * 100}%, 0, 0)`,
102
- };
103
- if (to !== cur) {
104
- style.transitionDuration = `${duration}ms`;
105
- }
106
- setSwipeStyle(style);
107
- };
108
108
  return (React.createElement("div", { className: classNames('g-swiper weda-ui g-carousel', className, {
109
109
  vertical: vertical,
110
110
  }), style: { height: height ? height : 'auto', ...style }, ref: outerWrapRef, id: id, "data-testid": "carousel" },
@@ -4,8 +4,11 @@ import { checkIsNewData, transform } from '../common/data-transform';
4
4
  import { Chart } from '../common/Chart';
5
5
  import { emptyArray } from '../../../utils/constant';
6
6
  import { ChartCustomConnector } from '../common/chart-custom-connector';
7
- import { ChartErrorBoundary } from '../common/error-boundary';
7
+ import { CommonErrorBoundary } from '../../common/error-boundary';
8
+ import { debug } from '../../../utils/console';
9
+ const logger = debug('bar:impl');
8
10
  function BarImpl(props) {
11
+ logger.log(props, checkIsNewData(props));
9
12
  if (props.dataSourceType === 'data-model') {
10
13
  if (checkIsNewData(props)) {
11
14
  props.dataSource = {
@@ -21,6 +24,7 @@ function BarImpl(props) {
21
24
  oldBarProps['connectorMethod'] = undefined;
22
25
  oldBarProps['connectorParams'] = undefined;
23
26
  oldBarProps['connector'] = undefined;
27
+ debug('bar:old').log('OldBar', oldBarProps);
24
28
  return React.createElement(OldBar, { ...oldBarProps });
25
29
  }
26
30
  else if (props.dataSourceType === 'variable') {
@@ -36,6 +40,6 @@ function BarImpl(props) {
36
40
  }
37
41
  }
38
42
  export default function Bar(props) {
39
- return (React.createElement(ChartErrorBoundary, { ...props },
43
+ return (React.createElement(CommonErrorBoundary, { ...props },
40
44
  React.createElement(BarImpl, { ...props })));
41
45
  }
@@ -3,6 +3,7 @@ import type { CommonPropsType } from '../../../types';
3
3
  import type { ECOption } from './echarts';
4
4
  interface IChartProps extends CommonPropsType {
5
5
  chartOptions: ECOption;
6
+ showLoading?: boolean;
6
7
  ['data-testid']: string;
7
8
  }
8
9
  export declare function Chart(props: IChartProps): JSX.Element;
@@ -2,7 +2,7 @@ import React, { useEffect, useRef } from 'react';
2
2
  import classNames from '../../../utils/classnames';
3
3
  import { useChart } from './useChart';
4
4
  export function Chart(props) {
5
- const { id, style, className, chartOptions, 'data-testid': dataTestId, } = props;
5
+ const { id, style, className, chartOptions, showLoading, 'data-testid': dataTestId, } = props;
6
6
  const inlineStyle = {
7
7
  height: '380px',
8
8
  width: '100%',
@@ -15,6 +15,14 @@ export function Chart(props) {
15
15
  var _a;
16
16
  (_a = chart === null || chart === void 0 ? void 0 : chart.setOption) === null || _a === void 0 ? void 0 : _a.call(chart, chartOptions);
17
17
  }, [chart, chartOptions]);
18
+ useEffect(() => {
19
+ if (showLoading === true) {
20
+ chart === null || chart === void 0 ? void 0 : chart.showLoading();
21
+ }
22
+ else {
23
+ chart === null || chart === void 0 ? void 0 : chart.hideLoading();
24
+ }
25
+ }, [showLoading, chart]);
18
26
  return (React.createElement("div", { id: id, "data-testid": dataTestId, ref: ref, style: inlineStyle, className: classNames({
19
27
  'echart-wrapper-canvas': true,
20
28
  'echart-dark-body': true,
@@ -21,7 +21,7 @@ export const ChartCustomConnector = (props) => {
21
21
  }, []);
22
22
  useEffect(() => {
23
23
  actions.execute();
24
- }, [connector, connectorMethod, connectorParams]);
24
+ }, [connector, connectorMethod, connectorParams, actions]);
25
25
  if (state.error) {
26
26
  throw state.error;
27
27
  }
@@ -19,7 +19,7 @@ class EchartBase extends AbstractEchartBaseModal {
19
19
  });
20
20
  this.config = getConfig();
21
21
  }
22
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
22
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function
23
23
  async setOptions(_options) { }
24
24
  /** 获取所有配置好的图表数据 */
25
25
  getOptions() {
@@ -1,9 +1,11 @@
1
+ import { debug } from '../../../utils/console';
1
2
  import { ChartError } from './chart-error';
2
3
  export const checkIsNewData = (props) => {
3
4
  var _a, _b;
4
5
  return (Object.keys((_a = props.dataSource) !== null && _a !== void 0 ? _a : {}).length === 0 &&
5
6
  Object.keys((_b = props['dataModel']) !== null && _b !== void 0 ? _b : {}).length > 0);
6
7
  };
8
+ const logger = debug('chart:transform');
7
9
  export function transform(chartType, dataInput, chartInput) {
8
10
  var _a;
9
11
  if (!Array.isArray(dataInput)) {
@@ -173,7 +175,7 @@ export function transform(chartType, dataInput, chartInput) {
173
175
  });
174
176
  });
175
177
  }
176
- console.log(dataInput, chartInput, 'TRANSFORM');
178
+ logger.log(dataInput, chartInput);
177
179
  if (chartType === 'bar' || chartType === 'line') {
178
180
  const xAxis = {
179
181
  name: chartInput.isXaxisName ? chartInput.xAxisName : '',
@@ -1,5 +1,7 @@
1
1
  import { useAsync, useDeepCompareEffect, useEventListener, useIsMounted, useMountEffect, useResizeObserver, } from '@react-hookz/web';
2
2
  import { useEffect, useState } from 'react';
3
+ import { debug } from '../../../utils/console';
4
+ const logger = debug('chart:use-chart');
3
5
  export function useChart(ref) {
4
6
  const [chartRef, setChartRef] = useState(null);
5
7
  const isMounted = useIsMounted();
@@ -30,6 +32,7 @@ export function useWedaChart(domRef, ModalClass, options) {
30
32
  const getOptions = async () => {
31
33
  const chartModal = new ModalClass();
32
34
  let finalOptions = await chartModal.setOptions(options);
35
+ logger.log(options, finalOptions);
33
36
  if (!finalOptions) {
34
37
  finalOptions = chartModal.getOptions();
35
38
  }
@@ -47,8 +50,16 @@ export function useWedaChart(domRef, ModalClass, options) {
47
50
  actions,
48
51
  ]);
49
52
  useEffect(() => {
53
+ if (state.status === 'loading' || state.status === 'not-executed') {
54
+ chart === null || chart === void 0 ? void 0 : chart.showLoading();
55
+ return;
56
+ }
57
+ chart === null || chart === void 0 ? void 0 : chart.hideLoading();
58
+ }, [chart, state.status]);
59
+ useEffect(() => {
60
+ logger.log(state, state.result);
50
61
  if (state.status === 'success' && chart) {
51
- console.log(ModalClass.name, options, state.result, window.location.href);
62
+ logger.log(options, state.result, window.location.href);
52
63
  chart.setOption(state.result, true // noMerge 全刷
53
64
  );
54
65
  }
@@ -57,5 +68,5 @@ export function useWedaChart(domRef, ModalClass, options) {
57
68
  console.error(state.error);
58
69
  }
59
70
  }
60
- }, [state]);
71
+ }, [state, chart, options]);
61
72
  }
@@ -4,7 +4,7 @@ import { checkIsNewData, transform } from '../common/data-transform';
4
4
  import { emptyArray } from '../../../utils/constant';
5
5
  import { Chart } from '../common/Chart';
6
6
  import { ChartCustomConnector } from '../common/chart-custom-connector';
7
- import { ChartErrorBoundary } from '../common/error-boundary';
7
+ import { CommonErrorBoundary } from '../../common/error-boundary';
8
8
  function LineImpl(props) {
9
9
  if (props.dataSourceType === 'data-model') {
10
10
  if (checkIsNewData(props)) {
@@ -37,6 +37,6 @@ function LineImpl(props) {
37
37
  }
38
38
  }
39
39
  export default function Line(props) {
40
- return (React.createElement(ChartErrorBoundary, { ...props },
40
+ return (React.createElement(CommonErrorBoundary, { ...props },
41
41
  React.createElement(LineImpl, { ...props })));
42
42
  }
@@ -4,7 +4,7 @@ import { checkIsNewData, transform } from '../common/data-transform';
4
4
  import { emptyArray } from '../../../utils/constant';
5
5
  import { Chart } from '../common/Chart';
6
6
  import { ChartCustomConnector } from '../common/chart-custom-connector';
7
- import { ChartErrorBoundary } from '../common/error-boundary';
7
+ import { CommonErrorBoundary } from '../../common/error-boundary';
8
8
  function PieImpl(props) {
9
9
  if (props.dataSourceType === 'data-model') {
10
10
  if (checkIsNewData(props)) {
@@ -37,6 +37,6 @@ function PieImpl(props) {
37
37
  }
38
38
  }
39
39
  export default function Pie(props) {
40
- return (React.createElement(ChartErrorBoundary, { ...props },
40
+ return (React.createElement(CommonErrorBoundary, { ...props },
41
41
  React.createElement(PieImpl, { ...props })));
42
42
  }
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import type { CommonPropsType } from '../../types';
3
+ export declare const CommonErrorBoundary: (props: CommonPropsType & {
4
+ children: React.ReactNode;
5
+ }) => JSX.Element;
@@ -0,0 +1,33 @@
1
+ import React, { useMemo } from 'react';
2
+ import { ErrorBoundary } from 'react-error-boundary';
3
+ import classNames from '../../utils/classnames';
4
+ import { ChartError } from '../chart/common/chart-error';
5
+ import { DetectedRenderLoppError } from './use-loop-render-detect';
6
+ export const CommonErrorBoundary = (props) => {
7
+ const FallbackComponent = ({ error, resetErrorBoundary, }) => {
8
+ const errorMsg = useMemo(() => {
9
+ var _a;
10
+ if (error instanceof ChartError ||
11
+ error instanceof DetectedRenderLoppError) {
12
+ return error.message;
13
+ }
14
+ else {
15
+ return (_a = error.stack) !== null && _a !== void 0 ? _a : error.message;
16
+ }
17
+ }, [error]);
18
+ return (React.createElement("div", { style: props.style, id: props.id, className: classNames([
19
+ 'wedaui-common-error-boundary',
20
+ props.className,
21
+ ]) },
22
+ React.createElement("code", null,
23
+ React.createElement("pre", { style: { display: 'inline' } }, errorMsg)),
24
+ React.createElement("a", { href: "#", style: {
25
+ padding: '0 8px',
26
+ textDecoration: 'none',
27
+ }, onClick: (ev) => {
28
+ ev.preventDefault();
29
+ resetErrorBoundary();
30
+ } }, "\u91CD\u8BD5")));
31
+ };
32
+ return (React.createElement(ErrorBoundary, { FallbackComponent: FallbackComponent }, props.children));
33
+ };
@@ -0,0 +1,11 @@
1
+ export declare const useRenderCount: () => [number, () => void];
2
+ declare type ILoopRenderDetectOptions = Readonly<{
3
+ limit?: number;
4
+ throwError?: boolean;
5
+ message?: string;
6
+ timeWindowMs?: number;
7
+ }>;
8
+ export declare class DetectedRenderLoppError extends Error {
9
+ }
10
+ export declare const useLoopRenderDetect: (inputOptions?: ILoopRenderDetectOptions) => boolean;
11
+ export {};
@@ -0,0 +1,124 @@
1
+ import { useSyncedRef } from '@react-hookz/web';
2
+ import { useCallback, useEffect, useRef } from 'react';
3
+ import { debug } from '../../utils/console';
4
+ export const useRenderCount = () => {
5
+ const countRef = useRef(0);
6
+ const syncedRef = useSyncedRef(++countRef.current);
7
+ const reset = useCallback(() => {
8
+ countRef.current = 0;
9
+ }, []);
10
+ return [syncedRef.current, reset];
11
+ };
12
+ class FpsCounter {
13
+ constructor() {
14
+ Object.defineProperty(this, "t", {
15
+ enumerable: true,
16
+ configurable: true,
17
+ writable: true,
18
+ value: performance || Date
19
+ });
20
+ Object.defineProperty(this, "frames", {
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true,
24
+ value: 0
25
+ });
26
+ Object.defineProperty(this, "prevTime", {
27
+ enumerable: true,
28
+ configurable: true,
29
+ writable: true,
30
+ value: 0
31
+ });
32
+ Object.defineProperty(this, "started", {
33
+ enumerable: true,
34
+ configurable: true,
35
+ writable: true,
36
+ value: false
37
+ });
38
+ Object.defineProperty(this, "fpsCnt", {
39
+ enumerable: true,
40
+ configurable: true,
41
+ writable: true,
42
+ value: 30
43
+ });
44
+ }
45
+ get isStarted() {
46
+ return this.started;
47
+ }
48
+ get fps() {
49
+ return this.fpsCnt;
50
+ }
51
+ tick() {
52
+ this.started = true;
53
+ this.frames++;
54
+ const time = this.t.now();
55
+ if (time >= this.prevTime + 1000) {
56
+ this.fpsCnt = (this.frames * 1000) / (time - this.prevTime);
57
+ this.frames = 0;
58
+ this.prevTime = time;
59
+ }
60
+ }
61
+ }
62
+ const fpsCounterSingleton = new FpsCounter();
63
+ function useFps() {
64
+ useEffect(() => {
65
+ if (typeof requestAnimationFrame == 'undefined')
66
+ return;
67
+ function tick() {
68
+ fpsCounterSingleton.tick();
69
+ // eslint-disable-next-line rulesdir/no-timer
70
+ requestAnimationFrame(tick);
71
+ }
72
+ if (!fpsCounterSingleton.isStarted) {
73
+ // eslint-disable-next-line rulesdir/no-timer
74
+ requestAnimationFrame(tick);
75
+ }
76
+ }, []);
77
+ const syncedRef = useSyncedRef(fpsCounterSingleton.fps);
78
+ return syncedRef.current;
79
+ }
80
+ const defaultOptions = {
81
+ limit: 500,
82
+ throwError: true,
83
+ message: '组件控制逻辑出现死循环,请检查并修改相关配置',
84
+ timeWindowMs: 6 * 1000,
85
+ };
86
+ const logger = debug('useLoopRenderDetect');
87
+ export class DetectedRenderLoppError extends Error {
88
+ }
89
+ export const useLoopRenderDetect = (inputOptions = defaultOptions) => {
90
+ const options = Object.assign({}, defaultOptions, inputOptions);
91
+ const [renderCount, reset] = useRenderCount();
92
+ useEffect(() => {
93
+ let id = null;
94
+ const resetCountTimer = () => {
95
+ reset();
96
+ // eslint-disable-next-line rulesdir/no-timer
97
+ id = setTimeout(() => {
98
+ resetCountTimer();
99
+ }, options.timeWindowMs);
100
+ };
101
+ resetCountTimer();
102
+ return () => {
103
+ if (id !== null) {
104
+ clearTimeout(id);
105
+ }
106
+ };
107
+ }, [options.timeWindowMs, reset]);
108
+ const fps = useFps();
109
+ logger.log({
110
+ timeWindowMs: options.timeWindowMs,
111
+ fps,
112
+ renderCount,
113
+ limit: options.limit,
114
+ });
115
+ if ((renderCount > options.limit && fps < 1) ||
116
+ renderCount > options.limit * 3) {
117
+ reset();
118
+ if (options.throwError) {
119
+ throw new DetectedRenderLoppError(options.message);
120
+ }
121
+ return true;
122
+ }
123
+ return false;
124
+ };