@carbon/ibm-products 1.25.1 → 1.31.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. package/css/index-full-carbon.css +562 -88
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +3 -3
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +942 -23
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +3 -3
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +561 -87
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +3 -3
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +562 -88
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +3 -3
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/AddSelect/AddSelect.js +0 -3
  18. package/es/components/AddSelect/AddSelectBody.js +20 -3
  19. package/es/components/AddSelect/AddSelectBreadcrumbs.js +11 -3
  20. package/es/components/AddSelect/AddSelectColumn.js +4 -3
  21. package/es/components/AddSelect/AddSelectFilter.js +4 -3
  22. package/es/components/AddSelect/AddSelectList.js +40 -14
  23. package/es/components/Card/Card.js +16 -6
  24. package/es/components/Card/CardFooter.js +3 -1
  25. package/es/components/Card/CardHeader.js +20 -1
  26. package/es/components/DataSpreadsheet/DataSpreadsheet.js +62 -11
  27. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  28. package/es/components/DataSpreadsheet/utils/handleCellDeletion.js +31 -0
  29. package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  30. package/es/components/Datagrid/Datagrid/Datagrid.js +10 -38
  31. package/es/components/Datagrid/Datagrid/DatagridContent.js +106 -0
  32. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +10 -3
  33. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +139 -11
  34. package/es/components/Datagrid/Datagrid/DraggableElement.js +5 -1
  35. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +5 -40
  36. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +35 -10
  37. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +61 -24
  38. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
  39. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +63 -0
  40. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +1 -0
  41. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +459 -0
  42. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +1 -0
  43. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +112 -0
  44. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +27 -0
  45. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +1 -0
  46. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +31 -0
  47. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +19 -0
  48. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +197 -0
  49. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +6 -5
  50. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +1 -2
  51. package/es/components/Datagrid/index.js +3 -1
  52. package/es/components/Datagrid/useActionsColumn.js +31 -6
  53. package/es/components/Datagrid/useColumnOrder.js +8 -0
  54. package/es/components/Datagrid/useCustomizeColumns.js +5 -0
  55. package/es/components/Datagrid/useDefaultStringRenderer.js +4 -1
  56. package/es/components/Datagrid/useDisableSelectRows.js +6 -2
  57. package/es/components/Datagrid/useInlineEdit.js +71 -0
  58. package/es/components/Datagrid/useRowSize.js +17 -6
  59. package/es/components/Datagrid/useSelectRows.js +14 -4
  60. package/es/components/Datagrid/useStickyColumn.js +14 -0
  61. package/es/components/Datagrid/utils/getInlineEditColumns.js +121 -0
  62. package/es/components/Datagrid/utils/makeData.js +18 -2
  63. package/es/components/ImportModal/ImportModal.js +2 -2
  64. package/es/components/InlineEdit/InlineEdit.js +4 -2
  65. package/es/components/ProductiveCard/ProductiveCard.js +5 -0
  66. package/es/components/WebTerminal/WebTerminal.js +1 -1
  67. package/es/components/WebTerminal/WebTerminalContentWrapper.js +1 -1
  68. package/es/components/WebTerminal/hooks/index.js +6 -0
  69. package/es/components/WebTerminal/index.js +6 -0
  70. package/es/components/WebTerminal/preview-components/Navigation.js +6 -0
  71. package/es/components/WebTerminal/preview-components/documentationLinks.js +6 -0
  72. package/es/components/WebTerminal/preview-components/index.js +7 -0
  73. package/es/components/index.js +1 -1
  74. package/es/global/js/hooks/useClickOutside.js +1 -1
  75. package/es/global/js/package-settings.js +3 -3
  76. package/es/global/js/utils/rangeWithCallback.js +13 -0
  77. package/es/global/js/utils/uuidv4.spec.js +4 -0
  78. package/lib/components/AddSelect/AddSelect.js +0 -4
  79. package/lib/components/AddSelect/AddSelectBody.js +20 -3
  80. package/lib/components/AddSelect/AddSelectBreadcrumbs.js +14 -3
  81. package/lib/components/AddSelect/AddSelectColumn.js +3 -2
  82. package/lib/components/AddSelect/AddSelectFilter.js +3 -2
  83. package/lib/components/AddSelect/AddSelectList.js +39 -13
  84. package/lib/components/Card/Card.js +16 -6
  85. package/lib/components/Card/CardFooter.js +3 -1
  86. package/lib/components/Card/CardHeader.js +21 -1
  87. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +62 -10
  88. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  89. package/lib/components/DataSpreadsheet/utils/handleCellDeletion.js +42 -0
  90. package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  91. package/lib/components/Datagrid/Datagrid/Datagrid.js +12 -45
  92. package/lib/components/Datagrid/Datagrid/DatagridContent.js +138 -0
  93. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +12 -3
  94. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +148 -9
  95. package/lib/components/Datagrid/Datagrid/DraggableElement.js +5 -1
  96. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +12 -41
  97. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +47 -25
  98. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +59 -23
  99. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
  100. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +79 -0
  101. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +13 -0
  102. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +483 -0
  103. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +13 -0
  104. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +129 -0
  105. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +36 -0
  106. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +19 -0
  107. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +42 -0
  108. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +28 -0
  109. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +204 -0
  110. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +6 -5
  111. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +1 -2
  112. package/lib/components/Datagrid/index.js +17 -1
  113. package/lib/components/Datagrid/useActionsColumn.js +31 -6
  114. package/lib/components/Datagrid/useColumnOrder.js +17 -0
  115. package/lib/components/Datagrid/useCustomizeColumns.js +5 -0
  116. package/lib/components/Datagrid/useDefaultStringRenderer.js +5 -1
  117. package/lib/components/Datagrid/useDisableSelectRows.js +6 -2
  118. package/lib/components/Datagrid/useInlineEdit.js +85 -0
  119. package/lib/components/Datagrid/useRowSize.js +18 -13
  120. package/lib/components/Datagrid/useSelectRows.js +13 -3
  121. package/lib/components/Datagrid/useStickyColumn.js +14 -0
  122. package/lib/components/Datagrid/utils/getInlineEditColumns.js +133 -0
  123. package/lib/components/Datagrid/utils/makeData.js +18 -2
  124. package/lib/components/ImportModal/ImportModal.js +2 -2
  125. package/lib/components/InlineEdit/InlineEdit.js +4 -2
  126. package/lib/components/ProductiveCard/ProductiveCard.js +5 -0
  127. package/lib/components/WebTerminal/hooks/index.js +6 -0
  128. package/lib/components/WebTerminal/preview-components/Navigation.js +6 -0
  129. package/lib/components/WebTerminal/preview-components/documentationLinks.js +6 -0
  130. package/lib/components/index.js +12 -0
  131. package/lib/global/js/hooks/useClickOutside.js +1 -1
  132. package/lib/global/js/package-settings.js +3 -3
  133. package/lib/global/js/utils/rangeWithCallback.js +22 -0
  134. package/lib/global/js/utils/uuidv4.spec.js +4 -0
  135. package/package.json +13 -13
  136. package/scss/components/AddSelect/_add-select.scss +126 -28
  137. package/scss/components/Card/_card.scss +1 -0
  138. package/scss/components/Cascade/_cascade.scss +1 -1
  139. package/scss/components/CreateTearsheet/_create-tearsheet.scss +1 -0
  140. package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +18 -1
  141. package/scss/components/Datagrid/_datagrid.scss +5 -0
  142. package/scss/components/Datagrid/_storybook-styles.scss +1 -1
  143. package/scss/components/Datagrid/styles/_datagrid.scss +81 -12
  144. package/scss/components/Datagrid/styles/_draggableElement.scss +26 -9
  145. package/scss/components/Datagrid/styles/_index.scss +1 -0
  146. package/scss/components/Datagrid/styles/_useInlineEdit.scss +211 -0
  147. package/scss/components/Datagrid/styles/_useStickyColumn.scss +24 -2
  148. package/scss/components/Datagrid/styles/addons/_CustomizeColumnsModal.scss +44 -6
  149. package/scss/components/InlineEdit/_inline-edit.scss +1 -1
  150. package/scss/components/NotificationsPanel/_notifications-panel.scss +5 -6
  151. package/scss/components/ProductiveCard/_productive-card.scss +39 -0
  152. package/scss/components/RemoveModal/_remove-modal.scss +0 -4
  153. package/scss/components/SidePanel/_side-panel.scss +4 -6
  154. package/scss/components/WebTerminal/_index.scss +7 -0
  155. package/scss/components/WebTerminal/_storybook-styles.scss +7 -0
  156. package/scss/components/WebTerminal/_web-terminal.scss +13 -0
  157. package/scss/components/_index-released-only.scss +1 -0
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.DatagridContent = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _classnames = _interopRequireDefault(require("classnames"));
19
+
20
+ var _propTypes = _interopRequireDefault(require("prop-types"));
21
+
22
+ var _carbonComponentsReact = require("carbon-components-react");
23
+
24
+ var _DatagridHead = _interopRequireDefault(require("./DatagridHead"));
25
+
26
+ var _DatagridBody = _interopRequireDefault(require("./DatagridBody"));
27
+
28
+ var _DatagridToolbar = _interopRequireDefault(require("./DatagridToolbar"));
29
+
30
+ var _handleGridKeyPress = require("./addons/InlineEdit/handleGridKeyPress");
31
+
32
+ var _settings = require("../../../settings");
33
+
34
+ var _InlineEditContext = require("./addons/InlineEdit/InlineEditContext");
35
+
36
+ var _handleGridFocus = require("./addons/InlineEdit/handleGridFocus");
37
+
38
+ var _hooks = require("../../../global/js/hooks");
39
+
40
+ 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); }
41
+
42
+ 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; }
43
+
44
+ var TableContainer = _carbonComponentsReact.DataTable.TableContainer,
45
+ Table = _carbonComponentsReact.DataTable.Table;
46
+ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
47
+
48
+ var DatagridContent = function DatagridContent(_ref) {
49
+ var _getTableProps;
50
+
51
+ var datagridState = _ref.datagridState;
52
+
53
+ var _useContext = (0, _react.useContext)(_InlineEditContext.InlineEditContext),
54
+ state = _useContext.state,
55
+ dispatch = _useContext.dispatch;
56
+
57
+ var activeCellId = state.activeCellId;
58
+ var _datagridState$getTab = datagridState.getTableProps,
59
+ getTableProps = _datagridState$getTab === void 0 ? function () {} : _datagridState$getTab,
60
+ withVirtualScroll = datagridState.withVirtualScroll,
61
+ DatagridPagination = datagridState.DatagridPagination,
62
+ isFetching = datagridState.isFetching,
63
+ CustomizeColumnsModal = datagridState.CustomizeColumnsModal,
64
+ leftPanel = datagridState.leftPanel,
65
+ fullHeightDatagrid = datagridState.fullHeightDatagrid,
66
+ _datagridState$vertic = datagridState.verticalAlign,
67
+ verticalAlign = _datagridState$vertic === void 0 ? 'center' : _datagridState$vertic,
68
+ variableRowHeight = datagridState.variableRowHeight,
69
+ gridTitle = datagridState.gridTitle,
70
+ gridDescription = datagridState.gridDescription,
71
+ useDenseHeader = datagridState.useDenseHeader,
72
+ withInlineEdit = datagridState.withInlineEdit;
73
+ var rows = DatagridPagination && datagridState.page || datagridState.rows;
74
+ var gridActive = state.gridActive;
75
+ var gridAreaRef = (0, _react.useRef)();
76
+ (0, _hooks.useClickOutside)(gridAreaRef, function (target) {
77
+ if (!withInlineEdit) {
78
+ return;
79
+ } // We return from here if we find a parent element with the selector below
80
+ // because that element was initially part of the grid area but was removed
81
+ // and swapped out with an input, i.e. text, number, selection, or date picker
82
+
83
+
84
+ if (target.closest(".".concat(blockClass, "__inline-edit-button")) || target.closest(".".concat(blockClass, "__inline-edit--select"))) {
85
+ return;
86
+ }
87
+
88
+ dispatch({
89
+ type: 'REMOVE_GRID_ACTIVE_FOCUS',
90
+ payload: activeCellId
91
+ });
92
+ });
93
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(TableContainer, {
94
+ className: (0, _classnames.default)("".concat(blockClass, "__grid-container"), withVirtualScroll || fullHeightDatagrid ? "".concat(blockClass, "__full-height") : '', DatagridPagination ? "".concat(blockClass, "__with-pagination") : '', useDenseHeader ? "".concat(blockClass, "__dense-header") : ''),
95
+ title: gridTitle,
96
+ description: gridDescription
97
+ }, /*#__PURE__*/_react.default.createElement(_DatagridToolbar.default, datagridState), /*#__PURE__*/_react.default.createElement("div", {
98
+ className: "".concat(blockClass, "__table-container"),
99
+ ref: gridAreaRef
100
+ }, leftPanel && leftPanel.isOpen && /*#__PURE__*/_react.default.createElement("div", {
101
+ className: "".concat(blockClass, "__datagridLeftPanel")
102
+ }, leftPanel.panelContent), /*#__PURE__*/_react.default.createElement(Table, (0, _extends2.default)({}, getTableProps(), {
103
+ className: (0, _classnames.default)(withVirtualScroll ? '' : "".concat(blockClass, "__table-simple"), "".concat(blockClass, "__vertical-align-").concat(verticalAlign), (0, _defineProperty2.default)({}, "".concat(blockClass, "__variable-row-height"), variableRowHeight), (0, _defineProperty2.default)({}, "".concat(blockClass, "__table-with-inline-edit"), withInlineEdit), (0, _defineProperty2.default)({}, "".concat(blockClass, "__table-grid-active"), gridActive), (_getTableProps = getTableProps()) === null || _getTableProps === void 0 ? void 0 : _getTableProps.className),
104
+ role: withInlineEdit && 'grid',
105
+ tabIndex: withInlineEdit && 0,
106
+ onKeyDown: withInlineEdit ? function (event) {
107
+ return (0, _handleGridKeyPress.handleGridKeyPress)(event, dispatch, state, datagridState);
108
+ } : null,
109
+ onFocus: withInlineEdit ? function () {
110
+ return (0, _handleGridFocus.handleGridFocus)(state, dispatch);
111
+ } : null
112
+ }), /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState), /*#__PURE__*/_react.default.createElement(_DatagridBody.default, (0, _extends2.default)({}, datagridState, {
113
+ rows: rows
114
+ }))))), (rows === null || rows === void 0 ? void 0 : rows.length) > 0 && !isFetching && DatagridPagination && DatagridPagination(datagridState), CustomizeColumnsModal && /*#__PURE__*/_react.default.createElement(CustomizeColumnsModal, {
115
+ instance: datagridState
116
+ }));
117
+ };
118
+
119
+ exports.DatagridContent = DatagridContent;
120
+ DatagridContent.propTypes = {
121
+ datagridState: _propTypes.default.shape({
122
+ getTableProps: _propTypes.default.func,
123
+ withVirtualScroll: _propTypes.default.bool,
124
+ DatagridPagination: _propTypes.default.element,
125
+ CustomizeColumnsModal: _propTypes.default.element,
126
+ isFetching: _propTypes.default.bool,
127
+ leftPanel: _propTypes.default.object,
128
+ fullHeightDatagrid: _propTypes.default.bool,
129
+ variableRowHeight: _propTypes.default.bool,
130
+ useDenseHeader: _propTypes.default.bool,
131
+ withInlineEdit: _propTypes.default.bool,
132
+ verticalAlign: _propTypes.default.string,
133
+ gridTitle: _propTypes.default.node,
134
+ gridDescription: _propTypes.default.node,
135
+ page: _propTypes.default.arrayOf(_propTypes.default.object),
136
+ rows: _propTypes.default.arrayOf(_propTypes.default.object)
137
+ })
138
+ };
@@ -11,27 +11,36 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
 
12
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
13
 
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
14
16
  var _react = _interopRequireDefault(require("react"));
15
17
 
16
18
  var _carbonComponentsReact = require("carbon-components-react");
17
19
 
20
+ var _classnames = _interopRequireDefault(require("classnames"));
21
+
18
22
  var _settings = require("../../../settings");
19
23
 
20
24
  var _excluded = ["onChange"];
21
25
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
22
26
 
23
27
  var SelectAll = function SelectAll(datagridState) {
28
+ var _columns$;
29
+
24
30
  var isFetching = datagridState.isFetching,
25
31
  getToggleAllRowsSelectedProps = datagridState.getToggleAllRowsSelectedProps,
26
32
  getToggleAllPageRowsSelectedProps = datagridState.getToggleAllPageRowsSelectedProps,
27
33
  tableId = datagridState.tableId,
28
34
  hideSelectAll = datagridState.hideSelectAll,
29
35
  DatagridPagination = datagridState.DatagridPagination,
30
- radio = datagridState.radio;
36
+ radio = datagridState.radio,
37
+ columns = datagridState.columns,
38
+ withStickyColumn = datagridState.withStickyColumn;
39
+ var isFirstColumnStickyLeft = ((_columns$ = columns[0]) === null || _columns$ === void 0 ? void 0 : _columns$.sticky) === 'left' && withStickyColumn;
31
40
 
32
41
  if (hideSelectAll || radio) {
33
42
  return /*#__PURE__*/_react.default.createElement("div", {
34
- className: "".concat(blockClass, "__head-hidden-select-all")
43
+ className: (0, _classnames.default)("".concat(blockClass, "__head-hidden-select-all"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__select-all-sticky-left"), isFirstColumnStickyLeft))
35
44
  });
36
45
  }
37
46
 
@@ -42,7 +51,7 @@ var SelectAll = function SelectAll(datagridState) {
42
51
  selectProps = (0, _objectWithoutProperties2.default)(_getProps, _excluded);
43
52
 
44
53
  return /*#__PURE__*/_react.default.createElement("div", {
45
- className: "".concat(blockClass, "__head-select-all ").concat(blockClass, "__checkbox-cell")
54
+ className: (0, _classnames.default)("".concat(blockClass, "__head-select-all"), "".concat(blockClass, "__checkbox-cell"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__checkbox-cell-sticky-left"), isFirstColumnStickyLeft))
46
55
  }, /*#__PURE__*/_react.default.createElement(TableSelectAll, (0, _extends2.default)({}, selectProps, {
47
56
  name: "".concat(tableId, "-select-all-checkbox-name"),
48
57
  onSelect: onChange,
@@ -2,31 +2,170 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports.default = void 0;
9
11
 
10
- var _react = _interopRequireDefault(require("react"));
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _iconsReact = require("@carbon/icons-react");
11
19
 
12
20
  var _carbonComponentsReact = require("carbon-components-react");
13
21
 
22
+ var _reactResizeDetector = require("react-resize-detector");
23
+
24
+ var _ButtonMenu = require("../../ButtonMenu");
25
+
14
26
  var _settings = require("../../../settings");
15
27
 
16
- /*
17
- * Licensed Materials - Property of IBM
18
- * 5724-Q36
19
- * (c) Copyright IBM Corp. 2020
20
- * US Government Users Restricted Rights - Use, duplication or disclosure
21
- * restricted by GSA ADP Schedule Contract with IBM Corp.
28
+ var _classnames = _interopRequireDefault(require("classnames"));
29
+
30
+ 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); }
31
+
32
+ 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; }
33
+
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.
22
39
  */
23
40
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
24
41
  var TableToolbar = _carbonComponentsReact.DataTable.TableToolbar;
25
42
 
43
+ var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridState, width, ref) {
44
+ var _useState = (0, _react.useState)(false),
45
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
46
+ displayAllInMenu = _useState2[0],
47
+ setDisplayAllInMenu = _useState2[1];
48
+
49
+ var _useState3 = (0, _react.useState)(null),
50
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
51
+ initialListWidth = _useState4[0],
52
+ setInitialListWidth = _useState4[1];
53
+
54
+ var _useState5 = (0, _react.useState)(false),
55
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
56
+ receivedInitialWidth = _useState6[0],
57
+ setReceivedInitialWidth = _useState6[1];
58
+
59
+ var selectedFlatRows = datagridState.selectedFlatRows,
60
+ toggleAllRowsSelected = datagridState.toggleAllRowsSelected,
61
+ toolbarBatchActions = datagridState.toolbarBatchActions;
62
+ var totalSelected = selectedFlatRows && selectedFlatRows.length; // Get initial width of batch actions container,
63
+ // used to measure when all items are put inside
64
+ // the ButtonMenu
65
+
66
+ (0, _react.useEffect)(function () {
67
+ if (totalSelected === 1 && !receivedInitialWidth) {
68
+ var batchActionListWidth = ref.current.querySelector(".".concat(_settings.carbon.prefix, "--action-list")).offsetWidth;
69
+ setInitialListWidth(batchActionListWidth);
70
+ setReceivedInitialWidth(true);
71
+ }
72
+ }, [totalSelected, receivedInitialWidth, ref]);
73
+ (0, _react.useEffect)(function () {
74
+ var summaryWidth = ref.current.querySelector(".".concat(_settings.carbon.prefix, "--batch-summary")).offsetWidth;
75
+
76
+ if (width < summaryWidth + initialListWidth + 32) {
77
+ setDisplayAllInMenu(true);
78
+ } else {
79
+ setDisplayAllInMenu(false);
80
+ }
81
+ }, [width, ref, initialListWidth]); // Render batch actions in ButtonMenu
82
+
83
+ var renderBatchActionOverflow = function renderBatchActionOverflow() {
84
+ var minWidthBeforeOverflowIcon = 380; // Do not render ButtonMenu when there are 3 or less items
85
+ // and if there is enough available space to render all the items
86
+
87
+ if ((toolbarBatchActions === null || toolbarBatchActions === void 0 ? void 0 : toolbarBatchActions.length) <= 3 && !displayAllInMenu) {
88
+ return null;
89
+ }
90
+
91
+ return /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenu, {
92
+ label: width > minWidthBeforeOverflowIcon ? 'More' : null,
93
+ renderIcon: width > minWidthBeforeOverflowIcon ? _iconsReact.Add16 : _iconsReact.OverflowMenuVertical16,
94
+ className: (0, _classnames.default)("".concat(blockClass, "__button-menu"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__button-menu--icon-only"), width <= minWidthBeforeOverflowIcon)),
95
+ menuOptionsClass: "".concat(blockClass, "__button-menu-options"),
96
+ flipped: true
97
+ }, toolbarBatchActions && toolbarBatchActions.map(function (batchAction, index) {
98
+ if (index < 2) {
99
+ if (displayAllInMenu) {
100
+ return /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenuItem, {
101
+ key: "".concat(batchAction.label, "-").concat(index),
102
+ itemText: batchAction.label,
103
+ onClick: function onClick() {
104
+ batchAction.onClick();
105
+
106
+ if (batchAction.type === 'select_all') {
107
+ toggleAllRowsSelected(true);
108
+ }
109
+ }
110
+ });
111
+ }
112
+
113
+ return null;
114
+ }
115
+
116
+ return /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenuItem, {
117
+ key: "".concat(batchAction.label, "-").concat(index),
118
+ itemText: batchAction.label,
119
+ onClick: function onClick() {
120
+ batchAction.onClick();
121
+
122
+ if (batchAction.type === 'select_all') {
123
+ toggleAllRowsSelected(true);
124
+ }
125
+ }
126
+ });
127
+ }));
128
+ }; // Only display the first two batch actions, the rest are
129
+ // displayed inside of the ButtonMenu if there are more than
130
+ // 3 batch actions
131
+
132
+
133
+ return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TableBatchActions, {
134
+ shouldShowBatchActions: totalSelected > 0,
135
+ totalSelected: totalSelected,
136
+ onCancel: function onCancel() {
137
+ return toggleAllRowsSelected(false);
138
+ }
139
+ }, !displayAllInMenu && toolbarBatchActions && (toolbarBatchActions === null || toolbarBatchActions === void 0 ? void 0 : toolbarBatchActions.map(function (batchAction, index) {
140
+ if (index < 2 && toolbarBatchActions.length > 3 || index < 3 && toolbarBatchActions.length === 3) {
141
+ return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TableBatchAction, {
142
+ key: "".concat(batchAction.label, "-").concat(index),
143
+ renderIcon: batchAction.renderIcon,
144
+ onClick: function onClick() {
145
+ batchAction.onClick();
146
+
147
+ if (batchAction.type === 'select_all') {
148
+ toggleAllRowsSelected(true);
149
+ }
150
+ },
151
+ iconDescription: batchAction.label
152
+ }, batchAction.label);
153
+ }
154
+ })), renderBatchActionOverflow());
155
+ };
156
+
26
157
  var DatagridToolbar = function DatagridToolbar(datagridState) {
158
+ var _useResizeDetector = (0, _reactResizeDetector.useResizeDetector)(),
159
+ width = _useResizeDetector.width,
160
+ ref = _useResizeDetector.ref;
161
+
27
162
  var DatagridActions = datagridState.DatagridActions,
28
- DatagridBatchActions = datagridState.DatagridBatchActions;
29
- return DatagridActions || DatagridBatchActions ? /*#__PURE__*/_react.default.createElement("div", {
163
+ DatagridBatchActions = datagridState.DatagridBatchActions,
164
+ batchActions = datagridState.batchActions;
165
+ return batchActions && DatagridActions ? /*#__PURE__*/_react.default.createElement("div", {
166
+ ref: ref,
167
+ className: "".concat(blockClass, "__table-toolbar")
168
+ }, /*#__PURE__*/_react.default.createElement(TableToolbar, null, DatagridActions && DatagridActions(datagridState), DatagridBatchActionsToolbar && DatagridBatchActionsToolbar(datagridState, width, ref))) : DatagridActions ? /*#__PURE__*/_react.default.createElement("div", {
30
169
  className: "".concat(blockClass, "__table-toolbar")
31
170
  }, /*#__PURE__*/_react.default.createElement(TableToolbar, null, DatagridActions && DatagridActions(datagridState), DatagridBatchActions && DatagridBatchActions(datagridState))) : null;
32
171
  };
@@ -45,6 +45,8 @@ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
45
45
  var DRAG_TYPE = "".concat(blockClass, "__shared-ui-draggable-element");
46
46
 
47
47
  var DraggableElement = function DraggableElement(_ref) {
48
+ var _cx;
49
+
48
50
  var id = _ref.id,
49
51
  index = _ref.index,
50
52
  listData = _ref.listData,
@@ -56,6 +58,7 @@ var DraggableElement = function DraggableElement(_ref) {
56
58
  onArrowKeyDown = _ref.onArrowKeyDown,
57
59
  isFocused = _ref.isFocused,
58
60
  moveElement = _ref.moveElement,
61
+ selected = _ref.selected,
59
62
  _ref$positionLabel = _ref.positionLabel,
60
63
  positionLabel = _ref$positionLabel === void 0 ? 'Current position {index} of {total}' : _ref$positionLabel,
61
64
  _ref$grabbedLabel = _ref.grabbedLabel,
@@ -142,7 +145,7 @@ var DraggableElement = function DraggableElement(_ref) {
142
145
  }, "".concat(blockClass, "__draggable-handleStyle"))
143
146
  }, /*#__PURE__*/React.createElement(_iconsReact.Draggable16, null)), children);
144
147
  return /*#__PURE__*/React.createElement("li", {
145
- className: (0, _classnames.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "__draggable-handleHolder-isOver"), isOver && !disabled), (0, _defineProperty2.default)({}, "".concat(blockClass, "__wkc-draggable-handleHolder--grabbed"), isGrabbed), "".concat(blockClass, "__draggable-handleHolder")),
148
+ className: (0, _classnames.default)((_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__draggable-handleHolder-isOver"), isOver && !disabled), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__draggable-handleHolder-grabbed"), isGrabbed), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__draggable-handleHolder-selected"), selected), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__draggable-handleHolder"), !selected), _cx)),
146
149
  ref: ref,
147
150
  "aria-selected": isFocused,
148
151
  role: "option",
@@ -196,6 +199,7 @@ DraggableElement.propTypes = {
196
199
  onArrowKeyDown: _propTypes.default.func.isRequired,
197
200
  onGrab: _propTypes.default.func.isRequired,
198
201
  positionLabel: _propTypes.default.string,
202
+ selected: _propTypes.default.bool,
199
203
  type: _propTypes.default.string.isRequired
200
204
  };
201
205
  var _default = DraggableElement;
@@ -9,45 +9,35 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.default = void 0;
11
11
 
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var _iconsReact = require("@carbon/icons-react");
15
-
16
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
13
 
18
14
  var _carbonComponentsReact = require("carbon-components-react");
19
15
 
20
16
  var React = _interopRequireWildcard(require("react"));
21
17
 
22
- var _keyBy = _interopRequireDefault(require("lodash/keyBy"));
23
-
24
18
  var _settings = require("../../../../../settings");
25
19
 
26
- var _common = require("./common");
27
-
28
20
  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); }
29
21
 
30
22
  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; }
31
23
 
32
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
33
-
34
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
24
+ // @flow
35
25
 
26
+ /*
27
+ * Licensed Materials - Property of IBM
28
+ * 5724-Q36
29
+ * (c) Copyright IBM Corp. 2021
30
+ * US Government Users Restricted Rights - Use, duplication or disclosure
31
+ * restricted by GSA ADP Schedule Contract with IBM Corp.
32
+ */
36
33
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
37
34
 
38
35
  var Actions = function Actions(_ref) {
39
36
  var searchText = _ref.searchText,
40
- columns = _ref.columns,
41
- originalColumnDefinitions = _ref.originalColumnDefinitions,
42
- setColumnsObject = _ref.setColumnsObject,
43
37
  setSearchText = _ref.setSearchText,
44
- _ref$findColumnPlaceh = _ref.findColumnPlaceholderLabel,
45
- findColumnPlaceholderLabel = _ref$findColumnPlaceh === void 0 ? 'Find column' : _ref$findColumnPlaceh,
46
- _ref$resetToDefaultLa = _ref.resetToDefaultLabel,
47
- resetToDefaultLabel = _ref$resetToDefaultLa === void 0 ? 'Reset to default' : _ref$resetToDefaultLa;
38
+ findColumnPlaceholderLabel = _ref.findColumnPlaceholderLabel;
48
39
  return /*#__PURE__*/React.createElement("div", {
49
- className: "".concat(blockClass, "__customize-columns-modal--actions"),
50
- "test-id": "".concat(blockClass, "__customize-columns-modal--actions")
40
+ className: "".concat(blockClass, "__customize-columns-modal--actions")
51
41
  }, /*#__PURE__*/React.createElement(_carbonComponentsReact.Search, {
52
42
  placeholder: findColumnPlaceholderLabel,
53
43
  value: searchText,
@@ -56,27 +46,8 @@ var Actions = function Actions(_ref) {
56
46
  onChange: function onChange(e) {
57
47
  // TODO: is it performant?
58
48
  setSearchText(e.target.value);
59
- },
60
- "test-id": "".concat(blockClass, "__customize-columns-modal--search")
61
- }), /*#__PURE__*/React.createElement(_carbonComponentsReact.Button, {
62
- onClick: function onClick() {
63
- var reset = resetToOriginal(columns, originalColumnDefinitions);
64
- setColumnsObject(reset);
65
- },
66
- size: "sm",
67
- kind: "ghost",
68
- renderIcon: _iconsReact.Reset16,
69
- "test-id": "".concat(blockClass, "__customize-columns-modal--reset")
70
- }, resetToDefaultLabel));
71
- };
72
-
73
- var resetToOriginal = function resetToOriginal(columnDefinitions, originalColumnDefinitions) {
74
- var keyedDefs = (0, _keyBy.default)(columnDefinitions, 'id');
75
- return originalColumnDefinitions.map(function (colDef) {
76
- return _objectSpread(_objectSpread({}, keyedDefs[colDef.id]), {}, {
77
- isVisible: (0, _common.isColumnVisible)(colDef)
78
- });
79
- });
49
+ }
50
+ }));
80
51
  };
81
52
 
82
53
  Actions.propTypes = {
@@ -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,9 +29,7 @@ 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
34
  // @flow
37
35
 
@@ -59,36 +57,39 @@ var getNextIndex = function getNextIndex(array, currentIndex, key) {
59
57
  };
60
58
 
61
59
  var Columns = function Columns(_ref) {
62
- var filterString = _ref.filterString,
60
+ var _classNames;
61
+
62
+ var getVisibleColumnsCount = _ref.getVisibleColumnsCount,
63
+ filterString = _ref.filterString,
63
64
  columns = _ref.columns,
64
65
  setColumnsObject = _ref.setColumnsObject,
65
66
  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;
67
+ assistiveTextInstructionsLabel = _ref.assistiveTextInstructionsLabel,
68
+ assistiveTextDisabledInstructionsLabel = _ref.assistiveTextDisabledInstructionsLabel,
69
+ selectAllLabel = _ref.selectAllLabel;
70
70
 
71
- var _React$useState = React.useState(''),
71
+ var _React$useState = _react.default.useState(''),
72
72
  _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
73
73
  ariaRegionText = _React$useState2[0],
74
74
  setAriaRegionText = _React$useState2[1];
75
75
 
76
- var _React$useState3 = React.useState(-1),
76
+ var _React$useState3 = _react.default.useState(-1),
77
77
  _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
78
78
  focusIndex = _React$useState4[0],
79
79
  setFocusIndex = _React$useState4[1];
80
80
 
81
- var moveElement = React.useCallback(function (dragIndex, hoverIndex) {
81
+ var moveElement = _react.default.useCallback(function (dragIndex, hoverIndex) {
82
82
  var dragCard = columns[dragIndex];
83
83
  setColumnsObject((0, _immutabilityHelper.default)(columns, {
84
84
  $splice: [[dragIndex, 1], [hoverIndex, 0, dragCard]]
85
85
  }));
86
86
  }, [columns, setColumnsObject]);
87
- return /*#__PURE__*/React.createElement("div", {
87
+
88
+ return /*#__PURE__*/_react.default.createElement("div", {
88
89
  className: "".concat(blockClass, "__customize-columns-column-list")
89
- }, /*#__PURE__*/React.createElement(_reactDnd.DndProvider, {
90
+ }, /*#__PURE__*/_react.default.createElement(_reactDnd.DndProvider, {
90
91
  backend: _reactDndHtml5Backend.HTML5Backend
91
- }, /*#__PURE__*/React.createElement("ol", {
92
+ }, /*#__PURE__*/_react.default.createElement("ol", {
92
93
  className: "".concat(blockClass, "__customize-columns-column-list--focus"),
93
94
  role: "listbox",
94
95
  "aria-describedby": "".concat(blockClass, "__customize-columns--instructions"),
@@ -107,16 +108,30 @@ var Columns = function Columns(_ref) {
107
108
  setFocusIndex(0);
108
109
  }
109
110
  }
110
- }, /*#__PURE__*/React.createElement("span", {
111
+ }, /*#__PURE__*/_react.default.createElement("span", {
111
112
  "aria-live": "assertive",
112
113
  className: "".concat(blockClass, "__shared-ui--assistive-text")
113
- }, ariaRegionText), /*#__PURE__*/React.createElement("span", {
114
+ }, ariaRegionText), /*#__PURE__*/_react.default.createElement("span", {
114
115
  id: "".concat(blockClass, "__customize-columns--instructions"),
115
116
  className: "".concat(blockClass, "__shared-ui--assistive-text")
116
- }, filterString.length === 0 ? instructionsLabel : disabledInstructionsLabel), columns.filter(function (colDef) {
117
+ }, filterString.length === 0 ? assistiveTextInstructionsLabel : assistiveTextDisabledInstructionsLabel), /*#__PURE__*/_react.default.createElement("div", {
118
+ id: "".concat(blockClass, "__customize-columns-select-all"),
119
+ className: (0, _classnames.default)((_classNames = {}, (0, _defineProperty2.default)(_classNames, "".concat(blockClass, "__customize-columns-select-all"), getVisibleColumnsCount() === 0), (0, _defineProperty2.default)(_classNames, "".concat(blockClass, "__customize-columns-select-all-selected"), getVisibleColumnsCount() > 0), _classNames)),
120
+ selected: getVisibleColumnsCount() > 0
121
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Checkbox, {
122
+ wrapperClassName: "".concat(blockClass, "__customize-columns-checkbox-wrapper"),
123
+ checked: getVisibleColumnsCount() === columns.length,
124
+ empty: !!getVisibleColumnsCount() === 0,
125
+ indeterminate: getVisibleColumnsCount() < columns.length && getVisibleColumnsCount() > 0,
126
+ onChange: function onChange() {
127
+ onSelectColumn(columns, getVisibleColumnsCount() !== columns.length);
128
+ },
129
+ id: "".concat(blockClass, "__customization-column-select-all"),
130
+ labelText: selectAllLabel
131
+ })), columns.filter(function (colDef) {
117
132
  return filterString.length === 0 || colDef.Header.props.title.toLowerCase().includes(filterString);
118
133
  }).map(function (colDef, i) {
119
- return /*#__PURE__*/React.createElement(_DraggableElement.default, {
134
+ return /*#__PURE__*/_react.default.createElement(_DraggableElement.default, {
120
135
  key: colDef.id,
121
136
  index: i,
122
137
  listData: columns,
@@ -142,24 +157,31 @@ var Columns = function Columns(_ref) {
142
157
  });
143
158
  }
144
159
  }
145
- }
146
- }, /*#__PURE__*/React.createElement(_carbonComponentsReact.Checkbox, {
147
- wrapperClassName: "".concat(blockClass, "__customize-columns-checkbox"),
160
+ },
161
+ selected: (0, _common.isColumnVisible)(colDef)
162
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Checkbox, {
163
+ wrapperClassName: "".concat(blockClass, "__customize-columns-checkbox-wrapper"),
148
164
  checked: (0, _common.isColumnVisible)(colDef),
149
165
  onChange: onSelectColumn.bind(null, colDef),
150
166
  id: "".concat(blockClass, "__customization-column-").concat(colDef.id),
151
167
  labelText: colDef.Header.props.title,
152
- title: colDef.Header.props.title
168
+ title: colDef.Header.props.title,
169
+ className: "".concat(blockClass, "__customize-columns-checkbox")
153
170
  }));
154
171
  }))));
155
172
  };
156
173
 
157
174
  Columns.propTypes = {
175
+ assistiveTextDisabledInstructionsLabel: _propTypes.default.string,
176
+ assistiveTextInstructionsLabel: _propTypes.default.string,
158
177
  columns: _propTypes.default.array.isRequired,
159
178
  disabledInstructionsLabel: _propTypes.default.string,
160
179
  filterString: _propTypes.default.string.isRequired,
180
+ getVisibleColumnsCount: _propTypes.default.func.isRequired,
161
181
  instructionsLabel: _propTypes.default.string,
162
182
  onSelectColumn: _propTypes.default.func.isRequired,
183
+ selectAllLabel: _propTypes.default.string,
184
+ setColumnStatus: _propTypes.default.func,
163
185
  setColumnsObject: _propTypes.default.func.isRequired
164
186
  };
165
187
  var _default = Columns;