@carbon/ibm-products 2.0.0-rc.0 → 2.0.0-rc.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (332) hide show
  1. package/README.md +2 -2
  2. package/css/index-full-carbon.css +1223 -325
  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 +792 -174
  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 +1109 -419
  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 +1024 -274
  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 +72 -31
  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 +15 -1
  34. package/es/components/AddSelect/index.js +1 -1
  35. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +4 -6
  36. package/es/components/Card/Card.js +16 -6
  37. package/es/components/Card/CardFooter.js +3 -1
  38. package/es/components/Card/CardHeader.js +20 -1
  39. package/es/components/ComboButton/ComboButton.js +1 -1
  40. package/es/components/CreateFullPage/CreateFullPage.js +4 -1
  41. package/es/components/CreateTearsheet/CreateTearsheet.js +8 -1
  42. package/es/components/CreateTearsheetNarrow/CreateTearsheetNarrow.js +2 -2
  43. package/es/components/DataSpreadsheet/DataSpreadsheet.js +64 -11
  44. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  45. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  46. package/es/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +6 -5
  47. package/es/components/DataSpreadsheet/utils/handleCellDeletion.js +40 -0
  48. package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  49. package/es/components/Datagrid/Datagrid/Datagrid.js +10 -38
  50. package/es/components/Datagrid/Datagrid/DatagridContent.js +154 -0
  51. package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  52. package/es/components/Datagrid/Datagrid/DatagridRow.js +53 -6
  53. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +10 -3
  54. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +13 -4
  55. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +142 -11
  56. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +2 -1
  57. package/es/components/Datagrid/Datagrid/DraggableElement.js +6 -2
  58. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +5 -45
  59. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +4 -1
  60. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +36 -10
  61. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +62 -26
  62. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
  63. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +60 -0
  64. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +1 -0
  65. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +537 -0
  66. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +1 -0
  67. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +112 -0
  68. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +27 -0
  69. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +1 -0
  70. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +39 -0
  71. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +19 -0
  72. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +263 -0
  73. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +87 -0
  74. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +17 -14
  75. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +13 -36
  76. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/CustomizeColumnStory.js +0 -0
  77. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/LeftPanelStory.js +0 -0
  78. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/RowSizeDropdownStory.js +0 -0
  79. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/SelectAllWithToggleStory.js +0 -0
  80. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/StickyActionsColumnStory.js +0 -0
  81. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/common.js +0 -0
  82. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/index.js +0 -0
  83. package/es/components/Datagrid/index.js +3 -1
  84. package/es/components/Datagrid/useActionsColumn.js +53 -12
  85. package/es/components/Datagrid/useColumnOrder.js +8 -0
  86. package/es/components/Datagrid/useCustomizeColumns.js +5 -0
  87. package/es/components/Datagrid/useDefaultStringRenderer.js +4 -1
  88. package/es/components/Datagrid/useDisableSelectRows.js +6 -2
  89. package/es/components/Datagrid/useExpandedRow.js +0 -1
  90. package/es/components/Datagrid/useInfiniteScroll.js +5 -2
  91. package/es/components/Datagrid/useInlineEdit.js +71 -0
  92. package/es/components/Datagrid/useNestedRowExpander.js +47 -0
  93. package/es/components/Datagrid/useNestedRows.js +16 -4
  94. package/es/components/Datagrid/useRowExpander.js +12 -4
  95. package/es/components/Datagrid/useRowSize.js +17 -6
  96. package/es/components/Datagrid/useSelectAllToggle.js +17 -4
  97. package/es/components/Datagrid/useSelectRows.js +13 -3
  98. package/es/components/Datagrid/useSortableColumns.js +1 -1
  99. package/es/components/Datagrid/useStickyColumn.js +14 -0
  100. package/es/components/Datagrid/utils/DatagridActions.js +236 -0
  101. package/es/components/Datagrid/utils/DatagridPagination.js +33 -0
  102. package/es/components/Datagrid/utils/Wrapper.js +21 -0
  103. package/es/components/Datagrid/utils/getArgTypes.js +89 -0
  104. package/es/components/Datagrid/utils/getInlineEditColumns.js +153 -0
  105. package/es/components/Datagrid/utils/makeData.js +47 -2
  106. package/es/components/EditUpdateCards/EditUpdateCards.js +144 -0
  107. package/es/components/EditUpdateCards/index.js +7 -0
  108. package/es/components/ExportModal/ExportModal.js +1 -1
  109. package/es/components/ImportModal/ImportModal.js +3 -3
  110. package/es/components/InlineEdit/InlineEdit.js +28 -426
  111. package/es/components/InlineEditV1/InlineEditV1.js +447 -0
  112. package/es/components/InlineEditV1/index.js +7 -0
  113. package/es/components/InlineEditV2/InlineEditV2.js +289 -0
  114. package/es/components/InlineEditV2/index.js +7 -0
  115. package/es/components/ModifiedTabs/ModifiedTabLabelNew.js +1 -1
  116. package/es/components/ModifiedTabs/ModifiedTabLabelWithClose.js +1 -1
  117. package/es/components/MultiAddSelect/MultiAddSelect.js +14 -7
  118. package/es/components/MultiAddSelect/index.js +6 -0
  119. package/es/components/NotificationsPanel/NotificationsPanel.js +1 -1
  120. package/es/components/OptionsTile/OptionsTile.js +29 -13
  121. package/es/components/PageHeader/PageHeader.js +4 -4
  122. package/es/components/PageHeader/PageHeaderTitle.js +1 -1
  123. package/es/components/ProductiveCard/ProductiveCard.js +5 -0
  124. package/es/components/RemoveModal/RemoveModal.js +20 -3
  125. package/es/components/Saving/Saving.js +1 -1
  126. package/es/components/SidePanel/SidePanel.js +45 -52
  127. package/es/components/SidePanel/motion/variants.js +45 -0
  128. package/es/components/SingleAddSelect/SingleAddSelect.js +6 -0
  129. package/es/components/SingleAddSelect/index.js +6 -0
  130. package/es/components/StatusIcon/StatusIcon.js +1 -1
  131. package/es/components/UserProfileImage/UserProfileImage.js +1 -1
  132. package/es/components/WebTerminal/WebTerminal.js +2 -2
  133. package/es/components/WebTerminal/WebTerminalContentWrapper.js +1 -1
  134. package/es/components/WebTerminal/hooks/index.js +6 -0
  135. package/es/components/WebTerminal/index.js +6 -0
  136. package/es/components/WebTerminal/preview-components/Navigation.js +7 -1
  137. package/es/components/WebTerminal/preview-components/documentationLinks.js +6 -0
  138. package/es/components/WebTerminal/preview-components/index.js +7 -0
  139. package/es/components/index.js +3 -2
  140. package/es/global/js/hooks/index.js +2 -1
  141. package/es/global/js/hooks/useClickOutside.js +1 -1
  142. package/es/global/js/hooks/useControllableState.js +83 -0
  143. package/es/global/js/hooks/useResetCreateComponent.js +6 -2
  144. package/es/global/js/package-settings.js +7 -4
  145. package/es/global/js/utils/getBezierValues.js +20 -0
  146. package/es/global/js/utils/getNumberOfHiddenSteps.js +19 -0
  147. package/es/global/js/utils/motionConstants.js +45 -0
  148. package/es/global/js/utils/rangeWithCallback.js +13 -0
  149. package/es/global/js/utils/story-helper.js +5 -1
  150. package/es/global/js/utils/uuidv4.spec.js +4 -0
  151. package/lib/components/APIKeyModal/APIKeyModal.js +4 -4
  152. package/lib/components/ActionBar/ActionBarOverflowItems.js +1 -0
  153. package/lib/components/ActionSet/ActionSet.js +7 -3
  154. package/lib/components/AddSelect/AddSelect.js +5 -6
  155. package/lib/components/AddSelect/AddSelectBody.js +67 -30
  156. package/lib/components/AddSelect/AddSelectBreadcrumbs.js +15 -4
  157. package/lib/components/AddSelect/AddSelectColumn.js +7 -7
  158. package/lib/components/AddSelect/AddSelectFilter.js +9 -6
  159. package/lib/components/AddSelect/AddSelectList.js +65 -30
  160. package/lib/components/AddSelect/AddSelectMetaPanel.js +8 -2
  161. package/lib/components/AddSelect/AddSelectSidebar.js +4 -1
  162. package/lib/components/AddSelect/AddSelectSort.js +5 -5
  163. package/lib/components/AddSelect/add-select-utils.js +9 -2
  164. package/lib/components/AddSelect/hooks/useItemSort.js +6 -0
  165. package/lib/components/AddSelect/hooks/useParentSelect.js +6 -0
  166. package/lib/components/AddSelect/hooks/usePath.js +9 -1
  167. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +6 -6
  168. package/lib/components/Card/Card.js +16 -6
  169. package/lib/components/Card/CardFooter.js +3 -1
  170. package/lib/components/Card/CardHeader.js +21 -1
  171. package/lib/components/ComboButton/ComboButton.js +3 -3
  172. package/lib/components/CreateFullPage/CreateFullPage.js +4 -1
  173. package/lib/components/CreateTearsheet/CreateTearsheet.js +9 -1
  174. package/lib/components/CreateTearsheetNarrow/CreateTearsheetNarrow.js +2 -2
  175. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +64 -10
  176. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  177. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  178. package/lib/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +6 -5
  179. package/lib/components/DataSpreadsheet/utils/handleCellDeletion.js +51 -0
  180. package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  181. package/lib/components/Datagrid/Datagrid/Datagrid.js +12 -45
  182. package/lib/components/Datagrid/Datagrid/DatagridContent.js +188 -0
  183. package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  184. package/lib/components/Datagrid/Datagrid/DatagridRow.js +63 -6
  185. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +12 -3
  186. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +16 -5
  187. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +151 -9
  188. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +2 -1
  189. package/lib/components/Datagrid/Datagrid/DraggableElement.js +7 -3
  190. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +12 -47
  191. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +5 -2
  192. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +48 -25
  193. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +60 -25
  194. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
  195. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +76 -0
  196. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +13 -0
  197. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +562 -0
  198. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +13 -0
  199. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +129 -0
  200. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +36 -0
  201. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +19 -0
  202. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +45 -0
  203. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +28 -0
  204. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +272 -0
  205. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +100 -0
  206. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +17 -13
  207. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +13 -35
  208. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/CustomizeColumnStory.js +0 -0
  209. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/LeftPanelStory.js +0 -0
  210. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/RowSizeDropdownStory.js +0 -0
  211. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/SelectAllWithToggleStory.js +0 -0
  212. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/StickyActionsColumnStory.js +0 -0
  213. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/common.js +0 -0
  214. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/index.js +0 -0
  215. package/lib/components/Datagrid/index.js +17 -1
  216. package/lib/components/Datagrid/useActionsColumn.js +53 -13
  217. package/lib/components/Datagrid/useColumnOrder.js +17 -0
  218. package/lib/components/Datagrid/useCustomizeColumns.js +5 -0
  219. package/lib/components/Datagrid/useDefaultStringRenderer.js +5 -1
  220. package/lib/components/Datagrid/useDisableSelectRows.js +6 -2
  221. package/lib/components/Datagrid/useExpandedRow.js +0 -1
  222. package/lib/components/Datagrid/useInfiniteScroll.js +5 -2
  223. package/lib/components/Datagrid/useInlineEdit.js +85 -0
  224. package/lib/components/Datagrid/useNestedRowExpander.js +63 -0
  225. package/lib/components/Datagrid/useNestedRows.js +17 -4
  226. package/lib/components/Datagrid/useRowExpander.js +17 -5
  227. package/lib/components/Datagrid/useRowSize.js +18 -13
  228. package/lib/components/Datagrid/useSelectAllToggle.js +18 -4
  229. package/lib/components/Datagrid/useSelectRows.js +13 -3
  230. package/lib/components/Datagrid/useSortableColumns.js +5 -5
  231. package/lib/components/Datagrid/useStickyColumn.js +14 -0
  232. package/lib/components/Datagrid/utils/DatagridActions.js +260 -0
  233. package/lib/components/Datagrid/utils/DatagridPagination.js +46 -0
  234. package/lib/components/Datagrid/utils/Wrapper.js +33 -0
  235. package/lib/components/Datagrid/utils/getArgTypes.js +97 -0
  236. package/lib/components/Datagrid/utils/getInlineEditColumns.js +168 -0
  237. package/lib/components/Datagrid/utils/makeData.js +48 -2
  238. package/lib/components/EditUpdateCards/EditUpdateCards.js +152 -0
  239. package/lib/components/EditUpdateCards/index.js +13 -0
  240. package/lib/components/ExportModal/ExportModal.js +3 -3
  241. package/lib/components/ImportModal/ImportModal.js +4 -4
  242. package/lib/components/InlineEdit/InlineEdit.js +27 -426
  243. package/lib/components/InlineEditV1/InlineEditV1.js +464 -0
  244. package/lib/components/InlineEditV1/index.js +13 -0
  245. package/lib/components/InlineEditV2/InlineEditV2.js +309 -0
  246. package/lib/components/InlineEditV2/index.js +13 -0
  247. package/lib/components/ModifiedTabs/ModifiedTabLabelNew.js +2 -2
  248. package/lib/components/ModifiedTabs/ModifiedTabLabelWithClose.js +3 -3
  249. package/lib/components/MultiAddSelect/MultiAddSelect.js +14 -7
  250. package/lib/components/NotificationsPanel/NotificationsPanel.js +8 -8
  251. package/lib/components/OptionsTile/OptionsTile.js +34 -17
  252. package/lib/components/PageHeader/PageHeader.js +5 -5
  253. package/lib/components/PageHeader/PageHeaderTitle.js +1 -1
  254. package/lib/components/ProductiveCard/ProductiveCard.js +5 -0
  255. package/lib/components/RemoveModal/RemoveModal.js +20 -3
  256. package/lib/components/Saving/Saving.js +5 -5
  257. package/lib/components/SidePanel/SidePanel.js +48 -53
  258. package/lib/components/SidePanel/motion/variants.js +55 -0
  259. package/lib/components/SingleAddSelect/SingleAddSelect.js +6 -0
  260. package/lib/components/StatusIcon/StatusIcon.js +45 -45
  261. package/lib/components/UserProfileImage/UserProfileImage.js +7 -7
  262. package/lib/components/WebTerminal/WebTerminal.js +3 -3
  263. package/lib/components/WebTerminal/hooks/index.js +6 -0
  264. package/lib/components/WebTerminal/preview-components/Navigation.js +10 -4
  265. package/lib/components/WebTerminal/preview-components/documentationLinks.js +6 -0
  266. package/lib/components/index.js +21 -1
  267. package/lib/global/js/hooks/index.js +9 -1
  268. package/lib/global/js/hooks/useClickOutside.js +1 -1
  269. package/lib/global/js/hooks/useControllableState.js +94 -0
  270. package/lib/global/js/hooks/useResetCreateComponent.js +7 -2
  271. package/lib/global/js/package-settings.js +7 -4
  272. package/lib/global/js/utils/getBezierValues.js +29 -0
  273. package/lib/global/js/utils/getNumberOfHiddenSteps.js +28 -0
  274. package/lib/global/js/utils/motionConstants.js +55 -0
  275. package/lib/global/js/utils/rangeWithCallback.js +22 -0
  276. package/lib/global/js/utils/story-helper.js +5 -1
  277. package/lib/global/js/utils/uuidv4.spec.js +4 -0
  278. package/package.json +18 -16
  279. package/scss/components/AboutModal/_about-modal.scss +2 -1
  280. package/scss/components/ActionSet/_action-set.scss +9 -4
  281. package/scss/components/AddSelect/_add-select.scss +132 -34
  282. package/scss/components/AddSelect/_index.scss +1 -1
  283. package/scss/components/AddSelect/_storybook-styles.scss +1 -1
  284. package/scss/components/Card/_card.scss +1 -0
  285. package/scss/components/Cascade/_cascade.scss +1 -1
  286. package/scss/components/CreateTearsheet/_create-tearsheet.scss +2 -0
  287. package/scss/components/Datagrid/_datagrid.scss +15 -0
  288. package/scss/components/Datagrid/_storybook-styles.scss +17 -5
  289. package/scss/components/Datagrid/styles/_datagrid.scss +129 -20
  290. package/scss/components/Datagrid/styles/_draggableElement.scss +26 -9
  291. package/scss/components/Datagrid/styles/_index.scss +1 -0
  292. package/scss/components/Datagrid/styles/_useActionsColumn.scss +14 -0
  293. package/scss/components/Datagrid/styles/_useExpandedRow.scss +57 -11
  294. package/scss/components/Datagrid/styles/_useInlineEdit.scss +419 -0
  295. package/scss/components/Datagrid/styles/_useNestedRows.scss +33 -1
  296. package/scss/components/Datagrid/styles/_useStickyColumn.scss +31 -2
  297. package/scss/components/Datagrid/styles/addons/_CustomizeColumnsModal.scss +47 -6
  298. package/scss/components/Datagrid/styles/addons/_RowSizeDropdown.scss +9 -1
  299. package/scss/components/EditUpdateCards/_carbon-imports.scss +9 -0
  300. package/scss/components/EditUpdateCards/_edit-update-cards.scss +85 -0
  301. package/scss/components/EditUpdateCards/_index-with-carbon.scss +9 -0
  302. package/scss/components/EditUpdateCards/_index.scss +8 -0
  303. package/scss/components/EditUpdateCards/_storybook-styles.scss +55 -0
  304. package/scss/components/{InlineEdit → InlineEditV1}/_carbon-imports.scss +0 -0
  305. package/scss/components/{InlineEdit → InlineEditV1}/_index-with-carbon.scss +1 -1
  306. package/scss/components/{InlineEdit → InlineEditV1}/_index.scss +1 -1
  307. package/scss/components/{InlineEdit/_inline-edit.scss → InlineEditV1/_inline-edit-v1.scss} +5 -3
  308. package/scss/components/{InlineEdit → InlineEditV1}/_storybook-styles.scss +0 -0
  309. package/scss/components/InlineEditV2/_carbon-imports.scss +9 -0
  310. package/scss/components/InlineEditV2/_index-with-carbon.scss +9 -0
  311. package/scss/components/InlineEditV2/_index.scss +10 -0
  312. package/scss/components/InlineEditV2/_inline-edit-v2.scss +83 -0
  313. package/scss/components/InlineEditV2/_storybook-styles.scss +9 -0
  314. package/scss/components/MultiAddSelect/_multi-add-select.scss +7 -0
  315. package/scss/components/MultiAddSelect/_storybook-styles.scss +1 -1
  316. package/scss/components/NotificationsPanel/_notifications-panel.scss +3 -6
  317. package/scss/components/RemoveModal/_remove-modal.scss +0 -4
  318. package/scss/components/SidePanel/_side-panel.scss +3 -82
  319. package/scss/components/SidePanel/_storybook-styles.scss +6 -1
  320. package/scss/components/SingleAddSelect/_carbon-imports.scss +1 -1
  321. package/scss/components/SingleAddSelect/_index-with-carbon.scss +1 -1
  322. package/scss/components/SingleAddSelect/_index.scss +7 -0
  323. package/scss/components/SingleAddSelect/_single-add-select.scss +7 -0
  324. package/scss/components/SingleAddSelect/_storybook-styles.scss +1 -1
  325. package/scss/components/Tearsheet/_tearsheet.scss +2 -2
  326. package/scss/components/WebTerminal/_carbon-imports.scss +6 -0
  327. package/scss/components/WebTerminal/_index.scss +7 -0
  328. package/scss/components/WebTerminal/_storybook-styles.scss +7 -0
  329. package/scss/components/_index-released-only-with-carbon.scss +1 -1
  330. package/scss/components/_index-released-only.scss +2 -1
  331. package/scss/components/_index-with-carbon.scss +3 -1
  332. package/scss/components/_index.scss +3 -1
@@ -0,0 +1,40 @@
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 activeCellCoordinates = _ref.activeCellCoordinates,
11
+ selectionAreas = _ref.selectionAreas,
12
+ currentMatcher = _ref.currentMatcher,
13
+ rows = _ref.rows,
14
+ setActiveCellContent = _ref.setActiveCellContent,
15
+ updateData = _ref.updateData;
16
+
17
+ // This means that the delete key has been pressed when the active cell is in a header,
18
+ // not within the spreadsheet body. To delete an entire row/column, it must first be
19
+ // selected, and then can be deleted.
20
+ if ((activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) === 'header' || (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === 'header') {
21
+ return;
22
+ }
23
+
24
+ var selectionAreaClone = deepCloneObject(selectionAreas);
25
+ var indexOfCurrentSelectionArea = selectionAreaClone.findIndex(function (item) {
26
+ return item.matcher === currentMatcher;
27
+ });
28
+ var selectionAreaToEmptyContents = selectionAreaClone[indexOfCurrentSelectionArea];
29
+ var lowestColumnIndex = Math.min(selectionAreaToEmptyContents.point1.column, selectionAreaToEmptyContents.point2.column);
30
+ var greatestColumnIndex = Math.max(selectionAreaToEmptyContents.point1.column, selectionAreaToEmptyContents.point2.column);
31
+ var lowestRowIndex = Math.min(selectionAreaToEmptyContents.point1.row, selectionAreaToEmptyContents.point2.row);
32
+ var greatestRowIndex = Math.max(selectionAreaToEmptyContents.point1.row, selectionAreaToEmptyContents.point2.row);
33
+ rangeWithCallback(lowestColumnIndex, greatestColumnIndex, function (columnIndex) {
34
+ rangeWithCallback(lowestRowIndex, greatestRowIndex, function (rowIndex) {
35
+ var cellProps = rows[rowIndex].cells[columnIndex];
36
+ updateData(rowIndex, cellProps === null || cellProps === void 0 ? void 0 : cellProps.column.id, '');
37
+ });
38
+ });
39
+ setActiveCellContent(null);
40
+ };
@@ -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,15 @@ 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';
22
19
  var blockClass = "".concat(pkg.prefix, "--datagrid");
23
20
  var componentName = 'Datagrid';
24
- var TableContainer = DataTable.TableContainer,
25
- Table = DataTable.Table;
26
21
  export var Datagrid = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
27
- var _getTableProps;
28
-
29
22
  var datagridState = _ref.datagridState,
30
23
  rest = _objectWithoutProperties(_ref, _excluded);
31
24
 
@@ -34,45 +27,24 @@ export var Datagrid = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
34
27
  return null;
35
28
  }
36
29
 
37
- var _datagridState$getTab = datagridState.getTableProps,
38
- getTableProps = _datagridState$getTab === void 0 ? function () {} : _datagridState$getTab,
39
- withVirtualScroll = datagridState.withVirtualScroll,
30
+ var withVirtualScroll = datagridState.withVirtualScroll,
40
31
  DatagridPagination = datagridState.DatagridPagination,
41
32
  isFetching = datagridState.isFetching,
42
33
  tableId = datagridState.tableId,
43
- CustomizeColumnsModal = datagridState.CustomizeColumnsModal,
44
34
  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,
49
- className = datagridState.className,
50
- gridTitle = datagridState.gridTitle,
51
- gridDescription = datagridState.gridDescription,
52
- useDenseHeader = datagridState.useDenseHeader;
35
+ className = datagridState.className;
53
36
  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, {
37
+ return /*#__PURE__*/React.createElement(InlineEditProvider, null, /*#__PURE__*/React.createElement("div", _extends({}, rest, {
70
38
  id: tableId,
71
39
  ref: ref,
72
40
  className: cx(className, blockClass, withVirtualScroll ? "".concat(blockClass, "__datagridWrap") : "".concat(blockClass, "__datagridWrap-simple"), !isFetching && rows.length === 0 ? "".concat(blockClass, "__empty-state") : '')
73
41
  }, getDevtoolsProps(componentName)), leftPanel && /*#__PURE__*/React.createElement("div", {
74
42
  className: "".concat(blockClass, "__datagridWithPanel ").concat(blockClass, "__displayFlex ").concat(blockClass, "__leftPanel-position")
75
- }, dataGrid), leftPanel === undefined && dataGrid);
43
+ }, /*#__PURE__*/React.createElement(DatagridContent, {
44
+ datagridState: datagridState
45
+ })), leftPanel === undefined && /*#__PURE__*/React.createElement(DatagridContent, {
46
+ datagridState: datagridState
47
+ })));
76
48
  }); // Return a placeholder if not released and not enabled by feature flag
77
49
 
78
50
  Datagrid = pkg.checkComponentEnabled(Datagrid, componentName); // The display name of the component, used by React. Note that displayName
@@ -0,0 +1,154 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import React, { useContext, useEffect, useRef } from 'react';
4
+ import cx from 'classnames';
5
+ import PropTypes from 'prop-types';
6
+ import { DataTable } from '@carbon/react';
7
+ import { px } from '@carbon/layout';
8
+ import DatagridHead from './DatagridHead';
9
+ import DatagridBody from './DatagridBody';
10
+ import DatagridToolbar from './DatagridToolbar';
11
+ import { handleGridKeyPress } from './addons/InlineEdit/handleGridKeyPress';
12
+ import { carbon, pkg } from '../../../settings';
13
+ import { InlineEditContext } from './addons/InlineEdit/InlineEditContext';
14
+ import { handleGridFocus } from './addons/InlineEdit/handleGridFocus';
15
+ import { useClickOutside } from '../../../global/js/hooks';
16
+ import { useMultipleKeyTracking } from '../../DataSpreadsheet/hooks';
17
+ var TableContainer = DataTable.TableContainer,
18
+ Table = DataTable.Table;
19
+ var blockClass = "".concat(pkg.prefix, "--datagrid");
20
+ export var DatagridContent = function DatagridContent(_ref) {
21
+ var _cx4;
22
+
23
+ var datagridState = _ref.datagridState;
24
+
25
+ var _useContext = useContext(InlineEditContext),
26
+ state = _useContext.state,
27
+ dispatch = _useContext.dispatch;
28
+
29
+ var activeCellId = state.activeCellId;
30
+ var _datagridState$getTab = datagridState.getTableProps,
31
+ getTableProps = _datagridState$getTab === void 0 ? function () {} : _datagridState$getTab,
32
+ withVirtualScroll = datagridState.withVirtualScroll,
33
+ DatagridPagination = datagridState.DatagridPagination,
34
+ isFetching = datagridState.isFetching,
35
+ CustomizeColumnsModal = datagridState.CustomizeColumnsModal,
36
+ leftPanel = datagridState.leftPanel,
37
+ fullHeightDatagrid = datagridState.fullHeightDatagrid,
38
+ _datagridState$vertic = datagridState.verticalAlign,
39
+ verticalAlign = _datagridState$vertic === void 0 ? 'center' : _datagridState$vertic,
40
+ variableRowHeight = datagridState.variableRowHeight,
41
+ gridTitle = datagridState.gridTitle,
42
+ gridDescription = datagridState.gridDescription,
43
+ useDenseHeader = datagridState.useDenseHeader,
44
+ withInlineEdit = datagridState.withInlineEdit,
45
+ tableId = datagridState.tableId,
46
+ DatagridActions = datagridState.DatagridActions,
47
+ totalColumnsWidth = datagridState.totalColumnsWidth;
48
+ var rows = DatagridPagination && datagridState.page || datagridState.rows;
49
+ var gridActive = state.gridActive,
50
+ editId = state.editId;
51
+ var gridAreaRef = useRef();
52
+ var multiKeyTrackingRef = useRef();
53
+ useClickOutside(gridAreaRef, function (target) {
54
+ if (!withInlineEdit) {
55
+ return;
56
+ } // We return from here if we find a parent element with the selector below
57
+ // because that element was initially part of the grid area but was removed
58
+ // and swapped out with an input, i.e. text, number, selection, or date picker
59
+
60
+
61
+ if (target.closest(".".concat(blockClass, "__inline-edit-button")) || target.closest(".".concat(blockClass, "__inline-edit--select"))) {
62
+ return;
63
+ }
64
+
65
+ dispatch({
66
+ type: 'REMOVE_GRID_ACTIVE_FOCUS',
67
+ payload: activeCellId
68
+ });
69
+ });
70
+
71
+ var renderTable = function renderTable() {
72
+ var _getTableProps;
73
+
74
+ return /*#__PURE__*/React.createElement(Table, _extends({}, getTableProps(), {
75
+ 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),
76
+ role: withInlineEdit && 'grid',
77
+ tabIndex: withInlineEdit && 0,
78
+ onKeyDown: withInlineEdit ? function (event) {
79
+ return handleGridKeyPress({
80
+ event: event,
81
+ dispatch: dispatch,
82
+ state: state,
83
+ instance: datagridState,
84
+ keysPressedList: keysPressedList,
85
+ usingMac: usingMac
86
+ });
87
+ } : null,
88
+ onFocus: withInlineEdit ? function () {
89
+ return handleGridFocus(state, dispatch);
90
+ } : null
91
+ }), /*#__PURE__*/React.createElement(DatagridHead, datagridState), /*#__PURE__*/React.createElement(DatagridBody, _extends({}, datagridState, {
92
+ rows: rows
93
+ })));
94
+ };
95
+
96
+ var _useMultipleKeyTracki = useMultipleKeyTracking({
97
+ ref: withInlineEdit ? multiKeyTrackingRef : null,
98
+ containerHasFocus: gridActive,
99
+ isEditing: !!editId
100
+ }),
101
+ keysPressedList = _useMultipleKeyTracki.keysPressedList,
102
+ usingMac = _useMultipleKeyTracki.usingMac; // Provides a width for the region outline for useInlineEdit
103
+
104
+
105
+ useEffect(function () {
106
+ if (!withInlineEdit) {
107
+ return;
108
+ }
109
+
110
+ var gridElement = document.querySelector("#".concat(tableId));
111
+ var tableHeader = gridElement === null || gridElement === void 0 ? void 0 : gridElement.querySelector(".".concat(carbon.prefix, "--data-table-header"));
112
+ gridElement.style.setProperty("--".concat(blockClass, "--grid-width"), px(totalColumnsWidth + 32));
113
+
114
+ if (gridActive) {
115
+ gridElement.style.setProperty("--".concat(blockClass, "--grid-header-height"), px((tableHeader === null || tableHeader === void 0 ? void 0 : tableHeader.clientHeight) || 0));
116
+ }
117
+ }, [withInlineEdit, tableId, totalColumnsWidth, datagridState, gridActive]);
118
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TableContainer, {
119
+ 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)),
120
+ title: gridTitle,
121
+ description: gridDescription
122
+ }, /*#__PURE__*/React.createElement(DatagridToolbar, datagridState), /*#__PURE__*/React.createElement("div", {
123
+ className: "".concat(blockClass, "__table-container"),
124
+ ref: gridAreaRef
125
+ }, leftPanel && leftPanel.isOpen && /*#__PURE__*/React.createElement("div", {
126
+ className: "".concat(blockClass, "__datagridLeftPanel")
127
+ }, leftPanel.panelContent), withInlineEdit ? /*#__PURE__*/React.createElement("div", {
128
+ ref: multiKeyTrackingRef
129
+ }, renderTable()) : renderTable())), (rows === null || rows === void 0 ? void 0 : rows.length) > 0 && !isFetching && DatagridPagination && /*#__PURE__*/React.createElement(DatagridPagination, datagridState), CustomizeColumnsModal && /*#__PURE__*/React.createElement(CustomizeColumnsModal, {
130
+ instance: datagridState
131
+ }));
132
+ };
133
+ DatagridContent.propTypes = {
134
+ datagridState: PropTypes.shape({
135
+ getTableProps: PropTypes.func,
136
+ withVirtualScroll: PropTypes.bool,
137
+ DatagridActions: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
138
+ DatagridPagination: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
139
+ CustomizeColumnsModal: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
140
+ isFetching: PropTypes.bool,
141
+ leftPanel: PropTypes.object,
142
+ fullHeightDatagrid: PropTypes.bool,
143
+ variableRowHeight: PropTypes.bool,
144
+ useDenseHeader: PropTypes.bool,
145
+ withInlineEdit: PropTypes.bool,
146
+ verticalAlign: PropTypes.string,
147
+ gridTitle: PropTypes.node,
148
+ gridDescription: PropTypes.node,
149
+ page: PropTypes.arrayOf(PropTypes.object),
150
+ rows: PropTypes.arrayOf(PropTypes.object),
151
+ tableId: PropTypes.string,
152
+ totalColumnsWidth: PropTypes.number
153
+ })
154
+ };
@@ -13,13 +13,21 @@ var DatagridExpandedRow = function DatagridExpandedRow(PreviousRowRenderer, Expa
13
13
  return function (datagridState) {
14
14
  var row = datagridState.row;
15
15
 
16
+ var _ref = row || {},
17
+ expandedContentHeight = _ref.expandedContentHeight;
18
+
16
19
  if (!row.isExpanded) {
17
20
  return PreviousRowRenderer(datagridState);
18
21
  }
19
22
 
20
23
  return /*#__PURE__*/React.createElement("div", {
21
24
  className: "".concat(blockClass, "__expanded-row")
22
- }, PreviousRowRenderer(datagridState), ExpandedRowContentComponent(datagridState));
25
+ }, PreviousRowRenderer(datagridState), /*#__PURE__*/React.createElement("div", {
26
+ className: "".concat(blockClass, "__expanded-row-content"),
27
+ style: {
28
+ height: expandedContentHeight ? expandedContentHeight : null
29
+ }
30
+ }, ExpandedRowContentComponent(datagridState)));
23
31
  };
24
32
  };
25
33
 
@@ -11,32 +11,79 @@ var _excluded = ["children"];
11
11
  * restricted by GSA ADP Schedule Contract with IBM Corp.
12
12
  */
13
13
  // @flow
14
- import React from 'react';
14
+ import React, { useContext } from 'react';
15
15
  import { DataTable, SkeletonText } from '@carbon/react';
16
+ import { px } from '@carbon/layout';
16
17
  import { selectionColumnId } from '../common-column-ids';
17
18
  import cx from 'classnames';
18
19
  import { pkg, carbon } from '../../../settings';
20
+ import { InlineEditContext } from './addons/InlineEdit/InlineEditContext/InlineEditContext';
21
+ import { getCellIdAsObject } from './addons/InlineEdit/InlineEditContext/getCellIdAsObject';
19
22
  var blockClass = "".concat(pkg.prefix, "--datagrid");
20
23
  var TableRow = DataTable.TableRow,
21
- TableCell = DataTable.TableCell; // eslint-disable-next-line react/prop-types
24
+ TableCell = DataTable.TableCell;
25
+ var rowHeights = {
26
+ xs: 24,
27
+ sm: 32,
28
+ md: 40,
29
+ lg: 48,
30
+ xl: 64
31
+ }; // eslint-disable-next-line react/prop-types
22
32
 
23
33
  var DatagridRow = function DatagridRow(datagridState) {
24
34
  var _cx;
25
35
 
26
- var row = datagridState.row;
36
+ var row = datagridState.row,
37
+ rowSize = datagridState.rowSize,
38
+ withNestedRows = datagridState.withNestedRows;
39
+
40
+ var _useContext = useContext(InlineEditContext),
41
+ state = _useContext.state;
42
+
43
+ var activeCellId = state.activeCellId;
44
+ var activeCellObject = activeCellId && getCellIdAsObject(activeCellId);
45
+
46
+ var getVisibleNestedRowCount = function getVisibleNestedRowCount(_ref) {
47
+ var isExpanded = _ref.isExpanded,
48
+ subRows = _ref.subRows;
49
+ var size = 0;
50
+
51
+ if (isExpanded && subRows) {
52
+ size += subRows.length;
53
+ subRows.forEach(function (child) {
54
+ size += getVisibleNestedRowCount(child);
55
+ });
56
+ }
57
+
58
+ return size;
59
+ };
60
+
27
61
  return /*#__PURE__*/React.createElement(TableRow, _extends({
28
- className: cx("".concat(blockClass, "__carbon-row"), (_cx = {}, _defineProperty(_cx, "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded), _defineProperty(_cx, "".concat(carbon.prefix, "--data-table--selected"), row.isSelected), _cx))
62
+ className: cx("".concat(blockClass, "__carbon-row"), (_cx = {}, _defineProperty(_cx, "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded), _defineProperty(_cx, "".concat(blockClass, "__carbon-row-expandable"), row.canExpand), _defineProperty(_cx, "".concat(carbon.prefix, "--data-table--selected"), row.isSelected), _defineProperty(_cx, "".concat(blockClass, "__carbon-row-hover-active"), activeCellObject && row.index === activeCellObject.row), _cx))
29
63
  }, row.getRowProps(), {
30
64
  key: row.id,
31
65
  onMouseEnter: function onMouseEnter(event) {
66
+ var _hoverRow$style, _hoverRow$style2, _hoverRow$style3;
67
+
68
+ if (!withNestedRows) {
69
+ return;
70
+ }
71
+
72
+ var subRowCount = getVisibleNestedRowCount(row);
73
+ var totalNestedRowIndicatorHeight = px(subRowCount * rowHeights[rowSize]);
32
74
  var hoverRow = event.target.closest(".".concat(blockClass, "__carbon-row-expanded"));
33
75
  hoverRow === null || hoverRow === void 0 ? void 0 : hoverRow.classList.add("".concat(blockClass, "__carbon-row-expanded-hover-active"));
76
+ var rowExpanderButton = hoverRow === null || hoverRow === void 0 ? void 0 : hoverRow.querySelector(".".concat(blockClass, "__row-expander"));
77
+ var rowSizeValue = rowSize || 'lg';
78
+ hoverRow === null || hoverRow === void 0 ? void 0 : (_hoverRow$style = hoverRow.style) === null || _hoverRow$style === void 0 ? void 0 : _hoverRow$style.setProperty("--".concat(blockClass, "--indicator-height"), totalNestedRowIndicatorHeight);
79
+ hoverRow === null || hoverRow === void 0 ? void 0 : (_hoverRow$style2 = hoverRow.style) === null || _hoverRow$style2 === void 0 ? void 0 : _hoverRow$style2.setProperty("--".concat(blockClass, "--row-height"), px(rowHeights[rowSizeValue]));
80
+ hoverRow === null || hoverRow === void 0 ? void 0 : (_hoverRow$style3 = hoverRow.style) === null || _hoverRow$style3 === void 0 ? void 0 : _hoverRow$style3.setProperty("--".concat(blockClass, "--indicator-offset-amount"), px((rowExpanderButton === null || rowExpanderButton === void 0 ? void 0 : rowExpanderButton.offsetLeft) || 0));
34
81
  },
35
82
  onMouseLeave: function onMouseLeave(event) {
36
83
  var hoverRow = event.target.closest(".".concat(blockClass, "__carbon-row-expanded"));
37
84
  hoverRow === null || hoverRow === void 0 ? void 0 : hoverRow.classList.remove("".concat(blockClass, "__carbon-row-expanded-hover-active"));
38
85
  }
39
- }), row.cells.map(function (cell) {
86
+ }), row.cells.map(function (cell, index) {
40
87
  var cellProps = cell.getCellProps();
41
88
 
42
89
  var children = cellProps.children,
@@ -52,7 +99,7 @@ var DatagridRow = function DatagridRow(datagridState) {
52
99
  }
53
100
 
54
101
  return /*#__PURE__*/React.createElement(TableCell, _extends({
55
- className: "".concat(blockClass, "__cell")
102
+ className: cx("".concat(blockClass, "__cell"), _defineProperty({}, "".concat(blockClass, "__expandable-row-cell"), row.canExpand && index === 0))
56
103
  }, restProps, {
57
104
  key: cell.column.id
58
105
  }), content);
@@ -1,5 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
4
  var _excluded = ["onChange"];
4
5
 
5
6
  /*
@@ -12,21 +13,27 @@ var _excluded = ["onChange"];
12
13
  // @flow
13
14
  import React from 'react';
14
15
  import { DataTable } from '@carbon/react';
16
+ import cx from 'classnames';
15
17
  import { pkg } from '../../../settings';
16
18
  var blockClass = "".concat(pkg.prefix, "--datagrid");
17
19
 
18
20
  var SelectAll = function SelectAll(datagridState) {
21
+ var _columns$;
22
+
19
23
  var isFetching = datagridState.isFetching,
20
24
  getToggleAllRowsSelectedProps = datagridState.getToggleAllRowsSelectedProps,
21
25
  getToggleAllPageRowsSelectedProps = datagridState.getToggleAllPageRowsSelectedProps,
22
26
  tableId = datagridState.tableId,
23
27
  hideSelectAll = datagridState.hideSelectAll,
24
28
  DatagridPagination = datagridState.DatagridPagination,
25
- radio = datagridState.radio;
29
+ radio = datagridState.radio,
30
+ columns = datagridState.columns,
31
+ withStickyColumn = datagridState.withStickyColumn;
32
+ var isFirstColumnStickyLeft = ((_columns$ = columns[0]) === null || _columns$ === void 0 ? void 0 : _columns$.sticky) === 'left' && withStickyColumn;
26
33
 
27
34
  if (hideSelectAll || radio) {
28
35
  return /*#__PURE__*/React.createElement("div", {
29
- className: "".concat(blockClass, "__head-hidden-select-all")
36
+ className: cx("".concat(blockClass, "__head-hidden-select-all"), _defineProperty({}, "".concat(blockClass, "__select-all-sticky-left"), isFirstColumnStickyLeft))
30
37
  });
31
38
  }
32
39
 
@@ -37,7 +44,7 @@ var SelectAll = function SelectAll(datagridState) {
37
44
  selectProps = _objectWithoutProperties(_getProps, _excluded);
38
45
 
39
46
  return /*#__PURE__*/React.createElement("div", {
40
- className: "".concat(blockClass, "__head-select-all ").concat(blockClass, "__checkbox-cell")
47
+ className: cx("".concat(blockClass, "__head-select-all"), "".concat(blockClass, "__checkbox-cell"), _defineProperty({}, "".concat(blockClass, "__checkbox-cell-sticky-left"), isFirstColumnStickyLeft))
41
48
  }, /*#__PURE__*/React.createElement(TableSelectAll, _extends({}, selectProps, {
42
49
  name: "".concat(tableId, "-select-all-checkbox-name"),
43
50
  onSelect: onChange,
@@ -1,4 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
4
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
5
  var _excluded = ["onChange"];
@@ -13,8 +14,9 @@ var _excluded = ["onChange"];
13
14
  // @flow
14
15
  import React, { useEffect, useState } from 'react';
15
16
  import PropTypes from 'prop-types';
17
+ import cx from 'classnames';
16
18
  import { Checkbox, OverflowMenu, OverflowMenuItem } from '@carbon/react';
17
- import { CaretDown } from '@carbon/icons-react';
19
+ import { CaretDown } from '@carbon/react/icons';
18
20
  import { pkg } from '../../../settings'; // cspell:words columnheader
19
21
 
20
22
  var blockClass = "".concat(pkg.prefix, "--datagrid");
@@ -22,6 +24,8 @@ var SELECT_ALL_PAGE_ROWS = 'pageRows';
22
24
  var SELECT_ALL_ROWS = 'allRows';
23
25
 
24
26
  var SelectAllWithToggle = function SelectAllWithToggle(_ref) {
27
+ var _columns$;
28
+
25
29
  var tableId = _ref.tableId,
26
30
  isFetching = _ref.isFetching,
27
31
  isAllRowsSelected = _ref.isAllRowsSelected,
@@ -31,7 +35,9 @@ var SelectAllWithToggle = function SelectAllWithToggle(_ref) {
31
35
  _ref$allPageRowsLabel = _ref.allPageRowsLabel,
32
36
  allPageRowsLabel = _ref$allPageRowsLabel === void 0 ? 'Select all on page' : _ref$allPageRowsLabel,
33
37
  _ref$allRowsLabel = _ref.allRowsLabel,
34
- allRowsLabel = _ref$allRowsLabel === void 0 ? 'Select all' : _ref$allRowsLabel;
38
+ allRowsLabel = _ref$allRowsLabel === void 0 ? 'Select all' : _ref$allRowsLabel,
39
+ columns = _ref.columns,
40
+ withStickyColumn = _ref.withStickyColumn;
35
41
 
36
42
  var _useState = useState(SELECT_ALL_PAGE_ROWS),
37
43
  _useState2 = _slicedToArray(_useState, 2),
@@ -60,10 +66,11 @@ var SelectAllWithToggle = function SelectAllWithToggle(_ref) {
60
66
  selectProps = _objectWithoutProperties(_getProps, _excluded);
61
67
 
62
68
  var disabled = isFetching || selectProps.disabled;
69
+ var isFirstColumnStickyLeft = ((_columns$ = columns[0]) === null || _columns$ === void 0 ? void 0 : _columns$.sticky) === 'left' && withStickyColumn;
63
70
  return /*#__PURE__*/React.createElement("th", {
64
71
  role: "columnheader",
65
72
  scope: "col",
66
- className: "".concat(blockClass, "__select-all-toggle-on")
73
+ className: cx("".concat(blockClass, "__select-all-toggle-on"), _defineProperty({}, "".concat(blockClass, "__select-all-sticky-left"), isFirstColumnStickyLeft))
67
74
  }, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(Checkbox, _extends({}, selectProps, {
68
75
  name: "".concat(tableId, "-select-all-checkbox-name"),
69
76
  onClick: function onClick(e) {
@@ -118,11 +125,13 @@ var SelectAllWithToggle = function SelectAllWithToggle(_ref) {
118
125
  SelectAllWithToggle.propTypes = {
119
126
  allPageRowsLabel: PropTypes.string,
120
127
  allRowsLabel: PropTypes.string,
128
+ columns: PropTypes.arrayOf(PropTypes.object),
121
129
  getToggleAllPageRowsSelectedProps: PropTypes.func.isRequired,
122
130
  getToggleAllRowsSelectedProps: PropTypes.func.isRequired,
123
131
  isAllRowsSelected: PropTypes.bool.isRequired,
124
132
  isFetching: PropTypes.bool,
125
133
  selectAllToggle: PropTypes.object,
126
- tableId: PropTypes.string.isRequired
134
+ tableId: PropTypes.string.isRequired,
135
+ withStickyColumn: PropTypes.bool
127
136
  };
128
137
  export default SelectAllWithToggle;