@itwin/itwinui-react 3.0.4 → 3.0.6

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 (500) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/cjs/core/Alert/Alert.js +46 -106
  3. package/cjs/core/Avatar/Avatar.js +21 -58
  4. package/cjs/core/AvatarGroup/AvatarGroup.js +26 -64
  5. package/cjs/core/Backdrop/Backdrop.js +8 -16
  6. package/cjs/core/Badge/Badge.js +22 -39
  7. package/cjs/core/Breadcrumbs/Breadcrumbs.js +61 -138
  8. package/cjs/core/ButtonGroup/ButtonGroup.js +32 -68
  9. package/cjs/core/Buttons/Button.js +11 -57
  10. package/cjs/core/Buttons/DropdownButton.js +15 -49
  11. package/cjs/core/Buttons/IconButton.js +13 -53
  12. package/cjs/core/Buttons/IdeasButton.js +8 -20
  13. package/cjs/core/Buttons/SplitButton.js +43 -103
  14. package/cjs/core/Carousel/Carousel.js +54 -78
  15. package/cjs/core/Carousel/CarouselContext.js +4 -4
  16. package/cjs/core/Carousel/CarouselDot.js +12 -23
  17. package/cjs/core/Carousel/CarouselDotsList.js +92 -153
  18. package/cjs/core/Carousel/CarouselNavigation.js +41 -84
  19. package/cjs/core/Carousel/CarouselSlide.js +26 -49
  20. package/cjs/core/Carousel/CarouselSlider.js +47 -66
  21. package/cjs/core/Checkbox/Checkbox.js +32 -88
  22. package/cjs/core/ColorPicker/ColorBuilder.js +174 -292
  23. package/cjs/core/ColorPicker/ColorInputPanel.js +246 -411
  24. package/cjs/core/ColorPicker/ColorPalette.js +23 -47
  25. package/cjs/core/ColorPicker/ColorPicker.js +53 -87
  26. package/cjs/core/ColorPicker/ColorPickerContext.js +9 -11
  27. package/cjs/core/ColorPicker/ColorSwatch.js +15 -40
  28. package/cjs/core/ComboBox/ComboBox.js +280 -402
  29. package/cjs/core/ComboBox/ComboBoxEndIcon.js +12 -28
  30. package/cjs/core/ComboBox/ComboBoxInput.js +131 -207
  31. package/cjs/core/ComboBox/ComboBoxInputContainer.js +12 -35
  32. package/cjs/core/ComboBox/ComboBoxMenu.js +43 -87
  33. package/cjs/core/ComboBox/ComboBoxMenuItem.js +21 -73
  34. package/cjs/core/ComboBox/ComboBoxMultipleContainer.js +7 -13
  35. package/cjs/core/ComboBox/helpers.js +43 -47
  36. package/cjs/core/DatePicker/DatePicker.js +333 -569
  37. package/cjs/core/Dialog/Dialog.js +36 -65
  38. package/cjs/core/Dialog/DialogBackdrop.js +27 -47
  39. package/cjs/core/Dialog/DialogButtonBar.js +3 -3
  40. package/cjs/core/Dialog/DialogContent.js +18 -26
  41. package/cjs/core/Dialog/DialogContext.js +5 -5
  42. package/cjs/core/Dialog/DialogDragContext.js +8 -8
  43. package/cjs/core/Dialog/DialogMain.js +137 -183
  44. package/cjs/core/Dialog/DialogTitleBar.js +20 -67
  45. package/cjs/core/Dialog/DialogTitleBarTitle.js +3 -3
  46. package/cjs/core/Divider/Divider.js +8 -14
  47. package/cjs/core/DropdownMenu/DropdownMenu.js +46 -80
  48. package/cjs/core/ExpandableBlock/ExpandableBlock.js +101 -206
  49. package/cjs/core/Fieldset/Fieldset.js +14 -25
  50. package/cjs/core/FileUpload/FileEmptyCard.js +17 -43
  51. package/cjs/core/FileUpload/FileUpload.js +42 -88
  52. package/cjs/core/FileUpload/FileUploadCard.js +84 -169
  53. package/cjs/core/FileUpload/FileUploadTemplate.js +16 -51
  54. package/cjs/core/Flex/Flex.js +77 -93
  55. package/cjs/core/Footer/Footer.js +64 -103
  56. package/cjs/core/Footer/FooterItem.js +3 -3
  57. package/cjs/core/Footer/FooterList.js +3 -3
  58. package/cjs/core/Footer/FooterSeparator.js +5 -8
  59. package/cjs/core/Header/Header.js +22 -67
  60. package/cjs/core/Header/HeaderBasicButton.js +13 -24
  61. package/cjs/core/Header/HeaderBreadcrumbs.js +14 -38
  62. package/cjs/core/Header/HeaderButton.js +22 -76
  63. package/cjs/core/Header/HeaderDropdownButton.js +20 -48
  64. package/cjs/core/Header/HeaderLogo.js +11 -42
  65. package/cjs/core/Header/HeaderSplitButton.js +21 -66
  66. package/cjs/core/Icon/Icon.js +18 -32
  67. package/cjs/core/InformationPanel/InformationPanel.js +42 -77
  68. package/cjs/core/InformationPanel/InformationPanelBody.js +4 -6
  69. package/cjs/core/InformationPanel/InformationPanelContent.js +8 -20
  70. package/cjs/core/InformationPanel/InformationPanelHeader.js +14 -34
  71. package/cjs/core/InformationPanel/InformationPanelWrapper.js +4 -6
  72. package/cjs/core/Input/Input.js +10 -18
  73. package/cjs/core/InputGrid/InputGrid.js +8 -17
  74. package/cjs/core/InputGroup/InputGroup.js +25 -72
  75. package/cjs/core/InputWithDecorations/InputWithDecorations.js +23 -51
  76. package/cjs/core/Label/Label.js +11 -32
  77. package/cjs/core/LabeledInput/LabeledInput.js +20 -70
  78. package/cjs/core/LabeledSelect/LabeledSelect.js +28 -77
  79. package/cjs/core/LabeledTextarea/LabeledTextarea.js +7 -13
  80. package/cjs/core/LinkAction/LinkAction.js +3 -3
  81. package/cjs/core/List/List.js +3 -3
  82. package/cjs/core/List/ListItem.js +35 -55
  83. package/cjs/core/Menu/Menu.js +53 -66
  84. package/cjs/core/Menu/MenuDivider.js +4 -4
  85. package/cjs/core/Menu/MenuExtraContent.js +4 -4
  86. package/cjs/core/Menu/MenuItem.js +92 -168
  87. package/cjs/core/Menu/MenuItemSkeleton.js +19 -54
  88. package/cjs/core/Modal/Modal.js +11 -38
  89. package/cjs/core/Modal/ModalButtonBar.js +4 -7
  90. package/cjs/core/Modal/ModalContent.js +3 -3
  91. package/cjs/core/NonIdealState/ErrorPage.js +131 -187
  92. package/cjs/core/NonIdealState/NonIdealState.js +12 -77
  93. package/cjs/core/NotificationMarker/NotificationMarker.js +8 -29
  94. package/cjs/core/Overlay/Overlay.d.ts +20 -24
  95. package/cjs/core/Overlay/Overlay.js +50 -64
  96. package/cjs/core/Popover/Popover.js +87 -157
  97. package/cjs/core/ProgressIndicators/ProgressLinear.js +11 -49
  98. package/cjs/core/ProgressIndicators/ProgressRadial.js +19 -51
  99. package/cjs/core/Radio/Radio.js +12 -54
  100. package/cjs/core/RadioTiles/RadioTile.js +14 -80
  101. package/cjs/core/RadioTiles/RadioTileGroup.js +9 -16
  102. package/cjs/core/SearchBox/SearchBox.js +104 -221
  103. package/cjs/core/Select/Select.js +141 -276
  104. package/cjs/core/Select/SelectTag.js +9 -21
  105. package/cjs/core/Select/SelectTagContainer.js +14 -30
  106. package/cjs/core/SideNavigation/SideNavigation.js +29 -138
  107. package/cjs/core/SideNavigation/SidenavButton.js +8 -30
  108. package/cjs/core/SideNavigation/SidenavSubmenu.js +9 -23
  109. package/cjs/core/SideNavigation/SidenavSubmenuHeader.js +10 -29
  110. package/cjs/core/SkipToContentLink/SkipToContentLink.js +8 -20
  111. package/cjs/core/Slider/Slider.js +195 -376
  112. package/cjs/core/Slider/Thumb.js +57 -108
  113. package/cjs/core/Slider/Track.js +55 -83
  114. package/cjs/core/StatusMessage/StatusMessage.js +12 -34
  115. package/cjs/core/Stepper/Stepper.js +21 -80
  116. package/cjs/core/Stepper/StepperStep.js +36 -109
  117. package/cjs/core/Stepper/WorkflowDiagram.js +15 -38
  118. package/cjs/core/Stepper/WorkflowDiagramStep.js +11 -39
  119. package/cjs/core/Surface/Surface.js +54 -94
  120. package/cjs/core/Table/SubRowExpander.js +15 -37
  121. package/cjs/core/Table/Table.js +419 -763
  122. package/cjs/core/Table/TableCell.js +63 -113
  123. package/cjs/core/Table/TablePaginator.js +136 -312
  124. package/cjs/core/Table/TableRowMemoized.js +64 -137
  125. package/cjs/core/Table/actionHandlers/expandHandler.js +12 -12
  126. package/cjs/core/Table/actionHandlers/filterHandler.js +17 -25
  127. package/cjs/core/Table/actionHandlers/index.js +14 -56
  128. package/cjs/core/Table/actionHandlers/resizeHandler.js +13 -13
  129. package/cjs/core/Table/actionHandlers/selectHandler.js +98 -128
  130. package/cjs/core/Table/cells/DefaultCell.js +13 -48
  131. package/cjs/core/Table/cells/EditableCell.js +46 -75
  132. package/cjs/core/Table/cells/index.js +6 -16
  133. package/cjs/core/Table/columns/actionColumn.js +67 -97
  134. package/cjs/core/Table/columns/expanderColumn.js +32 -46
  135. package/cjs/core/Table/columns/index.js +11 -41
  136. package/cjs/core/Table/columns/selectionColumn.js +29 -57
  137. package/cjs/core/Table/filters/BaseFilter.js +13 -24
  138. package/cjs/core/Table/filters/DateRangeFilter/DatePickerInput.js +52 -120
  139. package/cjs/core/Table/filters/DateRangeFilter/DateRangeFilter.js +60 -120
  140. package/cjs/core/Table/filters/FilterButtonBar.js +16 -39
  141. package/cjs/core/Table/filters/FilterToggle.js +26 -62
  142. package/cjs/core/Table/filters/NumberRangeFilter/NumberRangeFilter.js +36 -58
  143. package/cjs/core/Table/filters/TextFilter/TextFilter.js +28 -40
  144. package/cjs/core/Table/filters/customFilterFunctions.js +14 -16
  145. package/cjs/core/Table/filters/defaultFilterFunctions.js +81 -86
  146. package/cjs/core/Table/filters/index.js +11 -35
  147. package/cjs/core/Table/filters/tableFilters.js +32 -44
  148. package/cjs/core/Table/filters/types.js +2 -2
  149. package/cjs/core/Table/hooks/index.js +19 -67
  150. package/cjs/core/Table/hooks/useColumnDragAndDrop.js +86 -101
  151. package/cjs/core/Table/hooks/useExpanderCell.js +25 -33
  152. package/cjs/core/Table/hooks/useResizeColumns.js +290 -362
  153. package/cjs/core/Table/hooks/useScrollToRow.js +38 -46
  154. package/cjs/core/Table/hooks/useSelectionCell.js +10 -17
  155. package/cjs/core/Table/hooks/useStickyColumns.js +62 -64
  156. package/cjs/core/Table/hooks/useSubRowFiltering.js +88 -95
  157. package/cjs/core/Table/hooks/useSubRowSelection.js +31 -32
  158. package/cjs/core/Table/index.js +18 -78
  159. package/cjs/core/Table/utils.js +40 -42
  160. package/cjs/core/Tabs/Tabs.js +232 -417
  161. package/cjs/core/Tag/Tag.js +15 -42
  162. package/cjs/core/Tag/TagContainer.js +11 -23
  163. package/cjs/core/Textarea/Textarea.js +6 -11
  164. package/cjs/core/ThemeProvider/ThemeContext.js +4 -4
  165. package/cjs/core/ThemeProvider/ThemeProvider.js +52 -105
  166. package/cjs/core/Tile/Tile.js +230 -410
  167. package/cjs/core/TimePicker/TimePicker.js +234 -458
  168. package/cjs/core/Toast/Toast.js +107 -204
  169. package/cjs/core/Toast/Toaster.js +77 -102
  170. package/cjs/core/ToggleSwitch/ToggleSwitch.js +23 -66
  171. package/cjs/core/Tooltip/Tooltip.js +91 -137
  172. package/cjs/core/TransferList/TransferList.js +103 -177
  173. package/cjs/core/Tree/Tree.js +129 -204
  174. package/cjs/core/Tree/TreeContext.js +9 -9
  175. package/cjs/core/Tree/TreeNode.js +104 -207
  176. package/cjs/core/Tree/TreeNodeExpander.js +12 -26
  177. package/cjs/core/Typography/Anchor.js +3 -3
  178. package/cjs/core/Typography/Blockquote.js +10 -18
  179. package/cjs/core/Typography/Code.js +3 -3
  180. package/cjs/core/Typography/Kbd.js +21 -30
  181. package/cjs/core/Typography/Text.js +13 -26
  182. package/cjs/core/VisuallyHidden/VisuallyHidden.js +8 -14
  183. package/cjs/core/utils/color/ColorValue.js +453 -535
  184. package/cjs/core/utils/color/index.js +4 -4
  185. package/cjs/core/utils/components/AutoclearingHiddenLiveRegion.js +13 -20
  186. package/cjs/core/utils/components/Box.js +3 -3
  187. package/cjs/core/utils/components/ButtonBase.js +20 -38
  188. package/cjs/core/utils/components/FocusTrap.js +38 -47
  189. package/cjs/core/utils/components/InputContainer.js +19 -58
  190. package/cjs/core/utils/components/InputFlexContainer.js +8 -24
  191. package/cjs/core/utils/components/MiddleTextTruncation.js +22 -32
  192. package/cjs/core/utils/components/Portal.js +20 -22
  193. package/cjs/core/utils/components/Resizer.js +196 -253
  194. package/cjs/core/utils/components/VirtualScroll.js +223 -304
  195. package/cjs/core/utils/components/WithCSSTransition.js +32 -49
  196. package/cjs/core/utils/components/index.js +14 -14
  197. package/cjs/core/utils/functions/colors.js +22 -25
  198. package/cjs/core/utils/functions/date.js +10 -10
  199. package/cjs/core/utils/functions/dev.js +14 -13
  200. package/cjs/core/utils/functions/dom.d.ts +2 -1
  201. package/cjs/core/utils/functions/dom.js +22 -25
  202. package/cjs/core/utils/functions/focusable.js +17 -26
  203. package/cjs/core/utils/functions/import.js +23 -46
  204. package/cjs/core/utils/functions/index.js +13 -13
  205. package/cjs/core/utils/functions/numbers.d.ts +7 -0
  206. package/cjs/core/utils/functions/numbers.js +21 -10
  207. package/cjs/core/utils/functions/polymorphic.js +30 -43
  208. package/cjs/core/utils/functions/react.js +24 -26
  209. package/cjs/core/utils/functions/supports.js +4 -5
  210. package/cjs/core/utils/hooks/index.js +17 -17
  211. package/cjs/core/utils/hooks/useContainerWidth.js +19 -26
  212. package/cjs/core/utils/hooks/useControlledState.js +12 -21
  213. package/cjs/core/utils/hooks/useDragAndDrop.js +87 -110
  214. package/cjs/core/utils/hooks/useEventListener.js +22 -22
  215. package/cjs/core/utils/hooks/useGlobals.js +27 -33
  216. package/cjs/core/utils/hooks/useId.js +8 -10
  217. package/cjs/core/utils/hooks/useIntersection.js +24 -30
  218. package/cjs/core/utils/hooks/useIsClient.js +9 -9
  219. package/cjs/core/utils/hooks/useIsomorphicLayoutEffect.js +5 -6
  220. package/cjs/core/utils/hooks/useLatestRef.js +9 -9
  221. package/cjs/core/utils/hooks/useMediaQuery.js +31 -31
  222. package/cjs/core/utils/hooks/useMergedRefs.js +16 -15
  223. package/cjs/core/utils/hooks/useOverflow.js +57 -70
  224. package/cjs/core/utils/hooks/useResizeObserver.js +17 -22
  225. package/cjs/core/utils/hooks/useSafeContext.js +9 -9
  226. package/cjs/core/utils/icons/StatusIconMap.js +12 -28
  227. package/cjs/core/utils/icons/Svg.js +3 -3
  228. package/cjs/core/utils/icons/SvgCalendar.js +7 -12
  229. package/cjs/core/utils/icons/SvgCaretDownSmall.js +7 -12
  230. package/cjs/core/utils/icons/SvgCaretRightSmall.js +7 -12
  231. package/cjs/core/utils/icons/SvgCaretUpSmall.js +7 -12
  232. package/cjs/core/utils/icons/SvgCheckmark.js +7 -10
  233. package/cjs/core/utils/icons/SvgCheckmarkSmall.js +7 -12
  234. package/cjs/core/utils/icons/SvgChevronLeft.js +7 -12
  235. package/cjs/core/utils/icons/SvgChevronLeftDouble.js +7 -12
  236. package/cjs/core/utils/icons/SvgChevronRight.js +7 -12
  237. package/cjs/core/utils/icons/SvgChevronRightDouble.js +7 -12
  238. package/cjs/core/utils/icons/SvgClose.js +7 -12
  239. package/cjs/core/utils/icons/SvgCloseSmall.js +7 -12
  240. package/cjs/core/utils/icons/SvgColumnManager.js +7 -12
  241. package/cjs/core/utils/icons/SvgDocument.js +7 -10
  242. package/cjs/core/utils/icons/SvgFilter.js +7 -10
  243. package/cjs/core/utils/icons/SvgFilterHollow.js +7 -12
  244. package/cjs/core/utils/icons/SvgImportantSmall.js +7 -12
  245. package/cjs/core/utils/icons/SvgInfoCircular.js +7 -12
  246. package/cjs/core/utils/icons/SvgMore.js +7 -12
  247. package/cjs/core/utils/icons/SvgMoreVertical.js +7 -12
  248. package/cjs/core/utils/icons/SvgNew.js +7 -12
  249. package/cjs/core/utils/icons/SvgSearch.js +7 -12
  250. package/cjs/core/utils/icons/SvgSmileyHappy.js +7 -12
  251. package/cjs/core/utils/icons/SvgSortDown.js +7 -12
  252. package/cjs/core/utils/icons/SvgSortUp.js +7 -12
  253. package/cjs/core/utils/icons/SvgStatusError.js +7 -12
  254. package/cjs/core/utils/icons/SvgStatusSuccess.js +7 -12
  255. package/cjs/core/utils/icons/SvgStatusWarning.js +7 -12
  256. package/cjs/core/utils/icons/SvgSwap.js +7 -12
  257. package/cjs/core/utils/icons/SvgUpload.js +7 -12
  258. package/cjs/core/utils/icons/index.js +34 -34
  259. package/cjs/core/utils/index.js +10 -10
  260. package/cjs/core/utils/props.js +2 -2
  261. package/cjs/core/utils/types.js +2 -2
  262. package/cjs/index.js +229 -949
  263. package/cjs/react-table/react-table.js +2 -2
  264. package/cjs/styles.js +412 -425
  265. package/esm/core/Alert/Alert.js +39 -106
  266. package/esm/core/Avatar/Avatar.js +14 -42
  267. package/esm/core/AvatarGroup/AvatarGroup.js +20 -58
  268. package/esm/core/Backdrop/Backdrop.js +2 -10
  269. package/esm/core/Badge/Badge.js +16 -31
  270. package/esm/core/Breadcrumbs/Breadcrumbs.js +55 -135
  271. package/esm/core/ButtonGroup/ButtonGroup.js +25 -61
  272. package/esm/core/Buttons/Button.js +5 -45
  273. package/esm/core/Buttons/DropdownButton.js +7 -37
  274. package/esm/core/Buttons/IconButton.js +5 -40
  275. package/esm/core/Buttons/IdeasButton.js +2 -12
  276. package/esm/core/Buttons/SplitButton.js +34 -101
  277. package/esm/core/Carousel/Carousel.js +43 -72
  278. package/esm/core/Carousel/CarouselDot.js +6 -17
  279. package/esm/core/Carousel/CarouselDotsList.js +85 -147
  280. package/esm/core/Carousel/CarouselNavigation.js +32 -68
  281. package/esm/core/Carousel/CarouselSlide.js +19 -41
  282. package/esm/core/Carousel/CarouselSlider.js +41 -65
  283. package/esm/core/Checkbox/Checkbox.js +25 -78
  284. package/esm/core/ColorPicker/ColorBuilder.js +167 -280
  285. package/esm/core/ColorPicker/ColorInputPanel.js +237 -395
  286. package/esm/core/ColorPicker/ColorPalette.js +14 -35
  287. package/esm/core/ColorPicker/ColorPicker.js +46 -79
  288. package/esm/core/ColorPicker/ColorPickerContext.js +5 -7
  289. package/esm/core/ColorPicker/ColorSwatch.js +7 -24
  290. package/esm/core/ComboBox/ComboBox.js +267 -396
  291. package/esm/core/ComboBox/ComboBoxEndIcon.js +5 -18
  292. package/esm/core/ComboBox/ComboBoxInput.js +125 -197
  293. package/esm/core/ComboBox/ComboBoxInputContainer.js +5 -20
  294. package/esm/core/ComboBox/ComboBoxMenu.js +37 -77
  295. package/esm/core/ComboBox/ComboBoxMenuItem.js +14 -61
  296. package/esm/core/ComboBox/ComboBoxMultipleContainer.js +2 -6
  297. package/esm/core/ComboBox/helpers.js +38 -38
  298. package/esm/core/DatePicker/DatePicker.js +326 -555
  299. package/esm/core/Dialog/Dialog.js +24 -53
  300. package/esm/core/Dialog/DialogBackdrop.js +19 -39
  301. package/esm/core/Dialog/DialogContent.js +12 -20
  302. package/esm/core/Dialog/DialogContext.js +1 -1
  303. package/esm/core/Dialog/DialogDragContext.js +4 -4
  304. package/esm/core/Dialog/DialogMain.js +128 -177
  305. package/esm/core/Dialog/DialogTitleBar.js +10 -45
  306. package/esm/core/Divider/Divider.js +2 -8
  307. package/esm/core/DropdownMenu/DropdownMenu.js +40 -75
  308. package/esm/core/ExpandableBlock/ExpandableBlock.js +92 -193
  309. package/esm/core/Fieldset/Fieldset.js +8 -19
  310. package/esm/core/FileUpload/FileEmptyCard.js +8 -19
  311. package/esm/core/FileUpload/FileUpload.js +36 -72
  312. package/esm/core/FileUpload/FileUploadCard.js +76 -153
  313. package/esm/core/FileUpload/FileUploadTemplate.js +9 -37
  314. package/esm/core/Flex/Flex.js +71 -87
  315. package/esm/core/Footer/Footer.js +55 -86
  316. package/esm/core/Footer/FooterSeparator.js +1 -1
  317. package/esm/core/Header/Header.js +14 -55
  318. package/esm/core/Header/HeaderBasicButton.js +7 -15
  319. package/esm/core/Header/HeaderBreadcrumbs.js +8 -32
  320. package/esm/core/Header/HeaderButton.js +14 -62
  321. package/esm/core/Header/HeaderDropdownButton.js +13 -42
  322. package/esm/core/Header/HeaderLogo.js +5 -36
  323. package/esm/core/Header/HeaderSplitButton.js +14 -61
  324. package/esm/core/Icon/Icon.js +12 -26
  325. package/esm/core/InformationPanel/InformationPanel.js +36 -71
  326. package/esm/core/InformationPanel/InformationPanelContent.js +3 -17
  327. package/esm/core/InformationPanel/InformationPanelHeader.js +8 -32
  328. package/esm/core/InformationPanel/InformationPanelWrapper.js +1 -3
  329. package/esm/core/Input/Input.js +4 -12
  330. package/esm/core/InputGrid/InputGrid.js +2 -11
  331. package/esm/core/InputGroup/InputGroup.js +16 -57
  332. package/esm/core/InputWithDecorations/InputWithDecorations.js +11 -42
  333. package/esm/core/Label/Label.js +5 -26
  334. package/esm/core/LabeledInput/LabeledInput.js +10 -63
  335. package/esm/core/LabeledSelect/LabeledSelect.js +18 -67
  336. package/esm/core/LabeledTextarea/LabeledTextarea.js +2 -8
  337. package/esm/core/List/ListItem.js +28 -46
  338. package/esm/core/Menu/Menu.js +48 -64
  339. package/esm/core/Menu/MenuDivider.js +1 -1
  340. package/esm/core/Menu/MenuExtraContent.js +1 -1
  341. package/esm/core/Menu/MenuItem.js +84 -164
  342. package/esm/core/Menu/MenuItemSkeleton.js +12 -43
  343. package/esm/core/Modal/Modal.js +6 -33
  344. package/esm/core/NonIdealState/ErrorPage.js +123 -173
  345. package/esm/core/NonIdealState/NonIdealState.js +6 -65
  346. package/esm/core/NotificationMarker/NotificationMarker.js +2 -20
  347. package/esm/core/Overlay/Overlay.d.ts +20 -24
  348. package/esm/core/Overlay/Overlay.js +45 -55
  349. package/esm/core/Popover/Popover.js +80 -172
  350. package/esm/core/ProgressIndicators/ProgressLinear.js +5 -40
  351. package/esm/core/ProgressIndicators/ProgressRadial.js +14 -40
  352. package/esm/core/Radio/Radio.js +6 -45
  353. package/esm/core/RadioTiles/RadioTile.js +8 -62
  354. package/esm/core/RadioTiles/RadioTileGroup.js +3 -10
  355. package/esm/core/SearchBox/SearchBox.js +97 -214
  356. package/esm/core/Select/Select.js +130 -265
  357. package/esm/core/Select/SelectTag.js +3 -15
  358. package/esm/core/Select/SelectTagContainer.js +7 -20
  359. package/esm/core/SideNavigation/SideNavigation.js +21 -118
  360. package/esm/core/SideNavigation/SidenavButton.js +2 -24
  361. package/esm/core/SideNavigation/SidenavSubmenu.js +3 -14
  362. package/esm/core/SideNavigation/SidenavSubmenuHeader.js +4 -20
  363. package/esm/core/SkipToContentLink/SkipToContentLink.js +2 -11
  364. package/esm/core/Slider/Slider.js +187 -340
  365. package/esm/core/Slider/Thumb.js +50 -97
  366. package/esm/core/Slider/Track.js +49 -74
  367. package/esm/core/StatusMessage/StatusMessage.js +5 -23
  368. package/esm/core/Stepper/Stepper.js +14 -70
  369. package/esm/core/Stepper/StepperStep.js +29 -92
  370. package/esm/core/Stepper/WorkflowDiagram.js +8 -21
  371. package/esm/core/Stepper/WorkflowDiagramStep.js +4 -22
  372. package/esm/core/Surface/Surface.js +48 -84
  373. package/esm/core/Table/SubRowExpander.js +9 -31
  374. package/esm/core/Table/Table.js +408 -763
  375. package/esm/core/Table/TableCell.js +53 -87
  376. package/esm/core/Table/TablePaginator.js +125 -306
  377. package/esm/core/Table/TableRowMemoized.js +58 -129
  378. package/esm/core/Table/actionHandlers/expandHandler.js +10 -10
  379. package/esm/core/Table/actionHandlers/filterHandler.js +15 -23
  380. package/esm/core/Table/actionHandlers/index.js +1 -5
  381. package/esm/core/Table/actionHandlers/resizeHandler.js +11 -11
  382. package/esm/core/Table/actionHandlers/selectHandler.js +95 -122
  383. package/esm/core/Table/cells/DefaultCell.js +7 -42
  384. package/esm/core/Table/cells/EditableCell.js +41 -70
  385. package/esm/core/Table/columns/actionColumn.js +55 -85
  386. package/esm/core/Table/columns/expanderColumn.js +25 -39
  387. package/esm/core/Table/columns/selectionColumn.js +23 -51
  388. package/esm/core/Table/filters/BaseFilter.js +7 -15
  389. package/esm/core/Table/filters/DateRangeFilter/DatePickerInput.js +42 -107
  390. package/esm/core/Table/filters/DateRangeFilter/DateRangeFilter.js +52 -110
  391. package/esm/core/Table/filters/FilterButtonBar.js +9 -28
  392. package/esm/core/Table/filters/FilterToggle.js +18 -51
  393. package/esm/core/Table/filters/NumberRangeFilter/NumberRangeFilter.js +28 -50
  394. package/esm/core/Table/filters/TextFilter/TextFilter.js +20 -32
  395. package/esm/core/Table/filters/customFilterFunctions.js +12 -14
  396. package/esm/core/Table/filters/defaultFilterFunctions.js +79 -84
  397. package/esm/core/Table/filters/tableFilters.js +25 -34
  398. package/esm/core/Table/hooks/useColumnDragAndDrop.js +81 -88
  399. package/esm/core/Table/hooks/useExpanderCell.js +20 -26
  400. package/esm/core/Table/hooks/useResizeColumns.js +287 -353
  401. package/esm/core/Table/hooks/useScrollToRow.js +34 -42
  402. package/esm/core/Table/hooks/useSelectionCell.js +6 -10
  403. package/esm/core/Table/hooks/useStickyColumns.js +59 -61
  404. package/esm/core/Table/hooks/useSubRowFiltering.js +83 -90
  405. package/esm/core/Table/hooks/useSubRowSelection.js +27 -28
  406. package/esm/core/Table/index.js +1 -5
  407. package/esm/core/Table/utils.js +38 -40
  408. package/esm/core/Tabs/Tabs.js +226 -401
  409. package/esm/core/Tag/Tag.js +8 -35
  410. package/esm/core/Tag/TagContainer.js +5 -17
  411. package/esm/core/Textarea/Textarea.js +1 -6
  412. package/esm/core/ThemeProvider/ThemeProvider.js +44 -101
  413. package/esm/core/Tile/Tile.js +218 -386
  414. package/esm/core/TimePicker/TimePicker.js +228 -448
  415. package/esm/core/Toast/Toast.js +99 -193
  416. package/esm/core/Toast/Toaster.js +69 -82
  417. package/esm/core/ToggleSwitch/ToggleSwitch.js +17 -60
  418. package/esm/core/Tooltip/Tooltip.js +86 -151
  419. package/esm/core/TransferList/TransferList.js +93 -157
  420. package/esm/core/Tree/Tree.js +122 -196
  421. package/esm/core/Tree/TreeContext.js +5 -5
  422. package/esm/core/Tree/TreeNode.js +96 -195
  423. package/esm/core/Tree/TreeNodeExpander.js +5 -16
  424. package/esm/core/Typography/Blockquote.js +4 -12
  425. package/esm/core/Typography/Kbd.js +15 -24
  426. package/esm/core/Typography/Text.js +7 -20
  427. package/esm/core/VisuallyHidden/VisuallyHidden.js +2 -8
  428. package/esm/core/utils/color/ColorValue.js +449 -524
  429. package/esm/core/utils/components/AutoclearingHiddenLiveRegion.js +7 -11
  430. package/esm/core/utils/components/ButtonBase.js +13 -31
  431. package/esm/core/utils/components/FocusTrap.js +32 -41
  432. package/esm/core/utils/components/InputContainer.js +11 -50
  433. package/esm/core/utils/components/InputFlexContainer.js +2 -15
  434. package/esm/core/utils/components/MiddleTextTruncation.js +17 -27
  435. package/esm/core/utils/components/Portal.js +12 -12
  436. package/esm/core/utils/components/Resizer.js +192 -250
  437. package/esm/core/utils/components/VirtualScroll.js +218 -297
  438. package/esm/core/utils/components/WithCSSTransition.js +26 -43
  439. package/esm/core/utils/functions/colors.js +19 -19
  440. package/esm/core/utils/functions/date.js +8 -8
  441. package/esm/core/utils/functions/dev.js +12 -11
  442. package/esm/core/utils/functions/dom.d.ts +2 -1
  443. package/esm/core/utils/functions/dom.js +18 -18
  444. package/esm/core/utils/functions/focusable.js +15 -24
  445. package/esm/core/utils/functions/import.js +2 -4
  446. package/esm/core/utils/functions/numbers.d.ts +7 -0
  447. package/esm/core/utils/functions/numbers.js +17 -7
  448. package/esm/core/utils/functions/polymorphic.js +23 -32
  449. package/esm/core/utils/functions/react.js +19 -21
  450. package/esm/core/utils/functions/supports.js +1 -2
  451. package/esm/core/utils/hooks/useContainerWidth.js +13 -16
  452. package/esm/core/utils/hooks/useControlledState.js +8 -17
  453. package/esm/core/utils/hooks/useDragAndDrop.js +81 -100
  454. package/esm/core/utils/hooks/useEventListener.js +18 -18
  455. package/esm/core/utils/hooks/useGlobals.js +21 -27
  456. package/esm/core/utils/hooks/useId.js +3 -4
  457. package/esm/core/utils/hooks/useIntersection.js +19 -25
  458. package/esm/core/utils/hooks/useIsClient.js +5 -5
  459. package/esm/core/utils/hooks/useIsomorphicLayoutEffect.js +1 -2
  460. package/esm/core/utils/hooks/useLatestRef.js +5 -5
  461. package/esm/core/utils/hooks/useMediaQuery.js +25 -23
  462. package/esm/core/utils/hooks/useMergedRefs.js +12 -11
  463. package/esm/core/utils/hooks/useOverflow.js +51 -63
  464. package/esm/core/utils/hooks/useResizeObserver.js +12 -17
  465. package/esm/core/utils/hooks/useSafeContext.js +5 -5
  466. package/esm/core/utils/icons/StatusIconMap.js +4 -8
  467. package/esm/core/utils/icons/SvgCalendar.js +2 -7
  468. package/esm/core/utils/icons/SvgCaretDownSmall.js +2 -7
  469. package/esm/core/utils/icons/SvgCaretRightSmall.js +2 -7
  470. package/esm/core/utils/icons/SvgCaretUpSmall.js +2 -7
  471. package/esm/core/utils/icons/SvgCheckmark.js +2 -5
  472. package/esm/core/utils/icons/SvgCheckmarkSmall.js +2 -7
  473. package/esm/core/utils/icons/SvgChevronLeft.js +2 -7
  474. package/esm/core/utils/icons/SvgChevronLeftDouble.js +2 -7
  475. package/esm/core/utils/icons/SvgChevronRight.js +2 -7
  476. package/esm/core/utils/icons/SvgChevronRightDouble.js +2 -7
  477. package/esm/core/utils/icons/SvgClose.js +2 -7
  478. package/esm/core/utils/icons/SvgCloseSmall.js +2 -7
  479. package/esm/core/utils/icons/SvgColumnManager.js +2 -7
  480. package/esm/core/utils/icons/SvgDocument.js +2 -5
  481. package/esm/core/utils/icons/SvgFilter.js +2 -5
  482. package/esm/core/utils/icons/SvgFilterHollow.js +2 -7
  483. package/esm/core/utils/icons/SvgImportantSmall.js +2 -7
  484. package/esm/core/utils/icons/SvgInfoCircular.js +2 -7
  485. package/esm/core/utils/icons/SvgMore.js +2 -7
  486. package/esm/core/utils/icons/SvgMoreVertical.js +2 -7
  487. package/esm/core/utils/icons/SvgNew.js +2 -7
  488. package/esm/core/utils/icons/SvgSearch.js +2 -7
  489. package/esm/core/utils/icons/SvgSmileyHappy.js +2 -7
  490. package/esm/core/utils/icons/SvgSortDown.js +2 -7
  491. package/esm/core/utils/icons/SvgSortUp.js +2 -7
  492. package/esm/core/utils/icons/SvgStatusError.js +2 -7
  493. package/esm/core/utils/icons/SvgStatusSuccess.js +2 -7
  494. package/esm/core/utils/icons/SvgStatusWarning.js +2 -7
  495. package/esm/core/utils/icons/SvgSwap.js +2 -7
  496. package/esm/core/utils/icons/SvgUpload.js +2 -7
  497. package/esm/index.js +3 -21
  498. package/esm/styles.js +414 -425
  499. package/package.json +2 -2
  500. package/styles.css +6 -6
@@ -1,125 +1,120 @@
1
1
  const text = (rows, ids, filterValue) => {
2
- rows = rows.filter((row) => {
3
- return ids.some((id) => {
4
- const rowValue = row.values[id];
5
- return String(rowValue)
6
- .toLowerCase()
7
- .includes(String(filterValue).toLowerCase());
2
+ rows = rows.filter((row) => {
3
+ return ids.some((id) => {
4
+ const rowValue = row.values[id];
5
+ return String(rowValue)
6
+ .toLowerCase()
7
+ .includes(String(filterValue).toLowerCase());
8
+ });
8
9
  });
9
- });
10
- return rows;
10
+ return rows;
11
11
  };
12
12
  text.autoRemove = (val) => !val;
13
13
  const exactText = (rows, ids, filterValue) => {
14
- return rows.filter((row) => {
15
- return ids.some((id) => {
16
- const rowValue = row.values[id];
17
- return rowValue !== undefined
18
- ? String(rowValue).toLowerCase() === String(filterValue).toLowerCase()
19
- : true;
14
+ return rows.filter((row) => {
15
+ return ids.some((id) => {
16
+ const rowValue = row.values[id];
17
+ return rowValue !== undefined
18
+ ? String(rowValue).toLowerCase() === String(filterValue).toLowerCase()
19
+ : true;
20
+ });
20
21
  });
21
- });
22
22
  };
23
23
  exactText.autoRemove = (val) => !val;
24
24
  const exactTextCase = (rows, ids, filterValue) => {
25
- return rows.filter((row) => {
26
- return ids.some((id) => {
27
- const rowValue = row.values[id];
28
- return rowValue !== undefined
29
- ? String(rowValue) === String(filterValue)
30
- : true;
25
+ return rows.filter((row) => {
26
+ return ids.some((id) => {
27
+ const rowValue = row.values[id];
28
+ return rowValue !== undefined
29
+ ? String(rowValue) === String(filterValue)
30
+ : true;
31
+ });
31
32
  });
32
- });
33
33
  };
34
34
  exactTextCase.autoRemove = (val) => !val;
35
35
  const includes = (rows, ids, filterValue) => {
36
- return rows.filter((row) => {
37
- return ids.some((id) => {
38
- const rowValue = row.values[id];
39
- return rowValue.includes(filterValue);
36
+ return rows.filter((row) => {
37
+ return ids.some((id) => {
38
+ const rowValue = row.values[id];
39
+ return rowValue.includes(filterValue);
40
+ });
40
41
  });
41
- });
42
42
  };
43
43
  includes.autoRemove = (val) => !val || !val.length;
44
44
  const includesAll = (rows, ids, filterValue) => {
45
- return rows.filter((row) => {
46
- return ids.some((id) => {
47
- const rowValue = row.values[id];
48
- return (
49
- rowValue &&
50
- rowValue.length &&
51
- filterValue.every((val) => rowValue.includes(val))
52
- );
45
+ return rows.filter((row) => {
46
+ return ids.some((id) => {
47
+ const rowValue = row.values[id];
48
+ return (rowValue &&
49
+ rowValue.length &&
50
+ filterValue.every((val) => rowValue.includes(val)));
51
+ });
53
52
  });
54
- });
55
53
  };
56
54
  includesAll.autoRemove = (val) => !val || !val.length;
57
55
  const includesSome = (rows, ids, filterValue) => {
58
- return rows.filter((row) => {
59
- return ids.some((id) => {
60
- const rowValue = row.values[id];
61
- return (
62
- rowValue &&
63
- rowValue.length &&
64
- filterValue.some((val) => rowValue.includes(val))
65
- );
56
+ return rows.filter((row) => {
57
+ return ids.some((id) => {
58
+ const rowValue = row.values[id];
59
+ return (rowValue &&
60
+ rowValue.length &&
61
+ filterValue.some((val) => rowValue.includes(val)));
62
+ });
66
63
  });
67
- });
68
64
  };
69
65
  includesSome.autoRemove = (val) => !val || !val.length;
70
66
  const includesValue = (rows, ids, filterValue) => {
71
- return rows.filter((row) => {
72
- return ids.some((id) => {
73
- const rowValue = row.values[id];
74
- return filterValue.includes(rowValue);
67
+ return rows.filter((row) => {
68
+ return ids.some((id) => {
69
+ const rowValue = row.values[id];
70
+ return filterValue.includes(rowValue);
71
+ });
75
72
  });
76
- });
77
73
  };
78
74
  includesValue.autoRemove = (val) => !val || !val.length;
79
75
  const exact = (rows, ids, filterValue) => {
80
- return rows.filter((row) => {
81
- return ids.some((id) => {
82
- const rowValue = row.values[id];
83
- return rowValue === filterValue;
76
+ return rows.filter((row) => {
77
+ return ids.some((id) => {
78
+ const rowValue = row.values[id];
79
+ return rowValue === filterValue;
80
+ });
84
81
  });
85
- });
86
82
  };
87
83
  exact.autoRemove = (val) => typeof val === 'undefined';
88
84
  const equals = (rows, ids, filterValue) => {
89
- return rows.filter((row) => {
90
- return ids.some((id) => {
91
- const rowValue = row.values[id];
92
- // eslint-disable-next-line eqeqeq
93
- return rowValue == filterValue;
85
+ return rows.filter((row) => {
86
+ return ids.some((id) => {
87
+ const rowValue = row.values[id];
88
+ // eslint-disable-next-line eqeqeq
89
+ return rowValue == filterValue;
90
+ });
94
91
  });
95
- });
96
92
  };
97
93
  equals.autoRemove = (val) => val == null;
98
94
  const between = (rows, ids, filterValue) => {
99
- let [min, max] = filterValue || [];
100
- min = typeof min === 'number' ? min : -Infinity;
101
- max = typeof max === 'number' ? max : Infinity;
102
- if (min > max) {
103
- const temp = min;
104
- min = max;
105
- max = temp;
106
- }
107
- return rows.filter((row) => {
108
- return ids.some((id) => {
109
- const rowValue = row.values[id];
110
- return rowValue >= min && rowValue <= max;
95
+ let [min, max] = filterValue || [];
96
+ min = typeof min === 'number' ? min : -Infinity;
97
+ max = typeof max === 'number' ? max : Infinity;
98
+ if (min > max) {
99
+ const temp = min;
100
+ min = max;
101
+ max = temp;
102
+ }
103
+ return rows.filter((row) => {
104
+ return ids.some((id) => {
105
+ const rowValue = row.values[id];
106
+ return rowValue >= min && rowValue <= max;
107
+ });
111
108
  });
112
- });
113
109
  };
114
- between.autoRemove = (val) =>
115
- !val || (typeof val[0] !== 'number' && typeof val[1] !== 'number');
110
+ between.autoRemove = (val) => !val || (typeof val[0] !== 'number' && typeof val[1] !== 'number');
116
111
  export const defaultFilterFunctions = {
117
- text,
118
- exactText,
119
- exactTextCase,
120
- includes,
121
- includesAll,
122
- includesSome,
123
- includesValue,
124
- between,
112
+ text,
113
+ exactText,
114
+ exactTextCase,
115
+ includes,
116
+ includesAll,
117
+ includesSome,
118
+ includesValue,
119
+ between,
125
120
  };
@@ -7,38 +7,29 @@ import { DateRangeFilter } from './DateRangeFilter/DateRangeFilter.js';
7
7
  import { NumberRangeFilter } from './NumberRangeFilter/NumberRangeFilter.js';
8
8
  import { TextFilter } from './TextFilter/TextFilter.js';
9
9
  export const tableFilters = {
10
- /**
11
- * Basic filter with a single input field.
12
- * @param translatedLabels Translated filter labels.
13
- */
14
- TextFilter: (translatedLabels) => (props) =>
15
- React.createElement(TextFilter, {
16
- ...props,
17
- translatedLabels: translatedLabels,
18
- }),
19
- /**
20
- * Date range filter.
21
- *
22
- * By default it handles user input in `en-us` date format. If you want to use other format
23
- * please provide `formatDate`, `parseInput` and `placeholder`.
24
- *
25
- * It only works with `Date` type object properties.
26
- * If your data is different type e.g. `string`, you can use `accessor` property in column description:
27
- * `accessor: (rowData) => new Date(rowData.date)`.
28
- */
29
- DateRangeFilter: (options) => (props) =>
30
- React.createElement(DateRangeFilter, { ...props, ...options }),
31
- /**
32
- * Number range filter.
33
- *
34
- * It only works with `number` type object properties.
35
- * If your data is different type e.g. `string`, you can use `accessor` property in column description:
36
- * `accessor: (rowData) => Number(rowData.numberProp)`.
37
- * @param translatedLabels Translated filter labels.
38
- */
39
- NumberRangeFilter: (translatedLabels) => (props) =>
40
- React.createElement(NumberRangeFilter, {
41
- ...props,
42
- translatedLabels: translatedLabels,
43
- }),
10
+ /**
11
+ * Basic filter with a single input field.
12
+ * @param translatedLabels Translated filter labels.
13
+ */
14
+ TextFilter: (translatedLabels) => (props) => (React.createElement(TextFilter, { ...props, translatedLabels: translatedLabels })),
15
+ /**
16
+ * Date range filter.
17
+ *
18
+ * By default it handles user input in `en-us` date format. If you want to use other format
19
+ * please provide `formatDate`, `parseInput` and `placeholder`.
20
+ *
21
+ * It only works with `Date` type object properties.
22
+ * If your data is different type e.g. `string`, you can use `accessor` property in column description:
23
+ * `accessor: (rowData) => new Date(rowData.date)`.
24
+ */
25
+ DateRangeFilter: (options) => (props) => (React.createElement(DateRangeFilter, { ...props, ...options })),
26
+ /**
27
+ * Number range filter.
28
+ *
29
+ * It only works with `number` type object properties.
30
+ * If your data is different type e.g. `string`, you can use `accessor` property in column description:
31
+ * `accessor: (rowData) => Number(rowData.numberProp)`.
32
+ * @param translatedLabels Translated filter labels.
33
+ */
34
+ NumberRangeFilter: (translatedLabels) => (props) => (React.createElement(NumberRangeFilter, { ...props, translatedLabels: translatedLabels })),
44
35
  };
@@ -1,114 +1,107 @@
1
1
  import { actions, makePropGetter, useGetLatest } from 'react-table';
2
2
  import styles from '../../../styles.js';
3
3
  const REORDER_ACTIONS = {
4
- columnDragStart: 'columnDragStart',
5
- columnDragEnd: 'columnDragEnd',
4
+ columnDragStart: 'columnDragStart',
5
+ columnDragEnd: 'columnDragEnd',
6
6
  };
7
7
  export const useColumnDragAndDrop = (isEnabled) => (hooks) => {
8
- hooks.getDragAndDropProps = [defaultGetDragAndDropProps(isEnabled)];
9
- hooks.stateReducers.push(reducer);
10
- hooks.useInstance.push(useInstance);
8
+ hooks.getDragAndDropProps = [defaultGetDragAndDropProps(isEnabled)];
9
+ hooks.stateReducers.push(reducer);
10
+ hooks.useInstance.push(useInstance);
11
11
  };
12
- const defaultGetDragAndDropProps =
13
- (isEnabled) =>
14
- (props, { instance, header }) => {
12
+ const defaultGetDragAndDropProps = (isEnabled) => (props, { instance, header, }) => {
15
13
  if (!isEnabled || header.disableReordering) {
16
- return props;
14
+ return props;
17
15
  }
18
16
  const onDragStart = () => {
19
- instance.dispatch({
20
- type: REORDER_ACTIONS.columnDragStart,
21
- columnIndex: instance.flatHeaders.indexOf(header),
22
- });
17
+ instance.dispatch({
18
+ type: REORDER_ACTIONS.columnDragStart,
19
+ columnIndex: instance.flatHeaders.indexOf(header),
20
+ });
23
21
  };
24
22
  const setOnDragColumnStyle = (event, position) => {
25
- const columnElement = event.currentTarget;
26
- columnElement.classList.remove(styles['iui-table-reorder-column-right']);
27
- columnElement.classList.remove(styles['iui-table-reorder-column-left']);
28
- if (position === 'left') {
29
- columnElement.classList.add(styles['iui-table-reorder-column-left']);
30
- } else if (position === 'right') {
31
- columnElement.classList.add(styles['iui-table-reorder-column-right']);
32
- }
23
+ const columnElement = event.currentTarget;
24
+ columnElement.classList.remove(styles['iui-table-reorder-column-right']);
25
+ columnElement.classList.remove(styles['iui-table-reorder-column-left']);
26
+ if (position === 'left') {
27
+ columnElement.classList.add(styles['iui-table-reorder-column-left']);
28
+ }
29
+ else if (position === 'right') {
30
+ columnElement.classList.add(styles['iui-table-reorder-column-right']);
31
+ }
33
32
  };
34
33
  const reorderColumns = (tableColumns, srcIndex, dstIndex) => {
35
- const newTableColumns = [...tableColumns];
36
- const [removed] = newTableColumns.splice(srcIndex, 1);
37
- newTableColumns.splice(dstIndex, 0, removed);
38
- return newTableColumns;
34
+ const newTableColumns = [...tableColumns];
35
+ const [removed] = newTableColumns.splice(srcIndex, 1);
36
+ newTableColumns.splice(dstIndex, 0, removed);
37
+ return newTableColumns;
39
38
  };
40
39
  const onDragOver = (event) => {
41
- event.preventDefault();
42
- const headerIndex = instance.flatHeaders.indexOf(header);
43
- if (instance.state.columnReorderStartIndex !== headerIndex) {
44
- setOnDragColumnStyle(
45
- event,
46
- instance.state.columnReorderStartIndex > headerIndex
47
- ? 'left'
48
- : 'right',
49
- );
50
- }
40
+ event.preventDefault();
41
+ const headerIndex = instance.flatHeaders.indexOf(header);
42
+ if (instance.state.columnReorderStartIndex !== headerIndex) {
43
+ setOnDragColumnStyle(event, instance.state.columnReorderStartIndex > headerIndex
44
+ ? 'left'
45
+ : 'right');
46
+ }
51
47
  };
52
48
  const onDragLeave = (event) => {
53
- setOnDragColumnStyle(event);
49
+ setOnDragColumnStyle(event);
54
50
  };
55
51
  const onDrop = (event) => {
56
- event.preventDefault();
57
- setOnDragColumnStyle(event);
58
- const columnIds = instance.allColumns.map((x) => x.id);
59
- const srcIndex = instance.state.columnReorderStartIndex;
60
- const dstIndex = columnIds.findIndex((x) => x === header.id);
61
- if (srcIndex === dstIndex || srcIndex === -1 || dstIndex === -1) {
62
- return;
63
- }
64
- instance.setColumnOrder(reorderColumns(columnIds, srcIndex, dstIndex));
65
- instance.dispatch({
66
- type: REORDER_ACTIONS.columnDragEnd,
67
- columnIndex: -1,
68
- });
52
+ event.preventDefault();
53
+ setOnDragColumnStyle(event);
54
+ const columnIds = instance.allColumns.map((x) => x.id);
55
+ const srcIndex = instance.state.columnReorderStartIndex;
56
+ const dstIndex = columnIds.findIndex((x) => x === header.id);
57
+ if (srcIndex === dstIndex || srcIndex === -1 || dstIndex === -1) {
58
+ return;
59
+ }
60
+ instance.setColumnOrder(reorderColumns(columnIds, srcIndex, dstIndex));
61
+ instance.dispatch({
62
+ type: REORDER_ACTIONS.columnDragEnd,
63
+ columnIndex: -1,
64
+ });
69
65
  };
70
66
  return [
71
- props,
72
- {
73
- draggable: true,
74
- onDragStart,
75
- onDragOver,
76
- onDragLeave,
77
- onDrop,
78
- },
67
+ props,
68
+ {
69
+ draggable: true,
70
+ onDragStart,
71
+ onDragOver,
72
+ onDragLeave,
73
+ onDrop,
74
+ },
79
75
  ];
80
- };
76
+ };
81
77
  const reducer = (newState, action) => {
82
- switch (action.type) {
83
- case actions.init:
84
- return {
85
- ...newState,
86
- columnReorderStartIndex: -1,
87
- };
88
- case REORDER_ACTIONS.columnDragStart:
89
- return {
90
- ...newState,
91
- columnReorderStartIndex: action.columnIndex,
92
- };
93
- case REORDER_ACTIONS.columnDragEnd:
94
- return {
95
- ...newState,
96
- columnReorderStartIndex: -1,
97
- };
98
- default:
99
- return newState;
100
- }
78
+ switch (action.type) {
79
+ case actions.init:
80
+ return {
81
+ ...newState,
82
+ columnReorderStartIndex: -1,
83
+ };
84
+ case REORDER_ACTIONS.columnDragStart:
85
+ return {
86
+ ...newState,
87
+ columnReorderStartIndex: action.columnIndex,
88
+ };
89
+ case REORDER_ACTIONS.columnDragEnd:
90
+ return {
91
+ ...newState,
92
+ columnReorderStartIndex: -1,
93
+ };
94
+ default:
95
+ return newState;
96
+ }
101
97
  };
102
98
  const useInstance = (instance) => {
103
- const { flatHeaders, getHooks } = instance;
104
- const getInstance = useGetLatest(instance);
105
- flatHeaders.forEach((header) => {
106
- header.getDragAndDropProps = makePropGetter(
107
- getHooks().getDragAndDropProps,
108
- {
109
- instance: getInstance(),
110
- header,
111
- },
112
- );
113
- });
99
+ const { flatHeaders, getHooks } = instance;
100
+ const getInstance = useGetLatest(instance);
101
+ flatHeaders.forEach((header) => {
102
+ header.getDragAndDropProps = makePropGetter(getHooks().getDragAndDropProps, {
103
+ instance: getInstance(),
104
+ header,
105
+ });
106
+ });
114
107
  };
@@ -4,33 +4,27 @@
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import * as React from 'react';
6
6
  import { ExpanderColumn, EXPANDER_CELL_ID } from '../columns/index.js';
7
- export const useExpanderCell =
8
- (subComponent, expanderCell, isRowDisabled) => (hooks) => {
7
+ export const useExpanderCell = (subComponent, expanderCell, isRowDisabled) => (hooks) => {
9
8
  if (!subComponent) {
10
- return;
9
+ return;
11
10
  }
12
11
  hooks.allColumns.push((columns) => {
13
- const hasExpanderColumn = columns.find((c) => c.id === EXPANDER_CELL_ID);
14
- if (hasExpanderColumn) {
15
- return columns;
16
- }
17
- const expanderColumn = ExpanderColumn({
18
- subComponent,
19
- isDisabled: isRowDisabled,
20
- });
21
- return [
22
- {
23
- ...expanderColumn,
24
- Cell: expanderCell
25
- ? (cellProps) =>
26
- React.createElement(
27
- React.Fragment,
28
- null,
29
- expanderCell(cellProps),
30
- )
31
- : expanderColumn.Cell,
32
- },
33
- ...columns,
34
- ];
12
+ const hasExpanderColumn = columns.find((c) => c.id === EXPANDER_CELL_ID);
13
+ if (hasExpanderColumn) {
14
+ return columns;
15
+ }
16
+ const expanderColumn = ExpanderColumn({
17
+ subComponent,
18
+ isDisabled: isRowDisabled,
19
+ });
20
+ return [
21
+ {
22
+ ...expanderColumn,
23
+ Cell: expanderCell
24
+ ? (cellProps) => React.createElement(React.Fragment, null, expanderCell(cellProps))
25
+ : expanderColumn.Cell,
26
+ },
27
+ ...columns,
28
+ ];
35
29
  });
36
- };
30
+ };