@carbon/ibm-products 2.0.0-rc.2 → 2.0.0-rc.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (380) hide show
  1. package/README.md +2 -2
  2. package/css/index-full-carbon.css +1368 -401
  3. package/css/index-full-carbon.css.map +1 -1
  4. package/css/index-full-carbon.min.css +6 -8
  5. package/css/index-full-carbon.min.css.map +1 -1
  6. package/css/index-without-carbon-released-only.css +1413 -385
  7. package/css/index-without-carbon-released-only.css.map +1 -1
  8. package/css/index-without-carbon-released-only.min.css +4 -8
  9. package/css/index-without-carbon-released-only.min.css.map +1 -1
  10. package/css/index-without-carbon.css +1292 -456
  11. package/css/index-without-carbon.css.map +1 -1
  12. package/css/index-without-carbon.min.css +6 -8
  13. package/css/index-without-carbon.min.css.map +1 -1
  14. package/css/index.css +1165 -334
  15. package/css/index.css.map +1 -1
  16. package/css/index.min.css +6 -8
  17. package/css/index.min.css.map +1 -1
  18. package/es/components/APIKeyModal/APIKeyModal.js +1 -1
  19. package/es/components/ActionBar/ActionBarOverflowItems.js +1 -0
  20. package/es/components/ActionSet/ActionSet.js +7 -3
  21. package/es/components/AddSelect/AddSelect.js +6 -6
  22. package/es/components/AddSelect/AddSelectBody.js +73 -32
  23. package/es/components/AddSelect/AddSelectBreadcrumbs.js +12 -4
  24. package/es/components/AddSelect/AddSelectColumn.js +8 -8
  25. package/es/components/AddSelect/AddSelectFilter.js +10 -7
  26. package/es/components/AddSelect/AddSelectList.js +64 -29
  27. package/es/components/AddSelect/AddSelectMetaPanel.js +7 -1
  28. package/es/components/AddSelect/AddSelectSidebar.js +5 -2
  29. package/es/components/AddSelect/AddSelectSort.js +2 -2
  30. package/es/components/AddSelect/add-select-utils.js +9 -2
  31. package/es/components/AddSelect/hooks/useItemSort.js +6 -0
  32. package/es/components/AddSelect/hooks/useParentSelect.js +6 -0
  33. package/es/components/AddSelect/hooks/usePath.js +23 -2
  34. package/es/components/AddSelect/index.js +1 -1
  35. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +4 -6
  36. package/es/components/ButtonMenu/ButtonMenu.js +4 -3
  37. package/es/components/Card/Card.js +16 -6
  38. package/es/components/Card/CardFooter.js +3 -1
  39. package/es/components/Card/CardHeader.js +20 -1
  40. package/es/components/ComboButton/ComboButton.js +1 -1
  41. package/es/components/CreateFullPage/CreateFullPage.js +13 -3
  42. package/es/components/CreateTearsheet/CreateTearsheet.js +17 -3
  43. package/es/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +3 -1
  44. package/es/components/CreateTearsheetNarrow/CreateTearsheetNarrow.js +2 -2
  45. package/es/components/DataSpreadsheet/DataSpreadsheet.js +65 -15
  46. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  47. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  48. package/es/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +6 -5
  49. package/es/components/DataSpreadsheet/utils/handleCellDeletion.js +42 -0
  50. package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  51. package/es/components/Datagrid/Datagrid/Datagrid.js +16 -40
  52. package/es/components/Datagrid/Datagrid/DatagridContent.js +194 -0
  53. package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +18 -8
  54. package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  55. package/es/components/Datagrid/Datagrid/DatagridHead.js +1 -2
  56. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +1 -4
  57. package/es/components/Datagrid/Datagrid/DatagridRow.js +44 -7
  58. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +11 -5
  59. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +13 -4
  60. package/es/components/Datagrid/Datagrid/DatagridSimpleBody.js +1 -2
  61. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +14 -10
  62. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +32 -11
  63. package/es/components/Datagrid/Datagrid/DraggableElement.js +12 -4
  64. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +11 -54
  65. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +15 -14
  66. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +63 -31
  67. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +193 -0
  68. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +56 -0
  69. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/index.js +1 -1
  70. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +484 -0
  71. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +514 -0
  72. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +91 -0
  73. package/es/components/Datagrid/Datagrid/addons/Filtering/constants.js +28 -0
  74. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/index.js +9 -0
  75. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js +25 -0
  76. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useShouldDisableButtons.js +38 -0
  77. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useSubscribeToEventEmitter.js +25 -0
  78. package/es/components/Datagrid/Datagrid/addons/Filtering/index.js +9 -0
  79. package/es/components/Datagrid/Datagrid/addons/Filtering/motion/variants.js +55 -0
  80. package/es/components/Datagrid/Datagrid/addons/Filtering/utils.js +72 -0
  81. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +60 -0
  82. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +1 -0
  83. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +541 -0
  84. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +1 -0
  85. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +112 -0
  86. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +27 -0
  87. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +1 -0
  88. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +39 -0
  89. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +19 -0
  90. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +262 -0
  91. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +87 -0
  92. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +17 -14
  93. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +13 -36
  94. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/index.js +0 -1
  95. package/es/components/Datagrid/index.js +4 -1
  96. package/es/components/Datagrid/useActionsColumn.js +28 -12
  97. package/es/components/Datagrid/useColumnOrder.js +8 -0
  98. package/es/components/Datagrid/useCustomizeColumns.js +13 -8
  99. package/es/components/Datagrid/useDisableSelectRows.js +6 -2
  100. package/es/components/Datagrid/useExpandedRow.js +0 -1
  101. package/es/components/Datagrid/useFiltering.js +99 -0
  102. package/es/components/Datagrid/useInfiniteScroll.js +5 -2
  103. package/es/components/Datagrid/useInlineEdit.js +71 -0
  104. package/es/components/Datagrid/useNestedRowExpander.js +47 -0
  105. package/es/components/Datagrid/useNestedRows.js +16 -4
  106. package/es/components/Datagrid/useParentDimensions.js +3 -1
  107. package/es/components/Datagrid/useRowExpander.js +12 -4
  108. package/es/components/Datagrid/useRowSize.js +17 -6
  109. package/es/components/Datagrid/useSelectAllToggle.js +17 -4
  110. package/es/components/Datagrid/useSelectRows.js +13 -4
  111. package/es/components/Datagrid/useSortableColumns.js +15 -9
  112. package/es/components/Datagrid/useStickyColumn.js +11 -0
  113. package/es/components/Datagrid/utils/DatagridActions.js +249 -0
  114. package/es/components/Datagrid/utils/DatagridPagination.js +33 -0
  115. package/es/components/Datagrid/utils/Wrapper.js +21 -0
  116. package/es/components/Datagrid/utils/getArgTypes.js +94 -0
  117. package/es/components/Datagrid/utils/getInlineEditColumns.js +159 -0
  118. package/es/components/Datagrid/utils/makeData.js +54 -1
  119. package/es/components/EditUpdateCards/EditUpdateCards.js +144 -0
  120. package/es/components/EditUpdateCards/index.js +7 -0
  121. package/es/components/ExportModal/ExportModal.js +1 -1
  122. package/es/components/FilterSummary/FilterSummary.js +54 -0
  123. package/es/components/FilterSummary/index.js +7 -0
  124. package/es/components/ImportModal/ImportModal.js +3 -3
  125. package/es/components/InlineEdit/InlineEdit.js +28 -426
  126. package/es/components/InlineEditV1/InlineEditV1.js +447 -0
  127. package/es/components/InlineEditV1/index.js +7 -0
  128. package/es/components/InlineEditV2/InlineEditV2.js +289 -0
  129. package/es/components/InlineEditV2/index.js +7 -0
  130. package/es/components/ModifiedTabs/ModifiedTabLabelNew.js +1 -1
  131. package/es/components/ModifiedTabs/ModifiedTabLabelWithClose.js +1 -1
  132. package/es/components/MultiAddSelect/MultiAddSelect.js +14 -7
  133. package/es/components/MultiAddSelect/index.js +6 -0
  134. package/es/components/NotificationsPanel/NotificationsPanel.js +1 -1
  135. package/es/components/OptionsTile/OptionsTile.js +32 -16
  136. package/es/components/PageHeader/PageHeader.js +4 -4
  137. package/es/components/PageHeader/PageHeaderTitle.js +1 -1
  138. package/es/components/ProductiveCard/ProductiveCard.js +5 -0
  139. package/es/components/RemoveModal/RemoveModal.js +20 -3
  140. package/es/components/Saving/Saving.js +1 -1
  141. package/es/components/SidePanel/SidePanel.js +45 -52
  142. package/es/components/SidePanel/motion/variants.js +45 -0
  143. package/es/components/SingleAddSelect/SingleAddSelect.js +6 -0
  144. package/es/components/SingleAddSelect/index.js +6 -0
  145. package/es/components/StatusIcon/StatusIcon.js +1 -1
  146. package/es/components/Tearsheet/Tearsheet.js +5 -0
  147. package/es/components/Tearsheet/TearsheetNarrow.js +5 -0
  148. package/es/components/Tearsheet/TearsheetShell.js +1 -1
  149. package/es/components/UserProfileImage/UserProfileImage.js +1 -1
  150. package/es/components/WebTerminal/WebTerminal.js +1 -1
  151. package/es/components/WebTerminal/preview-components/Navigation.js +1 -1
  152. package/es/components/index.js +4 -3
  153. package/es/global/js/hooks/index.js +2 -1
  154. package/es/global/js/hooks/useClickOutside.js +1 -1
  155. package/es/global/js/hooks/useControllableState.js +83 -0
  156. package/es/global/js/hooks/useCreateComponentFocus.js +38 -10
  157. package/es/global/js/hooks/useResetCreateComponent.js +6 -2
  158. package/es/global/js/package-settings.js +9 -6
  159. package/es/global/js/utils/getBezierValues.js +20 -0
  160. package/es/global/js/utils/getNumberOfHiddenSteps.js +19 -0
  161. package/es/global/js/utils/motionConstants.js +45 -0
  162. package/es/global/js/utils/rangeWithCallback.js +13 -0
  163. package/es/global/js/utils/story-helper.js +5 -1
  164. package/es/global/js/utils/uuidv4.spec.js +4 -0
  165. package/lib/components/APIKeyModal/APIKeyModal.js +4 -4
  166. package/lib/components/ActionBar/ActionBarOverflowItems.js +1 -0
  167. package/lib/components/ActionSet/ActionSet.js +7 -3
  168. package/lib/components/AddSelect/AddSelect.js +5 -6
  169. package/lib/components/AddSelect/AddSelectBody.js +68 -31
  170. package/lib/components/AddSelect/AddSelectBreadcrumbs.js +15 -4
  171. package/lib/components/AddSelect/AddSelectColumn.js +7 -7
  172. package/lib/components/AddSelect/AddSelectFilter.js +9 -6
  173. package/lib/components/AddSelect/AddSelectList.js +65 -30
  174. package/lib/components/AddSelect/AddSelectMetaPanel.js +8 -2
  175. package/lib/components/AddSelect/AddSelectSidebar.js +4 -1
  176. package/lib/components/AddSelect/AddSelectSort.js +5 -5
  177. package/lib/components/AddSelect/add-select-utils.js +9 -2
  178. package/lib/components/AddSelect/hooks/useItemSort.js +6 -0
  179. package/lib/components/AddSelect/hooks/useParentSelect.js +6 -0
  180. package/lib/components/AddSelect/hooks/usePath.js +16 -1
  181. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +6 -6
  182. package/lib/components/ButtonMenu/ButtonMenu.js +4 -3
  183. package/lib/components/Card/Card.js +16 -6
  184. package/lib/components/Card/CardFooter.js +3 -1
  185. package/lib/components/Card/CardHeader.js +21 -1
  186. package/lib/components/ComboButton/ComboButton.js +3 -3
  187. package/lib/components/CreateFullPage/CreateFullPage.js +13 -3
  188. package/lib/components/CreateTearsheet/CreateTearsheet.js +18 -3
  189. package/lib/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +3 -1
  190. package/lib/components/CreateTearsheetNarrow/CreateTearsheetNarrow.js +2 -2
  191. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +65 -14
  192. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  193. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  194. package/lib/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +6 -5
  195. package/lib/components/DataSpreadsheet/utils/handleCellDeletion.js +53 -0
  196. package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  197. package/lib/components/Datagrid/Datagrid/Datagrid.js +19 -47
  198. package/lib/components/Datagrid/Datagrid/DatagridContent.js +230 -0
  199. package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +19 -9
  200. package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  201. package/lib/components/Datagrid/Datagrid/DatagridHead.js +1 -3
  202. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +2 -5
  203. package/lib/components/Datagrid/Datagrid/DatagridRow.js +46 -8
  204. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +14 -6
  205. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +16 -5
  206. package/lib/components/Datagrid/Datagrid/DatagridSimpleBody.js +1 -2
  207. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +14 -10
  208. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +33 -10
  209. package/lib/components/Datagrid/Datagrid/DraggableElement.js +12 -4
  210. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +11 -49
  211. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +11 -8
  212. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +76 -46
  213. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/{CustomizeColumnsModal.js → CustomizeColumnsTearsheet.js} +85 -48
  214. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/{ModalWrapper.js → TearsheetWrapper.js} +32 -36
  215. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/index.js +3 -3
  216. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +505 -0
  217. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +538 -0
  218. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +112 -0
  219. package/lib/components/Datagrid/Datagrid/addons/Filtering/constants.js +47 -0
  220. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/index.js +31 -0
  221. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js +37 -0
  222. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useShouldDisableButtons.js +50 -0
  223. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useSubscribeToEventEmitter.js +35 -0
  224. package/lib/components/Datagrid/Datagrid/addons/Filtering/index.js +37 -0
  225. package/lib/components/Datagrid/Datagrid/addons/Filtering/motion/variants.js +67 -0
  226. package/lib/components/Datagrid/Datagrid/addons/Filtering/utils.js +82 -0
  227. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +76 -0
  228. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +13 -0
  229. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +566 -0
  230. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +13 -0
  231. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +129 -0
  232. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +36 -0
  233. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +19 -0
  234. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +45 -0
  235. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +28 -0
  236. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +271 -0
  237. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +100 -0
  238. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +17 -13
  239. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +13 -35
  240. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/index.js +0 -8
  241. package/lib/components/Datagrid/index.js +25 -1
  242. package/lib/components/Datagrid/useActionsColumn.js +28 -13
  243. package/lib/components/Datagrid/useColumnOrder.js +17 -0
  244. package/lib/components/Datagrid/useCustomizeColumns.js +12 -7
  245. package/lib/components/Datagrid/useDisableSelectRows.js +6 -2
  246. package/lib/components/Datagrid/useExpandedRow.js +0 -1
  247. package/lib/components/Datagrid/useFiltering.js +105 -0
  248. package/lib/components/Datagrid/useInfiniteScroll.js +5 -2
  249. package/lib/components/Datagrid/useInlineEdit.js +85 -0
  250. package/lib/components/Datagrid/useNestedRowExpander.js +63 -0
  251. package/lib/components/Datagrid/useNestedRows.js +17 -4
  252. package/lib/components/Datagrid/useParentDimensions.js +3 -1
  253. package/lib/components/Datagrid/useRowExpander.js +17 -5
  254. package/lib/components/Datagrid/useRowSize.js +18 -13
  255. package/lib/components/Datagrid/useSelectAllToggle.js +18 -4
  256. package/lib/components/Datagrid/useSelectRows.js +13 -4
  257. package/lib/components/Datagrid/useSortableColumns.js +16 -7
  258. package/lib/components/Datagrid/useStickyColumn.js +11 -0
  259. package/lib/components/Datagrid/utils/DatagridActions.js +275 -0
  260. package/lib/components/Datagrid/utils/DatagridPagination.js +46 -0
  261. package/lib/components/Datagrid/utils/Wrapper.js +33 -0
  262. package/lib/components/Datagrid/utils/getArgTypes.js +102 -0
  263. package/lib/components/Datagrid/utils/getInlineEditColumns.js +174 -0
  264. package/lib/components/Datagrid/utils/makeData.js +56 -2
  265. package/lib/components/EditUpdateCards/EditUpdateCards.js +152 -0
  266. package/lib/components/EditUpdateCards/index.js +13 -0
  267. package/lib/components/ExportModal/ExportModal.js +3 -3
  268. package/lib/components/FilterSummary/FilterSummary.js +72 -0
  269. package/lib/components/FilterSummary/index.js +15 -0
  270. package/lib/components/ImportModal/ImportModal.js +4 -4
  271. package/lib/components/InlineEdit/InlineEdit.js +27 -426
  272. package/lib/components/InlineEditV1/InlineEditV1.js +464 -0
  273. package/lib/components/InlineEditV1/index.js +13 -0
  274. package/lib/components/InlineEditV2/InlineEditV2.js +309 -0
  275. package/lib/components/InlineEditV2/index.js +13 -0
  276. package/lib/components/ModifiedTabs/ModifiedTabLabelNew.js +2 -2
  277. package/lib/components/ModifiedTabs/ModifiedTabLabelWithClose.js +3 -3
  278. package/lib/components/MultiAddSelect/MultiAddSelect.js +14 -7
  279. package/lib/components/NotificationsPanel/NotificationsPanel.js +8 -8
  280. package/lib/components/OptionsTile/OptionsTile.js +36 -19
  281. package/lib/components/PageHeader/PageHeader.js +5 -5
  282. package/lib/components/PageHeader/PageHeaderTitle.js +1 -1
  283. package/lib/components/ProductiveCard/ProductiveCard.js +5 -0
  284. package/lib/components/RemoveModal/RemoveModal.js +20 -3
  285. package/lib/components/Saving/Saving.js +5 -5
  286. package/lib/components/SidePanel/SidePanel.js +48 -53
  287. package/lib/components/SidePanel/motion/variants.js +55 -0
  288. package/lib/components/SingleAddSelect/SingleAddSelect.js +6 -0
  289. package/lib/components/StatusIcon/StatusIcon.js +45 -45
  290. package/lib/components/Tearsheet/Tearsheet.js +5 -0
  291. package/lib/components/Tearsheet/TearsheetNarrow.js +5 -0
  292. package/lib/components/Tearsheet/TearsheetShell.js +1 -1
  293. package/lib/components/UserProfileImage/UserProfileImage.js +7 -7
  294. package/lib/components/WebTerminal/WebTerminal.js +3 -3
  295. package/lib/components/WebTerminal/preview-components/Navigation.js +4 -4
  296. package/lib/components/index.js +33 -1
  297. package/lib/global/js/hooks/index.js +9 -1
  298. package/lib/global/js/hooks/useClickOutside.js +1 -1
  299. package/lib/global/js/hooks/useControllableState.js +94 -0
  300. package/lib/global/js/hooks/useCreateComponentFocus.js +42 -11
  301. package/lib/global/js/hooks/useResetCreateComponent.js +7 -2
  302. package/lib/global/js/package-settings.js +9 -6
  303. package/lib/global/js/utils/getBezierValues.js +29 -0
  304. package/lib/global/js/utils/getNumberOfHiddenSteps.js +28 -0
  305. package/lib/global/js/utils/motionConstants.js +55 -0
  306. package/lib/global/js/utils/rangeWithCallback.js +22 -0
  307. package/lib/global/js/utils/story-helper.js +5 -1
  308. package/lib/global/js/utils/uuidv4.spec.js +4 -0
  309. package/package.json +18 -16
  310. package/scss/components/ActionSet/_action-set.scss +9 -4
  311. package/scss/components/AddSelect/_add-select.scss +132 -34
  312. package/scss/components/AddSelect/_index.scss +1 -1
  313. package/scss/components/AddSelect/_storybook-styles.scss +1 -1
  314. package/scss/components/Card/_card.scss +1 -0
  315. package/scss/components/Cascade/_cascade.scss +1 -1
  316. package/scss/components/CreateTearsheet/_create-tearsheet.scss +2 -0
  317. package/scss/components/Datagrid/_datagrid.scss +7 -1
  318. package/scss/components/Datagrid/_storybook-styles.scss +29 -5
  319. package/scss/components/Datagrid/styles/_datagrid.scss +131 -37
  320. package/scss/components/Datagrid/styles/_draggableElement.scss +50 -18
  321. package/scss/components/Datagrid/styles/_index.scss +10 -8
  322. package/scss/components/Datagrid/styles/_useActionsColumn.scss +14 -0
  323. package/scss/components/Datagrid/styles/_useExpandedRow.scss +56 -10
  324. package/scss/components/Datagrid/styles/_useInlineEdit.scss +419 -0
  325. package/scss/components/Datagrid/styles/_useNestedRows.scss +33 -1
  326. package/scss/components/Datagrid/styles/_useSortableColumns.scss +35 -16
  327. package/scss/components/Datagrid/styles/_useStickyColumn.scss +31 -2
  328. package/scss/components/Datagrid/styles/addons/_CustomizeColumnsTearsheet.scss +69 -0
  329. package/scss/components/Datagrid/styles/addons/_FilterFlyout.scss +87 -0
  330. package/scss/components/Datagrid/styles/addons/_FilterPanel.scss +129 -0
  331. package/scss/components/Datagrid/styles/addons/_RowSizeDropdown.scss +12 -4
  332. package/scss/components/EditUpdateCards/_carbon-imports.scss +9 -0
  333. package/scss/components/EditUpdateCards/_edit-update-cards.scss +85 -0
  334. package/scss/components/EditUpdateCards/_index-with-carbon.scss +9 -0
  335. package/scss/components/EditUpdateCards/_index.scss +8 -0
  336. package/scss/components/EditUpdateCards/_storybook-styles.scss +55 -0
  337. package/scss/components/FilterSummary/_filter-summary.scss +21 -0
  338. package/scss/components/FilterSummary/_index.scss +10 -0
  339. package/scss/components/FilterSummary/_storybook-styles.scss +14 -0
  340. package/scss/components/{InlineEdit → InlineEditV1}/_index-with-carbon.scss +1 -1
  341. package/scss/components/{InlineEdit → InlineEditV1}/_index.scss +1 -1
  342. package/scss/components/{InlineEdit/_inline-edit.scss → InlineEditV1/_inline-edit-v1.scss} +4 -2
  343. package/scss/components/InlineEditV2/_carbon-imports.scss +9 -0
  344. package/scss/components/InlineEditV2/_index-with-carbon.scss +9 -0
  345. package/scss/components/InlineEditV2/_index.scss +10 -0
  346. package/scss/components/InlineEditV2/_inline-edit-v2.scss +83 -0
  347. package/scss/components/InlineEditV2/_storybook-styles.scss +9 -0
  348. package/scss/components/MultiAddSelect/_multi-add-select.scss +8 -1
  349. package/scss/components/MultiAddSelect/_storybook-styles.scss +1 -1
  350. package/scss/components/NotificationsPanel/_notifications-panel.scss +3 -6
  351. package/scss/components/RemoveModal/_remove-modal.scss +0 -4
  352. package/scss/components/SidePanel/_side-panel.scss +3 -82
  353. package/scss/components/SidePanel/_storybook-styles.scss +6 -1
  354. package/scss/components/SingleAddSelect/_carbon-imports.scss +1 -1
  355. package/scss/components/SingleAddSelect/_index-with-carbon.scss +1 -1
  356. package/scss/components/SingleAddSelect/_index.scss +7 -0
  357. package/scss/components/SingleAddSelect/_single-add-select.scss +8 -1
  358. package/scss/components/SingleAddSelect/_storybook-styles.scss +1 -1
  359. package/scss/components/Tearsheet/_tearsheet.scss +4 -2
  360. package/scss/components/_index-released-only-with-carbon.scss +3 -1
  361. package/scss/components/_index-released-only.scss +4 -1
  362. package/scss/components/_index-with-carbon.scss +3 -1
  363. package/scss/components/_index.scss +4 -1
  364. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +0 -157
  365. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +0 -62
  366. package/es/components/Datagrid/Datagrid.stories-helpers/LeftPanelStory.js +0 -6
  367. package/lib/components/Datagrid/Datagrid.stories-helpers/LeftPanelStory.js +0 -13
  368. package/scss/components/Datagrid/styles/addons/_CustomizeColumnsModal.scss +0 -52
  369. /package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/CustomizeColumnStory.js +0 -0
  370. /package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/RowSizeDropdownStory.js +0 -0
  371. /package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/SelectAllWithToggleStory.js +0 -0
  372. /package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/StickyActionsColumnStory.js +0 -0
  373. /package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/common.js +0 -0
  374. /package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/CustomizeColumnStory.js +0 -0
  375. /package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/RowSizeDropdownStory.js +0 -0
  376. /package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/SelectAllWithToggleStory.js +0 -0
  377. /package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/StickyActionsColumnStory.js +0 -0
  378. /package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/common.js +0 -0
  379. /package/scss/components/{InlineEdit → InlineEditV1}/_carbon-imports.scss +0 -0
  380. /package/scss/components/{InlineEdit → InlineEditV1}/_storybook-styles.scss +0 -0
@@ -3,7 +3,7 @@ import _typeof from "@babel/runtime/helpers/typeof";
3
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
4
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
5
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
6
- var _excluded = ["cellSize", "className", "columns", "data", "defaultEmptyRowCount", "onDataUpdate", "id", "onActiveCellChange", "onSelectionAreaChange", "totalVisibleColumns"];
6
+ var _excluded = ["cellSize", "className", "columns", "data", "defaultEmptyRowCount", "onDataUpdate", "id", "onActiveCellChange", "onSelectionAreaChange", "selectAllAriaLabel", "spreadsheetAriaLabel", "theme", "totalVisibleColumns"];
7
7
 
8
8
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
9
 
@@ -38,7 +38,8 @@ import { removeCellSelections } from './utils/removeCellSelections';
38
38
  import { selectAllCells } from './utils/selectAllCells';
39
39
  import { handleEditSubmit } from './utils/handleEditSubmit';
40
40
  import { handleActiveCellInSelectionEnter } from './utils/handleActiveCellInSelectionEnter';
41
- import { handleActiveCellInSelectionTab } from './utils/handleActiveCellInSelectionTab'; // cspell:words rowcount colcount
41
+ import { handleActiveCellInSelectionTab } from './utils/handleActiveCellInSelectionTab';
42
+ import { handleCellDeletion } from './utils/handleCellDeletion'; // cspell:words rowcount colcount
42
43
  // The block part of our conventional BEM class names (blockClass__E--M).
43
44
 
44
45
  var blockClass = "".concat(pkg.prefix, "--data-spreadsheet");
@@ -51,13 +52,16 @@ var defaults = {
51
52
  defaultEmptyRowCount: 16,
52
53
  onDataUpdate: Object.freeze(function () {}),
53
54
  onActiveCellChange: Object.freeze(function () {}),
54
- onSelectionAreaChange: Object.freeze(function () {})
55
+ onSelectionAreaChange: Object.freeze(function () {}),
56
+ theme: 'light'
55
57
  };
56
58
  /**
57
59
  * DataSpreadsheet: used to organize and display large amounts of structured data, separated by columns and rows in a grid-like format.
58
60
  */
59
61
 
60
62
  export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
63
+ var _cx;
64
+
61
65
  var _ref$cellSize = _ref.cellSize,
62
66
  cellSize = _ref$cellSize === void 0 ? defaults.cellSize : _ref$cellSize,
63
67
  className = _ref.className,
@@ -74,6 +78,9 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
74
78
  onActiveCellChange = _ref$onActiveCellChan === void 0 ? defaults.onActiveCellChange : _ref$onActiveCellChan,
75
79
  _ref$onSelectionAreaC = _ref.onSelectionAreaChange,
76
80
  onSelectionAreaChange = _ref$onSelectionAreaC === void 0 ? defaults.onSelectionAreaChange : _ref$onSelectionAreaC,
81
+ selectAllAriaLabel = _ref.selectAllAriaLabel,
82
+ spreadsheetAriaLabel = _ref.spreadsheetAriaLabel,
83
+ theme = _ref.theme,
77
84
  totalVisibleColumns = _ref.totalVisibleColumns,
78
85
  rest = _objectWithoutProperties(_ref, _excluded);
79
86
 
@@ -181,11 +188,11 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
181
188
  visibleColumns = _useTable.visibleColumns; // Update the spreadsheet data after editing a cell
182
189
 
183
190
 
184
- var updateData = useCallback(function (rowIndex, columnId) {
191
+ var updateData = useCallback(function (rowIndex, columnId, newValue) {
185
192
  onDataUpdate(function (prev) {
186
193
  return prev.map(function (row, index) {
187
194
  if (index === rowIndex) {
188
- return _objectSpread(_objectSpread({}, prev[rowIndex]), {}, _defineProperty({}, columnId, cellEditorValue));
195
+ return _objectSpread(_objectSpread({}, prev[rowIndex]), {}, _defineProperty({}, columnId, cellEditorValue || newValue));
189
196
  }
190
197
 
191
198
  return row;
@@ -195,10 +202,7 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
195
202
 
196
203
  var removeActiveCell = useCallback(function () {
197
204
  var activeCellHighlight = spreadsheetRef.current.querySelector(".".concat(blockClass, "__active-cell--highlight"));
198
-
199
- if (activeCellHighlight) {
200
- activeCellHighlight.style.display = 'none';
201
- }
205
+ activeCellHighlight.style.display = 'none';
202
206
  }, [spreadsheetRef]);
203
207
  var removeCellEditor = useCallback(function () {
204
208
  setCellEditorValue('');
@@ -373,13 +377,35 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
373
377
  setCurrentMatcher: setCurrentMatcher,
374
378
  usingMac: usingMac
375
379
  });
376
- } // Allow arrow key navigation if there are less than two activeKeys OR
377
- // if one of the activeCellCoordinates is in a header position
380
+ }
378
381
 
382
+ var deleteParams = {
383
+ selectionAreas: selectionAreas,
384
+ currentMatcher: currentMatcher,
385
+ rows: rows,
386
+ setActiveCellContent: setActiveCellContent,
387
+ updateData: updateData,
388
+ activeCellCoordinates: activeCellCoordinates
389
+ }; // Allow arrow key navigation if there are less than two activeKeys OR
390
+ // if one of the activeCellCoordinates is in a header position
379
391
 
380
392
  if (keysPressedList.length < 2 && !includesShift(keysPressedList) || activeCellCoordinates.row === 'header' || activeCellCoordinates.column === 'header') {
381
393
  switch (key) {
394
+ // Backspace
395
+ case 'Backspace':
396
+ {
397
+ handleCellDeletion(deleteParams);
398
+ break;
399
+ }
400
+ // Delete
401
+
402
+ case 'Delete':
403
+ {
404
+ handleCellDeletion(deleteParams);
405
+ break;
406
+ }
382
407
  // Enter
408
+
383
409
  case 'Enter':
384
410
  {
385
411
  handleActiveCellInSelectionEnter({
@@ -577,7 +603,7 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
577
603
  }
578
604
  }
579
605
  }
580
- }, [activeCellInsideSelectionArea, updateActiveCellCoordinates, handleInitialArrowPress, activeCellCoordinates, removeActiveCell, columns, rows, spreadsheetRef, currentMatcher, isEditing, removeCellEditor, selectionAreas, handleHomeEndKey, keysPressedList, usingMac]);
606
+ }, [activeCellInsideSelectionArea, updateActiveCellCoordinates, handleInitialArrowPress, activeCellCoordinates, removeActiveCell, columns, rows, spreadsheetRef, currentMatcher, isEditing, removeCellEditor, selectionAreas, handleHomeEndKey, keysPressedList, usingMac, updateData]);
581
607
 
582
608
  var startEditMode = function startEditMode() {
583
609
  setIsEditing(true);
@@ -613,6 +639,11 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
613
639
  }
614
640
 
615
641
  return;
642
+ }; // Mouse up on active cell
643
+
644
+
645
+ var handleActiveCellMouseUp = function handleActiveCellMouseUp() {
646
+ setClickAndHoldActive(false);
616
647
  }; // Mouse down on active cell
617
648
 
618
649
 
@@ -751,12 +782,13 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
751
782
  }
752
783
  }, [spreadsheetRef, currentMatcher]);
753
784
  return /*#__PURE__*/React.createElement("div", _extends({}, rest, getTableProps(), getDevtoolsProps(componentName), {
754
- className: cx(blockClass, className, "".concat(blockClass, "--interactive-cell-element"), _defineProperty({}, "".concat(blockClass, "__container-has-focus"), containerHasFocus)),
785
+ className: cx(blockClass, className, "".concat(blockClass, "--interactive-cell-element"), (_cx = {}, _defineProperty(_cx, "".concat(blockClass, "__container-has-focus"), containerHasFocus), _defineProperty(_cx, "".concat(blockClass, "__").concat(theme), theme === 'dark'), _cx)),
755
786
  ref: spreadsheetRef,
756
787
  role: "grid",
757
788
  tabIndex: 0,
758
789
  "aria-rowcount": (rows === null || rows === void 0 ? void 0 : rows.length) || 0,
759
790
  "aria-colcount": (columns === null || columns === void 0 ? void 0 : columns.length) || 0,
791
+ "aria-label": spreadsheetAriaLabel,
760
792
  onKeyDown: handleKeyPress,
761
793
  onFocus: function onFocus() {
762
794
  return setContainerHasFocus(true);
@@ -782,7 +814,8 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
782
814
  updateActiveCellCoordinates: updateActiveCellCoordinates,
783
815
  setHeaderCellHoldActive: setHeaderCellHoldActive,
784
816
  headerCellHoldActive: headerCellHoldActive,
785
- visibleColumns: visibleColumns
817
+ visibleColumns: visibleColumns,
818
+ selectAllAriaLabel: selectAllAriaLabel
786
819
  }), /*#__PURE__*/React.createElement(DataSpreadsheetBody, {
787
820
  activeCellCoordinates: activeCellCoordinates,
788
821
  ref: spreadsheetRef,
@@ -817,6 +850,7 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
817
850
  visibleColumns: visibleColumns
818
851
  }), /*#__PURE__*/React.createElement("button", {
819
852
  onMouseDown: handleActiveCellMouseDown,
853
+ onMouseUp: handleActiveCellMouseUp,
820
854
  onClick: handleActiveCellClick,
821
855
  onKeyDown: handleActiveCellKeyDown,
822
856
  onDoubleClick: handleActiveCellDoubleClick,
@@ -825,6 +859,7 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
825
859
  className: cx("".concat(blockClass, "--interactive-cell-element"), "".concat(blockClass, "__active-cell--highlight"), _defineProperty({}, "".concat(blockClass, "__active-cell--with-selection"), activeCellInsideSelectionArea)),
826
860
  type: "button"
827
861
  }, activeCellContent), /*#__PURE__*/React.createElement("textarea", {
862
+ id: "".concat(blockClass, "__cell-editor-text-area"),
828
863
  value: cellEditorValue,
829
864
  onKeyDown: handleEditSubmit({
830
865
  activeCellCoordinates: activeCellCoordinates,
@@ -844,7 +879,7 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
844
879
  cellEditorRulerRef.current.textContent = event.target.value;
845
880
  },
846
881
  ref: cellEditorRef,
847
- "aria-labelledby": activeCellCoordinates ? "#".concat(blockClass, "__cell--").concat(activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row, "--").concat(activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) : null,
882
+ "aria-labelledby": activeCellCoordinates ? "".concat(blockClass, "__cell--").concat(activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row, "--").concat(activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) : null,
848
883
  className: cx("".concat(blockClass, "__cell-editor"), "".concat(blockClass, "--interactive-cell-element"), "".concat(blockClass, "__cell-editor--").concat(cellSize), _defineProperty({}, "".concat(blockClass, "__cell-editor--active"), isEditing))
849
884
  }), /*#__PURE__*/React.createElement("pre", {
850
885
  "aria-hidden": true,
@@ -911,6 +946,21 @@ DataSpreadsheet.propTypes = {
911
946
  */
912
947
  onSelectionAreaChange: PropTypes.func,
913
948
 
949
+ /**
950
+ * The aria label applied to the Select all button
951
+ */
952
+ selectAllAriaLabel: PropTypes.string.isRequired,
953
+
954
+ /**
955
+ * The aria label applied to the Data spreadsheet component
956
+ */
957
+ spreadsheetAriaLabel: PropTypes.string.isRequired,
958
+
959
+ /**
960
+ * The theme the DataSpreadsheet should use (only used to render active cell/selection area colors on dark theme)
961
+ */
962
+ theme: PropTypes.oneOf(['light', 'dark']),
963
+
914
964
  /**
915
965
  * The total number of columns to be initially visible, additional columns will be rendered and
916
966
  * visible via horizontal scrollbar
@@ -385,7 +385,8 @@ export var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
385
385
  }), {
386
386
  className: cx("".concat(blockClass, "__tr")),
387
387
  "data-row-index": index,
388
- "aria-rowindex": index + 1
388
+ "aria-rowindex": index + 1,
389
+ "aria-owns": "".concat(blockClass, "__cell-editor-text-area")
389
390
  }), /*#__PURE__*/React.createElement("div", {
390
391
  role: "rowheader",
391
392
  className: "".concat(blockClass, "__td-th--cell-container")
@@ -43,6 +43,7 @@ export var DataSpreadsheetHeader = /*#__PURE__*/forwardRef(function (_ref, ref)
43
43
  updateActiveCellCoordinates = _ref.updateActiveCellCoordinates,
44
44
  setHeaderCellHoldActive = _ref.setHeaderCellHoldActive,
45
45
  headerCellHoldActive = _ref.headerCellHoldActive,
46
+ selectAllAriaLabel = _ref.selectAllAriaLabel,
46
47
  visibleColumns = _ref.visibleColumns;
47
48
 
48
49
  var _useState = useState(0),
@@ -175,6 +176,7 @@ export var DataSpreadsheetHeader = /*#__PURE__*/forwardRef(function (_ref, ref)
175
176
  "data-column-index": "header",
176
177
  type: "button",
177
178
  tabIndex: -1,
179
+ "aria-label": selectAllAriaLabel,
178
180
  onClick: handleSelectAllClick,
179
181
  className: cx("".concat(blockClass, "__th"), "".concat(blockClass, "--interactive-cell-element"), "".concat(blockClass, "__th--select-all"), _defineProperty({}, "".concat(blockClass, "__th--active-header"), (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) === 'header' && (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === 'header'))
180
182
  }, "\xA0")), headerGroup.headers.map(function (column, index) {
@@ -258,6 +260,11 @@ DataSpreadsheetHeader.propTypes = {
258
260
  */
259
261
  scrollBarSize: PropTypes.number,
260
262
 
263
+ /**
264
+ * The aria label applied to the Select all button
265
+ */
266
+ selectAllAriaLabel: PropTypes.string.isRequired,
267
+
261
268
  /**
262
269
  * All of the cell selection area items
263
270
  */
@@ -37,7 +37,8 @@ export var useMultipleKeyTracking = function useMultipleKeyTracking(_ref) {
37
37
 
38
38
  var previousState = usePreviousValue({
39
39
  isEditing: isEditing,
40
- windowFocused: windowFocused
40
+ windowFocused: windowFocused,
41
+ containerHasFocus: containerHasFocus
41
42
  }); // useEffect to check for window focus, if window loses focus
42
43
  // we need to clear out the keysPressedList
43
44
 
@@ -68,7 +69,7 @@ export var useMultipleKeyTracking = function useMultipleKeyTracking(_ref) {
68
69
  };
69
70
  }, []);
70
71
  useEffect(function () {
71
- if (containerHasFocus && !isEditing) {
72
+ if (ref && containerHasFocus && !isEditing) {
72
73
  ref.current.onkeydown = ref.current.onkeyup = function (event) {
73
74
  // If keydown, we will add the new key to the keysPressedList array
74
75
  if (event.type === 'keydown') {
@@ -122,15 +123,15 @@ export var useMultipleKeyTracking = function useMultipleKeyTracking(_ref) {
122
123
  // or is currently in edit mode
123
124
 
124
125
 
125
- if (!containerHasFocus || isEditing) {
126
+ if (ref && !containerHasFocus || isEditing) {
126
127
  ref.current.onkeydown = undefined;
127
128
  ref.current.onkeyup = undefined;
128
129
 
129
- if (!(previousState !== null && previousState !== void 0 && previousState.isEditing) && isEditing) {
130
+ if (!(previousState !== null && previousState !== void 0 && previousState.isEditing) && isEditing || previousState !== null && previousState !== void 0 && previousState.containerHasFocus && !containerHasFocus) {
130
131
  setKeysPressedList([]);
131
132
  }
132
133
  }
133
- }, [keysPressedList, containerHasFocus, ref, isEditing, previousState === null || previousState === void 0 ? void 0 : previousState.isEditing, windowFocused, previousState === null || previousState === void 0 ? void 0 : previousState.windowFocused, usingMac]);
134
+ }, [keysPressedList, containerHasFocus, ref, isEditing, previousState === null || previousState === void 0 ? void 0 : previousState.isEditing, previousState === null || previousState === void 0 ? void 0 : previousState.containerHasFocus, windowFocused, previousState === null || previousState === void 0 ? void 0 : previousState.windowFocused, usingMac]);
134
135
  return {
135
136
  keysPressedList: keysPressedList,
136
137
  windowFocused: windowFocused,
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Copyright IBM Corp. 2022, 2022
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { deepCloneObject } from '../../../global/js/utils/deepCloneObject';
8
+ import { rangeWithCallback } from '../../../global/js/utils/rangeWithCallback';
9
+ export var handleCellDeletion = function handleCellDeletion(_ref) {
10
+ var _selectionAreaToEmpty, _selectionAreaToEmpty2, _selectionAreaToEmpty3, _selectionAreaToEmpty4, _selectionAreaToEmpty5, _selectionAreaToEmpty6, _selectionAreaToEmpty7, _selectionAreaToEmpty8;
11
+
12
+ var activeCellCoordinates = _ref.activeCellCoordinates,
13
+ selectionAreas = _ref.selectionAreas,
14
+ currentMatcher = _ref.currentMatcher,
15
+ rows = _ref.rows,
16
+ setActiveCellContent = _ref.setActiveCellContent,
17
+ updateData = _ref.updateData;
18
+
19
+ // This means that the delete key has been pressed when the active cell is in a header,
20
+ // not within the spreadsheet body. To delete an entire row/column, it must first be
21
+ // selected, and then can be deleted.
22
+ if ((activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) === 'header' || (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === 'header') {
23
+ return;
24
+ }
25
+
26
+ var selectionAreaClone = deepCloneObject(selectionAreas);
27
+ var indexOfCurrentSelectionArea = selectionAreaClone.findIndex(function (item) {
28
+ return item.matcher === currentMatcher;
29
+ });
30
+ var selectionAreaToEmptyContents = selectionAreaClone[indexOfCurrentSelectionArea];
31
+ var lowestColumnIndex = Math.min(selectionAreaToEmptyContents === null || selectionAreaToEmptyContents === void 0 ? void 0 : (_selectionAreaToEmpty = selectionAreaToEmptyContents.point1) === null || _selectionAreaToEmpty === void 0 ? void 0 : _selectionAreaToEmpty.column, selectionAreaToEmptyContents === null || selectionAreaToEmptyContents === void 0 ? void 0 : (_selectionAreaToEmpty2 = selectionAreaToEmptyContents.point2) === null || _selectionAreaToEmpty2 === void 0 ? void 0 : _selectionAreaToEmpty2.column);
32
+ var greatestColumnIndex = Math.max(selectionAreaToEmptyContents === null || selectionAreaToEmptyContents === void 0 ? void 0 : (_selectionAreaToEmpty3 = selectionAreaToEmptyContents.point1) === null || _selectionAreaToEmpty3 === void 0 ? void 0 : _selectionAreaToEmpty3.column, selectionAreaToEmptyContents === null || selectionAreaToEmptyContents === void 0 ? void 0 : (_selectionAreaToEmpty4 = selectionAreaToEmptyContents.point2) === null || _selectionAreaToEmpty4 === void 0 ? void 0 : _selectionAreaToEmpty4.column);
33
+ var lowestRowIndex = Math.min(selectionAreaToEmptyContents === null || selectionAreaToEmptyContents === void 0 ? void 0 : (_selectionAreaToEmpty5 = selectionAreaToEmptyContents.point1) === null || _selectionAreaToEmpty5 === void 0 ? void 0 : _selectionAreaToEmpty5.row, selectionAreaToEmptyContents === null || selectionAreaToEmptyContents === void 0 ? void 0 : (_selectionAreaToEmpty6 = selectionAreaToEmptyContents.point2) === null || _selectionAreaToEmpty6 === void 0 ? void 0 : _selectionAreaToEmpty6.row);
34
+ var greatestRowIndex = Math.max(selectionAreaToEmptyContents === null || selectionAreaToEmptyContents === void 0 ? void 0 : (_selectionAreaToEmpty7 = selectionAreaToEmptyContents.point1) === null || _selectionAreaToEmpty7 === void 0 ? void 0 : _selectionAreaToEmpty7.row, selectionAreaToEmptyContents === null || selectionAreaToEmptyContents === void 0 ? void 0 : (_selectionAreaToEmpty8 = selectionAreaToEmptyContents.point2) === null || _selectionAreaToEmpty8 === void 0 ? void 0 : _selectionAreaToEmpty8.row);
35
+ rangeWithCallback(lowestColumnIndex, greatestColumnIndex, function (columnIndex) {
36
+ rangeWithCallback(lowestRowIndex, greatestRowIndex, function (rowIndex) {
37
+ var cellProps = rows[rowIndex].cells[columnIndex];
38
+ updateData(rowIndex, cellProps === null || cellProps === void 0 ? void 0 : cellProps.column.id, '');
39
+ });
40
+ });
41
+ setActiveCellContent(null);
42
+ };
@@ -288,7 +288,7 @@ export var handleMultipleKeys = function handleMultipleKeys(_ref) {
288
288
  } else {
289
289
  setTimeout(function () {
290
290
  updateToLastCell();
291
- }, 1);
291
+ }, 1000);
292
292
  }
293
293
  }
294
294
  };
@@ -1,5 +1,4 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
3
  var _excluded = ["datagridState"];
5
4
 
@@ -11,21 +10,16 @@ var _excluded = ["datagridState"];
11
10
  */
12
11
  import React from 'react';
13
12
  import PropTypes from 'prop-types';
14
- import { DataTable } from '@carbon/react';
15
13
  import cx from 'classnames';
16
- import DatagridHead from './DatagridHead';
17
- import DatagridBody from './DatagridBody';
18
- import DatagridToolbar from './DatagridToolbar';
19
14
  import { getDevtoolsProps } from '../../../global/js/utils/devtools';
20
15
  import { pkg } from '../../../settings';
21
16
  import pconsole from '../../../global/js/utils/pconsole';
17
+ import { InlineEditProvider } from './addons/InlineEdit/InlineEditContext';
18
+ import { DatagridContent } from './DatagridContent';
19
+ import { FilterProvider } from './addons/Filtering/FilterProvider';
22
20
  var blockClass = "".concat(pkg.prefix, "--datagrid");
23
21
  var componentName = 'Datagrid';
24
- var TableContainer = DataTable.TableContainer,
25
- Table = DataTable.Table;
26
22
  export var Datagrid = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
27
- var _getTableProps;
28
-
29
23
  var datagridState = _ref.datagridState,
30
24
  rest = _objectWithoutProperties(_ref, _excluded);
31
25
 
@@ -34,45 +28,27 @@ export var Datagrid = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
34
28
  return null;
35
29
  }
36
30
 
37
- var _datagridState$getTab = datagridState.getTableProps,
38
- getTableProps = _datagridState$getTab === void 0 ? function () {} : _datagridState$getTab,
39
- withVirtualScroll = datagridState.withVirtualScroll,
31
+ var withVirtualScroll = datagridState.withVirtualScroll,
40
32
  DatagridPagination = datagridState.DatagridPagination,
41
33
  isFetching = datagridState.isFetching,
42
34
  tableId = datagridState.tableId,
43
- CustomizeColumnsModal = datagridState.CustomizeColumnsModal,
44
- leftPanel = datagridState.leftPanel,
45
- fullHeightDatagrid = datagridState.fullHeightDatagrid,
46
- _datagridState$vertic = datagridState.verticalAlign,
47
- verticalAlign = _datagridState$vertic === void 0 ? 'center' : _datagridState$vertic,
48
- variableRowHeight = datagridState.variableRowHeight,
35
+ filterProps = datagridState.filterProps,
49
36
  className = datagridState.className,
50
- gridTitle = datagridState.gridTitle,
51
- gridDescription = datagridState.gridDescription,
52
- useDenseHeader = datagridState.useDenseHeader;
37
+ filters = datagridState.state.filters;
53
38
  var rows = DatagridPagination && datagridState.page || datagridState.rows;
54
- var dataGrid = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TableContainer, {
55
- className: cx("".concat(blockClass, "__grid-container"), withVirtualScroll || fullHeightDatagrid ? "".concat(blockClass, "__full-height") : '', DatagridPagination ? "".concat(blockClass, "__with-pagination") : '', useDenseHeader ? "".concat(blockClass, "__dense-header") : ''),
56
- title: gridTitle,
57
- description: gridDescription
58
- }, /*#__PURE__*/React.createElement(DatagridToolbar, datagridState), /*#__PURE__*/React.createElement("div", {
59
- className: "".concat(blockClass, "__table-container")
60
- }, leftPanel && leftPanel.isOpen && /*#__PURE__*/React.createElement("div", {
61
- className: "".concat(blockClass, "__datagridLeftPanel")
62
- }, leftPanel.panelContent), /*#__PURE__*/React.createElement(Table, _extends({}, getTableProps(), {
63
- className: cx(withVirtualScroll ? '' : "".concat(blockClass, "__table-simple"), "".concat(blockClass, "__vertical-align-").concat(verticalAlign), _defineProperty({}, "".concat(blockClass, "__variable-row-height"), variableRowHeight), (_getTableProps = getTableProps()) === null || _getTableProps === void 0 ? void 0 : _getTableProps.className)
64
- }), /*#__PURE__*/React.createElement(DatagridHead, datagridState), /*#__PURE__*/React.createElement(DatagridBody, _extends({}, datagridState, {
65
- rows: rows
66
- }))))), (rows === null || rows === void 0 ? void 0 : rows.length) > 0 && !isFetching && DatagridPagination && DatagridPagination(datagridState), CustomizeColumnsModal && /*#__PURE__*/React.createElement(CustomizeColumnsModal, {
67
- instance: datagridState
68
- }));
69
- return /*#__PURE__*/React.createElement("div", _extends({}, rest, {
39
+ return /*#__PURE__*/React.createElement(FilterProvider, {
40
+ filters: filters
41
+ }, /*#__PURE__*/React.createElement(InlineEditProvider, null, /*#__PURE__*/React.createElement("div", _extends({}, rest, {
70
42
  id: tableId,
71
43
  ref: ref,
72
44
  className: cx(className, blockClass, withVirtualScroll ? "".concat(blockClass, "__datagridWrap") : "".concat(blockClass, "__datagridWrap-simple"), !isFetching && rows.length === 0 ? "".concat(blockClass, "__empty-state") : '')
73
- }, getDevtoolsProps(componentName)), leftPanel && /*#__PURE__*/React.createElement("div", {
74
- className: "".concat(blockClass, "__datagridWithPanel ").concat(blockClass, "__displayFlex ").concat(blockClass, "__leftPanel-position")
75
- }, dataGrid), leftPanel === undefined && dataGrid);
45
+ }, getDevtoolsProps(componentName)), (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'panel' ? /*#__PURE__*/React.createElement("div", {
46
+ className: "".concat(blockClass, "__datagridWithPanel ").concat(blockClass, "__displayFlex")
47
+ }, /*#__PURE__*/React.createElement(DatagridContent, {
48
+ datagridState: datagridState
49
+ })) : /*#__PURE__*/React.createElement(DatagridContent, {
50
+ datagridState: datagridState
51
+ }))));
76
52
  }); // Return a placeholder if not released and not enabled by feature flag
77
53
 
78
54
  Datagrid = pkg.checkComponentEnabled(Datagrid, componentName); // The display name of the component, used by React. Note that displayName
@@ -0,0 +1,194 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+
4
+ /**
5
+ * Copyright IBM Corp. 2022, 2022
6
+ *
7
+ * This source code is licensed under the Apache-2.0 license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+ import React, { useContext, useEffect, useRef } from 'react';
11
+ import cx from 'classnames';
12
+ import PropTypes from 'prop-types';
13
+ import { TableContainer, Table } from '@carbon/react';
14
+ import { px } from '@carbon/layout';
15
+ import DatagridHead from './DatagridHead';
16
+ import DatagridBody from './DatagridBody';
17
+ import DatagridToolbar from './DatagridToolbar';
18
+ import { handleGridKeyPress } from './addons/InlineEdit/handleGridKeyPress';
19
+ import { carbon, pkg } from '../../../settings';
20
+ import { InlineEditContext } from './addons/InlineEdit/InlineEditContext';
21
+ import { FilterContext, FilterPanel } from './addons/Filtering';
22
+ import { handleGridFocus } from './addons/InlineEdit/handleGridFocus';
23
+ import { useClickOutside } from '../../../global/js/hooks';
24
+ import { useMultipleKeyTracking } from '../../DataSpreadsheet/hooks';
25
+ import { FilterSummary } from '../../FilterSummary';
26
+ import { CLEAR_FILTERS } from './addons/Filtering/constants';
27
+ var blockClass = "".concat(pkg.prefix, "--datagrid");
28
+ export var DatagridContent = function DatagridContent(_ref) {
29
+ var _cx4;
30
+
31
+ var datagridState = _ref.datagridState;
32
+
33
+ var _useContext = useContext(InlineEditContext),
34
+ inlineEditState = _useContext.state,
35
+ dispatch = _useContext.dispatch;
36
+
37
+ var _useContext2 = useContext(FilterContext),
38
+ filterTags = _useContext2.filterTags,
39
+ EventEmitter = _useContext2.EventEmitter,
40
+ leftPanelOpen = _useContext2.leftPanelOpen;
41
+
42
+ var activeCellId = inlineEditState.activeCellId,
43
+ gridActive = inlineEditState.gridActive,
44
+ editId = inlineEditState.editId;
45
+ var _datagridState$getTab = datagridState.getTableProps,
46
+ getTableProps = _datagridState$getTab === void 0 ? function () {} : _datagridState$getTab,
47
+ getFilterFlyoutProps = datagridState.getFilterFlyoutProps,
48
+ withVirtualScroll = datagridState.withVirtualScroll,
49
+ DatagridPagination = datagridState.DatagridPagination,
50
+ isFetching = datagridState.isFetching,
51
+ CustomizeColumnsTearsheet = datagridState.CustomizeColumnsTearsheet,
52
+ filterProps = datagridState.filterProps,
53
+ fullHeightDatagrid = datagridState.fullHeightDatagrid,
54
+ _datagridState$vertic = datagridState.verticalAlign,
55
+ verticalAlign = _datagridState$vertic === void 0 ? 'center' : _datagridState$vertic,
56
+ variableRowHeight = datagridState.variableRowHeight,
57
+ gridTitle = datagridState.gridTitle,
58
+ gridDescription = datagridState.gridDescription,
59
+ useDenseHeader = datagridState.useDenseHeader,
60
+ withInlineEdit = datagridState.withInlineEdit,
61
+ tableId = datagridState.tableId,
62
+ DatagridActions = datagridState.DatagridActions,
63
+ totalColumnsWidth = datagridState.totalColumnsWidth,
64
+ gridRef = datagridState.gridRef,
65
+ state = datagridState.state;
66
+ var rows = DatagridPagination && datagridState.page || datagridState.rows;
67
+ var gridAreaRef = useRef();
68
+ var multiKeyTrackingRef = useRef();
69
+ useClickOutside(gridAreaRef, function (target) {
70
+ if (!withInlineEdit) {
71
+ return;
72
+ } // We return from here if we find a parent element with the selector below
73
+ // because that element was initially part of the grid area but was removed
74
+ // and swapped out with an input, i.e. text, number, selection, or date picker
75
+
76
+
77
+ if (target.closest(".".concat(blockClass, "__inline-edit-button")) || target.closest(".".concat(blockClass, "__inline-edit--select"))) {
78
+ return;
79
+ }
80
+
81
+ dispatch({
82
+ type: 'REMOVE_GRID_ACTIVE_FOCUS',
83
+ payload: activeCellId
84
+ });
85
+ });
86
+
87
+ var renderTable = function renderTable() {
88
+ var _getTableProps;
89
+
90
+ return /*#__PURE__*/React.createElement(Table, _extends({}, getTableProps(), {
91
+ className: cx(withVirtualScroll ? '' : "".concat(blockClass, "__table-simple"), "".concat(blockClass, "__vertical-align-").concat(verticalAlign), _defineProperty({}, "".concat(blockClass, "__variable-row-height"), variableRowHeight), _defineProperty({}, "".concat(blockClass, "__table-with-inline-edit"), withInlineEdit), _defineProperty({}, "".concat(blockClass, "__table-grid-active"), gridActive), (_getTableProps = getTableProps()) === null || _getTableProps === void 0 ? void 0 : _getTableProps.className),
92
+ role: withInlineEdit && 'grid',
93
+ tabIndex: withInlineEdit && 0,
94
+ onKeyDown: withInlineEdit ? function (event) {
95
+ return handleGridKeyPress({
96
+ event: event,
97
+ dispatch: dispatch,
98
+ inlineEditState: inlineEditState,
99
+ instance: datagridState,
100
+ keysPressedList: keysPressedList,
101
+ usingMac: usingMac
102
+ });
103
+ } : null,
104
+ onFocus: withInlineEdit ? function () {
105
+ return handleGridFocus(inlineEditState, dispatch);
106
+ } : null
107
+ }), !withVirtualScroll ? /*#__PURE__*/React.createElement(DatagridHead, datagridState) : null, /*#__PURE__*/React.createElement(DatagridBody, _extends({}, datagridState, {
108
+ rows: rows
109
+ })));
110
+ };
111
+
112
+ var _useMultipleKeyTracki = useMultipleKeyTracking({
113
+ ref: withInlineEdit ? multiKeyTrackingRef : null,
114
+ containerHasFocus: gridActive,
115
+ isEditing: !!editId
116
+ }),
117
+ keysPressedList = _useMultipleKeyTracki.keysPressedList,
118
+ usingMac = _useMultipleKeyTracki.usingMac; // Provides a width for the region outline for useInlineEdit
119
+
120
+
121
+ useEffect(function () {
122
+ if (!withInlineEdit) {
123
+ return;
124
+ }
125
+
126
+ var gridElement = document.querySelector("#".concat(tableId));
127
+ var tableHeader = gridElement === null || gridElement === void 0 ? void 0 : gridElement.querySelector(".".concat(carbon.prefix, "--data-table-header"));
128
+ gridElement.style.setProperty("--".concat(blockClass, "--grid-width"), px(totalColumnsWidth + 32));
129
+
130
+ if (gridActive) {
131
+ gridElement.style.setProperty("--".concat(blockClass, "--grid-header-height"), px((tableHeader === null || tableHeader === void 0 ? void 0 : tableHeader.clientHeight) || 0));
132
+ }
133
+ }, [withInlineEdit, tableId, totalColumnsWidth, datagridState, gridActive]);
134
+
135
+ var renderFilterSummary = function renderFilterSummary() {
136
+ return state.filters.length > 0 && /*#__PURE__*/React.createElement(FilterSummary, {
137
+ className: "".concat(blockClass, "__filter-summary"),
138
+ filters: filterTags,
139
+ clearFilters: function clearFilters() {
140
+ return EventEmitter.dispatch(CLEAR_FILTERS);
141
+ }
142
+ });
143
+ };
144
+
145
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TableContainer, {
146
+ className: cx("".concat(blockClass, "__grid-container"), withVirtualScroll || fullHeightDatagrid ? "".concat(blockClass, "__full-height") : '', DatagridPagination ? "".concat(blockClass, "__with-pagination") : '', useDenseHeader ? "".concat(blockClass, "__dense-header") : '', (_cx4 = {}, _defineProperty(_cx4, "".concat(blockClass, "__grid-container-grid-active"), gridActive), _defineProperty(_cx4, "".concat(blockClass, "__grid-container-inline-edit"), withInlineEdit), _defineProperty(_cx4, "".concat(blockClass, "__grid-container-grid-active--without-toolbar"), withInlineEdit && !DatagridActions), _cx4)),
147
+ title: gridTitle,
148
+ description: gridDescription
149
+ }, /*#__PURE__*/React.createElement(DatagridToolbar, datagridState), /*#__PURE__*/React.createElement("div", {
150
+ className: cx("".concat(blockClass, "__table-container"), _defineProperty({}, "".concat(blockClass, "__table-container--filter-open"), leftPanelOpen)),
151
+ ref: gridAreaRef
152
+ }, (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'panel' && /*#__PURE__*/React.createElement(FilterPanel, _extends({
153
+ updateMethod: "batch"
154
+ }, getFilterFlyoutProps(), {
155
+ title: filterProps.panelTitle,
156
+ filterSections: filterProps.sections
157
+ })), /*#__PURE__*/React.createElement("div", {
158
+ className: "".concat(blockClass, "__table-container-inner")
159
+ }, renderFilterSummary(), withInlineEdit ? /*#__PURE__*/React.createElement("div", {
160
+ ref: multiKeyTrackingRef
161
+ }, renderTable()) : withVirtualScroll ? /*#__PURE__*/React.createElement("div", {
162
+ className: "".concat(blockClass, "__virtualScrollContainer"),
163
+ ref: gridRef
164
+ }, renderTable()) : renderTable()))), (rows === null || rows === void 0 ? void 0 : rows.length) > 0 && !isFetching && DatagridPagination && /*#__PURE__*/React.createElement(DatagridPagination, datagridState), CustomizeColumnsTearsheet && /*#__PURE__*/React.createElement(CustomizeColumnsTearsheet, {
165
+ instance: datagridState
166
+ }));
167
+ };
168
+ DatagridContent.propTypes = {
169
+ datagridState: PropTypes.shape({
170
+ getTableProps: PropTypes.func,
171
+ getFilterFlyoutProps: PropTypes.func,
172
+ withVirtualScroll: PropTypes.bool,
173
+ DatagridActions: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
174
+ DatagridPagination: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
175
+ CustomizeColumnsTearsheet: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
176
+ isFetching: PropTypes.bool,
177
+ fullHeightDatagrid: PropTypes.bool,
178
+ filterProps: PropTypes.object,
179
+ variableRowHeight: PropTypes.bool,
180
+ useDenseHeader: PropTypes.bool,
181
+ withInlineEdit: PropTypes.bool,
182
+ verticalAlign: PropTypes.string,
183
+ gridTitle: PropTypes.node,
184
+ gridDescription: PropTypes.node,
185
+ page: PropTypes.arrayOf(PropTypes.object),
186
+ rows: PropTypes.arrayOf(PropTypes.object),
187
+ tableId: PropTypes.string,
188
+ totalColumnsWidth: PropTypes.number,
189
+ gridRef: PropTypes.object,
190
+ setAllFilters: PropTypes.func,
191
+ getFilterProps: PropTypes.func,
192
+ state: PropTypes.object
193
+ })
194
+ };