rsuite 6.1.2 → 6.2.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 (651) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/Timeline/styles/index.css +11 -0
  3. package/Timeline/styles/index.scss +13 -0
  4. package/Uploader/styles/index.css +3 -0
  5. package/Uploader/styles/index.scss +3 -0
  6. package/cjs/Affix/Affix.js +4 -4
  7. package/cjs/Animation/Collapse.js +4 -5
  8. package/cjs/Animation/Transition.d.ts +2 -2
  9. package/cjs/Animation/Transition.js +17 -20
  10. package/cjs/AutoComplete/AutoComplete.d.ts +2 -0
  11. package/cjs/AutoComplete/AutoComplete.js +12 -10
  12. package/cjs/Avatar/useImage.js +1 -1
  13. package/cjs/AvatarGroup/AvatarGroup.d.ts +2 -2
  14. package/cjs/Badge/Badge.js +1 -4
  15. package/cjs/Breadcrumb/Breadcrumb.js +4 -4
  16. package/cjs/Button/Button.js +6 -6
  17. package/cjs/Calendar/Calendar.js +5 -5
  18. package/cjs/Calendar/CalendarBody.js +1 -1
  19. package/cjs/Calendar/CalendarContainer.js +14 -33
  20. package/cjs/Calendar/CalendarHeader.js +7 -8
  21. package/cjs/Calendar/Grid/GridCell.js +2 -2
  22. package/cjs/Calendar/Grid/GridHeaderRow.js +1 -1
  23. package/cjs/Calendar/Grid/GridRow.js +5 -6
  24. package/cjs/Calendar/MonthDropdown/MonthDropdown.js +1 -1
  25. package/cjs/Calendar/MonthDropdown/MonthDropdownItem.js +1 -1
  26. package/cjs/Calendar/TimeDropdown/TimeDropdown.js +12 -14
  27. package/cjs/Calendar/hooks/useCalendar.d.ts +16 -17
  28. package/cjs/Calendar/hooks/useCalendar.js +2 -4
  29. package/cjs/Calendar/hooks/useCalendarDate.js +5 -9
  30. package/cjs/Calendar/hooks/useCalendarState.js +6 -12
  31. package/cjs/Calendar/types.d.ts +0 -1
  32. package/cjs/Carousel/Carousel.js +5 -6
  33. package/cjs/CascadeTree/CascadeTree.js +6 -16
  34. package/cjs/CascadeTree/TreeView.js +5 -7
  35. package/cjs/CascadeTree/hooks/useSearch.d.ts +0 -1
  36. package/cjs/CascadeTree/hooks/useSearch.js +1 -1
  37. package/cjs/CascadeTree/hooks/useSelect.d.ts +0 -1
  38. package/cjs/CascadeTree/hooks/useSelect.js +3 -4
  39. package/cjs/CascadeTree/types.d.ts +0 -1
  40. package/cjs/CascadeTree/utils.js +1 -2
  41. package/cjs/Cascader/Cascader.js +18 -29
  42. package/cjs/Cascader/useActive.d.ts +0 -1
  43. package/cjs/Cascader/useActive.js +4 -6
  44. package/cjs/CheckPicker/CheckPicker.js +14 -15
  45. package/cjs/CheckTree/CheckTree.js +1 -1
  46. package/cjs/CheckTree/CheckTreeNode.js +3 -4
  47. package/cjs/CheckTree/CheckTreeView.js +5 -5
  48. package/cjs/CheckTree/hooks/useTreeCheckState.js +2 -2
  49. package/cjs/CheckTree/utils.js +9 -17
  50. package/cjs/CheckTreePicker/CheckTreePicker.js +7 -7
  51. package/cjs/CheckTreePicker/hooks/useFocusState.d.ts +0 -1
  52. package/cjs/CheckTreePicker/hooks/useFocusState.js +3 -6
  53. package/cjs/Checkbox/Checkbox.js +4 -5
  54. package/cjs/Checkbox/hooks/useIndeterminateCheckbox.d.ts +0 -1
  55. package/cjs/Checkbox/hooks/useIndeterminateCheckbox.js +1 -1
  56. package/cjs/CheckboxGroup/CheckboxGroup.js +2 -2
  57. package/cjs/DOMHelper/index.d.ts +1 -2
  58. package/cjs/DOMHelper/isElement.js +1 -1
  59. package/cjs/DateInput/DateField.d.ts +122 -3
  60. package/cjs/DateInput/DateField.js +12 -15
  61. package/cjs/DateInput/DateInput.js +3 -4
  62. package/cjs/DateInput/hooks/useDateInputState.d.ts +124 -4
  63. package/cjs/DateInput/hooks/useDateInputState.js +2 -2
  64. package/cjs/DateInput/hooks/useIsFocused.js +2 -2
  65. package/cjs/DateInput/hooks/useKeyboardInputEvent.d.ts +0 -1
  66. package/cjs/DateInput/hooks/useKeyboardInputEvent.js +8 -9
  67. package/cjs/DateInput/hooks/useSelectedState.d.ts +0 -1
  68. package/cjs/DateInput/utils.d.ts +0 -1
  69. package/cjs/DateInput/utils.js +2 -3
  70. package/cjs/DatePicker/DatePicker.js +18 -25
  71. package/cjs/DatePicker/PredefinedRanges.js +3 -3
  72. package/cjs/DatePicker/Toolbar.js +4 -4
  73. package/cjs/DatePicker/hooks/useCustomizedInput.d.ts +0 -1
  74. package/cjs/DatePicker/hooks/useFocus.js +5 -8
  75. package/cjs/DatePicker/hooks/useMonthView.d.ts +0 -1
  76. package/cjs/DatePicker/hooks/useMonthView.js +1 -1
  77. package/cjs/DatePicker/utils.d.ts +1 -2
  78. package/cjs/DatePicker/utils.js +2 -2
  79. package/cjs/DateRangeInput/DateRangeInput.js +8 -9
  80. package/cjs/DateRangePicker/Calendar.js +2 -2
  81. package/cjs/DateRangePicker/DateRangePicker.js +25 -29
  82. package/cjs/DateRangePicker/Header.js +3 -3
  83. package/cjs/DateRangePicker/disabledDateUtils.js +2 -2
  84. package/cjs/DateRangePicker/hooks/useCalendarHandlers.d.ts +0 -1
  85. package/cjs/DateRangePicker/hooks/useCalendarHandlers.js +5 -5
  86. package/cjs/DateRangePicker/utils.js +1 -2
  87. package/cjs/Dropdown/Dropdown.js +3 -3
  88. package/cjs/Dropdown/DropdownItem.js +4 -5
  89. package/cjs/Dropdown/DropdownMenu.d.ts +1 -1
  90. package/cjs/Dropdown/DropdownMenu.js +1 -1
  91. package/cjs/Form/Form.d.ts +38 -3
  92. package/cjs/Form/Form.js +25 -12
  93. package/cjs/Form/hooks/useFormRef.d.ts +0 -1
  94. package/cjs/Form/hooks/useFormValidate.d.ts +2 -1
  95. package/cjs/Form/hooks/useFormValidate.js +136 -20
  96. package/cjs/Form/hooks/useFormValue.d.ts +0 -1
  97. package/cjs/Form/index.d.ts +1 -0
  98. package/cjs/Form/resolvers.d.ts +59 -0
  99. package/cjs/Form/resolvers.js +4 -0
  100. package/cjs/FormControl/FormControl.js +5 -5
  101. package/cjs/FormGroup/FormGroupContext.d.ts +1 -1
  102. package/cjs/Highlight/utils/highlightText.js +1 -1
  103. package/cjs/InlineEdit/renderChildren.js +5 -6
  104. package/cjs/InlineEdit/useEditState.js +9 -12
  105. package/cjs/InlineEdit/useFocusEvent.d.ts +0 -1
  106. package/cjs/InlineEdit/useFocusEvent.js +7 -11
  107. package/cjs/Input/Input.js +1 -1
  108. package/cjs/InputGroup/InputGroupContext.d.ts +2 -1
  109. package/cjs/InputNumber/index.d.ts +0 -1
  110. package/cjs/InputPicker/InputAutosize.js +1 -1
  111. package/cjs/InputPicker/InputPicker.js +30 -35
  112. package/cjs/InputPicker/InputSearch.js +1 -2
  113. package/cjs/InputPicker/hooks/useData.d.ts +0 -1
  114. package/cjs/InputPicker/hooks/useData.js +1 -1
  115. package/cjs/InputPicker/hooks/useInput.js +3 -6
  116. package/cjs/InputPicker/hooks/useMaxWidth.js +2 -4
  117. package/cjs/List/helper/AutoScroller.js +2 -4
  118. package/cjs/List/helper/useSortHelper.d.ts +4 -4
  119. package/cjs/List/helper/useSortHelper.js +13 -19
  120. package/cjs/MaskedInput/TextMask.d.ts +5 -5
  121. package/cjs/MaskedInput/TextMask.js +3 -5
  122. package/cjs/MaskedInput/conformToMask.d.ts +1 -1
  123. package/cjs/MaskedInput/createTextMaskInputElement.js +2 -3
  124. package/cjs/Menu/MenuItem.js +3 -4
  125. package/cjs/Message/Message.js +1 -1
  126. package/cjs/Modal/Modal.js +8 -10
  127. package/cjs/Modal/ModalBody.js +1 -1
  128. package/cjs/Modal/utils.d.ts +2 -3
  129. package/cjs/Modal/utils.js +2 -3
  130. package/cjs/MultiCascadeTree/SearchView.js +1 -1
  131. package/cjs/MultiCascadeTree/TreeView.js +2 -2
  132. package/cjs/MultiCascadeTree/hooks/useCascadeValue.d.ts +0 -1
  133. package/cjs/MultiCascadeTree/hooks/useCascadeValue.js +5 -8
  134. package/cjs/MultiCascadeTree/hooks/useColumnData.d.ts +0 -1
  135. package/cjs/MultiCascadeTree/hooks/useSearch.d.ts +0 -1
  136. package/cjs/MultiCascadeTree/hooks/useSearch.js +2 -2
  137. package/cjs/MultiCascadeTree/hooks/useSelect.js +3 -4
  138. package/cjs/MultiCascadeTree/types.d.ts +0 -1
  139. package/cjs/MultiCascadeTree/utils.d.ts +4 -4
  140. package/cjs/MultiCascadeTree/utils.js +2 -3
  141. package/cjs/MultiCascader/MultiCascader.js +13 -16
  142. package/cjs/Nav/AdaptiveNavItem.js +2 -3
  143. package/cjs/Nav/Nav.d.ts +1 -1
  144. package/cjs/Nav/Nav.js +4 -4
  145. package/cjs/Nav/NavDropdown.d.ts +1 -1
  146. package/cjs/Nav/NavDropdown.js +3 -3
  147. package/cjs/Nav/NavDropdownItem.js +2 -2
  148. package/cjs/Nav/NavDropdownMenu.d.ts +1 -1
  149. package/cjs/Nav/NavDropdownMenu.js +1 -1
  150. package/cjs/Nav/NavItem.js +4 -4
  151. package/cjs/Navbar/Navbar.js +1 -1
  152. package/cjs/Navbar/NavbarContent.js +1 -1
  153. package/cjs/Navbar/NavbarDrawer.js +1 -1
  154. package/cjs/Navbar/NavbarDropdown.d.ts +1 -1
  155. package/cjs/Navbar/NavbarDropdown.js +3 -3
  156. package/cjs/Navbar/NavbarDropdownItem.js +5 -6
  157. package/cjs/Navbar/NavbarDropdownMenu.d.ts +1 -1
  158. package/cjs/Navbar/NavbarDropdownMenu.js +1 -1
  159. package/cjs/Navbar/NavbarItem.js +4 -4
  160. package/cjs/Navbar/NavbarToggle.js +2 -2
  161. package/cjs/Notification/Notification.js +1 -1
  162. package/cjs/NumberInput/NumberInput.js +3 -3
  163. package/cjs/NumberInput/hooks/useEvents.d.ts +0 -1
  164. package/cjs/NumberInput/hooks/useEvents.js +2 -3
  165. package/cjs/NumberInput/hooks/useWheelHandler.js +1 -2
  166. package/cjs/Pagination/Pagination.js +1 -1
  167. package/cjs/Pagination/PaginationButton.js +1 -1
  168. package/cjs/Pagination/PaginationGroup.js +3 -4
  169. package/cjs/Panel/Panel.js +2 -2
  170. package/cjs/PanelGroup/PanelGroup.js +1 -1
  171. package/cjs/PasswordInput/PasswordInput.js +2 -2
  172. package/cjs/PinInput/PinInput.js +1 -1
  173. package/cjs/PinInput/hooks/usePinInputRefs.d.ts +0 -1
  174. package/cjs/PinInput/hooks/usePinInputRefs.js +2 -4
  175. package/cjs/PinInput/hooks/usePinValue.d.ts +1 -1
  176. package/cjs/PinInput/hooks/usePinValue.js +2 -2
  177. package/cjs/Progress/ProgressLine.js +1 -1
  178. package/cjs/Progress/types.d.ts +0 -1
  179. package/cjs/ProgressCircle/hooks/useProgressCirclePath.d.ts +0 -1
  180. package/cjs/Radio/Radio.js +3 -3
  181. package/cjs/RadioGroup/RadioGroup.js +1 -1
  182. package/cjs/RadioTile/RadioTile.js +2 -2
  183. package/cjs/RadioTileGroup/RadioTileGroup.js +1 -1
  184. package/cjs/RangeSlider/RangeSlider.js +6 -6
  185. package/cjs/Rate/Character.js +2 -2
  186. package/cjs/Rate/Rate.js +3 -3
  187. package/cjs/Rate/useRatingStates.d.ts +0 -1
  188. package/cjs/SegmentedControl/SegmentedControl.js +3 -3
  189. package/cjs/SegmentedControl/hooks/useIndicatorPosition.js +1 -1
  190. package/cjs/SelectPicker/SelectPicker.js +13 -16
  191. package/cjs/Sidebar/Sidebar.js +1 -1
  192. package/cjs/Sidenav/ExpandedSidenavDropdown.js +6 -6
  193. package/cjs/Sidenav/ExpandedSidenavDropdownItem.js +4 -5
  194. package/cjs/Sidenav/Node.js +9 -16
  195. package/cjs/Sidenav/Sidenav.js +2 -2
  196. package/cjs/Sidenav/SidenavDropdown.d.ts +1 -1
  197. package/cjs/Sidenav/SidenavDropdown.js +4 -4
  198. package/cjs/Sidenav/SidenavDropdownItem.js +3 -4
  199. package/cjs/Sidenav/SidenavItem.js +5 -6
  200. package/cjs/Sidenav/SidenavToggle.js +2 -2
  201. package/cjs/Slider/Slider.js +3 -3
  202. package/cjs/Slider/useDrag.d.ts +0 -1
  203. package/cjs/Slider/useDrag.js +7 -12
  204. package/cjs/Slider/utils.d.ts +1 -2
  205. package/cjs/Slider/utils.js +2 -3
  206. package/cjs/Steps/StepItem.js +1 -2
  207. package/cjs/Table/Table.d.ts +3 -3
  208. package/cjs/Tabs/Tabs.js +3 -4
  209. package/cjs/TimePicker/TimePicker.js +2 -2
  210. package/cjs/Timeline/Timeline.d.ts +6 -1
  211. package/cjs/Timeline/Timeline.js +14 -10
  212. package/cjs/Toggle/Toggle.js +2 -2
  213. package/cjs/Tree/Tree.js +2 -2
  214. package/cjs/Tree/TreeNode.js +10 -11
  215. package/cjs/Tree/TreeView.js +5 -5
  216. package/cjs/Tree/hooks/useExpandTree.js +1 -1
  217. package/cjs/Tree/hooks/useFlattenTree.js +6 -9
  218. package/cjs/Tree/hooks/useFocusTree.d.ts +1 -2
  219. package/cjs/Tree/hooks/useFocusTree.js +12 -14
  220. package/cjs/Tree/hooks/useTreeDrag.d.ts +0 -1
  221. package/cjs/Tree/hooks/useTreeDrag.js +10 -12
  222. package/cjs/Tree/hooks/useTreeNodeProps.js +1 -1
  223. package/cjs/Tree/hooks/useTreeSearch.js +4 -4
  224. package/cjs/Tree/hooks/useVirtualizedTreeData.js +2 -2
  225. package/cjs/Tree/types.d.ts +2 -3
  226. package/cjs/Tree/utils/flattenTree.d.ts +1 -1
  227. package/cjs/Tree/utils/focusableTree.js +5 -8
  228. package/cjs/Tree/utils/getNodeParentKeys.js +2 -4
  229. package/cjs/Tree/utils/hasVisibleChildren.d.ts +1 -1
  230. package/cjs/Tree/utils/treeKeyboardInteractions.js +3 -3
  231. package/cjs/TreePicker/TreePicker.js +8 -9
  232. package/cjs/TreePicker/hooks/useFocusState.d.ts +0 -1
  233. package/cjs/TreePicker/hooks/useFocusState.js +4 -8
  234. package/cjs/Uploader/UploadFileItem.js +8 -10
  235. package/cjs/Uploader/UploadTrigger.js +8 -10
  236. package/cjs/Uploader/Uploader.d.ts +2 -0
  237. package/cjs/Uploader/Uploader.js +66 -26
  238. package/cjs/Uploader/utils/ajaxUpload.js +5 -5
  239. package/cjs/Uploader/utils/previewFile.js +1 -1
  240. package/cjs/internals/Disclosure/Disclosure.js +5 -8
  241. package/cjs/internals/Disclosure/DisclosureButton.js +2 -2
  242. package/cjs/internals/InputBase/InputBase.js +5 -6
  243. package/cjs/internals/Menu/Menu.js +16 -20
  244. package/cjs/internals/Menu/MenuItem.js +4 -5
  245. package/cjs/internals/Menu/Menubar.js +5 -7
  246. package/cjs/internals/Menu/useMenu.js +5 -10
  247. package/cjs/internals/Overlay/Modal.js +8 -11
  248. package/cjs/internals/Overlay/ModalManager.js +3 -5
  249. package/cjs/internals/Overlay/Overlay.js +1 -1
  250. package/cjs/internals/Overlay/OverlayTrigger.d.ts +0 -1
  251. package/cjs/internals/Overlay/OverlayTrigger.js +5 -7
  252. package/cjs/internals/Overlay/Position.js +6 -8
  253. package/cjs/internals/Picker/ListCheckItem.js +3 -3
  254. package/cjs/internals/Picker/ListItem.js +1 -1
  255. package/cjs/internals/Picker/Listbox.js +9 -10
  256. package/cjs/internals/Picker/PickerIndicator.js +13 -11
  257. package/cjs/internals/Picker/PickerPopup.js +4 -5
  258. package/cjs/internals/Picker/PickerToggle.js +3 -4
  259. package/cjs/internals/Picker/SelectedElement.js +1 -1
  260. package/cjs/internals/Picker/hooks/useFocusItemValue.d.ts +0 -1
  261. package/cjs/internals/Picker/hooks/useFocusItemValue.js +14 -28
  262. package/cjs/internals/Picker/hooks/usePickerRef.d.ts +0 -1
  263. package/cjs/internals/Picker/hooks/usePickerRef.js +9 -15
  264. package/cjs/internals/Picker/hooks/useSearch.d.ts +0 -1
  265. package/cjs/internals/Picker/hooks/useSearch.js +2 -2
  266. package/cjs/internals/Picker/hooks/useToggleKeyDownEvent.d.ts +0 -1
  267. package/cjs/internals/Picker/hooks/useToggleKeyDownEvent.js +13 -17
  268. package/cjs/internals/Picker/utils.js +9 -9
  269. package/cjs/internals/Ripple/Ripple.js +3 -4
  270. package/cjs/internals/SafeAnchor/SafeAnchor.js +1 -1
  271. package/cjs/internals/ScrollView/hooks/useScrollState.d.ts +0 -1
  272. package/cjs/internals/ScrollView/hooks/useScrollState.js +2 -3
  273. package/cjs/internals/Tree/TreeProvider.d.ts +4 -4
  274. package/cjs/internals/Tree/TreeProvider.js +2 -8
  275. package/cjs/internals/Tree/types.d.ts +0 -1
  276. package/cjs/internals/Tree/utils/getParentMap.d.ts +0 -1
  277. package/cjs/internals/Windowing/AutoSizer.js +2 -3
  278. package/cjs/internals/Windowing/List.js +4 -8
  279. package/cjs/internals/constants/index.d.ts +2 -2
  280. package/cjs/internals/hooks/useClickOutside.js +2 -4
  281. package/cjs/internals/hooks/useCustom.d.ts +0 -1
  282. package/cjs/internals/hooks/useCustom.js +5 -7
  283. package/cjs/internals/hooks/useElementResize.d.ts +0 -1
  284. package/cjs/internals/hooks/useEventCallback.js +1 -2
  285. package/cjs/internals/hooks/useEventListener.js +1 -1
  286. package/cjs/internals/hooks/useFocus.js +2 -4
  287. package/cjs/internals/hooks/useFocusVirtualListItem.d.ts +0 -1
  288. package/cjs/internals/hooks/useMount.js +1 -2
  289. package/cjs/internals/hooks/useRootClose.js +6 -6
  290. package/cjs/internals/hooks/useTimeout.js +1 -2
  291. package/cjs/internals/hooks/useToggleCaret.d.ts +0 -1
  292. package/cjs/internals/hooks/useUniqueId.js +1 -1
  293. package/cjs/internals/hooks/useUpdatedRef.d.ts +0 -1
  294. package/cjs/internals/styled-system/style-manager.js +1 -1
  295. package/cjs/internals/styled-system/useStyled.js +2 -2
  296. package/cjs/internals/types/utils.d.ts +0 -1
  297. package/cjs/internals/utils/colours.d.ts +4 -4
  298. package/cjs/internals/utils/colours.js +1 -1
  299. package/cjs/internals/utils/date/disableTime.js +6 -12
  300. package/cjs/internals/utils/date/omitHideDisabledProps.d.ts +1 -1
  301. package/cjs/internals/utils/date/useDateMode.d.ts +1 -1
  302. package/cjs/internals/utils/react/ReactChildren.js +1 -2
  303. package/cjs/internals/utils/react/deprecateComponent.js +1 -2
  304. package/cjs/internals/utils/react/getDOMNode.js +4 -5
  305. package/cjs/internals/utils/sizes.d.ts +2 -2
  306. package/cjs/internals/utils/style-sheet/css.d.ts +0 -1
  307. package/cjs/internals/utils/style-sheet/css.js +1 -1
  308. package/cjs/internals/utils/style-sheet/prefix.d.ts +0 -1
  309. package/cjs/internals/utils/style-sheet/responsive.d.ts +1 -1
  310. package/cjs/internals/utils/style-sheet/styles.d.ts +3 -3
  311. package/cjs/internals/utils/style-sheet/styles.js +1 -1
  312. package/cjs/toaster/ToastContainer.js +3 -5
  313. package/cjs/toaster/hooks/useDelayedClosure.d.ts +0 -1
  314. package/cjs/toaster/hooks/useDelayedClosure.js +3 -4
  315. package/cjs/toaster/toaster.js +42 -15
  316. package/cjs/useDialog/Dialog.d.ts +1 -1
  317. package/cjs/useDialog/Dialog.js +1 -1
  318. package/cjs/useDialog/useDialog.d.ts +1 -1
  319. package/cjs/useDialog/useDialog.js +3 -3
  320. package/cjs/useFormControl/hooks/useField.d.ts +0 -1
  321. package/cjs/useFormControl/hooks/useField.js +5 -7
  322. package/cjs/useFormControl/hooks/useRegisterModel.js +2 -2
  323. package/cjs/useFormControl/useFormControl.js +8 -8
  324. package/cjs/useToaster/useToaster.js +4 -5
  325. package/dist/rsuite-no-reset.css +14 -0
  326. package/dist/rsuite-no-reset.min.css +1 -1
  327. package/dist/rsuite.css +14 -0
  328. package/dist/rsuite.js +224 -224
  329. package/dist/rsuite.min.css +1 -1
  330. package/dist/rsuite.min.js +1 -1
  331. package/dist/rsuite.min.js.map +1 -1
  332. package/esm/Affix/Affix.js +4 -4
  333. package/esm/Animation/Collapse.js +1 -2
  334. package/esm/Animation/Transition.d.ts +2 -2
  335. package/esm/Animation/Transition.js +17 -20
  336. package/esm/AutoComplete/AutoComplete.d.ts +2 -0
  337. package/esm/AutoComplete/AutoComplete.js +12 -10
  338. package/esm/Avatar/useImage.js +1 -1
  339. package/esm/AvatarGroup/AvatarGroup.d.ts +2 -2
  340. package/esm/Badge/Badge.js +1 -4
  341. package/esm/Breadcrumb/Breadcrumb.js +4 -4
  342. package/esm/Button/Button.js +6 -6
  343. package/esm/Calendar/Calendar.js +5 -5
  344. package/esm/Calendar/CalendarBody.js +1 -1
  345. package/esm/Calendar/CalendarContainer.js +14 -33
  346. package/esm/Calendar/CalendarHeader.js +7 -8
  347. package/esm/Calendar/Grid/GridCell.js +2 -2
  348. package/esm/Calendar/Grid/GridHeaderRow.js +1 -1
  349. package/esm/Calendar/Grid/GridRow.js +5 -6
  350. package/esm/Calendar/MonthDropdown/MonthDropdown.js +1 -1
  351. package/esm/Calendar/MonthDropdown/MonthDropdownItem.js +1 -1
  352. package/esm/Calendar/TimeDropdown/TimeDropdown.js +12 -14
  353. package/esm/Calendar/hooks/useCalendar.d.ts +16 -17
  354. package/esm/Calendar/hooks/useCalendar.js +2 -4
  355. package/esm/Calendar/hooks/useCalendarDate.js +5 -9
  356. package/esm/Calendar/hooks/useCalendarState.js +6 -12
  357. package/esm/Calendar/types.d.ts +0 -1
  358. package/esm/Carousel/Carousel.js +5 -6
  359. package/esm/CascadeTree/CascadeTree.js +6 -16
  360. package/esm/CascadeTree/TreeView.js +5 -7
  361. package/esm/CascadeTree/hooks/useSearch.d.ts +0 -1
  362. package/esm/CascadeTree/hooks/useSearch.js +1 -1
  363. package/esm/CascadeTree/hooks/useSelect.d.ts +0 -1
  364. package/esm/CascadeTree/hooks/useSelect.js +3 -4
  365. package/esm/CascadeTree/types.d.ts +0 -1
  366. package/esm/CascadeTree/utils.js +1 -2
  367. package/esm/Cascader/Cascader.js +18 -29
  368. package/esm/Cascader/useActive.d.ts +0 -1
  369. package/esm/Cascader/useActive.js +4 -6
  370. package/esm/CheckPicker/CheckPicker.js +14 -15
  371. package/esm/CheckTree/CheckTree.js +1 -1
  372. package/esm/CheckTree/CheckTreeNode.js +3 -4
  373. package/esm/CheckTree/CheckTreeView.js +5 -5
  374. package/esm/CheckTree/hooks/useTreeCheckState.js +2 -2
  375. package/esm/CheckTree/utils.js +9 -17
  376. package/esm/CheckTreePicker/CheckTreePicker.js +7 -7
  377. package/esm/CheckTreePicker/hooks/useFocusState.d.ts +0 -1
  378. package/esm/CheckTreePicker/hooks/useFocusState.js +3 -6
  379. package/esm/Checkbox/Checkbox.js +4 -5
  380. package/esm/Checkbox/hooks/useIndeterminateCheckbox.d.ts +0 -1
  381. package/esm/Checkbox/hooks/useIndeterminateCheckbox.js +1 -1
  382. package/esm/CheckboxGroup/CheckboxGroup.js +2 -2
  383. package/esm/DOMHelper/index.d.ts +1 -2
  384. package/esm/DOMHelper/isElement.js +1 -1
  385. package/esm/DateInput/DateField.d.ts +122 -3
  386. package/esm/DateInput/DateField.js +12 -15
  387. package/esm/DateInput/DateInput.js +3 -4
  388. package/esm/DateInput/hooks/useDateInputState.d.ts +124 -4
  389. package/esm/DateInput/hooks/useDateInputState.js +2 -2
  390. package/esm/DateInput/hooks/useIsFocused.js +2 -2
  391. package/esm/DateInput/hooks/useKeyboardInputEvent.d.ts +0 -1
  392. package/esm/DateInput/hooks/useKeyboardInputEvent.js +8 -9
  393. package/esm/DateInput/hooks/useSelectedState.d.ts +0 -1
  394. package/esm/DateInput/utils.d.ts +0 -1
  395. package/esm/DateInput/utils.js +2 -3
  396. package/esm/DatePicker/DatePicker.js +18 -25
  397. package/esm/DatePicker/PredefinedRanges.js +3 -3
  398. package/esm/DatePicker/Toolbar.js +4 -4
  399. package/esm/DatePicker/hooks/useCustomizedInput.d.ts +0 -1
  400. package/esm/DatePicker/hooks/useFocus.js +5 -8
  401. package/esm/DatePicker/hooks/useMonthView.d.ts +0 -1
  402. package/esm/DatePicker/hooks/useMonthView.js +1 -1
  403. package/esm/DatePicker/utils.d.ts +1 -2
  404. package/esm/DatePicker/utils.js +2 -2
  405. package/esm/DateRangeInput/DateRangeInput.js +8 -9
  406. package/esm/DateRangePicker/Calendar.js +2 -2
  407. package/esm/DateRangePicker/DateRangePicker.js +25 -29
  408. package/esm/DateRangePicker/Header.js +3 -3
  409. package/esm/DateRangePicker/disabledDateUtils.js +2 -2
  410. package/esm/DateRangePicker/hooks/useCalendarHandlers.d.ts +0 -1
  411. package/esm/DateRangePicker/hooks/useCalendarHandlers.js +5 -5
  412. package/esm/DateRangePicker/utils.js +1 -2
  413. package/esm/Dropdown/Dropdown.js +3 -3
  414. package/esm/Dropdown/DropdownItem.js +4 -5
  415. package/esm/Dropdown/DropdownMenu.d.ts +1 -1
  416. package/esm/Dropdown/DropdownMenu.js +1 -1
  417. package/esm/Form/Form.d.ts +38 -3
  418. package/esm/Form/Form.js +25 -12
  419. package/esm/Form/hooks/useFormRef.d.ts +0 -1
  420. package/esm/Form/hooks/useFormValidate.d.ts +2 -1
  421. package/esm/Form/hooks/useFormValidate.js +136 -20
  422. package/esm/Form/hooks/useFormValue.d.ts +0 -1
  423. package/esm/Form/index.d.ts +1 -0
  424. package/esm/Form/resolvers.d.ts +59 -0
  425. package/esm/Form/resolvers.js +2 -0
  426. package/esm/FormControl/FormControl.js +5 -5
  427. package/esm/FormGroup/FormGroupContext.d.ts +1 -1
  428. package/esm/Highlight/utils/highlightText.js +1 -1
  429. package/esm/InlineEdit/renderChildren.js +5 -6
  430. package/esm/InlineEdit/useEditState.js +9 -12
  431. package/esm/InlineEdit/useFocusEvent.d.ts +0 -1
  432. package/esm/InlineEdit/useFocusEvent.js +7 -11
  433. package/esm/Input/Input.js +1 -1
  434. package/esm/InputGroup/InputGroupContext.d.ts +2 -1
  435. package/esm/InputNumber/index.d.ts +0 -1
  436. package/esm/InputPicker/InputAutosize.js +1 -1
  437. package/esm/InputPicker/InputPicker.js +30 -35
  438. package/esm/InputPicker/InputSearch.js +1 -2
  439. package/esm/InputPicker/hooks/useData.d.ts +0 -1
  440. package/esm/InputPicker/hooks/useData.js +1 -1
  441. package/esm/InputPicker/hooks/useInput.js +3 -6
  442. package/esm/InputPicker/hooks/useMaxWidth.js +2 -4
  443. package/esm/List/helper/AutoScroller.js +2 -4
  444. package/esm/List/helper/useSortHelper.d.ts +4 -4
  445. package/esm/List/helper/useSortHelper.js +13 -19
  446. package/esm/MaskedInput/TextMask.d.ts +5 -5
  447. package/esm/MaskedInput/TextMask.js +3 -5
  448. package/esm/MaskedInput/conformToMask.d.ts +1 -1
  449. package/esm/MaskedInput/createTextMaskInputElement.js +2 -3
  450. package/esm/Menu/MenuItem.js +3 -4
  451. package/esm/Message/Message.js +1 -1
  452. package/esm/Modal/Modal.js +8 -10
  453. package/esm/Modal/ModalBody.js +1 -1
  454. package/esm/Modal/utils.d.ts +2 -3
  455. package/esm/Modal/utils.js +2 -3
  456. package/esm/MultiCascadeTree/SearchView.js +1 -1
  457. package/esm/MultiCascadeTree/TreeView.js +2 -2
  458. package/esm/MultiCascadeTree/hooks/useCascadeValue.d.ts +0 -1
  459. package/esm/MultiCascadeTree/hooks/useCascadeValue.js +5 -8
  460. package/esm/MultiCascadeTree/hooks/useColumnData.d.ts +0 -1
  461. package/esm/MultiCascadeTree/hooks/useSearch.d.ts +0 -1
  462. package/esm/MultiCascadeTree/hooks/useSearch.js +2 -2
  463. package/esm/MultiCascadeTree/hooks/useSelect.js +3 -4
  464. package/esm/MultiCascadeTree/types.d.ts +0 -1
  465. package/esm/MultiCascadeTree/utils.d.ts +4 -4
  466. package/esm/MultiCascadeTree/utils.js +2 -3
  467. package/esm/MultiCascader/MultiCascader.js +13 -16
  468. package/esm/Nav/AdaptiveNavItem.js +2 -3
  469. package/esm/Nav/Nav.d.ts +1 -1
  470. package/esm/Nav/Nav.js +4 -4
  471. package/esm/Nav/NavDropdown.d.ts +1 -1
  472. package/esm/Nav/NavDropdown.js +3 -3
  473. package/esm/Nav/NavDropdownItem.js +2 -2
  474. package/esm/Nav/NavDropdownMenu.d.ts +1 -1
  475. package/esm/Nav/NavDropdownMenu.js +1 -1
  476. package/esm/Nav/NavItem.js +4 -4
  477. package/esm/Navbar/Navbar.js +1 -1
  478. package/esm/Navbar/NavbarContent.js +1 -1
  479. package/esm/Navbar/NavbarDrawer.js +1 -1
  480. package/esm/Navbar/NavbarDropdown.d.ts +1 -1
  481. package/esm/Navbar/NavbarDropdown.js +3 -3
  482. package/esm/Navbar/NavbarDropdownItem.js +5 -6
  483. package/esm/Navbar/NavbarDropdownMenu.d.ts +1 -1
  484. package/esm/Navbar/NavbarDropdownMenu.js +1 -1
  485. package/esm/Navbar/NavbarItem.js +4 -4
  486. package/esm/Navbar/NavbarToggle.js +2 -2
  487. package/esm/Notification/Notification.js +1 -1
  488. package/esm/NumberInput/NumberInput.js +3 -3
  489. package/esm/NumberInput/hooks/useEvents.d.ts +0 -1
  490. package/esm/NumberInput/hooks/useEvents.js +2 -3
  491. package/esm/NumberInput/hooks/useWheelHandler.js +1 -2
  492. package/esm/Pagination/Pagination.js +1 -1
  493. package/esm/Pagination/PaginationButton.js +1 -1
  494. package/esm/Pagination/PaginationGroup.js +3 -4
  495. package/esm/Panel/Panel.js +2 -2
  496. package/esm/PanelGroup/PanelGroup.js +1 -1
  497. package/esm/PasswordInput/PasswordInput.js +2 -2
  498. package/esm/PinInput/PinInput.js +1 -1
  499. package/esm/PinInput/hooks/usePinInputRefs.d.ts +0 -1
  500. package/esm/PinInput/hooks/usePinInputRefs.js +2 -4
  501. package/esm/PinInput/hooks/usePinValue.d.ts +1 -1
  502. package/esm/PinInput/hooks/usePinValue.js +2 -2
  503. package/esm/Progress/ProgressLine.js +1 -1
  504. package/esm/Progress/types.d.ts +0 -1
  505. package/esm/ProgressCircle/hooks/useProgressCirclePath.d.ts +0 -1
  506. package/esm/Radio/Radio.js +3 -3
  507. package/esm/RadioGroup/RadioGroup.js +1 -1
  508. package/esm/RadioTile/RadioTile.js +2 -2
  509. package/esm/RadioTileGroup/RadioTileGroup.js +1 -1
  510. package/esm/RangeSlider/RangeSlider.js +6 -6
  511. package/esm/Rate/Character.js +2 -2
  512. package/esm/Rate/Rate.js +3 -3
  513. package/esm/Rate/useRatingStates.d.ts +0 -1
  514. package/esm/SegmentedControl/SegmentedControl.js +3 -3
  515. package/esm/SegmentedControl/hooks/useIndicatorPosition.js +1 -1
  516. package/esm/SelectPicker/SelectPicker.js +13 -16
  517. package/esm/Sidebar/Sidebar.js +1 -1
  518. package/esm/Sidenav/ExpandedSidenavDropdown.js +6 -6
  519. package/esm/Sidenav/ExpandedSidenavDropdownItem.js +4 -5
  520. package/esm/Sidenav/Node.js +9 -16
  521. package/esm/Sidenav/Sidenav.js +2 -2
  522. package/esm/Sidenav/SidenavDropdown.d.ts +1 -1
  523. package/esm/Sidenav/SidenavDropdown.js +4 -4
  524. package/esm/Sidenav/SidenavDropdownItem.js +3 -4
  525. package/esm/Sidenav/SidenavItem.js +5 -6
  526. package/esm/Sidenav/SidenavToggle.js +2 -2
  527. package/esm/Slider/Slider.js +3 -3
  528. package/esm/Slider/useDrag.d.ts +0 -1
  529. package/esm/Slider/useDrag.js +7 -12
  530. package/esm/Slider/utils.d.ts +1 -2
  531. package/esm/Slider/utils.js +2 -3
  532. package/esm/Steps/StepItem.js +1 -2
  533. package/esm/Table/Table.d.ts +3 -3
  534. package/esm/Tabs/Tabs.js +3 -4
  535. package/esm/TimePicker/TimePicker.js +2 -2
  536. package/esm/Timeline/Timeline.d.ts +6 -1
  537. package/esm/Timeline/Timeline.js +14 -10
  538. package/esm/Toggle/Toggle.js +2 -2
  539. package/esm/Tree/Tree.js +2 -2
  540. package/esm/Tree/TreeNode.js +10 -11
  541. package/esm/Tree/TreeView.js +5 -5
  542. package/esm/Tree/hooks/useExpandTree.js +1 -1
  543. package/esm/Tree/hooks/useFlattenTree.js +6 -9
  544. package/esm/Tree/hooks/useFocusTree.d.ts +1 -2
  545. package/esm/Tree/hooks/useFocusTree.js +12 -14
  546. package/esm/Tree/hooks/useTreeDrag.d.ts +0 -1
  547. package/esm/Tree/hooks/useTreeDrag.js +10 -12
  548. package/esm/Tree/hooks/useTreeNodeProps.js +1 -1
  549. package/esm/Tree/hooks/useTreeSearch.js +4 -4
  550. package/esm/Tree/hooks/useVirtualizedTreeData.js +2 -2
  551. package/esm/Tree/types.d.ts +2 -3
  552. package/esm/Tree/utils/flattenTree.d.ts +1 -1
  553. package/esm/Tree/utils/focusableTree.js +5 -8
  554. package/esm/Tree/utils/getNodeParentKeys.js +2 -4
  555. package/esm/Tree/utils/hasVisibleChildren.d.ts +1 -1
  556. package/esm/Tree/utils/treeKeyboardInteractions.js +3 -3
  557. package/esm/TreePicker/TreePicker.js +8 -9
  558. package/esm/TreePicker/hooks/useFocusState.d.ts +0 -1
  559. package/esm/TreePicker/hooks/useFocusState.js +4 -8
  560. package/esm/Uploader/UploadFileItem.js +8 -10
  561. package/esm/Uploader/UploadTrigger.js +8 -10
  562. package/esm/Uploader/Uploader.d.ts +2 -0
  563. package/esm/Uploader/Uploader.js +66 -26
  564. package/esm/Uploader/utils/ajaxUpload.js +5 -5
  565. package/esm/Uploader/utils/previewFile.js +1 -1
  566. package/esm/internals/Disclosure/Disclosure.js +5 -8
  567. package/esm/internals/Disclosure/DisclosureButton.js +2 -2
  568. package/esm/internals/InputBase/InputBase.js +5 -6
  569. package/esm/internals/Menu/Menu.js +16 -20
  570. package/esm/internals/Menu/MenuItem.js +4 -5
  571. package/esm/internals/Menu/Menubar.js +5 -7
  572. package/esm/internals/Menu/useMenu.js +5 -10
  573. package/esm/internals/Overlay/Modal.js +8 -11
  574. package/esm/internals/Overlay/ModalManager.js +3 -5
  575. package/esm/internals/Overlay/Overlay.js +1 -1
  576. package/esm/internals/Overlay/OverlayTrigger.d.ts +0 -1
  577. package/esm/internals/Overlay/OverlayTrigger.js +5 -7
  578. package/esm/internals/Overlay/Position.js +6 -8
  579. package/esm/internals/Picker/ListCheckItem.js +3 -3
  580. package/esm/internals/Picker/ListItem.js +1 -1
  581. package/esm/internals/Picker/Listbox.js +9 -10
  582. package/esm/internals/Picker/PickerIndicator.js +13 -11
  583. package/esm/internals/Picker/PickerPopup.js +4 -5
  584. package/esm/internals/Picker/PickerToggle.js +3 -4
  585. package/esm/internals/Picker/SelectedElement.js +1 -1
  586. package/esm/internals/Picker/hooks/useFocusItemValue.d.ts +0 -1
  587. package/esm/internals/Picker/hooks/useFocusItemValue.js +14 -28
  588. package/esm/internals/Picker/hooks/usePickerRef.d.ts +0 -1
  589. package/esm/internals/Picker/hooks/usePickerRef.js +9 -15
  590. package/esm/internals/Picker/hooks/useSearch.d.ts +0 -1
  591. package/esm/internals/Picker/hooks/useSearch.js +2 -2
  592. package/esm/internals/Picker/hooks/useToggleKeyDownEvent.d.ts +0 -1
  593. package/esm/internals/Picker/hooks/useToggleKeyDownEvent.js +13 -17
  594. package/esm/internals/Picker/utils.js +9 -9
  595. package/esm/internals/Ripple/Ripple.js +3 -4
  596. package/esm/internals/SafeAnchor/SafeAnchor.js +1 -1
  597. package/esm/internals/ScrollView/hooks/useScrollState.d.ts +0 -1
  598. package/esm/internals/ScrollView/hooks/useScrollState.js +2 -3
  599. package/esm/internals/Tree/TreeProvider.d.ts +4 -4
  600. package/esm/internals/Tree/TreeProvider.js +2 -8
  601. package/esm/internals/Tree/types.d.ts +0 -1
  602. package/esm/internals/Tree/utils/getParentMap.d.ts +0 -1
  603. package/esm/internals/Windowing/AutoSizer.js +2 -3
  604. package/esm/internals/Windowing/List.js +4 -8
  605. package/esm/internals/constants/index.d.ts +2 -2
  606. package/esm/internals/hooks/useClickOutside.js +2 -4
  607. package/esm/internals/hooks/useCustom.d.ts +0 -1
  608. package/esm/internals/hooks/useCustom.js +5 -7
  609. package/esm/internals/hooks/useElementResize.d.ts +0 -1
  610. package/esm/internals/hooks/useEventCallback.js +1 -2
  611. package/esm/internals/hooks/useEventListener.js +1 -1
  612. package/esm/internals/hooks/useFocus.js +2 -4
  613. package/esm/internals/hooks/useFocusVirtualListItem.d.ts +0 -1
  614. package/esm/internals/hooks/useMount.js +1 -2
  615. package/esm/internals/hooks/useRootClose.js +6 -6
  616. package/esm/internals/hooks/useTimeout.js +1 -2
  617. package/esm/internals/hooks/useToggleCaret.d.ts +0 -1
  618. package/esm/internals/hooks/useUniqueId.js +1 -1
  619. package/esm/internals/hooks/useUpdatedRef.d.ts +0 -1
  620. package/esm/internals/styled-system/style-manager.js +1 -1
  621. package/esm/internals/styled-system/useStyled.js +2 -2
  622. package/esm/internals/types/utils.d.ts +0 -1
  623. package/esm/internals/utils/colours.d.ts +4 -4
  624. package/esm/internals/utils/colours.js +1 -1
  625. package/esm/internals/utils/date/disableTime.js +6 -12
  626. package/esm/internals/utils/date/omitHideDisabledProps.d.ts +1 -1
  627. package/esm/internals/utils/date/useDateMode.d.ts +1 -1
  628. package/esm/internals/utils/react/ReactChildren.js +1 -2
  629. package/esm/internals/utils/react/deprecateComponent.js +1 -2
  630. package/esm/internals/utils/react/getDOMNode.js +4 -5
  631. package/esm/internals/utils/sizes.d.ts +2 -2
  632. package/esm/internals/utils/style-sheet/css.d.ts +0 -1
  633. package/esm/internals/utils/style-sheet/css.js +1 -1
  634. package/esm/internals/utils/style-sheet/prefix.d.ts +0 -1
  635. package/esm/internals/utils/style-sheet/responsive.d.ts +1 -1
  636. package/esm/internals/utils/style-sheet/styles.d.ts +3 -3
  637. package/esm/internals/utils/style-sheet/styles.js +1 -1
  638. package/esm/toaster/ToastContainer.js +3 -5
  639. package/esm/toaster/hooks/useDelayedClosure.d.ts +0 -1
  640. package/esm/toaster/hooks/useDelayedClosure.js +3 -4
  641. package/esm/toaster/toaster.js +42 -15
  642. package/esm/useDialog/Dialog.d.ts +1 -1
  643. package/esm/useDialog/Dialog.js +1 -1
  644. package/esm/useDialog/useDialog.d.ts +1 -1
  645. package/esm/useDialog/useDialog.js +3 -3
  646. package/esm/useFormControl/hooks/useField.d.ts +0 -1
  647. package/esm/useFormControl/hooks/useField.js +5 -7
  648. package/esm/useFormControl/hooks/useRegisterModel.js +2 -2
  649. package/esm/useFormControl/useFormControl.js +8 -8
  650. package/esm/useToaster/useToaster.js +4 -5
  651. package/package.json +1 -1
@@ -40,14 +40,14 @@ function useVirtualizedTreeData(nodes, data, options) {
40
40
  } = options;
41
41
  return (0, _flattenTree.UNSAFE_flattenTree)(data, childrenKey, node => {
42
42
  let formatted = {};
43
- const curNode = nodes === null || nodes === void 0 ? void 0 : nodes[node.refKey];
43
+ const curNode = nodes?.[node.refKey];
44
44
  const parentKeys = (0, _getNodeParentKeys.getNodeParentKeys)(nodes, curNode, valueKey);
45
45
  /**
46
46
  * When using virtualized,
47
47
  * if the parent node is collapsed, the child nodes should be hidden
48
48
  * avoid component height calculation errors
49
49
  */
50
- let visible = curNode !== null && curNode !== void 0 && curNode.parent ? shouldShowNodeByParentExpanded(expandItemValues, parentKeys) : true;
50
+ let visible = curNode?.parent ? shouldShowNodeByParentExpanded(expandItemValues, parentKeys) : true;
51
51
 
52
52
  /**
53
53
  * when searching, every node default expand
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { BaseBoxProps } from '../internals/Box';
3
2
  import type { ListProps } from '../internals/Windowing';
4
3
  import type { TreeNode } from '../internals/Tree/types';
@@ -6,8 +5,8 @@ import type { TreeNode } from '../internals/Tree/types';
6
5
  * Tree Node Drag Type
7
6
  */
8
7
  export declare enum TREE_NODE_DROP_POSITION {
9
- DRAG_OVER = 0,
10
- DRAG_OVER_TOP = 1,
8
+ DRAG_OVER = 0,// drag node in tree node
9
+ DRAG_OVER_TOP = 1,// drag node on tree node
11
10
  DRAG_OVER_BOTTOM = 2
12
11
  }
13
12
  export interface DropData<T> {
@@ -2,7 +2,7 @@
2
2
  * Strategy for walking the tree.
3
3
  */
4
4
  export declare enum WalkTreeStrategy {
5
- DFS = 0,
5
+ DFS = 0,// Depth-first search
6
6
  BFS = 1
7
7
  }
8
8
  /**
@@ -70,9 +70,8 @@ const getActiveItem = (focusItemValue, flattenedNodes, valueKey) => {
70
70
  */
71
71
  exports.getActiveItem = getActiveItem;
72
72
  const focusTreeNode = (refKey, treeNodeRefs) => {
73
- var _treeItem$focus;
74
73
  const treeItem = treeNodeRefs[refKey];
75
- treeItem === null || treeItem === void 0 || (_treeItem$focus = treeItem.focus) === null || _treeItem$focus === void 0 || _treeItem$focus.call(treeItem);
74
+ treeItem?.focus?.();
76
75
  };
77
76
  exports.focusTreeNode = focusTreeNode;
78
77
  /**
@@ -176,9 +175,8 @@ function scrollToActiveTreeNode(props) {
176
175
  formattedNodes
177
176
  } = props;
178
177
  if (virtualized && value) {
179
- var _list$scrollToItem;
180
178
  const scrollIndex = getScrollToIndex(formattedNodes, value, valueKey);
181
- list === null || list === void 0 || (_list$scrollToItem = list.scrollToItem) === null || _list$scrollToItem === void 0 || _list$scrollToItem.call(list, scrollIndex);
179
+ list?.scrollToItem?.(scrollIndex);
182
180
  }
183
181
  }
184
182
  const focusCurrentItem = props => {
@@ -186,11 +184,10 @@ const focusCurrentItem = props => {
186
184
  selector = SELECTED_TREEITEM_SELECTOR,
187
185
  container
188
186
  } = props;
189
- const activeItem = container === null || container === void 0 ? void 0 : container.querySelector(selector);
187
+ const activeItem = container?.querySelector(selector);
190
188
  if (activeItem) {
191
- var _activeItem$focus, _activeItem$dataset;
192
- activeItem === null || activeItem === void 0 || (_activeItem$focus = activeItem.focus) === null || _activeItem$focus === void 0 || _activeItem$focus.call(activeItem);
193
- return (_activeItem$dataset = activeItem.dataset) === null || _activeItem$dataset === void 0 ? void 0 : _activeItem$dataset.key;
189
+ activeItem?.focus?.();
190
+ return activeItem.dataset?.key;
194
191
  }
195
192
  };
196
193
  exports.focusCurrentItem = focusCurrentItem;
@@ -9,11 +9,9 @@ exports.getNodeParentKeys = getNodeParentKeys;
9
9
  function getNodeParentKeys(nodes, node, valueKey) {
10
10
  const parentKeys = [];
11
11
  const traverse = node => {
12
- var _node$parent;
13
- if (node !== null && node !== void 0 && (_node$parent = node.parent) !== null && _node$parent !== void 0 && _node$parent.refKey) {
14
- var _node$parent2;
12
+ if (node?.parent?.refKey) {
15
13
  traverse(nodes[node.parent.refKey]);
16
- parentKeys.push(node === null || node === void 0 || (_node$parent2 = node.parent) === null || _node$parent2 === void 0 ? void 0 : _node$parent2[valueKey]);
14
+ parentKeys.push(node?.parent?.[valueKey]);
17
15
  }
18
16
  };
19
17
  traverse(node);
@@ -2,4 +2,4 @@ import type { TreeNode } from '../../internals/Tree/types';
2
2
  /**
3
3
  * Checks if a node has visible children.
4
4
  */
5
- export declare function hasVisibleChildren(node: TreeNode, childrenKey: string): any;
5
+ export declare function hasVisibleChildren(node: TreeNode, childrenKey: string): boolean;
@@ -22,8 +22,8 @@ function handleLeftArrow(props) {
22
22
  return;
23
23
  }
24
24
  if (expand) {
25
- onExpand === null || onExpand === void 0 || onExpand(focusItem, expand);
26
- } else if (focusItem !== null && focusItem !== void 0 && focusItem.parent) {
25
+ onExpand?.(focusItem, expand);
26
+ } else if (focusItem?.parent) {
27
27
  onFocusItem();
28
28
  }
29
29
  }
@@ -46,7 +46,7 @@ function handleRightArrow(props) {
46
46
  return;
47
47
  }
48
48
  if (!expand) {
49
- onExpand === null || onExpand === void 0 || onExpand(focusItem, expand);
49
+ onExpand?.(focusItem, expand);
50
50
  } else {
51
51
  onFocusItem();
52
52
  }
@@ -141,8 +141,7 @@ const TreePicker = (0, _utils.forwardRef)((props, ref) => {
141
141
  onEntered
142
142
  });
143
143
  const handleSelect = (0, _hooks.useEventCallback)((treeNode, value, event) => {
144
- var _target$current, _trigger$current, _trigger$current$clos;
145
- onSelect === null || onSelect === void 0 || onSelect(treeNode, value, event);
144
+ onSelect?.(treeNode, value, event);
146
145
 
147
146
  // Only leaf nodes can update the value and close the picker.
148
147
  if (onlyLeafSelectable && !(0, _utils3.isLeafNode)(treeNode)) {
@@ -150,8 +149,8 @@ const TreePicker = (0, _utils.forwardRef)((props, ref) => {
150
149
  }
151
150
  setFocusItemValue(value);
152
151
  handleChange(value, event);
153
- (_target$current = target.current) === null || _target$current === void 0 || _target$current.focus();
154
- (_trigger$current = trigger.current) === null || _trigger$current === void 0 || (_trigger$current$clos = _trigger$current.close) === null || _trigger$current$clos === void 0 || _trigger$current$clos.call(_trigger$current);
152
+ target.current?.focus();
153
+ trigger.current?.close?.();
155
154
  });
156
155
  const handleClean = (0, _hooks.useEventCallback)(event => {
157
156
  const target = event.target;
@@ -160,7 +159,7 @@ const TreePicker = (0, _utils.forwardRef)((props, ref) => {
160
159
  return;
161
160
  }
162
161
  setValue(null);
163
- onChange === null || onChange === void 0 || onChange(null, event);
162
+ onChange?.(null, event);
164
163
  });
165
164
  const handleTreePressEnter = (0, _hooks.useEventCallback)(event => {
166
165
  if ((0, _isNil.default)(focusItemValue)) {
@@ -189,7 +188,7 @@ const TreePicker = (0, _utils.forwardRef)((props, ref) => {
189
188
  });
190
189
  const handleChange = (0, _hooks.useEventCallback)((nextValue, event) => {
191
190
  setValue(nextValue);
192
- onChange === null || onChange === void 0 || onChange(nextValue, event);
191
+ onChange?.(nextValue, event);
193
192
  });
194
193
  const treeContext = (0, _react.useMemo)(() => ({
195
194
  register,
@@ -239,7 +238,7 @@ const TreePicker = (0, _utils.forwardRef)((props, ref) => {
239
238
  ref: (0, _utils.mergeRefs)(overlay, speakerRef),
240
239
  onKeyDown: onPickerKeydown,
241
240
  target: trigger
242
- }, renderTree ? renderTree(tree) : tree, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());
241
+ }, renderTree ? renderTree(tree) : tree, renderExtraFooter?.());
243
242
  };
244
243
 
245
244
  /**
@@ -249,7 +248,7 @@ const TreePicker = (0, _utils.forwardRef)((props, ref) => {
249
248
  let hasValidValue = !(0, _isNil.default)(activeNode) || !(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue);
250
249
  let selectedElement = placeholder;
251
250
  if (hasValidValue) {
252
- const node = activeNode !== null && activeNode !== void 0 ? activeNode : {};
251
+ const node = activeNode ?? {};
253
252
  selectedElement = node[labelKey];
254
253
  if ((0, _isFunction.default)(renderValue) && value) {
255
254
  selectedElement = renderValue(value, node, selectedElement);
@@ -290,7 +289,7 @@ const TreePicker = (0, _utils.forwardRef)((props, ref) => {
290
289
  placement: placement,
291
290
  inputValue: value,
292
291
  focusItemValue: focusItemValue
293
- }, rest), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder)));
292
+ }, rest), selectedElement || locale?.placeholder));
294
293
  });
295
294
  TreePicker.displayName = 'TreePicker';
296
295
  var _default = exports.default = TreePicker;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  interface FocusStateProps {
3
2
  target: React.RefObject<HTMLElement | null>;
4
3
  value?: number | string | null | undefined;
@@ -14,27 +14,23 @@ function useFocusState(props) {
14
14
  const [active, setActive] = (0, _react.useState)(false);
15
15
  const [focusItemValue, setFocusItemValue] = (0, _react.useState)(null);
16
16
  const focusTarget = (0, _hooks.useEventCallback)(() => {
17
- var _target$current;
18
- (_target$current = target.current) === null || _target$current === void 0 || _target$current.focus();
17
+ target.current?.focus();
19
18
  });
20
19
  const onEnter = (0, _hooks.useEventCallback)(node => {
21
- var _props$onEnter;
22
20
  setActive(true);
23
- (_props$onEnter = props.onEnter) === null || _props$onEnter === void 0 || _props$onEnter.call(props, node);
21
+ props.onEnter?.(node);
24
22
  });
25
23
  const onExit = (0, _hooks.useEventCallback)(node => {
26
- var _props$onExit;
27
24
  setActive(false);
28
25
  focusTarget();
29
- (_props$onExit = props.onExit) === null || _props$onExit === void 0 || _props$onExit.call(props, node);
26
+ props.onExit?.(node);
30
27
  });
31
28
  const onEntered = (0, _hooks.useEventCallback)(node => {
32
- var _props$onEntered;
33
29
  if (value) {
34
30
  setFocusItemValue(value);
35
31
  focusActiveNode();
36
32
  }
37
- (_props$onEntered = props.onEntered) === null || _props$onEntered === void 0 || _props$onEntered.call(props, node);
33
+ props.onEntered?.(node);
38
34
  });
39
35
  return {
40
36
  active,
@@ -70,13 +70,12 @@ const UploadFileItem = (0, _utils.forwardRef)((props, ref) => {
70
70
  * Get thumbnail of image file
71
71
  */
72
72
  const getThumbnail = (0, _react.useCallback)(callback => {
73
- var _file$blobFile;
74
73
  if (!~['picture-text', 'picture'].indexOf(listType)) {
75
74
  return;
76
75
  }
77
76
 
78
77
  // The thumbnail file size cannot be larger than the preset value.
79
- if (!file.blobFile || (file === null || file === void 0 || (_file$blobFile = file.blobFile) === null || _file$blobFile === void 0 ? void 0 : _file$blobFile.size) > maxPreviewFileSize) {
78
+ if (!file.blobFile || file?.blobFile?.size > maxPreviewFileSize) {
80
79
  return;
81
80
  }
82
81
  (0, _previewFile.previewFile)(file.blobFile, callback);
@@ -92,19 +91,19 @@ const UploadFileItem = (0, _utils.forwardRef)((props, ref) => {
92
91
  if (disabled) {
93
92
  return;
94
93
  }
95
- onPreview === null || onPreview === void 0 || onPreview(file, event);
94
+ onPreview?.(file, event);
96
95
  }, [disabled, file, onPreview]);
97
96
  const handleRemove = (0, _react.useCallback)(event => {
98
97
  if (disabled) {
99
98
  return;
100
99
  }
101
- onCancel === null || onCancel === void 0 || onCancel(file.fileKey, event);
100
+ onCancel?.(file.fileKey, event);
102
101
  }, [disabled, file.fileKey, onCancel]);
103
102
  const handleReupload = (0, _react.useCallback)(event => {
104
103
  if (disabled) {
105
104
  return;
106
105
  }
107
- onReupload === null || onReupload === void 0 || onReupload(file, event);
106
+ onReupload?.(file, event);
108
107
  }, [disabled, file, onReupload]);
109
108
 
110
109
  /**
@@ -180,8 +179,8 @@ const UploadFileItem = (0, _utils.forwardRef)((props, ref) => {
180
179
  return null;
181
180
  }
182
181
  let closeLabel = 'Remove file';
183
- if (locale !== null && locale !== void 0 && locale.removeFile) {
184
- closeLabel = (locale === null || locale === void 0 ? void 0 : locale.removeFile) + (file !== null && file !== void 0 && file.name ? `: ${file === null || file === void 0 ? void 0 : file.name}` : '');
182
+ if (locale?.removeFile) {
183
+ closeLabel = locale?.removeFile + (file?.name ? `: ${file?.name}` : '');
185
184
  }
186
185
  return /*#__PURE__*/_react.default.createElement(_CloseButton.default, {
187
186
  className: prefix('btn-remove'),
@@ -201,7 +200,7 @@ const UploadFileItem = (0, _utils.forwardRef)((props, ref) => {
201
200
  if (file.status === 'error') {
202
201
  return /*#__PURE__*/_react.default.createElement("div", {
203
202
  className: prefix('status')
204
- }, /*#__PURE__*/_react.default.createElement("span", null, locale === null || locale === void 0 ? void 0 : locale.error), allowReupload && /*#__PURE__*/_react.default.createElement("a", {
203
+ }, /*#__PURE__*/_react.default.createElement("span", null, locale?.error), allowReupload && /*#__PURE__*/_react.default.createElement("a", {
205
204
  role: "button",
206
205
  tabIndex: -1,
207
206
  onClick: handleReupload,
@@ -218,10 +217,9 @@ const UploadFileItem = (0, _utils.forwardRef)((props, ref) => {
218
217
  */
219
218
  const renderFileSize = () => {
220
219
  if (file.status !== 'error' && file.blobFile) {
221
- var _file$blobFile2;
222
220
  return /*#__PURE__*/_react.default.createElement("span", {
223
221
  className: prefix('size')
224
- }, formatSize(file === null || file === void 0 || (_file$blobFile2 = file.blobFile) === null || _file$blobFile2 === void 0 ? void 0 : _file$blobFile2.size));
222
+ }, formatSize(file?.blobFile?.size));
225
223
  }
226
224
  return null;
227
225
  };
@@ -11,7 +11,6 @@ var _utils = require("../internals/utils");
11
11
  var _classnames = _interopRequireDefault(require("classnames"));
12
12
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
13
  const UploadTrigger = (0, _utils.forwardRef)((props, ref) => {
14
- var _children$props;
15
14
  const {
16
15
  as: Component = _Button.default,
17
16
  name,
@@ -43,8 +42,7 @@ const UploadTrigger = (0, _utils.forwardRef)((props, ref) => {
43
42
  'drag-over': dragOver
44
43
  }));
45
44
  const handleClick = (0, _hooks.useEventCallback)(() => {
46
- var _inputRef$current;
47
- (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.click();
45
+ inputRef.current?.click();
48
46
  });
49
47
  const handleClearInput = (0, _hooks.useEventCallback)(() => {
50
48
  if (inputRef.current) {
@@ -56,26 +54,26 @@ const UploadTrigger = (0, _utils.forwardRef)((props, ref) => {
56
54
  event.preventDefault();
57
55
  setDragOver(true);
58
56
  }
59
- onDragEnter === null || onDragEnter === void 0 || onDragEnter(event);
57
+ onDragEnter?.(event);
60
58
  });
61
59
  const handleDragLeave = (0, _hooks.useEventCallback)(event => {
62
60
  if (draggable) {
63
61
  event.preventDefault();
64
62
  setDragOver(false);
65
63
  }
66
- onDragLeave === null || onDragLeave === void 0 || onDragLeave(event);
64
+ onDragLeave?.(event);
67
65
  });
68
66
  const handleDragOver = (0, _hooks.useEventCallback)(event => {
69
67
  draggable && event.preventDefault();
70
- onDragOver === null || onDragOver === void 0 || onDragOver(event);
68
+ onDragOver?.(event);
71
69
  });
72
70
  const handleDrop = (0, _hooks.useEventCallback)(event => {
73
71
  if (draggable) {
74
72
  event.preventDefault();
75
73
  setDragOver(false);
76
- onChange === null || onChange === void 0 || onChange(event);
74
+ onChange?.(event);
77
75
  }
78
- onDrop === null || onDrop === void 0 || onDrop(event);
76
+ onDrop?.(event);
79
77
  });
80
78
  (0, _react.useImperativeHandle)(ref, () => ({
81
79
  root: rootRef.current,
@@ -98,8 +96,8 @@ const UploadTrigger = (0, _utils.forwardRef)((props, ref) => {
98
96
  };
99
97
  const trigger = children ? (/*#__PURE__*/_react.default.cloneElement(children, {
100
98
  ...buttonProps,
101
- className: (0, _classnames.default)((_children$props = children.props) === null || _children$props === void 0 ? void 0 : _children$props.className, prefix('btn'))
102
- })) : /*#__PURE__*/_react.default.createElement(Component, buttonProps, locale === null || locale === void 0 ? void 0 : locale.upload);
99
+ className: (0, _classnames.default)(children.props?.className, prefix('btn'))
100
+ })) : /*#__PURE__*/_react.default.createElement(Component, buttonProps, locale?.upload);
103
101
  return /*#__PURE__*/_react.default.createElement("div", {
104
102
  ref: rootRef,
105
103
  className: classes,
@@ -99,6 +99,8 @@ export interface UploaderProps extends BaseBoxProps, Omit<UploadTriggerProps, 'o
99
99
  onProgress?: (percent: number, file: FileType, event: ProgressEvent, xhr: XMLHttpRequest) => void;
100
100
  /** In the file list, click the callback function to delete a file */
101
101
  onRemove?: (file: FileType) => void;
102
+ /** Callback function called when all files in the current upload batch have finished (succeeded or failed) */
103
+ onCompletion?: (completedFiles: FileType[], failedFiles: FileType[]) => void;
102
104
  /** Custom render file information */
103
105
  renderFileInfo?: (file: FileType, fileElement: React.ReactNode) => React.ReactNode;
104
106
  /** Custom render thumbnail */
@@ -18,9 +18,8 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
18
18
  // Define several states of the file during the upload process.
19
19
 
20
20
  const getFiles = event => {
21
- if (typeof (event === null || event === void 0 ? void 0 : event['dataTransfer']) === 'object') {
22
- var _event$dataTransfer;
23
- return event === null || event === void 0 || (_event$dataTransfer = event['dataTransfer']) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.files;
21
+ if (typeof event?.['dataTransfer'] === 'object') {
22
+ return event?.['dataTransfer']?.files;
24
23
  }
25
24
  if (event.target) {
26
25
  return event.target['files'];
@@ -38,7 +37,6 @@ const createFile = file => {
38
37
  };
39
38
  };
40
39
  function fileListReducer(files, action) {
41
- var _action$files;
42
40
  switch (action.type) {
43
41
  // Add one or more files
44
42
  case 'push':
@@ -56,10 +54,10 @@ function fileListReducer(files, action) {
56
54
 
57
55
  // Initialization file list
58
56
  case 'init':
59
- return ((_action$files = action.files) === null || _action$files === void 0 ? void 0 : _action$files.map(file => {
57
+ return action.files?.map(file => {
60
58
  // The state of the file needs to be preserved when the `fileList` is controlled.
61
59
  return files.find(f => f.fileKey === file.fileKey) || createFile(file);
62
- })) || [];
60
+ }) || [];
63
61
  default:
64
62
  throw new Error();
65
63
  }
@@ -70,8 +68,7 @@ const useFileList = (defaultFileList = []) => {
70
68
  const [fileList, dispatch] = (0, _react.useReducer)(fileListReducer, fileListRef.current);
71
69
  fileListRef.current = fileList;
72
70
  (0, _react.useEffect)(() => {
73
- var _fileListUpdateCallba;
74
- (_fileListUpdateCallba = fileListUpdateCallback.current) === null || _fileListUpdateCallba === void 0 || _fileListUpdateCallba.call(fileListUpdateCallback, fileList);
71
+ fileListUpdateCallback.current?.(fileList);
75
72
  fileListUpdateCallback.current = null;
76
73
  }, [fileList]);
77
74
  (0, _hooks.useWillUnmount)(() => {
@@ -135,6 +132,7 @@ const Uploader = (0, _utils.forwardRef)((props, ref) => {
135
132
  onError,
136
133
  onProgress,
137
134
  onReupload,
135
+ onCompletion,
138
136
  ...rest
139
137
  } = propsWithDefaults;
140
138
  const {
@@ -146,6 +144,11 @@ const Uploader = (0, _utils.forwardRef)((props, ref) => {
146
144
  const rootRef = (0, _react.useRef)(null);
147
145
  const xhrs = (0, _react.useRef)({});
148
146
  const trigger = (0, _react.useRef)(null);
147
+ const uploadingCount = (0, _react.useRef)(0);
148
+ const uploadResults = (0, _react.useRef)({
149
+ completed: [],
150
+ failed: []
151
+ });
149
152
  const [fileList, dispatch] = useFileList(fileListProp || defaultFileList);
150
153
  (0, _react.useEffect)(() => {
151
154
  if (typeof fileListProp !== 'undefined') {
@@ -167,8 +170,7 @@ const Uploader = (0, _utils.forwardRef)((props, ref) => {
167
170
  * Clear the value in input.
168
171
  */
169
172
  const cleanInputValue = (0, _react.useCallback)(() => {
170
- var _trigger$current;
171
- (_trigger$current = trigger.current) === null || _trigger$current === void 0 || _trigger$current.clearInput();
173
+ trigger.current?.clearInput();
172
174
  }, []);
173
175
 
174
176
  /**
@@ -185,8 +187,17 @@ const Uploader = (0, _utils.forwardRef)((props, ref) => {
185
187
  progress: 100
186
188
  };
187
189
  updateFileStatus(nextFile);
188
- onSuccess === null || onSuccess === void 0 || onSuccess(response, nextFile, event, xhr);
189
- }, [onSuccess, updateFileStatus]);
190
+ onSuccess?.(response, nextFile, event, xhr);
191
+ uploadingCount.current--;
192
+ uploadResults.current.completed.push(nextFile);
193
+ if (uploadingCount.current === 0) {
194
+ onCompletion?.(uploadResults.current.completed, uploadResults.current.failed);
195
+ uploadResults.current = {
196
+ completed: [],
197
+ failed: []
198
+ };
199
+ }
200
+ }, [onCompletion, onSuccess, updateFileStatus]);
190
201
 
191
202
  /**
192
203
  * Callback for file upload error.
@@ -201,8 +212,17 @@ const Uploader = (0, _utils.forwardRef)((props, ref) => {
201
212
  status: 'error'
202
213
  };
203
214
  updateFileStatus(nextFile);
204
- onError === null || onError === void 0 || onError(status, nextFile, event, xhr);
205
- }, [onError, updateFileStatus]);
215
+ onError?.(status, nextFile, event, xhr);
216
+ uploadingCount.current--;
217
+ uploadResults.current.failed.push(nextFile);
218
+ if (uploadingCount.current === 0) {
219
+ onCompletion?.(uploadResults.current.completed, uploadResults.current.failed);
220
+ uploadResults.current = {
221
+ completed: [],
222
+ failed: []
223
+ };
224
+ }
225
+ }, [onCompletion, onError, updateFileStatus]);
206
226
 
207
227
  /**
208
228
  * Callback for file upload progress update.
@@ -218,7 +238,7 @@ const Uploader = (0, _utils.forwardRef)((props, ref) => {
218
238
  progress: percent
219
239
  };
220
240
  updateFileStatus(nextFile);
221
- onProgress === null || onProgress === void 0 || onProgress(percent, nextFile, event, xhr);
241
+ onProgress?.(percent, nextFile, event, xhr);
222
242
  }, [onProgress, updateFileStatus]);
223
243
 
224
244
  /**
@@ -250,15 +270,25 @@ const Uploader = (0, _utils.forwardRef)((props, ref) => {
250
270
  if (file.fileKey) {
251
271
  xhrs.current[file.fileKey] = xhr;
252
272
  }
253
- onUpload === null || onUpload === void 0 || onUpload(file, uploadData, xhr);
273
+ onUpload?.(file, uploadData, xhr);
254
274
  });
255
275
  const handleAjaxUpload = (0, _hooks.useEventCallback)(() => {
256
276
  fileList.current.forEach(file => {
257
- const checkState = shouldUpload === null || shouldUpload === void 0 ? void 0 : shouldUpload(file);
277
+ const checkState = shouldUpload?.(file);
258
278
  if (checkState instanceof Promise) {
279
+ uploadingCount.current++;
259
280
  checkState.then(res => {
260
281
  if (res) {
261
282
  handleUploadFile(file);
283
+ } else {
284
+ uploadingCount.current--;
285
+ if (uploadingCount.current === 0) {
286
+ onCompletion?.(uploadResults.current.completed, uploadResults.current.failed);
287
+ uploadResults.current = {
288
+ completed: [],
289
+ failed: []
290
+ };
291
+ }
262
292
  }
263
293
  });
264
294
  return;
@@ -266,6 +296,7 @@ const Uploader = (0, _utils.forwardRef)((props, ref) => {
266
296
  return;
267
297
  }
268
298
  if (file.status === 'inited') {
299
+ uploadingCount.current++;
269
300
  handleUploadFile(file);
270
301
  }
271
302
  });
@@ -283,13 +314,13 @@ const Uploader = (0, _utils.forwardRef)((props, ref) => {
283
314
  });
284
315
  });
285
316
  const nextFileList = [...fileList.current, ...newFileList];
286
- const checkState = shouldQueueUpdate === null || shouldQueueUpdate === void 0 ? void 0 : shouldQueueUpdate(nextFileList, newFileList);
317
+ const checkState = shouldQueueUpdate?.(nextFileList, newFileList);
287
318
  if (checkState === false) {
288
319
  cleanInputValue();
289
320
  return;
290
321
  }
291
322
  const upload = () => {
292
- onChange === null || onChange === void 0 || onChange(nextFileList, event);
323
+ onChange?.(nextFileList, event);
293
324
  if (rootRef.current) {
294
325
  dispatch({
295
326
  type: 'push',
@@ -308,29 +339,38 @@ const Uploader = (0, _utils.forwardRef)((props, ref) => {
308
339
  upload();
309
340
  });
310
341
  const handleRemoveFile = (0, _hooks.useEventCallback)((fileKey, event) => {
311
- var _xhrs$current;
312
342
  const file = (0, _find.default)(fileList.current, f => f.fileKey === fileKey);
313
343
  const nextFileList = fileList.current.filter(f => f.fileKey !== fileKey);
314
- if (((_xhrs$current = xhrs.current) === null || _xhrs$current === void 0 || (_xhrs$current = _xhrs$current[file.fileKey]) === null || _xhrs$current === void 0 ? void 0 : _xhrs$current.readyState) !== 4) {
315
- var _xhrs$current$file$fi;
316
- (_xhrs$current$file$fi = xhrs.current[file.fileKey]) === null || _xhrs$current$file$fi === void 0 || _xhrs$current$file$fi.abort();
344
+ if (xhrs.current?.[file.fileKey]?.readyState !== 4) {
345
+ xhrs.current[file.fileKey]?.abort();
346
+ uploadingCount.current--;
347
+ uploadResults.current.failed.push(file);
348
+ if (uploadingCount.current === 0) {
349
+ onCompletion?.(uploadResults.current.completed, uploadResults.current.failed);
350
+ uploadResults.current = {
351
+ completed: [],
352
+ failed: []
353
+ };
354
+ }
317
355
  }
318
356
  dispatch({
319
357
  type: 'remove',
320
358
  fileKey
321
359
  });
322
- onRemove === null || onRemove === void 0 || onRemove(file);
323
- onChange === null || onChange === void 0 || onChange(nextFileList, event);
360
+ onRemove?.(file);
361
+ onChange?.(nextFileList, event);
324
362
  cleanInputValue();
325
363
  });
326
364
  const handleReupload = (0, _hooks.useEventCallback)(file => {
365
+ uploadingCount.current++;
327
366
  autoUpload && handleUploadFile(file);
328
- onReupload === null || onReupload === void 0 || onReupload(file);
367
+ onReupload?.(file);
329
368
  });
330
369
 
331
370
  // public API
332
371
  const start = (0, _react.useCallback)(file => {
333
372
  if (file) {
373
+ uploadingCount.current++;
334
374
  handleUploadFile(file);
335
375
  return;
336
376
  }
@@ -52,7 +52,7 @@ function ajaxUpload(options) {
52
52
  if (timeout) {
53
53
  xhr.timeout = timeout;
54
54
  xhr.ontimeout = event => {
55
- onError === null || onError === void 0 || onError({
55
+ onError?.({
56
56
  type: 'timeout'
57
57
  }, event, xhr);
58
58
  };
@@ -63,13 +63,13 @@ function ajaxUpload(options) {
63
63
  xhr.onload = event => {
64
64
  const resp = getResponse(xhr);
65
65
  if (xhr.status < 200 || xhr.status >= 300) {
66
- onError === null || onError === void 0 || onError({
66
+ onError?.({
67
67
  type: 'server_error',
68
68
  response: resp
69
69
  }, event, xhr);
70
70
  return;
71
71
  }
72
- onSuccess === null || onSuccess === void 0 || onSuccess(resp, event, xhr);
72
+ onSuccess?.(resp, event, xhr);
73
73
  };
74
74
  if (xhr.upload) {
75
75
  xhr.upload.onprogress = event => {
@@ -77,11 +77,11 @@ function ajaxUpload(options) {
77
77
  if (event.lengthComputable) {
78
78
  percent = event.loaded / event.total * 100;
79
79
  }
80
- onProgress === null || onProgress === void 0 || onProgress(percent, event, xhr);
80
+ onProgress?.(percent, event, xhr);
81
81
  };
82
82
  }
83
83
  xhr.onerror = event => {
84
- onError === null || onError === void 0 || onError({
84
+ onError?.({
85
85
  type: 'xhr_error'
86
86
  }, event, xhr);
87
87
  };
@@ -8,7 +8,7 @@ exports.previewFile = previewFile;
8
8
  // https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types
9
9
  const MIME = ['image/apng', 'image/avif', 'image/gif', 'image/jpeg', 'image/png', 'image/svg+xml', 'image/webp'];
10
10
  function isImage(file) {
11
- return MIME.includes(file === null || file === void 0 ? void 0 : file.type);
11
+ return MIME.includes(file?.type);
12
12
  }
13
13
  function previewFile(file, callback) {
14
14
  if (!isImage(file)) {