rsuite 5.40.0 → 5.42.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 (894) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/Navbar/styles/index.less +1 -1
  3. package/SelectPicker/styles/index.less +4 -8
  4. package/cjs/@types/common.js +1 -0
  5. package/cjs/@types/utils.js +12 -2
  6. package/cjs/Affix/Affix.js +39 -59
  7. package/cjs/Affix/index.js +1 -3
  8. package/cjs/Animation/Bounce.js +4 -13
  9. package/cjs/Animation/Collapse.js +19 -40
  10. package/cjs/Animation/Fade.js +6 -15
  11. package/cjs/Animation/Slide.js +6 -15
  12. package/cjs/Animation/Transition.js +16 -83
  13. package/cjs/Animation/index.js +1 -7
  14. package/cjs/Animation/utils.js +1 -6
  15. package/cjs/AutoComplete/AutoComplete.js +55 -90
  16. package/cjs/AutoComplete/index.js +1 -3
  17. package/cjs/AutoComplete/utils.js +1 -9
  18. package/cjs/Avatar/Avatar.js +18 -32
  19. package/cjs/Avatar/index.js +1 -3
  20. package/cjs/AvatarGroup/AvatarGroup.js +13 -27
  21. package/cjs/AvatarGroup/index.js +1 -3
  22. package/cjs/Badge/Badge.js +14 -27
  23. package/cjs/Badge/index.js +1 -3
  24. package/cjs/Breadcrumb/Breadcrumb.js +19 -41
  25. package/cjs/Breadcrumb/BreadcrumbItem.js +14 -26
  26. package/cjs/Breadcrumb/index.js +1 -3
  27. package/cjs/Button/Button.js +22 -40
  28. package/cjs/Button/index.js +1 -3
  29. package/cjs/ButtonGroup/ButtonGroup.js +15 -26
  30. package/cjs/ButtonGroup/ButtonGroupContext.js +1 -4
  31. package/cjs/ButtonGroup/index.js +1 -4
  32. package/cjs/ButtonToolbar/ButtonToolbar.js +10 -20
  33. package/cjs/ButtonToolbar/index.js +1 -3
  34. package/cjs/Calendar/Calendar.js +24 -43
  35. package/cjs/Calendar/CalendarBody.js +14 -28
  36. package/cjs/Calendar/CalendarContainer.js +46 -69
  37. package/cjs/Calendar/CalendarContext.js +1 -6
  38. package/cjs/Calendar/CalendarHeader.js +32 -59
  39. package/cjs/Calendar/MonthDropdown.js +22 -45
  40. package/cjs/Calendar/MonthDropdownItem.js +16 -31
  41. package/cjs/Calendar/Table.js +10 -21
  42. package/cjs/Calendar/TableHeaderRow.js +11 -25
  43. package/cjs/Calendar/TableRow.js +35 -66
  44. package/cjs/Calendar/TimeDropdown.js +24 -64
  45. package/cjs/Calendar/index.js +1 -8
  46. package/cjs/Calendar/types.js +1 -0
  47. package/cjs/Calendar/useCalendarDate.js +3 -13
  48. package/cjs/Calendar/useCalendarState.js +3 -8
  49. package/cjs/Carousel/Carousel.js +40 -65
  50. package/cjs/Carousel/index.js +1 -3
  51. package/cjs/Cascader/Cascader.js +126 -197
  52. package/cjs/Cascader/DropdownMenu.js +33 -65
  53. package/cjs/Cascader/index.js +1 -3
  54. package/cjs/Cascader/utils.js +13 -24
  55. package/cjs/CheckPicker/CheckPicker.js +105 -156
  56. package/cjs/CheckPicker/index.js +1 -3
  57. package/cjs/CheckTree/index.js +1 -8
  58. package/cjs/CheckTreePicker/CheckTreeNode.js +28 -54
  59. package/cjs/CheckTreePicker/CheckTreePicker.js +165 -247
  60. package/cjs/CheckTreePicker/index.js +1 -3
  61. package/cjs/CheckTreePicker/utils.js +12 -52
  62. package/cjs/Checkbox/Checkbox.js +48 -77
  63. package/cjs/Checkbox/index.js +1 -3
  64. package/cjs/CheckboxGroup/CheckboxGroup.js +20 -38
  65. package/cjs/CheckboxGroup/CheckboxGroupContext.js +1 -4
  66. package/cjs/CheckboxGroup/index.js +1 -4
  67. package/cjs/CloseButton/CloseButton.js +10 -20
  68. package/cjs/CloseButton/index.js +1 -3
  69. package/cjs/Col/Col.js +10 -23
  70. package/cjs/Col/index.js +1 -3
  71. package/cjs/Container/Container.js +11 -24
  72. package/cjs/Container/index.js +1 -3
  73. package/cjs/Content/Content.js +1 -3
  74. package/cjs/Content/index.js +1 -3
  75. package/cjs/CustomProvider/CustomProvider.js +13 -28
  76. package/cjs/CustomProvider/FormattedDate.js +3 -9
  77. package/cjs/CustomProvider/index.js +1 -6
  78. package/cjs/DOMHelper/index.js +1 -7
  79. package/cjs/DOMHelper/isElement.js +1 -2
  80. package/cjs/DatePicker/DatePicker.js +108 -161
  81. package/cjs/DatePicker/PredefinedRanges.js +12 -29
  82. package/cjs/DatePicker/Toolbar.js +20 -36
  83. package/cjs/DatePicker/index.js +1 -3
  84. package/cjs/DatePicker/types.js +1 -0
  85. package/cjs/DatePicker/utils.js +5 -13
  86. package/cjs/DateRangePicker/Calendar.js +18 -28
  87. package/cjs/DateRangePicker/DateRangePicker.js +128 -207
  88. package/cjs/DateRangePicker/DateRangePickerContext.js +1 -6
  89. package/cjs/DateRangePicker/disabledDateUtils.js +9 -32
  90. package/cjs/DateRangePicker/index.js +1 -3
  91. package/cjs/DateRangePicker/types.js +1 -0
  92. package/cjs/DateRangePicker/utils.js +7 -20
  93. package/cjs/Disclosure/Disclosure.js +14 -34
  94. package/cjs/Disclosure/DisclosureButton.js +4 -12
  95. package/cjs/Disclosure/DisclosureContent.js +1 -5
  96. package/cjs/Disclosure/DisclosureContext.js +1 -6
  97. package/cjs/Disclosure/index.js +1 -3
  98. package/cjs/Disclosure/useDisclosureContext.js +1 -6
  99. package/cjs/Divider/Divider.js +11 -20
  100. package/cjs/Divider/index.js +1 -3
  101. package/cjs/Drawer/Drawer.js +10 -27
  102. package/cjs/Drawer/index.js +1 -3
  103. package/cjs/Dropdown/Dropdown.js +35 -68
  104. package/cjs/Dropdown/DropdownContext.js +1 -4
  105. package/cjs/Dropdown/DropdownItem.js +22 -49
  106. package/cjs/Dropdown/DropdownMenu.js +36 -63
  107. package/cjs/Dropdown/DropdownSeparator.js +8 -17
  108. package/cjs/Dropdown/DropdownState.js +1 -10
  109. package/cjs/Dropdown/DropdownToggle.js +17 -29
  110. package/cjs/Dropdown/index.js +1 -3
  111. package/cjs/Dropdown/useRenderDropdownItem.js +1 -5
  112. package/cjs/FlexboxGrid/FlexboxGrid.js +12 -22
  113. package/cjs/FlexboxGrid/FlexboxGridItem.js +12 -22
  114. package/cjs/FlexboxGrid/index.js +1 -3
  115. package/cjs/Footer/Footer.js +1 -3
  116. package/cjs/Footer/index.js +1 -3
  117. package/cjs/Form/Form.js +38 -79
  118. package/cjs/Form/FormContext.d.ts +2 -3
  119. package/cjs/Form/FormContext.js +1 -8
  120. package/cjs/Form/index.js +1 -4
  121. package/cjs/Form/useFormClassNames.js +11 -14
  122. package/cjs/Form/useSchemaModel.js +2 -6
  123. package/cjs/FormControl/FormControl.js +48 -84
  124. package/cjs/FormControl/index.js +1 -3
  125. package/cjs/FormControl/useRegisterModel.js +1 -3
  126. package/cjs/FormControlLabel/FormControlLabel.js +10 -22
  127. package/cjs/FormControlLabel/index.js +1 -3
  128. package/cjs/FormErrorMessage/FormErrorMessage.js +12 -27
  129. package/cjs/FormErrorMessage/index.js +1 -3
  130. package/cjs/FormGroup/FormGroup.js +9 -21
  131. package/cjs/FormGroup/index.js +1 -3
  132. package/cjs/FormHelpText/FormHelpText.js +11 -28
  133. package/cjs/FormHelpText/index.js +1 -3
  134. package/cjs/Grid/Grid.js +10 -19
  135. package/cjs/Grid/index.js +1 -3
  136. package/cjs/Header/Header.js +1 -3
  137. package/cjs/Header/index.js +1 -3
  138. package/cjs/IconButton/IconButton.js +11 -21
  139. package/cjs/IconButton/index.js +1 -3
  140. package/cjs/Input/Input.js +26 -43
  141. package/cjs/Input/index.js +1 -3
  142. package/cjs/InputGroup/InputGroup.js +23 -39
  143. package/cjs/InputGroup/InputGroupAddon.js +9 -18
  144. package/cjs/InputGroup/InputGroupButton.js +7 -17
  145. package/cjs/InputGroup/index.js +1 -3
  146. package/cjs/InputNumber/InputNumber.js +42 -88
  147. package/cjs/InputNumber/index.js +1 -3
  148. package/cjs/InputPicker/InputAutosize.js +17 -42
  149. package/cjs/InputPicker/InputPicker.d.ts +2 -0
  150. package/cjs/InputPicker/InputPicker.js +152 -251
  151. package/cjs/InputPicker/InputSearch.js +15 -28
  152. package/cjs/InputPicker/index.js +1 -3
  153. package/cjs/List/List.js +37 -51
  154. package/cjs/List/ListContext.js +1 -5
  155. package/cjs/List/ListItem.js +26 -40
  156. package/cjs/List/helper/AutoScroller.js +11 -21
  157. package/cjs/List/helper/useManager.js +1 -8
  158. package/cjs/List/helper/useSortHelper.js +58 -82
  159. package/cjs/List/helper/utils.js +6 -19
  160. package/cjs/List/index.js +1 -3
  161. package/cjs/Loader/Loader.js +17 -26
  162. package/cjs/Loader/index.js +1 -3
  163. package/cjs/MaskedInput/MaskedInput.js +2 -8
  164. package/cjs/MaskedInput/TextMask.js +14 -23
  165. package/cjs/MaskedInput/adjustCaretPosition.js +99 -70
  166. package/cjs/MaskedInput/conformToMask.js +79 -73
  167. package/cjs/MaskedInput/createTextMaskInputElement.js +65 -71
  168. package/cjs/MaskedInput/index.js +1 -3
  169. package/cjs/MaskedInput/types.js +1 -0
  170. package/cjs/MaskedInput/utilities.js +1 -8
  171. package/cjs/Menu/Menu.js +35 -79
  172. package/cjs/Menu/MenuContext.js +1 -8
  173. package/cjs/Menu/MenuItem.js +15 -26
  174. package/cjs/Menu/Menubar.js +13 -32
  175. package/cjs/Menu/index.js +1 -3
  176. package/cjs/Menu/useMenu.js +5 -34
  177. package/cjs/Message/Message.js +23 -45
  178. package/cjs/Message/index.js +1 -3
  179. package/cjs/Modal/Modal.js +70 -91
  180. package/cjs/Modal/ModalBody.js +11 -25
  181. package/cjs/Modal/ModalContext.js +1 -4
  182. package/cjs/Modal/ModalDialog.js +14 -26
  183. package/cjs/Modal/ModalFooter.js +1 -3
  184. package/cjs/Modal/ModalHeader.js +14 -29
  185. package/cjs/Modal/ModalTitle.js +9 -20
  186. package/cjs/Modal/index.js +1 -3
  187. package/cjs/Modal/utils.js +8 -19
  188. package/cjs/MultiCascader/DropdownMenu.js +38 -64
  189. package/cjs/MultiCascader/MultiCascader.js +129 -192
  190. package/cjs/MultiCascader/index.js +1 -3
  191. package/cjs/MultiCascader/utils.js +44 -106
  192. package/cjs/Nav/Nav.js +27 -69
  193. package/cjs/Nav/NavContext.js +1 -4
  194. package/cjs/Nav/NavDropdown.js +28 -60
  195. package/cjs/Nav/NavDropdownItem.js +20 -42
  196. package/cjs/Nav/NavDropdownMenu.js +26 -54
  197. package/cjs/Nav/NavDropdownToggle.js +12 -26
  198. package/cjs/Nav/NavItem.js +20 -39
  199. package/cjs/Nav/NavMenu.js +2 -28
  200. package/cjs/Nav/index.js +1 -3
  201. package/cjs/Navbar/Navbar.js +10 -23
  202. package/cjs/Navbar/NavbarBody.js +1 -6
  203. package/cjs/Navbar/NavbarBrand.js +1 -3
  204. package/cjs/Navbar/NavbarDropdown.js +25 -49
  205. package/cjs/Navbar/NavbarDropdownItem.js +18 -44
  206. package/cjs/Navbar/NavbarDropdownMenu.js +22 -51
  207. package/cjs/Navbar/NavbarDropdownToggle.js +12 -25
  208. package/cjs/Navbar/NavbarHeader.js +1 -6
  209. package/cjs/Navbar/NavbarItem.js +19 -35
  210. package/cjs/Navbar/index.js +1 -3
  211. package/cjs/Notification/Notification.js +20 -43
  212. package/cjs/Notification/index.js +1 -3
  213. package/cjs/Overlay/Modal.js +40 -79
  214. package/cjs/Overlay/ModalManager.js +1 -26
  215. package/cjs/Overlay/Overlay.js +28 -50
  216. package/cjs/Overlay/OverlayContext.js +1 -4
  217. package/cjs/Overlay/OverlayTrigger.js +67 -116
  218. package/cjs/Overlay/Position.js +25 -64
  219. package/cjs/Overlay/index.js +1 -3
  220. package/cjs/Overlay/positionUtils.js +25 -86
  221. package/cjs/Pagination/Pagination.js +30 -70
  222. package/cjs/Pagination/PaginationButton.js +15 -29
  223. package/cjs/Pagination/PaginationGroup.js +38 -63
  224. package/cjs/Pagination/index.js +1 -3
  225. package/cjs/Panel/Panel.js +37 -61
  226. package/cjs/Panel/index.js +1 -3
  227. package/cjs/PanelGroup/PanelGroup.js +16 -29
  228. package/cjs/PanelGroup/index.js +1 -3
  229. package/cjs/Picker/DropdownMenu.js +50 -93
  230. package/cjs/Picker/DropdownMenuCheckItem.js +22 -33
  231. package/cjs/Picker/DropdownMenuGroup.js +10 -22
  232. package/cjs/Picker/DropdownMenuItem.js +15 -26
  233. package/cjs/Picker/PickerOverlay.js +12 -28
  234. package/cjs/Picker/PickerToggle.js +57 -89
  235. package/cjs/Picker/PickerToggleTrigger.js +8 -19
  236. package/cjs/Picker/SearchBar.js +14 -26
  237. package/cjs/Picker/SelectedElement.js +9 -17
  238. package/cjs/Picker/ToggleButton.js +1 -6
  239. package/cjs/Picker/index.js +1 -24
  240. package/cjs/Picker/propTypes.js +1 -7
  241. package/cjs/Picker/types.js +1 -0
  242. package/cjs/Picker/utils.js +94 -200
  243. package/cjs/Placeholder/Placeholder.js +1 -5
  244. package/cjs/Placeholder/PlaceholderGraph.js +13 -22
  245. package/cjs/Placeholder/PlaceholderGrid.js +18 -34
  246. package/cjs/Placeholder/PlaceholderParagraph.js +17 -29
  247. package/cjs/Placeholder/index.js +1 -3
  248. package/cjs/Plaintext/Plaintext.js +14 -23
  249. package/cjs/Plaintext/index.js +1 -3
  250. package/cjs/Popover/Popover.js +16 -27
  251. package/cjs/Popover/index.js +1 -3
  252. package/cjs/Progress/Progress.js +1 -4
  253. package/cjs/Progress/ProgressCircle.js +30 -47
  254. package/cjs/Progress/ProgressLine.js +19 -29
  255. package/cjs/Progress/index.js +1 -3
  256. package/cjs/Radio/Radio.js +42 -62
  257. package/cjs/Radio/index.js +1 -3
  258. package/cjs/RadioGroup/RadioGroup.js +22 -37
  259. package/cjs/RadioGroup/index.js +1 -3
  260. package/cjs/RadioTile/RadioTile.js +30 -47
  261. package/cjs/RadioTile/index.js +1 -3
  262. package/cjs/RadioTileGroup/RadioTileGroup.js +17 -32
  263. package/cjs/RadioTileGroup/index.js +1 -3
  264. package/cjs/RangeSlider/RangeSlider.js +63 -104
  265. package/cjs/RangeSlider/index.js +1 -3
  266. package/cjs/Rate/Character.js +16 -31
  267. package/cjs/Rate/Rate.js +35 -62
  268. package/cjs/Rate/index.js +1 -3
  269. package/cjs/Rate/utils.js +1 -6
  270. package/cjs/Ripple/Ripple.js +16 -40
  271. package/cjs/Ripple/index.js +1 -3
  272. package/cjs/Row/Row.js +11 -22
  273. package/cjs/Row/index.js +1 -3
  274. package/cjs/SafeAnchor/SafeAnchor.js +8 -19
  275. package/cjs/SafeAnchor/index.js +1 -3
  276. package/cjs/Schema/Schema.js +1 -2
  277. package/cjs/Schema/index.js +1 -3
  278. package/cjs/SelectPicker/SelectPicker.js +136 -170
  279. package/cjs/SelectPicker/index.js +1 -3
  280. package/cjs/Sidebar/Sidebar.js +13 -26
  281. package/cjs/Sidebar/index.js +1 -3
  282. package/cjs/Sidenav/ExpandedSidenavDropdown.js +32 -54
  283. package/cjs/Sidenav/ExpandedSidenavDropdownItem.js +19 -41
  284. package/cjs/Sidenav/ExpandedSidenavDropdownMenu.js +22 -46
  285. package/cjs/Sidenav/Node.js +1 -12
  286. package/cjs/Sidenav/Sidenav.js +22 -45
  287. package/cjs/Sidenav/SidenavBody.js +1 -3
  288. package/cjs/Sidenav/SidenavDropdown.js +39 -70
  289. package/cjs/Sidenav/SidenavDropdownCollapse.js +9 -22
  290. package/cjs/Sidenav/SidenavDropdownItem.js +19 -45
  291. package/cjs/Sidenav/SidenavDropdownMenu.js +26 -54
  292. package/cjs/Sidenav/SidenavDropdownToggle.js +12 -25
  293. package/cjs/Sidenav/SidenavHeader.js +1 -3
  294. package/cjs/Sidenav/SidenavItem.js +27 -55
  295. package/cjs/Sidenav/SidenavToggle.js +11 -31
  296. package/cjs/Sidenav/index.js +1 -3
  297. package/cjs/Slider/Graduated.js +14 -29
  298. package/cjs/Slider/Handle.js +27 -52
  299. package/cjs/Slider/Input.js +2 -8
  300. package/cjs/Slider/Mark.js +11 -20
  301. package/cjs/Slider/ProgressBar.js +14 -23
  302. package/cjs/Slider/Slider.js +51 -84
  303. package/cjs/Slider/index.js +1 -3
  304. package/cjs/Slider/utils.js +1 -6
  305. package/cjs/Stack/Stack.js +22 -35
  306. package/cjs/Stack/StackItem.js +11 -17
  307. package/cjs/Stack/index.js +1 -3
  308. package/cjs/Steps/StepItem.js +16 -32
  309. package/cjs/Steps/Steps.js +18 -32
  310. package/cjs/Steps/index.js +1 -3
  311. package/cjs/Table/Table.js +6 -16
  312. package/cjs/Table/index.js +1 -3
  313. package/cjs/Tag/Tag.js +16 -28
  314. package/cjs/Tag/index.js +1 -3
  315. package/cjs/TagGroup/TagGroup.js +1 -3
  316. package/cjs/TagGroup/index.js +1 -3
  317. package/cjs/TagInput/index.d.ts +3 -0
  318. package/cjs/TagInput/index.js +11 -16
  319. package/cjs/TagPicker/index.d.ts +3 -0
  320. package/cjs/TagPicker/index.js +9 -14
  321. package/cjs/Timeline/Timeline.js +14 -29
  322. package/cjs/Timeline/TimelineItem.js +14 -23
  323. package/cjs/Timeline/index.js +1 -3
  324. package/cjs/Toggle/Toggle.js +26 -45
  325. package/cjs/Toggle/index.js +1 -3
  326. package/cjs/Tooltip/Tooltip.js +13 -22
  327. package/cjs/Tooltip/index.js +1 -3
  328. package/cjs/Tree/Tree.js +1 -10
  329. package/cjs/Tree/TreeContext.js +1 -4
  330. package/cjs/Tree/index.js +1 -3
  331. package/cjs/TreePicker/TreeNode.js +37 -60
  332. package/cjs/TreePicker/TreePicker.js +155 -231
  333. package/cjs/TreePicker/index.js +1 -3
  334. package/cjs/Uploader/UploadFileItem.js +37 -82
  335. package/cjs/Uploader/UploadTrigger.js +24 -46
  336. package/cjs/Uploader/Uploader.js +89 -141
  337. package/cjs/Uploader/index.js +1 -3
  338. package/cjs/Whisper/Whisper.js +8 -20
  339. package/cjs/Whisper/index.js +1 -3
  340. package/cjs/Windowing/AutoSizer.js +13 -33
  341. package/cjs/Windowing/List.d.ts +2 -2
  342. package/cjs/Windowing/List.js +6 -22
  343. package/cjs/Windowing/index.js +1 -7
  344. package/cjs/index.js +1 -164
  345. package/cjs/locales/ar_EG.js +1 -4
  346. package/cjs/locales/da_DK.js +1 -5
  347. package/cjs/locales/de_DE.js +1 -5
  348. package/cjs/locales/default.js +1 -5
  349. package/cjs/locales/en_GB.js +1 -3
  350. package/cjs/locales/en_US.js +1 -4
  351. package/cjs/locales/es_AR.js +1 -5
  352. package/cjs/locales/es_ES.js +1 -5
  353. package/cjs/locales/fa_IR.js +1 -4
  354. package/cjs/locales/fi_FI.js +1 -5
  355. package/cjs/locales/fr_FR.js +1 -4
  356. package/cjs/locales/hu_HU.js +1 -5
  357. package/cjs/locales/index.js +1 -47
  358. package/cjs/locales/it_IT.js +1 -5
  359. package/cjs/locales/ja_JP.js +1 -5
  360. package/cjs/locales/kk_KZ.js +1 -4
  361. package/cjs/locales/ko_KR.js +1 -5
  362. package/cjs/locales/ne_NP.js +1 -5
  363. package/cjs/locales/nl_NL.js +1 -4
  364. package/cjs/locales/pt_BR.js +1 -4
  365. package/cjs/locales/ru_RU.js +1 -4
  366. package/cjs/locales/sv_SE.js +1 -5
  367. package/cjs/locales/tr_TR.js +1 -4
  368. package/cjs/locales/zh_CN.js +1 -4
  369. package/cjs/locales/zh_TW.js +1 -4
  370. package/cjs/toaster/ToastContainer.js +29 -52
  371. package/cjs/toaster/ToastContext.js +1 -4
  372. package/cjs/toaster/index.js +1 -4
  373. package/cjs/toaster/toaster.js +4 -27
  374. package/cjs/toaster/useToaster.js +2 -8
  375. package/cjs/utils/BrowserDetection.js +7 -24
  376. package/cjs/utils/ReactChildren.js +2 -19
  377. package/cjs/utils/ajaxUpload.js +15 -33
  378. package/cjs/utils/appendTooltip.js +3 -9
  379. package/cjs/utils/attachParent.js +1 -1
  380. package/cjs/utils/clone.js +1 -2
  381. package/cjs/utils/composeFunctions.js +1 -3
  382. package/cjs/utils/constants.js +3 -8
  383. package/cjs/utils/createChainedFunction.js +2 -6
  384. package/cjs/utils/createComponent.js +12 -24
  385. package/cjs/utils/dateUtils.js +7 -121
  386. package/cjs/utils/deprecateComponent.js +1 -8
  387. package/cjs/utils/deprecatePropType.js +2 -9
  388. package/cjs/utils/dom.js +3 -2
  389. package/cjs/utils/events.js +2 -3
  390. package/cjs/utils/getDOMNode.js +16 -9
  391. package/cjs/utils/getDataGroupBy.d.ts +0 -23
  392. package/cjs/utils/getDataGroupBy.js +5 -44
  393. package/cjs/utils/getSafeRegExpString.js +1 -1
  394. package/cjs/utils/guid.js +1 -1
  395. package/cjs/utils/htmlPropsUtils.js +23 -20
  396. package/cjs/utils/index.js +1 -86
  397. package/cjs/utils/isOneOf.js +1 -2
  398. package/cjs/utils/mergeRefs.js +1 -2
  399. package/cjs/utils/placementPolyfill.js +2 -5
  400. package/cjs/utils/prefix.js +4 -15
  401. package/cjs/utils/previewFile.js +1 -6
  402. package/cjs/utils/propTypeChecker.js +1 -8
  403. package/cjs/utils/reactToString.js +1 -5
  404. package/cjs/utils/render.js +3 -10
  405. package/cjs/utils/scrollTopAnimation.js +1 -9
  406. package/cjs/utils/shallowEqual.js +8 -14
  407. package/cjs/utils/shallowEqualArray.js +1 -7
  408. package/cjs/utils/statusIcons.js +1 -9
  409. package/cjs/utils/stringToObject.js +1 -7
  410. package/cjs/utils/tplTransform.js +2 -7
  411. package/cjs/utils/treeUtils.js +112 -327
  412. package/cjs/utils/useClassNames.js +9 -15
  413. package/cjs/utils/useClickOutside.js +4 -8
  414. package/cjs/utils/useControlled.js +11 -7
  415. package/cjs/utils/useCustom.js +12 -25
  416. package/cjs/utils/useElementResize.js +1 -6
  417. package/cjs/utils/useEnsuredRef.js +1 -4
  418. package/cjs/utils/useEventCallback.js +1 -4
  419. package/cjs/utils/useEventListener.js +1 -5
  420. package/cjs/utils/useFocus.js +5 -6
  421. package/cjs/utils/useInternalId.js +1 -6
  422. package/cjs/utils/useIsMounted.js +1 -3
  423. package/cjs/utils/useMap.js +5 -7
  424. package/cjs/utils/useMount.js +1 -4
  425. package/cjs/utils/usePortal.js +7 -20
  426. package/cjs/utils/useRootClose.js +9 -19
  427. package/cjs/utils/useTimeout.js +3 -8
  428. package/cjs/utils/useToggleCaret.js +2 -14
  429. package/cjs/utils/useUniqueId.js +2 -9
  430. package/cjs/utils/useUpdateEffect.js +3 -5
  431. package/cjs/utils/useUpdatedRef.js +1 -2
  432. package/cjs/utils/useWillUnmount.js +3 -5
  433. package/cjs/utils/warnOnce.js +2 -2
  434. package/dist/rsuite-no-reset-rtl.css +23 -25
  435. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  436. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  437. package/dist/rsuite-no-reset.css +23 -25
  438. package/dist/rsuite-no-reset.min.css +1 -1
  439. package/dist/rsuite-no-reset.min.css.map +1 -1
  440. package/dist/rsuite-rtl.css +23 -25
  441. package/dist/rsuite-rtl.min.css +1 -1
  442. package/dist/rsuite-rtl.min.css.map +1 -1
  443. package/dist/rsuite.css +23 -25
  444. package/dist/rsuite.js +438 -471
  445. package/dist/rsuite.js.map +1 -1
  446. package/dist/rsuite.min.css +1 -1
  447. package/dist/rsuite.min.css.map +1 -1
  448. package/dist/rsuite.min.js +1 -1
  449. package/dist/rsuite.min.js.map +1 -1
  450. package/esm/@types/common.js +1 -0
  451. package/esm/@types/utils.js +14 -2
  452. package/esm/Affix/Affix.js +39 -50
  453. package/esm/Affix/index.js +1 -0
  454. package/esm/Animation/Bounce.js +4 -5
  455. package/esm/Animation/Collapse.js +19 -26
  456. package/esm/Animation/Fade.js +6 -7
  457. package/esm/Animation/Slide.js +6 -7
  458. package/esm/Animation/Transition.js +16 -69
  459. package/esm/Animation/index.js +1 -0
  460. package/esm/Animation/utils.js +1 -2
  461. package/esm/AutoComplete/AutoComplete.js +55 -75
  462. package/esm/AutoComplete/index.js +1 -0
  463. package/esm/AutoComplete/utils.js +1 -4
  464. package/esm/Avatar/Avatar.js +18 -22
  465. package/esm/Avatar/index.js +1 -0
  466. package/esm/AvatarGroup/AvatarGroup.js +13 -16
  467. package/esm/AvatarGroup/index.js +1 -0
  468. package/esm/Badge/Badge.js +14 -19
  469. package/esm/Badge/index.js +1 -0
  470. package/esm/Breadcrumb/Breadcrumb.js +19 -30
  471. package/esm/Breadcrumb/BreadcrumbItem.js +14 -17
  472. package/esm/Breadcrumb/index.js +1 -0
  473. package/esm/Button/Button.js +22 -28
  474. package/esm/Button/index.js +1 -0
  475. package/esm/ButtonGroup/ButtonGroup.js +15 -16
  476. package/esm/ButtonGroup/ButtonGroupContext.js +1 -0
  477. package/esm/ButtonGroup/index.js +1 -0
  478. package/esm/ButtonToolbar/ButtonToolbar.js +10 -12
  479. package/esm/ButtonToolbar/index.js +1 -0
  480. package/esm/Calendar/Calendar.js +24 -29
  481. package/esm/Calendar/CalendarBody.js +14 -18
  482. package/esm/Calendar/CalendarContainer.js +46 -51
  483. package/esm/Calendar/CalendarContext.js +1 -0
  484. package/esm/Calendar/CalendarHeader.js +32 -41
  485. package/esm/Calendar/MonthDropdown.js +22 -27
  486. package/esm/Calendar/MonthDropdownItem.js +16 -20
  487. package/esm/Calendar/Table.js +10 -11
  488. package/esm/Calendar/TableHeaderRow.js +11 -15
  489. package/esm/Calendar/TableRow.js +36 -50
  490. package/esm/Calendar/TimeDropdown.js +24 -48
  491. package/esm/Calendar/index.js +1 -0
  492. package/esm/Calendar/types.js +1 -0
  493. package/esm/Calendar/useCalendarDate.js +3 -11
  494. package/esm/Calendar/useCalendarState.js +3 -6
  495. package/esm/Carousel/Carousel.js +40 -52
  496. package/esm/Carousel/index.js +1 -0
  497. package/esm/Cascader/Cascader.js +126 -178
  498. package/esm/Cascader/DropdownMenu.js +33 -45
  499. package/esm/Cascader/index.js +1 -0
  500. package/esm/Cascader/utils.js +13 -22
  501. package/esm/CheckPicker/CheckPicker.js +105 -139
  502. package/esm/CheckPicker/index.js +1 -0
  503. package/esm/CheckTree/index.js +1 -0
  504. package/esm/CheckTreePicker/CheckTreeNode.js +28 -44
  505. package/esm/CheckTreePicker/CheckTreePicker.js +165 -232
  506. package/esm/CheckTreePicker/index.js +1 -0
  507. package/esm/CheckTreePicker/utils.js +12 -35
  508. package/esm/Checkbox/Checkbox.js +48 -66
  509. package/esm/Checkbox/index.js +1 -0
  510. package/esm/CheckboxGroup/CheckboxGroup.js +20 -25
  511. package/esm/CheckboxGroup/CheckboxGroupContext.js +1 -0
  512. package/esm/CheckboxGroup/index.js +1 -0
  513. package/esm/CloseButton/CloseButton.js +10 -13
  514. package/esm/CloseButton/index.js +1 -0
  515. package/esm/Col/Col.js +10 -13
  516. package/esm/Col/index.js +1 -0
  517. package/esm/Container/Container.js +11 -13
  518. package/esm/Container/index.js +1 -0
  519. package/esm/Content/Content.js +1 -1
  520. package/esm/Content/index.js +1 -0
  521. package/esm/CustomProvider/CustomProvider.js +13 -16
  522. package/esm/CustomProvider/FormattedDate.js +3 -6
  523. package/esm/CustomProvider/index.js +1 -0
  524. package/esm/DOMHelper/index.js +1 -2
  525. package/esm/DOMHelper/isElement.js +1 -1
  526. package/esm/DatePicker/DatePicker.js +108 -131
  527. package/esm/DatePicker/PredefinedRanges.js +12 -19
  528. package/esm/DatePicker/Toolbar.js +20 -26
  529. package/esm/DatePicker/index.js +1 -0
  530. package/esm/DatePicker/types.js +1 -0
  531. package/esm/DatePicker/utils.js +5 -8
  532. package/esm/DateRangePicker/Calendar.js +18 -18
  533. package/esm/DateRangePicker/DateRangePicker.js +128 -184
  534. package/esm/DateRangePicker/DateRangePickerContext.js +1 -0
  535. package/esm/DateRangePicker/disabledDateUtils.js +9 -24
  536. package/esm/DateRangePicker/index.js +1 -0
  537. package/esm/DateRangePicker/types.js +1 -0
  538. package/esm/DateRangePicker/utils.js +7 -12
  539. package/esm/Disclosure/Disclosure.js +13 -24
  540. package/esm/Disclosure/DisclosureButton.js +4 -7
  541. package/esm/Disclosure/DisclosureContent.js +1 -2
  542. package/esm/Disclosure/DisclosureContext.js +1 -2
  543. package/esm/Disclosure/index.js +1 -0
  544. package/esm/Disclosure/useDisclosureContext.js +1 -2
  545. package/esm/Divider/Divider.js +11 -12
  546. package/esm/Divider/index.js +1 -0
  547. package/esm/Drawer/Drawer.js +10 -11
  548. package/esm/Drawer/index.js +1 -0
  549. package/esm/Dropdown/Dropdown.js +35 -50
  550. package/esm/Dropdown/DropdownContext.js +1 -0
  551. package/esm/Dropdown/DropdownItem.js +22 -31
  552. package/esm/Dropdown/DropdownMenu.js +36 -49
  553. package/esm/Dropdown/DropdownSeparator.js +8 -10
  554. package/esm/Dropdown/DropdownState.js +1 -7
  555. package/esm/Dropdown/DropdownToggle.js +17 -17
  556. package/esm/Dropdown/index.js +1 -0
  557. package/esm/Dropdown/useRenderDropdownItem.js +1 -2
  558. package/esm/FlexboxGrid/FlexboxGrid.js +12 -13
  559. package/esm/FlexboxGrid/FlexboxGridItem.js +12 -14
  560. package/esm/FlexboxGrid/index.js +1 -0
  561. package/esm/Footer/Footer.js +1 -0
  562. package/esm/Footer/index.js +1 -0
  563. package/esm/Form/Form.js +38 -66
  564. package/esm/Form/FormContext.d.ts +2 -3
  565. package/esm/Form/FormContext.js +1 -0
  566. package/esm/Form/index.js +1 -0
  567. package/esm/Form/useFormClassNames.js +11 -13
  568. package/esm/Form/useSchemaModel.js +2 -4
  569. package/esm/FormControl/FormControl.js +46 -70
  570. package/esm/FormControl/index.js +1 -0
  571. package/esm/FormControl/useRegisterModel.js +1 -2
  572. package/esm/FormControlLabel/FormControlLabel.js +10 -12
  573. package/esm/FormControlLabel/index.js +1 -0
  574. package/esm/FormErrorMessage/FormErrorMessage.js +12 -18
  575. package/esm/FormErrorMessage/index.js +1 -0
  576. package/esm/FormGroup/FormGroup.js +9 -10
  577. package/esm/FormGroup/index.js +1 -0
  578. package/esm/FormHelpText/FormHelpText.js +11 -15
  579. package/esm/FormHelpText/index.js +1 -0
  580. package/esm/Grid/Grid.js +10 -11
  581. package/esm/Grid/index.js +1 -0
  582. package/esm/Header/Header.js +1 -0
  583. package/esm/Header/index.js +1 -0
  584. package/esm/IconButton/IconButton.js +11 -12
  585. package/esm/IconButton/index.js +1 -0
  586. package/esm/Input/Input.js +26 -32
  587. package/esm/Input/index.js +1 -0
  588. package/esm/InputGroup/InputGroup.js +23 -26
  589. package/esm/InputGroup/InputGroupAddon.js +9 -10
  590. package/esm/InputGroup/InputGroupButton.js +7 -9
  591. package/esm/InputGroup/index.js +1 -0
  592. package/esm/InputNumber/InputNumber.js +42 -72
  593. package/esm/InputNumber/index.js +1 -0
  594. package/esm/InputPicker/InputAutosize.js +17 -37
  595. package/esm/InputPicker/InputPicker.d.ts +2 -0
  596. package/esm/InputPicker/InputPicker.js +152 -226
  597. package/esm/InputPicker/InputSearch.js +15 -20
  598. package/esm/InputPicker/index.js +1 -0
  599. package/esm/List/List.js +37 -39
  600. package/esm/List/ListContext.js +1 -0
  601. package/esm/List/ListItem.js +26 -30
  602. package/esm/List/helper/AutoScroller.js +11 -21
  603. package/esm/List/helper/useManager.js +1 -6
  604. package/esm/List/helper/useSortHelper.js +58 -74
  605. package/esm/List/helper/utils.js +6 -11
  606. package/esm/List/index.js +1 -0
  607. package/esm/Loader/Loader.js +17 -19
  608. package/esm/Loader/index.js +1 -0
  609. package/esm/MaskedInput/MaskedInput.js +2 -1
  610. package/esm/MaskedInput/TextMask.js +12 -14
  611. package/esm/MaskedInput/adjustCaretPosition.js +99 -69
  612. package/esm/MaskedInput/conformToMask.js +79 -70
  613. package/esm/MaskedInput/createTextMaskInputElement.js +65 -62
  614. package/esm/MaskedInput/index.js +1 -0
  615. package/esm/MaskedInput/types.js +1 -0
  616. package/esm/MaskedInput/utilities.js +1 -6
  617. package/esm/Menu/Menu.js +35 -66
  618. package/esm/Menu/MenuContext.js +1 -4
  619. package/esm/Menu/MenuItem.js +15 -19
  620. package/esm/Menu/Menubar.js +13 -23
  621. package/esm/Menu/index.js +1 -0
  622. package/esm/Menu/useMenu.js +4 -27
  623. package/esm/Message/Message.js +23 -34
  624. package/esm/Message/index.js +1 -0
  625. package/esm/Modal/Modal.js +70 -69
  626. package/esm/Modal/ModalBody.js +11 -13
  627. package/esm/Modal/ModalContext.js +1 -0
  628. package/esm/Modal/ModalDialog.js +14 -18
  629. package/esm/Modal/ModalFooter.js +1 -0
  630. package/esm/Modal/ModalHeader.js +14 -16
  631. package/esm/Modal/ModalTitle.js +9 -10
  632. package/esm/Modal/index.js +1 -0
  633. package/esm/Modal/utils.js +8 -12
  634. package/esm/MultiCascader/DropdownMenu.js +38 -48
  635. package/esm/MultiCascader/MultiCascader.js +129 -174
  636. package/esm/MultiCascader/index.js +1 -0
  637. package/esm/MultiCascader/utils.js +44 -87
  638. package/esm/Nav/Nav.js +27 -45
  639. package/esm/Nav/NavContext.js +1 -0
  640. package/esm/Nav/NavDropdown.js +28 -44
  641. package/esm/Nav/NavDropdownItem.js +20 -31
  642. package/esm/Nav/NavDropdownMenu.js +26 -42
  643. package/esm/Nav/NavDropdownToggle.js +12 -15
  644. package/esm/Nav/NavItem.js +20 -28
  645. package/esm/Nav/NavMenu.js +2 -13
  646. package/esm/Nav/index.js +1 -0
  647. package/esm/Navbar/Navbar.js +10 -11
  648. package/esm/Navbar/NavbarBody.js +1 -0
  649. package/esm/Navbar/NavbarBrand.js +1 -0
  650. package/esm/Navbar/NavbarDropdown.js +25 -33
  651. package/esm/Navbar/NavbarDropdownItem.js +18 -30
  652. package/esm/Navbar/NavbarDropdownMenu.js +22 -37
  653. package/esm/Navbar/NavbarDropdownToggle.js +12 -14
  654. package/esm/Navbar/NavbarHeader.js +1 -0
  655. package/esm/Navbar/NavbarItem.js +19 -23
  656. package/esm/Navbar/index.js +1 -0
  657. package/esm/Notification/Notification.js +20 -32
  658. package/esm/Notification/index.js +1 -0
  659. package/esm/Overlay/Modal.js +40 -64
  660. package/esm/Overlay/ModalManager.js +1 -19
  661. package/esm/Overlay/Overlay.js +28 -37
  662. package/esm/Overlay/OverlayContext.js +1 -0
  663. package/esm/Overlay/OverlayTrigger.js +68 -101
  664. package/esm/Overlay/Position.js +25 -47
  665. package/esm/Overlay/index.js +1 -0
  666. package/esm/Overlay/positionUtils.js +25 -73
  667. package/esm/Pagination/Pagination.js +30 -55
  668. package/esm/Pagination/PaginationButton.js +15 -19
  669. package/esm/Pagination/PaginationGroup.js +38 -49
  670. package/esm/Pagination/index.js +1 -0
  671. package/esm/Panel/Panel.js +37 -49
  672. package/esm/Panel/index.js +1 -0
  673. package/esm/PanelGroup/PanelGroup.js +16 -18
  674. package/esm/PanelGroup/index.js +1 -0
  675. package/esm/Picker/DropdownMenu.js +50 -72
  676. package/esm/Picker/DropdownMenuCheckItem.js +22 -24
  677. package/esm/Picker/DropdownMenuGroup.js +10 -13
  678. package/esm/Picker/DropdownMenuItem.js +15 -18
  679. package/esm/Picker/PickerOverlay.js +12 -17
  680. package/esm/Picker/PickerToggle.js +57 -71
  681. package/esm/Picker/PickerToggleTrigger.js +8 -10
  682. package/esm/Picker/SearchBar.js +14 -15
  683. package/esm/Picker/SelectedElement.js +9 -14
  684. package/esm/Picker/ToggleButton.js +1 -0
  685. package/esm/Picker/index.js +1 -0
  686. package/esm/Picker/propTypes.js +1 -1
  687. package/esm/Picker/types.js +1 -0
  688. package/esm/Picker/utils.js +94 -182
  689. package/esm/Placeholder/Placeholder.js +1 -0
  690. package/esm/Placeholder/PlaceholderGraph.js +13 -16
  691. package/esm/Placeholder/PlaceholderGrid.js +18 -25
  692. package/esm/Placeholder/PlaceholderParagraph.js +17 -20
  693. package/esm/Placeholder/index.js +1 -0
  694. package/esm/Plaintext/Plaintext.js +14 -17
  695. package/esm/Plaintext/index.js +1 -0
  696. package/esm/Popover/Popover.js +16 -21
  697. package/esm/Popover/index.js +1 -0
  698. package/esm/Progress/Progress.js +1 -0
  699. package/esm/Progress/ProgressCircle.js +30 -39
  700. package/esm/Progress/ProgressLine.js +19 -21
  701. package/esm/Progress/index.js +1 -0
  702. package/esm/Radio/Radio.js +42 -52
  703. package/esm/Radio/index.js +1 -0
  704. package/esm/RadioGroup/RadioGroup.js +22 -25
  705. package/esm/RadioGroup/index.js +1 -0
  706. package/esm/RadioTile/RadioTile.js +30 -34
  707. package/esm/RadioTile/index.js +1 -0
  708. package/esm/RadioTileGroup/RadioTileGroup.js +17 -20
  709. package/esm/RadioTileGroup/index.js +1 -0
  710. package/esm/RangeSlider/RangeSlider.js +63 -86
  711. package/esm/RangeSlider/index.js +1 -0
  712. package/esm/Rate/Character.js +16 -21
  713. package/esm/Rate/Rate.js +35 -48
  714. package/esm/Rate/index.js +1 -0
  715. package/esm/Rate/utils.js +1 -2
  716. package/esm/Ripple/Ripple.js +16 -30
  717. package/esm/Ripple/index.js +1 -0
  718. package/esm/Row/Row.js +11 -14
  719. package/esm/Row/index.js +1 -0
  720. package/esm/SafeAnchor/SafeAnchor.js +8 -13
  721. package/esm/SafeAnchor/index.js +1 -0
  722. package/esm/Schema/Schema.js +1 -0
  723. package/esm/Schema/index.js +1 -0
  724. package/esm/SelectPicker/SelectPicker.js +137 -157
  725. package/esm/SelectPicker/index.js +1 -0
  726. package/esm/Sidebar/Sidebar.js +13 -18
  727. package/esm/Sidebar/index.js +1 -0
  728. package/esm/Sidenav/ExpandedSidenavDropdown.js +32 -35
  729. package/esm/Sidenav/ExpandedSidenavDropdownItem.js +19 -27
  730. package/esm/Sidenav/ExpandedSidenavDropdownMenu.js +22 -29
  731. package/esm/Sidenav/Node.js +1 -10
  732. package/esm/Sidenav/Sidenav.js +22 -28
  733. package/esm/Sidenav/SidenavBody.js +1 -0
  734. package/esm/Sidenav/SidenavDropdown.js +39 -52
  735. package/esm/Sidenav/SidenavDropdownCollapse.js +9 -13
  736. package/esm/Sidenav/SidenavDropdownItem.js +19 -31
  737. package/esm/Sidenav/SidenavDropdownMenu.js +26 -41
  738. package/esm/Sidenav/SidenavDropdownToggle.js +12 -14
  739. package/esm/Sidenav/SidenavHeader.js +1 -0
  740. package/esm/Sidenav/SidenavItem.js +27 -37
  741. package/esm/Sidenav/SidenavToggle.js +11 -18
  742. package/esm/Sidenav/index.js +1 -0
  743. package/esm/Slider/Graduated.js +14 -21
  744. package/esm/Slider/Handle.js +27 -39
  745. package/esm/Slider/Input.js +2 -2
  746. package/esm/Slider/Mark.js +11 -14
  747. package/esm/Slider/ProgressBar.js +14 -18
  748. package/esm/Slider/Slider.js +51 -67
  749. package/esm/Slider/index.js +1 -0
  750. package/esm/Slider/utils.js +1 -5
  751. package/esm/Stack/Stack.js +22 -27
  752. package/esm/Stack/StackItem.js +11 -11
  753. package/esm/Stack/index.js +1 -0
  754. package/esm/Steps/StepItem.js +16 -22
  755. package/esm/Steps/Steps.js +18 -22
  756. package/esm/Steps/index.js +1 -0
  757. package/esm/Table/Table.js +6 -7
  758. package/esm/Table/index.js +1 -0
  759. package/esm/Tag/Tag.js +16 -19
  760. package/esm/Tag/index.js +1 -0
  761. package/esm/TagGroup/TagGroup.js +1 -0
  762. package/esm/TagGroup/index.js +1 -0
  763. package/esm/TagInput/index.d.ts +3 -0
  764. package/esm/TagInput/index.js +11 -9
  765. package/esm/TagPicker/index.d.ts +3 -0
  766. package/esm/TagPicker/index.js +9 -7
  767. package/esm/Timeline/Timeline.js +14 -19
  768. package/esm/Timeline/TimelineItem.js +14 -15
  769. package/esm/Timeline/index.js +1 -0
  770. package/esm/Toggle/Toggle.js +26 -35
  771. package/esm/Toggle/index.js +1 -0
  772. package/esm/Tooltip/Tooltip.js +13 -16
  773. package/esm/Tooltip/index.js +1 -0
  774. package/esm/Tree/Tree.js +1 -3
  775. package/esm/Tree/TreeContext.js +1 -0
  776. package/esm/Tree/index.js +1 -0
  777. package/esm/TreePicker/TreeNode.js +37 -49
  778. package/esm/TreePicker/TreePicker.js +155 -218
  779. package/esm/TreePicker/index.js +1 -0
  780. package/esm/Uploader/UploadFileItem.js +37 -68
  781. package/esm/Uploader/UploadTrigger.js +24 -38
  782. package/esm/Uploader/Uploader.js +90 -132
  783. package/esm/Uploader/index.js +1 -0
  784. package/esm/Whisper/Whisper.js +8 -10
  785. package/esm/Whisper/index.js +1 -0
  786. package/esm/Windowing/AutoSizer.js +13 -24
  787. package/esm/Windowing/List.d.ts +2 -2
  788. package/esm/Windowing/List.js +6 -15
  789. package/esm/Windowing/index.js +1 -0
  790. package/esm/index.js +3 -0
  791. package/esm/locales/ar_EG.js +1 -0
  792. package/esm/locales/da_DK.js +1 -1
  793. package/esm/locales/de_DE.js +1 -1
  794. package/esm/locales/default.js +1 -1
  795. package/esm/locales/en_GB.js +1 -0
  796. package/esm/locales/en_US.js +1 -0
  797. package/esm/locales/es_AR.js +1 -1
  798. package/esm/locales/es_ES.js +1 -1
  799. package/esm/locales/fa_IR.js +1 -0
  800. package/esm/locales/fi_FI.js +1 -1
  801. package/esm/locales/fr_FR.js +1 -0
  802. package/esm/locales/hu_HU.js +1 -1
  803. package/esm/locales/index.js +1 -0
  804. package/esm/locales/it_IT.js +1 -1
  805. package/esm/locales/ja_JP.js +1 -1
  806. package/esm/locales/kk_KZ.js +1 -0
  807. package/esm/locales/ko_KR.js +1 -1
  808. package/esm/locales/ne_NP.js +1 -1
  809. package/esm/locales/nl_NL.js +1 -0
  810. package/esm/locales/pt_BR.js +1 -0
  811. package/esm/locales/ru_RU.js +1 -0
  812. package/esm/locales/sv_SE.js +1 -1
  813. package/esm/locales/tr_TR.js +1 -0
  814. package/esm/locales/zh_CN.js +1 -0
  815. package/esm/locales/zh_TW.js +1 -0
  816. package/esm/toaster/ToastContainer.js +29 -42
  817. package/esm/toaster/ToastContext.js +1 -0
  818. package/esm/toaster/index.js +1 -0
  819. package/esm/toaster/toaster.js +4 -22
  820. package/esm/toaster/useToaster.js +3 -5
  821. package/esm/utils/BrowserDetection.js +9 -9
  822. package/esm/utils/ReactChildren.js +2 -8
  823. package/esm/utils/ajaxUpload.js +15 -32
  824. package/esm/utils/appendTooltip.js +3 -3
  825. package/esm/utils/attachParent.js +1 -0
  826. package/esm/utils/clone.js +1 -1
  827. package/esm/utils/composeFunctions.js +1 -1
  828. package/esm/utils/constants.js +4 -7
  829. package/esm/utils/createChainedFunction.js +2 -5
  830. package/esm/utils/createComponent.js +12 -16
  831. package/esm/utils/dateUtils.js +7 -23
  832. package/esm/utils/deprecateComponent.js +2 -2
  833. package/esm/utils/deprecatePropType.js +4 -6
  834. package/esm/utils/dom.js +3 -1
  835. package/esm/utils/events.js +2 -1
  836. package/esm/utils/getDOMNode.js +15 -8
  837. package/esm/utils/getDataGroupBy.d.ts +0 -23
  838. package/esm/utils/getDataGroupBy.js +5 -39
  839. package/esm/utils/getSafeRegExpString.js +1 -0
  840. package/esm/utils/guid.js +1 -0
  841. package/esm/utils/htmlPropsUtils.js +23 -14
  842. package/esm/utils/index.js +2 -1
  843. package/esm/utils/isOneOf.js +1 -1
  844. package/esm/utils/mergeRefs.js +1 -1
  845. package/esm/utils/placementPolyfill.js +2 -4
  846. package/esm/utils/prefix.js +4 -4
  847. package/esm/utils/previewFile.js +1 -3
  848. package/esm/utils/propTypeChecker.js +1 -3
  849. package/esm/utils/reactToString.js +1 -2
  850. package/esm/utils/render.js +3 -5
  851. package/esm/utils/scrollTopAnimation.js +1 -5
  852. package/esm/utils/shallowEqual.js +8 -13
  853. package/esm/utils/shallowEqualArray.js +1 -5
  854. package/esm/utils/statusIcons.js +1 -0
  855. package/esm/utils/stringToObject.js +3 -4
  856. package/esm/utils/tplTransform.js +2 -4
  857. package/esm/utils/treeUtils.js +113 -265
  858. package/esm/utils/useClassNames.js +9 -9
  859. package/esm/utils/useClickOutside.js +4 -6
  860. package/esm/utils/useControlled.js +12 -6
  861. package/esm/utils/useCustom.js +12 -20
  862. package/esm/utils/useElementResize.js +2 -4
  863. package/esm/utils/useEnsuredRef.js +2 -3
  864. package/esm/utils/useEventCallback.js +2 -3
  865. package/esm/utils/useEventListener.js +2 -2
  866. package/esm/utils/useFocus.js +5 -4
  867. package/esm/utils/useInternalId.js +2 -3
  868. package/esm/utils/useIsMounted.js +1 -2
  869. package/esm/utils/useMap.js +5 -5
  870. package/esm/utils/useMount.js +1 -3
  871. package/esm/utils/usePortal.js +7 -13
  872. package/esm/utils/useRootClose.js +9 -13
  873. package/esm/utils/useTimeout.js +3 -7
  874. package/esm/utils/useToggleCaret.js +2 -7
  875. package/esm/utils/useUniqueId.js +2 -4
  876. package/esm/utils/useUpdateEffect.js +3 -4
  877. package/esm/utils/useUpdatedRef.js +2 -1
  878. package/esm/utils/useWillUnmount.js +4 -2
  879. package/esm/utils/warnOnce.js +2 -2
  880. package/package.json +2 -2
  881. package/styles/color-modes/light.less +4 -4
  882. package/styles/mixins/listbox.less +0 -2
  883. package/cjs/SelectPicker/Listbox.d.ts +0 -34
  884. package/cjs/SelectPicker/Listbox.js +0 -263
  885. package/cjs/SelectPicker/ListboxOption.d.ts +0 -11
  886. package/cjs/SelectPicker/ListboxOption.js +0 -50
  887. package/cjs/SelectPicker/ListboxOptionGroup.d.ts +0 -9
  888. package/cjs/SelectPicker/ListboxOptionGroup.js +0 -69
  889. package/esm/SelectPicker/Listbox.d.ts +0 -34
  890. package/esm/SelectPicker/Listbox.js +0 -240
  891. package/esm/SelectPicker/ListboxOption.d.ts +0 -11
  892. package/esm/SelectPicker/ListboxOption.js +0 -37
  893. package/esm/SelectPicker/ListboxOptionGroup.d.ts +0 -9
  894. package/esm/SelectPicker/ListboxOptionGroup.js +0 -53
@@ -1,61 +1,65 @@
1
+ 'use client';
1
2
  var defaultArray = [];
2
3
  var emptyString = '';
3
4
  export default function adjustCaretPosition(_ref) {
4
5
  var _ref$previousConforme = _ref.previousConformedValue,
5
- previousConformedValue = _ref$previousConforme === void 0 ? emptyString : _ref$previousConforme,
6
- _ref$previousPlacehol = _ref.previousPlaceholder,
7
- previousPlaceholder = _ref$previousPlacehol === void 0 ? emptyString : _ref$previousPlacehol,
8
- _ref$currentCaretPosi = _ref.currentCaretPosition,
9
- currentCaretPosition = _ref$currentCaretPosi === void 0 ? 0 : _ref$currentCaretPosi,
10
- conformedValue = _ref.conformedValue,
11
- rawValue = _ref.rawValue,
12
- placeholderChar = _ref.placeholderChar,
13
- placeholder = _ref.placeholder,
14
- _ref$indexesOfPipedCh = _ref.indexesOfPipedChars,
15
- indexesOfPipedChars = _ref$indexesOfPipedCh === void 0 ? defaultArray : _ref$indexesOfPipedCh,
16
- _ref$caretTrapIndexes = _ref.caretTrapIndexes,
17
- caretTrapIndexes = _ref$caretTrapIndexes === void 0 ? defaultArray : _ref$caretTrapIndexes;
18
-
6
+ previousConformedValue = _ref$previousConforme === void 0 ? emptyString : _ref$previousConforme,
7
+ _ref$previousPlacehol = _ref.previousPlaceholder,
8
+ previousPlaceholder = _ref$previousPlacehol === void 0 ? emptyString : _ref$previousPlacehol,
9
+ _ref$currentCaretPosi = _ref.currentCaretPosition,
10
+ currentCaretPosition = _ref$currentCaretPosi === void 0 ? 0 : _ref$currentCaretPosi,
11
+ conformedValue = _ref.conformedValue,
12
+ rawValue = _ref.rawValue,
13
+ placeholderChar = _ref.placeholderChar,
14
+ placeholder = _ref.placeholder,
15
+ _ref$indexesOfPipedCh = _ref.indexesOfPipedChars,
16
+ indexesOfPipedChars = _ref$indexesOfPipedCh === void 0 ? defaultArray : _ref$indexesOfPipedCh,
17
+ _ref$caretTrapIndexes = _ref.caretTrapIndexes,
18
+ caretTrapIndexes = _ref$caretTrapIndexes === void 0 ? defaultArray : _ref$caretTrapIndexes;
19
19
  if (currentCaretPosition === 0 || !rawValue.length) {
20
20
  return 0;
21
- } // Store lengths for faster performance?
22
-
21
+ }
23
22
 
23
+ // Store lengths for faster performance?
24
24
  var rawValueLength = rawValue.length;
25
25
  var previousConformedValueLength = previousConformedValue.length;
26
26
  var placeholderLength = placeholder.length;
27
- var conformedValueLength = conformedValue.length; // This tells us how long the edit is. If user modified input from `(2__)` to `(243__)`,
27
+ var conformedValueLength = conformedValue.length;
28
+
29
+ // This tells us how long the edit is. If user modified input from `(2__)` to `(243__)`,
28
30
  // we know the user in this instance pasted two characters
31
+ var editLength = rawValueLength - previousConformedValueLength;
29
32
 
30
- var editLength = rawValueLength - previousConformedValueLength; // If the edit length is positive, that means the user is adding characters, not deleting.
33
+ // If the edit length is positive, that means the user is adding characters, not deleting.
34
+ var isAddition = editLength > 0;
31
35
 
32
- var isAddition = editLength > 0; // This is the first raw value the user entered that needs to be conformed to mask
36
+ // This is the first raw value the user entered that needs to be conformed to mask
37
+ var isFirstRawValue = previousConformedValueLength === 0;
33
38
 
34
- var isFirstRawValue = previousConformedValueLength === 0; // A partial multi-character edit happens when the user makes a partial selection in their
39
+ // A partial multi-character edit happens when the user makes a partial selection in their
35
40
  // input and edits that selection. That is going from `(123) 432-4348` to `() 432-4348` by
36
41
  // selecting the first 3 digits and pressing backspace.
37
42
  //
38
43
  // Such cases can also happen when the user presses the backspace while holding down the ALT
39
44
  // key.
45
+ var isPartialMultiCharEdit = editLength > 1 && !isFirstRawValue;
40
46
 
41
- var isPartialMultiCharEdit = editLength > 1 && !isFirstRawValue; // This algorithm doesn't support all cases of multi-character edits, so we just return
47
+ // This algorithm doesn't support all cases of multi-character edits, so we just return
42
48
  // the current caret position.
43
49
  //
44
50
  // This works fine for most cases.
45
-
46
51
  if (isPartialMultiCharEdit) {
47
52
  return currentCaretPosition;
48
- } // For a mask like (111), if the `previousConformedValue` is (1__) and user attempts to enter
53
+ }
54
+
55
+ // For a mask like (111), if the `previousConformedValue` is (1__) and user attempts to enter
49
56
  // `f` so the `rawValue` becomes (1f__), the new `conformedValue` would be (1__), which is the
50
57
  // same as the original `previousConformedValue`. We handle this case differently for caret
51
58
  // positioning.
52
-
53
-
54
59
  var possiblyHasRejectedChar = isAddition && (previousConformedValue === conformedValue || conformedValue === placeholder);
55
60
  var startingSearchIndex = 0;
56
61
  var trackRightCharacter;
57
62
  var targetChar;
58
-
59
63
  if (possiblyHasRejectedChar) {
60
64
  startingSearchIndex = currentCaretPosition - editLength;
61
65
  } else {
@@ -64,114 +68,131 @@ export default function adjustCaretPosition(_ref) {
64
68
  //
65
69
  // We do that by seeing what character lies immediately before the caret, and then look for that
66
70
  // same character in the conformed input and place the caret there.
71
+
67
72
  // First, we need to normalize the inputs so that letter capitalization between raw input and
68
73
  // conformed input wouldn't matter.
69
74
  var normalizedConformedValue = conformedValue.toLowerCase();
70
- var normalizedRawValue = rawValue.toLowerCase(); // Then we take all characters that come before where the caret currently is.
75
+ var normalizedRawValue = rawValue.toLowerCase();
71
76
 
72
- var leftHalfChars = normalizedRawValue.substr(0, currentCaretPosition).split(emptyString); // Now we find all the characters in the left half that exist in the conformed input
73
- // This step ensures that we don't look for a character that was filtered out or rejected by `conformToMask`.
77
+ // Then we take all characters that come before where the caret currently is.
78
+ var leftHalfChars = normalizedRawValue.substr(0, currentCaretPosition).split(emptyString);
74
79
 
80
+ // Now we find all the characters in the left half that exist in the conformed input
81
+ // This step ensures that we don't look for a character that was filtered out or rejected by `conformToMask`.
75
82
  var intersection = leftHalfChars.filter(function (char) {
76
83
  return normalizedConformedValue.indexOf(char) !== -1;
77
- }); // The last character in the intersection is the character we want to look for in the conformed
84
+ });
85
+
86
+ // The last character in the intersection is the character we want to look for in the conformed
78
87
  // value and the one we want to adjust the caret close to
88
+ targetChar = intersection[intersection.length - 1];
79
89
 
80
- targetChar = intersection[intersection.length - 1]; // Calculate the number of mask characters in the previous placeholder
90
+ // Calculate the number of mask characters in the previous placeholder
81
91
  // from the start of the string up to the place where the caret is
82
-
83
92
  var previousLeftMaskChars = previousPlaceholder.substr(0, intersection.length).split(emptyString).filter(function (char) {
84
93
  return char !== placeholderChar;
85
- }).length; // Calculate the number of mask characters in the current placeholder
86
- // from the start of the string up to the place where the caret is
94
+ }).length;
87
95
 
96
+ // Calculate the number of mask characters in the current placeholder
97
+ // from the start of the string up to the place where the caret is
88
98
  var leftMaskChars = placeholder.substr(0, intersection.length).split(emptyString).filter(function (char) {
89
99
  return char !== placeholderChar;
90
- }).length; // Has the number of mask characters up to the caret changed?
100
+ }).length;
91
101
 
92
- var masklengthChanged = leftMaskChars !== previousLeftMaskChars; // Detect if `targetChar` is a mask character and has moved to the left
102
+ // Has the number of mask characters up to the caret changed?
103
+ var masklengthChanged = leftMaskChars !== previousLeftMaskChars;
93
104
 
94
- var targetIsMaskMovingLeft = previousPlaceholder[intersection.length - 1] !== undefined && placeholder[intersection.length - 2] !== undefined && previousPlaceholder[intersection.length - 1] !== placeholderChar && previousPlaceholder[intersection.length - 1] !== placeholder[intersection.length - 1] && previousPlaceholder[intersection.length - 1] === placeholder[intersection.length - 2]; // If deleting and the `targetChar` `is a mask character and `masklengthChanged` is true
105
+ // Detect if `targetChar` is a mask character and has moved to the left
106
+ var targetIsMaskMovingLeft = previousPlaceholder[intersection.length - 1] !== undefined && placeholder[intersection.length - 2] !== undefined && previousPlaceholder[intersection.length - 1] !== placeholderChar && previousPlaceholder[intersection.length - 1] !== placeholder[intersection.length - 1] && previousPlaceholder[intersection.length - 1] === placeholder[intersection.length - 2];
107
+
108
+ // If deleting and the `targetChar` `is a mask character and `masklengthChanged` is true
95
109
  // or the mask is moving to the left, we can't use the selected `targetChar` any longer
96
110
  // if we are not at the end of the string.
97
111
  // In this case, change tracking strategy and track the character to the right of the caret.
98
-
99
112
  if (!isAddition && (masklengthChanged || targetIsMaskMovingLeft) && previousLeftMaskChars > 0 && placeholder.indexOf(targetChar) > -1 && rawValue[currentCaretPosition] !== undefined) {
100
113
  trackRightCharacter = true;
101
114
  targetChar = rawValue[currentCaretPosition];
102
- } // It is possible that `targetChar` will appear multiple times in the conformed value.
115
+ }
116
+
117
+ // It is possible that `targetChar` will appear multiple times in the conformed value.
103
118
  // We need to know not to select a character that looks like our target character from the placeholder or
104
119
  // the piped characters, so we inspect the piped characters and the placeholder to see if they contain
105
120
  // characters that match our target character.
121
+
106
122
  // If the `conformedValue` got piped, we need to know which characters were piped in so that when we look for
107
123
  // our `targetChar`, we don't select a piped char by mistake
108
-
109
-
110
124
  var pipedChars = indexesOfPipedChars.map(function (index) {
111
125
  return normalizedConformedValue[index];
112
- }); // We need to know how many times the `targetChar` occurs in the piped characters.
126
+ });
113
127
 
128
+ // We need to know how many times the `targetChar` occurs in the piped characters.
114
129
  var countTargetCharInPipedChars = pipedChars.filter(function (char) {
115
130
  return char === targetChar;
116
- }).length; // We need to know how many times it occurs in the intersection
131
+ }).length;
117
132
 
133
+ // We need to know how many times it occurs in the intersection
118
134
  var countTargetCharInIntersection = intersection.filter(function (char) {
119
135
  return char === targetChar;
120
- }).length; // We need to know if the placeholder contains characters that look like
121
- // our `targetChar`, so we don't select one of those by mistake.
136
+ }).length;
122
137
 
138
+ // We need to know if the placeholder contains characters that look like
139
+ // our `targetChar`, so we don't select one of those by mistake.
123
140
  var countTargetCharInPlaceholder = placeholder.substr(0, placeholder.indexOf(placeholderChar)).split(emptyString).filter(function (char, index) {
124
- return (// Check if `char` is the same as our `targetChar`, so we account for it
125
- char === targetChar && // but also make sure that both the `rawValue` and placeholder don't have the same character at the same
141
+ return (
142
+ // Check if `char` is the same as our `targetChar`, so we account for it
143
+ char === targetChar &&
144
+ // but also make sure that both the `rawValue` and placeholder don't have the same character at the same
126
145
  // index because if they are equal, that means we are already counting those characters in
127
146
  // `countTargetCharInIntersection`
128
147
  rawValue[index] !== char
129
148
  );
130
- }).length; // The number of times we need to see occurrences of the `targetChar` before we know it is the one we're looking
131
- // for is:
149
+ }).length;
132
150
 
133
- var requiredNumberOfMatches = countTargetCharInPlaceholder + countTargetCharInIntersection + countTargetCharInPipedChars + ( // The character to the right of the caret isn't included in `intersection`
151
+ // The number of times we need to see occurrences of the `targetChar` before we know it is the one we're looking
152
+ // for is:
153
+ var requiredNumberOfMatches = countTargetCharInPlaceholder + countTargetCharInIntersection + countTargetCharInPipedChars + (
154
+ // The character to the right of the caret isn't included in `intersection`
134
155
  // so add one if we are tracking the character to the right
135
- trackRightCharacter ? 1 : 0); // Now we start looking for the location of the `targetChar`.
156
+ trackRightCharacter ? 1 : 0);
157
+
158
+ // Now we start looking for the location of the `targetChar`.
136
159
  // We keep looping forward and store the index in every iteration. Once we have encountered
137
160
  // enough occurrences of the target character, we break out of the loop
138
161
  // If are searching for the second `1` in `1214`, `startingSearchIndex` will point at `4`.
139
-
140
162
  var numberOfEncounteredMatches = 0;
141
-
142
163
  for (var i = 0; i < conformedValueLength; i++) {
143
164
  var conformedValueChar = normalizedConformedValue[i];
144
165
  startingSearchIndex = i + 1;
145
-
146
166
  if (conformedValueChar === targetChar) {
147
167
  numberOfEncounteredMatches++;
148
168
  }
149
-
150
169
  if (numberOfEncounteredMatches >= requiredNumberOfMatches) {
151
170
  break;
152
171
  }
153
172
  }
154
- } // At this point, if we simply return `startingSearchIndex` as the adjusted caret position,
173
+ }
174
+
175
+ // At this point, if we simply return `startingSearchIndex` as the adjusted caret position,
155
176
  // most cases would be handled. However, we want to fast forward or rewind the caret to the
156
177
  // closest placeholder character if it happens to be in a non-editable spot. That's what the next
157
178
  // logic is for.
158
- // In case of addition, we fast forward.
159
-
160
179
 
180
+ // In case of addition, we fast forward.
161
181
  if (isAddition) {
162
182
  // We want to remember the last placeholder character encountered so that if the mask
163
183
  // contains more characters after the last placeholder character, we don't forward the caret
164
184
  // that far to the right. Instead, we stop it at the last encountered placeholder character.
165
185
  var lastPlaceholderChar = startingSearchIndex;
166
-
167
186
  for (var _i = startingSearchIndex; _i <= placeholderLength; _i++) {
168
187
  if (placeholder[_i] === placeholderChar) {
169
188
  lastPlaceholderChar = _i;
170
189
  }
171
-
172
- if ( // If we're adding, we can position the caret at the next placeholder character.
173
- placeholder[_i] === placeholderChar || // If a caret trap was set by a mask function, we need to stop at the trap.
174
- caretTrapIndexes.indexOf(_i) !== -1 || // This is the end of the placeholder. We cannot move any further. Let's put the caret there.
190
+ if (
191
+ // If we're adding, we can position the caret at the next placeholder character.
192
+ placeholder[_i] === placeholderChar ||
193
+ // If a caret trap was set by a mask function, we need to stop at the trap.
194
+ caretTrapIndexes.indexOf(_i) !== -1 ||
195
+ // This is the end of the placeholder. We cannot move any further. Let's put the caret there.
175
196
  _i === placeholderLength) {
176
197
  return lastPlaceholderChar;
177
198
  }
@@ -184,10 +205,14 @@ export default function adjustCaretPosition(_ref) {
184
205
  for (var _i2 = startingSearchIndex - 1; _i2 >= 0; _i2--) {
185
206
  // If tracking the character to the right of the cursor, we move to the left until
186
207
  // we found the character and then place the caret right before it
187
- if ( // `targetChar` should be in `conformedValue`, since it was in `rawValue`, just
208
+
209
+ if (
210
+ // `targetChar` should be in `conformedValue`, since it was in `rawValue`, just
188
211
  // to the right of the caret
189
- conformedValue[_i2] === targetChar || // If a caret trap was set by a mask function, we need to stop at the trap.
190
- caretTrapIndexes.indexOf(_i2) !== -1 || // This is the beginning of the placeholder. We cannot move any further.
212
+ conformedValue[_i2] === targetChar ||
213
+ // If a caret trap was set by a mask function, we need to stop at the trap.
214
+ caretTrapIndexes.indexOf(_i2) !== -1 ||
215
+ // This is the beginning of the placeholder. We cannot move any further.
191
216
  // Let's put the caret there.
192
217
  _i2 === 0) {
193
218
  return _i2;
@@ -195,14 +220,19 @@ export default function adjustCaretPosition(_ref) {
195
220
  }
196
221
  } else {
197
222
  // Searching for the first placeholder or caret trap to the left
223
+
198
224
  for (var _i3 = startingSearchIndex; _i3 >= 0; _i3--) {
199
225
  // If we're deleting, we stop the caret right before the placeholder character.
200
226
  // For example, for mask `(111) 11`, current conformed input `(456) 86`. If user
201
227
  // modifies input to `(456 86`. That is, they deleted the `)`, we place the caret
202
228
  // right after the first `6`
203
- if ( // If we're deleting, we can position the caret right before the placeholder character
204
- placeholder[_i3 - 1] === placeholderChar || // If a caret trap was set by a mask function, we need to stop at the trap.
205
- caretTrapIndexes.indexOf(_i3) !== -1 || // This is the beginning of the placeholder. We cannot move any further.
229
+
230
+ if (
231
+ // If we're deleting, we can position the caret right before the placeholder character
232
+ placeholder[_i3 - 1] === placeholderChar ||
233
+ // If a caret trap was set by a mask function, we need to stop at the trap.
234
+ caretTrapIndexes.indexOf(_i3) !== -1 ||
235
+ // This is the beginning of the placeholder. We cannot move any further.
206
236
  // Let's put the caret there.
207
237
  _i3 === 0) {
208
238
  return _i3;
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { convertMaskToPlaceholder, processCaretTraps, defaultPlaceholderChar } from './utilities';
2
3
  export function isArray(value) {
3
4
  return Array.isArray && Array.isArray(value) || value instanceof Array;
@@ -6,15 +7,12 @@ export default function conformToMask(rawValue, mask, config) {
6
7
  if (rawValue === void 0) {
7
8
  rawValue = '';
8
9
  }
9
-
10
10
  if (mask === void 0) {
11
11
  mask = [];
12
12
  }
13
-
14
13
  if (config === void 0) {
15
14
  config = {};
16
15
  }
17
-
18
16
  if (!isArray(mask)) {
19
17
  // If someone passes a function as the mask property, we should call the
20
18
  // function to get the mask array - Normally this is handled by the
@@ -22,43 +20,50 @@ export default function conformToMask(rawValue, mask, config) {
22
20
  // to be used directly with `conformToMask`
23
21
  if (typeof mask === 'function') {
24
22
  // call the mask function to get the mask array
25
- mask = mask(rawValue, config); // mask functions can setup caret traps to have some control over how the caret moves. We need to process
26
- // the mask for any caret traps. `processCaretTraps` will remove the caret traps from the mask
23
+ mask = mask(rawValue, config);
27
24
 
25
+ // mask functions can setup caret traps to have some control over how the caret moves. We need to process
26
+ // the mask for any caret traps. `processCaretTraps` will remove the caret traps from the mask
28
27
  mask = processCaretTraps(mask).maskWithoutCaretTraps;
29
28
  } else {
30
29
  throw new Error('Text-mask:conformToMask; The mask property must be an array.');
31
30
  }
32
- } // These configurations tell us how to conform the mask
33
-
31
+ }
34
32
 
33
+ // These configurations tell us how to conform the mask
35
34
  var _config = config,
36
- _config$guide = _config.guide,
37
- guide = _config$guide === void 0 ? true : _config$guide,
38
- _config$previousConfo = _config.previousConformedValue,
39
- previousConformedValue = _config$previousConfo === void 0 ? '' : _config$previousConfo,
40
- _config$placeholderCh = _config.placeholderChar,
41
- placeholderChar = _config$placeholderCh === void 0 ? defaultPlaceholderChar : _config$placeholderCh,
42
- _config$placeholder = _config.placeholder,
43
- placeholder = _config$placeholder === void 0 ? convertMaskToPlaceholder(mask, placeholderChar) : _config$placeholder,
44
- _config$currentCaretP = _config.currentCaretPosition,
45
- currentCaretPosition = _config$currentCaretP === void 0 ? 0 : _config$currentCaretP,
46
- keepCharPositions = _config.keepCharPositions; // The configs below indicate that the user wants the algorithm to work in *no guide* mode
47
-
48
- var suppressGuide = guide === false && previousConformedValue !== undefined; // Calculate lengths once for performance
49
-
35
+ _config$guide = _config.guide,
36
+ guide = _config$guide === void 0 ? true : _config$guide,
37
+ _config$previousConfo = _config.previousConformedValue,
38
+ previousConformedValue = _config$previousConfo === void 0 ? '' : _config$previousConfo,
39
+ _config$placeholderCh = _config.placeholderChar,
40
+ placeholderChar = _config$placeholderCh === void 0 ? defaultPlaceholderChar : _config$placeholderCh,
41
+ _config$placeholder = _config.placeholder,
42
+ placeholder = _config$placeholder === void 0 ? convertMaskToPlaceholder(mask, placeholderChar) : _config$placeholder,
43
+ _config$currentCaretP = _config.currentCaretPosition,
44
+ currentCaretPosition = _config$currentCaretP === void 0 ? 0 : _config$currentCaretP,
45
+ keepCharPositions = _config.keepCharPositions; // The configs below indicate that the user wants the algorithm to work in *no guide* mode
46
+ var suppressGuide = guide === false && previousConformedValue !== undefined;
47
+
48
+ // Calculate lengths once for performance
50
49
  var rawValueLength = rawValue.length;
51
50
  var previousConformedValueLength = previousConformedValue.length;
52
51
  var placeholderLength = placeholder.length;
53
- var maskLength = mask.length; // This tells us the number of edited characters and the direction in which they were edited (+/-)
52
+ var maskLength = mask.length;
53
+
54
+ // This tells us the number of edited characters and the direction in which they were edited (+/-)
55
+ var editDistance = rawValueLength - previousConformedValueLength;
54
56
 
55
- var editDistance = rawValueLength - previousConformedValueLength; // In *no guide* mode, we need to know if the user is trying to add a character or not
57
+ // In *no guide* mode, we need to know if the user is trying to add a character or not
58
+ var isAddition = editDistance > 0;
56
59
 
57
- var isAddition = editDistance > 0; // Tells us the index of the first change. For (438) 394-4938 to (38) 394-4938, that would be 1
60
+ // Tells us the index of the first change. For (438) 394-4938 to (38) 394-4938, that would be 1
61
+ var indexOfFirstChange = currentCaretPosition + (isAddition ? -editDistance : 0);
58
62
 
59
- var indexOfFirstChange = currentCaretPosition + (isAddition ? -editDistance : 0); // We're also gonna need the index of last change, which we can derive as follows...
63
+ // We're also gonna need the index of last change, which we can derive as follows...
64
+ var indexOfLastChange = indexOfFirstChange + Math.abs(editDistance);
60
65
 
61
- var indexOfLastChange = indexOfFirstChange + Math.abs(editDistance); // If `conformToMask` is configured to keep character positions, that is, for mask 111, previous value
66
+ // If `conformToMask` is configured to keep character positions, that is, for mask 111, previous value
62
67
  // _2_ and raw value 3_2_, the new conformed value should be 32_, not 3_2 (default behavior). That's in the case of
63
68
  // addition. And in the case of deletion, previous value _23, raw value _3, the new conformed string should be
64
69
  // __3, not _3_ (default behavior)
@@ -66,56 +71,57 @@ export default function conformToMask(rawValue, mask, config) {
66
71
  // The next block of logic handles keeping character positions for the case of deletion. (Keeping
67
72
  // character positions for the case of addition is further down since it is handled differently.)
68
73
  // To do this, we want to compensate for all characters that were deleted
69
-
70
74
  if (keepCharPositions === true && !isAddition) {
71
75
  // We will be storing the new placeholder characters in this variable.
72
- var compensatingPlaceholderChars = ''; // For every character that was deleted from a placeholder position, we add a placeholder char
76
+ var compensatingPlaceholderChars = '';
73
77
 
78
+ // For every character that was deleted from a placeholder position, we add a placeholder char
74
79
  for (var i = indexOfFirstChange; i < indexOfLastChange; i++) {
75
80
  if (placeholder[i] === placeholderChar) {
76
81
  compensatingPlaceholderChars += placeholderChar;
77
82
  }
78
- } // Now we trick our algorithm by modifying the raw value to make it contain additional placeholder characters
83
+ }
84
+
85
+ // Now we trick our algorithm by modifying the raw value to make it contain additional placeholder characters
79
86
  // That way when the we start laying the characters again on the mask, it will keep the non-deleted characters
80
87
  // in their positions.
81
-
82
-
83
88
  rawValue = rawValue.slice(0, indexOfFirstChange) + compensatingPlaceholderChars + rawValue.slice(indexOfFirstChange, rawValueLength);
84
- } // Convert `rawValue` string to an array, and mark characters based on whether they are newly added or have
89
+ }
90
+
91
+ // Convert `rawValue` string to an array, and mark characters based on whether they are newly added or have
85
92
  // existed in the previous conformed value. Identifying new and old characters is needed for `conformToMask`
86
93
  // to work if it is configured to keep character positions.
87
-
88
-
89
94
  var rawValueArr = rawValue.split('').map(function (char, i) {
90
95
  return {
91
96
  char: char,
92
97
  isNew: i >= indexOfFirstChange && i < indexOfLastChange
93
98
  };
94
- }); // The loop below removes masking characters from user input. For example, for mask
99
+ });
100
+
101
+ // The loop below removes masking characters from user input. For example, for mask
95
102
  // `00 (111)`, the placeholder would be `00 (___)`. If user input is `00 (234)`, the loop below
96
103
  // would remove all characters but `234` from the `rawValueArr`. The rest of the algorithm
97
104
  // then would lay `234` on top of the available placeholder positions in the mask.
98
-
99
105
  for (var _i = rawValueLength - 1; _i >= 0; _i--) {
100
106
  var char = rawValueArr[_i].char;
101
-
102
107
  if (char !== placeholderChar) {
103
108
  var shouldOffset = _i >= indexOfFirstChange && previousConformedValueLength === maskLength;
104
-
105
109
  if (char === placeholder[shouldOffset ? _i - editDistance : _i]) {
106
110
  rawValueArr.splice(_i, 1);
107
111
  }
108
112
  }
109
- } // This is the variable that we will be filling with characters as we figure them out
110
- // in the algorithm below
111
-
113
+ }
112
114
 
115
+ // This is the variable that we will be filling with characters as we figure them out
116
+ // in the algorithm below
113
117
  var conformedValue = '';
114
- var someCharsRejected = false; // Ok, so first we loop through the placeholder looking for placeholder characters to fill up.
118
+ var someCharsRejected = false;
115
119
 
120
+ // Ok, so first we loop through the placeholder looking for placeholder characters to fill up.
116
121
  placeholderLoop: for (var _i2 = 0; _i2 < placeholderLength; _i2++) {
117
- var charInPlaceholder = placeholder[_i2]; // We see one. Let's find out what we can put in it.
122
+ var charInPlaceholder = placeholder[_i2];
118
123
 
124
+ // We see one. Let's find out what we can put in it.
119
125
  if (charInPlaceholder === placeholderChar) {
120
126
  // But before that, do we actually have any user characters that need a place?
121
127
  if (rawValueArr.length > 0) {
@@ -125,17 +131,18 @@ export default function conformToMask(rawValue, mask, config) {
125
131
  // Let's retrieve the first user character in the queue of characters we have left
126
132
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
127
133
  var _ref = rawValueArr.shift(),
128
- rawValueChar = _ref.char,
129
- isNew = _ref.isNew; // If the character we got from the user input is a placeholder character (which happens
134
+ rawValueChar = _ref.char,
135
+ isNew = _ref.isNew; // If the character we got from the user input is a placeholder character (which happens
130
136
  // regularly because user input could be something like (540) 90_-____, which includes
131
137
  // a bunch of `_` which are placeholder characters) and we are not in *no guide* mode,
132
138
  // then we map this placeholder character to the current spot in the placeholder
133
-
134
-
135
139
  if (rawValueChar === placeholderChar && suppressGuide !== true) {
136
- conformedValue += placeholderChar; // And we go to find the next placeholder character that needs filling
140
+ conformedValue += placeholderChar;
141
+
142
+ // And we go to find the next placeholder character that needs filling
143
+ continue placeholderLoop;
137
144
 
138
- continue placeholderLoop; // Else if, the character we got from the user input is not a placeholder, let's see
145
+ // Else if, the character we got from the user input is not a placeholder, let's see
139
146
  // if the current position in the mask can accept it.
140
147
  } else if (mask[_i2].test(rawValueChar)) {
141
148
  // we map the character differently based on whether we are keeping character positions or not.
@@ -152,76 +159,79 @@ export default function conformToMask(rawValue, mask, config) {
152
159
  // `9`, to the first available placeholder position, but then, there are no more spots available for the
153
160
  // `4` and `2`. So, we discard them and end up with a conformed value of `92__`.
154
161
  var rawValueArrLength = rawValueArr.length;
155
- var indexOfNextAvailablePlaceholderChar = null; // Let's loop through the remaining raw value characters. We are looking for either a suitable spot, ie,
162
+ var indexOfNextAvailablePlaceholderChar = null;
163
+
164
+ // Let's loop through the remaining raw value characters. We are looking for either a suitable spot, ie,
156
165
  // a placeholder character or a non-suitable spot, ie, a non-placeholder character that is not new.
157
166
  // If we see a suitable spot first, we store its position and exit the loop. If we see a non-suitable
158
167
  // spot first, we exit the loop and our `indexOfNextAvailablePlaceholderChar` will stay as `null`.
159
-
160
168
  for (var _i3 = 0; _i3 < rawValueArrLength; _i3++) {
161
169
  var charData = rawValueArr[_i3];
162
-
163
170
  if (charData.char !== placeholderChar && charData.isNew === false) {
164
171
  break;
165
172
  }
166
-
167
173
  if (charData.char === placeholderChar) {
168
174
  indexOfNextAvailablePlaceholderChar = _i3;
169
175
  break;
170
176
  }
171
- } // If `indexOfNextAvailablePlaceholderChar` is not `null`, that means the character is not blocked.
177
+ }
178
+
179
+ // If `indexOfNextAvailablePlaceholderChar` is not `null`, that means the character is not blocked.
172
180
  // We can map it. And to keep the character positions, we remove the placeholder character
173
181
  // from the remaining characters
174
-
175
-
176
182
  if (indexOfNextAvailablePlaceholderChar !== null) {
177
183
  conformedValue += rawValueChar;
178
- rawValueArr.splice(indexOfNextAvailablePlaceholderChar, 1); // If `indexOfNextAvailablePlaceholderChar` is `null`, that means the character is blocked. We have to
184
+ rawValueArr.splice(indexOfNextAvailablePlaceholderChar, 1);
185
+
186
+ // If `indexOfNextAvailablePlaceholderChar` is `null`, that means the character is blocked. We have to
179
187
  // discard it.
180
188
  } else {
181
189
  _i2--;
182
190
  }
183
- } // Since we've mapped this placeholder position. We move on to the next one.
184
-
191
+ }
185
192
 
193
+ // Since we've mapped this placeholder position. We move on to the next one.
186
194
  continue placeholderLoop;
187
195
  } else {
188
196
  someCharsRejected = true;
189
197
  }
190
198
  }
191
- } // We reach this point when we've mapped all the user input characters to placeholder
199
+ }
200
+
201
+ // We reach this point when we've mapped all the user input characters to placeholder
192
202
  // positions in the mask. In *guide* mode, we append the left over characters in the
193
203
  // placeholder to the `conformedString`, but in *no guide* mode, we don't wanna do that.
194
204
  //
195
205
  // That is, for mask `(111)` and user input `2`, we want to return `(2`, not `(2__)`.
196
-
197
-
198
206
  if (suppressGuide === false) {
199
207
  conformedValue += placeholder.substr(_i2, placeholderLength);
200
- } // And we break
208
+ }
201
209
 
210
+ // And we break
211
+ break;
202
212
 
203
- break; // Else, the charInPlaceholder is not a placeholderChar. That is, we cannot fill it
213
+ // Else, the charInPlaceholder is not a placeholderChar. That is, we cannot fill it
204
214
  // with user input. So we just map it to the final output
205
215
  } else {
206
216
  conformedValue += charInPlaceholder;
207
217
  }
208
- } // The following logic is needed to deal with the case of deletion in *no guide* mode.
218
+ }
219
+
220
+ // The following logic is needed to deal with the case of deletion in *no guide* mode.
209
221
  //
210
222
  // Consider the silly mask `(111) /// 1`. What if user tries to delete the last placeholder
211
223
  // position? Something like `(589) /// `. We want to conform that to `(589`. Not `(589) /// `.
212
224
  // That's why the logic below finds the last filled placeholder character, and removes everything
213
225
  // from that point on.
214
-
215
-
216
226
  if (suppressGuide && isAddition === false) {
217
- var indexOfLastFilledPlaceholderChar = null; // Find the last filled placeholder position and substring from there
227
+ var indexOfLastFilledPlaceholderChar = null;
218
228
 
229
+ // Find the last filled placeholder position and substring from there
219
230
  for (var _i4 = 0; _i4 < conformedValue.length; _i4++) {
220
231
  if (placeholder[_i4] === placeholderChar) {
221
232
  indexOfLastFilledPlaceholderChar = _i4;
222
233
  }
223
234
  }
224
-
225
235
  if (indexOfLastFilledPlaceholderChar !== null) {
226
236
  // We substring from the beginning until the position after the last filled placeholder char.
227
237
  conformedValue = conformedValue.substr(0, indexOfLastFilledPlaceholderChar + 1);
@@ -231,7 +241,6 @@ export default function conformToMask(rawValue, mask, config) {
231
241
  conformedValue = '';
232
242
  }
233
243
  }
234
-
235
244
  return {
236
245
  conformedValue: conformedValue,
237
246
  meta: {