@carbon/ibm-products 2.11.3 → 2.12.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. package/css/index-full-carbon.css +43 -12
  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 +36 -7
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +2 -2
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +43 -12
  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 +43 -12
  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/Card/Card.js +9 -1
  18. package/es/components/Card/CardFooter.js +8 -2
  19. package/es/components/Card/CardHeader.js +8 -2
  20. package/es/components/CreateFullPage/CreateFullPage.docs-page.js +6 -0
  21. package/es/components/CreateFullPage/CreateFullPage.js +66 -8
  22. package/es/components/Datagrid/Datagrid/Datagrid.js +2 -1
  23. package/es/components/Datagrid/Datagrid/DatagridContent.js +7 -1
  24. package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +1 -3
  25. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +3 -5
  26. package/es/components/Datagrid/Datagrid/DatagridRefBody.js +1 -3
  27. package/es/components/Datagrid/Datagrid/DatagridRow.js +2 -6
  28. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +13 -1
  29. package/es/components/Datagrid/Datagrid/DatagridSimpleBody.js +1 -3
  30. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +1 -3
  31. package/es/components/Datagrid/Datagrid/DraggableElement.js +1 -0
  32. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +37 -15
  33. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +18 -17
  34. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +104 -18
  35. package/es/components/Datagrid/Datagrid/addons/Filtering/OverflowCheckboxes.js +68 -0
  36. package/es/components/Datagrid/Datagrid/addons/Filtering/constants.js +1 -0
  37. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +120 -54
  38. package/es/components/Datagrid/Datagrid/addons/Filtering/utils.js +9 -3
  39. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +6 -12
  40. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +0 -5
  41. package/es/components/Datagrid/Datagrid.docs-page.js +1 -1
  42. package/es/components/Datagrid/useActionsColumn.js +0 -2
  43. package/es/components/Datagrid/useDisableSelectRows.js +1 -1
  44. package/es/components/Datagrid/useFiltering.js +4 -1
  45. package/es/components/Datagrid/useInlineEdit.js +1 -6
  46. package/es/components/Datagrid/useSelectRows.js +1 -1
  47. package/es/components/Datagrid/useSortableColumns.js +14 -25
  48. package/es/components/Datagrid/utils/DatagridActions.js +2 -3
  49. package/es/components/SimpleHeader/SimpleHeader.docs-page.js +17 -0
  50. package/es/components/SimpleHeader/SimpleHeader.js +92 -0
  51. package/es/components/SimpleHeader/index.js +8 -0
  52. package/es/components/StatusIcon/StatusIcon.js +13 -13
  53. package/es/global/js/hooks/useCreateComponentStepChange.js +14 -20
  54. package/es/global/js/utils/StoryDocsPage.js +3 -3
  55. package/es/global/js/utils/getNodeTextContent.js +4 -0
  56. package/lib/components/Card/Card.js +9 -1
  57. package/lib/components/Card/CardFooter.js +8 -2
  58. package/lib/components/Card/CardHeader.js +8 -2
  59. package/lib/components/CreateFullPage/CreateFullPage.docs-page.js +6 -0
  60. package/lib/components/CreateFullPage/CreateFullPage.js +65 -7
  61. package/lib/components/Datagrid/Datagrid/Datagrid.js +2 -1
  62. package/lib/components/Datagrid/Datagrid/DatagridContent.js +6 -0
  63. package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +1 -3
  64. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +3 -5
  65. package/lib/components/Datagrid/Datagrid/DatagridRefBody.js +1 -3
  66. package/lib/components/Datagrid/Datagrid/DatagridRow.js +2 -6
  67. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +13 -1
  68. package/lib/components/Datagrid/Datagrid/DatagridSimpleBody.js +1 -3
  69. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +1 -3
  70. package/lib/components/Datagrid/Datagrid/DraggableElement.js +1 -0
  71. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +37 -15
  72. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +40 -38
  73. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +109 -24
  74. package/lib/components/Datagrid/Datagrid/addons/Filtering/OverflowCheckboxes.js +79 -0
  75. package/lib/components/Datagrid/Datagrid/addons/Filtering/constants.js +4 -2
  76. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +136 -70
  77. package/lib/components/Datagrid/Datagrid/addons/Filtering/utils.js +10 -4
  78. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +6 -12
  79. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +0 -5
  80. package/lib/components/Datagrid/Datagrid.docs-page.js +1 -1
  81. package/lib/components/Datagrid/useActionsColumn.js +0 -2
  82. package/lib/components/Datagrid/useDisableSelectRows.js +1 -1
  83. package/lib/components/Datagrid/useFiltering.js +4 -1
  84. package/lib/components/Datagrid/useInlineEdit.js +1 -6
  85. package/lib/components/Datagrid/useSelectRows.js +1 -1
  86. package/lib/components/Datagrid/useSortableColumns.js +14 -25
  87. package/lib/components/Datagrid/utils/DatagridActions.js +2 -3
  88. package/lib/components/SimpleHeader/SimpleHeader.docs-page.js +28 -0
  89. package/lib/components/SimpleHeader/SimpleHeader.js +102 -0
  90. package/lib/components/SimpleHeader/index.js +12 -0
  91. package/lib/components/StatusIcon/StatusIcon.js +12 -12
  92. package/lib/global/js/hooks/useCreateComponentStepChange.js +14 -20
  93. package/lib/global/js/utils/StoryDocsPage.js +3 -3
  94. package/lib/global/js/utils/getNodeTextContent.js +4 -0
  95. package/package.json +2 -2
  96. package/scss/components/Card/_card.scss +1 -1
  97. package/scss/components/CreateFullPage/_create-full-page.scss +11 -2
  98. package/scss/components/Datagrid/styles/_useInlineEdit.scss +8 -11
  99. package/scss/components/Datagrid/styles/addons/_FilterPanel.scss +4 -0
  100. package/scss/components/ProductiveCard/_productive-card.scss +0 -1
  101. package/scss/components/SimpleHeader/_carbon-imports.scss +11 -0
  102. package/scss/components/SimpleHeader/_index-with-carbon.scss +9 -0
  103. package/scss/components/SimpleHeader/_index.scss +10 -0
  104. package/scss/components/SimpleHeader/_simple-header.scss +37 -0
  105. package/scss/components/StatusIcon/_status-icon.scss +0 -1
  106. package/scss/components/_index-with-carbon.scss +1 -0
  107. package/es/components/Datagrid/utils/getColTitle.js +0 -25
  108. package/lib/components/Datagrid/utils/getColTitle.js +0 -32
@@ -20,7 +20,8 @@ var _ActionSet = require("../ActionSet");
20
20
  var _hooks = require("../../global/js/hooks");
21
21
  var _lastIndexInArray = require("../../global/js/utils/lastIndexInArray");
22
22
  var _getNumberOfHiddenSteps = require("../../global/js/utils/getNumberOfHiddenSteps");
23
- var _excluded = ["backButtonText", "cancelButtonText", "children", "className", "initialStep", "modalDangerButtonText", "modalDescription", "modalSecondaryButtonText", "modalTitle", "nextButtonText", "onClose", "onRequestSubmit", "firstFocusElement", "submitButtonText", "title"];
23
+ var _SimpleHeader = require("../SimpleHeader/SimpleHeader");
24
+ var _excluded = ["breadcrumbsOverflowAriaLabel", "breadcrumbs", "backButtonText", "cancelButtonText", "children", "className", "initialStep", "maxVisibleBreadcrumbs", "modalDangerButtonText", "modalDescription", "modalSecondaryButtonText", "modalTitle", "nextButtonText", "onClose", "onRequestSubmit", "firstFocusElement", "submitButtonText", "noTrailingSlash", "title", "secondaryTitle"];
24
25
  /**
25
26
  * Copyright IBM Corp. 2021, 2023
26
27
  *
@@ -59,11 +60,14 @@ component to get the desired affect.
59
60
  */
60
61
  exports.StepNumberContext = StepNumberContext;
61
62
  var CreateFullPage = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
62
- var backButtonText = _ref.backButtonText,
63
+ var breadcrumbsOverflowAriaLabel = _ref.breadcrumbsOverflowAriaLabel,
64
+ breadcrumbs = _ref.breadcrumbs,
65
+ backButtonText = _ref.backButtonText,
63
66
  cancelButtonText = _ref.cancelButtonText,
64
67
  children = _ref.children,
65
68
  className = _ref.className,
66
69
  initialStep = _ref.initialStep,
70
+ maxVisibleBreadcrumbs = _ref.maxVisibleBreadcrumbs,
67
71
  modalDangerButtonText = _ref.modalDangerButtonText,
68
72
  modalDescription = _ref.modalDescription,
69
73
  modalSecondaryButtonText = _ref.modalSecondaryButtonText,
@@ -73,7 +77,9 @@ var CreateFullPage = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
73
77
  onRequestSubmit = _ref.onRequestSubmit,
74
78
  firstFocusElement = _ref.firstFocusElement,
75
79
  submitButtonText = _ref.submitButtonText,
80
+ noTrailingSlash = _ref.noTrailingSlash,
76
81
  title = _ref.title,
82
+ secondaryTitle = _ref.secondaryTitle,
77
83
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
78
84
  var _useState = (0, _react.useState)([]),
79
85
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -123,6 +129,11 @@ var CreateFullPage = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
123
129
  _useState22 = (0, _slicedToArray2.default)(_useState21, 2),
124
130
  lastIncludedStep = _useState22[0],
125
131
  setLastIncludedStep = _useState22[1];
132
+ var _useState23 = (0, _react.useState)(0),
133
+ _useState24 = (0, _slicedToArray2.default)(_useState23, 2),
134
+ headerHeight = _useState24[0],
135
+ setHeaderHeight = _useState24[1];
136
+ var headerRef = (0, _react.useRef)(null);
126
137
  (0, _react.useEffect)(function () {
127
138
  var firstItem = stepData.findIndex(function (item) {
128
139
  return item === null || item === void 0 ? void 0 : item.shouldIncludeStep;
@@ -139,6 +150,13 @@ var CreateFullPage = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
139
150
  setCurrentStep(Number(initialStep + numberOfHiddenSteps));
140
151
  }
141
152
  }, [stepData, firstIncludedStep, lastIncludedStep, initialStep]);
153
+ (0, _react.useEffect)(function () {
154
+ var headerHeight = 0;
155
+ if (title || (breadcrumbs === null || breadcrumbs === void 0 ? void 0 : breadcrumbs.length) > 0) {
156
+ headerHeight = headerRef.current.getBoundingClientRect().height;
157
+ }
158
+ setHeaderHeight(headerHeight);
159
+ }, [title, breadcrumbs]);
142
160
  (0, _hooks.useCreateComponentFocus)({
143
161
  previousState: previousState,
144
162
  currentStep: currentStep,
@@ -180,18 +198,31 @@ var CreateFullPage = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
180
198
  setCreateComponentActions: setCreateFullPageActions,
181
199
  setModalIsOpen: setModalIsOpen
182
200
  });
183
-
184
201
  // currently, we are not supporting the use of 'view all' toggle state
185
202
  /* istanbul ignore next */
186
203
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
187
204
  ref: ref,
188
205
  className: (0, _classnames.default)(blockClass, className)
189
- }, (0, _devtools.getDevtoolsProps)(componentName)), /*#__PURE__*/_react.default.createElement("div", {
206
+ }, (0, _devtools.getDevtoolsProps)(componentName)), (title || (breadcrumbs === null || breadcrumbs === void 0 ? void 0 : breadcrumbs.length) > 0) && /*#__PURE__*/_react.default.createElement("div", {
207
+ className: "".concat(blockClass, "__header"),
208
+ ref: headerRef
209
+ }, /*#__PURE__*/_react.default.createElement(_SimpleHeader.SimpleHeader, {
210
+ title: title,
211
+ breadcrumbs: breadcrumbs,
212
+ noTrailingSlash: noTrailingSlash,
213
+ overflowAriaLabel: breadcrumbsOverflowAriaLabel,
214
+ maxVisible: maxVisibleBreadcrumbs
215
+ })), /*#__PURE__*/_react.default.createElement("div", {
216
+ className: "".concat(blockClass, "__influencer-and-body-container"),
217
+ style: {
218
+ height: "calc(100vh - ".concat(headerHeight, "px)")
219
+ }
220
+ }, /*#__PURE__*/_react.default.createElement("div", {
190
221
  className: "".concat(blockClass, "__influencer")
191
222
  }, /*#__PURE__*/_react.default.createElement(_CreateInfluencer.CreateInfluencer, {
192
223
  stepData: stepData,
193
224
  currentStep: currentStep,
194
- title: title
225
+ title: secondaryTitle
195
226
  })), /*#__PURE__*/_react.default.createElement("div", {
196
227
  className: "".concat(blockClass, "__body")
197
228
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -248,7 +279,7 @@ var CreateFullPage = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
248
279
  type: "button",
249
280
  kind: "danger",
250
281
  onClick: onClose
251
- }, modalDangerButtonText))));
282
+ }, modalDangerButtonText)))));
252
283
  });
253
284
 
254
285
  // Return a placeholder if not released and not enabled by feature flag.
@@ -267,6 +298,23 @@ CreateFullPage.propTypes = {
267
298
  * The back button text
268
299
  */
269
300
  backButtonText: _propTypes.default.string.isRequired,
301
+ /** The header breadcrumbs */
302
+ breadcrumbs: _propTypes.default.arrayOf(_propTypes.default.shape({
303
+ /** breadcrumb item key */
304
+ key: _propTypes.default.string.isRequired,
305
+ /** breadcrumb item label */
306
+ label: _propTypes.default.string.isRequired,
307
+ /** breadcrumb item link */
308
+ href: _propTypes.default.string,
309
+ /** breadcrumb item title tooltip */
310
+ title: _propTypes.default.string,
311
+ /** Provide if this breadcrumb item represents the current page */
312
+ isCurrentPage: _propTypes.default.bool
313
+ })),
314
+ /**
315
+ * Label for open/close overflow button used for breadcrumb items that do not fit
316
+ */
317
+ breadcrumbsOverflowAriaLabel: _SimpleHeader.overflowAriaLabel_required_if_breadcrumbs_exist,
270
318
  /**
271
319
  * The cancel button text
272
320
  */
@@ -289,6 +337,8 @@ CreateFullPage.propTypes = {
289
337
  * is now being completed.
290
338
  */
291
339
  initialStep: _propTypes.default.number,
340
+ /** Maximum visible breadcrumb-items before overflow is used (values less than 1 are treated as 1) */
341
+ maxVisibleBreadcrumbs: _propTypes.default.number,
292
342
  /**
293
343
  * The primary 'danger' button text in the modal
294
344
  */
@@ -309,6 +359,10 @@ CreateFullPage.propTypes = {
309
359
  * The next button text
310
360
  */
311
361
  nextButtonText: _propTypes.default.string.isRequired,
362
+ /**
363
+ * A prop to omit the trailing slash for the breadcrumbs
364
+ */
365
+ noTrailingSlash: _propTypes.default.bool,
312
366
  /**
313
367
  * An optional handler that is called when the user closes the full page (by
314
368
  * clicking the secondary button, located in the modal, which triggers after
@@ -320,6 +374,10 @@ CreateFullPage.propTypes = {
320
374
  * This function can _optionally_ return a promise that is either resolved or rejected and the CreateFullPage will handle the submitting state of the create button.
321
375
  */
322
376
  onRequestSubmit: _propTypes.default.func.isRequired,
377
+ /**
378
+ * A secondary title of the full page, displayed in the influencer area
379
+ */
380
+ secondaryTitle: _propTypes.default.string,
323
381
  /**
324
382
  * @ignore
325
383
  * The aria label to be used for the UI Shell SideNav Carbon component
@@ -330,7 +388,7 @@ CreateFullPage.propTypes = {
330
388
  */
331
389
  submitButtonText: _propTypes.default.string.isRequired,
332
390
  /**
333
- * The main title of the full page, displayed in the influencer area.
391
+ * The main title of the full page, displayed in the header area
334
392
  */
335
393
  title: _propTypes.default.string
336
394
  };
@@ -50,7 +50,8 @@ var Datagrid = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
50
50
  datagridState: datagridState
51
51
  };
52
52
  return /*#__PURE__*/_react.default.createElement(_FilterProvider.FilterProvider, {
53
- filters: filters
53
+ filters: filters,
54
+ filterProps: filterProps
54
55
  }, /*#__PURE__*/_react.default.createElement(_InlineEditContext.InlineEditProvider, null, /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
55
56
  id: tableId,
56
57
  ref: ref,
@@ -25,6 +25,8 @@ var _handleGridKeyPress = require("./addons/InlineEdit/handleGridKeyPress");
25
25
  var _layout = require("@carbon/layout");
26
26
  var _hooks = require("../../../global/js/hooks");
27
27
  var _hooks2 = require("../../DataSpreadsheet/hooks");
28
+ var _hooks3 = require("./addons/Filtering/hooks");
29
+ var _FilterProvider = require("./addons/Filtering/FilterProvider");
28
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); }
29
31
  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; }
30
32
  /**
@@ -69,6 +71,7 @@ var DatagridContent = function DatagridContent(_ref) {
69
71
  DatagridActions = datagridState.DatagridActions,
70
72
  totalColumnsWidth = datagridState.totalColumnsWidth,
71
73
  gridRef = datagridState.gridRef,
74
+ setAllFilters = datagridState.setAllFilters,
72
75
  state = datagridState.state,
73
76
  page = datagridState.page,
74
77
  rows = datagridState.rows;
@@ -134,6 +137,9 @@ var DatagridContent = function DatagridContent(_ref) {
134
137
  gridElement.style.setProperty("--".concat(blockClass, "--grid-header-height"), (0, _layout.px)((tableHeader === null || tableHeader === void 0 ? void 0 : tableHeader.clientHeight) || 0));
135
138
  }
136
139
  }, [withInlineEdit, tableId, totalColumnsWidth, datagridState, gridActive]);
140
+ (0, _hooks3.useSubscribeToEventEmitter)(_constants.CLEAR_SINGLE_FILTER, function (id) {
141
+ return (0, _FilterProvider.clearSingleFilter)(id, setAllFilters, state);
142
+ });
137
143
  var renderFilterSummary = function renderFilterSummary() {
138
144
  return state.filters.length > 0 && /*#__PURE__*/_react.default.createElement(_FilterSummary.FilterSummary, {
139
145
  className: "".concat(blockClass, "__filter-summary"),
@@ -38,9 +38,7 @@ var DatagridEmptyBody = function DatagridEmptyBody(datagridState) {
38
38
  link: emptyStateLink
39
39
  };
40
40
  var validEmptyStates = ['error', 'noData', 'notFound'];
41
- return /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps({
42
- role: false
43
- }), {
41
+ return /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps(), {
44
42
  className: "".concat(blockClass, "__empty-state-body")
45
43
  }), /*#__PURE__*/_react.default.createElement(_react2.TableRow, null, /*#__PURE__*/_react.default.createElement(_react2.TableCell, {
46
44
  colSpan: headers.length,
@@ -15,8 +15,8 @@ var _react2 = require("@carbon/react");
15
15
  var _layout = require("@carbon/layout");
16
16
  var _commonColumnIds = require("../common-column-ids");
17
17
  var _settings = require("../../../settings");
18
- var _getColTitle = _interopRequireDefault(require("../utils/getColTitle"));
19
18
  var _stateReducer = require("./addons/stateReducer");
19
+ var _getNodeTextContent = require("../../../global/js/utils/getNodeTextContent");
20
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); }
21
21
  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; }
22
22
  /**
@@ -31,7 +31,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
31
31
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
32
32
  var getAccessibilityProps = function getAccessibilityProps(header) {
33
33
  var props = {};
34
- var title = (0, _getColTitle.default)(header);
34
+ var title = (0, _getNodeTextContent.getNodeTextContent)(header.Header);
35
35
  if (title) {
36
36
  props.title = title;
37
37
  } else {
@@ -101,9 +101,7 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
101
101
  };
102
102
  // eslint-disable-next-line react-hooks/exhaustive-deps
103
103
  }, [datagridState.state.isResizing]);
104
- return /*#__PURE__*/_react.default.createElement(_react2.TableRow, (0, _extends2.default)({}, headerGroup.getHeaderGroupProps({
105
- role: false
106
- }), {
104
+ return /*#__PURE__*/_react.default.createElement(_react2.TableRow, (0, _extends2.default)({}, headerGroup.getHeaderGroupProps(), {
107
105
  className: (0, _classnames.default)("".concat(blockClass, "__head"), headerGroup.getHeaderGroupProps().className),
108
106
  ref: headRef
109
107
  }), datagridState.headers.filter(function (_ref2) {
@@ -28,9 +28,7 @@ var DatagridRefBody = function DatagridRefBody(datagridState) {
28
28
  var getTableBodyProps = datagridState.getTableBodyProps,
29
29
  rows = datagridState.rows,
30
30
  prepareRow = datagridState.prepareRow;
31
- return /*#__PURE__*/_react.default.createElement("tbody", (0, _extends2.default)({}, getTableBodyProps({
32
- role: false
33
- }), {
31
+ return /*#__PURE__*/_react.default.createElement("tbody", (0, _extends2.default)({}, getTableBodyProps(), {
34
32
  className: (0, _classnames.default)("".concat(blockClass, "__simple-body"), getTableBodyProps().className)
35
33
  }), rows.map(function (row) {
36
34
  prepareRow(row);
@@ -97,9 +97,7 @@ var DatagridRow = function DatagridRow(datagridState) {
97
97
  var rowClassNames = (0, _classnames.default)("".concat(blockClass, "__carbon-row"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expandable"), row.canExpand), (0, _defineProperty2.default)(_cx, "".concat(_settings.carbon.prefix, "--data-table--selected"), row.isSelected), _cx));
98
98
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_react2.TableRow, (0, _extends2.default)({
99
99
  className: rowClassNames
100
- }, row.getRowProps({
101
- role: false
102
- }), {
100
+ }, row.getRowProps(), {
103
101
  key: row.id,
104
102
  onMouseEnter: hoverHandler,
105
103
  onMouseLeave: handleMouseLeave,
@@ -108,9 +106,7 @@ var DatagridRow = function DatagridRow(datagridState) {
108
106
  onKeyUp: handleOnKeyUp
109
107
  }), row.cells.map(function (cell, index) {
110
108
  var _cell$column;
111
- var cellProps = cell.getCellProps({
112
- role: false
113
- });
109
+ var cellProps = cell.getCellProps();
114
110
  var children = cellProps.children,
115
111
  restProps = (0, _objectWithoutProperties2.default)(cellProps, _excluded);
116
112
  var content = children || /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !row.isSkeleton && cell.render('Cell'), row.isSkeleton && /*#__PURE__*/_react.default.createElement(_react2.SkeletonText, null));
@@ -60,11 +60,23 @@ var SelectAll = function SelectAll(datagridState) {
60
60
  var _getProps = getProps(),
61
61
  onChange = _getProps.onChange,
62
62
  selectProps = (0, _objectWithoutProperties2.default)(_getProps, _excluded);
63
+ var _ref = selectProps || {},
64
+ indeterminate = _ref.indeterminate;
65
+ var handleSelectAllChange = function handleSelectAllChange(event) {
66
+ if (indeterminate) {
67
+ return onChange === null || onChange === void 0 ? void 0 : onChange({
68
+ target: {
69
+ checked: false
70
+ }
71
+ });
72
+ }
73
+ return onChange === null || onChange === void 0 ? void 0 : onChange(event);
74
+ };
63
75
  return /*#__PURE__*/_react.default.createElement("div", {
64
76
  className: (0, _classnames.default)("".concat(blockClass, "__head-select-all"), "".concat(blockClass, "__checkbox-cell"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__checkbox-cell-sticky-left"), isFirstColumnStickyLeft && windowSize > 671))
65
77
  }, /*#__PURE__*/_react.default.createElement(_react2.TableSelectAll, (0, _extends2.default)({}, selectProps, {
66
78
  name: "".concat(tableId, "-select-all-checkbox-name"),
67
- onSelect: onChange,
79
+ onSelect: handleSelectAllChange,
68
80
  disabled: isFetching || selectProps.disabled,
69
81
  id: "".concat(tableId, "-select-all-checkbox-id")
70
82
  })));
@@ -24,9 +24,7 @@ var DatagridSimpleBody = function DatagridSimpleBody(datagridState) {
24
24
  var getTableBodyProps = datagridState.getTableBodyProps,
25
25
  rows = datagridState.rows,
26
26
  prepareRow = datagridState.prepareRow;
27
- return /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps({
28
- role: false
29
- }), {
27
+ return /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps(), {
30
28
  className: (0, _classnames.default)("".concat(blockClass, "__simple-body"), getTableBodyProps().className)
31
29
  }), rows.map(function (row) {
32
30
  prepareRow(row);
@@ -81,9 +81,7 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
81
81
  width: (_gridRef$current = gridRef.current) === null || _gridRef$current === void 0 ? void 0 : _gridRef$current.clientWidth,
82
82
  overflow: 'hidden'
83
83
  }
84
- }, /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState)), /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps({
85
- role: false
86
- }), {
84
+ }, /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState)), /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps(), {
87
85
  onScroll: function onScroll(e) {
88
86
  return syncScroll(e);
89
87
  }
@@ -34,6 +34,7 @@ var DraggableElement = function DraggableElement(_ref) {
34
34
  isSticky = _ref.isSticky,
35
35
  selected = _ref.selected;
36
36
  var _useSortable = (0, _sortable.useSortable)({
37
+ disabled: disabled,
37
38
  id: id
38
39
  }),
39
40
  attributes = _useSortable.attributes,
@@ -6,15 +6,16 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.DraggableItemsList = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
10
  var _react = _interopRequireDefault(require("react"));
10
11
  var _propTypes = require("prop-types");
11
12
  var _react2 = require("@carbon/react");
12
13
  var _common = require("./common");
13
14
  var _DraggableElement = _interopRequireDefault(require("../../DraggableElement"));
14
15
  var _settings = require("../../../../../settings");
15
- var _getColTitle2 = _interopRequireDefault(require("../../../utils/getColTitle"));
16
16
  var _core = require("@dnd-kit/core");
17
17
  var _sortable = require("@dnd-kit/sortable");
18
+ var _getNodeTextContent = require("../../../../../global/js/utils/getNodeTextContent");
18
19
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
19
20
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /**
20
21
  * Copyright IBM Corp. 2023, 2023
@@ -37,26 +38,47 @@ var DraggableItemsList = function DraggableItemsList(_ref) {
37
38
  var visibleCols = columns
38
39
  // hide the columns without Header, e.g the sticky actions, spacer
39
40
  .filter(function (colDef) {
40
- return !!(0, _getColTitle2.default)(colDef);
41
+ return (0, _getNodeTextContent.getNodeTextContent)(colDef.Header).trim().length !== 0;
41
42
  }).filter(Boolean).filter(function (colDef) {
42
43
  return !colDef.isAction;
43
44
  }).filter(function (colDef) {
44
- var _getColTitle;
45
- return filterString.length === 0 || ((_getColTitle = (0, _getColTitle2.default)(colDef)) === null || _getColTitle === void 0 ? void 0 : _getColTitle.toLowerCase().includes(filterString)) && colDef.id !== 'spacer';
45
+ return colDef.id !== 'spacer';
46
+ }).filter(function (colDef) {
47
+ return filterString.length === 0 || (0, _getNodeTextContent.getNodeTextContent)(colDef.Header).toLowerCase().includes(filterString);
46
48
  });
49
+ var getUpdatedDragCols = function getUpdatedDragCols() {
50
+ var tempCols = (0, _toConsumableArray2.default)(visibleCols);
51
+ tempCols.forEach(function (col) {
52
+ if (col.sticky) {
53
+ col.disabled = true;
54
+ }
55
+ });
56
+ return tempCols;
57
+ };
58
+ var updatedDragCols = getUpdatedDragCols();
47
59
 
48
60
  // let localRefCopy;
49
61
  var handleDragEnd = function handleDragEnd(event) {
62
+ var _destOverCol$;
50
63
  var active = event.active,
51
64
  over = event.over;
65
+
66
+ // Stop any re-ordering updates if the destination column is disabled
67
+ // ie: it is a frozen column.
68
+ var destOverCol = updatedDragCols.filter(function (item) {
69
+ return item.id === over.id;
70
+ });
71
+ if (destOverCol !== null && destOverCol !== void 0 && destOverCol.length && (_destOverCol$ = destOverCol[0]) !== null && _destOverCol$ !== void 0 && _destOverCol$.disabled) {
72
+ return;
73
+ }
52
74
  var fromVisibleIndex = columns.findIndex(function (col) {
53
75
  return matchedColsById(col, active);
54
76
  });
55
77
  var toVisibleIndex = columns.findIndex(function (col) {
56
78
  return matchedColsById(col, over);
57
79
  });
58
- var colTitle = (0, _getColTitle2.default)(visibleCols[fromVisibleIndex]);
59
- setAriaRegionText("".concat(colTitle, " dropped. New position ").concat(toVisibleIndex + 1, " of ").concat(visibleCols.length, "."));
80
+ var colTitle = (0, _getNodeTextContent.getNodeTextContent)(updatedDragCols[fromVisibleIndex].Header);
81
+ setAriaRegionText("".concat(colTitle, " dropped. New position ").concat(toVisibleIndex + 1, " of ").concat(updatedDragCols.length, "."));
60
82
  var fromIndex = columns.findIndex(function (col) {
61
83
  return matchedColsById(col, active);
62
84
  });
@@ -67,23 +89,23 @@ var DraggableItemsList = function DraggableItemsList(_ref) {
67
89
  };
68
90
  var handleDragStart = function handleDragStart(event) {
69
91
  var active = event.active;
70
- var fromIndex = visibleCols.findIndex(function (col) {
92
+ var fromIndex = updatedDragCols.findIndex(function (col) {
71
93
  return matchedColsById(col, active);
72
94
  });
73
- var colTitle = (0, _getColTitle2.default)(visibleCols[fromIndex]);
74
- setAriaRegionText("".concat(colTitle, " grabbed. Current position ").concat(fromIndex + 1, " of ").concat(visibleCols.length, "."));
95
+ var colTitle = (0, _getNodeTextContent.getNodeTextContent)(updatedDragCols[fromIndex].Header);
96
+ setAriaRegionText("".concat(colTitle, " grabbed. Current position ").concat(fromIndex + 1, " of ").concat(updatedDragCols.length, "."));
75
97
  };
76
98
  var handleDragUpdate = function handleDragUpdate(event) {
77
99
  var active = event.active,
78
100
  over = event.over;
79
- var fromIndex = visibleCols.findIndex(function (col) {
101
+ var fromIndex = updatedDragCols.findIndex(function (col) {
80
102
  return matchedColsById(col, active);
81
103
  });
82
- var toIndex = visibleCols.findIndex(function (col) {
104
+ var toIndex = updatedDragCols.findIndex(function (col) {
83
105
  return matchedColsById(col, over);
84
106
  });
85
- var colTitle = (0, _getColTitle2.default)(visibleCols[fromIndex]);
86
- setAriaRegionText("".concat(colTitle, " grabbed. Original position ").concat(fromIndex + 1, ", new position ").concat(toIndex + 1, " of ").concat(visibleCols.length, "."));
107
+ var colTitle = (0, _getNodeTextContent.getNodeTextContent)(updatedDragCols[fromIndex].Header);
108
+ setAriaRegionText("".concat(colTitle, " grabbed. Original position ").concat(fromIndex + 1, ", new position ").concat(toIndex + 1, " of ").concat(updatedDragCols.length, "."));
87
109
  };
88
110
  var pointerSensor = (0, _core.useSensor)(_core.PointerSensor, {
89
111
  // Require the mouse to move by 10 pixels before activating
@@ -142,10 +164,10 @@ var DraggableItemsList = function DraggableItemsList(_ref) {
142
164
  key: colDef.id
143
165
  });
144
166
  })), /*#__PURE__*/_react.default.createElement(_sortable.SortableContext, {
145
- items: visibleCols,
167
+ items: updatedDragCols,
146
168
  strategy: _sortable.verticalListSortingStrategy
147
169
  }, visibleCols.map(function (colDef) {
148
- var colHeaderTitle = (0, _getColTitle2.default)(colDef);
170
+ var colHeaderTitle = (0, _getNodeTextContent.getNodeTextContent)(colDef.Header);
149
171
  var searchString = new RegExp('(' + filterString + ')');
150
172
  var res = filterString.length ? colHeaderTitle.toLowerCase().split(searchString) : null;
151
173
  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;