taro-uno-ui 0.9.0 → 1.0.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 (647) hide show
  1. package/README.md +21 -0
  2. package/dist/app.config.d.ts +38 -0
  3. package/dist/app.d.ts +6 -0
  4. package/dist/components/basic/Button/Button.d.ts +6 -0
  5. package/dist/components/basic/Button/Button.styles.d.ts +2 -0
  6. package/dist/components/basic/Button/Button.types.d.ts +74 -0
  7. package/dist/components/basic/Button/index.d.ts +4 -0
  8. package/dist/components/basic/Divider/Divider.d.ts +6 -0
  9. package/dist/components/basic/Divider/Divider.styles.d.ts +87 -0
  10. package/dist/components/basic/Divider/Divider.types.d.ts +242 -0
  11. package/dist/components/basic/Divider/index.d.ts +6 -0
  12. package/dist/components/basic/Icon/Icon.d.ts +5 -0
  13. package/dist/components/basic/Icon/Icon.data.d.ts +29 -0
  14. package/dist/components/basic/Icon/Icon.styles.d.ts +61 -0
  15. package/dist/components/basic/Icon/Icon.types.d.ts +199 -0
  16. package/dist/components/basic/Icon/IconManager.d.ts +120 -0
  17. package/dist/components/basic/Icon/index.d.ts +6 -0
  18. package/dist/components/basic/Text/Text.d.ts +7 -0
  19. package/dist/components/basic/Text/Text.styles.d.ts +67 -0
  20. package/dist/components/basic/Text/Text.types.d.ts +274 -0
  21. package/dist/components/basic/Text/index.d.ts +5 -0
  22. package/dist/components/basic/Typography/Typography.d.ts +8 -0
  23. package/dist/components/basic/Typography/Typography.styles.d.ts +83 -0
  24. package/dist/components/basic/Typography/Typography.types.d.ts +245 -0
  25. package/dist/components/basic/Typography/index.d.ts +3 -0
  26. package/dist/components/basic/Video/Video.d.ts +7 -0
  27. package/dist/components/basic/Video/Video.styles.d.ts +212 -0
  28. package/dist/components/basic/Video/Video.types.d.ts +447 -0
  29. package/dist/components/basic/Video/index.d.ts +10 -0
  30. package/dist/components/basic/index.d.ts +217 -0
  31. package/dist/components/common/ErrorBoundary.d.ts +19 -0
  32. package/dist/components/common/LazyComponent.d.ts +78 -0
  33. package/dist/components/common/ResponsiveContainer.d.ts +23 -0
  34. package/dist/components/common/ResponsiveGrid.d.ts +44 -0
  35. package/dist/components/common/SecurityProvider.d.ts +15 -0
  36. package/dist/components/common/ThemeProvider.d.ts +17 -0
  37. package/dist/components/common/VirtualList.d.ts +89 -0
  38. package/dist/components/common/index.d.ts +17 -0
  39. package/dist/components/display/Avatar/Avatar.d.ts +3 -0
  40. package/dist/components/display/Avatar/Avatar.styles.d.ts +2 -0
  41. package/dist/components/display/Avatar/Avatar.types.d.ts +37 -0
  42. package/dist/components/display/Avatar/index.d.ts +3 -0
  43. package/dist/components/display/Badge/Badge.d.ts +3 -0
  44. package/dist/components/display/Badge/Badge.types.d.ts +27 -0
  45. package/dist/components/display/Badge/index.d.ts +2 -0
  46. package/dist/components/display/Calendar/Calendar.d.ts +5 -0
  47. package/dist/components/display/Calendar/Calendar.styles.d.ts +2 -0
  48. package/dist/components/display/Calendar/Calendar.types.d.ts +87 -0
  49. package/dist/components/display/Calendar/index.d.ts +3 -0
  50. package/dist/components/display/Card/Card.d.ts +3 -0
  51. package/dist/components/display/Card/Card.styles.d.ts +1 -0
  52. package/dist/components/display/Card/Card.types.d.ts +52 -0
  53. package/dist/components/display/Card/index.d.ts +3 -0
  54. package/dist/components/display/Carousel/Carousel.d.ts +5 -0
  55. package/dist/components/display/Carousel/Carousel.styles.d.ts +2 -0
  56. package/dist/components/display/Carousel/Carousel.types.d.ts +55 -0
  57. package/dist/components/display/Carousel/index.d.ts +3 -0
  58. package/dist/components/display/List/List.d.ts +4 -0
  59. package/dist/components/display/List/List.styles.d.ts +1 -0
  60. package/dist/components/display/List/List.types.d.ts +64 -0
  61. package/dist/components/display/List/index.d.ts +3 -0
  62. package/dist/components/display/Rate/Rate.d.ts +6 -0
  63. package/dist/components/display/Rate/Rate.styles.d.ts +100 -0
  64. package/dist/components/display/Rate/Rate.types.d.ts +105 -0
  65. package/dist/components/display/Rate/index.d.ts +17 -0
  66. package/dist/components/display/Table/Table.d.ts +7 -0
  67. package/dist/components/display/Table/Table.styles.d.ts +84 -0
  68. package/dist/components/display/Table/Table.types.d.ts +251 -0
  69. package/dist/components/display/Table/index.d.ts +4 -0
  70. package/dist/components/display/Tag/Tag.d.ts +5 -0
  71. package/dist/components/display/Tag/Tag.styles.d.ts +2 -0
  72. package/dist/components/display/Tag/Tag.types.d.ts +47 -0
  73. package/dist/components/display/Tag/index.d.ts +3 -0
  74. package/dist/components/display/Timeline/Timeline.d.ts +16 -0
  75. package/dist/components/display/Timeline/Timeline.styles.d.ts +2 -0
  76. package/dist/components/display/Timeline/Timeline.types.d.ts +53 -0
  77. package/dist/components/display/Timeline/index.d.ts +3 -0
  78. package/dist/components/display/index.d.ts +67 -0
  79. package/dist/components/feedback/Loading/Loading.d.ts +4 -0
  80. package/dist/components/feedback/Loading/Loading.styles.d.ts +2 -0
  81. package/dist/components/feedback/Loading/Loading.types.d.ts +29 -0
  82. package/dist/components/feedback/Loading/index.d.ts +4 -0
  83. package/dist/components/feedback/Message/Message.d.ts +4 -0
  84. package/dist/components/feedback/Message/Message.styles.d.ts +34 -0
  85. package/dist/components/feedback/Message/Message.types.d.ts +33 -0
  86. package/dist/components/feedback/Message/index.d.ts +4 -0
  87. package/dist/components/feedback/Modal/Modal.d.ts +8 -0
  88. package/dist/components/feedback/Modal/Modal.styles.d.ts +18 -0
  89. package/dist/components/feedback/Modal/Modal.types.d.ts +143 -0
  90. package/dist/components/feedback/Modal/index.d.ts +3 -0
  91. package/dist/components/feedback/Notification/Notification.d.ts +4 -0
  92. package/dist/components/feedback/Notification/Notification.styles.d.ts +88 -0
  93. package/dist/components/feedback/Notification/Notification.types.d.ts +279 -0
  94. package/dist/components/feedback/Notification/NotificationManager.d.ts +4 -0
  95. package/dist/components/feedback/Notification/index.d.ts +25 -0
  96. package/dist/components/feedback/Progress/Progress.d.ts +4 -0
  97. package/dist/components/feedback/Progress/Progress.styles.d.ts +261 -0
  98. package/dist/components/feedback/Progress/Progress.test.simple.d.ts +2 -0
  99. package/dist/components/feedback/Progress/Progress.types.d.ts +147 -0
  100. package/dist/components/feedback/Progress/index.d.ts +3 -0
  101. package/dist/components/feedback/Progress/utils/animation.d.ts +55 -0
  102. package/dist/components/feedback/Progress/utils/index.d.ts +2 -0
  103. package/dist/components/feedback/Progress/utils/progress-calculator.d.ts +75 -0
  104. package/dist/components/feedback/Result/Result.d.ts +7 -0
  105. package/dist/components/feedback/Result/Result.styles.d.ts +2 -0
  106. package/dist/components/feedback/Result/Result.types.d.ts +66 -0
  107. package/dist/components/feedback/Result/index.d.ts +3 -0
  108. package/dist/components/feedback/Toast/Toast.d.ts +7 -0
  109. package/dist/components/feedback/Toast/Toast.styles.d.ts +14 -0
  110. package/dist/components/feedback/Toast/Toast.types.d.ts +81 -0
  111. package/dist/components/feedback/Toast/index.d.ts +3 -0
  112. package/dist/components/feedback/Tooltip/Tooltip.d.ts +4 -0
  113. package/dist/components/feedback/Tooltip/Tooltip.examples.d.ts +6 -0
  114. package/dist/components/feedback/Tooltip/Tooltip.styles.d.ts +78 -0
  115. package/dist/components/feedback/Tooltip/Tooltip.types.d.ts +130 -0
  116. package/dist/components/feedback/Tooltip/index.d.ts +3 -0
  117. package/dist/components/feedback/index.d.ts +71 -0
  118. package/dist/components/form/Cascader/Cascader.d.ts +7 -0
  119. package/dist/components/form/Cascader/Cascader.styles.d.ts +107 -0
  120. package/dist/components/form/Cascader/Cascader.types.d.ts +418 -0
  121. package/dist/components/form/Cascader/hooks/index.d.ts +3 -0
  122. package/dist/components/form/Cascader/hooks/useCascaderFieldNames.d.ts +12 -0
  123. package/dist/components/form/Cascader/hooks/useCascaderOptions.d.ts +15 -0
  124. package/dist/components/form/Cascader/hooks/useCascaderState.d.ts +23 -0
  125. package/dist/components/form/Cascader/index.d.ts +6 -0
  126. package/dist/components/form/Cascader/utils/formatDisplayValue.d.ts +9 -0
  127. package/dist/components/form/Cascader/utils/index.d.ts +1 -0
  128. package/dist/components/form/Checkbox/Checkbox.d.ts +6 -0
  129. package/dist/components/form/Checkbox/Checkbox.styles.d.ts +111 -0
  130. package/dist/components/form/Checkbox/Checkbox.types.d.ts +473 -0
  131. package/dist/components/form/Checkbox/CheckboxGroup.d.ts +6 -0
  132. package/dist/components/form/Checkbox/index.d.ts +8 -0
  133. package/dist/components/form/DatePicker/DatePicker.d.ts +6 -0
  134. package/dist/components/form/DatePicker/DatePicker.styles.d.ts +99 -0
  135. package/dist/components/form/DatePicker/DatePicker.types.d.ts +236 -0
  136. package/dist/components/form/DatePicker/index.d.ts +3 -0
  137. package/dist/components/form/Form/Form.d.ts +8 -0
  138. package/dist/components/form/Form/Form.styles.d.ts +84 -0
  139. package/dist/components/form/Form/Form.types.d.ts +416 -0
  140. package/dist/components/form/Form/index.d.ts +9 -0
  141. package/dist/components/form/Form/useFormLogic.d.ts +22 -0
  142. package/dist/components/form/Input/Input.d.ts +6 -0
  143. package/dist/components/form/Input/Input.styles.d.ts +61 -0
  144. package/dist/components/form/Input/Input.types.d.ts +294 -0
  145. package/dist/components/form/Input/index.d.ts +8 -0
  146. package/dist/components/form/Input/useInputLogic.d.ts +35 -0
  147. package/dist/components/form/InputNumber/InputNumber.d.ts +6 -0
  148. package/dist/components/form/InputNumber/InputNumber.styles.d.ts +120 -0
  149. package/dist/components/form/InputNumber/InputNumber.types.d.ts +303 -0
  150. package/dist/components/form/InputNumber/components/InputNumberClearButton.d.ts +10 -0
  151. package/dist/components/form/InputNumber/components/InputNumberControls.d.ts +11 -0
  152. package/dist/components/form/InputNumber/components/index.d.ts +2 -0
  153. package/dist/components/form/InputNumber/hooks/index.d.ts +4 -0
  154. package/dist/components/form/InputNumber/hooks/useInputNumberState.d.ts +38 -0
  155. package/dist/components/form/InputNumber/hooks/useInputNumberValidation.d.ts +12 -0
  156. package/dist/components/form/InputNumber/index.d.ts +5 -0
  157. package/dist/components/form/Radio/Radio.d.ts +6 -0
  158. package/dist/components/form/Radio/Radio.styles.d.ts +80 -0
  159. package/dist/components/form/Radio/Radio.types.d.ts +415 -0
  160. package/dist/components/form/Radio/index.d.ts +8 -0
  161. package/dist/components/form/Select/Select.d.ts +6 -0
  162. package/dist/components/form/Select/Select.styles.d.ts +71 -0
  163. package/dist/components/form/Select/Select.types.d.ts +418 -0
  164. package/dist/components/form/Select/index.d.ts +8 -0
  165. package/dist/components/form/Slider/Slider.d.ts +7 -0
  166. package/dist/components/form/Slider/Slider.styles.d.ts +2 -0
  167. package/dist/components/form/Slider/Slider.types.d.ts +85 -0
  168. package/dist/components/form/Slider/index.d.ts +3 -0
  169. package/dist/components/form/Switch/Switch.d.ts +10 -0
  170. package/dist/components/form/Switch/Switch.styles.d.ts +154 -0
  171. package/dist/components/form/Switch/Switch.types.d.ts +351 -0
  172. package/dist/components/form/Switch/index.d.ts +7 -0
  173. package/dist/components/form/Textarea/Textarea.d.ts +6 -0
  174. package/dist/components/form/Textarea/Textarea.styles.d.ts +66 -0
  175. package/dist/components/form/Textarea/Textarea.types.d.ts +348 -0
  176. package/dist/components/form/Textarea/index.d.ts +7 -0
  177. package/dist/components/form/TimePicker/TimePicker.d.ts +6 -0
  178. package/dist/components/form/TimePicker/TimePicker.styles.d.ts +104 -0
  179. package/dist/components/form/TimePicker/TimePicker.types.d.ts +385 -0
  180. package/dist/components/form/TimePicker/index.d.ts +4 -0
  181. package/dist/components/form/Transfer/Transfer.d.ts +7 -0
  182. package/dist/components/form/Transfer/Transfer.styles.d.ts +106 -0
  183. package/dist/components/form/Transfer/Transfer.types.d.ts +384 -0
  184. package/dist/components/form/Transfer/components/TransferItem.d.ts +23 -0
  185. package/dist/components/form/Transfer/components/TransferList.d.ts +55 -0
  186. package/dist/components/form/Transfer/components/TransferOperations.d.ts +21 -0
  187. package/dist/components/form/Transfer/components/TransferPagination.d.ts +19 -0
  188. package/dist/components/form/Transfer/components/TransferSearch.d.ts +21 -0
  189. package/dist/components/form/Transfer/components/index.d.ts +6 -0
  190. package/dist/components/form/Transfer/hooks/index.d.ts +3 -0
  191. package/dist/components/form/Transfer/hooks/useTransferData.d.ts +41 -0
  192. package/dist/components/form/Transfer/hooks/useTransferState.d.ts +21 -0
  193. package/dist/components/form/Transfer/index.d.ts +9 -0
  194. package/dist/components/form/Upload/Upload.d.ts +7 -0
  195. package/dist/components/form/Upload/Upload.styles.d.ts +2 -0
  196. package/dist/components/form/Upload/Upload.types.d.ts +143 -0
  197. package/dist/components/form/Upload/index.d.ts +3 -0
  198. package/dist/components/form/index.d.ts +126 -0
  199. package/dist/components/index.d.ts +122 -0
  200. package/dist/components/layout/Affix/Affix.d.ts +4 -0
  201. package/dist/components/layout/Affix/Affix.styles.d.ts +1669 -0
  202. package/dist/components/layout/Affix/Affix.types.d.ts +25 -0
  203. package/dist/components/layout/Affix/index.d.ts +3 -0
  204. package/dist/components/layout/Col/Col.d.ts +6 -0
  205. package/dist/components/layout/Col/Col.styles.d.ts +52 -0
  206. package/dist/components/layout/Col/Col.types.d.ts +54 -0
  207. package/dist/components/layout/Col/index.d.ts +3 -0
  208. package/dist/components/layout/Container/Container.d.ts +6 -0
  209. package/dist/components/layout/Container/Container.styles.d.ts +41 -0
  210. package/dist/components/layout/Container/Container.types.d.ts +59 -0
  211. package/dist/components/layout/Container/index.d.ts +3 -0
  212. package/dist/components/layout/Grid/Grid.d.ts +6 -0
  213. package/dist/components/layout/Grid/Grid.styles.d.ts +60 -0
  214. package/dist/components/layout/Grid/Grid.types.d.ts +68 -0
  215. package/dist/components/layout/Grid/index.d.ts +3 -0
  216. package/dist/components/layout/Layout/Content.d.ts +4 -0
  217. package/dist/components/layout/Layout/Footer.d.ts +4 -0
  218. package/dist/components/layout/Layout/Header.d.ts +4 -0
  219. package/dist/components/layout/Layout/Layout.d.ts +4 -0
  220. package/dist/components/layout/Layout/Layout.styles.d.ts +3366 -0
  221. package/dist/components/layout/Layout/Layout.types.d.ts +48 -0
  222. package/dist/components/layout/Layout/Sider.d.ts +4 -0
  223. package/dist/components/layout/Layout/index.d.ts +8 -0
  224. package/dist/components/layout/Row/Row.d.ts +6 -0
  225. package/dist/components/layout/Row/Row.styles.d.ts +55 -0
  226. package/dist/components/layout/Row/Row.types.d.ts +51 -0
  227. package/dist/components/layout/Row/index.d.ts +3 -0
  228. package/dist/components/layout/Space/Space.d.ts +6 -0
  229. package/dist/components/layout/Space/Space.styles.d.ts +69 -0
  230. package/dist/components/layout/Space/Space.types.d.ts +84 -0
  231. package/dist/components/layout/Space/index.d.ts +3 -0
  232. package/dist/components/layout/index.d.ts +39 -0
  233. package/dist/components/navigation/Menu/Menu.constants.d.ts +59 -0
  234. package/dist/components/navigation/Menu/Menu.d.ts +10 -0
  235. package/dist/components/navigation/Menu/Menu.stories.d.ts +157 -0
  236. package/dist/components/navigation/Menu/Menu.styles.d.ts +143 -0
  237. package/dist/components/navigation/Menu/Menu.types.d.ts +210 -0
  238. package/dist/components/navigation/Menu/Menu.utils.d.ts +54 -0
  239. package/dist/components/navigation/Menu/MenuItem.d.ts +32 -0
  240. package/dist/components/navigation/Menu/SubMenu.d.ts +41 -0
  241. package/dist/components/navigation/Menu/index.d.ts +54 -0
  242. package/dist/components/navigation/NavBar/NavBar.d.ts +7 -0
  243. package/dist/components/navigation/NavBar/NavBar.styles.d.ts +114 -0
  244. package/dist/components/navigation/NavBar/NavBar.types.d.ts +50 -0
  245. package/dist/components/navigation/NavBar/index.d.ts +3 -0
  246. package/dist/components/navigation/Pagination/Pagination.d.ts +6 -0
  247. package/dist/components/navigation/Pagination/Pagination.styles.d.ts +55 -0
  248. package/dist/components/navigation/Pagination/Pagination.types.d.ts +77 -0
  249. package/dist/components/navigation/Pagination/index.d.ts +15 -0
  250. package/dist/components/navigation/Steps/Step.d.ts +4 -0
  251. package/dist/components/navigation/Steps/Steps.d.ts +4 -0
  252. package/dist/components/navigation/Steps/Steps.styles.d.ts +6716 -0
  253. package/dist/components/navigation/Steps/Steps.types.d.ts +41 -0
  254. package/dist/components/navigation/Steps/index.d.ts +3 -0
  255. package/dist/components/navigation/Tabs/Tabs.d.ts +6 -0
  256. package/dist/components/navigation/Tabs/Tabs.styles.d.ts +60 -0
  257. package/dist/components/navigation/Tabs/Tabs.types.d.ts +107 -0
  258. package/dist/components/navigation/Tabs/index.d.ts +3 -0
  259. package/dist/components/navigation/index.d.ts +35 -0
  260. package/dist/constants/index.d.ts +624 -0
  261. package/dist/hooks/index.d.ts +28 -0
  262. package/dist/hooks/types.d.ts +7 -0
  263. package/dist/hooks/useAsync.d.ts +17 -0
  264. package/dist/hooks/useClickOutside.d.ts +19 -0
  265. package/dist/hooks/useCounter.d.ts +36 -0
  266. package/dist/hooks/useDebounce.d.ts +31 -0
  267. package/dist/hooks/useDeepCompareEffect.d.ts +22 -0
  268. package/dist/hooks/useEventHandling.d.ts +81 -0
  269. package/dist/hooks/useEventListener.d.ts +19 -0
  270. package/dist/hooks/useLifecycle.d.ts +66 -0
  271. package/dist/hooks/useMediaQuery.d.ts +22 -0
  272. package/dist/hooks/useMutation.d.ts +47 -0
  273. package/dist/hooks/usePerformance.d.ts +73 -0
  274. package/dist/hooks/usePerformanceMonitor.d.ts +66 -0
  275. package/dist/hooks/usePlatform.d.ts +20 -0
  276. package/dist/hooks/usePrevious.d.ts +14 -0
  277. package/dist/hooks/useRequest.d.ts +32 -0
  278. package/dist/hooks/useStateManagement.d.ts +62 -0
  279. package/dist/hooks/useStorage.d.ts +27 -0
  280. package/dist/hooks/useStyle.d.ts +127 -0
  281. package/dist/hooks/useTheme.d.ts +58 -0
  282. package/dist/hooks/useToggle.d.ts +28 -0
  283. package/dist/hooks/useVirtualScroll.d.ts +42 -0
  284. package/dist/index.d.ts +271 -0
  285. package/dist/js/{index-DffLRSro.js → index-CDFsvu80.js} +15369 -10741
  286. package/dist/js/index-CDFsvu80.js.map +1 -0
  287. package/dist/js/index-DFdcksbe.js.map +1 -1
  288. package/dist/js/index-DXRIkWX1.js.map +1 -1
  289. package/dist/js/{index-6NJ3A1Dn.js → index-JffnTUrv.js} +15430 -10801
  290. package/dist/js/index-JffnTUrv.js.map +1 -0
  291. package/dist/platform/index.d.ts +172 -0
  292. package/dist/providers/AppProvider.d.ts +34 -0
  293. package/dist/providers/index.d.ts +1 -0
  294. package/dist/theme/ThemeProvider.d.ts +34 -0
  295. package/dist/theme/ThemeProvider.types.d.ts +21 -0
  296. package/dist/theme/animations.d.ts +96 -0
  297. package/dist/theme/defaults.d.ts +6 -0
  298. package/dist/theme/design-system.d.ts +400 -0
  299. package/dist/theme/design-tokens.d.ts +459 -0
  300. package/dist/theme/index.d.ts +187 -0
  301. package/dist/theme/responsive.d.ts +63 -0
  302. package/dist/theme/styles.d.ts +65 -0
  303. package/dist/theme/tokens/colors.d.ts +72 -0
  304. package/dist/theme/tokens/effects.d.ts +122 -0
  305. package/dist/theme/tokens/index.d.ts +94 -0
  306. package/dist/theme/tokens/spacing.d.ts +65 -0
  307. package/dist/theme/tokens/typography.d.ts +73 -0
  308. package/dist/theme/types.d.ts +153 -0
  309. package/dist/theme/useThemeUtils.d.ts +21 -0
  310. package/dist/theme/utils.d.ts +255 -0
  311. package/dist/theme/variables.d.ts +170 -0
  312. package/dist/types/accessibility.d.ts +46 -0
  313. package/dist/types/button.d.ts +285 -0
  314. package/dist/types/component-props.d.ts +109 -0
  315. package/dist/types/index.d.ts +343 -0
  316. package/dist/types/standardized-components.d.ts +263 -0
  317. package/dist/types/utils.d.ts +190 -0
  318. package/dist/utils/abort-controller.d.ts +19 -0
  319. package/dist/utils/cache.d.ts +28 -0
  320. package/dist/utils/createNamespace.d.ts +9 -0
  321. package/dist/utils/environment.d.ts +26 -0
  322. package/dist/utils/error-handler.d.ts +37 -0
  323. package/dist/utils/errorLogger.d.ts +72 -0
  324. package/dist/utils/formatUtils.d.ts +93 -0
  325. package/dist/utils/http/error-codes.d.ts +131 -0
  326. package/dist/utils/http/http-client.d.ts +53 -0
  327. package/dist/utils/http/request-cache.d.ts +65 -0
  328. package/dist/utils/http/request.d.ts +280 -0
  329. package/dist/utils/http/taro-adapter.d.ts +4 -0
  330. package/dist/utils/http/types.d.ts +351 -0
  331. package/dist/utils/http/web-adapter.d.ts +4 -0
  332. package/dist/utils/index.d.ts +46 -0
  333. package/dist/utils/inputValidator.d.ts +74 -0
  334. package/dist/utils/performance/performance.d.ts +167 -0
  335. package/dist/utils/responsiveUtils.d.ts +148 -0
  336. package/dist/utils/rtl-support.d.ts +78 -0
  337. package/dist/utils/security/api-security.d.ts +82 -0
  338. package/dist/utils/security/xss-protection.d.ts +20 -0
  339. package/dist/utils/securityHeaders.d.ts +74 -0
  340. package/dist/utils/typeHelpers.d.ts +1 -0
  341. package/dist/utils/types/dataProcessing.d.ts +111 -0
  342. package/dist/utils/types/typeHelpers.d.ts +50 -0
  343. package/dist/utils/xssProtection.d.ts +90 -0
  344. package/package.json +14 -10
  345. package/src/components/basic/Button/Button.tsx +53 -13
  346. package/src/components/basic/Button/Button.types.ts +45 -9
  347. package/src/components/basic/Divider/Divider.tsx +60 -29
  348. package/src/components/basic/Icon/Icon.data.ts +474 -0
  349. package/src/components/basic/Icon/Icon.test.tsx +2 -2
  350. package/src/components/basic/Icon/Icon.tsx +48 -35
  351. package/src/components/basic/Icon/IconManager.ts +229 -0
  352. package/src/components/basic/Text/Text.styles.ts +3 -3
  353. package/src/components/basic/Text/Text.types.ts +14 -4
  354. package/src/components/basic/Typography/Typography.styles.ts +10 -9
  355. package/src/components/basic/Typography/Typography.tsx +15 -13
  356. package/src/components/basic/Typography/Typography.types.ts +41 -41
  357. package/src/components/basic/Typography/index.tsx +1 -1
  358. package/src/components/basic/Video/Video.styles.ts +777 -0
  359. package/src/components/basic/Video/Video.test.tsx +490 -0
  360. package/src/components/basic/Video/Video.tsx +1468 -0
  361. package/src/components/basic/Video/Video.types.ts +500 -0
  362. package/src/components/basic/Video/index.tsx +26 -0
  363. package/src/components/basic/index.tsx +13 -15
  364. package/src/components/common/ErrorBoundary.tsx +1 -1
  365. package/src/components/common/LazyComponent.tsx +9 -8
  366. package/src/components/common/SecurityProvider.tsx +2 -14
  367. package/src/components/common/ThemeProvider.tsx +43 -56
  368. package/src/components/common/VirtualList.tsx +187 -205
  369. package/src/components/common/index.tsx +25 -0
  370. package/src/components/display/Avatar/Avatar.styles.ts +1 -1
  371. package/src/components/display/Avatar/Avatar.tsx +6 -19
  372. package/src/components/display/Avatar/Avatar.types.ts +1 -1
  373. package/src/components/display/Avatar/index.ts +1 -1
  374. package/src/components/display/Badge/Badge.tsx +3 -16
  375. package/src/components/display/Badge/Badge.types.ts +1 -1
  376. package/src/components/display/Badge/index.ts +1 -1
  377. package/src/components/display/Calendar/Calendar.styles.ts +36 -36
  378. package/src/components/display/Calendar/Calendar.test.tsx +27 -15
  379. package/src/components/display/Calendar/Calendar.tsx +56 -35
  380. package/src/components/display/Calendar/Calendar.types.ts +1 -1
  381. package/src/components/display/Calendar/index.ts +1 -1
  382. package/src/components/display/Card/Card.styles.ts +2 -2
  383. package/src/components/display/Card/Card.test.tsx +6 -4
  384. package/src/components/display/Card/Card.tsx +1 -1
  385. package/src/components/display/Card/Card.types.ts +4 -4
  386. package/src/components/display/Card/index.ts +1 -1
  387. package/src/components/display/Carousel/Carousel.styles.ts +31 -31
  388. package/src/components/display/Carousel/Carousel.tsx +34 -39
  389. package/src/components/display/Carousel/Carousel.types.ts +1 -1
  390. package/src/components/display/Carousel/index.ts +1 -1
  391. package/src/components/display/List/List.styles.ts +3 -3
  392. package/src/components/display/List/List.tsx +0 -1
  393. package/src/components/display/List/index.ts +1 -1
  394. package/src/components/display/Rate/Rate.styles.ts +5 -17
  395. package/src/components/display/Rate/Rate.tsx +6 -14
  396. package/src/components/display/Rate/Rate.types.ts +4 -3
  397. package/src/components/display/Rate/index.ts +3 -11
  398. package/src/components/display/Table/Table.test.tsx +2 -0
  399. package/src/components/display/Table/Table.tsx +3 -7
  400. package/src/components/display/Table/Table.types.ts +3 -2
  401. package/src/components/display/Tag/Tag.styles.ts +31 -31
  402. package/src/components/display/Tag/Tag.tsx +9 -26
  403. package/src/components/display/Tag/Tag.types.ts +1 -1
  404. package/src/components/display/Tag/index.ts +1 -1
  405. package/src/components/display/Timeline/Timeline.styles.ts +32 -32
  406. package/src/components/display/Timeline/Timeline.tsx +23 -42
  407. package/src/components/display/Timeline/Timeline.types.ts +1 -1
  408. package/src/components/display/Timeline/index.ts +1 -1
  409. package/src/components/display/index.tsx +33 -29
  410. package/src/components/feedback/Loading/Loading.tsx +6 -1
  411. package/src/components/feedback/Loading/index.ts +2 -5
  412. package/src/components/feedback/Message/Message.styles.ts +3 -3
  413. package/src/components/feedback/Message/index.ts +2 -5
  414. package/src/components/feedback/Modal/Modal.styles.ts +1 -1
  415. package/src/components/feedback/Modal/Modal.tsx +9 -31
  416. package/src/components/feedback/Modal/Modal.types.ts +12 -2
  417. package/src/components/feedback/Notification/Notification.styles.ts +49 -39
  418. package/src/components/feedback/Notification/Notification.test.tsx +1 -1
  419. package/src/components/feedback/Notification/Notification.tsx +97 -120
  420. package/src/components/feedback/Notification/Notification.types.ts +11 -8
  421. package/src/components/feedback/Notification/NotificationManager.tsx +135 -106
  422. package/src/components/feedback/Notification/index.ts +10 -3
  423. package/src/components/feedback/Notification/index.tsx +16 -26
  424. package/src/components/feedback/Progress/Progress.styles.ts +23 -14
  425. package/src/components/feedback/Progress/Progress.tsx +93 -113
  426. package/src/components/feedback/Progress/Progress.types.ts +1 -1
  427. package/src/components/feedback/Progress/index.ts +1 -1
  428. package/src/components/feedback/Progress/utils/animation.ts +12 -23
  429. package/src/components/feedback/Progress/utils/index.ts +2 -2
  430. package/src/components/feedback/Progress/utils/progress-calculator.ts +14 -32
  431. package/src/components/feedback/Result/Result.styles.ts +29 -29
  432. package/src/components/feedback/Result/Result.tsx +8 -20
  433. package/src/components/feedback/Result/Result.types.ts +7 -7
  434. package/src/components/feedback/Result/index.tsx +1 -1
  435. package/src/components/feedback/Toast/Toast.styles.ts +1 -1
  436. package/src/components/feedback/Toast/Toast.tsx +25 -13
  437. package/src/components/feedback/Tooltip/Tooltip.examples.tsx +21 -44
  438. package/src/components/feedback/Tooltip/Tooltip.styles.ts +16 -22
  439. package/src/components/feedback/Tooltip/Tooltip.test.tsx +1 -1
  440. package/src/components/feedback/Tooltip/Tooltip.tsx +65 -46
  441. package/src/components/feedback/Tooltip/Tooltip.types.ts +14 -20
  442. package/src/components/feedback/Tooltip/index.ts +1 -1
  443. package/src/components/feedback/Tooltip/index.tsx +12 -24
  444. package/src/components/feedback/index.tsx +54 -42
  445. package/src/components/form/Cascader/Cascader.styles.ts +2 -2
  446. package/src/components/form/Cascader/Cascader.tsx +84 -88
  447. package/src/components/form/Cascader/Cascader.types.ts +49 -50
  448. package/src/components/form/Cascader/hooks/useCascaderFieldNames.ts +11 -8
  449. package/src/components/form/Cascader/hooks/useCascaderOptions.ts +73 -55
  450. package/src/components/form/Cascader/hooks/useCascaderState.ts +31 -25
  451. package/src/components/form/Cascader/index.ts +1 -1
  452. package/src/components/form/Cascader/utils/formatDisplayValue.ts +4 -4
  453. package/src/components/form/Checkbox/Checkbox.styles.ts +83 -84
  454. package/src/components/form/Checkbox/Checkbox.tsx +2 -9
  455. package/src/components/form/Checkbox/CheckboxGroup.tsx +7 -7
  456. package/src/components/form/DatePicker/DatePicker.test.tsx +1 -1
  457. package/src/components/form/DatePicker/DatePicker.tsx +91 -75
  458. package/src/components/form/DatePicker/DatePicker.types.ts +4 -1
  459. package/src/components/form/Form/Form.tsx +66 -504
  460. package/src/components/form/Form/Form.types.ts +16 -1
  461. package/src/components/form/Form/useFormLogic.ts +497 -0
  462. package/src/components/form/Input/Input.styles.ts +8 -1
  463. package/src/components/form/Input/Input.tsx +55 -291
  464. package/src/components/form/Input/Input.types.ts +13 -1
  465. package/src/components/form/Input/useInputLogic.test.ts +82 -0
  466. package/src/components/form/Input/useInputLogic.ts +260 -0
  467. package/src/components/form/InputNumber/InputNumber.styles.ts +76 -25
  468. package/src/components/form/InputNumber/InputNumber.tsx +53 -21
  469. package/src/components/form/InputNumber/InputNumber.types.ts +21 -3
  470. package/src/components/form/InputNumber/components/InputNumberClearButton.tsx +3 -11
  471. package/src/components/form/InputNumber/components/InputNumberControls.tsx +3 -12
  472. package/src/components/form/InputNumber/hooks/index.ts +1 -1
  473. package/src/components/form/InputNumber/hooks/useInputNumberState.ts +7 -9
  474. package/src/components/form/InputNumber/hooks/useInputNumberValidation.ts +18 -17
  475. package/src/components/form/InputNumber/index.ts +7 -7
  476. package/src/components/form/Radio/Radio.styles.ts +1 -8
  477. package/src/components/form/Radio/Radio.tsx +3 -9
  478. package/src/components/form/Radio/Radio.types.ts +5 -1
  479. package/src/components/form/Select/Select.styles.ts +5 -1
  480. package/src/components/form/Select/Select.tsx +15 -15
  481. package/src/components/form/Select/Select.types.ts +2 -1
  482. package/src/components/form/Slider/Slider.styles.ts +13 -13
  483. package/src/components/form/Slider/Slider.tsx +19 -33
  484. package/src/components/form/Slider/Slider.types.ts +14 -12
  485. package/src/components/form/Slider/index.tsx +2 -9
  486. package/src/components/form/Switch/Switch.styles.ts +1 -7
  487. package/src/components/form/Switch/Switch.tsx +7 -13
  488. package/src/components/form/Textarea/Textarea.styles.ts +4 -4
  489. package/src/components/form/Textarea/Textarea.tsx +7 -1
  490. package/src/components/form/Textarea/Textarea.types.ts +4 -1
  491. package/src/components/form/TimePicker/TimePicker.styles.ts +8 -12
  492. package/src/components/form/TimePicker/TimePicker.tsx +122 -100
  493. package/src/components/form/TimePicker/TimePicker.types.ts +2 -2
  494. package/src/components/form/TimePicker/index.ts +1 -1
  495. package/src/components/form/Transfer/Transfer.styles.ts +3 -15
  496. package/src/components/form/Transfer/Transfer.tsx +146 -134
  497. package/src/components/form/Transfer/Transfer.types.ts +34 -26
  498. package/src/components/form/Transfer/components/TransferItem.tsx +55 -62
  499. package/src/components/form/Transfer/components/TransferList.tsx +212 -199
  500. package/src/components/form/Transfer/components/TransferOperations.tsx +52 -55
  501. package/src/components/form/Transfer/components/TransferPagination.tsx +115 -111
  502. package/src/components/form/Transfer/components/TransferSearch.tsx +52 -55
  503. package/src/components/form/Transfer/hooks/useTransferData.ts +91 -81
  504. package/src/components/form/Transfer/hooks/useTransferState.ts +22 -16
  505. package/src/components/form/Transfer/index.ts +2 -8
  506. package/src/components/form/Upload/Upload.styles.ts +21 -21
  507. package/src/components/form/Upload/Upload.tsx +189 -142
  508. package/src/components/form/Upload/Upload.types.ts +31 -31
  509. package/src/components/form/Upload/index.tsx +1 -1
  510. package/src/components/form/index.tsx +60 -29
  511. package/src/components/index.tsx +0 -1
  512. package/src/components/layout/Affix/Affix.styles.ts +16 -11
  513. package/src/components/layout/Affix/Affix.tsx +67 -75
  514. package/src/components/layout/Affix/Affix.types.ts +18 -18
  515. package/src/components/layout/Affix/index.tsx +1 -1
  516. package/src/components/layout/Col/Col.styles.ts +17 -17
  517. package/src/components/layout/Col/Col.test.tsx +7 -5
  518. package/src/components/layout/Col/Col.tsx +3 -21
  519. package/src/components/layout/Col/Col.types.ts +1 -1
  520. package/src/components/layout/Container/Container.styles.ts +3 -1
  521. package/src/components/layout/Container/Container.tsx +2 -11
  522. package/src/components/layout/Grid/Grid.tsx +3 -53
  523. package/src/components/layout/Layout/Content.tsx +24 -32
  524. package/src/components/layout/Layout/Footer.tsx +24 -32
  525. package/src/components/layout/Layout/Header.tsx +24 -32
  526. package/src/components/layout/Layout/Layout.styles.ts +17 -17
  527. package/src/components/layout/Layout/Layout.tsx +14 -25
  528. package/src/components/layout/Layout/Layout.types.ts +29 -29
  529. package/src/components/layout/Layout/Sider.tsx +44 -56
  530. package/src/components/layout/Layout/index.tsx +16 -2
  531. package/src/components/layout/Row/Row.tsx +15 -43
  532. package/src/components/layout/Space/Space.tsx +3 -11
  533. package/src/components/layout/Space/Space.types.ts +1 -1
  534. package/src/components/layout/index.tsx +29 -19
  535. package/src/components/navigation/Menu/Menu.constants.ts +69 -0
  536. package/src/components/navigation/Menu/Menu.stories.tsx +107 -0
  537. package/src/components/navigation/Menu/Menu.styles.ts +25 -37
  538. package/src/components/navigation/Menu/Menu.tsx +8 -11
  539. package/src/components/navigation/Menu/Menu.types.ts +2 -2
  540. package/src/components/navigation/Menu/Menu.utils.ts +17 -17
  541. package/src/components/navigation/Menu/MenuItem.tsx +9 -11
  542. package/src/components/navigation/Menu/SubMenu.tsx +8 -6
  543. package/src/components/navigation/Menu/index.tsx +4 -69
  544. package/src/components/navigation/NavBar/NavBar.styles.ts +1 -1
  545. package/src/components/navigation/NavBar/NavBar.tsx +7 -10
  546. package/src/components/navigation/NavBar/NavBar.types.ts +3 -3
  547. package/src/components/navigation/NavBar/index.tsx +1 -1
  548. package/src/components/navigation/Pagination/Pagination.test.tsx +2 -3
  549. package/src/components/navigation/Pagination/Pagination.tsx +3 -3
  550. package/src/components/navigation/Pagination/Pagination.types.ts +3 -2
  551. package/src/components/navigation/Pagination/index.ts +9 -3
  552. package/src/components/navigation/Steps/Step.tsx +24 -44
  553. package/src/components/navigation/Steps/Steps.styles.ts +28 -13
  554. package/src/components/navigation/Steps/Steps.test.tsx +2 -0
  555. package/src/components/navigation/Steps/Steps.tsx +88 -89
  556. package/src/components/navigation/Steps/Steps.types.ts +30 -30
  557. package/src/components/navigation/Steps/index.tsx +1 -1
  558. package/src/components/navigation/Tabs/Tabs.test.tsx +3 -2
  559. package/src/components/navigation/Tabs/Tabs.types.ts +4 -3
  560. package/src/components/navigation/index.tsx +21 -16
  561. package/src/constants/index.ts +1 -1
  562. package/src/hooks/index.ts +52 -102
  563. package/src/hooks/types.ts +4 -5
  564. package/src/hooks/useAsync.ts +46 -47
  565. package/src/hooks/useClickOutside.ts +52 -0
  566. package/src/hooks/useCounter.ts +87 -0
  567. package/src/hooks/useDebounce.ts +150 -0
  568. package/src/hooks/useDeepCompareEffect.ts +88 -0
  569. package/src/hooks/useEventListener.ts +77 -0
  570. package/src/hooks/useMediaQuery.ts +75 -0
  571. package/src/hooks/useMutation.ts +233 -0
  572. package/src/hooks/usePerformance.ts +1 -64
  573. package/src/hooks/usePlatform.ts +3 -1
  574. package/src/hooks/usePrevious.ts +25 -0
  575. package/src/hooks/useRequest.ts +12 -7
  576. package/src/hooks/useStateManagement.ts +1 -1
  577. package/src/hooks/useStorage.ts +169 -0
  578. package/src/hooks/useStyle.ts +8 -2
  579. package/src/hooks/useToggle.ts +54 -0
  580. package/src/index.ts +34 -9
  581. package/src/theme/ThemeProvider.tsx +3 -7
  582. package/src/theme/ThemeProvider.types.ts +1 -1
  583. package/src/theme/defaults.ts +1 -1
  584. package/src/theme/design-system.ts +2 -2
  585. package/src/theme/design-tokens.ts +85 -99
  586. package/src/theme/generated/dark-theme.scss +1 -1
  587. package/src/theme/generated/tokens.scss +82 -18
  588. package/src/theme/index.ts +8 -29
  589. package/src/theme/responsive.tsx +36 -34
  590. package/src/theme/styles.ts +1 -1
  591. package/src/theme/useThemeUtils.ts +43 -43
  592. package/src/theme/utils.ts +32 -32
  593. package/src/theme/variables.ts +70 -51
  594. package/src/types/accessibility.ts +36 -37
  595. package/src/types/button.ts +25 -27
  596. package/src/types/component-props.ts +6 -1
  597. package/src/types/glob.d.ts +4 -0
  598. package/src/types/index.ts +2 -2
  599. package/src/types/standardized-components.ts +9 -3
  600. package/src/types/utils.ts +13 -23
  601. package/src/utils/__tests__/responsiveUtils.test.ts +5 -4
  602. package/src/utils/abort-controller.ts +48 -0
  603. package/src/utils/cache.ts +2 -6
  604. package/src/utils/createNamespace.ts +4 -4
  605. package/src/utils/environment.ts +26 -6
  606. package/src/utils/error-handler.ts +2 -2
  607. package/src/utils/errorLogger.ts +16 -20
  608. package/src/utils/formatUtils.ts +38 -70
  609. package/src/utils/http/error-codes.ts +314 -0
  610. package/src/utils/http/http-client.test.ts +63 -0
  611. package/src/utils/{network → http}/http-client.ts +45 -35
  612. package/src/utils/http/request-cache.ts +127 -0
  613. package/src/utils/http/request.ts +954 -0
  614. package/src/utils/http/taro-adapter.test.ts +74 -0
  615. package/src/utils/http/taro-adapter.ts +24 -0
  616. package/src/utils/http/types.ts +414 -0
  617. package/src/utils/http/web-adapter.ts +33 -0
  618. package/src/utils/index.ts +5 -8
  619. package/src/utils/inputValidator.ts +17 -14
  620. package/src/utils/performance/performance.ts +60 -71
  621. package/src/utils/responsiveUtils.ts +7 -16
  622. package/src/utils/rtl-support.ts +29 -19
  623. package/src/utils/security/api-security.ts +47 -39
  624. package/src/utils/securityHeaders.ts +61 -67
  625. package/src/utils/typeHelpers.ts +10 -10
  626. package/src/utils/types/dataProcessing.ts +93 -92
  627. package/src/utils/types/typeHelpers.ts +31 -21
  628. package/src/utils/xssProtection.ts +96 -48
  629. package/dist/js/index-6NJ3A1Dn.js.map +0 -1
  630. package/dist/js/index-DffLRSro.js.map +0 -1
  631. package/src/components/form/Input/Input.enhanced.tsx +0 -732
  632. package/src/components/navigation/Menu/__tests__/Menu.test.tsx +0 -687
  633. package/src/components/navigation/Tree/Tree.styles.ts +0 -553
  634. package/src/components/navigation/Tree/Tree.test.basic.tsx +0 -7
  635. package/src/components/navigation/Tree/Tree.test.functional.tsx +0 -496
  636. package/src/components/navigation/Tree/Tree.test.import.check.tsx +0 -6
  637. package/src/components/navigation/Tree/Tree.test.import.tsx +0 -6
  638. package/src/components/navigation/Tree/Tree.test.minimal.tsx +0 -5
  639. package/src/components/navigation/Tree/Tree.test.simple.tsx +0 -30
  640. package/src/components/navigation/Tree/Tree.test.tsx +0 -908
  641. package/src/components/navigation/Tree/Tree.test.working.tsx +0 -673
  642. package/src/components/navigation/Tree/Tree.tsx +0 -600
  643. package/src/components/navigation/Tree/Tree.types.ts +0 -909
  644. package/src/components/navigation/Tree/Tree.utils.ts +0 -452
  645. package/src/components/navigation/Tree/index.ts +0 -33
  646. package/src/components/navigation/Tree/index.tsx +0 -23
  647. package/src/utils/network/http-client.test.ts +0 -18
@@ -11,8 +11,8 @@ export class DataTransformUtils {
11
11
  static deepClone<T>(obj: T): T {
12
12
  if (obj === null || typeof obj !== 'object') return obj;
13
13
  if (obj instanceof Date) return new Date(obj.getTime()) as T;
14
- if (obj instanceof Array) return obj.map(item => this.deepClone(item)) as T;
15
-
14
+ if (obj instanceof Array) return obj.map((item) => this.deepClone(item)) as T;
15
+
16
16
  const clonedObj = {} as T;
17
17
  for (const key in obj) {
18
18
  if (obj.hasOwnProperty(key)) {
@@ -26,7 +26,7 @@ export class DataTransformUtils {
26
26
  static objectToArray<T extends Record<string, any>>(
27
27
  obj: T,
28
28
  keyField = 'key',
29
- valueField = 'value'
29
+ valueField = 'value',
30
30
  ): Array<{ [K in typeof keyField | typeof valueField]: any }> {
31
31
  return Object.entries(obj).map(([key, value]) => ({
32
32
  [keyField]: key,
@@ -35,15 +35,15 @@ export class DataTransformUtils {
35
35
  }
36
36
 
37
37
  /** 数组转对象 */
38
- static arrayToObject<T extends Record<string, any>, K extends keyof T>(
39
- array: T[],
40
- keyField: K
41
- ): Record<string, T> {
42
- return array.reduce((acc, item) => {
43
- const key = String(item[keyField]);
44
- acc[key] = item;
45
- return acc;
46
- }, {} as Record<string, T>);
38
+ static arrayToObject<T extends Record<string, any>, K extends keyof T>(array: T[], keyField: K): Record<string, T> {
39
+ return array.reduce(
40
+ (acc, item) => {
41
+ const key = String(item[keyField]);
42
+ acc[key] = item;
43
+ return acc;
44
+ },
45
+ {} as Record<string, T>,
46
+ );
47
47
  }
48
48
 
49
49
  /** 扁平化嵌套对象 */
@@ -104,7 +104,7 @@ export class DataTransformUtils {
104
104
  useGrouping?: boolean;
105
105
  currency?: string;
106
106
  style?: 'decimal' | 'currency' | 'percent';
107
- } = {}
107
+ } = {},
108
108
  ): string {
109
109
  const {
110
110
  minimumFractionDigits = 0,
@@ -153,7 +153,7 @@ export class DataTransformUtils {
153
153
  export class DataFilterUtils {
154
154
  /** 过滤空值 */
155
155
  static filterEmpty<T>(array: T[]): T[] {
156
- return array.filter(item => item !== null && item !== undefined && item !== '');
156
+ return array.filter((item) => item !== null && item !== undefined && item !== '');
157
157
  }
158
158
 
159
159
  /** 过滤重复值 */
@@ -161,9 +161,9 @@ export class DataFilterUtils {
161
161
  if (!key) {
162
162
  return [...new Set(array)];
163
163
  }
164
-
164
+
165
165
  const seen = new Set();
166
- return array.filter(item => {
166
+ return array.filter((item) => {
167
167
  const keyValue = item[key];
168
168
  if (seen.has(keyValue)) {
169
169
  return false;
@@ -174,32 +174,23 @@ export class DataFilterUtils {
174
174
  }
175
175
 
176
176
  /** 过滤范围 */
177
- static filterRange<T>(
178
- array: T[],
179
- key: keyof T,
180
- min: number,
181
- max: number
182
- ): T[] {
183
- return array.filter(item => {
177
+ static filterRange<T>(array: T[], key: keyof T, min: number, max: number): T[] {
178
+ return array.filter((item) => {
184
179
  const value = item[key] as number;
185
180
  return value >= min && value <= max;
186
181
  });
187
182
  }
188
183
 
189
184
  /** 模糊搜索 */
190
- static fuzzySearch<T>(
191
- array: T[],
192
- searchTerm: string,
193
- searchFields: (keyof T)[]
194
- ): T[] {
185
+ static fuzzySearch<T>(array: T[], searchTerm: string, searchFields: (keyof T)[]): T[] {
195
186
  if (!searchTerm) return array;
196
187
 
197
188
  const term = searchTerm.toLowerCase();
198
- return array.filter(item =>
199
- searchFields.some(field => {
189
+ return array.filter((item) =>
190
+ searchFields.some((field) => {
200
191
  const value = String(item[field]).toLowerCase();
201
192
  return value.includes(term);
202
- })
193
+ }),
203
194
  );
204
195
  }
205
196
 
@@ -211,10 +202,10 @@ export class DataFilterUtils {
211
202
  operator: 'equals' | 'contains' | 'startsWith' | 'endsWith' | 'greater' | 'less' | 'between';
212
203
  value: any;
213
204
  value2?: any;
214
- }>
205
+ }>,
215
206
  ): T[] {
216
- return array.filter(item => {
217
- return conditions.every(condition => {
207
+ return array.filter((item) => {
208
+ return conditions.every((condition) => {
218
209
  const fieldValue = item[condition.field];
219
210
  const { operator, value, value2 } = condition;
220
211
 
@@ -254,7 +245,7 @@ export class DataSortUtils {
254
245
  /** 基础排序 */
255
246
  static sort<T>(array: T[], options: SortOptions<T> = {}): T[] {
256
247
  const { key, direction = 'asc', customSort } = options;
257
-
248
+
258
249
  if (customSort) {
259
250
  return [...array].sort(customSort);
260
251
  }
@@ -330,29 +321,32 @@ export class DataSortUtils {
330
321
  export class DataAggregateUtils {
331
322
  /** 分组 */
332
323
  static groupBy<T, K extends keyof T>(array: T[], key: K): Record<string, T[]> {
333
- return array.reduce((groups, item) => {
334
- const groupKey = String(item[key]);
335
- if (!groups[groupKey]) {
336
- groups[groupKey] = [];
337
- }
338
- groups[groupKey].push(item);
339
- return groups;
340
- }, {} as Record<string, T[]>);
324
+ return array.reduce(
325
+ (groups, item) => {
326
+ const groupKey = String(item[key]);
327
+ if (!groups[groupKey]) {
328
+ groups[groupKey] = [];
329
+ }
330
+ groups[groupKey].push(item);
331
+ return groups;
332
+ },
333
+ {} as Record<string, T[]>,
334
+ );
341
335
  }
342
336
 
343
337
  /** 多字段分组 */
344
- static groupByMultiple<T, K extends keyof T>(
345
- array: T[],
346
- keys: K[]
347
- ): Record<string, T[]> {
348
- return array.reduce((groups, item) => {
349
- const groupKey = keys.map(key => String(item[key])).join('|');
350
- if (!groups[groupKey]) {
351
- groups[groupKey] = [];
352
- }
353
- groups[groupKey].push(item);
354
- return groups;
355
- }, {} as Record<string, T[]>);
338
+ static groupByMultiple<T, K extends keyof T>(array: T[], keys: K[]): Record<string, T[]> {
339
+ return array.reduce(
340
+ (groups, item) => {
341
+ const groupKey = keys.map((key) => String(item[key])).join('|');
342
+ if (!groups[groupKey]) {
343
+ groups[groupKey] = [];
344
+ }
345
+ groups[groupKey].push(item);
346
+ return groups;
347
+ },
348
+ {} as Record<string, T[]>,
349
+ );
356
350
  }
357
351
 
358
352
  /** 统计 */
@@ -360,37 +354,44 @@ export class DataAggregateUtils {
360
354
  array: T[],
361
355
  groupKey: K,
362
356
  aggregateField: keyof T,
363
- aggregateType: 'sum' | 'avg' | 'count' | 'min' | 'max' = 'sum'
357
+ aggregateType: 'sum' | 'avg' | 'count' | 'min' | 'max' = 'sum',
364
358
  ): Record<string, number> {
365
359
  const groups = this.groupBy(array, groupKey);
366
-
367
- return Object.entries(groups).reduce((result, [key, items]) => {
368
- const values = items.map(item => Number(item[aggregateField])).filter(v => !isNaN(v));
369
-
370
- switch (aggregateType) {
371
- case 'sum':
372
- result[key] = values.reduce((sum, val) => sum + val, 0);
373
- break;
374
- case 'avg':
375
- result[key] = values.length > 0 ? values.reduce((sum, val) => sum + val, 0) / values.length : 0;
376
- break;
377
- case 'count':
378
- result[key] = items.length;
379
- break;
380
- case 'min':
381
- result[key] = values.length > 0 ? Math.min(...values) : 0;
382
- break;
383
- case 'max':
384
- result[key] = values.length > 0 ? Math.max(...values) : 0;
385
- break;
386
- }
387
-
388
- return result;
389
- }, {} as Record<string, number>);
360
+
361
+ return Object.entries(groups).reduce(
362
+ (result, [key, items]) => {
363
+ const values = items.map((item) => Number(item[aggregateField])).filter((v) => !isNaN(v));
364
+
365
+ switch (aggregateType) {
366
+ case 'sum':
367
+ result[key] = values.reduce((sum, val) => sum + val, 0);
368
+ break;
369
+ case 'avg':
370
+ result[key] = values.length > 0 ? values.reduce((sum, val) => sum + val, 0) / values.length : 0;
371
+ break;
372
+ case 'count':
373
+ result[key] = items.length;
374
+ break;
375
+ case 'min':
376
+ result[key] = values.length > 0 ? Math.min(...values) : 0;
377
+ break;
378
+ case 'max':
379
+ result[key] = values.length > 0 ? Math.max(...values) : 0;
380
+ break;
381
+ }
382
+
383
+ return result;
384
+ },
385
+ {} as Record<string, number>,
386
+ );
390
387
  }
391
388
 
392
389
  /** 分页 */
393
- static paginate<T>(array: T[], page: number, pageSize: number): {
390
+ static paginate<T>(
391
+ array: T[],
392
+ page: number,
393
+ pageSize: number,
394
+ ): {
394
395
  data: T[];
395
396
  total: number;
396
397
  totalPages: number;
@@ -418,24 +419,24 @@ export class DataAggregateUtils {
418
419
  rowField: keyof T,
419
420
  columnField: keyof T,
420
421
  valueField: keyof T,
421
- aggregateType: 'sum' | 'avg' | 'count' = 'sum'
422
+ aggregateType: 'sum' | 'avg' | 'count' = 'sum',
422
423
  ): Record<string, Record<string, number>> {
423
424
  const result: Record<string, Record<string, number>> = {};
424
-
425
+
425
426
  // 获取所有唯一的行和列值
426
- const rowValues = [...new Set(data.map(item => String(item[rowField])))];
427
- const columnValues = [...new Set(data.map(item => String(item[columnField])))];
427
+ const rowValues = [...new Set(data.map((item) => String(item[rowField])))];
428
+ const columnValues = [...new Set(data.map((item) => String(item[columnField])))];
428
429
 
429
430
  // 初始化结果结构
430
- rowValues.forEach(rowValue => {
431
+ rowValues.forEach((rowValue) => {
431
432
  result[rowValue] = {};
432
- columnValues.forEach(colValue => {
433
+ columnValues.forEach((colValue) => {
433
434
  (result[rowValue] as any)[colValue] = 0;
434
435
  });
435
436
  });
436
437
 
437
438
  // 填充数据
438
- data.forEach(item => {
439
+ data.forEach((item) => {
439
440
  const rowKey = String(item[rowField]);
440
441
  const colKey = String(item[columnField]);
441
442
  const value = Number(item[valueField]) || 0;
@@ -495,11 +496,11 @@ export class DataValidationUtils {
495
496
  /** 验证数据完整性 */
496
497
  static validateDataIntegrity<T>(
497
498
  data: T,
498
- requiredFields: (keyof T)[]
499
+ requiredFields: (keyof T)[],
499
500
  ): { isValid: boolean; missingFields: (keyof T)[] } {
500
501
  const missingFields: (keyof T)[] = [];
501
502
 
502
- requiredFields.forEach(field => {
503
+ requiredFields.forEach((field) => {
503
504
  if (data[field] === null || data[field] === undefined || data[field] === '') {
504
505
  missingFields.push(field);
505
506
  }
@@ -514,7 +515,7 @@ export class DataValidationUtils {
514
515
  /** 验证数据类型 */
515
516
  static validateDataTypes<T>(
516
517
  data: T,
517
- typeRules: Partial<Record<keyof T, 'string' | 'number' | 'boolean' | 'array' | 'object'>>
518
+ typeRules: Partial<Record<keyof T, 'string' | 'number' | 'boolean' | 'array' | 'object'>>,
518
519
  ): { isValid: boolean; typeErrors: Record<string, string> } {
519
520
  const typeErrors: Record<string, string> = {};
520
521
 
@@ -540,4 +541,4 @@ export const dataTransform = DataTransformUtils;
540
541
  export const dataFilter = DataFilterUtils;
541
542
  export const dataSort = DataSortUtils;
542
543
  export const dataAggregate = DataAggregateUtils;
543
- export const dataValidate = DataValidationUtils;
544
+ export const dataValidate = DataValidationUtils;
@@ -63,24 +63,36 @@ export function isNotEmpty(value: unknown): boolean {
63
63
  /** 检查是否为有效的CSS颜色值 */
64
64
  export function isCSSColor(value: unknown): value is string {
65
65
  if (!isString(value)) return false;
66
-
66
+
67
67
  // 检查十六进制颜色
68
68
  const hexPattern = /^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$/;
69
69
  if (hexPattern.test(value)) return true;
70
-
70
+
71
71
  // 检查rgb/rgba
72
72
  const rgbPattern = /^rgba?\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*(,\s*[\d.]+)?\s*\)$/;
73
73
  if (rgbPattern.test(value)) return true;
74
-
74
+
75
75
  // 检查CSS颜色关键字
76
- const cssColors = ['red', 'blue', 'green', 'yellow', 'purple', 'orange', 'pink', 'gray', 'black', 'white', 'transparent'];
76
+ const cssColors = [
77
+ 'red',
78
+ 'blue',
79
+ 'green',
80
+ 'yellow',
81
+ 'purple',
82
+ 'orange',
83
+ 'pink',
84
+ 'gray',
85
+ 'black',
86
+ 'white',
87
+ 'transparent',
88
+ ];
77
89
  return cssColors.includes(value.toLowerCase());
78
90
  }
79
91
 
80
92
  /** 检查是否为有效的URL */
81
93
  export function isValidURL(value: unknown): value is string {
82
94
  if (!isString(value)) return false;
83
-
95
+
84
96
  try {
85
97
  new URL(value);
86
98
  return true;
@@ -92,7 +104,7 @@ export function isValidURL(value: unknown): value is string {
92
104
  /** 检查是否为有效的邮箱地址 */
93
105
  export function isValidEmail(value: unknown): value is string {
94
106
  if (!isString(value)) return false;
95
-
107
+
96
108
  const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
97
109
  return emailPattern.test(value);
98
110
  }
@@ -100,7 +112,7 @@ export function isValidEmail(value: unknown): value is string {
100
112
  /** 检查是否为有效的手机号 */
101
113
  export function isValidPhone(value: unknown): value is string {
102
114
  if (!isString(value)) return false;
103
-
115
+
104
116
  const phonePattern = /^1[3-9]\d{9}$/;
105
117
  return phonePattern.test(value);
106
118
  }
@@ -112,9 +124,7 @@ export function isReactElement(value: unknown): boolean {
112
124
 
113
125
  /** 检查是否为Promise */
114
126
  export function isPromiseLike(value: unknown): value is Promise<any> {
115
- return value !== null &&
116
- typeof value === 'object' &&
117
- typeof (value as any).then === 'function';
127
+ return value !== null && typeof value === 'object' && typeof (value as any).then === 'function';
118
128
  }
119
129
 
120
130
  // ==================== 日期类型守卫 ====================
@@ -127,7 +137,7 @@ export function isValidDate(value: unknown): value is Date {
127
137
  /** 检查是否为日期字符串 */
128
138
  export function isDateString(value: unknown): value is string {
129
139
  if (!isString(value)) return false;
130
-
140
+
131
141
  const date = new Date(value);
132
142
  return isValidDate(date);
133
143
  }
@@ -159,29 +169,29 @@ export function isInRange(value: unknown, min: number, max: number): value is nu
159
169
  /** 深度相等比较 */
160
170
  export function deepEqual(a: unknown, b: unknown): boolean {
161
171
  if (a === b) return true;
162
-
172
+
163
173
  if (a === null || b === null) return false;
164
174
  if (a === undefined || b === undefined) return false;
165
-
175
+
166
176
  if (typeof a !== typeof b) return false;
167
-
177
+
168
178
  if (typeof a === 'object') {
169
179
  if (isArray(a) && isArray(b)) {
170
180
  if (a.length !== b.length) return false;
171
181
  return a.every((item, index) => deepEqual(item, b[index]));
172
182
  }
173
-
183
+
174
184
  if (a instanceof Date && b instanceof Date) {
175
185
  return a.getTime() === b.getTime();
176
186
  }
177
-
187
+
178
188
  const keysA = Object.keys(a);
179
189
  const keysB = Object.keys(b || {});
180
-
190
+
181
191
  if (keysA.length !== keysB.length) return false;
182
-
183
- return keysA.every(key => deepEqual((a as any)[key], (b as any)[key]));
192
+
193
+ return keysA.every((key) => deepEqual((a as any)[key], (b as any)[key]));
184
194
  }
185
-
195
+
186
196
  return false;
187
- }
197
+ }
@@ -16,28 +16,60 @@ interface XSSProtectionOptions {
16
16
  class XSSProtection {
17
17
  private defaultOptions: XSSProtectionOptions = {
18
18
  allowedTags: [
19
- 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
20
- 'p', 'br', 'hr',
21
- 'ul', 'ol', 'li',
22
- 'strong', 'em', 'b', 'i', 'u', 's', 'del', 'ins',
23
- 'blockquote', 'code', 'pre',
24
- 'a', 'img',
25
- 'div', 'span', 'section', 'article',
26
- 'table', 'thead', 'tbody', 'tr', 'th', 'td',
27
- 'button', 'input', 'label', 'select', 'option', 'textarea'
19
+ 'h1',
20
+ 'h2',
21
+ 'h3',
22
+ 'h4',
23
+ 'h5',
24
+ 'h6',
25
+ 'p',
26
+ 'br',
27
+ 'hr',
28
+ 'ul',
29
+ 'ol',
30
+ 'li',
31
+ 'strong',
32
+ 'em',
33
+ 'b',
34
+ 'i',
35
+ 'u',
36
+ 's',
37
+ 'del',
38
+ 'ins',
39
+ 'blockquote',
40
+ 'code',
41
+ 'pre',
42
+ 'a',
43
+ 'img',
44
+ 'div',
45
+ 'span',
46
+ 'section',
47
+ 'article',
48
+ 'table',
49
+ 'thead',
50
+ 'tbody',
51
+ 'tr',
52
+ 'th',
53
+ 'td',
54
+ 'button',
55
+ 'input',
56
+ 'label',
57
+ 'select',
58
+ 'option',
59
+ 'textarea',
28
60
  ],
29
61
  allowedAttributes: {
30
62
  '*': ['class', 'id', 'style', 'title', 'lang', 'dir'],
31
- 'a': ['href', 'target', 'rel'],
32
- 'img': ['src', 'alt', 'width', 'height', 'loading'],
33
- 'input': ['type', 'name', 'value', 'placeholder', 'disabled', 'readonly', 'required'],
34
- 'button': ['type', 'disabled'],
35
- 'select': ['name', 'disabled', 'required', 'multiple'],
36
- 'textarea': ['name', 'placeholder', 'disabled', 'readonly', 'required', 'rows', 'cols']
63
+ a: ['href', 'target', 'rel'],
64
+ img: ['src', 'alt', 'width', 'height', 'loading'],
65
+ input: ['type', 'name', 'value', 'placeholder', 'disabled', 'readonly', 'required'],
66
+ button: ['type', 'disabled'],
67
+ select: ['name', 'disabled', 'required', 'multiple'],
68
+ textarea: ['name', 'placeholder', 'disabled', 'readonly', 'required', 'rows', 'cols'],
37
69
  },
38
70
  allowScriptTags: false,
39
71
  allowStyleTags: false,
40
- stripComments: true
72
+ stripComments: true,
41
73
  };
42
74
 
43
75
  /**
@@ -50,12 +82,18 @@ class XSSProtection {
50
82
 
51
83
  return str.replace(/[&<>"']/g, (match) => {
52
84
  switch (match) {
53
- case '&': return '&';
54
- case '<': return '<';
55
- case '>': return '>';
56
- case '"': return '"';
57
- case "'": return '&#x27;';
58
- default: return match;
85
+ case '&':
86
+ return '&';
87
+ case '<':
88
+ return '<';
89
+ case '>':
90
+ return '>';
91
+ case '"':
92
+ return '"';
93
+ case "'":
94
+ return '&#x27;';
95
+ default:
96
+ return match;
59
97
  }
60
98
  });
61
99
  }
@@ -68,17 +106,26 @@ class XSSProtection {
68
106
  escapeAttribute(str: string): string {
69
107
  if (!str) return '';
70
108
 
71
- return str.replace(/[&<>"'`=\/]/g, (match) => {
109
+ return str.replace(new RegExp('[&<>"\'`=/]', 'g'), (match) => {
72
110
  switch (match) {
73
- case '&': return '&';
74
- case '<': return '<';
75
- case '>': return '>';
76
- case '"': return '"';
77
- case "'": return '&#x27;';
78
- case '`': return '&#96;';
79
- case '=': return '&#61;';
80
- case '/': return '&#47;';
81
- default: return match;
111
+ case '&':
112
+ return '&';
113
+ case '<':
114
+ return '<';
115
+ case '>':
116
+ return '>';
117
+ case '"':
118
+ return '"';
119
+ case "'":
120
+ return '&#x27;';
121
+ case '`':
122
+ return '&#96;';
123
+ case '=':
124
+ return '&#61;';
125
+ case '/':
126
+ return '&#47;';
127
+ default:
128
+ return match;
82
129
  }
83
130
  });
84
131
  }
@@ -177,6 +224,7 @@ class XSSProtection {
177
224
  // 特殊处理某些属性
178
225
  if (attrName === 'href' || attrName === 'src') {
179
226
  // 检查URL协议
227
+ // const reg = new RegExp('^(http:|https:|//)', 'i');
180
228
  const url = this.stripQuotes(attrValue || '');
181
229
  if (this.isSafeURL(url)) {
182
230
  attributes.push(`${attrName}="${this.escapeAttribute(url)}"`);
@@ -217,8 +265,7 @@ class XSSProtection {
217
265
  * @returns 去除引号后的值
218
266
  */
219
267
  private stripQuotes(value: string): string {
220
- if ((value.startsWith('"') && value.endsWith('"')) ||
221
- (value.startsWith("'") && value.endsWith("'"))) {
268
+ if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
222
269
  return value.substring(1, value.length - 1);
223
270
  }
224
271
  return value;
@@ -237,7 +284,7 @@ class XSSProtection {
237
284
  try {
238
285
  // 在Taro环境中,可能没有window对象,使用相对URL
239
286
  const urlObj = new URL(url, 'http://example.com');
240
- return safeProtocols.some(protocol => urlObj.protocol === protocol);
287
+ return safeProtocols.some((protocol) => urlObj.protocol === protocol);
241
288
  } catch (e) {
242
289
  // 如果URL解析失败,检查是否为相对路径
243
290
  return !url.startsWith('javascript:') && !url.startsWith('data:');
@@ -254,14 +301,16 @@ class XSSProtection {
254
301
 
255
302
  // 危险的CSS属性和值
256
303
  const dangerousProperties = [
257
- 'expression', 'javascript:', 'behavior', 'script', 'binding',
258
- 'include-source', '-moz-binding'
304
+ 'expression',
305
+ 'javascript:',
306
+ 'behavior',
307
+ 'script',
308
+ 'binding',
309
+ 'include-source',
310
+ '-moz-binding',
259
311
  ];
260
312
 
261
- const dangerousValues = [
262
- 'javascript:', 'vbscript:', 'data:', 'expression(',
263
- 'eval(', 'script:', 'behavior('
264
- ];
313
+ const dangerousValues = ['javascript:', 'vbscript:', 'data:', 'expression(', 'eval(', 'script:', 'behavior('];
265
314
 
266
315
  // 检查是否包含危险内容
267
316
  const lowerStyle = style.toLowerCase();
@@ -309,7 +358,7 @@ class XSSProtection {
309
358
 
310
359
  // 处理数组
311
360
  if (Array.isArray(obj)) {
312
- return obj.map(item => this.sanitizeObject(item));
361
+ return obj.map((item) => this.sanitizeObject(item));
313
362
  }
314
363
 
315
364
  // 处理对象
@@ -345,9 +394,9 @@ class XSSProtection {
345
394
  return html.replace(nestedRegex, (_match, tag, content, closeTag) => {
346
395
  const sanitizedContent = this.sanitizeHTML(content, {
347
396
  ...options,
348
- allowedTags: options.allowedTags?.filter(t => t !== 'script' && t !== 'style') || [],
397
+ allowedTags: options.allowedTags?.filter((t) => t !== 'script' && t !== 'style') || [],
349
398
  allowScriptTags: false,
350
- allowStyleTags: false
399
+ allowStyleTags: false,
351
400
  });
352
401
  return `<${tag}>${sanitizedContent}</${closeTag}>`;
353
402
  });
@@ -372,7 +421,7 @@ class XSSProtection {
372
421
  const sanitizedError = this.sanitizeObject({
373
422
  message,
374
423
  stack,
375
- type: 'Taro Error'
424
+ type: 'Taro Error',
376
425
  });
377
426
  errorLogger.logError(sanitizedError);
378
427
  });
@@ -383,7 +432,7 @@ class XSSProtection {
383
432
  message: event.message || '',
384
433
  filename: event.filename || '',
385
434
  lineno: event.lineno,
386
- type: 'Window Error'
435
+ type: 'Window Error',
387
436
  });
388
437
  errorLogger.logError(sanitizedError);
389
438
  });
@@ -398,13 +447,12 @@ class XSSProtection {
398
447
  }
399
448
  const sanitizedError = this.sanitizeObject({
400
449
  message,
401
- type: 'Promise Rejection'
450
+ type: 'Promise Rejection',
402
451
  });
403
452
  errorLogger.logError(sanitizedError);
404
453
  });
405
454
  }
406
455
  }
407
-
408
456
  }
409
457
 
410
458
  // 创建单例实例