@oceanbase/design 1.0.0-alpha.8 → 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 (580) hide show
  1. package/dist/design.min.js +1 -1
  2. package/es/_util/document.d.ts +11 -0
  3. package/es/_util/document.js +65 -0
  4. package/es/_util/genComponentStyleHook.d.ts +19 -2
  5. package/es/_util/genComponentStyleHook.js +55 -20
  6. package/es/_util/index.d.ts +2 -0
  7. package/es/_util/index.js +28 -1
  8. package/es/_util/styleChecker.js +1 -0
  9. package/es/affix/index.js +1 -0
  10. package/es/alert/index.d.ts +1 -1
  11. package/es/alert/index.js +16 -4
  12. package/es/alert/style/index.d.ts +1 -4
  13. package/es/alert/style/index.js +20 -18
  14. package/es/anchor/index.js +1 -0
  15. package/es/app/index.js +10 -2
  16. package/es/app/style/index.d.ts +1 -4
  17. package/es/app/style/index.js +3 -6
  18. package/es/auto-complete/index.js +1 -0
  19. package/es/avatar/index.js +1 -0
  20. package/es/badge/index.d.ts +2 -0
  21. package/es/badge/index.js +39 -14
  22. package/es/badge/style/index.d.ts +1 -4
  23. package/es/badge/style/index.js +9 -7
  24. package/es/breadcrumb/Breadcrumb.js +1 -0
  25. package/es/breadcrumb/index.js +1 -0
  26. package/es/button/index.js +19 -6
  27. package/es/button/style/index.d.ts +3 -4
  28. package/es/button/style/index.js +43 -9
  29. package/es/calendar/index.js +1 -0
  30. package/es/card/index.d.ts +6 -0
  31. package/es/card/index.js +59 -21
  32. package/es/card/style/index.d.ts +1 -4
  33. package/es/card/style/index.js +92 -36
  34. package/es/carousel/index.js +1 -0
  35. package/es/cascader/index.js +1 -0
  36. package/es/checkbox/index.js +10 -2
  37. package/es/checkbox/style/index.d.ts +1 -4
  38. package/es/checkbox/style/index.js +12 -11
  39. package/es/collapse/index.js +1 -0
  40. package/es/color-picker/index.js +1 -0
  41. package/es/config-provider/DefaultRenderEmpty.js +1 -0
  42. package/es/config-provider/index.d.ts +5 -0
  43. package/es/config-provider/index.js +101 -48
  44. package/es/date-picker/index.js +1 -0
  45. package/es/descriptions/hooks/useItems.js +1 -0
  46. package/es/descriptions/index.d.ts +10 -0
  47. package/es/descriptions/index.js +63 -5
  48. package/es/descriptions/style/index.d.ts +2 -5
  49. package/es/descriptions/style/index.js +64 -8
  50. package/es/divider/index.js +1 -0
  51. package/es/drawer/index.d.ts +2 -0
  52. package/es/drawer/index.js +38 -4
  53. package/es/drawer/style/index.d.ts +1 -4
  54. package/es/drawer/style/index.js +35 -10
  55. package/es/dropdown/dropdown-button.js +27 -6
  56. package/es/dropdown/index.js +29 -3
  57. package/es/dropdown/style/index.d.ts +6 -0
  58. package/es/dropdown/style/index.js +22 -0
  59. package/es/empty/colored.js +1 -0
  60. package/es/empty/database.js +1 -0
  61. package/es/empty/default.js +1 -0
  62. package/es/empty/guide.js +1 -0
  63. package/es/empty/index.js +4 -2
  64. package/es/empty/style/index.d.ts +1 -4
  65. package/es/empty/style/index.js +5 -6
  66. package/es/filter/FilterContext.d.ts +27 -0
  67. package/es/filter/FilterContext.js +26 -0
  68. package/es/filter/components/ClearIcon.d.ts +6 -0
  69. package/es/filter/components/ClearIcon.js +26 -0
  70. package/es/filter/components/CountNumber.d.ts +8 -0
  71. package/es/filter/components/CountNumber.js +20 -0
  72. package/es/filter/components/FilterButton.d.ts +34 -0
  73. package/es/filter/components/FilterButton.js +221 -0
  74. package/es/filter/components/FilterCascader/components/CascaderOption/OptionCheckbox.d.ts +20 -0
  75. package/es/filter/components/FilterCascader/components/CascaderOption/OptionCheckbox.js +101 -0
  76. package/es/filter/components/FilterCascader/components/CascaderOption/OptionItem.d.ts +13 -0
  77. package/es/filter/components/FilterCascader/components/CascaderOption/OptionItem.js +44 -0
  78. package/es/filter/components/FilterCascader/components/FlatCascaderContent/index.d.ts +17 -0
  79. package/es/filter/components/FilterCascader/components/FlatCascaderContent/index.js +78 -0
  80. package/es/filter/components/FilterCascader/components/NormalCascaderContent.d.ts +24 -0
  81. package/es/filter/components/FilterCascader/components/NormalCascaderContent.js +279 -0
  82. package/es/filter/components/FilterCascader/constants.d.ts +7 -0
  83. package/es/filter/components/FilterCascader/constants.js +8 -0
  84. package/es/filter/components/FilterCascader/hooks/useCascaderCallbacks.d.ts +12 -0
  85. package/es/filter/components/FilterCascader/hooks/useCascaderCallbacks.js +101 -0
  86. package/es/filter/components/FilterCascader/hooks/useCascaderLabels.d.ts +9 -0
  87. package/es/filter/components/FilterCascader/hooks/useCascaderLabels.js +50 -0
  88. package/es/filter/components/FilterCascader/hooks/useNormalizedValue.d.ts +7 -0
  89. package/es/filter/components/FilterCascader/hooks/useNormalizedValue.js +53 -0
  90. package/es/filter/components/FilterCascader/index.d.ts +5 -0
  91. package/es/filter/components/FilterCascader/index.js +317 -0
  92. package/es/filter/components/FilterCascader/types.d.ts +56 -0
  93. package/es/filter/components/FilterCascader/types.js +1 -0
  94. package/es/filter/components/FilterCascader/utils/countUtils.d.ts +13 -0
  95. package/es/filter/components/FilterCascader/utils/countUtils.js +48 -0
  96. package/es/filter/components/FilterCascader/utils/pathUtils.d.ts +17 -0
  97. package/es/filter/components/FilterCascader/utils/pathUtils.js +91 -0
  98. package/es/filter/components/FilterCheckbox.d.ts +26 -0
  99. package/es/filter/components/FilterCheckbox.js +358 -0
  100. package/es/filter/components/FilterInput.d.ts +18 -0
  101. package/es/filter/components/FilterInput.js +148 -0
  102. package/es/filter/components/FilterRange.d.ts +19 -0
  103. package/es/filter/components/FilterRange.js +201 -0
  104. package/es/filter/components/FilterSelect.d.ts +23 -0
  105. package/es/filter/components/FilterSelect.js +245 -0
  106. package/es/filter/components/FilterSlot.d.ts +28 -0
  107. package/es/filter/components/FilterSlot.js +189 -0
  108. package/es/filter/components/FilterSwitch.d.ts +13 -0
  109. package/es/filter/components/FilterSwitch.js +102 -0
  110. package/es/filter/components/FilterWrap.d.ts +20 -0
  111. package/es/filter/components/FilterWrap.js +329 -0
  112. package/es/filter/components/ResponsiveFilterGroup.d.ts +27 -0
  113. package/es/filter/components/ResponsiveFilterGroup.js +477 -0
  114. package/es/filter/components/WrappedTagsDisplay.d.ts +22 -0
  115. package/es/filter/components/WrappedTagsDisplay.js +80 -0
  116. package/es/filter/hooks/index.d.ts +4 -0
  117. package/es/filter/hooks/index.js +3 -0
  118. package/es/filter/hooks/useControlledState.d.ts +9 -0
  119. package/es/filter/hooks/useControlledState.js +37 -0
  120. package/es/filter/hooks/useFilterCollapsed.d.ts +8 -0
  121. package/es/filter/hooks/useFilterCollapsed.js +15 -0
  122. package/es/filter/hooks/useFilterTooltip.d.ts +29 -0
  123. package/es/filter/hooks/useFilterTooltip.js +127 -0
  124. package/es/filter/index.d.ts +24 -0
  125. package/es/filter/index.js +27 -0
  126. package/es/filter/style/index.d.ts +15 -0
  127. package/es/filter/style/index.js +245 -0
  128. package/es/filter/type.d.ts +41 -0
  129. package/es/filter/type.js +1 -0
  130. package/es/filter/utils.d.ts +50 -0
  131. package/es/filter/utils.js +189 -0
  132. package/es/float-button/index.js +1 -0
  133. package/es/form/FormItem.d.ts +1 -1
  134. package/es/form/FormItem.js +10 -2
  135. package/es/form/index.js +10 -2
  136. package/es/form/style/index.d.ts +1 -4
  137. package/es/form/style/index.js +6 -7
  138. package/es/grid/col.js +1 -0
  139. package/es/grid/index.js +1 -0
  140. package/es/grid/row.js +1 -0
  141. package/es/image/index.js +1 -0
  142. package/es/index.d.ts +178 -1
  143. package/es/index.js +3 -1
  144. package/es/input/Input.js +10 -2
  145. package/es/input/Password.js +10 -2
  146. package/es/input/Search.js +10 -2
  147. package/es/input/TextArea.js +10 -2
  148. package/es/input/index.js +1 -0
  149. package/es/input/style/index.d.ts +1 -4
  150. package/es/input/style/index.js +23 -9
  151. package/es/input-number/index.js +10 -2
  152. package/es/input-number/style/index.d.ts +2 -5
  153. package/es/input-number/style/index.js +14 -10
  154. package/es/layout/index.js +1 -0
  155. package/es/list/index.js +1 -0
  156. package/es/locale/en-US.js +10 -2
  157. package/es/locale/index.d.ts +11 -0
  158. package/es/locale/index.js +1 -0
  159. package/es/locale/ja-JP.js +10 -2
  160. package/es/locale/zh-CN.js +10 -2
  161. package/es/locale/zh-TW.js +10 -2
  162. package/es/lottie/index.js +1 -0
  163. package/es/mentions/index.js +1 -0
  164. package/es/menu/index.js +1 -0
  165. package/es/message/index.js +1 -0
  166. package/es/modal/Modal.d.ts +3 -1
  167. package/es/modal/Modal.js +49 -8
  168. package/es/modal/Progress.js +1 -0
  169. package/es/modal/index.js +1 -0
  170. package/es/modal/style/index.d.ts +1 -4
  171. package/es/modal/style/index.js +39 -13
  172. package/es/notification/index.js +1 -0
  173. package/es/pagination/index.js +1 -0
  174. package/es/popconfirm/index.js +1 -0
  175. package/es/popover/index.js +1 -0
  176. package/es/progress/index.js +1 -0
  177. package/es/qrcode/index.js +1 -0
  178. package/es/radio/RadioButton.d.ts +8 -0
  179. package/es/radio/RadioButton.js +42 -0
  180. package/es/radio/index.d.ts +4 -0
  181. package/es/radio/index.js +12 -3
  182. package/es/radio/style/index.d.ts +1 -4
  183. package/es/radio/style/index.js +27 -9
  184. package/es/rate/index.js +1 -0
  185. package/es/result/403.js +1 -0
  186. package/es/result/404.js +1 -0
  187. package/es/result/500.js +1 -0
  188. package/es/result/Error.js +1 -0
  189. package/es/result/Processing.js +1 -0
  190. package/es/result/Success.js +1 -0
  191. package/es/result/Warning.js +1 -0
  192. package/es/result/index.js +10 -2
  193. package/es/result/style/index.d.ts +1 -4
  194. package/es/result/style/index.js +3 -6
  195. package/es/segmented/index.js +10 -2
  196. package/es/segmented/style/index.d.ts +1 -4
  197. package/es/segmented/style/index.js +3 -6
  198. package/es/select/index.js +10 -2
  199. package/es/select/style/index.d.ts +1 -4
  200. package/es/select/style/index.js +13 -8
  201. package/es/skeleton/index.js +1 -0
  202. package/es/slider/index.js +10 -2
  203. package/es/slider/style/index.d.ts +1 -4
  204. package/es/slider/style/index.js +6 -8
  205. package/es/space/index.js +10 -2
  206. package/es/space/style/index.d.ts +1 -4
  207. package/es/space/style/index.js +3 -6
  208. package/es/spin/assets/spin-gray.json +1 -1
  209. package/es/spin/assets/spin.json +1 -1
  210. package/es/spin/index.js +10 -2
  211. package/es/spin/style/index.d.ts +1 -4
  212. package/es/spin/style/index.js +29 -30
  213. package/es/static-function/index.d.ts +176 -1
  214. package/es/static-function/index.js +5 -1
  215. package/es/statistic/index.js +1 -0
  216. package/es/steps/index.js +1 -0
  217. package/es/style/global.d.ts +1 -0
  218. package/es/style/global.js +59 -11
  219. package/es/switch/index.js +10 -2
  220. package/es/switch/style/index.d.ts +1 -4
  221. package/es/switch/style/index.js +7 -8
  222. package/es/table/index.d.ts +1 -4
  223. package/es/table/index.js +264 -22
  224. package/es/table/style/index.d.ts +1 -4
  225. package/es/table/style/index.js +174 -40
  226. package/es/tabs/TabPane.js +1 -0
  227. package/es/tabs/hooks/useLegacyItems.js +1 -0
  228. package/es/tabs/index.js +10 -2
  229. package/es/tabs/style/index.d.ts +1 -4
  230. package/es/tabs/style/index.js +6 -7
  231. package/es/tag/index.js +20 -5
  232. package/es/tag/style/index.d.ts +1 -4
  233. package/es/tag/style/index.js +43 -21
  234. package/es/theme/default.d.ts +61 -0
  235. package/es/theme/default.js +315 -62
  236. package/es/theme/index.d.ts +2 -0
  237. package/es/theme/index.js +13 -1
  238. package/es/theme/interface.d.ts +81 -0
  239. package/es/theme/obToken.d.ts +206 -0
  240. package/es/theme/obToken.js +255 -0
  241. package/es/theme/obTokenMeta.d.ts +24 -0
  242. package/es/theme/obTokenMeta.js +937 -0
  243. package/es/theme/style/aliyun.less +1 -1
  244. package/es/theme/style/compact.less +106 -84
  245. package/es/theme/style/dark.less +1 -1
  246. package/es/theme/style/default.less +107 -85
  247. package/es/time-picker/index.js +1 -0
  248. package/es/timeline/index.js +1 -0
  249. package/es/tooltip/MouseTooltip.js +1 -0
  250. package/es/tooltip/ReactStickyMouseTooltip.js +1 -0
  251. package/es/tooltip/index.js +5 -4
  252. package/es/tooltip/style/index.d.ts +1 -4
  253. package/es/tooltip/style/index.js +10 -13
  254. package/es/tour/index.js +1 -0
  255. package/es/transfer/index.js +1 -0
  256. package/es/tree/index.js +1 -0
  257. package/es/tree-select/index.js +10 -2
  258. package/es/tree-select/style/index.d.ts +1 -4
  259. package/es/tree-select/style/index.js +3 -6
  260. package/es/typography/Link.js +10 -2
  261. package/es/typography/Paragraph.js +10 -2
  262. package/es/typography/Text.d.ts +1 -0
  263. package/es/typography/Text.js +13 -4
  264. package/es/typography/Title.js +10 -2
  265. package/es/typography/hooks/useClassName.d.ts +1 -1
  266. package/es/typography/hooks/useClassName.js +2 -2
  267. package/es/typography/index.d.ts +12 -1
  268. package/es/typography/index.js +3 -1
  269. package/es/typography/style/index.d.ts +2 -5
  270. package/es/typography/style/index.js +9 -8
  271. package/es/upload/index.js +1 -0
  272. package/es/watermark/index.js +1 -0
  273. package/lib/_util/document.d.ts +11 -0
  274. package/lib/_util/document.js +74 -0
  275. package/lib/_util/genComponentStyleHook.d.ts +19 -2
  276. package/lib/_util/genComponentStyleHook.js +60 -64
  277. package/lib/_util/getEllipsisConfig.js +16 -39
  278. package/lib/_util/index.d.ts +2 -0
  279. package/lib/_util/index.js +51 -29
  280. package/lib/_util/styleChecker.js +32 -53
  281. package/lib/_util/type.js +4 -16
  282. package/lib/_util/useFlexGapSupport.js +11 -36
  283. package/lib/affix/index.js +15 -22
  284. package/lib/alert/index.d.ts +1 -1
  285. package/lib/alert/index.js +65 -83
  286. package/lib/alert/style/index.d.ts +1 -4
  287. package/lib/alert/style/index.js +109 -113
  288. package/lib/anchor/index.js +26 -24
  289. package/lib/app/index.js +47 -55
  290. package/lib/app/style/index.d.ts +1 -4
  291. package/lib/app/style/index.js +14 -36
  292. package/lib/auto-complete/index.js +15 -22
  293. package/lib/avatar/index.js +26 -24
  294. package/lib/badge/index.d.ts +2 -0
  295. package/lib/badge/index.js +108 -105
  296. package/lib/badge/style/index.d.ts +1 -4
  297. package/lib/badge/style/index.js +25 -43
  298. package/lib/breadcrumb/Breadcrumb.js +15 -22
  299. package/lib/breadcrumb/index.js +31 -32
  300. package/lib/button/index.js +56 -61
  301. package/lib/button/style/index.d.ts +3 -4
  302. package/lib/button/style/index.js +69 -37
  303. package/lib/calendar/index.js +15 -22
  304. package/lib/card/Card.js +14 -21
  305. package/lib/card/index.d.ts +6 -0
  306. package/lib/card/index.js +202 -175
  307. package/lib/card/style/index.d.ts +1 -4
  308. package/lib/card/style/index.js +186 -102
  309. package/lib/carousel/index.js +15 -22
  310. package/lib/cascader/index.js +15 -22
  311. package/lib/checkbox/index.js +52 -70
  312. package/lib/checkbox/style/index.d.ts +1 -4
  313. package/lib/checkbox/style/index.js +25 -39
  314. package/lib/collapse/index.js +15 -22
  315. package/lib/color-picker/index.js +15 -22
  316. package/lib/color-picker/interface.js +14 -21
  317. package/lib/config-provider/DefaultRenderEmpty.js +34 -49
  318. package/lib/config-provider/SizeContext.js +14 -21
  319. package/lib/config-provider/context.js +14 -21
  320. package/lib/config-provider/index.d.ts +5 -0
  321. package/lib/config-provider/index.js +257 -230
  322. package/lib/config-provider/navigate.js +4 -16
  323. package/lib/date-picker/index.js +15 -22
  324. package/lib/descriptions/Item.js +6 -24
  325. package/lib/descriptions/hooks/useItems.js +50 -73
  326. package/lib/descriptions/index.d.ts +10 -0
  327. package/lib/descriptions/index.js +104 -76
  328. package/lib/descriptions/style/index.d.ts +2 -5
  329. package/lib/descriptions/style/index.js +135 -50
  330. package/lib/divider/index.js +15 -22
  331. package/lib/drawer/index.d.ts +2 -0
  332. package/lib/drawer/index.js +139 -128
  333. package/lib/drawer/style/index.d.ts +1 -4
  334. package/lib/drawer/style/index.js +69 -55
  335. package/lib/dropdown/dropdown-button.js +34 -29
  336. package/lib/dropdown/index.js +47 -47
  337. package/lib/dropdown/style/index.d.ts +6 -0
  338. package/lib/dropdown/style/index.js +35 -0
  339. package/lib/empty/colored.js +198 -315
  340. package/lib/empty/database.js +117 -186
  341. package/lib/empty/default.js +53 -49
  342. package/lib/empty/guide.js +145 -225
  343. package/lib/empty/index.js +77 -96
  344. package/lib/empty/style/index.d.ts +1 -4
  345. package/lib/empty/style/index.js +31 -47
  346. package/lib/filter/FilterContext.d.ts +27 -0
  347. package/lib/filter/FilterContext.js +33 -0
  348. package/lib/filter/components/ClearIcon.d.ts +6 -0
  349. package/lib/filter/components/ClearIcon.js +35 -0
  350. package/lib/filter/components/CountNumber.d.ts +8 -0
  351. package/lib/filter/components/CountNumber.js +30 -0
  352. package/lib/filter/components/FilterButton.d.ts +34 -0
  353. package/lib/filter/components/FilterButton.js +194 -0
  354. package/lib/filter/components/FilterCascader/components/CascaderOption/OptionCheckbox.d.ts +20 -0
  355. package/lib/filter/components/FilterCascader/components/CascaderOption/OptionCheckbox.js +91 -0
  356. package/lib/filter/components/FilterCascader/components/CascaderOption/OptionItem.d.ts +13 -0
  357. package/lib/filter/components/FilterCascader/components/CascaderOption/OptionItem.js +51 -0
  358. package/lib/filter/components/FilterCascader/components/FlatCascaderContent/index.d.ts +17 -0
  359. package/lib/filter/components/FilterCascader/components/FlatCascaderContent/index.js +77 -0
  360. package/lib/filter/components/FilterCascader/components/NormalCascaderContent.d.ts +24 -0
  361. package/lib/filter/components/FilterCascader/components/NormalCascaderContent.js +258 -0
  362. package/lib/filter/components/FilterCascader/constants.d.ts +7 -0
  363. package/lib/filter/components/FilterCascader/constants.js +14 -0
  364. package/lib/filter/components/FilterCascader/hooks/useCascaderCallbacks.d.ts +12 -0
  365. package/lib/filter/components/FilterCascader/hooks/useCascaderCallbacks.js +81 -0
  366. package/lib/filter/components/FilterCascader/hooks/useCascaderLabels.d.ts +9 -0
  367. package/lib/filter/components/FilterCascader/hooks/useCascaderLabels.js +56 -0
  368. package/lib/filter/components/FilterCascader/hooks/useNormalizedValue.d.ts +7 -0
  369. package/lib/filter/components/FilterCascader/hooks/useNormalizedValue.js +48 -0
  370. package/lib/filter/components/FilterCascader/index.d.ts +5 -0
  371. package/lib/filter/components/FilterCascader/index.js +298 -0
  372. package/lib/filter/components/FilterCascader/types.d.ts +56 -0
  373. package/lib/filter/components/FilterCascader/types.js +5 -0
  374. package/lib/filter/components/FilterCascader/utils/countUtils.d.ts +13 -0
  375. package/lib/filter/components/FilterCascader/utils/countUtils.js +49 -0
  376. package/lib/filter/components/FilterCascader/utils/pathUtils.d.ts +17 -0
  377. package/lib/filter/components/FilterCascader/utils/pathUtils.js +56 -0
  378. package/lib/filter/components/FilterCheckbox.d.ts +26 -0
  379. package/lib/filter/components/FilterCheckbox.js +319 -0
  380. package/lib/filter/components/FilterInput.d.ts +18 -0
  381. package/lib/filter/components/FilterInput.js +134 -0
  382. package/lib/filter/components/FilterRange.d.ts +19 -0
  383. package/lib/filter/components/FilterRange.js +186 -0
  384. package/lib/filter/components/FilterSelect.d.ts +23 -0
  385. package/lib/filter/components/FilterSelect.js +221 -0
  386. package/lib/filter/components/FilterSlot.d.ts +28 -0
  387. package/lib/filter/components/FilterSlot.js +174 -0
  388. package/lib/filter/components/FilterSwitch.d.ts +13 -0
  389. package/lib/filter/components/FilterSwitch.js +91 -0
  390. package/lib/filter/components/FilterWrap.d.ts +20 -0
  391. package/lib/filter/components/FilterWrap.js +306 -0
  392. package/lib/filter/components/ResponsiveFilterGroup.d.ts +27 -0
  393. package/lib/filter/components/ResponsiveFilterGroup.js +412 -0
  394. package/lib/filter/components/WrappedTagsDisplay.d.ts +22 -0
  395. package/lib/filter/components/WrappedTagsDisplay.js +84 -0
  396. package/lib/filter/hooks/index.d.ts +4 -0
  397. package/lib/filter/hooks/index.js +26 -0
  398. package/lib/filter/hooks/useControlledState.d.ts +9 -0
  399. package/lib/filter/hooks/useControlledState.js +34 -0
  400. package/lib/filter/hooks/useFilterCollapsed.d.ts +8 -0
  401. package/lib/filter/hooks/useFilterCollapsed.js +21 -0
  402. package/lib/filter/hooks/useFilterTooltip.d.ts +29 -0
  403. package/lib/filter/hooks/useFilterTooltip.js +121 -0
  404. package/lib/filter/index.d.ts +24 -0
  405. package/lib/filter/index.js +45 -0
  406. package/lib/filter/style/index.d.ts +15 -0
  407. package/lib/filter/style/index.js +308 -0
  408. package/lib/filter/type.d.ts +41 -0
  409. package/lib/filter/type.js +5 -0
  410. package/lib/filter/utils.d.ts +50 -0
  411. package/lib/filter/utils.js +192 -0
  412. package/lib/float-button/index.js +15 -22
  413. package/lib/float-button/interface.js +14 -21
  414. package/lib/form/FormItem.d.ts +1 -1
  415. package/lib/form/FormItem.js +78 -85
  416. package/lib/form/index.js +58 -79
  417. package/lib/form/interface.js +14 -21
  418. package/lib/form/style/index.d.ts +1 -4
  419. package/lib/form/style/index.js +20 -40
  420. package/lib/grid/col.js +28 -46
  421. package/lib/grid/index.js +25 -44
  422. package/lib/grid/row.js +30 -46
  423. package/lib/image/index.js +15 -22
  424. package/lib/index.d.ts +178 -1
  425. package/lib/index.js +363 -154
  426. package/lib/input/Input.js +64 -78
  427. package/lib/input/Password.js +59 -77
  428. package/lib/input/Search.js +59 -77
  429. package/lib/input/TextArea.js +59 -77
  430. package/lib/input/index.js +30 -50
  431. package/lib/input/style/index.d.ts +1 -4
  432. package/lib/input/style/index.js +45 -36
  433. package/lib/input-number/index.js +56 -77
  434. package/lib/input-number/style/index.d.ts +2 -5
  435. package/lib/input-number/style/index.js +30 -38
  436. package/lib/layout/index.js +15 -22
  437. package/lib/list/index.js +52 -60
  438. package/lib/locale/en-US.js +29 -48
  439. package/lib/locale/index.d.ts +11 -0
  440. package/lib/locale/index.js +24 -38
  441. package/lib/locale/ja-JP.js +29 -48
  442. package/lib/locale/useLocale.js +6 -24
  443. package/lib/locale/zh-CN.js +29 -48
  444. package/lib/locale/zh-TW.js +29 -48
  445. package/lib/lottie/index.js +61 -81
  446. package/lib/mentions/index.js +15 -22
  447. package/lib/menu/index.js +15 -22
  448. package/lib/menu/interface.js +14 -21
  449. package/lib/message/index.js +15 -22
  450. package/lib/message/interface.js +14 -21
  451. package/lib/modal/Modal.d.ts +3 -1
  452. package/lib/modal/Modal.js +99 -81
  453. package/lib/modal/Progress.js +44 -62
  454. package/lib/modal/index.js +23 -43
  455. package/lib/modal/interface.js +14 -21
  456. package/lib/modal/style/index.d.ts +1 -4
  457. package/lib/modal/style/index.js +67 -51
  458. package/lib/notification/index.js +15 -22
  459. package/lib/notification/interface.js +14 -21
  460. package/lib/pagination/index.js +15 -22
  461. package/lib/popconfirm/index.js +15 -22
  462. package/lib/popover/index.js +15 -22
  463. package/lib/progress/index.js +26 -24
  464. package/lib/progress/progress.js +14 -21
  465. package/lib/qrcode/index.js +15 -22
  466. package/lib/qrcode/interface.js +14 -21
  467. package/lib/radio/RadioButton.d.ts +8 -0
  468. package/lib/radio/RadioButton.js +44 -0
  469. package/lib/radio/index.d.ts +4 -0
  470. package/lib/radio/index.js +54 -63
  471. package/lib/radio/interface.js +14 -21
  472. package/lib/radio/style/index.d.ts +1 -4
  473. package/lib/radio/style/index.js +59 -38
  474. package/lib/rate/index.js +15 -22
  475. package/lib/result/403.js +164 -196
  476. package/lib/result/404.js +291 -355
  477. package/lib/result/500.js +156 -260
  478. package/lib/result/Error.js +126 -161
  479. package/lib/result/Processing.js +320 -253
  480. package/lib/result/Success.js +202 -262
  481. package/lib/result/Warning.js +302 -435
  482. package/lib/result/index.js +65 -81
  483. package/lib/result/style/index.d.ts +1 -4
  484. package/lib/result/style/index.js +16 -39
  485. package/lib/segmented/index.js +86 -84
  486. package/lib/segmented/style/index.d.ts +1 -4
  487. package/lib/segmented/style/index.js +20 -40
  488. package/lib/select/index.js +63 -82
  489. package/lib/select/style/index.d.ts +1 -4
  490. package/lib/select/style/index.js +29 -37
  491. package/lib/skeleton/index.js +15 -22
  492. package/lib/slider/index.js +48 -59
  493. package/lib/slider/style/index.d.ts +1 -4
  494. package/lib/slider/style/index.js +20 -38
  495. package/lib/space/index.js +62 -69
  496. package/lib/space/style/index.d.ts +1 -4
  497. package/lib/space/style/index.js +17 -40
  498. package/lib/spin/assets/spin-gray.json +1 -1
  499. package/lib/spin/assets/spin.json +1 -1
  500. package/lib/spin/index.js +58 -77
  501. package/lib/spin/style/index.d.ts +1 -4
  502. package/lib/spin/style/index.js +54 -58
  503. package/lib/static-function/index.d.ts +176 -1
  504. package/lib/static-function/index.js +51 -74
  505. package/lib/statistic/index.js +15 -22
  506. package/lib/steps/index.js +15 -22
  507. package/lib/style/global.d.ts +1 -0
  508. package/lib/style/global.js +187 -145
  509. package/lib/switch/index.js +52 -61
  510. package/lib/switch/style/index.d.ts +1 -4
  511. package/lib/switch/style/index.js +17 -37
  512. package/lib/table/hooks/useDefaultPagination.js +18 -46
  513. package/lib/table/index.d.ts +1 -4
  514. package/lib/table/index.js +414 -192
  515. package/lib/table/interface.js +14 -21
  516. package/lib/table/style/index.d.ts +1 -4
  517. package/lib/table/style/index.js +297 -94
  518. package/lib/tabs/TabPane.js +7 -25
  519. package/lib/tabs/hooks/useLegacyItems.js +27 -44
  520. package/lib/tabs/index.js +107 -125
  521. package/lib/tabs/style/index.d.ts +1 -4
  522. package/lib/tabs/style/index.js +26 -41
  523. package/lib/tag/index.js +81 -95
  524. package/lib/tag/style/index.d.ts +1 -4
  525. package/lib/tag/style/index.js +64 -64
  526. package/lib/theme/aliyun.js +7 -34
  527. package/lib/theme/compact.js +9 -36
  528. package/lib/theme/dark.js +9 -36
  529. package/lib/theme/default.d.ts +61 -0
  530. package/lib/theme/default.js +343 -119
  531. package/lib/theme/index.d.ts +2 -0
  532. package/lib/theme/index.js +61 -56
  533. package/lib/theme/interface.d.ts +81 -0
  534. package/lib/theme/interface.js +14 -21
  535. package/lib/theme/internal.js +14 -21
  536. package/lib/theme/obToken.d.ts +206 -0
  537. package/lib/theme/obToken.js +462 -0
  538. package/lib/theme/obTokenMeta.d.ts +24 -0
  539. package/lib/theme/obTokenMeta.js +943 -0
  540. package/lib/theme/style/aliyun.less +1 -1
  541. package/lib/theme/style/compact.less +106 -84
  542. package/lib/theme/style/dark.less +1 -1
  543. package/lib/theme/style/default.less +107 -85
  544. package/lib/theme/themes/compact/index.js +19 -39
  545. package/lib/theme/themes/dark/index.js +19 -39
  546. package/lib/theme/themes/default/index.js +19 -39
  547. package/lib/theme/themes/seed.js +24 -43
  548. package/lib/theme/util/alias.js +19 -39
  549. package/lib/theme/util/format.js +15 -35
  550. package/lib/time-picker/index.js +15 -22
  551. package/lib/timeline/index.js +15 -22
  552. package/lib/tooltip/MouseTooltip.js +84 -99
  553. package/lib/tooltip/ReactStickyMouseTooltip.js +63 -89
  554. package/lib/tooltip/hooks/useTooltipTypeList.js +28 -61
  555. package/lib/tooltip/index.js +122 -137
  556. package/lib/tooltip/style/index.d.ts +1 -4
  557. package/lib/tooltip/style/index.js +26 -50
  558. package/lib/tour/index.js +15 -22
  559. package/lib/tour/interface.js +14 -21
  560. package/lib/transfer/index.js +15 -22
  561. package/lib/transfer/interface.js +14 -21
  562. package/lib/tree/index.js +15 -22
  563. package/lib/tree-select/index.js +66 -85
  564. package/lib/tree-select/style/index.d.ts +1 -4
  565. package/lib/tree-select/style/index.js +10 -35
  566. package/lib/typography/Link.js +54 -69
  567. package/lib/typography/Paragraph.js +54 -69
  568. package/lib/typography/Text.d.ts +1 -0
  569. package/lib/typography/Text.js +55 -69
  570. package/lib/typography/Title.js +54 -69
  571. package/lib/typography/hooks/useClassName.d.ts +1 -1
  572. package/lib/typography/hooks/useClassName.js +12 -42
  573. package/lib/typography/index.d.ts +12 -1
  574. package/lib/typography/index.js +89 -58
  575. package/lib/typography/style/index.d.ts +2 -5
  576. package/lib/typography/style/index.js +35 -49
  577. package/lib/upload/index.js +15 -22
  578. package/lib/upload/interface.js +14 -21
  579. package/lib/watermark/index.js +15 -22
  580. package/package.json +8 -8
@@ -0,0 +1,78 @@
1
+ "use client";
2
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
3
+ var _excluded = ["options", "currentValue", "filterButtonRef", "multiple", "onValueChange"];
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
7
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
8
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
10
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
11
+ import React, { useMemo } from 'react';
12
+ import { Cascader } from 'antd';
13
+
14
+ /**
15
+ * 类型工具:根据 multiple 属性推断 Cascader.Panel 的 value 类型
16
+ * - 单选 (multiple=false): string[]
17
+ * - 多选 (multiple=true): string[][]
18
+ */
19
+ import { jsx as _jsx } from "react/jsx-runtime";
20
+ /**
21
+ * Flat 模式的级联内容容器组件
22
+ * 使用 antd 的 Cascader.Panel 实现多列展示
23
+ */
24
+ export var FlatCascaderContent = function FlatCascaderContent(_ref) {
25
+ var options = _ref.options,
26
+ currentValue = _ref.currentValue,
27
+ filterButtonRef = _ref.filterButtonRef,
28
+ _ref$multiple = _ref.multiple,
29
+ multiple = _ref$multiple === void 0 ? false : _ref$multiple,
30
+ onValueChange = _ref.onValueChange,
31
+ restProps = _objectWithoutProperties(_ref, _excluded);
32
+ // 将组件内部的值格式转换为 Cascader.Panel 需要的格式
33
+ // 组件内部:[[parent, child], ...] 或 [[parent, child]]
34
+ // Cascader.Panel:
35
+ // - 单选 (multiple=false): string[]
36
+ // - 多选 (multiple=true): string[][]
37
+
38
+ var cascaderValue = useMemo(function () {
39
+ if (currentValue.length === 0) return undefined;
40
+ if (!multiple) {
41
+ // 单选:currentValue 是 [[parent, child]],返回 [parent, child]
42
+ return currentValue[0];
43
+ } else {
44
+ // 多选:currentValue 是 [[parent, child], ...]
45
+ return currentValue;
46
+ }
47
+ }, [currentValue, multiple]);
48
+
49
+ // 处理 Cascader.Panel 的值变化
50
+ var handleCascaderChange = function handleCascaderChange(value) {
51
+ if (multiple) {
52
+ // 多选:value 是 string[][],如 [['frontend', 'react'], ['backend', 'java']]
53
+ onValueChange(value);
54
+ } else {
55
+ var _filterButtonRef$curr;
56
+ // 单选:value 是 string[],如 ['frontend', 'react']
57
+ onValueChange([value]);
58
+ (_filterButtonRef$curr = filterButtonRef.current) === null || _filterButtonRef$curr === void 0 || _filterButtonRef$curr.closePopover();
59
+ }
60
+ };
61
+
62
+ // 使用条件渲染来处理 multiple 属性的类型问题
63
+ return multiple ?
64
+ /*#__PURE__*/
65
+ // @ts-ignore-next-line
66
+ _jsx(Cascader.Panel, _objectSpread({
67
+ options: options,
68
+ value: cascaderValue,
69
+ onChange: handleCascaderChange,
70
+ multiple: multiple,
71
+ showCheckedStrategy: Cascader.SHOW_CHILD
72
+ }, restProps)) : /*#__PURE__*/_jsx(Cascader.Panel, _objectSpread({
73
+ options: options,
74
+ value: cascaderValue,
75
+ onChange: handleCascaderChange,
76
+ multiple: false
77
+ }, restProps));
78
+ };
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import type { CascaderOption } from '../types';
3
+ import type { FilterButtonRef } from '../../FilterButton';
4
+ interface NormalCascaderContentProps {
5
+ options: CascaderOption[];
6
+ currentValue: string[][];
7
+ multiple: boolean;
8
+ prefixCls: string;
9
+ openPopoverKey: string | null;
10
+ filterButtonRef: React.RefObject<FilterButtonRef>;
11
+ onOpenPopoverKeyChange: (key: string | null) => void;
12
+ onValueChange: (value: string[][]) => void;
13
+ onHandleChange: (parentValue: string, childValue: string) => void;
14
+ onClearByParent: (parentValue: string) => void;
15
+ onSelectAllChildren: (option: CascaderOption) => void;
16
+ showSearch?: boolean;
17
+ searchKeyword?: string;
18
+ onSearchChange?: (value: string) => void;
19
+ }
20
+ /**
21
+ * 非 Flat 模式的级联内容组件
22
+ */
23
+ export declare const NormalCascaderContent: React.FC<NormalCascaderContentProps>;
24
+ export {};
@@ -0,0 +1,279 @@
1
+ "use client";
2
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
3
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
7
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
8
+ import React from 'react';
9
+ import { Flex, Popover } from 'antd';
10
+ import Checkbox from "../../../../checkbox";
11
+ import theme from "../../../../theme";
12
+ import Input from "../../../../input";
13
+ import Empty from "../../../../empty";
14
+ import { CheckOutlined, CloseOutlined, RightOutlined, SearchOutlined } from '@oceanbase/icons';
15
+ import { getFilterCls } from "../../../style";
16
+ import { MAX_HEIGHT, PADDING_VERTICAL, PADDING_HORIZONTAL, GAP_SIZE_SMALL } from "../constants";
17
+ import { jsx as _jsx } from "react/jsx-runtime";
18
+ import { Fragment as _Fragment } from "react/jsx-runtime";
19
+ import { jsxs as _jsxs } from "react/jsx-runtime";
20
+ /**
21
+ * 非 Flat 模式的级联内容组件
22
+ */
23
+ export var NormalCascaderContent = function NormalCascaderContent(_ref) {
24
+ var options = _ref.options,
25
+ currentValue = _ref.currentValue,
26
+ multiple = _ref.multiple,
27
+ prefixCls = _ref.prefixCls,
28
+ openPopoverKey = _ref.openPopoverKey,
29
+ filterButtonRef = _ref.filterButtonRef,
30
+ onOpenPopoverKeyChange = _ref.onOpenPopoverKeyChange,
31
+ onValueChange = _ref.onValueChange,
32
+ onHandleChange = _ref.onHandleChange,
33
+ onClearByParent = _ref.onClearByParent,
34
+ onSelectAllChildren = _ref.onSelectAllChildren,
35
+ _ref$showSearch = _ref.showSearch,
36
+ showSearch = _ref$showSearch === void 0 ? false : _ref$showSearch,
37
+ _ref$searchKeyword = _ref.searchKeyword,
38
+ searchKeyword = _ref$searchKeyword === void 0 ? '' : _ref$searchKeyword,
39
+ onSearchChange = _ref.onSearchChange;
40
+ var _theme$useToken = theme.useToken(),
41
+ token = _theme$useToken.token;
42
+ return /*#__PURE__*/_jsxs("div", {
43
+ style: {
44
+ padding: PADDING_VERTICAL,
45
+ maxHeight: MAX_HEIGHT,
46
+ overflowY: 'auto'
47
+ },
48
+ children: [showSearch && /*#__PURE__*/_jsx("div", {
49
+ style: {
50
+ marginInline: 12,
51
+ marginBottom: 8
52
+ },
53
+ children: /*#__PURE__*/_jsx(Input, {
54
+ placeholder: "\u641C\u7D22",
55
+ prefix: /*#__PURE__*/_jsx(SearchOutlined, {}),
56
+ allowClear: true,
57
+ value: searchKeyword,
58
+ onChange: function onChange(e) {
59
+ return onSearchChange === null || onSearchChange === void 0 ? void 0 : onSearchChange(e.target.value);
60
+ },
61
+ onClick: function onClick(e) {
62
+ return e.stopPropagation();
63
+ }
64
+ })
65
+ }), options.length === 0 ? /*#__PURE__*/_jsx(Empty, {
66
+ image: Empty.PRESENTED_IMAGE_SIMPLE,
67
+ description: "\u65E0\u5339\u914D\u7ED3\u679C",
68
+ style: {
69
+ padding: '16px 0'
70
+ }
71
+ }) : options.map(function (option) {
72
+ var _option$children;
73
+ var selectedChildren = currentValue.filter(function (item) {
74
+ return item[0] === option.value;
75
+ }).map(function (item) {
76
+ return item[1];
77
+ });
78
+ var hasSelectedChildren = selectedChildren.length > 0;
79
+ var hasChildren = option.children && option.children.length > 0;
80
+ var allChildrenSelected = multiple && hasChildren && selectedChildren.length === option.children.length;
81
+
82
+ // 判断当前节点是否被选中(用于无子节点的情况)
83
+ var isNodeSelected = currentValue.some(function (item) {
84
+ return item[0] === option.value && !item[1];
85
+ });
86
+
87
+ // 处理无子节点的点击事件
88
+ var handleNodeClick = function handleNodeClick() {
89
+ if (option.disabled) {
90
+ return;
91
+ }
92
+ if (!hasChildren) {
93
+ // 无子节点时,直接选中/取消选中该节点
94
+ if (multiple) {
95
+ var isSelected = currentValue.some(function (item) {
96
+ return item[0] === option.value && !item[1];
97
+ });
98
+ if (isSelected) {
99
+ onValueChange(currentValue.filter(function (item) {
100
+ return !(item[0] === option.value && !item[1]);
101
+ }));
102
+ } else {
103
+ onValueChange([].concat(_toConsumableArray(currentValue), [[option.value, '']]));
104
+ }
105
+ } else {
106
+ var _isSelected = currentValue.some(function (item) {
107
+ return item[0] === option.value && !item[1];
108
+ });
109
+ if (_isSelected) {
110
+ onValueChange([]);
111
+ } else {
112
+ onValueChange([[option.value, '']]);
113
+ }
114
+ onOpenPopoverKeyChange(null);
115
+ setTimeout(function () {
116
+ var _filterButtonRef$curr;
117
+ (_filterButtonRef$curr = filterButtonRef.current) === null || _filterButtonRef$curr === void 0 || _filterButtonRef$curr.closePopover();
118
+ }, 0);
119
+ }
120
+ }
121
+ };
122
+
123
+ // 没有子节点时,直接渲染节点项,不使用 Popover
124
+ if (!hasChildren) {
125
+ return /*#__PURE__*/_jsx("div", {
126
+ style: {
127
+ padding: PADDING_HORIZONTAL
128
+ },
129
+ children: /*#__PURE__*/_jsx(Flex, {
130
+ gap: GAP_SIZE_SMALL * 2,
131
+ className: getFilterCls(prefixCls, 'select-option'),
132
+ justify: "space-between",
133
+ align: "center",
134
+ onClick: handleNodeClick,
135
+ style: {
136
+ cursor: option.disabled ? 'not-allowed' : 'pointer',
137
+ color: option.disabled ? token.colorTextDisabled : 'inherit'
138
+ },
139
+ children: multiple ? /*#__PURE__*/_jsx(Checkbox, {
140
+ checked: isNodeSelected,
141
+ disabled: option.disabled,
142
+ children: /*#__PURE__*/_jsx("span", {
143
+ className: getFilterCls(prefixCls, 'text-ellipsis'),
144
+ children: option.label
145
+ })
146
+ }) : /*#__PURE__*/_jsxs(_Fragment, {
147
+ children: [/*#__PURE__*/_jsx("div", {
148
+ className: getFilterCls(prefixCls, 'text-ellipsis'),
149
+ children: option.label
150
+ }), /*#__PURE__*/_jsx("span", {
151
+ children: isNodeSelected && /*#__PURE__*/_jsx(CheckOutlined, {
152
+ style: {
153
+ color: token.colorPrimary
154
+ }
155
+ })
156
+ })]
157
+ })
158
+ })
159
+ }, option.value);
160
+ }
161
+
162
+ // 有子节点时,使用 Popover
163
+ return /*#__PURE__*/_jsx(Popover, {
164
+ placement: "rightTop",
165
+ trigger: 'hover',
166
+ arrow: false,
167
+ open: option !== null && option !== void 0 && option.disabled ? false : multiple ? undefined : openPopoverKey === option.value,
168
+ onOpenChange: multiple ? undefined : function (open) {
169
+ if (!open) {
170
+ onOpenPopoverKeyChange(null);
171
+ } else {
172
+ onOpenPopoverKeyChange(option.value);
173
+ }
174
+ },
175
+ content: (_option$children = option.children) === null || _option$children === void 0 ? void 0 : _option$children.map(function (child) {
176
+ var isSelected = selectedChildren.includes(child.value);
177
+ var isChildDisabled = child.disabled || false;
178
+ return /*#__PURE__*/_jsx(Flex, {
179
+ gap: GAP_SIZE_SMALL * 2,
180
+ className: getFilterCls(prefixCls, 'select-option'),
181
+ justify: "space-between",
182
+ onClick: function onClick(e) {
183
+ e.stopPropagation();
184
+ if (!isChildDisabled) {
185
+ onHandleChange(option.value, child.value);
186
+ }
187
+ },
188
+ style: {
189
+ cursor: isChildDisabled ? 'not-allowed' : 'pointer',
190
+ color: isChildDisabled ? token.colorTextDisabled : 'inherit'
191
+ },
192
+ children: multiple ? /*#__PURE__*/_jsx(Checkbox, {
193
+ checked: isSelected,
194
+ disabled: isChildDisabled,
195
+ children: /*#__PURE__*/_jsx("span", {
196
+ className: getFilterCls(prefixCls, 'text-ellipsis'),
197
+ children: child.label
198
+ })
199
+ }) : /*#__PURE__*/_jsxs(_Fragment, {
200
+ children: [/*#__PURE__*/_jsx("span", {
201
+ className: getFilterCls(prefixCls, 'text-ellipsis'),
202
+ children: child.label
203
+ }), /*#__PURE__*/_jsx("span", {
204
+ children: isSelected && /*#__PURE__*/_jsx(CheckOutlined, {
205
+ style: {
206
+ color: token.colorPrimary
207
+ }
208
+ })
209
+ })]
210
+ })
211
+ }, child.value);
212
+ }),
213
+ styles: {
214
+ body: {
215
+ padding: 8,
216
+ maxHeight: 220,
217
+ maxWidth: 300,
218
+ overflowY: 'auto'
219
+ }
220
+ },
221
+ children: /*#__PURE__*/_jsx("div", {
222
+ style: {
223
+ padding: PADDING_HORIZONTAL
224
+ },
225
+ children: /*#__PURE__*/_jsxs(Flex, {
226
+ gap: GAP_SIZE_SMALL * 2,
227
+ className: getFilterCls(prefixCls, 'select-option'),
228
+ justify: "space-between",
229
+ align: "center",
230
+ style: {
231
+ cursor: option.disabled ? 'not-allowed' : 'pointer',
232
+ color: option.disabled ? token.colorTextDisabled : 'inherit'
233
+ },
234
+ children: [multiple ? /*#__PURE__*/_jsx(Checkbox, {
235
+ checked: allChildrenSelected,
236
+ indeterminate: hasSelectedChildren && !allChildrenSelected,
237
+ disabled: option.disabled,
238
+ onClick: function onClick(e) {
239
+ return e.stopPropagation();
240
+ },
241
+ onChange: function onChange() {
242
+ if (!option.disabled) {
243
+ if (allChildrenSelected) {
244
+ onClearByParent(option.value);
245
+ } else {
246
+ onSelectAllChildren(option);
247
+ }
248
+ }
249
+ },
250
+ children: /*#__PURE__*/_jsx("span", {
251
+ className: getFilterCls(prefixCls, 'text-ellipsis'),
252
+ children: option.label
253
+ })
254
+ }) : /*#__PURE__*/_jsx("div", {
255
+ className: getFilterCls(prefixCls, 'text-ellipsis'),
256
+ children: option.label
257
+ }), /*#__PURE__*/_jsx(Flex, {
258
+ align: "center",
259
+ gap: GAP_SIZE_SMALL,
260
+ children: /*#__PURE__*/_jsxs("div", {
261
+ className: getFilterCls(prefixCls, 'icon-wrapper'),
262
+ children: [/*#__PURE__*/_jsx(RightOutlined, {
263
+ className: hasSelectedChildren ? getFilterCls(prefixCls, 'arrow-icon') : ''
264
+ }), hasSelectedChildren && /*#__PURE__*/_jsx("div", {
265
+ className: getFilterCls(prefixCls, 'clear-icon'),
266
+ onClick: function onClick(e) {
267
+ e.stopPropagation();
268
+ onClearByParent(option.value);
269
+ },
270
+ children: /*#__PURE__*/_jsx(CloseOutlined, {})
271
+ })]
272
+ })
273
+ })]
274
+ })
275
+ })
276
+ }, option.value);
277
+ })]
278
+ });
279
+ };
@@ -0,0 +1,7 @@
1
+ export declare const COLUMN_WIDTH = 200;
2
+ export declare const MAX_HEIGHT = 300;
3
+ export declare const PADDING_VERTICAL = "8px 0px";
4
+ export declare const PADDING_HORIZONTAL = "0px 8px";
5
+ export declare const ICON_SIZE = 12;
6
+ export declare const GAP_SIZE = 8;
7
+ export declare const GAP_SIZE_SMALL = 4;
@@ -0,0 +1,8 @@
1
+ // 样式常量
2
+ export var COLUMN_WIDTH = 200;
3
+ export var MAX_HEIGHT = 300;
4
+ export var PADDING_VERTICAL = '8px 0px';
5
+ export var PADDING_HORIZONTAL = '0px 8px';
6
+ export var ICON_SIZE = 12;
7
+ export var GAP_SIZE = 8;
8
+ export var GAP_SIZE_SMALL = 4;
@@ -0,0 +1,12 @@
1
+ import type { CascaderOption } from '../types';
2
+ import type { FilterButtonRef } from '../../FilterButton';
3
+ /**
4
+ * 管理级联选择器的所有回调函数
5
+ */
6
+ export declare const useCascaderCallbacks: (currentValue: string[][], setValue: (value: string[][]) => void, options: CascaderOption[], multiple: boolean, filterButtonRef: React.RefObject<FilterButtonRef>, setOpenPopoverKey: (key: string | null) => void) => {
7
+ handleChange: (parentValue: string, childValue: string) => void;
8
+ clearByParent: (parentValue: string) => void;
9
+ handleClear: () => void;
10
+ selectAllChildren: (option: CascaderOption) => void;
11
+ handleRemoveTag: (tagValue: string) => void;
12
+ };
@@ -0,0 +1,101 @@
1
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
+ import { useCallback } from 'react';
8
+ /**
9
+ * 管理级联选择器的所有回调函数
10
+ */
11
+ export var useCascaderCallbacks = function useCascaderCallbacks(currentValue, setValue, options, multiple, filterButtonRef, setOpenPopoverKey) {
12
+ var handleChange = useCallback(function (parentValue, childValue) {
13
+ var _parentOption$childre;
14
+ var parentOption = options.find(function (opt) {
15
+ return opt.value === parentValue;
16
+ });
17
+ var childOption = parentOption === null || parentOption === void 0 || (_parentOption$childre = parentOption.children) === null || _parentOption$childre === void 0 ? void 0 : _parentOption$childre.find(function (child) {
18
+ return child.value === childValue;
19
+ });
20
+ if (parentOption !== null && parentOption !== void 0 && parentOption.disabled || childOption !== null && childOption !== void 0 && childOption.disabled) {
21
+ return;
22
+ }
23
+ if (multiple) {
24
+ var existingIndex = currentValue.findIndex(function (item) {
25
+ return item[0] === parentValue && item[1] === childValue;
26
+ });
27
+ var newValueList;
28
+ if (existingIndex !== -1) {
29
+ newValueList = currentValue.filter(function (_, index) {
30
+ return index !== existingIndex;
31
+ });
32
+ } else {
33
+ newValueList = [].concat(_toConsumableArray(currentValue), [[parentValue, childValue]]);
34
+ }
35
+ setValue(newValueList);
36
+ } else {
37
+ var isCurrentSelected = currentValue.length === 1 && currentValue[0][0] === parentValue && currentValue[0][1] === childValue;
38
+ var _newValueList;
39
+ if (isCurrentSelected) {
40
+ _newValueList = [];
41
+ } else {
42
+ _newValueList = [[parentValue, childValue]];
43
+ }
44
+ setValue(_newValueList);
45
+ setOpenPopoverKey(null);
46
+ setTimeout(function () {
47
+ var _filterButtonRef$curr;
48
+ (_filterButtonRef$curr = filterButtonRef.current) === null || _filterButtonRef$curr === void 0 || _filterButtonRef$curr.closePopover();
49
+ }, 0);
50
+ }
51
+ }, [currentValue, multiple, setValue, options, filterButtonRef, setOpenPopoverKey]);
52
+ var clearByParent = useCallback(function (parentValue) {
53
+ var newValueList = currentValue.filter(function (item) {
54
+ return item[0] !== parentValue;
55
+ });
56
+ setValue(newValueList);
57
+ }, [currentValue, setValue]);
58
+ var handleClear = useCallback(function () {
59
+ setValue([]);
60
+ }, [setValue]);
61
+ var selectAllChildren = useCallback(function (option) {
62
+ var _option$children;
63
+ if (option.disabled) {
64
+ return;
65
+ }
66
+ var otherValues = currentValue.filter(function (item) {
67
+ return item[0] !== option.value;
68
+ });
69
+ var allChildValues = ((_option$children = option.children) === null || _option$children === void 0 ? void 0 : _option$children.filter(function (child) {
70
+ return !child.disabled;
71
+ }).map(function (child) {
72
+ return [option.value, child.value];
73
+ })) || [];
74
+ var newValueList = [].concat(_toConsumableArray(otherValues), _toConsumableArray(allChildValues));
75
+ setValue(newValueList);
76
+ }, [currentValue, setValue]);
77
+
78
+ // 移除某个选中的值
79
+ var handleRemoveTag = useCallback(function (tagValue) {
80
+ // tagValue 格式:path1::path2::path3::index
81
+ var parts = tagValue.split('::');
82
+ if (parts.length >= 2) {
83
+ var pathParts = parts.slice(0, -1); // 移除最后的 index
84
+
85
+ var newValueList = currentValue.filter(function (item) {
86
+ if (item.length !== pathParts.length) return true;
87
+ return !item.every(function (val, idx) {
88
+ return val === pathParts[idx];
89
+ });
90
+ });
91
+ setValue(newValueList);
92
+ }
93
+ }, [currentValue, setValue]);
94
+ return {
95
+ handleChange: handleChange,
96
+ clearByParent: clearByParent,
97
+ handleClear: handleClear,
98
+ selectAllChildren: selectAllChildren,
99
+ handleRemoveTag: handleRemoveTag
100
+ };
101
+ };
@@ -0,0 +1,9 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { CascaderOption, SelectedTag } from '../types';
3
+ /**
4
+ * 管理级联选择器的标签显示逻辑
5
+ */
6
+ export declare const useCascaderLabels: (currentValue: string[][], options: CascaderOption[], label: ReactNode, multiple: boolean, isCollapsed: boolean) => {
7
+ getSelectedLabel: () => ReactNode;
8
+ getSelectedTags: () => SelectedTag[];
9
+ };
@@ -0,0 +1,50 @@
1
+ import { useCallback } from 'react';
2
+ import { findOptionByPath } from "../utils/pathUtils";
3
+
4
+ /**
5
+ * 管理级联选择器的标签显示逻辑
6
+ */
7
+ export var useCascaderLabels = function useCascaderLabels(currentValue, options, label, multiple, isCollapsed) {
8
+ // 获取当前选中值的 label(用于单选模式显示)
9
+ var getSelectedLabel = useCallback(function () {
10
+ if (isCollapsed && currentValue.length === 0) {
11
+ return '';
12
+ }
13
+ if (currentValue.length === 0) {
14
+ return label;
15
+ }
16
+ if (!multiple && currentValue.length === 1) {
17
+ var selectedPath = currentValue[0];
18
+
19
+ // 如果是空路径
20
+ if (!selectedPath || selectedPath.length === 0) {
21
+ return label;
22
+ }
23
+
24
+ // 对于多层级路径,查找最后一个节点
25
+ var currentOption = findOptionByPath(options, selectedPath);
26
+ return (currentOption === null || currentOption === void 0 ? void 0 : currentOption.label) || label;
27
+ }
28
+ return label;
29
+ }, [currentValue, isCollapsed, label, multiple, options]);
30
+
31
+ // 获取选中值的 tags(用于多选模式 Tag 显示)
32
+ var getSelectedTags = useCallback(function () {
33
+ return currentValue.map(function (selectedPath, index) {
34
+ // 对于多层级路径,查找最后一个节点
35
+ var currentOption = findOptionByPath(options, selectedPath);
36
+ var displayLabel = (currentOption === null || currentOption === void 0 ? void 0 : currentOption.label) || selectedPath[selectedPath.length - 1];
37
+ var valueKey = selectedPath.join('::') + "::".concat(index);
38
+ return {
39
+ label: displayLabel,
40
+ value: valueKey,
41
+ parentValue: selectedPath[0],
42
+ childValue: selectedPath[selectedPath.length - 1]
43
+ };
44
+ });
45
+ }, [currentValue, options]);
46
+ return {
47
+ getSelectedLabel: getSelectedLabel,
48
+ getSelectedTags: getSelectedTags
49
+ };
50
+ };
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 管理级联选择器的值,处理单选/多选格式转换
3
+ */
4
+ export declare const useNormalizedValue: (value: string[] | string[][] | undefined, onChange: ((value: string[]) => void) | ((value: string[][]) => void), multiple: boolean) => {
5
+ currentValue: string[][];
6
+ setValue: (newValue: string[][]) => void;
7
+ };
@@ -0,0 +1,53 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { useCallback, useEffect, useState } from 'react';
8
+
9
+ /**
10
+ * 管理级联选择器的值,处理单选/多选格式转换
11
+ */
12
+ export var useNormalizedValue = function useNormalizedValue(value, onChange, multiple) {
13
+ var normalizeValue = useCallback(function (val) {
14
+ if (!val) return [];
15
+ if (val.length === 0) return [];
16
+ // 判断是否为单选格式 string[]
17
+ if (!multiple && val.length > 0 && typeof val[0] === 'string') {
18
+ return [val];
19
+ }
20
+ return val;
21
+ }, [multiple]);
22
+ var denormalizeValue = useCallback(function (val) {
23
+ if (!multiple && val.length > 0) {
24
+ return val[0]; // 单选模式返回 string[]
25
+ }
26
+ return val; // 多选模式返回 string[][]
27
+ }, [multiple]);
28
+
29
+ // 使用受控状态 hook,内部统一使用 string[][] 格式
30
+ var _useState = useState(function () {
31
+ return normalizeValue(value);
32
+ }),
33
+ _useState2 = _slicedToArray(_useState, 2),
34
+ internalValue = _useState2[0],
35
+ setInternalValue = _useState2[1];
36
+
37
+ // 同步外部 value 到内部
38
+ useEffect(function () {
39
+ setInternalValue(normalizeValue(value));
40
+ }, [value, normalizeValue]);
41
+
42
+ // 内部 setValue 包装函数
43
+ var setValue = useCallback(function (newValue) {
44
+ setInternalValue(newValue);
45
+ if (onChange) {
46
+ onChange(denormalizeValue(newValue));
47
+ }
48
+ }, [onChange, denormalizeValue]);
49
+ return {
50
+ currentValue: internalValue,
51
+ setValue: setValue
52
+ };
53
+ };
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import type { FilterCascaderProps } from './types';
3
+ declare const FilterCascader: React.FC<FilterCascaderProps>;
4
+ export type { FilterCascaderProps, CascaderOption } from './types';
5
+ export default FilterCascader;