@lobehub/ui 6.0.0-beta.7 → 6.0.0-beta.8

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 (666) hide show
  1. package/es/Accordion/Accordion.mjs +3 -3
  2. package/es/Accordion/Accordion.mjs.map +1 -1
  3. package/es/Accordion/atoms.mjs +2 -2
  4. package/es/Accordion/atoms.mjs.map +1 -1
  5. package/es/Accordion/style.d.mts +1 -1
  6. package/es/ActionIcon/ActionIcon.mjs +2 -2
  7. package/es/ActionIcon/ActionIcon.mjs.map +1 -1
  8. package/es/Alert/Alert.mjs +5 -5
  9. package/es/Alert/Alert.mjs.map +1 -1
  10. package/es/AutoComplete/AutoComplete.mjs +5 -5
  11. package/es/AutoComplete/AutoComplete.mjs.map +1 -1
  12. package/es/AutoComplete/style.mjs +2 -2
  13. package/es/AutoComplete/style.mjs.map +1 -1
  14. package/es/Avatar/Avatar.mjs +2 -2
  15. package/es/Avatar/Avatar.mjs.map +1 -1
  16. package/es/Avatar/AvatarGroup/index.mjs +2 -2
  17. package/es/Avatar/AvatarGroup/index.mjs.map +1 -1
  18. package/es/Breadcrumb/Breadcrumb.mjs +2 -2
  19. package/es/Breadcrumb/Breadcrumb.mjs.map +1 -1
  20. package/es/Button/Button.mjs +1 -1
  21. package/es/Button/Button.mjs.map +1 -1
  22. package/es/Button/style.d.mts +8 -1
  23. package/es/Button/style.mjs +41 -18
  24. package/es/Button/style.mjs.map +1 -1
  25. package/es/Checkbox/Checkbox.mjs +3 -3
  26. package/es/Checkbox/Checkbox.mjs.map +1 -1
  27. package/es/CodeDiff/DiffPanel.mjs +4 -4
  28. package/es/CodeDiff/DiffPanel.mjs.map +1 -1
  29. package/es/CodeEditor/CodeEditor.mjs +4 -4
  30. package/es/CodeEditor/CodeEditor.mjs.map +1 -1
  31. package/es/ColorPicker/ColorInputs.mjs +136 -0
  32. package/es/ColorPicker/ColorInputs.mjs.map +1 -0
  33. package/es/ColorPicker/ColorPanel.mjs +145 -0
  34. package/es/ColorPicker/ColorPanel.mjs.map +1 -0
  35. package/es/ColorPicker/ColorPicker.mjs +62 -199
  36. package/es/ColorPicker/ColorPicker.mjs.map +1 -1
  37. package/es/ColorPicker/SaturationArea.mjs +2 -1
  38. package/es/ColorPicker/SaturationArea.mjs.map +1 -1
  39. package/es/ColorPicker/Swatch.mjs +24 -0
  40. package/es/ColorPicker/Swatch.mjs.map +1 -0
  41. package/es/ColorPicker/Swatches.mjs +66 -0
  42. package/es/ColorPicker/Swatches.mjs.map +1 -0
  43. package/es/ColorPicker/Trigger.mjs +112 -0
  44. package/es/ColorPicker/Trigger.mjs.map +1 -0
  45. package/es/ColorPicker/color.mjs +25 -1
  46. package/es/ColorPicker/color.mjs.map +1 -1
  47. package/es/ColorPicker/recent.mjs +25 -0
  48. package/es/ColorPicker/recent.mjs.map +1 -0
  49. package/es/ColorPicker/style.mjs +269 -70
  50. package/es/ColorPicker/style.mjs.map +1 -1
  51. package/es/ColorPicker/type.d.mts +15 -0
  52. package/es/ContextMenu/ContextMenuHost.mjs +2 -2
  53. package/es/ContextMenu/ContextMenuHost.mjs.map +1 -1
  54. package/es/ContextMenu/ContextMenuTrigger.mjs +2 -2
  55. package/es/ContextMenu/ContextMenuTrigger.mjs.map +1 -1
  56. package/es/ContextMenu/renderItems.mjs +3 -3
  57. package/es/ContextMenu/renderItems.mjs.map +1 -1
  58. package/es/DatePicker/DatePicker.d.mts +7 -2
  59. package/es/DatePicker/DatePicker.mjs +13 -85
  60. package/es/DatePicker/DatePicker.mjs.map +1 -1
  61. package/es/DatePicker/DateRangePicker.d.mts +3 -2
  62. package/es/DatePicker/DateRangePicker.mjs +3 -125
  63. package/es/DatePicker/DateRangePicker.mjs.map +1 -1
  64. package/es/DatePicker/PurePanel.mjs +65 -0
  65. package/es/DatePicker/PurePanel.mjs.map +1 -0
  66. package/es/DatePicker/RangePicker.mjs +115 -0
  67. package/es/DatePicker/RangePicker.mjs.map +1 -0
  68. package/es/DatePicker/SinglePicker.mjs +132 -0
  69. package/es/DatePicker/SinglePicker.mjs.map +1 -0
  70. package/es/DatePicker/core/PickerInput/Popup/Footer.mjs +57 -0
  71. package/es/DatePicker/core/PickerInput/Popup/Footer.mjs.map +1 -0
  72. package/es/DatePicker/core/PickerInput/Popup/PopupPanel.mjs +57 -0
  73. package/es/DatePicker/core/PickerInput/Popup/PopupPanel.mjs.map +1 -0
  74. package/es/DatePicker/core/PickerInput/Popup/PresetPanel.mjs +29 -0
  75. package/es/DatePicker/core/PickerInput/Popup/PresetPanel.mjs.map +1 -0
  76. package/es/DatePicker/core/PickerInput/Popup/index.mjs +133 -0
  77. package/es/DatePicker/core/PickerInput/Popup/index.mjs.map +1 -0
  78. package/es/DatePicker/core/PickerInput/RangePicker.d.mts +51 -0
  79. package/es/DatePicker/core/PickerInput/RangePicker.mjs +343 -0
  80. package/es/DatePicker/core/PickerInput/RangePicker.mjs.map +1 -0
  81. package/es/DatePicker/core/PickerInput/Selector/ClearIcon.mjs +27 -0
  82. package/es/DatePicker/core/PickerInput/Selector/ClearIcon.mjs.map +1 -0
  83. package/es/DatePicker/core/PickerInput/Selector/Icon.mjs +19 -0
  84. package/es/DatePicker/core/PickerInput/Selector/Icon.mjs.map +1 -0
  85. package/es/DatePicker/core/PickerInput/Selector/Input.mjs +237 -0
  86. package/es/DatePicker/core/PickerInput/Selector/Input.mjs.map +1 -0
  87. package/es/DatePicker/core/PickerInput/Selector/MaskFormat.mjs +70 -0
  88. package/es/DatePicker/core/PickerInput/Selector/MaskFormat.mjs.map +1 -0
  89. package/es/DatePicker/core/PickerInput/Selector/RangeSelector.d.mts +8 -0
  90. package/es/DatePicker/core/PickerInput/Selector/RangeSelector.mjs +136 -0
  91. package/es/DatePicker/core/PickerInput/Selector/RangeSelector.mjs.map +1 -0
  92. package/es/DatePicker/core/PickerInput/Selector/SingleSelector/HoverSelector.mjs +28 -0
  93. package/es/DatePicker/core/PickerInput/Selector/SingleSelector/HoverSelector.mjs.map +1 -0
  94. package/es/DatePicker/core/PickerInput/Selector/SingleSelector/MultipleDates.mjs +69 -0
  95. package/es/DatePicker/core/PickerInput/Selector/SingleSelector/MultipleDates.mjs.map +1 -0
  96. package/es/DatePicker/core/PickerInput/Selector/SingleSelector/index.mjs +111 -0
  97. package/es/DatePicker/core/PickerInput/Selector/SingleSelector/index.mjs.map +1 -0
  98. package/es/DatePicker/core/PickerInput/Selector/hooks/useClearIcon.mjs +18 -0
  99. package/es/DatePicker/core/PickerInput/Selector/hooks/useClearIcon.mjs.map +1 -0
  100. package/es/DatePicker/core/PickerInput/Selector/hooks/useInputProps.mjs +108 -0
  101. package/es/DatePicker/core/PickerInput/Selector/hooks/useInputProps.mjs.map +1 -0
  102. package/es/DatePicker/core/PickerInput/Selector/hooks/useRootProps.mjs +11 -0
  103. package/es/DatePicker/core/PickerInput/Selector/hooks/useRootProps.mjs.map +1 -0
  104. package/es/DatePicker/core/PickerInput/Selector/util.mjs +20 -0
  105. package/es/DatePicker/core/PickerInput/Selector/util.mjs.map +1 -0
  106. package/es/DatePicker/core/PickerInput/SinglePicker.d.mts +55 -0
  107. package/es/DatePicker/core/PickerInput/SinglePicker.mjs +318 -0
  108. package/es/DatePicker/core/PickerInput/SinglePicker.mjs.map +1 -0
  109. package/es/DatePicker/core/PickerInput/context.mjs +7 -0
  110. package/es/DatePicker/core/PickerInput/context.mjs.map +1 -0
  111. package/es/DatePicker/core/PickerInput/hooks/useCellRender.mjs +30 -0
  112. package/es/DatePicker/core/PickerInput/hooks/useCellRender.mjs.map +1 -0
  113. package/es/DatePicker/core/PickerInput/hooks/useDelayState.mjs +37 -0
  114. package/es/DatePicker/core/PickerInput/hooks/useDelayState.mjs.map +1 -0
  115. package/es/DatePicker/core/PickerInput/hooks/useDisabledBoundary.mjs +18 -0
  116. package/es/DatePicker/core/PickerInput/hooks/useDisabledBoundary.mjs.map +1 -0
  117. package/es/DatePicker/core/PickerInput/hooks/useFieldFormat.mjs +20 -0
  118. package/es/DatePicker/core/PickerInput/hooks/useFieldFormat.mjs.map +1 -0
  119. package/es/DatePicker/core/PickerInput/hooks/useFieldsInvalidate.mjs +31 -0
  120. package/es/DatePicker/core/PickerInput/hooks/useFieldsInvalidate.mjs.map +1 -0
  121. package/es/DatePicker/core/PickerInput/hooks/useFilledProps.mjs +98 -0
  122. package/es/DatePicker/core/PickerInput/hooks/useFilledProps.mjs.map +1 -0
  123. package/es/DatePicker/core/PickerInput/hooks/useFocusEvents.mjs +41 -0
  124. package/es/DatePicker/core/PickerInput/hooks/useFocusEvents.mjs.map +1 -0
  125. package/es/DatePicker/core/PickerInput/hooks/useFocusLock.mjs +34 -0
  126. package/es/DatePicker/core/PickerInput/hooks/useFocusLock.mjs.map +1 -0
  127. package/es/DatePicker/core/PickerInput/hooks/useHoverStore.mjs +35 -0
  128. package/es/DatePicker/core/PickerInput/hooks/useHoverStore.mjs.map +1 -0
  129. package/es/DatePicker/core/PickerInput/hooks/useInputReadOnly.mjs +9 -0
  130. package/es/DatePicker/core/PickerInput/hooks/useInputReadOnly.mjs.map +1 -0
  131. package/es/DatePicker/core/PickerInput/hooks/useInvalidate.mjs +36 -0
  132. package/es/DatePicker/core/PickerInput/hooks/useInvalidate.mjs.map +1 -0
  133. package/es/DatePicker/core/PickerInput/hooks/useLockEffect.mjs +27 -0
  134. package/es/DatePicker/core/PickerInput/hooks/useLockEffect.mjs.map +1 -0
  135. package/es/DatePicker/core/PickerInput/hooks/useOpen.mjs +18 -0
  136. package/es/DatePicker/core/PickerInput/hooks/useOpen.mjs.map +1 -0
  137. package/es/DatePicker/core/PickerInput/hooks/usePickerRef.mjs +19 -0
  138. package/es/DatePicker/core/PickerInput/hooks/usePickerRef.mjs.map +1 -0
  139. package/es/DatePicker/core/PickerInput/hooks/usePresets.mjs +20 -0
  140. package/es/DatePicker/core/PickerInput/hooks/usePresets.mjs.map +1 -0
  141. package/es/DatePicker/core/PickerInput/hooks/useRangeDisabledDate.mjs +24 -0
  142. package/es/DatePicker/core/PickerInput/hooks/useRangeDisabledDate.mjs.map +1 -0
  143. package/es/DatePicker/core/PickerInput/hooks/useRangePickerValue.mjs +107 -0
  144. package/es/DatePicker/core/PickerInput/hooks/useRangePickerValue.mjs.map +1 -0
  145. package/es/DatePicker/core/PickerInput/hooks/useRangeValue.mjs +144 -0
  146. package/es/DatePicker/core/PickerInput/hooks/useRangeValue.mjs.map +1 -0
  147. package/es/DatePicker/core/PickerInput/hooks/useRangeValueChange.mjs +219 -0
  148. package/es/DatePicker/core/PickerInput/hooks/useRangeValueChange.mjs.map +1 -0
  149. package/es/DatePicker/core/PickerInput/hooks/useShowNow.mjs +11 -0
  150. package/es/DatePicker/core/PickerInput/hooks/useShowNow.mjs.map +1 -0
  151. package/es/DatePicker/core/PickerPanel/DatePanel/index.mjs +131 -0
  152. package/es/DatePicker/core/PickerPanel/DatePanel/index.mjs.map +1 -0
  153. package/es/DatePicker/core/PickerPanel/DateTimePanel/index.mjs +35 -0
  154. package/es/DatePicker/core/PickerPanel/DateTimePanel/index.mjs.map +1 -0
  155. package/es/DatePicker/core/PickerPanel/DecadePanel/index.mjs +84 -0
  156. package/es/DatePicker/core/PickerPanel/DecadePanel/index.mjs.map +1 -0
  157. package/es/DatePicker/core/PickerPanel/MonthPanel/index.mjs +73 -0
  158. package/es/DatePicker/core/PickerPanel/MonthPanel/index.mjs.map +1 -0
  159. package/es/DatePicker/core/PickerPanel/PanelBody.mjs +95 -0
  160. package/es/DatePicker/core/PickerPanel/PanelBody.mjs.map +1 -0
  161. package/es/DatePicker/core/PickerPanel/PanelHeader.mjs +130 -0
  162. package/es/DatePicker/core/PickerPanel/PanelHeader.mjs.map +1 -0
  163. package/es/DatePicker/core/PickerPanel/QuarterPanel/index.mjs +64 -0
  164. package/es/DatePicker/core/PickerPanel/QuarterPanel/index.mjs.map +1 -0
  165. package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/ClockDial.mjs +108 -0
  166. package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/ClockDial.mjs.map +1 -0
  167. package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/geometry.mjs +44 -0
  168. package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/geometry.mjs.map +1 -0
  169. package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/index.mjs +157 -0
  170. package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/index.mjs.map +1 -0
  171. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/TimeColumn.mjs +100 -0
  172. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/TimeColumn.mjs.map +1 -0
  173. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/index.mjs +71 -0
  174. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/index.mjs.map +1 -0
  175. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/useScrollTo.mjs +62 -0
  176. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/useScrollTo.mjs.map +1 -0
  177. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/useTimeState.mjs +200 -0
  178. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/useTimeState.mjs.map +1 -0
  179. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/util.mjs +25 -0
  180. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/util.mjs.map +1 -0
  181. package/es/DatePicker/core/PickerPanel/TimePanel/index.mjs +31 -0
  182. package/es/DatePicker/core/PickerPanel/TimePanel/index.mjs.map +1 -0
  183. package/es/DatePicker/core/PickerPanel/WeekPanel/index.mjs +34 -0
  184. package/es/DatePicker/core/PickerPanel/WeekPanel/index.mjs.map +1 -0
  185. package/es/DatePicker/core/PickerPanel/YearPanel/index.mjs +92 -0
  186. package/es/DatePicker/core/PickerPanel/YearPanel/index.mjs.map +1 -0
  187. package/es/DatePicker/core/PickerPanel/context.mjs +48 -0
  188. package/es/DatePicker/core/PickerPanel/context.mjs.map +1 -0
  189. package/es/DatePicker/core/PickerPanel/index.d.mts +1 -0
  190. package/es/DatePicker/core/PickerPanel/index.mjs +175 -0
  191. package/es/DatePicker/core/PickerPanel/index.mjs.map +1 -0
  192. package/es/DatePicker/core/PickerPopup.mjs +118 -0
  193. package/es/DatePicker/core/PickerPopup.mjs.map +1 -0
  194. package/es/DatePicker/core/generate/dayjs.mjs +109 -0
  195. package/es/DatePicker/core/generate/dayjs.mjs.map +1 -0
  196. package/es/DatePicker/core/generate/index.d.mts +40 -0
  197. package/es/DatePicker/core/hooks/react.mjs +58 -0
  198. package/es/DatePicker/core/hooks/react.mjs.map +1 -0
  199. package/es/DatePicker/core/hooks/useLocale.mjs +51 -0
  200. package/es/DatePicker/core/hooks/useLocale.mjs.map +1 -0
  201. package/es/DatePicker/core/hooks/useSemantic.mjs +20 -0
  202. package/es/DatePicker/core/hooks/useSemantic.mjs.map +1 -0
  203. package/es/DatePicker/core/hooks/useSyncState.mjs +25 -0
  204. package/es/DatePicker/core/hooks/useSyncState.mjs.map +1 -0
  205. package/es/DatePicker/core/hooks/useTimeConfig.mjs +173 -0
  206. package/es/DatePicker/core/hooks/useTimeConfig.mjs.map +1 -0
  207. package/es/DatePicker/core/hooks/useTimeInfo.mjs +110 -0
  208. package/es/DatePicker/core/hooks/useTimeInfo.mjs.map +1 -0
  209. package/es/DatePicker/core/hooks/useToggleDates.mjs +21 -0
  210. package/es/DatePicker/core/hooks/useToggleDates.mjs.map +1 -0
  211. package/es/DatePicker/core/index.d.mts +5 -0
  212. package/es/DatePicker/core/index.mjs +9 -0
  213. package/es/DatePicker/core/index.mjs.map +1 -0
  214. package/es/DatePicker/core/interface.d.mts +325 -0
  215. package/es/DatePicker/core/locale/common.mjs +11 -0
  216. package/es/DatePicker/core/locale/common.mjs.map +1 -0
  217. package/es/DatePicker/core/locale/en_US.mjs +39 -0
  218. package/es/DatePicker/core/locale/en_US.mjs.map +1 -0
  219. package/es/DatePicker/core/utils/common.mjs +73 -0
  220. package/es/DatePicker/core/utils/common.mjs.map +1 -0
  221. package/es/DatePicker/core/utils/dateUtil.mjs +106 -0
  222. package/es/DatePicker/core/utils/dateUtil.mjs.map +1 -0
  223. package/es/DatePicker/core/utils/miscUtil.mjs +46 -0
  224. package/es/DatePicker/core/utils/miscUtil.mjs.map +1 -0
  225. package/es/DatePicker/core/utils/uiUtil.mjs +9 -0
  226. package/es/DatePicker/core/utils/uiUtil.mjs.map +1 -0
  227. package/es/DatePicker/generateConfig.mjs +12 -0
  228. package/es/DatePicker/generateConfig.mjs.map +1 -0
  229. package/es/DatePicker/generatePicker.d.mts +12 -0
  230. package/es/DatePicker/generatePicker.mjs +22 -0
  231. package/es/DatePicker/generatePicker.mjs.map +1 -0
  232. package/es/DatePicker/index.d.mts +6 -3
  233. package/es/DatePicker/index.mjs +3 -1
  234. package/es/DatePicker/locale.d.mts +15 -0
  235. package/es/DatePicker/locale.mjs +143 -0
  236. package/es/DatePicker/locale.mjs.map +1 -0
  237. package/es/DatePicker/semantic.mjs +29 -0
  238. package/es/DatePicker/semantic.mjs.map +1 -0
  239. package/es/DatePicker/style.mjs +3 -155
  240. package/es/DatePicker/style.mjs.map +1 -1
  241. package/es/DatePicker/type.d.mts +268 -27
  242. package/es/DatePicker/usePanelKeyboard.mjs +230 -0
  243. package/es/DatePicker/usePanelKeyboard.mjs.map +1 -0
  244. package/es/DatePicker/usePickerShared.mjs +106 -0
  245. package/es/DatePicker/usePickerShared.mjs.map +1 -0
  246. package/es/DatePicker/usePresetActive.mjs +48 -0
  247. package/es/DatePicker/usePresetActive.mjs.map +1 -0
  248. package/es/DraggablePanel/atoms.mjs +5 -5
  249. package/es/DraggablePanel/atoms.mjs.map +1 -1
  250. package/es/DraggableSideNav/DraggableSideNav.mjs +3 -3
  251. package/es/DraggableSideNav/DraggableSideNav.mjs.map +1 -1
  252. package/es/Drawer/Drawer.mjs +2 -2
  253. package/es/Drawer/Drawer.mjs.map +1 -1
  254. package/es/Drawer/atoms.mjs +6 -6
  255. package/es/Drawer/atoms.mjs.map +1 -1
  256. package/es/DropdownMenu/atoms.mjs +22 -22
  257. package/es/DropdownMenu/atoms.mjs.map +1 -1
  258. package/es/DropdownMenu/sharedStyle.mjs +2 -2
  259. package/es/DropdownMenu/sharedStyle.mjs.map +1 -1
  260. package/es/EditorSlashMenu/atoms.mjs +12 -12
  261. package/es/EditorSlashMenu/atoms.mjs.map +1 -1
  262. package/es/EmojiPicker/EmojiPicker.mjs +7 -7
  263. package/es/EmojiPicker/EmojiPicker.mjs.map +1 -1
  264. package/es/EmojiPicker/loadEmojiData.mjs +6 -0
  265. package/es/EmojiPicker/loadEmojiData.mjs.map +1 -0
  266. package/es/FloatingPanel/FloatingPanel.mjs +2 -2
  267. package/es/FloatingPanel/FloatingPanel.mjs.map +1 -1
  268. package/es/FormKit/List.mjs +2 -2
  269. package/es/FormKit/List.mjs.map +1 -1
  270. package/es/Highlighter/FullFeatured.mjs +2 -2
  271. package/es/Highlighter/FullFeatured.mjs.map +1 -1
  272. package/es/Highlighter/SyntaxHighlighter/StreamRenderer.mjs +2 -2
  273. package/es/Highlighter/SyntaxHighlighter/StreamRenderer.mjs.map +1 -1
  274. package/es/Highlighter/SyntaxHighlighter/index.mjs +4 -4
  275. package/es/Highlighter/SyntaxHighlighter/index.mjs.map +1 -1
  276. package/es/Highlighter/style.mjs +2 -2
  277. package/es/Highlighter/style.mjs.map +1 -1
  278. package/es/HtmlPreview/HtmlPreview.mjs +2 -2
  279. package/es/HtmlPreview/HtmlPreview.mjs.map +1 -1
  280. package/es/Icon/Icon.mjs +2 -2
  281. package/es/Icon/Icon.mjs.map +1 -1
  282. package/es/List/ListRow.mjs +3 -3
  283. package/es/List/ListRow.mjs.map +1 -1
  284. package/es/Markdown/Markdown.mjs +2 -2
  285. package/es/Markdown/Markdown.mjs.map +1 -1
  286. package/es/Markdown/Typography.mjs +2 -2
  287. package/es/Markdown/Typography.mjs.map +1 -1
  288. package/es/Mermaid/FullFeatured.mjs +2 -2
  289. package/es/Mermaid/FullFeatured.mjs.map +1 -1
  290. package/es/Mermaid/SyntaxMermaid/index.mjs +4 -4
  291. package/es/Mermaid/SyntaxMermaid/index.mjs.map +1 -1
  292. package/es/Modal/atoms.mjs +6 -6
  293. package/es/Modal/atoms.mjs.map +1 -1
  294. package/es/Pagination/Pagination.mjs +181 -41
  295. package/es/Pagination/Pagination.mjs.map +1 -1
  296. package/es/Pagination/helpers.mjs +3 -3
  297. package/es/Pagination/helpers.mjs.map +1 -1
  298. package/es/Pagination/index.d.mts +2 -2
  299. package/es/Pagination/marker.stylex.mjs +9 -0
  300. package/es/Pagination/marker.stylex.mjs.map +1 -0
  301. package/es/Pagination/style.mjs +74 -4
  302. package/es/Pagination/style.mjs.map +1 -1
  303. package/es/Pagination/type.d.mts +41 -3
  304. package/es/Popover/PopoverInGroup.mjs +2 -2
  305. package/es/Popover/PopoverInGroup.mjs.map +1 -1
  306. package/es/Popover/atoms.mjs +6 -6
  307. package/es/Popover/atoms.mjs.map +1 -1
  308. package/es/ProTable/ProTable.d.mts +11 -0
  309. package/es/ProTable/ProTable.mjs +208 -0
  310. package/es/ProTable/ProTable.mjs.map +1 -0
  311. package/es/ProTable/hooks/useColumnRequest.mjs +55 -0
  312. package/es/ProTable/hooks/useColumnRequest.mjs.map +1 -0
  313. package/es/ProTable/hooks/useColumnsState.mjs +37 -0
  314. package/es/ProTable/hooks/useColumnsState.mjs.map +1 -0
  315. package/es/ProTable/hooks/useDelayedFlag.mjs +18 -0
  316. package/es/ProTable/hooks/useDelayedFlag.mjs.map +1 -0
  317. package/es/ProTable/hooks/useDensity.mjs +15 -0
  318. package/es/ProTable/hooks/useDensity.mjs.map +1 -0
  319. package/es/ProTable/hooks/useFetchData.mjs +97 -0
  320. package/es/ProTable/hooks/useFetchData.mjs.map +1 -0
  321. package/es/ProTable/hooks/useFullscreen.mjs +22 -0
  322. package/es/ProTable/hooks/useFullscreen.mjs.map +1 -0
  323. package/es/ProTable/hooks/usePageInfo.mjs +35 -0
  324. package/es/ProTable/hooks/usePageInfo.mjs.map +1 -0
  325. package/es/ProTable/hooks/useProColumns.mjs +123 -0
  326. package/es/ProTable/hooks/useProColumns.mjs.map +1 -0
  327. package/es/ProTable/hooks/useProLoading.mjs +19 -0
  328. package/es/ProTable/hooks/useProLoading.mjs.map +1 -0
  329. package/es/ProTable/hooks/useProLocale.mjs +22 -0
  330. package/es/ProTable/hooks/useProLocale.mjs.map +1 -0
  331. package/es/ProTable/hooks/useProRequest.mjs +137 -0
  332. package/es/ProTable/hooks/useProRequest.mjs.map +1 -0
  333. package/es/ProTable/hooks/useRowCache.mjs +11 -0
  334. package/es/ProTable/hooks/useRowCache.mjs.map +1 -0
  335. package/es/ProTable/hooks/useSearchForm.mjs +141 -0
  336. package/es/ProTable/hooks/useSearchForm.mjs.map +1 -0
  337. package/es/ProTable/hooks/useTableBindings.mjs +39 -0
  338. package/es/ProTable/hooks/useTableBindings.mjs.map +1 -0
  339. package/es/ProTable/hooks/useTableSelection.mjs +14 -0
  340. package/es/ProTable/hooks/useTableSelection.mjs.map +1 -0
  341. package/es/ProTable/index.d.mts +4 -0
  342. package/es/ProTable/index.d.ts +1 -0
  343. package/es/ProTable/index.js +1 -0
  344. package/es/ProTable/index.mjs +3 -0
  345. package/es/ProTable/locale.d.mts +15 -0
  346. package/es/ProTable/locale.mjs +66 -0
  347. package/es/ProTable/locale.mjs.map +1 -0
  348. package/es/ProTable/parts/ColumnSetting.mjs +155 -0
  349. package/es/ProTable/parts/ColumnSetting.mjs.map +1 -0
  350. package/es/ProTable/parts/FieldControl.mjs +117 -0
  351. package/es/ProTable/parts/FieldControl.mjs.map +1 -0
  352. package/es/ProTable/parts/KeywordInput.mjs +19 -0
  353. package/es/ProTable/parts/KeywordInput.mjs.map +1 -0
  354. package/es/ProTable/parts/LightFilter.mjs +70 -0
  355. package/es/ProTable/parts/LightFilter.mjs.map +1 -0
  356. package/es/ProTable/parts/OptionPopover.mjs +17 -0
  357. package/es/ProTable/parts/OptionPopover.mjs.map +1 -0
  358. package/es/ProTable/parts/SearchForm.mjs +180 -0
  359. package/es/ProTable/parts/SearchForm.mjs.map +1 -0
  360. package/es/ProTable/parts/SearchSection.mjs +33 -0
  361. package/es/ProTable/parts/SearchSection.mjs.map +1 -0
  362. package/es/ProTable/parts/TableAlert.mjs +38 -0
  363. package/es/ProTable/parts/TableAlert.mjs.map +1 -0
  364. package/es/ProTable/parts/Toolbar.mjs +50 -0
  365. package/es/ProTable/parts/Toolbar.mjs.map +1 -0
  366. package/es/ProTable/parts/ToolbarOptions.mjs +103 -0
  367. package/es/ProTable/parts/ToolbarOptions.mjs.map +1 -0
  368. package/es/ProTable/parts/renderValue.mjs +118 -0
  369. package/es/ProTable/parts/renderValue.mjs.map +1 -0
  370. package/es/ProTable/style.mjs +278 -0
  371. package/es/ProTable/style.mjs.map +1 -0
  372. package/es/ProTable/type.d.mts +397 -0
  373. package/es/ProTable/utils.mjs +152 -0
  374. package/es/ProTable/utils.mjs.map +1 -0
  375. package/es/Radio/Radio.mjs +3 -3
  376. package/es/Radio/Radio.mjs.map +1 -1
  377. package/es/ScrollArea/atoms.mjs +4 -4
  378. package/es/ScrollArea/atoms.mjs.map +1 -1
  379. package/es/Segmented/Segmented.mjs +3 -3
  380. package/es/Segmented/Segmented.mjs.map +1 -1
  381. package/es/Segmented/atoms.mjs +2 -2
  382. package/es/Segmented/atoms.mjs.map +1 -1
  383. package/es/Select/Select.mjs +22 -13
  384. package/es/Select/Select.mjs.map +1 -1
  385. package/es/Select/atoms.mjs +4 -4
  386. package/es/Select/atoms.mjs.map +1 -1
  387. package/es/Select/helpers.mjs +8 -1
  388. package/es/Select/helpers.mjs.map +1 -1
  389. package/es/Select/hooks.mjs +8 -4
  390. package/es/Select/hooks.mjs.map +1 -1
  391. package/es/Select/renderOptions.mjs +2 -2
  392. package/es/Select/renderOptions.mjs.map +1 -1
  393. package/es/Select/type.d.mts +7 -0
  394. package/es/Switch/Switch.mjs +2 -2
  395. package/es/Switch/Switch.mjs.map +1 -1
  396. package/es/Switch/atoms.mjs +2 -2
  397. package/es/Switch/atoms.mjs.map +1 -1
  398. package/es/Table/Column.d.mts +8 -0
  399. package/es/Table/Column.mjs +6 -0
  400. package/es/Table/Column.mjs.map +1 -0
  401. package/es/Table/ColumnGroup.d.mts +11 -0
  402. package/es/Table/ColumnGroup.mjs +6 -0
  403. package/es/Table/ColumnGroup.mjs.map +1 -0
  404. package/es/Table/Table.d.mts +16 -2
  405. package/es/Table/Table.mjs +149 -118
  406. package/es/Table/Table.mjs.map +1 -1
  407. package/es/Table/atoms/cells.d.mts +42 -0
  408. package/es/Table/atoms/cells.mjs +72 -0
  409. package/es/Table/atoms/cells.mjs.map +1 -0
  410. package/es/Table/atoms/index.d.mts +3 -0
  411. package/es/Table/atoms/layout.d.mts +44 -0
  412. package/es/Table/atoms/layout.mjs +62 -0
  413. package/es/Table/atoms/layout.mjs.map +1 -0
  414. package/es/Table/constants.mjs +16 -0
  415. package/es/Table/constants.mjs.map +1 -0
  416. package/es/Table/engine/fixed.d.mts +1 -0
  417. package/es/Table/engine/fixed.mjs +53 -0
  418. package/es/Table/engine/fixed.mjs.map +1 -0
  419. package/es/Table/engine/types.d.mts +1 -0
  420. package/es/Table/engine/useTableEngine.mjs +180 -0
  421. package/es/Table/engine/useTableEngine.mjs.map +1 -0
  422. package/es/Table/index.d.mts +7 -2
  423. package/es/Table/index.mjs +4 -1
  424. package/es/Table/internal.d.mts +3 -0
  425. package/es/Table/pipeline/columnUtils.d.mts +5 -0
  426. package/es/Table/pipeline/columnUtils.mjs +58 -0
  427. package/es/Table/pipeline/columnUtils.mjs.map +1 -0
  428. package/es/Table/pipeline/convertChildrenToColumns.mjs +24 -0
  429. package/es/Table/pipeline/convertChildrenToColumns.mjs.map +1 -0
  430. package/es/Table/pipeline/normalizeColumns.mjs +140 -0
  431. package/es/Table/pipeline/normalizeColumns.mjs.map +1 -0
  432. package/es/Table/pipeline/selectionUtils.d.mts +9 -0
  433. package/es/Table/pipeline/selectionUtils.mjs +115 -0
  434. package/es/Table/pipeline/selectionUtils.mjs.map +1 -0
  435. package/es/Table/pipeline/useBreakpoint.mjs +36 -0
  436. package/es/Table/pipeline/useBreakpoint.mjs.map +1 -0
  437. package/es/Table/pipeline/useExpandable.mjs +45 -0
  438. package/es/Table/pipeline/useExpandable.mjs.map +1 -0
  439. package/es/Table/pipeline/useFilter.mjs +52 -0
  440. package/es/Table/pipeline/useFilter.mjs.map +1 -0
  441. package/es/Table/pipeline/useSelection.mjs +302 -0
  442. package/es/Table/pipeline/useSelection.mjs.map +1 -0
  443. package/es/Table/pipeline/useSorter.mjs +146 -0
  444. package/es/Table/pipeline/useSorter.mjs.map +1 -0
  445. package/es/Table/pipeline/useTableLocale.mjs +30 -0
  446. package/es/Table/pipeline/useTableLocale.mjs.map +1 -0
  447. package/es/Table/pipeline/useTableState.mjs +118 -0
  448. package/es/Table/pipeline/useTableState.mjs.map +1 -0
  449. package/es/Table/pipeline/useVirtualLayout.mjs +80 -0
  450. package/es/Table/pipeline/useVirtualLayout.mjs.map +1 -0
  451. package/es/Table/render/Body.mjs +150 -0
  452. package/es/Table/render/Body.mjs.map +1 -0
  453. package/es/Table/render/BodyCell.mjs +87 -0
  454. package/es/Table/render/BodyCell.mjs.map +1 -0
  455. package/es/Table/render/CellShell.mjs +84 -0
  456. package/es/Table/render/CellShell.mjs.map +1 -0
  457. package/es/Table/render/ExpandIcon.mjs +28 -0
  458. package/es/Table/render/ExpandIcon.mjs.map +1 -0
  459. package/es/Table/render/FilterDropdown.mjs +139 -0
  460. package/es/Table/render/FilterDropdown.mjs.map +1 -0
  461. package/es/Table/render/FilterPanel.mjs +152 -0
  462. package/es/Table/render/FilterPanel.mjs.map +1 -0
  463. package/es/Table/render/FixedFrost.mjs +113 -0
  464. package/es/Table/render/FixedFrost.mjs.map +1 -0
  465. package/es/Table/render/FixedHolder.mjs +51 -0
  466. package/es/Table/render/FixedHolder.mjs.map +1 -0
  467. package/es/Table/render/Header.mjs +184 -0
  468. package/es/Table/render/Header.mjs.map +1 -0
  469. package/es/Table/render/LoadingSkeleton.mjs +78 -0
  470. package/es/Table/render/LoadingSkeleton.mjs.map +1 -0
  471. package/es/Table/render/PaginationBar.mjs +71 -0
  472. package/es/Table/render/PaginationBar.mjs.map +1 -0
  473. package/es/Table/render/SelectionCells.mjs +111 -0
  474. package/es/Table/render/SelectionCells.mjs.map +1 -0
  475. package/es/Table/render/StickyScrollBar.mjs +99 -0
  476. package/es/Table/render/StickyScrollBar.mjs.map +1 -0
  477. package/es/Table/render/Summary.d.mts +16 -0
  478. package/es/Table/render/Summary.mjs +58 -0
  479. package/es/Table/render/Summary.mjs.map +1 -0
  480. package/es/Table/render/TableView.mjs +215 -0
  481. package/es/Table/render/TableView.mjs.map +1 -0
  482. package/es/Table/render/VirtualBody.mjs +101 -0
  483. package/es/Table/render/VirtualBody.mjs.map +1 -0
  484. package/es/Table/render/context.mjs +15 -0
  485. package/es/Table/render/context.mjs.map +1 -0
  486. package/es/Table/render/filterUtils.mjs +22 -0
  487. package/es/Table/render/filterUtils.mjs.map +1 -0
  488. package/es/Table/render/tableHelpers.mjs +27 -0
  489. package/es/Table/render/tableHelpers.mjs.map +1 -0
  490. package/es/Table/render/useColGroups.mjs +23 -0
  491. package/es/Table/render/useColGroups.mjs.map +1 -0
  492. package/es/Table/render/useScrollSync.mjs +104 -0
  493. package/es/Table/render/useScrollSync.mjs.map +1 -0
  494. package/es/Table/render/useViewContexts.mjs +134 -0
  495. package/es/Table/render/useViewContexts.mjs.map +1 -0
  496. package/es/Table/semantic.mjs +45 -0
  497. package/es/Table/semantic.mjs.map +1 -0
  498. package/es/Table/store/createTableStore.d.mts +1 -0
  499. package/es/Table/store/createTableStore.mjs +40 -0
  500. package/es/Table/store/createTableStore.mjs.map +1 -0
  501. package/es/Table/store/hooks.mjs +24 -0
  502. package/es/Table/store/hooks.mjs.map +1 -0
  503. package/es/Table/style.mjs +175 -90
  504. package/es/Table/style.mjs.map +1 -1
  505. package/es/Table/type.d.mts +467 -37
  506. package/es/Table/useTableController.mjs +293 -0
  507. package/es/Table/useTableController.mjs.map +1 -0
  508. package/es/Tabs/Tabs.mjs +2 -2
  509. package/es/Tabs/Tabs.mjs.map +1 -1
  510. package/es/Tabs/atoms.mjs +2 -2
  511. package/es/Tabs/atoms.mjs.map +1 -1
  512. package/es/Tabs/style.d.mts +1 -1
  513. package/es/Tag/Tag.mjs +2 -2
  514. package/es/Tag/Tag.mjs.map +1 -1
  515. package/es/Text/Text.mjs +2 -2
  516. package/es/Text/Text.mjs.map +1 -1
  517. package/es/Text/style.d.mts +3 -3
  518. package/es/Text/style.mjs +3 -3
  519. package/es/Text/style.mjs.map +1 -1
  520. package/es/ToggleGroup/ToggleGroup.mjs +3 -3
  521. package/es/ToggleGroup/ToggleGroup.mjs.map +1 -1
  522. package/es/ToggleGroup/atoms.mjs +2 -2
  523. package/es/ToggleGroup/atoms.mjs.map +1 -1
  524. package/es/Tooltip/TooltipGroup.mjs +3 -3
  525. package/es/Tooltip/TooltipGroup.mjs.map +1 -1
  526. package/es/Tooltip/TooltipStandalone.mjs +3 -3
  527. package/es/Tooltip/TooltipStandalone.mjs.map +1 -1
  528. package/es/Tree/Tree.mjs +2 -2
  529. package/es/Tree/Tree.mjs.map +1 -1
  530. package/es/Tree/TreeNode.mjs +2 -2
  531. package/es/Tree/TreeNode.mjs.map +1 -1
  532. package/es/Video/Video.mjs +2 -2
  533. package/es/Video/Video.mjs.map +1 -1
  534. package/es/awesome/Features/FeatureItem.mjs +2 -2
  535. package/es/awesome/Features/FeatureItem.mjs.map +1 -1
  536. package/es/awesome/Hero/Hero.mjs +3 -3
  537. package/es/awesome/Hero/Hero.mjs.map +1 -1
  538. package/es/awesome/InstallBanner/InstallBanner.mjs +2 -2
  539. package/es/awesome/InstallBanner/InstallBanner.mjs.map +1 -1
  540. package/es/awesome/LandingHero/LandingHero.mjs +3 -3
  541. package/es/awesome/LandingHero/LandingHero.mjs.map +1 -1
  542. package/es/awesome/LogoMarquee/LogoMarquee.mjs +2 -2
  543. package/es/awesome/LogoMarquee/LogoMarquee.mjs.map +1 -1
  544. package/es/awesome/TypewriterEffect/TypewriterEffect.mjs +4 -4
  545. package/es/awesome/TypewriterEffect/TypewriterEffect.mjs.map +1 -1
  546. package/es/awesome/landingActions.mjs +2 -2
  547. package/es/awesome/landingActions.mjs.map +1 -1
  548. package/es/chat/ChatItem/ChatItem.mjs +2 -2
  549. package/es/chat/ChatItem/ChatItem.mjs.map +1 -1
  550. package/es/chat/EditableMessage/EditableMessage.mjs +3 -3
  551. package/es/chat/EditableMessage/EditableMessage.mjs.map +1 -1
  552. package/es/chat/EditableMessageList/EditableMessageList.mjs +1 -1
  553. package/es/chat/MessageInput/MessageInput.mjs +3 -3
  554. package/es/chat/MessageInput/MessageInput.mjs.map +1 -1
  555. package/es/dashboard/AuthLayout/AuthLayout.mjs +8 -4
  556. package/es/dashboard/AuthLayout/AuthLayout.mjs.map +1 -1
  557. package/es/dashboard/AuthLayout/style.mjs +14 -3
  558. package/es/dashboard/AuthLayout/style.mjs.map +1 -1
  559. package/es/dashboard/AuthTools/AuthLocaleSwitch.mjs +2 -2
  560. package/es/dashboard/AuthTools/AuthLocaleSwitch.mjs.map +1 -1
  561. package/es/dashboard/AuthTools/AuthThemeSwitch.mjs +2 -2
  562. package/es/dashboard/AuthTools/AuthThemeSwitch.mjs.map +1 -1
  563. package/es/dashboard/ConsoleNav/ConsoleNav.mjs +3 -3
  564. package/es/dashboard/ConsoleNav/ConsoleNav.mjs.map +1 -1
  565. package/es/dashboard/ConsoleNav/style.mjs +2 -2
  566. package/es/dashboard/ConsoleNav/style.mjs.map +1 -1
  567. package/es/dashboard/ConsoleShell/style.mjs +1 -1
  568. package/es/dashboard/ConsoleShell/style.mjs.map +1 -1
  569. package/es/dashboard/FilterSidebar/FilterSidebar.mjs +1 -1
  570. package/es/dashboard/FilterSidebar/style.mjs +2 -2
  571. package/es/dashboard/FilterSidebar/style.mjs.map +1 -1
  572. package/es/dashboard/FilterStrip/style.mjs +1 -1
  573. package/es/dashboard/FilterStrip/style.mjs.map +1 -1
  574. package/es/dashboard/MetricStrip/MetricCell.mjs +25 -14
  575. package/es/dashboard/MetricStrip/MetricCell.mjs.map +1 -1
  576. package/es/dashboard/MetricStrip/style.mjs +14 -1
  577. package/es/dashboard/MetricStrip/style.mjs.map +1 -1
  578. package/es/dashboard/MetricStrip/type.d.mts +2 -0
  579. package/es/dashboard/PageSkeleton/style.mjs +2 -1
  580. package/es/dashboard/PageSkeleton/style.mjs.map +1 -1
  581. package/es/dashboard/StatCard/StatCard.d.mts +1 -1
  582. package/es/dashboard/StatCard/StatCard.mjs +2 -1
  583. package/es/dashboard/StatCard/StatCard.mjs.map +1 -1
  584. package/es/dashboard/StatCard/type.d.mts +2 -0
  585. package/es/dashboard/Surface/Surface.mjs +3 -4
  586. package/es/dashboard/Surface/Surface.mjs.map +1 -1
  587. package/es/dashboard/Surface/link.mjs +1 -1
  588. package/es/dashboard/Surface/link.mjs.map +1 -1
  589. package/es/dashboard/Surface/style.mjs +15 -14
  590. package/es/dashboard/Surface/style.mjs.map +1 -1
  591. package/es/dashboard/index.mjs +2 -2
  592. package/es/eslint/noBaseUiSubpath.mjs +2 -1
  593. package/es/eslint/noBaseUiSubpath.mjs.map +1 -1
  594. package/es/i18n/resources/en/colorPicker.d.mts +5 -0
  595. package/es/i18n/resources/en/colorPicker.mjs +5 -0
  596. package/es/i18n/resources/en/colorPicker.mjs.map +1 -1
  597. package/es/i18n/resources/en/datePicker.d.mts +54 -0
  598. package/es/i18n/resources/en/datePicker.mjs +55 -1
  599. package/es/i18n/resources/en/datePicker.mjs.map +1 -1
  600. package/es/i18n/resources/en/index.d.mts +4 -3
  601. package/es/i18n/resources/en/index.mjs +3 -1
  602. package/es/i18n/resources/en/index.mjs.map +1 -1
  603. package/es/i18n/resources/en/table.d.mts +23 -0
  604. package/es/i18n/resources/en/table.mjs +24 -0
  605. package/es/i18n/resources/en/table.mjs.map +1 -0
  606. package/es/i18n/resources/zhCn/colorPicker.d.mts +5 -0
  607. package/es/i18n/resources/zhCn/colorPicker.mjs +5 -0
  608. package/es/i18n/resources/zhCn/colorPicker.mjs.map +1 -1
  609. package/es/i18n/resources/zhCn/datePicker.d.mts +54 -0
  610. package/es/i18n/resources/zhCn/datePicker.mjs +55 -1
  611. package/es/i18n/resources/zhCn/datePicker.mjs.map +1 -1
  612. package/es/i18n/resources/zhCn/index.d.mts +4 -3
  613. package/es/i18n/resources/zhCn/index.mjs +4 -2
  614. package/es/i18n/resources/zhCn/index.mjs.map +1 -1
  615. package/es/i18n/resources/zhCn/table.d.mts +23 -0
  616. package/es/i18n/resources/zhCn/table.mjs +24 -0
  617. package/es/i18n/resources/zhCn/table.mjs.map +1 -0
  618. package/es/i18n/types.d.mts +3 -2
  619. package/es/index.d.mts +13 -6
  620. package/es/index.mjs +10 -6
  621. package/es/internal/overflow/OverflowList.mjs +71 -0
  622. package/es/internal/overflow/OverflowList.mjs.map +1 -0
  623. package/es/mdx/Callout/index.mjs +2 -2
  624. package/es/mdx/Callout/index.mjs.map +1 -1
  625. package/es/mdx/Cards/Card.mjs +2 -2
  626. package/es/mdx/Cards/Card.mjs.map +1 -1
  627. package/es/mdx/Cards/index.mjs +2 -2
  628. package/es/mdx/Cards/index.mjs.map +1 -1
  629. package/es/mdx/Mdx/index.mjs +2 -2
  630. package/es/mdx/Mdx/index.mjs.map +1 -1
  631. package/es/mdx/Steps/index.mjs +2 -2
  632. package/es/mdx/Steps/index.mjs.map +1 -1
  633. package/es/mdx/mdxComponents/Pre.mjs +5 -5
  634. package/es/mdx/mdxComponents/Pre.mjs.map +1 -1
  635. package/es/storybook/StoryBook/style.mjs +2 -0
  636. package/es/storybook/StoryBook/style.mjs.map +1 -1
  637. package/es/style.css +2966 -957
  638. package/es/styles/stylex/props.mjs +2 -2
  639. package/es/styles/stylex/props.mjs.map +1 -1
  640. package/es/styles/theme/themeCss.mjs +15 -0
  641. package/es/styles/theme/themeCss.mjs.map +1 -1
  642. package/es/theme.css +8 -0
  643. package/package.json +6 -1
  644. package/es/DatePicker/CalendarPanel.mjs +0 -189
  645. package/es/DatePicker/CalendarPanel.mjs.map +0 -1
  646. package/es/DatePicker/PickerShell.mjs +0 -43
  647. package/es/DatePicker/PickerShell.mjs.map +0 -1
  648. package/es/DatePicker/calendar.d.mts +0 -4
  649. package/es/DatePicker/calendar.mjs +0 -46
  650. package/es/DatePicker/calendar.mjs.map +0 -1
  651. package/es/Table/FilterMenu.mjs +0 -45
  652. package/es/Table/FilterMenu.mjs.map +0 -1
  653. package/es/Table/TableBody.mjs +0 -67
  654. package/es/Table/TableBody.mjs.map +0 -1
  655. package/es/Table/TableHead.mjs +0 -58
  656. package/es/Table/TableHead.mjs.map +0 -1
  657. package/es/Table/features.mjs +0 -12
  658. package/es/Table/features.mjs.map +0 -1
  659. package/es/Table/fixedOffsets.mjs +0 -29
  660. package/es/Table/fixedOffsets.mjs.map +0 -1
  661. package/es/Table/marker.stylex.mjs +0 -9
  662. package/es/Table/marker.stylex.mjs.map +0 -1
  663. package/es/Table/toColumnDefs.mjs +0 -26
  664. package/es/Table/toColumnDefs.mjs.map +0 -1
  665. package/es/Table/useTableState.mjs +0 -99
  666. package/es/Table/useTableState.mjs.map +0 -1
@@ -0,0 +1,302 @@
1
+ import { useEventCallback } from "../../hooks/useEventCallback.mjs";
2
+ import { SELECTION_ALL, SELECTION_INVERT, SELECTION_NONE, conductCheck, convertDataToEntities, flattenData, selectRange } from "./selectionUtils.mjs";
3
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
4
+ //#region src/Table/pipeline/useSelection.ts
5
+ const EMPTY_KEYS = [];
6
+ const shallowEqual = (a, b) => {
7
+ if (a === b) return true;
8
+ if (!a || !b) return false;
9
+ const keysA = Object.keys(a);
10
+ if (keysA.length !== Object.keys(b).length) return false;
11
+ return keysA.every((key) => Object.is(a[key], b[key]));
12
+ };
13
+ const useStableCheckboxProps = (flattedData, getRowKey, getCheckboxProps) => {
14
+ const previous = useRef(/* @__PURE__ */ new Map());
15
+ return useMemo(() => {
16
+ const next = /* @__PURE__ */ new Map();
17
+ flattedData.forEach((record, index) => {
18
+ next.set(getRowKey(record, index), getCheckboxProps?.(record) || {});
19
+ });
20
+ const prev = previous.current;
21
+ if (prev.size === next.size && [...next].every(([key, props]) => prev.has(key) && shallowEqual(prev.get(key), props))) return prev;
22
+ previous.current = next;
23
+ return next;
24
+ }, [
25
+ flattedData,
26
+ getRowKey,
27
+ getCheckboxProps
28
+ ]);
29
+ };
30
+ const useSelection = (config, rowSelection) => {
31
+ const { checkStrictly = true, defaultSelectedRowKeys, getCheckboxProps, hideSelectAll, onChange: onSelectionChange, onSelect, onSelectAll, onSelectInvert, onSelectMultiple, onSelectNone, preserveSelectedRowKeys, selectedRowKeys, selections, type: selectionType = "checkbox" } = rowSelection || {};
32
+ const { childrenColumnName, data, getRecordByKey, getRowKey, locale, pageData } = config;
33
+ const [innerKeys, setInnerKeys] = useState(defaultSelectedRowKeys || EMPTY_KEYS);
34
+ const mergedKeys = selectedRowKeys ?? innerKeys;
35
+ const prevIndexRef = useRef(null);
36
+ const preserveRecordsRef = useRef(/* @__PURE__ */ new Map());
37
+ const updatePreserveRecordsCache = useCallback((keys) => {
38
+ if (!preserveSelectedRowKeys) return;
39
+ const next = /* @__PURE__ */ new Map();
40
+ keys.forEach((key) => {
41
+ let record = getRecordByKey(key);
42
+ if (record === void 0 && preserveRecordsRef.current.has(key)) record = preserveRecordsRef.current.get(key);
43
+ next.set(key, record);
44
+ });
45
+ preserveRecordsRef.current = next;
46
+ }, [getRecordByKey, preserveSelectedRowKeys]);
47
+ useEffect(() => {
48
+ updatePreserveRecordsCache(mergedKeys);
49
+ }, [mergedKeys, updatePreserveRecordsCache]);
50
+ const flattedData = useMemo(() => flattenData(childrenColumnName, pageData), [childrenColumnName, pageData]);
51
+ const keyEntities = useMemo(() => {
52
+ if (checkStrictly) return null;
53
+ let convertData = data;
54
+ if (preserveSelectedRowKeys) {
55
+ const keySet = new Set(flattedData.map((record) => getRowKey(record)));
56
+ const preserved = [...preserveRecordsRef.current].filter(([key, record]) => !keySet.has(key) && record !== void 0).map(([, record]) => record);
57
+ convertData = [...convertData, ...preserved];
58
+ }
59
+ return convertDataToEntities(convertData, getRowKey, childrenColumnName);
60
+ }, [
61
+ data,
62
+ getRowKey,
63
+ checkStrictly,
64
+ childrenColumnName,
65
+ preserveSelectedRowKeys,
66
+ flattedData
67
+ ]);
68
+ const checkboxPropsMap = useStableCheckboxProps(flattedData, getRowKey, getCheckboxProps);
69
+ const isCheckboxDisabled = useCallback((record) => {
70
+ const key = getRowKey(record);
71
+ const props = checkboxPropsMap.has(key) ? checkboxPropsMap.get(key) : getCheckboxProps?.(record);
72
+ return Boolean(props?.disabled);
73
+ }, [
74
+ checkboxPropsMap,
75
+ getRowKey,
76
+ getCheckboxProps
77
+ ]);
78
+ const [derivedSelectedKeys, derivedHalfSelectedKeys] = useMemo(() => {
79
+ if (checkStrictly || !keyEntities) return [mergedKeys, []];
80
+ const { checkedKeys, halfCheckedKeys } = conductCheck(mergedKeys, true, keyEntities, isCheckboxDisabled);
81
+ return [checkedKeys, halfCheckedKeys];
82
+ }, [
83
+ mergedKeys,
84
+ checkStrictly,
85
+ keyEntities,
86
+ isCheckboxDisabled
87
+ ]);
88
+ const selectedKeySet = useMemo(() => new Set(selectionType === "radio" ? derivedSelectedKeys.slice(0, 1) : derivedSelectedKeys), [derivedSelectedKeys, selectionType]);
89
+ const halfSelectedKeySet = useMemo(() => new Set(selectionType === "radio" ? [] : derivedHalfSelectedKeys), [derivedHalfSelectedKeys, selectionType]);
90
+ const enabled = Boolean(rowSelection);
91
+ const [prevEnabled, setPrevEnabled] = useState(enabled);
92
+ if (prevEnabled !== enabled) {
93
+ setPrevEnabled(enabled);
94
+ if (!enabled) setInnerKeys(EMPTY_KEYS);
95
+ }
96
+ const setSelectedKeys = (keys, method) => {
97
+ let availableKeys;
98
+ let records;
99
+ updatePreserveRecordsCache(keys);
100
+ if (preserveSelectedRowKeys) {
101
+ availableKeys = keys;
102
+ records = keys.map((key) => preserveRecordsRef.current.get(key));
103
+ } else {
104
+ availableKeys = [];
105
+ records = [];
106
+ keys.forEach((key) => {
107
+ const record = getRecordByKey(key);
108
+ if (record !== void 0) {
109
+ availableKeys.push(key);
110
+ records.push(record);
111
+ }
112
+ });
113
+ }
114
+ setInnerKeys(availableKeys);
115
+ onSelectionChange?.(availableKeys, records, { type: method });
116
+ };
117
+ const triggerSingleSelection = (key, selected, keys, event) => {
118
+ if (onSelect) {
119
+ const rows = keys.map((item) => getRecordByKey(item));
120
+ onSelect(getRecordByKey(key), selected, rows, event);
121
+ }
122
+ setSelectedKeys(keys, "single");
123
+ };
124
+ const recordKeys = useMemo(() => {
125
+ const keys = [];
126
+ flattedData.forEach((record, index) => {
127
+ const key = getRowKey(record, index);
128
+ if (!checkboxPropsMap.get(key)?.disabled) keys.push(key);
129
+ });
130
+ return keys;
131
+ }, [
132
+ flattedData,
133
+ getRowKey,
134
+ checkboxPropsMap
135
+ ]);
136
+ const summary = useMemo(() => {
137
+ const checkedCurrentAll = recordKeys.every((key) => selectedKeySet.has(key));
138
+ const checkedCurrentSome = recordKeys.some((key) => selectedKeySet.has(key));
139
+ const disabledItems = [];
140
+ flattedData.forEach((record, index) => {
141
+ const key = getRowKey(record, index);
142
+ if (checkboxPropsMap.get(key)?.disabled) disabledItems.push(selectedKeySet.has(key));
143
+ });
144
+ const allDisabled = disabledItems.length > 0 && disabledItems.length === flattedData.length;
145
+ const allDisabledAndChecked = allDisabled && disabledItems.every(Boolean);
146
+ const allDisabledSomeChecked = allDisabled && disabledItems.some(Boolean);
147
+ return {
148
+ checked: allDisabled ? allDisabledAndChecked : flattedData.length > 0 && checkedCurrentAll,
149
+ disabled: flattedData.length === 0 || allDisabled,
150
+ indeterminate: allDisabled ? !allDisabledAndChecked && allDisabledSomeChecked : !checkedCurrentAll && checkedCurrentSome
151
+ };
152
+ }, [
153
+ recordKeys,
154
+ selectedKeySet,
155
+ flattedData,
156
+ getRowKey,
157
+ checkboxPropsMap
158
+ ]);
159
+ const selectAll = useEventCallback(() => {
160
+ const keySet = new Set(selectedKeySet);
161
+ const checkedCurrentAll = recordKeys.every((key) => keySet.has(key));
162
+ const changeKeys = [];
163
+ if (checkedCurrentAll) recordKeys.forEach((key) => {
164
+ keySet.delete(key);
165
+ changeKeys.push(key);
166
+ });
167
+ else recordKeys.forEach((key) => {
168
+ if (!keySet.has(key)) {
169
+ keySet.add(key);
170
+ changeKeys.push(key);
171
+ }
172
+ });
173
+ const keys = [...keySet];
174
+ onSelectAll?.(!checkedCurrentAll, keys.map((key) => getRecordByKey(key)), changeKeys.map((key) => getRecordByKey(key)));
175
+ setSelectedKeys(keys, "all");
176
+ prevIndexRef.current = null;
177
+ });
178
+ const selectRadio = useEventCallback((key, event) => {
179
+ if (!selectedKeySet.has(key)) triggerSingleSelection(key, true, [key], event);
180
+ });
181
+ const toggleCheckbox = useEventCallback((key, checked, nativeEvent) => {
182
+ const keySet = new Set(selectedKeySet);
183
+ const shiftKey = Boolean(nativeEvent?.shiftKey);
184
+ const currentIndex = recordKeys.indexOf(key);
185
+ const isMultiple = selectedKeySet.size > 0 && recordKeys.some((item) => selectedKeySet.has(item));
186
+ if (shiftKey && checkStrictly && isMultiple) {
187
+ const { changedKeys, nextAnchor } = selectRange(prevIndexRef.current, currentIndex, recordKeys, keySet);
188
+ const keys = [...keySet];
189
+ onSelectMultiple?.(!checked, keys.map((item) => getRecordByKey(item)), changedKeys.map((item) => getRecordByKey(item)));
190
+ setSelectedKeys(keys, "multiple");
191
+ prevIndexRef.current = nextAnchor;
192
+ return;
193
+ }
194
+ if (checkStrictly || !keyEntities) {
195
+ const keys = checked ? derivedSelectedKeys.filter((item) => item !== key) : [...derivedSelectedKeys.filter((item) => item !== key), key];
196
+ triggerSingleSelection(key, !checked, keys, nativeEvent);
197
+ } else {
198
+ const { checkedKeys, halfCheckedKeys } = conductCheck([...derivedSelectedKeys, key], true, keyEntities, isCheckboxDisabled);
199
+ let nextKeys = checkedKeys;
200
+ if (checked) {
201
+ const tempKeySet = new Set(checkedKeys);
202
+ tempKeySet.delete(key);
203
+ nextKeys = conductCheck([...tempKeySet], {
204
+ checked: false,
205
+ halfCheckedKeys
206
+ }, keyEntities, isCheckboxDisabled).checkedKeys;
207
+ }
208
+ triggerSingleSelection(key, !checked, nextKeys, nativeEvent);
209
+ }
210
+ prevIndexRef.current = checked ? null : currentIndex;
211
+ });
212
+ const runPreset = useEventCallback((preset) => {
213
+ if (preset === "SELECT_ALL") {
214
+ const keys = [];
215
+ data.forEach((record, index) => {
216
+ const key = getRowKey(record, index);
217
+ if (!isCheckboxDisabled(record) || selectedKeySet.has(key)) keys.push(key);
218
+ });
219
+ setSelectedKeys(keys, "all");
220
+ } else if (preset === "SELECT_INVERT") {
221
+ const keySet = new Set(selectedKeySet);
222
+ pageData.forEach((record, index) => {
223
+ const key = getRowKey(record, index);
224
+ if (checkboxPropsMap.get(key)?.disabled) return;
225
+ if (keySet.has(key)) keySet.delete(key);
226
+ else keySet.add(key);
227
+ });
228
+ const keys = [...keySet];
229
+ onSelectInvert?.(keys);
230
+ setSelectedKeys(keys, "invert");
231
+ } else if (preset === "SELECT_NONE") {
232
+ onSelectNone?.();
233
+ setSelectedKeys([...selectedKeySet].filter((key) => checkboxPropsMap.get(key)?.disabled), "none");
234
+ }
235
+ prevIndexRef.current = null;
236
+ });
237
+ const runCustom = useEventCallback((item) => {
238
+ item.onSelect?.(recordKeys);
239
+ prevIndexRef.current = null;
240
+ });
241
+ const mergedSelections = useMemo(() => {
242
+ if (!selections || hideSelectAll || selectionType === "radio") return null;
243
+ return (selections === true ? [
244
+ SELECTION_ALL,
245
+ SELECTION_INVERT,
246
+ SELECTION_NONE
247
+ ] : selections).map((selection, index) => {
248
+ if (selection === "SELECT_ALL") return {
249
+ key: "all",
250
+ onSelect: () => runPreset(SELECTION_ALL),
251
+ text: locale.selectionAll
252
+ };
253
+ if (selection === "SELECT_INVERT") return {
254
+ key: "invert",
255
+ onSelect: () => runPreset(SELECTION_INVERT),
256
+ text: locale.selectInvert
257
+ };
258
+ if (selection === "SELECT_NONE") return {
259
+ key: "none",
260
+ onSelect: () => runPreset(SELECTION_NONE),
261
+ text: locale.selectNone
262
+ };
263
+ return {
264
+ key: selection.key ?? index,
265
+ onSelect: () => runCustom(selection),
266
+ text: selection.text
267
+ };
268
+ });
269
+ }, [
270
+ selections,
271
+ hideSelectAll,
272
+ selectionType,
273
+ runPreset,
274
+ runCustom,
275
+ locale.selectionAll,
276
+ locale.selectInvert,
277
+ locale.selectNone
278
+ ]);
279
+ const clear = useEventCallback(() => setSelectedKeys(EMPTY_KEYS, "none"));
280
+ return {
281
+ actions: useMemo(() => ({
282
+ clear,
283
+ selectAll,
284
+ selectRadio,
285
+ toggleCheckbox
286
+ }), [
287
+ clear,
288
+ selectAll,
289
+ selectRadio,
290
+ toggleCheckbox
291
+ ]),
292
+ checkboxPropsMap,
293
+ halfSelectedKeySet,
294
+ mergedSelections,
295
+ selectedKeySet,
296
+ summary
297
+ };
298
+ };
299
+ //#endregion
300
+ export { useSelection };
301
+
302
+ //# sourceMappingURL=useSelection.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSelection.mjs","names":[],"sources":["../../../src/Table/pipeline/useSelection.ts"],"sourcesContent":["import { type Key, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useEventCallback } from '@/hooks/useEventCallback';\n\nimport type {\n TableLocale,\n TableRowSelection,\n TableRowSelectionCheckboxProps,\n TableRowSelectMethod,\n TableSelectionItem,\n} from '../type';\nimport {\n conductCheck,\n convertDataToEntities,\n flattenData,\n SELECTION_ALL,\n SELECTION_INVERT,\n SELECTION_NONE,\n type SelectionEntities,\n selectRange,\n} from './selectionUtils';\n\nconst EMPTY_KEYS: Key[] = [];\n\nexport interface SelectionConfig<T> {\n childrenColumnName: string;\n data: readonly T[];\n expandType: 'nest' | 'row' | null;\n getRecordByKey: (key: Key) => T | undefined;\n getRowKey: (record: T, index?: number) => Key;\n locale: TableLocale;\n pageData: readonly T[];\n}\n\nexport interface SelectionSummaryState {\n checked: boolean;\n disabled: boolean;\n indeterminate: boolean;\n}\n\nexport interface MergedSelectionItem {\n key: Key;\n onSelect: () => void;\n text: TableSelectionItem['text'];\n}\n\nexport interface SelectionActions {\n clear: () => void;\n selectAll: () => void;\n selectRadio: (key: Key, event: Event) => void;\n toggleCheckbox: (key: Key, checked: boolean, event: Event | undefined) => void;\n}\n\nconst shallowEqual = (a: object | undefined, b: object | undefined) => {\n if (a === b) return true;\n if (!a || !b) return false;\n const keysA = Object.keys(a);\n if (keysA.length !== Object.keys(b).length) return false;\n return keysA.every((key) => Object.is((a as any)[key], (b as any)[key]));\n};\n\nconst useStableCheckboxProps = <T>(\n flattedData: readonly T[],\n getRowKey: (record: T, index?: number) => Key,\n getCheckboxProps: TableRowSelection<T>['getCheckboxProps'],\n) => {\n const previous = useRef<Map<Key, TableRowSelectionCheckboxProps>>(new Map());\n return useMemo(() => {\n const next = new Map<Key, TableRowSelectionCheckboxProps>();\n flattedData.forEach((record, index) => {\n next.set(getRowKey(record, index), getCheckboxProps?.(record) || {});\n });\n const prev = previous.current;\n const same =\n prev.size === next.size &&\n [...next].every(([key, props]) => prev.has(key) && shallowEqual(prev.get(key), props));\n if (same) return prev;\n previous.current = next;\n return next;\n }, [flattedData, getRowKey, getCheckboxProps]);\n};\n\nexport const useSelection = <T>(\n config: SelectionConfig<T>,\n rowSelection: TableRowSelection<T> | undefined,\n) => {\n const {\n checkStrictly = true,\n defaultSelectedRowKeys,\n getCheckboxProps,\n hideSelectAll,\n onChange: onSelectionChange,\n onSelect,\n onSelectAll,\n onSelectInvert,\n onSelectMultiple,\n onSelectNone,\n preserveSelectedRowKeys,\n selectedRowKeys,\n selections,\n type: selectionType = 'checkbox',\n } = rowSelection || {};\n const { childrenColumnName, data, getRecordByKey, getRowKey, locale, pageData } = config;\n\n const [innerKeys, setInnerKeys] = useState<Key[]>(defaultSelectedRowKeys || EMPTY_KEYS);\n const mergedKeys = selectedRowKeys ?? innerKeys;\n\n const prevIndexRef = useRef<number | null>(null);\n\n const preserveRecordsRef = useRef(new Map<Key, T | undefined>());\n const updatePreserveRecordsCache = useCallback(\n (keys: readonly Key[]) => {\n if (!preserveSelectedRowKeys) return;\n const next = new Map<Key, T | undefined>();\n keys.forEach((key) => {\n let record = getRecordByKey(key);\n if (record === undefined && preserveRecordsRef.current.has(key)) {\n record = preserveRecordsRef.current.get(key);\n }\n next.set(key, record);\n });\n preserveRecordsRef.current = next;\n },\n [getRecordByKey, preserveSelectedRowKeys],\n );\n\n useEffect(() => {\n updatePreserveRecordsCache(mergedKeys);\n }, [mergedKeys, updatePreserveRecordsCache]);\n\n const flattedData = useMemo(\n () => flattenData(childrenColumnName, pageData),\n [childrenColumnName, pageData],\n );\n\n const keyEntities = useMemo((): SelectionEntities<T> | null => {\n if (checkStrictly) return null;\n let convertData = data;\n if (preserveSelectedRowKeys) {\n // Records kept from other pages join the tree, unless they are on this page already.\n const keySet = new Set(flattedData.map((record) => getRowKey(record)));\n const preserved = [...preserveRecordsRef.current]\n .filter(([key, record]) => !keySet.has(key) && record !== undefined)\n .map(([, record]) => record as T);\n convertData = [...convertData, ...preserved];\n }\n return convertDataToEntities(convertData, getRowKey, childrenColumnName);\n }, [data, getRowKey, checkStrictly, childrenColumnName, preserveSelectedRowKeys, flattedData]);\n\n const checkboxPropsMap = useStableCheckboxProps(flattedData, getRowKey, getCheckboxProps);\n\n const isCheckboxDisabled = useCallback(\n (record: T) => {\n const key = getRowKey(record);\n const props = checkboxPropsMap.has(key)\n ? checkboxPropsMap.get(key)\n : getCheckboxProps?.(record);\n return Boolean(props?.disabled);\n },\n [checkboxPropsMap, getRowKey, getCheckboxProps],\n );\n\n const [derivedSelectedKeys, derivedHalfSelectedKeys] = useMemo((): [Key[], Key[]] => {\n if (checkStrictly || !keyEntities) return [mergedKeys, []];\n const { checkedKeys, halfCheckedKeys } = conductCheck(\n mergedKeys,\n true,\n keyEntities,\n isCheckboxDisabled,\n );\n return [checkedKeys, halfCheckedKeys];\n }, [mergedKeys, checkStrictly, keyEntities, isCheckboxDisabled]);\n\n const selectedKeySet = useMemo(\n () =>\n new Set(selectionType === 'radio' ? derivedSelectedKeys.slice(0, 1) : derivedSelectedKeys),\n [derivedSelectedKeys, selectionType],\n );\n const halfSelectedKeySet = useMemo(\n () => new Set(selectionType === 'radio' ? [] : derivedHalfSelectedKeys),\n [derivedHalfSelectedKeys, selectionType],\n );\n\n const enabled = Boolean(rowSelection);\n const [prevEnabled, setPrevEnabled] = useState(enabled);\n if (prevEnabled !== enabled) {\n setPrevEnabled(enabled);\n if (!enabled) setInnerKeys(EMPTY_KEYS);\n }\n\n const setSelectedKeys = (keys: Key[], method: TableRowSelectMethod) => {\n let availableKeys: Key[];\n let records: T[];\n updatePreserveRecordsCache(keys);\n if (preserveSelectedRowKeys) {\n availableKeys = keys;\n records = keys.map((key) => preserveRecordsRef.current.get(key) as T);\n } else {\n availableKeys = [];\n records = [];\n keys.forEach((key) => {\n const record = getRecordByKey(key);\n if (record !== undefined) {\n availableKeys.push(key);\n records.push(record);\n }\n });\n }\n setInnerKeys(availableKeys);\n onSelectionChange?.(availableKeys, records, { type: method });\n };\n\n const triggerSingleSelection = (key: Key, selected: boolean, keys: Key[], event: Event) => {\n if (onSelect) {\n const rows = keys.map((item) => getRecordByKey(item) as T);\n onSelect(getRecordByKey(key) as T, selected, rows, event);\n }\n setSelectedKeys(keys, 'single');\n };\n\n const recordKeys = useMemo(() => {\n const keys: Key[] = [];\n flattedData.forEach((record, index) => {\n const key = getRowKey(record, index);\n if (!checkboxPropsMap.get(key)?.disabled) keys.push(key);\n });\n return keys;\n }, [flattedData, getRowKey, checkboxPropsMap]);\n\n const summary = useMemo((): SelectionSummaryState => {\n const checkedCurrentAll = recordKeys.every((key) => selectedKeySet.has(key));\n const checkedCurrentSome = recordKeys.some((key) => selectedKeySet.has(key));\n const disabledItems: boolean[] = [];\n flattedData.forEach((record, index) => {\n const key = getRowKey(record, index);\n if (checkboxPropsMap.get(key)?.disabled) disabledItems.push(selectedKeySet.has(key));\n });\n const allDisabled = disabledItems.length > 0 && disabledItems.length === flattedData.length;\n const allDisabledAndChecked = allDisabled && disabledItems.every(Boolean);\n const allDisabledSomeChecked = allDisabled && disabledItems.some(Boolean);\n return {\n checked: allDisabled ? allDisabledAndChecked : flattedData.length > 0 && checkedCurrentAll,\n disabled: flattedData.length === 0 || allDisabled,\n indeterminate: allDisabled\n ? !allDisabledAndChecked && allDisabledSomeChecked\n : !checkedCurrentAll && checkedCurrentSome,\n };\n }, [recordKeys, selectedKeySet, flattedData, getRowKey, checkboxPropsMap]);\n\n const selectAll = useEventCallback(() => {\n const keySet = new Set(selectedKeySet);\n const checkedCurrentAll = recordKeys.every((key) => keySet.has(key));\n const changeKeys: Key[] = [];\n if (checkedCurrentAll) {\n recordKeys.forEach((key) => {\n keySet.delete(key);\n changeKeys.push(key);\n });\n } else {\n recordKeys.forEach((key) => {\n if (!keySet.has(key)) {\n keySet.add(key);\n changeKeys.push(key);\n }\n });\n }\n const keys = [...keySet];\n onSelectAll?.(\n !checkedCurrentAll,\n keys.map((key) => getRecordByKey(key) as T),\n changeKeys.map((key) => getRecordByKey(key) as T),\n );\n setSelectedKeys(keys, 'all');\n prevIndexRef.current = null;\n });\n\n const selectRadio = useEventCallback((key: Key, event: Event) => {\n if (!selectedKeySet.has(key)) triggerSingleSelection(key, true, [key], event);\n });\n\n const toggleCheckbox = useEventCallback(\n (key: Key, checked: boolean, nativeEvent: Event | undefined) => {\n const keySet = new Set(selectedKeySet);\n const shiftKey = Boolean((nativeEvent as MouseEvent | undefined)?.shiftKey);\n const currentIndex = recordKeys.indexOf(key);\n const isMultiple =\n selectedKeySet.size > 0 && recordKeys.some((item) => selectedKeySet.has(item));\n\n if (shiftKey && checkStrictly && isMultiple) {\n const { changedKeys, nextAnchor } = selectRange(\n prevIndexRef.current,\n currentIndex,\n recordKeys,\n keySet,\n );\n const keys = [...keySet];\n onSelectMultiple?.(\n !checked,\n keys.map((item) => getRecordByKey(item) as T),\n changedKeys.map((item) => getRecordByKey(item) as T),\n );\n setSelectedKeys(keys, 'multiple');\n prevIndexRef.current = nextAnchor;\n return;\n }\n\n if (checkStrictly || !keyEntities) {\n const keys = checked\n ? derivedSelectedKeys.filter((item) => item !== key)\n : [...derivedSelectedKeys.filter((item) => item !== key), key];\n triggerSingleSelection(key, !checked, keys, nativeEvent as Event);\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck(\n [...derivedSelectedKeys, key],\n true,\n keyEntities,\n isCheckboxDisabled,\n );\n let nextKeys = checkedKeys;\n if (checked) {\n const tempKeySet = new Set(checkedKeys);\n tempKeySet.delete(key);\n nextKeys = conductCheck(\n [...tempKeySet],\n { checked: false, halfCheckedKeys },\n keyEntities,\n isCheckboxDisabled,\n ).checkedKeys;\n }\n triggerSingleSelection(key, !checked, nextKeys, nativeEvent as Event);\n }\n prevIndexRef.current = checked ? null : currentIndex;\n },\n );\n\n const runPreset = useEventCallback((preset: string) => {\n if (preset === SELECTION_ALL) {\n const keys: Key[] = [];\n data.forEach((record, index) => {\n const key = getRowKey(record, index);\n if (!isCheckboxDisabled(record) || selectedKeySet.has(key)) keys.push(key);\n });\n setSelectedKeys(keys, 'all');\n } else if (preset === SELECTION_INVERT) {\n const keySet = new Set(selectedKeySet);\n pageData.forEach((record, index) => {\n const key = getRowKey(record, index);\n if (checkboxPropsMap.get(key)?.disabled) return;\n if (keySet.has(key)) keySet.delete(key);\n else keySet.add(key);\n });\n const keys = [...keySet];\n onSelectInvert?.(keys);\n setSelectedKeys(keys, 'invert');\n } else if (preset === SELECTION_NONE) {\n onSelectNone?.();\n setSelectedKeys(\n [...selectedKeySet].filter((key) => checkboxPropsMap.get(key)?.disabled),\n 'none',\n );\n }\n prevIndexRef.current = null;\n });\n\n const runCustom = useEventCallback((item: TableSelectionItem) => {\n item.onSelect?.(recordKeys);\n prevIndexRef.current = null;\n });\n\n const mergedSelections = useMemo((): MergedSelectionItem[] | null => {\n if (!selections || hideSelectAll || selectionType === 'radio') return null;\n const list =\n selections === true ? [SELECTION_ALL, SELECTION_INVERT, SELECTION_NONE] : selections;\n return list.map((selection, index) => {\n if (selection === SELECTION_ALL) {\n return { key: 'all', onSelect: () => runPreset(SELECTION_ALL), text: locale.selectionAll };\n }\n if (selection === SELECTION_INVERT) {\n return {\n key: 'invert',\n onSelect: () => runPreset(SELECTION_INVERT),\n text: locale.selectInvert,\n };\n }\n if (selection === SELECTION_NONE) {\n return { key: 'none', onSelect: () => runPreset(SELECTION_NONE), text: locale.selectNone };\n }\n return {\n key: selection.key ?? index,\n onSelect: () => runCustom(selection),\n text: selection.text,\n };\n });\n }, [\n selections,\n hideSelectAll,\n selectionType,\n runPreset,\n runCustom,\n locale.selectionAll,\n locale.selectInvert,\n locale.selectNone,\n ]);\n\n const clear = useEventCallback(() => setSelectedKeys(EMPTY_KEYS, 'none'));\n\n const actions = useMemo(\n (): SelectionActions => ({ clear, selectAll, selectRadio, toggleCheckbox }),\n [clear, selectAll, selectRadio, toggleCheckbox],\n );\n\n return {\n actions,\n checkboxPropsMap,\n halfSelectedKeySet,\n mergedSelections,\n selectedKeySet,\n summary,\n };\n};\n"],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ import { getColumnId, getColumnPos, isColumnGroup } from "./columnUtils.mjs";
2
+ import { useMemo } from "react";
3
+ //#region src/Table/pipeline/useSorter.ts
4
+ const DEFAULT_SORT_DIRECTIONS = ["ascend", "descend"];
5
+ const isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
6
+ const getMultiplePriority = (column) => {
7
+ const { sorter } = column;
8
+ return isPlainObject(sorter) && typeof sorter.multiple === "number" ? sorter.multiple : false;
9
+ };
10
+ const getSortFunction = (sorter) => {
11
+ if (typeof sorter === "function") return sorter;
12
+ if (isPlainObject(sorter) && typeof sorter.compare === "function") return sorter.compare;
13
+ return false;
14
+ };
15
+ const getNextSortOrder = (sortDirections, current) => {
16
+ if (!current) return sortDirections[0];
17
+ return sortDirections[sortDirections.indexOf(current) + 1];
18
+ };
19
+ const collectSortStates = (columns, init, parentPos) => {
20
+ const states = [];
21
+ const push = (column, pos, sortOrder) => states.push({
22
+ column,
23
+ key: getColumnId(column, pos),
24
+ multiplePriority: getMultiplePriority(column),
25
+ sortOrder
26
+ });
27
+ columns.forEach((column, index) => {
28
+ const pos = getColumnPos(index, parentPos);
29
+ if (isColumnGroup(column)) {
30
+ if ("sortOrder" in column) push(column, pos, column.sortOrder);
31
+ states.push(...collectSortStates(column.children, init, pos));
32
+ } else if (column.sorter) {
33
+ if ("sortOrder" in column) push(column, pos, column.sortOrder);
34
+ else if (init && column.defaultSortOrder) push(column, pos, column.defaultSortOrder);
35
+ }
36
+ });
37
+ return states;
38
+ };
39
+ const collectColumnMap = (columns, map = /* @__PURE__ */ new Map(), parentPos) => {
40
+ columns.forEach((column, index) => {
41
+ const pos = getColumnPos(index, parentPos);
42
+ map.set(getColumnId(column, pos), column);
43
+ if (isColumnGroup(column)) collectColumnMap(column.children, map, pos);
44
+ });
45
+ return map;
46
+ };
47
+ const mergeSortStates = (columns, innerStates) => {
48
+ const controlled = collectSortStates(columns, false);
49
+ if (controlled.length === 0) {
50
+ const columnMap = collectColumnMap(columns);
51
+ return innerStates.filter(({ key }) => columnMap.has(key)).map((state) => ({
52
+ ...state,
53
+ column: columnMap.get(state.key)
54
+ }));
55
+ }
56
+ const result = [];
57
+ let valid = true;
58
+ let multipleMode = null;
59
+ const patch = (state) => result.push(valid ? state : {
60
+ ...state,
61
+ sortOrder: null
62
+ });
63
+ for (const state of controlled) if (multipleMode === null) {
64
+ patch(state);
65
+ if (state.sortOrder) {
66
+ if (state.multiplePriority === false) valid = false;
67
+ else multipleMode = true;
68
+ }
69
+ } else if (multipleMode && state.multiplePriority !== false) patch(state);
70
+ else {
71
+ valid = false;
72
+ patch(state);
73
+ }
74
+ return result;
75
+ };
76
+ const getTriggeredSortStates = (current, next) => {
77
+ if (next.multiplePriority === false || !current.length || current[0].multiplePriority === false) return [next];
78
+ return [...current.filter(({ key }) => key !== next.key), next];
79
+ };
80
+ const stateToInfo = ({ column, key, sortOrder }) => ({
81
+ column,
82
+ columnKey: column.key ?? key,
83
+ field: column.dataIndex,
84
+ order: sortOrder ?? void 0
85
+ });
86
+ const getSorterInfo = (states) => {
87
+ const active = states.filter(({ sortOrder }) => sortOrder).map((state) => stateToInfo(state));
88
+ if (active.length === 0 && states.length) return {
89
+ ...stateToInfo(states.at(-1)),
90
+ column: void 0,
91
+ columnKey: void 0,
92
+ field: void 0,
93
+ order: void 0
94
+ };
95
+ if (active.length <= 1) return active[0] ?? {};
96
+ const [first] = active;
97
+ for (const field of [
98
+ "column",
99
+ "columnKey",
100
+ "field",
101
+ "order"
102
+ ]) Object.defineProperty(active, field, {
103
+ configurable: true,
104
+ enumerable: false,
105
+ value: first[field],
106
+ writable: true
107
+ });
108
+ return active;
109
+ };
110
+ const getSortTitleProps = (states) => {
111
+ const sortColumns = states.map(({ column, sortOrder }) => ({
112
+ column,
113
+ order: sortOrder
114
+ }));
115
+ return {
116
+ sortColumn: sortColumns[0]?.column,
117
+ sortColumns,
118
+ sortOrder: sortColumns[0]?.order
119
+ };
120
+ };
121
+ const sortData = (data, states, childrenColumnName = "children") => {
122
+ const running = states.filter(({ column, sortOrder }) => getSortFunction(column.sorter) && sortOrder).sort((a, b) => b.multiplePriority - a.multiplePriority);
123
+ if (running.length === 0) return [...data];
124
+ return [...data].sort((a, b) => {
125
+ for (const { column, sortOrder } of running) {
126
+ const result = getSortFunction(column.sorter)(a, b, sortOrder);
127
+ if (result !== 0) return sortOrder === "ascend" ? result : -result;
128
+ }
129
+ return 0;
130
+ }).map((record) => {
131
+ const children = record[childrenColumnName];
132
+ return Array.isArray(children) ? {
133
+ ...record,
134
+ [childrenColumnName]: sortData(children, states, childrenColumnName)
135
+ } : record;
136
+ });
137
+ };
138
+ const useSorter = ({ childrenColumnName, data, sortStates }) => useMemo(() => sortData(data, sortStates, childrenColumnName), [
139
+ data,
140
+ sortStates,
141
+ childrenColumnName
142
+ ]);
143
+ //#endregion
144
+ export { DEFAULT_SORT_DIRECTIONS, collectSortStates, getMultiplePriority, getNextSortOrder, getSortFunction, getSortTitleProps, getSorterInfo, getTriggeredSortStates, mergeSortStates, sortData, useSorter };
145
+
146
+ //# sourceMappingURL=useSorter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSorter.mjs","names":[],"sources":["../../../src/Table/pipeline/useSorter.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport type {\n SortOrder,\n TableColumn,\n TableColumnTitleProps,\n TableColumnType,\n TableCompareFn,\n TableMultipleSorterResult,\n TableSorterResult,\n} from '../type';\nimport { getColumnId, getColumnPos, isColumnGroup } from './columnUtils';\n\nexport interface SortState<T = any> {\n column: TableColumn<T>;\n key: string;\n multiplePriority: number | false;\n sortOrder: SortOrder | undefined;\n}\n\nexport const DEFAULT_SORT_DIRECTIONS: SortOrder[] = ['ascend', 'descend'];\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nexport const getMultiplePriority = (column: TableColumn<any>): number | false => {\n const { sorter } = column;\n return isPlainObject(sorter) && typeof sorter.multiple === 'number' ? sorter.multiple : false;\n};\n\nexport const getSortFunction = <T>(sorter: TableColumn<T>['sorter']): TableCompareFn<T> | false => {\n if (typeof sorter === 'function') return sorter;\n if (isPlainObject(sorter) && typeof sorter.compare === 'function') return sorter.compare;\n return false;\n};\n\nexport const getNextSortOrder = (\n sortDirections: readonly SortOrder[],\n current: SortOrder | undefined,\n): SortOrder | undefined => {\n if (!current) return sortDirections[0];\n return sortDirections[sortDirections.indexOf(current) + 1];\n};\n\nexport const collectSortStates = <T>(\n columns: readonly TableColumn<T>[],\n init: boolean,\n parentPos?: string,\n): SortState<T>[] => {\n const states: SortState<T>[] = [];\n const push = (column: TableColumn<T>, pos: string, sortOrder: SortOrder | undefined) =>\n states.push({\n column,\n key: getColumnId(column, pos),\n multiplePriority: getMultiplePriority(column),\n sortOrder,\n });\n\n columns.forEach((column, index) => {\n const pos = getColumnPos(index, parentPos);\n if (isColumnGroup(column)) {\n if ('sortOrder' in column) push(column, pos, column.sortOrder);\n states.push(...collectSortStates(column.children, init, pos));\n } else if (column.sorter) {\n if ('sortOrder' in column) push(column, pos, column.sortOrder);\n else if (init && column.defaultSortOrder) push(column, pos, column.defaultSortOrder);\n }\n });\n return states;\n};\n\nconst collectColumnMap = <T>(\n columns: readonly TableColumn<T>[],\n map = new Map<string, TableColumn<T>>(),\n parentPos?: string,\n) => {\n columns.forEach((column, index) => {\n const pos = getColumnPos(index, parentPos);\n map.set(getColumnId(column, pos), column);\n if (isColumnGroup(column)) collectColumnMap(column.children, map, pos);\n });\n return map;\n};\n\nexport const mergeSortStates = <T>(\n columns: readonly TableColumn<T>[],\n innerStates: readonly SortState<T>[],\n): SortState<T>[] => {\n const controlled = collectSortStates(columns, false);\n\n if (controlled.length === 0) {\n // Drop states of removed columns and pick up the latest column objects (fresh comparators).\n const columnMap = collectColumnMap(columns);\n return innerStates\n .filter(({ key }) => columnMap.has(key))\n .map((state) => ({ ...state, column: columnMap.get(state.key)! }));\n }\n\n const result: SortState<T>[] = [];\n let valid = true;\n let multipleMode: boolean | null = null;\n const patch = (state: SortState<T>) => result.push(valid ? state : { ...state, sortOrder: null });\n\n for (const state of controlled) {\n if (multipleMode === null) {\n patch(state);\n if (state.sortOrder) {\n if (state.multiplePriority === false) valid = false;\n else multipleMode = true;\n }\n } else if (multipleMode && state.multiplePriority !== false) {\n patch(state);\n } else {\n valid = false;\n patch(state);\n }\n }\n return result;\n};\n\nexport const getTriggeredSortStates = <T>(\n current: readonly SortState<T>[],\n next: SortState<T>,\n): SortState<T>[] => {\n if (next.multiplePriority === false || !current.length || current[0].multiplePriority === false) {\n return [next];\n }\n return [...current.filter(({ key }) => key !== next.key), next];\n};\n\nconst stateToInfo = <T>({ column, key, sortOrder }: SortState<T>): TableSorterResult<T> => ({\n column: column as TableColumnType<T>,\n // antd reports `column.key`; the id fallback keeps dataIndex-only columns identifiable.\n columnKey: column.key ?? key,\n field: (column as TableColumnType<T>).dataIndex as TableSorterResult<T>['field'],\n order: sortOrder ?? undefined,\n});\n\nexport const getSorterInfo = <T>(\n states: readonly SortState<T>[],\n): TableSorterResult<T> | TableMultipleSorterResult<T> => {\n const active = states.filter(({ sortOrder }) => sortOrder).map((state) => stateToInfo(state));\n\n // antd keeps the last cleared column's other fields when nothing is sorted.\n if (active.length === 0 && states.length) {\n return {\n ...stateToInfo(states.at(-1)!),\n column: undefined,\n columnKey: undefined,\n field: undefined,\n order: undefined,\n };\n }\n if (active.length <= 1) return active[0] ?? {};\n // Pre-5.61 code reads `sorter.order` / `sorter.columnKey` directly: expose the first entry's\n // fields on the array too. Non-enumerable, so iteration, spread and equality see a plain array.\n const [first] = active;\n for (const field of ['column', 'columnKey', 'field', 'order'] as const) {\n Object.defineProperty(active, field, {\n configurable: true,\n enumerable: false,\n value: first[field],\n writable: true,\n });\n }\n return active as TableMultipleSorterResult<T>;\n};\n\nexport const getSortTitleProps = <T>(\n states: readonly SortState<T>[],\n): Pick<TableColumnTitleProps<T>, 'sortColumn' | 'sortColumns' | 'sortOrder'> => {\n const sortColumns = states.map(({ column, sortOrder }) => ({ column, order: sortOrder }));\n return {\n sortColumn: sortColumns[0]?.column,\n sortColumns,\n sortOrder: sortColumns[0]?.order,\n };\n};\n\nexport const sortData = <T>(\n data: readonly T[],\n states: readonly SortState<T>[],\n childrenColumnName = 'children',\n): T[] => {\n const running = states\n .filter(({ column, sortOrder }) => getSortFunction(column.sorter) && sortOrder)\n .sort((a, b) => (b.multiplePriority as number) - (a.multiplePriority as number));\n if (running.length === 0) return [...data];\n\n return [...data]\n .sort((a, b) => {\n for (const { column, sortOrder } of running) {\n const result = (getSortFunction(column.sorter) as TableCompareFn<T>)(a, b, sortOrder);\n if (result !== 0) return sortOrder === 'ascend' ? result : -result;\n }\n return 0;\n })\n .map((record) => {\n const children = (record as Record<string, unknown>)[childrenColumnName];\n return Array.isArray(children)\n ? { ...record, [childrenColumnName]: sortData(children as T[], states, childrenColumnName) }\n : record;\n });\n};\n\nexport const useSorter = <T>({\n childrenColumnName,\n data,\n sortStates,\n}: {\n childrenColumnName?: string;\n data: readonly T[];\n sortStates: readonly SortState<T>[];\n}) =>\n useMemo(\n () => sortData(data, sortStates, childrenColumnName),\n [data, sortStates, childrenColumnName],\n );\n"],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { useTranslation } from "../../i18n/useTranslation.mjs";
2
+ import table_default from "../../i18n/resources/en/table.mjs";
3
+ import { useMemo } from "react";
4
+ //#region src/Table/pipeline/useTableLocale.ts
5
+ const useTableLocale = (locale) => {
6
+ const { t } = useTranslation(table_default);
7
+ return useMemo(() => ({
8
+ cancelSort: t("table.cancelSort"),
9
+ collapse: t("table.collapse"),
10
+ expand: t("table.expand"),
11
+ filterCheckAll: t("table.filterCheckAll"),
12
+ filterConfirm: t("table.filterConfirm"),
13
+ filterEmptyText: t("table.filterEmptyText"),
14
+ filterReset: t("table.filterReset"),
15
+ filterSearchPlaceholder: t("table.filterSearchPlaceholder"),
16
+ filterTitle: t("table.filterTitle"),
17
+ selectAll: t("table.selectAll"),
18
+ selectInvert: t("table.selectInvert"),
19
+ selectNone: t("table.selectNone"),
20
+ selectionAll: t("table.selectionAll"),
21
+ sortTitle: t("table.sortTitle"),
22
+ triggerAsc: t("table.triggerAsc"),
23
+ triggerDesc: t("table.triggerDesc"),
24
+ ...locale
25
+ }), [t, locale]);
26
+ };
27
+ //#endregion
28
+ export { useTableLocale };
29
+
30
+ //# sourceMappingURL=useTableLocale.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableLocale.mjs","names":["tableMessages"],"sources":["../../../src/Table/pipeline/useTableLocale.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport tableMessages from '@/i18n/resources/en/table';\nimport { useTranslation } from '@/i18n/useTranslation';\n\nimport type { TableLocale } from '../type';\n\nexport const useTableLocale = (locale: TableLocale | undefined) => {\n const { t } = useTranslation(tableMessages);\n return useMemo(\n (): TableLocale => ({\n cancelSort: t('table.cancelSort'),\n collapse: t('table.collapse'),\n expand: t('table.expand'),\n filterCheckAll: t('table.filterCheckAll'),\n filterConfirm: t('table.filterConfirm'),\n filterEmptyText: t('table.filterEmptyText'),\n filterReset: t('table.filterReset'),\n filterSearchPlaceholder: t('table.filterSearchPlaceholder'),\n filterTitle: t('table.filterTitle'),\n selectAll: t('table.selectAll'),\n selectInvert: t('table.selectInvert'),\n selectNone: t('table.selectNone'),\n selectionAll: t('table.selectionAll'),\n sortTitle: t('table.sortTitle'),\n triggerAsc: t('table.triggerAsc'),\n triggerDesc: t('table.triggerDesc'),\n ...locale,\n }),\n [t, locale],\n );\n};\n"],"mappings":";;;;AAOA,MAAa,kBAAkB,WAAoC;CACjE,MAAM,EAAE,MAAM,eAAeA,aAAa;CAC1C,OAAO,eACe;EAClB,YAAY,EAAE,kBAAkB;EAChC,UAAU,EAAE,gBAAgB;EAC5B,QAAQ,EAAE,cAAc;EACxB,gBAAgB,EAAE,sBAAsB;EACxC,eAAe,EAAE,qBAAqB;EACtC,iBAAiB,EAAE,uBAAuB;EAC1C,aAAa,EAAE,mBAAmB;EAClC,yBAAyB,EAAE,+BAA+B;EAC1D,aAAa,EAAE,mBAAmB;EAClC,WAAW,EAAE,iBAAiB;EAC9B,cAAc,EAAE,oBAAoB;EACpC,YAAY,EAAE,kBAAkB;EAChC,cAAc,EAAE,oBAAoB;EACpC,WAAW,EAAE,iBAAiB;EAC9B,YAAY,EAAE,kBAAkB;EAChC,aAAa,EAAE,mBAAmB;EAClC,GAAG;CACL,IACA,CAAC,GAAG,MAAM,CACZ;AACF"}