@oceanbase/design 1.0.0-alpha.9 → 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 (585) 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 +4 -0
  31. package/es/card/index.js +36 -18
  32. package/es/card/style/index.d.ts +1 -4
  33. package/es/card/style/index.js +72 -32
  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 +7 -8
  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 +99 -48
  44. package/es/date-picker/index.js +1 -0
  45. package/es/descriptions/hooks/useItems.d.ts +9 -9
  46. package/es/descriptions/hooks/useItems.js +1 -0
  47. package/es/descriptions/index.js +4 -2
  48. package/es/descriptions/style/index.d.ts +2 -5
  49. package/es/descriptions/style/index.js +18 -5
  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 +27 -8
  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 +3 -6
  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 +256 -22
  224. package/es/table/style/index.d.ts +1 -4
  225. package/es/table/style/index.js +166 -38
  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 +17 -0
  235. package/es/theme/default.js +161 -27
  236. package/es/theme/index.d.ts +2 -0
  237. package/es/theme/index.js +13 -1
  238. package/es/theme/interface.d.ts +38 -0
  239. package/es/theme/obToken.d.ts +206 -0
  240. package/es/theme/obToken.js +255 -0
  241. package/es/{style/cssVariablesMeta.d.ts → theme/obTokenMeta.d.ts} +5 -5
  242. package/es/theme/obTokenMeta.js +937 -0
  243. package/es/theme/style/aliyun.less +1 -1
  244. package/es/theme/style/compact.less +65 -62
  245. package/es/theme/style/dark.less +1 -1
  246. package/es/theme/style/default.less +66 -63
  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 +4 -0
  306. package/lib/card/index.js +202 -190
  307. package/lib/card/style/index.d.ts +1 -4
  308. package/lib/card/style/index.js +139 -87
  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 +24 -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 -233
  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.d.ts +9 -9
  326. package/lib/descriptions/hooks/useItems.js +50 -73
  327. package/lib/descriptions/index.js +83 -102
  328. package/lib/descriptions/style/index.d.ts +2 -5
  329. package/lib/descriptions/style/index.js +69 -65
  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 +64 -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 -41
  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 +413 -198
  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 +288 -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 +17 -0
  530. package/lib/theme/default.js +263 -229
  531. package/lib/theme/index.d.ts +2 -0
  532. package/lib/theme/index.js +61 -56
  533. package/lib/theme/interface.d.ts +38 -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/{style/cssVariablesMeta.d.ts → theme/obTokenMeta.d.ts} +5 -5
  539. package/{es/style/cssVariablesMeta.js → lib/theme/obTokenMeta.js} +352 -383
  540. package/lib/theme/style/aliyun.less +1 -1
  541. package/lib/theme/style/compact.less +65 -62
  542. package/lib/theme/style/dark.less +1 -1
  543. package/lib/theme/style/default.less +66 -63
  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
  581. package/es/style/cssVariables.d.ts +0 -25
  582. package/es/style/cssVariables.js +0 -48
  583. package/lib/style/cssVariables.d.ts +0 -25
  584. package/lib/style/cssVariables.js +0 -261
  585. package/lib/style/cssVariablesMeta.js +0 -1059
@@ -0,0 +1,317 @@
1
+ "use client";
2
+ var _excluded = ["options", "value", "onChange", "icon", "label", "bordered", "multiple", "count", "showSearch", "_isCollapsed", "flat"],
3
+ _excluded2 = ["onOpenChange"];
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 _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); }
10
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
11
+ 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."); }
12
+ 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); }
13
+ 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; }
14
+ 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; } }
15
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
+ 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; }
17
+ 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; }
18
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
19
+ import theme from "../../../theme";
20
+ import { useFilterContext } from "../../FilterContext";
21
+ import { useFilterCollapsed } from "../../hooks/useFilterCollapsed";
22
+ import { useFilterTooltip } from "../../hooks/useFilterTooltip";
23
+ import useFilterStyle, { getFilterCls } from "../../style";
24
+ import { generateFilterId, getPlaceholder, getWrappedValueStyle, normalizeLabel } from "../../utils";
25
+ import CountNumber from "../CountNumber";
26
+ import FilterButton from "../FilterButton";
27
+ import WrappedTagsDisplay from "../WrappedTagsDisplay";
28
+ import { useNormalizedValue } from "./hooks/useNormalizedValue";
29
+ import { useCascaderLabels } from "./hooks/useCascaderLabels";
30
+ import { useCascaderCallbacks } from "./hooks/useCascaderCallbacks";
31
+ import { countLeafNodes } from "./utils/countUtils";
32
+ import { FlatCascaderContent } from "./components/FlatCascaderContent";
33
+ import { NormalCascaderContent } from "./components/NormalCascaderContent";
34
+ import { jsx as _jsx } from "react/jsx-runtime";
35
+ import { jsxs as _jsxs } from "react/jsx-runtime";
36
+ var FilterCascader = function FilterCascader(_ref) {
37
+ var _count$showTotal;
38
+ var _ref$options = _ref.options,
39
+ options = _ref$options === void 0 ? [] : _ref$options,
40
+ value = _ref.value,
41
+ onChange = _ref.onChange,
42
+ icon = _ref.icon,
43
+ label = _ref.label,
44
+ _ref$bordered = _ref.bordered,
45
+ bordered = _ref$bordered === void 0 ? true : _ref$bordered,
46
+ _ref$multiple = _ref.multiple,
47
+ multiple = _ref$multiple === void 0 ? false : _ref$multiple,
48
+ _ref$count = _ref.count,
49
+ count = _ref$count === void 0 ? false : _ref$count,
50
+ _ref$showSearch = _ref.showSearch,
51
+ showSearch = _ref$showSearch === void 0 ? false : _ref$showSearch,
52
+ _ref$_isCollapsed = _ref._isCollapsed,
53
+ _isCollapsed = _ref$_isCollapsed === void 0 ? false : _ref$_isCollapsed,
54
+ _ref$flat = _ref.flat,
55
+ flat = _ref$flat === void 0 ? false : _ref$flat,
56
+ restProps = _objectWithoutProperties(_ref, _excluded);
57
+ var isCollapsed = useFilterCollapsed(_isCollapsed);
58
+ var _useFilterStyle = useFilterStyle(),
59
+ prefixCls = _useFilterStyle.prefixCls;
60
+ var _theme$useToken = theme.useToken(),
61
+ token = _theme$useToken.token;
62
+ var filterButtonRef = useRef(null);
63
+ var _useFilterContext = useFilterContext(),
64
+ updateFilterValue = _useFilterContext.updateFilterValue;
65
+ var filterId = useMemo(function () {
66
+ return generateFilterId('cascader', label);
67
+ }, [label]);
68
+
69
+ // 用于控制二级 Popover 的打开状态(仅在单选模式下使用)
70
+ var _useState = useState(null),
71
+ _useState2 = _slicedToArray(_useState, 2),
72
+ openPopoverKey = _useState2[0],
73
+ setOpenPopoverKey = _useState2[1];
74
+ // 用于 flat 模式下的多列路径(支持多层级)
75
+ var _useState3 = useState([]),
76
+ _useState4 = _slicedToArray(_useState3, 2),
77
+ flatColumnsPath = _useState4[0],
78
+ setFlatColumnsPath = _useState4[1];
79
+
80
+ // 搜索关键词状态
81
+ var _useState5 = useState(''),
82
+ _useState6 = _slicedToArray(_useState5, 2),
83
+ searchKeyword = _useState6[0],
84
+ setSearchKeyword = _useState6[1];
85
+
86
+ // 从 restProps 中排除 onOpenChange,避免类型冲突
87
+ var externalOnOpenChange = restProps.onOpenChange,
88
+ filterButtonProps = _objectWithoutProperties(restProps, _excluded2);
89
+
90
+ // 解析 count 配置
91
+ var showCount = !!count;
92
+ var showTotal = _typeof(count) === 'object' ? (_count$showTotal = count.showTotal) !== null && _count$showTotal !== void 0 ? _count$showTotal : false : false;
93
+
94
+ // 值管理
95
+ var _useNormalizedValue = useNormalizedValue(value, onChange, multiple),
96
+ currentValue = _useNormalizedValue.currentValue,
97
+ setValue = _useNormalizedValue.setValue;
98
+
99
+ // 标签显示
100
+ var _useCascaderLabels = useCascaderLabels(currentValue, options, label, multiple, isCollapsed),
101
+ getSelectedLabel = _useCascaderLabels.getSelectedLabel,
102
+ getSelectedTags = _useCascaderLabels.getSelectedTags;
103
+
104
+ // 回调函数
105
+ var _useCascaderCallbacks = useCascaderCallbacks(currentValue, setValue, options, multiple, filterButtonRef, setOpenPopoverKey),
106
+ handleChange = _useCascaderCallbacks.handleChange,
107
+ clearByParent = _useCascaderCallbacks.clearByParent,
108
+ handleClear = _useCascaderCallbacks.handleClear,
109
+ selectAllChildren = _useCascaderCallbacks.selectAllChildren,
110
+ handleRemoveTag = _useCascaderCallbacks.handleRemoveTag;
111
+
112
+ // 使用 Tooltip hook
113
+ var _useFilterTooltip = useFilterTooltip({
114
+ hasValue: currentValue.length > 0,
115
+ label: label,
116
+ content: currentValue.length > 0 ? getSelectedTags().map(function (i) {
117
+ return i.label;
118
+ }).join(', ') : null,
119
+ disabled: isCollapsed
120
+ }),
121
+ onPopoverOpenChange = _useFilterTooltip.onPopoverOpenChange,
122
+ wrapWithTooltip = _useFilterTooltip.wrapWithTooltip;
123
+
124
+ // 处理主弹窗状态变化
125
+ var handleMainPopoverOpenChange = useCallback(function (open) {
126
+ onPopoverOpenChange(open);
127
+ // 当主弹窗关闭时,同步关闭二级弹窗(单选模式)
128
+ if (!open && !multiple) {
129
+ setOpenPopoverKey(null);
130
+ }
131
+ // flat 模式下,关闭弹窗时重置列路径,下次打开时只显示最顶层
132
+ if (!open && flat) {
133
+ setFlatColumnsPath([]);
134
+ }
135
+ // 弹窗关闭时清空搜索关键词
136
+ if (!open) {
137
+ setSearchKeyword('');
138
+ }
139
+ externalOnOpenChange === null || externalOnOpenChange === void 0 || externalOnOpenChange(open);
140
+ }, [onPopoverOpenChange, externalOnOpenChange, multiple, flat]);
141
+
142
+ // 根据搜索关键词过滤选项(同时搜索父级和子级)
143
+ var filteredOptions = useMemo(function () {
144
+ if (!showSearch || !searchKeyword) return options;
145
+ var lowerKeyword = searchKeyword.toLowerCase().trim();
146
+ return options.map(function (option) {
147
+ var parentLabel = normalizeLabel(option.label).toLowerCase();
148
+ var parentMatches = parentLabel.includes(lowerKeyword);
149
+
150
+ // 递归过滤子级选项
151
+ var filterChildren = function filterChildren(children) {
152
+ return children.map(function (child) {
153
+ var childLabel = normalizeLabel(child.label).toLowerCase();
154
+ var childMatches = childLabel.includes(lowerKeyword);
155
+
156
+ // 如果有子级,递归过滤
157
+ if (child.children && child.children.length > 0) {
158
+ var _filteredChildren = filterChildren(child.children);
159
+ // 如果当前节点匹配或有匹配的子级,则保留
160
+ if (childMatches || _filteredChildren.length > 0) {
161
+ return _objectSpread(_objectSpread({}, child), {}, {
162
+ children: childMatches ? child.children : _filteredChildren
163
+ });
164
+ }
165
+ return null;
166
+ }
167
+
168
+ // 叶子节点,如果匹配则保留
169
+ return childMatches ? child : null;
170
+ }).filter(function (child) {
171
+ return child !== null;
172
+ });
173
+ };
174
+ var filteredChildren = option.children ? filterChildren(option.children) : [];
175
+
176
+ // 如果父级匹配或有匹配的子级,则保留该选项
177
+ if (parentMatches || filteredChildren.length > 0) {
178
+ return _objectSpread(_objectSpread({}, option), {}, {
179
+ // 如果父级不匹配但子级匹配,只显示匹配的子级
180
+ children: parentMatches ? option.children : filteredChildren
181
+ });
182
+ }
183
+ return null;
184
+ }).filter(function (option) {
185
+ return option !== null;
186
+ });
187
+ }, [showSearch, searchKeyword, options]);
188
+
189
+ // 当值变化时,更新 context 中的值
190
+ useEffect(function () {
191
+ if (isCollapsed && updateFilterValue) {
192
+ updateFilterValue(filterId, label, currentValue, options, 'cascader');
193
+ }
194
+ }, [isCollapsed, updateFilterValue, filterId, label, currentValue, options]);
195
+
196
+ // 渲染内容
197
+ var renderContent = flat ? /*#__PURE__*/_jsx(FlatCascaderContent, {
198
+ options: filteredOptions,
199
+ currentValue: currentValue,
200
+ multiple: multiple,
201
+ filterButtonRef: filterButtonRef,
202
+ onValueChange: setValue
203
+ }) : /*#__PURE__*/_jsx(NormalCascaderContent, {
204
+ options: filteredOptions,
205
+ currentValue: currentValue,
206
+ multiple: multiple,
207
+ prefixCls: prefixCls,
208
+ openPopoverKey: openPopoverKey,
209
+ filterButtonRef: filterButtonRef,
210
+ onOpenPopoverKeyChange: setOpenPopoverKey,
211
+ onValueChange: setValue,
212
+ onHandleChange: handleChange,
213
+ onClearByParent: clearByParent,
214
+ onSelectAllChildren: selectAllChildren,
215
+ showSearch: showSearch,
216
+ searchKeyword: searchKeyword,
217
+ onSearchChange: setSearchKeyword
218
+ });
219
+
220
+ // flat 模式下的 Popover 样式(动态宽度)
221
+ var flatPopoverStyles = flat ? {
222
+ body: {
223
+ padding: 0
224
+ }
225
+ } : undefined;
226
+
227
+ // 计算总数(用于显示计数)
228
+ var totalCount = showTotal ? options.reduce(function (acc, curr) {
229
+ return acc + (curr.children ? countLeafNodes(curr.children) : 0);
230
+ }, 0) : 0;
231
+
232
+ // Wrapped 模式
233
+ if (isCollapsed) {
234
+ var hasValue = currentValue.length > 0;
235
+ if (multiple) {
236
+ var selectedTags = getSelectedTags();
237
+ return /*#__PURE__*/_jsxs("div", {
238
+ style: {
239
+ paddingBlock: token.paddingXXS
240
+ },
241
+ children: [/*#__PURE__*/_jsx("div", {
242
+ style: {
243
+ marginBottom: 8
244
+ },
245
+ children: label
246
+ }), /*#__PURE__*/_jsx(FilterButton, _objectSpread(_objectSpread(_objectSpread({
247
+ ref: filterButtonRef,
248
+ icon: icon,
249
+ label: label,
250
+ bordered: bordered,
251
+ onClear: handleClear,
252
+ content: renderContent,
253
+ selected: hasValue,
254
+ onOpenChange: handleMainPopoverOpenChange,
255
+ _isFlat: flat
256
+ }, flat ? {
257
+ styles: flatPopoverStyles
258
+ } : {}), filterButtonProps), {}, {
259
+ children: /*#__PURE__*/_jsx(WrappedTagsDisplay, {
260
+ tags: selectedTags,
261
+ onRemove: handleRemoveTag
262
+ })
263
+ }))]
264
+ });
265
+ }
266
+ return /*#__PURE__*/_jsxs("div", {
267
+ children: [/*#__PURE__*/_jsx("div", {
268
+ style: {
269
+ marginBottom: 8
270
+ },
271
+ children: label
272
+ }), /*#__PURE__*/_jsx(FilterButton, _objectSpread(_objectSpread(_objectSpread({
273
+ ref: filterButtonRef,
274
+ icon: icon,
275
+ label: label,
276
+ bordered: bordered,
277
+ onClear: handleClear,
278
+ content: renderContent,
279
+ selected: hasValue,
280
+ onOpenChange: handleMainPopoverOpenChange
281
+ }, flat ? {
282
+ styles: flatPopoverStyles
283
+ } : {}), filterButtonProps), {}, {
284
+ children: /*#__PURE__*/_jsx("span", {
285
+ className: getFilterCls(prefixCls, 'text-ellipsis'),
286
+ style: getWrappedValueStyle(hasValue),
287
+ children: hasValue ? getSelectedLabel() : getPlaceholder()
288
+ })
289
+ }))]
290
+ });
291
+ }
292
+
293
+ // 正常模式
294
+ var filterButton = /*#__PURE__*/_jsxs(FilterButton, _objectSpread(_objectSpread(_objectSpread({
295
+ ref: filterButtonRef,
296
+ icon: icon,
297
+ label: label,
298
+ bordered: bordered,
299
+ onClear: handleClear,
300
+ content: renderContent,
301
+ selected: !!currentValue.length,
302
+ onOpenChange: handleMainPopoverOpenChange,
303
+ _isFlat: flat
304
+ }, flat ? {
305
+ styles: flatPopoverStyles
306
+ } : {}), filterButtonProps), {}, {
307
+ children: [/*#__PURE__*/_jsx("span", {
308
+ className: getFilterCls(prefixCls, 'text-ellipsis'),
309
+ children: getSelectedLabel()
310
+ }), multiple && showCount && currentValue.length > 0 && /*#__PURE__*/_jsx(CountNumber, {
311
+ count: currentValue.length,
312
+ total: totalCount
313
+ })]
314
+ }));
315
+ return wrapWithTooltip(filterButton);
316
+ };
317
+ export default FilterCascader;
@@ -0,0 +1,56 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { BaseFilterProps, InternalFilterProps } from '../../type';
3
+ export interface CascaderOption {
4
+ label?: ReactNode;
5
+ value: string;
6
+ disabled?: boolean;
7
+ children?: CascaderOption[];
8
+ }
9
+ interface BaseFilterCascaderProps extends BaseFilterProps, InternalFilterProps {
10
+ /** 选项列表 */
11
+ options?: CascaderOption[];
12
+ /** 是否显示计数,可传入 { showTotal: true } 同时显示总数 */
13
+ count?: boolean | {
14
+ showTotal?: boolean;
15
+ };
16
+ }
17
+ type FilterCascaderSingleBase = BaseFilterCascaderProps & {
18
+ /** 是否多选 */
19
+ multiple?: false;
20
+ /** 当前选中值,格式为 [parentValue, childValue] */
21
+ value?: string[];
22
+ /** 值变化回调 */
23
+ onChange?: (value: string[]) => void;
24
+ };
25
+ type FilterCascaderMultipleBase = BaseFilterCascaderProps & {
26
+ /** 是否多选 */
27
+ multiple?: true;
28
+ /** 当前选中值,格式为 [[parentValue, childValue], ...] */
29
+ value?: string[][];
30
+ /** 值变化回调 */
31
+ onChange?: (value: string[][]) => void;
32
+ };
33
+ type FilterCascaderWithSearch<T extends FilterCascaderSingleBase | FilterCascaderMultipleBase> = T & {
34
+ /** 是否显示搜索框,默认为 false */
35
+ showSearch: true;
36
+ flat?: never;
37
+ };
38
+ type FilterCascaderWithFlat<T extends FilterCascaderSingleBase | FilterCascaderMultipleBase> = T & {
39
+ /** 扁平化展示 */
40
+ flat: true;
41
+ showSearch?: never;
42
+ };
43
+ type FilterCascaderNormal<T extends FilterCascaderSingleBase | FilterCascaderMultipleBase> = T & {
44
+ flat?: false;
45
+ showSearch?: false;
46
+ };
47
+ export type FilterCascaderSingleProps = FilterCascaderWithSearch<FilterCascaderSingleBase> | FilterCascaderWithFlat<FilterCascaderSingleBase> | FilterCascaderNormal<FilterCascaderSingleBase>;
48
+ export type FilterCascaderMultipleProps = FilterCascaderWithSearch<FilterCascaderMultipleBase> | FilterCascaderWithFlat<FilterCascaderMultipleBase> | FilterCascaderNormal<FilterCascaderMultipleBase>;
49
+ export type FilterCascaderProps = FilterCascaderSingleProps | FilterCascaderMultipleProps;
50
+ export interface SelectedTag {
51
+ label: ReactNode;
52
+ value: string;
53
+ parentValue: string;
54
+ childValue: string;
55
+ }
56
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { CascaderOption } from '../types';
2
+ /**
3
+ * 递归统计所有叶子节点数量(只统计没有children的节点)
4
+ */
5
+ export declare const countLeafNodes: (options: CascaderOption[]) => number;
6
+ /**
7
+ * 收集所有叶子节点的完整路径
8
+ */
9
+ export declare const collectLeafPaths: (options: CascaderOption[], basePath: string[]) => string[][];
10
+ /**
11
+ * 统计选中的子节点数量
12
+ */
13
+ export declare const countSelectedChildren: (currentValue: string[][], currentPath: string[]) => number;
@@ -0,0 +1,48 @@
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
+ /**
8
+ * 递归统计所有叶子节点数量(只统计没有children的节点)
9
+ */
10
+ export var countLeafNodes = function countLeafNodes(options) {
11
+ var count = 0;
12
+ options.forEach(function (opt) {
13
+ if (opt.children && opt.children.length > 0) {
14
+ count += countLeafNodes(opt.children);
15
+ } else {
16
+ count += 1;
17
+ }
18
+ });
19
+ return count;
20
+ };
21
+
22
+ /**
23
+ * 收集所有叶子节点的完整路径
24
+ */
25
+ export var collectLeafPaths = function collectLeafPaths(options, basePath) {
26
+ var paths = [];
27
+ options.forEach(function (opt) {
28
+ var optPath = [].concat(_toConsumableArray(basePath), [opt.value]);
29
+ if (opt.children && opt.children.length > 0) {
30
+ paths.push.apply(paths, _toConsumableArray(collectLeafPaths(opt.children, optPath)));
31
+ } else {
32
+ paths.push(optPath);
33
+ }
34
+ });
35
+ return paths;
36
+ };
37
+
38
+ /**
39
+ * 统计选中的子节点数量
40
+ */
41
+ export var countSelectedChildren = function countSelectedChildren(currentValue, currentPath) {
42
+ return currentValue.filter(function (selectedPath) {
43
+ if (selectedPath.length <= currentPath.length) return false;
44
+ return currentPath.every(function (val, idx) {
45
+ return selectedPath[idx] === val;
46
+ });
47
+ }).length;
48
+ };
@@ -0,0 +1,17 @@
1
+ import type { CascaderOption } from '../types';
2
+ /**
3
+ * 根据路径查找选项
4
+ */
5
+ export declare const findOptionByPath: (options: CascaderOption[], path: string[]) => CascaderOption | null;
6
+ /**
7
+ * 根据路径获取当前层级的选项列表
8
+ */
9
+ export declare const getCurrentLevelOptions: (options: CascaderOption[], path: string[]) => CascaderOption[];
10
+ /**
11
+ * 检查路径是否在选中值中
12
+ */
13
+ export declare const hasSelectedInPath: (currentValue: string[][], currentPath: string[]) => boolean;
14
+ /**
15
+ * 检查路径是否完全匹配
16
+ */
17
+ export declare const isExactMatch: (currentValue: string[][], currentPath: string[]) => boolean;
@@ -0,0 +1,91 @@
1
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
2
+ 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); }
3
+ 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; }
4
+ /**
5
+ * 根据路径查找选项
6
+ */
7
+ export var findOptionByPath = function findOptionByPath(options, path) {
8
+ if (!path || path.length === 0) return null;
9
+ var currentOptions = options;
10
+ var currentOption = null;
11
+ var _iterator = _createForOfIteratorHelper(path),
12
+ _step;
13
+ try {
14
+ var _loop = function _loop() {
15
+ var pathValue = _step.value;
16
+ var found = currentOptions.find(function (opt) {
17
+ return opt.value === pathValue;
18
+ });
19
+ if (!found) return {
20
+ v: null
21
+ };
22
+ currentOption = found;
23
+ currentOptions = found.children || [];
24
+ },
25
+ _ret;
26
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
27
+ _ret = _loop();
28
+ if (_ret) return _ret.v;
29
+ }
30
+ } catch (err) {
31
+ _iterator.e(err);
32
+ } finally {
33
+ _iterator.f();
34
+ }
35
+ return currentOption;
36
+ };
37
+
38
+ /**
39
+ * 根据路径获取当前层级的选项列表
40
+ */
41
+ export var getCurrentLevelOptions = function getCurrentLevelOptions(options, path) {
42
+ if (path.length === 0) return options;
43
+ var currentOptions = options;
44
+ var _iterator2 = _createForOfIteratorHelper(path),
45
+ _step2;
46
+ try {
47
+ var _loop2 = function _loop2() {
48
+ var pathValue = _step2.value;
49
+ var found = currentOptions.find(function (opt) {
50
+ return opt.value === pathValue;
51
+ });
52
+ if (!found || !found.children) return {
53
+ v: []
54
+ };
55
+ currentOptions = found.children;
56
+ },
57
+ _ret2;
58
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
59
+ _ret2 = _loop2();
60
+ if (_ret2) return _ret2.v;
61
+ }
62
+ } catch (err) {
63
+ _iterator2.e(err);
64
+ } finally {
65
+ _iterator2.f();
66
+ }
67
+ return currentOptions;
68
+ };
69
+
70
+ /**
71
+ * 检查路径是否在选中值中
72
+ */
73
+ export var hasSelectedInPath = function hasSelectedInPath(currentValue, currentPath) {
74
+ return currentValue.some(function (selectedPath) {
75
+ if (selectedPath.length < currentPath.length) return false;
76
+ return currentPath.every(function (val, idx) {
77
+ return selectedPath[idx] === val;
78
+ });
79
+ });
80
+ };
81
+
82
+ /**
83
+ * 检查路径是否完全匹配
84
+ */
85
+ export var isExactMatch = function isExactMatch(currentValue, currentPath) {
86
+ return currentValue.some(function (selectedPath) {
87
+ return selectedPath.length === currentPath.length && selectedPath.every(function (val, idx) {
88
+ return val === currentPath[idx];
89
+ });
90
+ });
91
+ };
@@ -0,0 +1,26 @@
1
+ import type { ReactNode } from 'react';
2
+ import React from 'react';
3
+ import type { BaseFilterProps, InternalFilterProps } from '../type';
4
+ export interface CheckboxOption {
5
+ label: ReactNode;
6
+ value: string;
7
+ disabled?: boolean;
8
+ /** 状态颜色,如果提供则启用状态模式(显示重叠图标、使用 Badge 显示) */
9
+ color?: string;
10
+ }
11
+ export interface FilterCheckboxProps extends BaseFilterProps, InternalFilterProps {
12
+ /** 选项列表 */
13
+ options?: CheckboxOption[];
14
+ /** 当前选中值 */
15
+ value?: string[];
16
+ /** 值变化回调 */
17
+ onChange?: (value: string[]) => void;
18
+ /** 是否显示计数,可传入 { showTotal: true } 同时显示总数 */
19
+ count?: boolean | {
20
+ showTotal?: boolean;
21
+ };
22
+ /** 是否显示搜索框,默认为 false */
23
+ showSearch?: boolean;
24
+ }
25
+ declare const _default: React.NamedExoticComponent<FilterCheckboxProps>;
26
+ export default _default;