@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
@@ -2,16 +2,16 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.default = void 0;
11
9
 
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
13
 
14
- var React = _interopRequireWildcard(require("react"));
14
+ var _react = _interopRequireDefault(require("react"));
15
15
 
16
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
17
 
@@ -29,18 +29,13 @@ var _DraggableElement = _interopRequireDefault(require("../../DraggableElement")
29
29
 
30
30
  var _common = require("./common");
31
31
 
32
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
-
34
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
32
+ var _classnames = _interopRequireDefault(require("classnames"));
35
33
 
36
- // @flow
37
-
38
- /*
39
- * Licensed Materials - Property of IBM
40
- * 5724-Q36
41
- * (c) Copyright IBM Corp. 2021
42
- * US Government Users Restricted Rights - Use, duplication or disclosure
43
- * restricted by GSA ADP Schedule Contract with IBM Corp.
34
+ /**
35
+ * Copyright IBM Corp. 2022, 2022
36
+ *
37
+ * This source code is licensed under the Apache-2.0 license found in the
38
+ * LICENSE file in the root directory of this source tree.
44
39
  */
45
40
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
46
41
 
@@ -59,36 +54,37 @@ var getNextIndex = function getNextIndex(array, currentIndex, key) {
59
54
  };
60
55
 
61
56
  var Columns = function Columns(_ref) {
62
- var filterString = _ref.filterString,
57
+ var getVisibleColumnsCount = _ref.getVisibleColumnsCount,
58
+ filterString = _ref.filterString,
63
59
  columns = _ref.columns,
64
60
  setColumnsObject = _ref.setColumnsObject,
65
61
  onSelectColumn = _ref.onSelectColumn,
66
- _ref$instructionsLabe = _ref.instructionsLabel,
67
- instructionsLabel = _ref$instructionsLabe === void 0 ? 'Press space bar to toggle drag drop mode, use arrow keys to move selected elements.' : _ref$instructionsLabe,
68
- _ref$disabledInstruct = _ref.disabledInstructionsLabel,
69
- disabledInstructionsLabel = _ref$disabledInstruct === void 0 ? 'Reordering columns are disabled because they are filtered currently.' : _ref$disabledInstruct;
62
+ assistiveTextInstructionsLabel = _ref.assistiveTextInstructionsLabel,
63
+ assistiveTextDisabledInstructionsLabel = _ref.assistiveTextDisabledInstructionsLabel,
64
+ selectAllLabel = _ref.selectAllLabel;
70
65
 
71
- var _React$useState = React.useState(''),
66
+ var _React$useState = _react.default.useState(''),
72
67
  _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
73
68
  ariaRegionText = _React$useState2[0],
74
69
  setAriaRegionText = _React$useState2[1];
75
70
 
76
- var _React$useState3 = React.useState(-1),
71
+ var _React$useState3 = _react.default.useState(-1),
77
72
  _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
78
73
  focusIndex = _React$useState4[0],
79
74
  setFocusIndex = _React$useState4[1];
80
75
 
81
- var moveElement = React.useCallback(function (dragIndex, hoverIndex) {
76
+ var moveElement = _react.default.useCallback(function (dragIndex, hoverIndex) {
82
77
  var dragCard = columns[dragIndex];
83
78
  setColumnsObject((0, _immutabilityHelper.default)(columns, {
84
79
  $splice: [[dragIndex, 1], [hoverIndex, 0, dragCard]]
85
80
  }));
86
81
  }, [columns, setColumnsObject]);
87
- return /*#__PURE__*/React.createElement("div", {
82
+
83
+ return /*#__PURE__*/_react.default.createElement("div", {
88
84
  className: "".concat(blockClass, "__customize-columns-column-list")
89
- }, /*#__PURE__*/React.createElement(_reactDnd.DndProvider, {
85
+ }, /*#__PURE__*/_react.default.createElement(_reactDnd.DndProvider, {
90
86
  backend: _reactDndHtml5Backend.HTML5Backend
91
- }, /*#__PURE__*/React.createElement("ol", {
87
+ }, /*#__PURE__*/_react.default.createElement("ol", {
92
88
  className: "".concat(blockClass, "__customize-columns-column-list--focus"),
93
89
  role: "listbox",
94
90
  "aria-describedby": "".concat(blockClass, "__customize-columns--instructions"),
@@ -101,40 +97,75 @@ var Columns = function Columns(_ref) {
101
97
  e.stopPropagation();
102
98
  }
103
99
  },
104
- tabIndex: 0,
105
- onFocus: function onFocus(e) {
106
- if (e.target === e.currentTarget) {
107
- setFocusIndex(0);
108
- }
109
- }
110
- }, /*#__PURE__*/React.createElement("span", {
100
+ tabIndex: 0
101
+ }, /*#__PURE__*/_react.default.createElement("span", {
111
102
  "aria-live": "assertive",
112
103
  className: "".concat(blockClass, "__shared-ui--assistive-text")
113
- }, ariaRegionText), /*#__PURE__*/React.createElement("span", {
104
+ }, ariaRegionText), /*#__PURE__*/_react.default.createElement("span", {
114
105
  id: "".concat(blockClass, "__customize-columns--instructions"),
115
106
  className: "".concat(blockClass, "__shared-ui--assistive-text")
116
- }, filterString.length === 0 ? instructionsLabel : disabledInstructionsLabel), columns.filter(function (colDef) {
107
+ }, filterString.length === 0 ? assistiveTextInstructionsLabel : assistiveTextDisabledInstructionsLabel), /*#__PURE__*/_react.default.createElement("div", {
108
+ id: "".concat(blockClass, "__customize-columns-select-all"),
109
+ className: (0, _classnames.default)("".concat(blockClass, "__customize-columns-select-all"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__customize-columns-select-all--selected"), getVisibleColumnsCount() > 0)),
110
+ selected: getVisibleColumnsCount() > 0
111
+ }, /*#__PURE__*/_react.default.createElement(_react2.Checkbox, {
112
+ className: "".concat(blockClass, "__customize-columns-checkbox-wrapper"),
113
+ checked: getVisibleColumnsCount() === columns.length,
114
+ indeterminate: getVisibleColumnsCount() < columns.length && getVisibleColumnsCount() > 0,
115
+ onChange: function onChange() {
116
+ onSelectColumn(columns, getVisibleColumnsCount() !== columns.length);
117
+ },
118
+ id: "".concat(blockClass, "__customization-column-select-all"),
119
+ labelText: selectAllLabel
120
+ })), columns.filter(function (colDef) {
117
121
  return filterString.length === 0 || colDef.Header.props.title.toLowerCase().includes(filterString);
118
122
  }).map(function (colDef, i) {
119
- return /*#__PURE__*/React.createElement(_DraggableElement.default, {
123
+ var searchString = new RegExp('(' + filterString + ')');
124
+ var res = filterString.length ? colDef.Header.props.title.toLowerCase().split(searchString) : null;
125
+ var firstWord = res !== null ? res[0] === '' ? res[1].charAt(0).toUpperCase() + res[1].substring(1) : res[0].charAt(0).toUpperCase() + res[0].substring(1) : null;
126
+ var highlightedText = res !== null ? res[0] === '' ? "<strong>".concat(firstWord, "</strong>") + res[2] : firstWord + "<strong>".concat(res[1], "</strong>") + res[2] : colDef.Header.props.title;
127
+ var isFrozenColumn = !!colDef.sticky;
128
+
129
+ var listContents = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_react2.Checkbox, {
130
+ className: (0, _classnames.default)("".concat(blockClass, "__customize-columns-checkbox-wrapper"), "".concat(blockClass, "__customize-columns-checkbox")),
131
+ checked: (0, _common.isColumnVisible)(colDef),
132
+ disabled: isFrozenColumn,
133
+ onChange: function onChange(_, _ref2) {
134
+ var checked = _ref2.checked;
135
+ return onSelectColumn(colDef, checked);
136
+ },
137
+ id: "".concat(blockClass, "__customization-column-").concat(colDef.id),
138
+ labelText: colDef.Header.props.title,
139
+ title: colDef.Header.props.title,
140
+ hideLabel: true
141
+ }), /*#__PURE__*/_react.default.createElement("div", {
142
+ dangerouslySetInnerHTML: {
143
+ __html: highlightedText
144
+ }
145
+ }));
146
+
147
+ return /*#__PURE__*/_react.default.createElement(_DraggableElement.default, {
120
148
  key: colDef.id,
121
149
  index: i,
122
150
  listData: columns,
123
151
  setListData: setColumnsObject,
124
152
  id: "dnd-datagrid-columns-".concat(colDef.id),
125
153
  type: "column-customization",
126
- disabled: filterString.length > 0,
154
+ disabled: filterString.length > 0 || isFrozenColumn,
127
155
  ariaLabel: colDef.Header.props.title,
128
156
  onGrab: setAriaRegionText,
129
157
  isFocused: focusIndex === i,
158
+ isSticky: isFrozenColumn,
130
159
  moveElement: moveElement,
131
160
  onArrowKeyDown: function onArrowKeyDown(e, isGrabbed, currentIndex) {
132
161
  if (isGrabbed) {
162
+ var _columns$nextIndex;
163
+
133
164
  var nextIndex = getNextIndex(columns, currentIndex, e.key);
134
165
  e.preventDefault();
135
166
  e.stopPropagation();
136
167
 
137
- if (nextIndex >= 0) {
168
+ if (nextIndex >= 0 && !((_columns$nextIndex = columns[nextIndex]) !== null && _columns$nextIndex !== void 0 && _columns$nextIndex.sticky)) {
138
169
  setFocusIndex(nextIndex);
139
170
  moveElement(currentIndex, nextIndex);
140
171
  e.target.scrollIntoView({
@@ -142,24 +173,23 @@ var Columns = function Columns(_ref) {
142
173
  });
143
174
  }
144
175
  }
145
- }
146
- }, /*#__PURE__*/React.createElement(_react2.Checkbox, {
147
- wrapperClassName: "".concat(blockClass, "__customize-columns-checkbox"),
148
- checked: (0, _common.isColumnVisible)(colDef),
149
- onChange: onSelectColumn.bind(null, colDef),
150
- id: "".concat(blockClass, "__customization-column-").concat(colDef.id),
151
- labelText: colDef.Header.props.title,
152
- title: colDef.Header.props.title
153
- }));
176
+ },
177
+ selected: (0, _common.isColumnVisible)(colDef)
178
+ }, listContents);
154
179
  }))));
155
180
  };
156
181
 
157
182
  Columns.propTypes = {
183
+ assistiveTextDisabledInstructionsLabel: _propTypes.default.string,
184
+ assistiveTextInstructionsLabel: _propTypes.default.string,
158
185
  columns: _propTypes.default.array.isRequired,
159
186
  disabledInstructionsLabel: _propTypes.default.string,
160
187
  filterString: _propTypes.default.string.isRequired,
188
+ getVisibleColumnsCount: _propTypes.default.func.isRequired,
161
189
  instructionsLabel: _propTypes.default.string,
162
190
  onSelectColumn: _propTypes.default.func.isRequired,
191
+ selectAllLabel: _propTypes.default.string,
192
+ setColumnStatus: _propTypes.default.func,
163
193
  setColumnsObject: _propTypes.default.func.isRequired
164
194
  };
165
195
  var _default = Columns;
@@ -17,10 +17,10 @@ var _react = _interopRequireWildcard(require("react"));
17
17
 
18
18
  var _propTypes = _interopRequireDefault(require("prop-types"));
19
19
 
20
- var _react2 = require("@carbon/react");
21
-
22
20
  var _common = require("./common");
23
21
 
22
+ var _Tearsheet = require("../../../../Tearsheet");
23
+
24
24
  var _Columns = _interopRequireDefault(require("./Columns"));
25
25
 
26
26
  var _Actions = _interopRequireDefault(require("./Actions"));
@@ -37,29 +37,49 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
37
37
 
38
38
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
39
39
 
40
- var CustomizeColumnsModal = function CustomizeColumnsModal(_ref) {
40
+ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
41
41
  var isOpen = _ref.isOpen,
42
- setIsModalOpen = _ref.setIsModalOpen,
42
+ setIsTearsheetOpen = _ref.setIsTearsheetOpen,
43
43
  onSaveColumnPrefs = _ref.onSaveColumnPrefs,
44
44
  columnDefinitions = _ref.columnDefinitions,
45
45
  originalColumnDefinitions = _ref.originalColumnDefinitions,
46
- _ref$customizeModalHe = _ref.customizeModalHeadingLabel,
47
- customizeModalHeadingLabel = _ref$customizeModalHe === void 0 ? 'Customize display' : _ref$customizeModalHe,
46
+ _ref$customizeTearshe = _ref.customizeTearsheetHeadingLabel,
47
+ customizeTearsheetHeadingLabel = _ref$customizeTearshe === void 0 ? 'Customize columns' : _ref$customizeTearshe,
48
48
  _ref$primaryButtonTex = _ref.primaryButtonTextLabel,
49
49
  primaryButtonTextLabel = _ref$primaryButtonTex === void 0 ? 'Save' : _ref$primaryButtonTex,
50
50
  _ref$secondaryButtonT = _ref.secondaryButtonTextLabel,
51
51
  secondaryButtonTextLabel = _ref$secondaryButtonT === void 0 ? 'Cancel' : _ref$secondaryButtonT,
52
52
  _ref$instructionsLabe = _ref.instructionsLabel,
53
- instructionsLabel = _ref$instructionsLabe === void 0 ? 'Deselect columns to hide them. Click and drag the white box to reorder the columns. These specifications will be saved and persist if you leave and return to the data table.' : _ref$instructionsLabe;
53
+ instructionsLabel = _ref$instructionsLabe === void 0 ? 'Select columns to display them. Click and drag the box to reorder the columns. These specifications will be saved and persist if you leave and return to the data table.' : _ref$instructionsLabe,
54
+ _ref$findColumnPlaceh = _ref.findColumnPlaceholderLabel,
55
+ findColumnPlaceholderLabel = _ref$findColumnPlaceh === void 0 ? 'Find column' : _ref$findColumnPlaceh,
56
+ _ref$resetToDefaultLa = _ref.resetToDefaultLabel,
57
+ resetToDefaultLabel = _ref$resetToDefaultLa === void 0 ? 'Reset to default' : _ref$resetToDefaultLa,
58
+ _ref$assistiveTextIns = _ref.assistiveTextInstructionsLabel,
59
+ assistiveTextInstructionsLabel = _ref$assistiveTextIns === void 0 ? 'Press space bar to toggle drag drop mode, use arrow keys to move selected elements.' : _ref$assistiveTextIns,
60
+ _ref$assistiveTextDis = _ref.assistiveTextDisabledInstructionsLabel,
61
+ assistiveTextDisabledInstructionsLabel = _ref$assistiveTextDis === void 0 ? 'Reordering columns are disabled because they are filtered currently.' : _ref$assistiveTextDis,
62
+ _ref$selectAllLabel = _ref.selectAllLabel,
63
+ selectAllLabel = _ref$selectAllLabel === void 0 ? 'Column name' : _ref$selectAllLabel;
54
64
 
55
65
  var _useState = (0, _react.useState)(''),
56
66
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
57
- searchText = _useState2[0],
58
- setSearchText = _useState2[1];
67
+ visibleColumnsCount = _useState2[0],
68
+ setVisibleColumnsCount = _useState2[1];
69
+
70
+ var _useState3 = (0, _react.useState)(''),
71
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
72
+ totalColumns = _useState4[0],
73
+ setTotalColumns = _useState4[1];
59
74
 
60
- var _useState3 = (0, _react.useState)(columnDefinitions // hide the columns without Header, e.g the sticky actions, spacer
75
+ var _useState5 = (0, _react.useState)(''),
76
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
77
+ searchText = _useState6[0],
78
+ setSearchText = _useState6[1];
79
+
80
+ var _useState7 = (0, _react.useState)(columnDefinitions // hide the columns without Header, e.g the sticky actions, spacer
61
81
  .filter(function (colDef) {
62
- return !!colDef.Header.props;
82
+ return !!colDef.Header.props && !colDef.isAction;
63
83
  }) // only sort the hidden column to the end when modal reopen
64
84
  .sort(function (defA, defB) {
65
85
  var isVisibleA = (0, _common.isColumnVisible)(defA);
@@ -75,21 +95,21 @@ var CustomizeColumnsModal = function CustomizeColumnsModal(_ref) {
75
95
 
76
96
  return 0;
77
97
  })),
78
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
79
- columnObjects = _useState4[0],
80
- _setColumnsObject = _useState4[1];
98
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
99
+ columnObjects = _useState8[0],
100
+ setColumnObjects = _useState8[1];
81
101
 
82
- var _useState5 = (0, _react.useState)(false),
83
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
84
- isDirty = _useState6[0],
85
- setIsDirty = _useState6[1];
102
+ var _useState9 = (0, _react.useState)(false),
103
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
104
+ isDirty = _useState10[0],
105
+ setIsDirty = _useState10[1];
86
106
 
87
107
  var onRequestClose = function onRequestClose() {
88
- setIsModalOpen(false);
108
+ setIsTearsheetOpen(false);
89
109
  };
90
110
 
91
111
  var onRequestSubmit = function onRequestSubmit() {
92
- setIsModalOpen(false);
112
+ setIsTearsheetOpen(false);
93
113
  var updatedColumns = columnObjects.map(function (colDef) {
94
114
  return {
95
115
  id: colDef.id,
@@ -101,7 +121,7 @@ var CustomizeColumnsModal = function CustomizeColumnsModal(_ref) {
101
121
 
102
122
  var onCheckboxCheck = function onCheckboxCheck(col, value) {
103
123
  var changedDefinitions = columnObjects.map(function (definition) {
104
- if (definition.id === col.id) {
124
+ if (Array.isArray(col) && col.indexOf(definition) != null || definition.id === col.id) {
105
125
  return _objectSpread(_objectSpread({}, definition), {}, {
106
126
  isVisible: value
107
127
  });
@@ -109,9 +129,7 @@ var CustomizeColumnsModal = function CustomizeColumnsModal(_ref) {
109
129
 
110
130
  return definition;
111
131
  });
112
-
113
- _setColumnsObject(changedDefinitions);
114
-
132
+ setColumnObjects(changedDefinitions);
115
133
  setDirty();
116
134
  };
117
135
 
@@ -121,53 +139,72 @@ var CustomizeColumnsModal = function CustomizeColumnsModal(_ref) {
121
139
  }
122
140
  };
123
141
 
142
+ var getVisibleColumnsCount = (0, _react.useCallback)(function () {
143
+ return columnObjects.filter(function (col) {
144
+ return col.isVisible;
145
+ }).length;
146
+ }, [columnObjects]);
124
147
  var string = searchText.trim().toLowerCase();
125
- return /*#__PURE__*/_react.default.createElement(_react2.Modal, {
126
- className: "".concat(blockClass, "__customize-columns-modal"),
148
+ (0, _react.useEffect)(function () {
149
+ setVisibleColumnsCount(getVisibleColumnsCount());
150
+ setTotalColumns(columnObjects.length);
151
+ }, [getVisibleColumnsCount, columnObjects.length]);
152
+ return /*#__PURE__*/_react.default.createElement(_Tearsheet.TearsheetNarrow, {
153
+ className: "".concat(blockClass, "__customize-columns-tearsheet"),
127
154
  open: isOpen,
128
- modalHeading: customizeModalHeadingLabel,
129
- primaryButtonText: primaryButtonTextLabel,
130
- secondaryButtonText: secondaryButtonTextLabel,
131
- selectorPrimaryFocus: ".".concat(blockClass, "__customize-columns-column-list--focus"),
132
- primaryButtonDisabled: !isDirty,
133
- onRequestClose: onRequestClose,
134
- onRequestSubmit: onRequestSubmit,
135
- size: "sm",
136
- hasForm: true
137
- }, /*#__PURE__*/_react.default.createElement("div", {
138
- className: "".concat(blockClass, "__customize-columns-instructions")
139
- }, instructionsLabel), /*#__PURE__*/_react.default.createElement(_Actions.default, {
155
+ title: "".concat(customizeTearsheetHeadingLabel, " (").concat(visibleColumnsCount, "/").concat(totalColumns, ")"),
156
+ description: instructionsLabel,
157
+ actions: [{
158
+ kind: 'secondary',
159
+ label: secondaryButtonTextLabel,
160
+ onClick: onRequestClose
161
+ }, {
162
+ kind: 'primary',
163
+ label: primaryButtonTextLabel,
164
+ onClick: onRequestSubmit,
165
+ disabled: !isDirty
166
+ }]
167
+ }, /*#__PURE__*/_react.default.createElement(_Actions.default, {
140
168
  columns: columnObjects,
141
169
  originalColumnDefinitions: originalColumnDefinitions,
142
170
  searchText: searchText,
143
171
  setColumnsObject: function setColumnsObject(cols) {
144
- _setColumnsObject(cols);
145
-
172
+ setColumnObjects(cols);
146
173
  setDirty();
147
174
  },
148
- setSearchText: setSearchText
175
+ setSearchText: setSearchText,
176
+ findColumnPlaceholderLabel: findColumnPlaceholderLabel,
177
+ resetToDefaultLabel: resetToDefaultLabel
149
178
  }), isOpen && /*#__PURE__*/_react.default.createElement(_Columns.default, {
179
+ assistiveTextInstructionsLabel: assistiveTextInstructionsLabel,
180
+ assistiveTextDisabledInstructionsLabel: assistiveTextDisabledInstructionsLabel,
181
+ getVisibleColumnsCount: getVisibleColumnsCount,
150
182
  columns: columnObjects,
151
183
  filterString: string,
152
184
  onSelectColumn: onCheckboxCheck,
153
185
  setColumnsObject: function setColumnsObject(cols) {
154
- _setColumnsObject(cols);
155
-
186
+ setColumnObjects(cols);
156
187
  setDirty();
157
- }
188
+ },
189
+ selectAllLabel: selectAllLabel
158
190
  }));
159
191
  };
160
192
 
161
- CustomizeColumnsModal.propTypes = {
193
+ CustomizeColumnsTearsheet.propTypes = {
194
+ assistiveTextDisabledInstructionsLabel: _propTypes.default.string,
195
+ assistiveTextInstructionsLabel: _propTypes.default.string,
162
196
  columnDefinitions: _propTypes.default.array.isRequired,
163
- customizeModalHeadingLabel: _propTypes.default.string,
197
+ customizeTearsheetHeadingLabel: _propTypes.default.string,
198
+ findColumnPlaceholderLabel: _propTypes.default.string,
164
199
  instructionsLabel: _propTypes.default.string,
165
200
  isOpen: _propTypes.default.bool.isRequired,
166
201
  onSaveColumnPrefs: _propTypes.default.func.isRequired,
167
202
  originalColumnDefinitions: _propTypes.default.array.isRequired,
168
203
  primaryButtonTextLabel: _propTypes.default.string,
204
+ resetToDefaultLabel: _propTypes.default.string,
169
205
  secondaryButtonTextLabel: _propTypes.default.string,
170
- setIsModalOpen: _propTypes.default.func.isRequired
206
+ selectAllLabel: _propTypes.default.string,
207
+ setIsTearsheetOpen: _propTypes.default.func.isRequired
171
208
  };
172
- var _default = CustomizeColumnsModal;
209
+ var _default = CustomizeColumnsTearsheet;
173
210
  exports.default = _default;
@@ -17,57 +17,53 @@ var React = _interopRequireWildcard(require("react"));
17
17
 
18
18
  var _propTypes = _interopRequireDefault(require("prop-types"));
19
19
 
20
- var _CustomizeColumnsModal = _interopRequireDefault(require("./CustomizeColumnsModal"));
20
+ var _CustomizeColumnsTearsheet = _interopRequireDefault(require("./CustomizeColumnsTearsheet"));
21
21
 
22
- var _excluded = ["onSaveColumnPrefs", "isModalOpen", "setIsModalOpen"];
22
+ var _excluded = ["onSaveColumnPrefs", "isTearsheetOpen", "setIsTearsheetOpen", "labels"];
23
23
 
24
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
25
 
26
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
27
 
28
- var ModalWrapper = function ModalWrapper(_ref) {
28
+ var TearsheetWrapper = function TearsheetWrapper(_ref) {
29
29
  var instance = _ref.instance;
30
30
  var _instance$customizeCo = instance.customizeColumnsProps,
31
31
  _onSaveColumnPrefs = _instance$customizeCo.onSaveColumnPrefs,
32
- isModalOpen = _instance$customizeCo.isModalOpen,
33
- setIsModalOpen = _instance$customizeCo.setIsModalOpen,
32
+ isTearsheetOpen = _instance$customizeCo.isTearsheetOpen,
33
+ setIsTearsheetOpen = _instance$customizeCo.setIsTearsheetOpen,
34
+ labels = _instance$customizeCo.labels,
34
35
  rest = (0, _objectWithoutProperties2.default)(_instance$customizeCo, _excluded);
35
-
36
- if (isModalOpen) {
37
- return /*#__PURE__*/React.createElement(_CustomizeColumnsModal.default, (0, _extends2.default)({}, rest, {
38
- isOpen: isModalOpen,
39
- setIsModalOpen: setIsModalOpen,
40
- columnDefinitions: instance.allColumns,
41
- originalColumnDefinitions: instance.columns,
42
- onSaveColumnPrefs: function onSaveColumnPrefs(updatedColDefs) {
43
- var hiddenIds = updatedColDefs.filter(function (colDef) {
44
- return !colDef.isVisible;
45
- }).map(function (colDef) {
36
+ return /*#__PURE__*/React.createElement(_CustomizeColumnsTearsheet.default, (0, _extends2.default)({}, rest, labels, {
37
+ isOpen: isTearsheetOpen,
38
+ setIsTearsheetOpen: setIsTearsheetOpen,
39
+ columnDefinitions: instance.allColumns,
40
+ originalColumnDefinitions: instance.columns,
41
+ onSaveColumnPrefs: function onSaveColumnPrefs(updatedColDefs) {
42
+ var hiddenIds = updatedColDefs.filter(function (colDef) {
43
+ return !colDef.isVisible;
44
+ }).map(function (colDef) {
45
+ return colDef.id;
46
+ });
47
+ instance.setHiddenColumns(hiddenIds);
48
+
49
+ if (typeof instance.setColumnOrder === 'function') {
50
+ instance.setColumnOrder(updatedColDefs.map(function (colDef) {
46
51
  return colDef.id;
47
- });
48
- instance.setHiddenColumns(hiddenIds);
49
-
50
- if (typeof instance.setColumnOrder === 'function') {
51
- instance.setColumnOrder(updatedColDefs.map(function (colDef) {
52
- return colDef.id;
53
- }));
54
- } else {
55
- // eslint-disable-next-line no-console
56
- console.warn("Column order can not be updated. Did you forget to add 'useColumnOrder' in 'useDatagrid'");
57
- }
58
-
59
- if (typeof _onSaveColumnPrefs === 'function') {
60
- _onSaveColumnPrefs(updatedColDefs);
61
- }
52
+ }));
53
+ } else {
54
+ // eslint-disable-next-line no-console
55
+ console.warn("Column order can not be updated. Did you forget to add 'useColumnOrder' in 'useDatagrid'");
62
56
  }
63
- }));
64
- }
65
57
 
66
- return null;
58
+ if (typeof _onSaveColumnPrefs === 'function') {
59
+ _onSaveColumnPrefs(updatedColDefs);
60
+ }
61
+ }
62
+ }));
67
63
  };
68
64
 
69
- ModalWrapper.propTypes = {
65
+ TearsheetWrapper.propTypes = {
70
66
  instance: _propTypes.default.object.isRequired
71
67
  };
72
- var _default = ModalWrapper;
68
+ var _default = TearsheetWrapper;
73
69
  exports.default = _default;
@@ -5,10 +5,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- Object.defineProperty(exports, "CustomizeColumnsModalWrapper", {
8
+ Object.defineProperty(exports, "CustomizeColumnsTearsheetWrapper", {
9
9
  enumerable: true,
10
10
  get: function get() {
11
- return _ModalWrapper.default;
11
+ return _TearsheetWrapper.default;
12
12
  }
13
13
  });
14
14
  Object.defineProperty(exports, "ToggleButtonWrapper", {
@@ -18,6 +18,6 @@ Object.defineProperty(exports, "ToggleButtonWrapper", {
18
18
  }
19
19
  });
20
20
 
21
- var _ModalWrapper = _interopRequireDefault(require("./ModalWrapper"));
21
+ var _TearsheetWrapper = _interopRequireDefault(require("./TearsheetWrapper"));
22
22
 
23
23
  var _ButtonWrapper = _interopRequireDefault(require("./ButtonWrapper"));