@carbon/ibm-products 2.0.0-rc.1 → 2.0.0-rc.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (241) hide show
  1. package/css/index-full-carbon.css +952 -143
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +4 -2
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +783 -19
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +4 -2
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +678 -77
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +4 -2
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +757 -92
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +4 -2
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/APIKeyModal/APIKeyModal.js +1 -1
  18. package/es/components/AddSelect/AddSelect.js +0 -3
  19. package/es/components/AddSelect/AddSelectBody.js +20 -3
  20. package/es/components/AddSelect/AddSelectBreadcrumbs.js +11 -3
  21. package/es/components/AddSelect/AddSelectColumn.js +5 -5
  22. package/es/components/AddSelect/AddSelectFilter.js +5 -4
  23. package/es/components/AddSelect/AddSelectList.js +61 -27
  24. package/es/components/AddSelect/AddSelectMetaPanel.js +1 -1
  25. package/es/components/AddSelect/AddSelectSort.js +1 -1
  26. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +4 -6
  27. package/es/components/Card/Card.js +16 -6
  28. package/es/components/Card/CardFooter.js +3 -1
  29. package/es/components/Card/CardHeader.js +20 -1
  30. package/es/components/ComboButton/ComboButton.js +1 -1
  31. package/es/components/DataSpreadsheet/DataSpreadsheet.js +63 -11
  32. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  33. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  34. package/es/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +6 -5
  35. package/es/components/DataSpreadsheet/utils/handleCellDeletion.js +31 -0
  36. package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  37. package/es/components/Datagrid/Datagrid/Datagrid.js +10 -38
  38. package/es/components/Datagrid/Datagrid/DatagridContent.js +149 -0
  39. package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  40. package/es/components/Datagrid/Datagrid/DatagridRow.js +10 -2
  41. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +10 -3
  42. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +13 -4
  43. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +5 -4
  44. package/es/components/Datagrid/Datagrid/DraggableElement.js +6 -2
  45. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +5 -45
  46. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +1 -1
  47. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +35 -10
  48. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +61 -24
  49. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
  50. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +60 -0
  51. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +1 -0
  52. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +534 -0
  53. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +1 -0
  54. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +112 -0
  55. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +27 -0
  56. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +1 -0
  57. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +39 -0
  58. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +19 -0
  59. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +263 -0
  60. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +87 -0
  61. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +17 -14
  62. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +13 -36
  63. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/CustomizeColumnStory.js +0 -0
  64. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/LeftPanelStory.js +0 -0
  65. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/RowSizeDropdownStory.js +0 -0
  66. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/SelectAllWithToggleStory.js +0 -0
  67. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/StickyActionsColumnStory.js +0 -0
  68. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/common.js +0 -0
  69. package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/index.js +0 -0
  70. package/es/components/Datagrid/index.js +3 -1
  71. package/es/components/Datagrid/useActionsColumn.js +28 -12
  72. package/es/components/Datagrid/useColumnOrder.js +8 -0
  73. package/es/components/Datagrid/useCustomizeColumns.js +5 -0
  74. package/es/components/Datagrid/useDefaultStringRenderer.js +4 -1
  75. package/es/components/Datagrid/useDisableSelectRows.js +6 -2
  76. package/es/components/Datagrid/useExpandedRow.js +0 -1
  77. package/es/components/Datagrid/useInlineEdit.js +71 -0
  78. package/es/components/Datagrid/useNestedRowExpander.js +42 -0
  79. package/es/components/Datagrid/useNestedRows.js +2 -2
  80. package/es/components/Datagrid/useRowExpander.js +1 -1
  81. package/es/components/Datagrid/useRowSize.js +17 -6
  82. package/es/components/Datagrid/useSelectAllToggle.js +17 -4
  83. package/es/components/Datagrid/useSelectRows.js +12 -2
  84. package/es/components/Datagrid/useSortableColumns.js +1 -1
  85. package/es/components/Datagrid/useStickyColumn.js +11 -0
  86. package/es/components/Datagrid/utils/DatagridActions.js +152 -0
  87. package/es/components/Datagrid/utils/DatagridPagination.js +33 -0
  88. package/es/components/Datagrid/utils/Wrapper.js +21 -0
  89. package/es/components/Datagrid/utils/getArgTypes.js +85 -0
  90. package/es/components/Datagrid/utils/getInlineEditColumns.js +153 -0
  91. package/es/components/Datagrid/utils/makeData.js +47 -2
  92. package/es/components/ExportModal/ExportModal.js +1 -1
  93. package/es/components/ImportModal/ImportModal.js +3 -3
  94. package/es/components/InlineEdit/InlineEdit.js +11 -9
  95. package/es/components/ModifiedTabs/ModifiedTabLabelNew.js +1 -1
  96. package/es/components/ModifiedTabs/ModifiedTabLabelWithClose.js +1 -1
  97. package/es/components/NotificationsPanel/NotificationsPanel.js +1 -1
  98. package/es/components/OptionsTile/OptionsTile.js +1 -1
  99. package/es/components/PageHeader/PageHeader.js +1 -1
  100. package/es/components/ProductiveCard/ProductiveCard.js +5 -0
  101. package/es/components/Saving/Saving.js +1 -1
  102. package/es/components/SidePanel/SidePanel.js +1 -1
  103. package/es/components/StatusIcon/StatusIcon.js +1 -1
  104. package/es/components/UserProfileImage/UserProfileImage.js +1 -1
  105. package/es/components/WebTerminal/WebTerminal.js +2 -2
  106. package/es/components/WebTerminal/WebTerminalContentWrapper.js +1 -1
  107. package/es/components/WebTerminal/hooks/index.js +6 -0
  108. package/es/components/WebTerminal/index.js +6 -0
  109. package/es/components/WebTerminal/preview-components/Navigation.js +7 -1
  110. package/es/components/WebTerminal/preview-components/documentationLinks.js +6 -0
  111. package/es/components/WebTerminal/preview-components/index.js +7 -0
  112. package/es/components/index.js +1 -1
  113. package/es/global/js/hooks/useClickOutside.js +1 -1
  114. package/es/global/js/package-settings.js +3 -3
  115. package/es/global/js/utils/rangeWithCallback.js +13 -0
  116. package/es/global/js/utils/story-helper.js +5 -1
  117. package/es/global/js/utils/uuidv4.spec.js +4 -0
  118. package/lib/components/APIKeyModal/APIKeyModal.js +4 -4
  119. package/lib/components/AddSelect/AddSelect.js +0 -4
  120. package/lib/components/AddSelect/AddSelectBody.js +20 -3
  121. package/lib/components/AddSelect/AddSelectBreadcrumbs.js +14 -3
  122. package/lib/components/AddSelect/AddSelectColumn.js +5 -5
  123. package/lib/components/AddSelect/AddSelectFilter.js +5 -4
  124. package/lib/components/AddSelect/AddSelectList.js +62 -28
  125. package/lib/components/AddSelect/AddSelectMetaPanel.js +2 -2
  126. package/lib/components/AddSelect/AddSelectSort.js +4 -4
  127. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +6 -6
  128. package/lib/components/Card/Card.js +16 -6
  129. package/lib/components/Card/CardFooter.js +3 -1
  130. package/lib/components/Card/CardHeader.js +21 -1
  131. package/lib/components/ComboButton/ComboButton.js +3 -3
  132. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +63 -10
  133. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  134. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  135. package/lib/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +6 -5
  136. package/lib/components/DataSpreadsheet/utils/handleCellDeletion.js +42 -0
  137. package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  138. package/lib/components/Datagrid/Datagrid/Datagrid.js +12 -45
  139. package/lib/components/Datagrid/Datagrid/DatagridContent.js +183 -0
  140. package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  141. package/lib/components/Datagrid/Datagrid/DatagridRow.js +19 -2
  142. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +12 -3
  143. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +16 -5
  144. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +6 -5
  145. package/lib/components/Datagrid/Datagrid/DraggableElement.js +7 -3
  146. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +12 -47
  147. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +2 -2
  148. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +47 -25
  149. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +59 -23
  150. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
  151. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +76 -0
  152. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +13 -0
  153. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +558 -0
  154. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +13 -0
  155. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +129 -0
  156. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +36 -0
  157. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +19 -0
  158. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +45 -0
  159. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +28 -0
  160. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +272 -0
  161. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +100 -0
  162. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +17 -13
  163. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +13 -35
  164. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/CustomizeColumnStory.js +0 -0
  165. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/LeftPanelStory.js +0 -0
  166. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/RowSizeDropdownStory.js +0 -0
  167. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/SelectAllWithToggleStory.js +0 -0
  168. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/StickyActionsColumnStory.js +0 -0
  169. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/common.js +0 -0
  170. package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/index.js +0 -0
  171. package/lib/components/Datagrid/index.js +17 -1
  172. package/lib/components/Datagrid/useActionsColumn.js +28 -13
  173. package/lib/components/Datagrid/useColumnOrder.js +17 -0
  174. package/lib/components/Datagrid/useCustomizeColumns.js +5 -0
  175. package/lib/components/Datagrid/useDefaultStringRenderer.js +5 -1
  176. package/lib/components/Datagrid/useDisableSelectRows.js +6 -2
  177. package/lib/components/Datagrid/useExpandedRow.js +0 -1
  178. package/lib/components/Datagrid/useInlineEdit.js +85 -0
  179. package/lib/components/Datagrid/useNestedRowExpander.js +57 -0
  180. package/lib/components/Datagrid/useNestedRows.js +3 -3
  181. package/lib/components/Datagrid/useRowExpander.js +3 -3
  182. package/lib/components/Datagrid/useRowSize.js +18 -13
  183. package/lib/components/Datagrid/useSelectAllToggle.js +18 -4
  184. package/lib/components/Datagrid/useSelectRows.js +12 -2
  185. package/lib/components/Datagrid/useSortableColumns.js +5 -5
  186. package/lib/components/Datagrid/useStickyColumn.js +11 -0
  187. package/lib/components/Datagrid/utils/DatagridActions.js +170 -0
  188. package/lib/components/Datagrid/utils/DatagridPagination.js +46 -0
  189. package/lib/components/Datagrid/utils/Wrapper.js +33 -0
  190. package/lib/components/Datagrid/utils/getArgTypes.js +93 -0
  191. package/lib/components/Datagrid/utils/getInlineEditColumns.js +168 -0
  192. package/lib/components/Datagrid/utils/makeData.js +48 -2
  193. package/lib/components/ExportModal/ExportModal.js +3 -3
  194. package/lib/components/ImportModal/ImportModal.js +4 -4
  195. package/lib/components/InlineEdit/InlineEdit.js +16 -14
  196. package/lib/components/ModifiedTabs/ModifiedTabLabelNew.js +2 -2
  197. package/lib/components/ModifiedTabs/ModifiedTabLabelWithClose.js +3 -3
  198. package/lib/components/NotificationsPanel/NotificationsPanel.js +8 -8
  199. package/lib/components/OptionsTile/OptionsTile.js +6 -6
  200. package/lib/components/PageHeader/PageHeader.js +2 -2
  201. package/lib/components/ProductiveCard/ProductiveCard.js +5 -0
  202. package/lib/components/Saving/Saving.js +5 -5
  203. package/lib/components/SidePanel/SidePanel.js +3 -3
  204. package/lib/components/StatusIcon/StatusIcon.js +45 -45
  205. package/lib/components/UserProfileImage/UserProfileImage.js +7 -7
  206. package/lib/components/WebTerminal/WebTerminal.js +3 -3
  207. package/lib/components/WebTerminal/hooks/index.js +6 -0
  208. package/lib/components/WebTerminal/preview-components/Navigation.js +10 -4
  209. package/lib/components/WebTerminal/preview-components/documentationLinks.js +6 -0
  210. package/lib/components/index.js +12 -0
  211. package/lib/global/js/hooks/useClickOutside.js +1 -1
  212. package/lib/global/js/package-settings.js +3 -3
  213. package/lib/global/js/utils/rangeWithCallback.js +22 -0
  214. package/lib/global/js/utils/story-helper.js +5 -1
  215. package/lib/global/js/utils/uuidv4.spec.js +4 -0
  216. package/package.json +15 -15
  217. package/scss/components/AddSelect/_add-select.scss +127 -28
  218. package/scss/components/Card/_card.scss +1 -0
  219. package/scss/components/Cascade/_cascade.scss +1 -1
  220. package/scss/components/CreateTearsheet/_create-tearsheet.scss +2 -0
  221. package/scss/components/Datagrid/_datagrid.scss +7 -0
  222. package/scss/components/Datagrid/_storybook-styles.scss +8 -5
  223. package/scss/components/Datagrid/styles/_datagrid.scss +38 -14
  224. package/scss/components/Datagrid/styles/_draggableElement.scss +26 -9
  225. package/scss/components/Datagrid/styles/_index.scss +1 -0
  226. package/scss/components/Datagrid/styles/_useActionsColumn.scss +14 -0
  227. package/scss/components/Datagrid/styles/_useExpandedRow.scss +37 -9
  228. package/scss/components/Datagrid/styles/_useInlineEdit.scss +404 -0
  229. package/scss/components/Datagrid/styles/_useNestedRows.scss +16 -1
  230. package/scss/components/Datagrid/styles/_useStickyColumn.scss +31 -2
  231. package/scss/components/Datagrid/styles/addons/_CustomizeColumnsModal.scss +45 -6
  232. package/scss/components/Datagrid/styles/addons/_RowSizeDropdown.scss +9 -1
  233. package/scss/components/InlineEdit/_inline-edit.scss +4 -2
  234. package/scss/components/NotificationsPanel/_notifications-panel.scss +3 -6
  235. package/scss/components/RemoveModal/_remove-modal.scss +0 -4
  236. package/scss/components/SidePanel/_side-panel.scss +3 -6
  237. package/scss/components/Tearsheet/_tearsheet.scss +2 -2
  238. package/scss/components/WebTerminal/_carbon-imports.scss +6 -0
  239. package/scss/components/WebTerminal/_index.scss +7 -0
  240. package/scss/components/WebTerminal/_storybook-styles.scss +7 -0
  241. package/scss/components/_index-released-only.scss +1 -0
@@ -1,3 +1,4 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
1
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
3
  // @flow
3
4
 
@@ -8,7 +9,7 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
8
9
  * US Government Users Restricted Rights - Use, duplication or disclosure
9
10
  * restricted by GSA ADP Schedule Contract with IBM Corp.
10
11
  */
11
- import * as React from 'react';
12
+ import React from 'react';
12
13
  import PropTypes from 'prop-types';
13
14
  import { DndProvider } from 'react-dnd';
14
15
  import { HTML5Backend } from 'react-dnd-html5-backend';
@@ -17,6 +18,7 @@ import update from 'immutability-helper';
17
18
  import { pkg } from '../../../../../settings';
18
19
  import DraggableElement from '../../DraggableElement';
19
20
  import { isColumnVisible } from './common';
21
+ import classNames from 'classnames';
20
22
  var blockClass = "".concat(pkg.prefix, "--datagrid");
21
23
 
22
24
  var getNextIndex = function getNextIndex(array, currentIndex, key) {
@@ -34,14 +36,16 @@ var getNextIndex = function getNextIndex(array, currentIndex, key) {
34
36
  };
35
37
 
36
38
  var Columns = function Columns(_ref) {
37
- var filterString = _ref.filterString,
39
+ var _classNames;
40
+
41
+ var getVisibleColumnsCount = _ref.getVisibleColumnsCount,
42
+ filterString = _ref.filterString,
38
43
  columns = _ref.columns,
39
44
  setColumnsObject = _ref.setColumnsObject,
40
45
  onSelectColumn = _ref.onSelectColumn,
41
- _ref$instructionsLabe = _ref.instructionsLabel,
42
- instructionsLabel = _ref$instructionsLabe === void 0 ? 'Press space bar to toggle drag drop mode, use arrow keys to move selected elements.' : _ref$instructionsLabe,
43
- _ref$disabledInstruct = _ref.disabledInstructionsLabel,
44
- disabledInstructionsLabel = _ref$disabledInstruct === void 0 ? 'Reordering columns are disabled because they are filtered currently.' : _ref$disabledInstruct;
46
+ assistiveTextInstructionsLabel = _ref.assistiveTextInstructionsLabel,
47
+ assistiveTextDisabledInstructionsLabel = _ref.assistiveTextDisabledInstructionsLabel,
48
+ selectAllLabel = _ref.selectAllLabel;
45
49
 
46
50
  var _React$useState = React.useState(''),
47
51
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -88,7 +92,21 @@ var Columns = function Columns(_ref) {
88
92
  }, ariaRegionText), /*#__PURE__*/React.createElement("span", {
89
93
  id: "".concat(blockClass, "__customize-columns--instructions"),
90
94
  className: "".concat(blockClass, "__shared-ui--assistive-text")
91
- }, filterString.length === 0 ? instructionsLabel : disabledInstructionsLabel), columns.filter(function (colDef) {
95
+ }, filterString.length === 0 ? assistiveTextInstructionsLabel : assistiveTextDisabledInstructionsLabel), /*#__PURE__*/React.createElement("div", {
96
+ id: "".concat(blockClass, "__customize-columns-select-all"),
97
+ className: classNames((_classNames = {}, _defineProperty(_classNames, "".concat(blockClass, "__customize-columns-select-all"), getVisibleColumnsCount() === 0), _defineProperty(_classNames, "".concat(blockClass, "__customize-columns-select-all-selected"), getVisibleColumnsCount() > 0), _classNames)),
98
+ selected: getVisibleColumnsCount() > 0
99
+ }, /*#__PURE__*/React.createElement(Checkbox, {
100
+ wrapperClassName: "".concat(blockClass, "__customize-columns-checkbox-wrapper"),
101
+ checked: getVisibleColumnsCount() === columns.length,
102
+ empty: !!getVisibleColumnsCount() === 0,
103
+ indeterminate: getVisibleColumnsCount() < columns.length && getVisibleColumnsCount() > 0,
104
+ onChange: function onChange() {
105
+ onSelectColumn(columns, getVisibleColumnsCount() !== columns.length);
106
+ },
107
+ id: "".concat(blockClass, "__customization-column-select-all"),
108
+ labelText: selectAllLabel
109
+ })), columns.filter(function (colDef) {
92
110
  return filterString.length === 0 || colDef.Header.props.title.toLowerCase().includes(filterString);
93
111
  }).map(function (colDef, i) {
94
112
  return /*#__PURE__*/React.createElement(DraggableElement, {
@@ -117,24 +135,31 @@ var Columns = function Columns(_ref) {
117
135
  });
118
136
  }
119
137
  }
120
- }
138
+ },
139
+ selected: isColumnVisible(colDef)
121
140
  }, /*#__PURE__*/React.createElement(Checkbox, {
122
- wrapperClassName: "".concat(blockClass, "__customize-columns-checkbox"),
141
+ wrapperClassName: "".concat(blockClass, "__customize-columns-checkbox-wrapper"),
123
142
  checked: isColumnVisible(colDef),
124
143
  onChange: onSelectColumn.bind(null, colDef),
125
144
  id: "".concat(blockClass, "__customization-column-").concat(colDef.id),
126
145
  labelText: colDef.Header.props.title,
127
- title: colDef.Header.props.title
146
+ title: colDef.Header.props.title,
147
+ className: "".concat(blockClass, "__customize-columns-checkbox")
128
148
  }));
129
149
  }))));
130
150
  };
131
151
 
132
152
  Columns.propTypes = {
153
+ assistiveTextDisabledInstructionsLabel: PropTypes.string,
154
+ assistiveTextInstructionsLabel: PropTypes.string,
133
155
  columns: PropTypes.array.isRequired,
134
156
  disabledInstructionsLabel: PropTypes.string,
135
157
  filterString: PropTypes.string.isRequired,
158
+ getVisibleColumnsCount: PropTypes.func.isRequired,
136
159
  instructionsLabel: PropTypes.string,
137
160
  onSelectColumn: PropTypes.func.isRequired,
161
+ selectAllLabel: PropTypes.string,
162
+ setColumnStatus: PropTypes.func,
138
163
  setColumnsObject: PropTypes.func.isRequired
139
164
  };
140
165
  export default Columns;
@@ -13,13 +13,14 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
13
13
  * restricted by GSA ADP Schedule Contract with IBM Corp.
14
14
  */
15
15
  // @flow
16
- import React, { useState } from 'react';
16
+ import React, { useEffect, useState } from 'react';
17
17
  import PropTypes from 'prop-types';
18
18
  import { Modal } from '@carbon/react';
19
19
  import { isColumnVisible } from './common';
20
20
  import Columns from './Columns';
21
21
  import Actions from './Actions';
22
22
  import { pkg } from '../../../../../settings';
23
+ import { useCallback } from 'react';
23
24
  var blockClass = "".concat(pkg.prefix, "--datagrid");
24
25
 
25
26
  var CustomizeColumnsModal = function CustomizeColumnsModal(_ref) {
@@ -29,20 +30,40 @@ var CustomizeColumnsModal = function CustomizeColumnsModal(_ref) {
29
30
  columnDefinitions = _ref.columnDefinitions,
30
31
  originalColumnDefinitions = _ref.originalColumnDefinitions,
31
32
  _ref$customizeModalHe = _ref.customizeModalHeadingLabel,
32
- customizeModalHeadingLabel = _ref$customizeModalHe === void 0 ? 'Customize display' : _ref$customizeModalHe,
33
+ customizeModalHeadingLabel = _ref$customizeModalHe === void 0 ? 'Customize Columns' : _ref$customizeModalHe,
33
34
  _ref$primaryButtonTex = _ref.primaryButtonTextLabel,
34
35
  primaryButtonTextLabel = _ref$primaryButtonTex === void 0 ? 'Save' : _ref$primaryButtonTex,
35
36
  _ref$secondaryButtonT = _ref.secondaryButtonTextLabel,
36
37
  secondaryButtonTextLabel = _ref$secondaryButtonT === void 0 ? 'Cancel' : _ref$secondaryButtonT,
37
38
  _ref$instructionsLabe = _ref.instructionsLabel,
38
- 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;
39
+ 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,
40
+ _ref$findColumnPlaceh = _ref.findColumnPlaceholderLabel,
41
+ findColumnPlaceholderLabel = _ref$findColumnPlaceh === void 0 ? 'Find column' : _ref$findColumnPlaceh,
42
+ _ref$resetToDefaultLa = _ref.resetToDefaultLabel,
43
+ resetToDefaultLabel = _ref$resetToDefaultLa === void 0 ? 'Reset to default' : _ref$resetToDefaultLa,
44
+ _ref$assistiveTextIns = _ref.assistiveTextInstructionsLabel,
45
+ assistiveTextInstructionsLabel = _ref$assistiveTextIns === void 0 ? 'Press space bar to toggle drag drop mode, use arrow keys to move selected elements.' : _ref$assistiveTextIns,
46
+ _ref$assistiveTextDis = _ref.assistiveTextDisabledInstructionsLabel,
47
+ assistiveTextDisabledInstructionsLabel = _ref$assistiveTextDis === void 0 ? 'Reordering columns are disabled because they are filtered currently.' : _ref$assistiveTextDis,
48
+ _ref$selectAllLabel = _ref.selectAllLabel,
49
+ selectAllLabel = _ref$selectAllLabel === void 0 ? 'Column name' : _ref$selectAllLabel;
39
50
 
40
51
  var _useState = useState(''),
41
52
  _useState2 = _slicedToArray(_useState, 2),
42
- searchText = _useState2[0],
43
- setSearchText = _useState2[1];
53
+ visibleColumnsCount = _useState2[0],
54
+ setVisibleColumnsCount = _useState2[1];
44
55
 
45
- var _useState3 = useState(columnDefinitions // hide the columns without Header, e.g the sticky actions, spacer
56
+ var _useState3 = useState(''),
57
+ _useState4 = _slicedToArray(_useState3, 2),
58
+ totalColumns = _useState4[0],
59
+ setTotalColumns = _useState4[1];
60
+
61
+ var _useState5 = useState(''),
62
+ _useState6 = _slicedToArray(_useState5, 2),
63
+ searchText = _useState6[0],
64
+ setSearchText = _useState6[1];
65
+
66
+ var _useState7 = useState(columnDefinitions // hide the columns without Header, e.g the sticky actions, spacer
46
67
  .filter(function (colDef) {
47
68
  return !!colDef.Header.props;
48
69
  }) // only sort the hidden column to the end when modal reopen
@@ -60,14 +81,14 @@ var CustomizeColumnsModal = function CustomizeColumnsModal(_ref) {
60
81
 
61
82
  return 0;
62
83
  })),
63
- _useState4 = _slicedToArray(_useState3, 2),
64
- columnObjects = _useState4[0],
65
- _setColumnsObject = _useState4[1];
84
+ _useState8 = _slicedToArray(_useState7, 2),
85
+ columnObjects = _useState8[0],
86
+ setColumnObjects = _useState8[1];
66
87
 
67
- var _useState5 = useState(false),
68
- _useState6 = _slicedToArray(_useState5, 2),
69
- isDirty = _useState6[0],
70
- setIsDirty = _useState6[1];
88
+ var _useState9 = useState(false),
89
+ _useState10 = _slicedToArray(_useState9, 2),
90
+ isDirty = _useState10[0],
91
+ setIsDirty = _useState10[1];
71
92
 
72
93
  var onRequestClose = function onRequestClose() {
73
94
  setIsModalOpen(false);
@@ -86,7 +107,7 @@ var CustomizeColumnsModal = function CustomizeColumnsModal(_ref) {
86
107
 
87
108
  var onCheckboxCheck = function onCheckboxCheck(col, value) {
88
109
  var changedDefinitions = columnObjects.map(function (definition) {
89
- if (definition.id === col.id) {
110
+ if (Array.isArray(col) && col.indexOf(definition) != null || definition.id === col.id) {
90
111
  return _objectSpread(_objectSpread({}, definition), {}, {
91
112
  isVisible: value
92
113
  });
@@ -94,9 +115,7 @@ var CustomizeColumnsModal = function CustomizeColumnsModal(_ref) {
94
115
 
95
116
  return definition;
96
117
  });
97
-
98
- _setColumnsObject(changedDefinitions);
99
-
118
+ setColumnObjects(changedDefinitions);
100
119
  setDirty();
101
120
  };
102
121
 
@@ -106,11 +125,20 @@ var CustomizeColumnsModal = function CustomizeColumnsModal(_ref) {
106
125
  }
107
126
  };
108
127
 
128
+ var getVisibleColumnsCount = useCallback(function () {
129
+ return columnObjects.filter(function (col) {
130
+ return col.isVisible;
131
+ }).length;
132
+ }, [columnObjects]);
109
133
  var string = searchText.trim().toLowerCase();
134
+ useEffect(function () {
135
+ setVisibleColumnsCount(getVisibleColumnsCount());
136
+ setTotalColumns(columnObjects.length);
137
+ }, [getVisibleColumnsCount, columnObjects.length]);
110
138
  return /*#__PURE__*/React.createElement(Modal, {
111
139
  className: "".concat(blockClass, "__customize-columns-modal"),
112
140
  open: isOpen,
113
- modalHeading: customizeModalHeadingLabel,
141
+ modalHeading: "".concat(customizeModalHeadingLabel, " (").concat(visibleColumnsCount, "/").concat(totalColumns, ")"),
114
142
  primaryButtonText: primaryButtonTextLabel,
115
143
  secondaryButtonText: secondaryButtonTextLabel,
116
144
  selectorPrimaryFocus: ".".concat(blockClass, "__customize-columns-column-list--focus"),
@@ -126,32 +154,41 @@ var CustomizeColumnsModal = function CustomizeColumnsModal(_ref) {
126
154
  originalColumnDefinitions: originalColumnDefinitions,
127
155
  searchText: searchText,
128
156
  setColumnsObject: function setColumnsObject(cols) {
129
- _setColumnsObject(cols);
130
-
157
+ setColumnObjects(cols);
131
158
  setDirty();
132
159
  },
133
- setSearchText: setSearchText
160
+ setSearchText: setSearchText,
161
+ findColumnPlaceholderLabel: findColumnPlaceholderLabel,
162
+ resetToDefaultLabel: resetToDefaultLabel
134
163
  }), isOpen && /*#__PURE__*/React.createElement(Columns, {
164
+ assistiveTextInstructionsLabel: assistiveTextInstructionsLabel,
165
+ assistiveTextDisabledInstructionsLabel: assistiveTextDisabledInstructionsLabel,
166
+ getVisibleColumnsCount: getVisibleColumnsCount,
135
167
  columns: columnObjects,
136
168
  filterString: string,
137
169
  onSelectColumn: onCheckboxCheck,
138
170
  setColumnsObject: function setColumnsObject(cols) {
139
- _setColumnsObject(cols);
140
-
171
+ setColumnObjects(cols);
141
172
  setDirty();
142
- }
173
+ },
174
+ selectAllLabel: selectAllLabel
143
175
  }));
144
176
  };
145
177
 
146
178
  CustomizeColumnsModal.propTypes = {
179
+ assistiveTextDisabledInstructionsLabel: PropTypes.string,
180
+ assistiveTextInstructionsLabel: PropTypes.string,
147
181
  columnDefinitions: PropTypes.array.isRequired,
148
182
  customizeModalHeadingLabel: PropTypes.string,
183
+ findColumnPlaceholderLabel: PropTypes.string,
149
184
  instructionsLabel: PropTypes.string,
150
185
  isOpen: PropTypes.bool.isRequired,
151
186
  onSaveColumnPrefs: PropTypes.func.isRequired,
152
187
  originalColumnDefinitions: PropTypes.array.isRequired,
153
188
  primaryButtonTextLabel: PropTypes.string,
189
+ resetToDefaultLabel: PropTypes.string,
154
190
  secondaryButtonTextLabel: PropTypes.string,
191
+ selectAllLabel: PropTypes.string,
155
192
  setIsModalOpen: PropTypes.func.isRequired
156
193
  };
157
194
  export default CustomizeColumnsModal;
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["onSaveColumnPrefs", "isModalOpen", "setIsModalOpen"];
3
+ var _excluded = ["onSaveColumnPrefs", "isModalOpen", "setIsModalOpen", "labels"];
4
4
  // @flow
5
5
 
6
6
  /*
@@ -21,10 +21,11 @@ var ModalWrapper = function ModalWrapper(_ref) {
21
21
  _onSaveColumnPrefs = _instance$customizeCo.onSaveColumnPrefs,
22
22
  isModalOpen = _instance$customizeCo.isModalOpen,
23
23
  setIsModalOpen = _instance$customizeCo.setIsModalOpen,
24
+ labels = _instance$customizeCo.labels,
24
25
  rest = _objectWithoutProperties(_instance$customizeCo, _excluded);
25
26
 
26
27
  if (isModalOpen) {
27
- return /*#__PURE__*/React.createElement(CustomizeColumnsModal, _extends({}, rest, {
28
+ return /*#__PURE__*/React.createElement(CustomizeColumnsModal, _extends({}, rest, labels, {
28
29
  isOpen: isModalOpen,
29
30
  setIsModalOpen: setIsModalOpen,
30
31
  columnDefinitions: instance.allColumns,
@@ -0,0 +1,60 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+
3
+ /*
4
+ * Licensed Materials - Property of IBM
5
+ * 5724-Q36
6
+ * (c) Copyright IBM Corp. 2022
7
+ * US Government Users Restricted Rights - Use, duplication or disclosure
8
+ * restricted by GSA ADP Schedule Contract with IBM Corp.
9
+ */
10
+ import React from 'react';
11
+ import cx from 'classnames';
12
+ import PropTypes from 'prop-types';
13
+ import { pkg } from '../../../../../../settings';
14
+ var blockClass = "".concat(pkg.prefix, "--datagrid");
15
+ export var InlineEditButton = function InlineEditButton(_ref) {
16
+ var _cx, _cx2;
17
+
18
+ var label = _ref.label,
19
+ Icon = _ref.renderIcon,
20
+ disabled = _ref.disabled,
21
+ LabelIcon = _ref.labelIcon,
22
+ placeholder = _ref.placeholder,
23
+ nonEditCell = _ref.nonEditCell,
24
+ isActiveCell = _ref.isActiveCell,
25
+ columnConfig = _ref.columnConfig,
26
+ totalInlineEditColumns = _ref.totalInlineEditColumns,
27
+ totalColumns = _ref.totalColumns,
28
+ type = _ref.type;
29
+ var inlineEditColsLessThanHalfOfTotal = totalInlineEditColumns < totalColumns / 2;
30
+ return /*#__PURE__*/React.createElement("div", {
31
+ className: cx("".concat(blockClass, "__inline-edit-button"), (_cx = {}, _defineProperty(_cx, "".concat(blockClass, "__inline-edit-button--disabled"), disabled || nonEditCell), _defineProperty(_cx, "".concat(blockClass, "__inline-edit-button--with-label-icon"), LabelIcon), _defineProperty(_cx, "".concat(blockClass, "__inline-edit-button--non-edit"), nonEditCell), _defineProperty(_cx, "".concat(blockClass, "__inline-edit-button--active"), isActiveCell), _defineProperty(_cx, "".concat(blockClass, "__inline-edit-button--edit-less-than-half-of-total-cols"), inlineEditColsLessThanHalfOfTotal), _defineProperty(_cx, "".concat(blockClass, "__inline-edit-button--").concat(type), type === 'date' || type === 'selection'), _cx)),
32
+ tabIndex: isActiveCell ? 0 : -1,
33
+ "data-disabled": disabled || nonEditCell,
34
+ "aria-disabled": disabled || nonEditCell,
35
+ role: "button",
36
+ title: label
37
+ }, LabelIcon && /*#__PURE__*/React.createElement("div", {
38
+ className: "".concat(blockClass, "__label-icon")
39
+ }, /*#__PURE__*/React.createElement(LabelIcon, null)), label !== '' ? /*#__PURE__*/React.createElement("span", {
40
+ className: cx("".concat(blockClass, "__inline-edit-button-label"), (_cx2 = {}, _defineProperty(_cx2, "".concat(blockClass, "__inline-edit-button-label-with-icon"), !nonEditCell), _defineProperty(_cx2, "".concat(blockClass, "__defaultStringRenderer--multiline"), columnConfig === null || columnConfig === void 0 ? void 0 : columnConfig.multiLineWrap), _cx2))
41
+ }, label) : /*#__PURE__*/React.createElement("span", {
42
+ className: "".concat(blockClass, "__placeholder")
43
+ }, placeholder), !nonEditCell && Icon && /*#__PURE__*/React.createElement("div", {
44
+ className: "".concat(blockClass, "__inline-edit-button-icon")
45
+ }, /*#__PURE__*/React.createElement(Icon, null)));
46
+ };
47
+ InlineEditButton.propTypes = {
48
+ columnConfig: PropTypes.object,
49
+ disabled: PropTypes.bool,
50
+ isActiveCell: PropTypes.bool,
51
+ label: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
52
+ labelIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
53
+ nonEditCell: PropTypes.bool,
54
+ placeholder: PropTypes.string,
55
+ renderIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
56
+ totalColumns: PropTypes.number,
57
+ totalInlineEditColumns: PropTypes.number,
58
+ type: PropTypes.oneOf(['text', 'number', 'selection', 'date']),
59
+ value: PropTypes.oneOfType([PropTypes.string, PropTypes.node])
60
+ };
@@ -0,0 +1 @@
1
+ export { InlineEditButton } from './InlineEditButton';