@carbon/ibm-products 1.16.0 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/css/index-full-carbon.css +32 -7
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +6 -3
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +9 -3
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +4 -1
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +32 -7
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +6 -3
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +32 -7
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +6 -3
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/DataSpreadsheet/DataSpreadsheet.js +1 -0
  18. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +6 -2
  19. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +5 -2
  20. package/es/components/DataSpreadsheet/hooks/useSpreadsheetEdit.js +57 -12
  21. package/es/components/DataSpreadsheet/utils/checkSelectedHeaderCell.js +16 -0
  22. package/es/components/DataSpreadsheet/utils/createCellSelectionArea.js +10 -5
  23. package/es/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +6 -2
  24. package/es/components/Datagrid/Datagrid/Datagrid.js +24 -12
  25. package/es/components/Datagrid/Datagrid/DatagridHead.js +8 -16
  26. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +10 -10
  27. package/es/components/Datagrid/Datagrid/index.js +6 -7
  28. package/es/components/Datagrid/index.js +1 -1
  29. package/es/components/ExportModal/ExportModal.js +10 -5
  30. package/es/components/SidePanel/SidePanel.js +5 -1
  31. package/es/components/WebTerminal/WebTerminal.js +36 -11
  32. package/es/components/WebTerminal/WebTerminalContentWrapper.js +49 -0
  33. package/es/components/WebTerminal/index.js +2 -1
  34. package/es/components/index.js +1 -1
  35. package/es/global/js/package-settings.js +1 -0
  36. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +1 -0
  37. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +7 -2
  38. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +6 -2
  39. package/lib/components/DataSpreadsheet/hooks/useSpreadsheetEdit.js +61 -11
  40. package/lib/components/DataSpreadsheet/utils/checkSelectedHeaderCell.js +26 -0
  41. package/lib/components/DataSpreadsheet/utils/createCellSelectionArea.js +10 -5
  42. package/lib/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +6 -2
  43. package/lib/components/Datagrid/Datagrid/Datagrid.js +25 -8
  44. package/lib/components/Datagrid/Datagrid/DatagridHead.js +8 -16
  45. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +10 -10
  46. package/lib/components/Datagrid/Datagrid/index.js +3 -5
  47. package/lib/components/Datagrid/index.js +2 -2
  48. package/lib/components/ExportModal/ExportModal.js +9 -4
  49. package/lib/components/SidePanel/SidePanel.js +5 -1
  50. package/lib/components/WebTerminal/WebTerminal.js +36 -10
  51. package/lib/components/WebTerminal/WebTerminalContentWrapper.js +58 -0
  52. package/lib/components/WebTerminal/index.js +9 -1
  53. package/lib/components/index.js +6 -0
  54. package/lib/global/js/package-settings.js +1 -0
  55. package/package.json +9 -9
  56. package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +10 -0
  57. package/scss/components/SidePanel/_side-panel.scss +22 -3
  58. package/scss/components/WebTerminal/_storybook-styles.scss +5 -0
  59. package/scss/components/WebTerminal/_web-terminal.scss +14 -4
@@ -39,6 +39,8 @@ var _createCellSelectionArea = require("./utils/createCellSelectionArea");
39
39
 
40
40
  var _checkActiveHeaderCell = require("./utils/checkActiveHeaderCell");
41
41
 
42
+ var _checkSelectedHeaderCell = require("./utils/checkSelectedHeaderCell");
43
+
42
44
  var _handleHeaderCellSelection = require("./utils/handleHeaderCellSelection");
43
45
 
44
46
  var _getSpreadsheetWidth = require("./utils/getSpreadsheetWidth");
@@ -139,6 +141,7 @@ var DataSpreadsheetBody = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, re
139
141
  ref: ref,
140
142
  area: area,
141
143
  blockClass: blockClass,
144
+ columns: columns,
142
145
  defaultColumn: defaultColumn,
143
146
  selectionAreas: selectionAreas,
144
147
  setSelectionAreas: setSelectionAreas,
@@ -149,7 +152,7 @@ var DataSpreadsheetBody = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, re
149
152
  return;
150
153
  });
151
154
  }
152
- }, [selectionAreas, setSelectionAreas, defaultColumn, onSelectionAreaChange, setSelectionAreaData, ref, activeCellCoordinates, setActiveCellInsideSelectionArea]);
155
+ }, [selectionAreas, setSelectionAreas, defaultColumn, onSelectionAreaChange, setSelectionAreaData, ref, activeCellCoordinates, setActiveCellInsideSelectionArea, columns]);
153
156
 
154
157
  var populateSelectionAreaCellData = function populateSelectionAreaCellData(_ref2) {
155
158
  var rowStart = _ref2.rowStart,
@@ -372,6 +375,8 @@ var DataSpreadsheetBody = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, re
372
375
  var row = rows[index];
373
376
 
374
377
  if (rows && rows.length) {
378
+ var _cx;
379
+
375
380
  prepareRow(row);
376
381
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, row.getRowProps({
377
382
  style: style
@@ -389,7 +394,7 @@ var DataSpreadsheetBody = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, re
389
394
  "data-column-index": "header",
390
395
  type: "button",
391
396
  onClick: handleRowHeaderClick(index),
392
- className: (0, _classnames.default)("".concat(blockClass, "__td"), "".concat(blockClass, "__td-th"), "".concat(blockClass, "--interactive-cell-element"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__td-th--active-header"), (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === index || (0, _checkActiveHeaderCell.checkActiveHeaderCell)(index, selectionAreas, 'row'))),
397
+ className: (0, _classnames.default)("".concat(blockClass, "__td"), "".concat(blockClass, "__td-th"), "".concat(blockClass, "--interactive-cell-element"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__td-th--active-header"), (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === index || (0, _checkActiveHeaderCell.checkActiveHeaderCell)(index, selectionAreas, 'row')), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__td-th--selected-header"), (0, _checkSelectedHeaderCell.checkSelectedHeaderCell)(index, selectionAreas, 'row')), _cx)),
393
398
  style: {
394
399
  width: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeaderWidth
395
400
  }
@@ -27,6 +27,8 @@ var _hooks = require("../../global/js/hooks");
27
27
 
28
28
  var _checkActiveHeaderCell = require("./utils/checkActiveHeaderCell");
29
29
 
30
+ var _checkSelectedHeaderCell = require("./utils/checkSelectedHeaderCell");
31
+
30
32
  var _handleHeaderCellSelection = require("./utils/handleHeaderCellSelection");
31
33
 
32
34
  var _selectAllCells = require("./utils/selectAllCells");
@@ -142,6 +144,8 @@ var DataSpreadsheetHeader = /*#__PURE__*/(0, _react.forwardRef)(function (_ref,
142
144
  onClick: handleSelectAllClick,
143
145
  className: (0, _classnames.default)("".concat(blockClass, "__th"), "".concat(blockClass, "--interactive-cell-element"), "".concat(blockClass, "__th--select-all"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__th--active-header"), (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) === 'header' && (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === 'header'))
144
146
  }, "\xA0")), headerGroup.headers.map(function (column, index) {
147
+ var _cx2;
148
+
145
149
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
146
150
  key: "column_".concat(index),
147
151
  role: "columnheader",
@@ -154,9 +158,9 @@ var DataSpreadsheetHeader = /*#__PURE__*/(0, _react.forwardRef)(function (_ref,
154
158
  onClick: handleColumnHeaderClick(index),
155
159
  style: {
156
160
  height: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeight,
157
- width: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.width
161
+ width: (column === null || column === void 0 ? void 0 : column.width) || (defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.width)
158
162
  },
159
- className: (0, _classnames.default)("".concat(blockClass, "__th"), "".concat(blockClass, "--interactive-cell-element"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__th--active-header"), (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) === index || (0, _checkActiveHeaderCell.checkActiveHeaderCell)(index, selectionAreas, 'column'))),
163
+ className: (0, _classnames.default)("".concat(blockClass, "__th"), "".concat(blockClass, "--interactive-cell-element"), (_cx2 = {}, (0, _defineProperty2.default)(_cx2, "".concat(blockClass, "__th--active-header"), (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) === index || (0, _checkActiveHeaderCell.checkActiveHeaderCell)(index, selectionAreas, 'column')), (0, _defineProperty2.default)(_cx2, "".concat(blockClass, "__th--selected-header"), (0, _checkSelectedHeaderCell.checkSelectedHeaderCell)(index, selectionAreas, 'column')), _cx2)),
160
164
  type: "button"
161
165
  }, column.render('Header')));
162
166
  }));
@@ -1,14 +1,22 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.useSpreadsheetEdit = void 0;
7
9
 
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
8
12
  var _react = require("react");
9
13
 
10
14
  var _layout = require("@carbon/layout");
11
15
 
16
+ var _settings = require("../../../settings");
17
+
18
+ var _hooks = require("../../../global/js/hooks");
19
+
12
20
  // /**
13
21
  // * Copyright IBM Corp. 2022, 2022
14
22
  // *
@@ -24,8 +32,27 @@ var useSpreadsheetEdit = function useSpreadsheetEdit(_ref) {
24
32
  cellEditorRulerRef = _ref.cellEditorRulerRef,
25
33
  columns = _ref.columns,
26
34
  defaultColumn = _ref.defaultColumn,
27
- cellEditorValue = _ref.cellEditorValue;
35
+ cellEditorValue = _ref.cellEditorValue,
36
+ _ref$blockClass = _ref.blockClass,
37
+ blockClass = _ref$blockClass === void 0 ? "".concat(_settings.pkg.prefix, "--data-spreadsheet") : _ref$blockClass;
38
+
39
+ var _useState = (0, _react.useState)(null),
40
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
41
+ nextIndex = _useState2[0],
42
+ setNextIndex = _useState2[1];
43
+
44
+ var previousState = (0, _hooks.usePreviousValue)({
45
+ nextIndex: nextIndex
46
+ });
47
+ (0, _react.useEffect)(function () {
48
+ if (!(previousState !== null && previousState !== void 0 && previousState.nextIndex)) {
49
+ setNextIndex(activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column);
50
+ }
51
+ }, [previousState === null || previousState === void 0 ? void 0 : previousState.nextIndex, activeCellCoordinates]);
28
52
  (0, _react.useEffect)(function () {
53
+ var rulerWidth = cellEditorRulerRef.current.offsetWidth;
54
+ var cellEditorCurrentWidth = parseInt(cellEditorRef.current.style.width);
55
+
29
56
  if (isEditing) {
30
57
  var _rows$activeCellCoord, _cellProps$column, _cellEditorRef$curren;
31
58
 
@@ -35,25 +62,47 @@ var useSpreadsheetEdit = function useSpreadsheetEdit(_ref) {
35
62
  cellEditorRef.current.style.left = activeCellLeftPosition;
36
63
  cellEditorRef.current.style.top = activeCellTopPosition;
37
64
  cellEditorRef.current.style.display = 'block';
38
- cellEditorRef.current.style.width = activeCellRef === null || activeCellRef === void 0 ? void 0 : activeCellRef.current.style.width;
39
65
  cellEditorRef.current.style.height = activeCellRef === null || activeCellRef === void 0 ? void 0 : activeCellRef.current.style.height;
40
66
  cellEditorRef.current.style.paddingTop = "".concat((parseInt(activeCellRef === null || activeCellRef === void 0 ? void 0 : activeCellRef.current.style.height) - 16) / 2 - 1, "px"); // calculate paddingTop based on cellHeight which could be variable depending on the cellSize prop
41
67
 
42
68
  cellEditorRef.current.style.textAlign = (cellProps === null || cellProps === void 0 ? void 0 : (_cellProps$column = cellProps.column) === null || _cellProps$column === void 0 ? void 0 : _cellProps$column.placement) === 'right' ? 'right' : 'left';
43
69
  (_cellEditorRef$curren = cellEditorRef.current) === null || _cellEditorRef$curren === void 0 ? void 0 : _cellEditorRef$curren.focus();
44
- var rulerWidth = cellEditorRulerRef.current.offsetWidth;
45
- var cellWidth = activeCellRef.current.offsetWidth;
46
70
 
47
- if (rulerWidth >= cellWidth) {
48
- var widthMultiplier = Math.floor(rulerWidth / cellWidth) + 1;
49
- var startingColumnPosition = activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column;
71
+ if (rulerWidth < cellEditorCurrentWidth) {
72
+ var _columns$nextIndex;
73
+
74
+ var currentColumnWidth = ((_columns$nextIndex = columns[nextIndex]) === null || _columns$nextIndex === void 0 ? void 0 : _columns$nextIndex.width) || (defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.width); // If the contents of the cell editor is deleted past the point of the next column
75
+
76
+ if (rulerWidth < cellEditorCurrentWidth - currentColumnWidth) {
77
+ cellEditorRef.current.style.width = (0, _layout.px)(parseInt(cellEditorRef.current.style.width) - currentColumnWidth);
78
+ setNextIndex(function (prev) {
79
+ if (prev === 0) {
80
+ return prev;
81
+ }
82
+
83
+ return prev - 1;
84
+ });
85
+ } // Decrease cell editor width by increment of current column width
86
+
87
+ }
88
+
89
+ if (rulerWidth >= cellEditorCurrentWidth) {
90
+ var _columns;
91
+
92
+ setNextIndex(function (prev) {
93
+ if (prev === columns.length - 1) {
94
+ return prev;
95
+ }
96
+
97
+ return prev + 1;
98
+ });
99
+ var onLastColumnIndex = nextIndex + 1 === columns.length;
100
+ var nextColumnWidth = onLastColumnIndex ? 0 : ((_columns = columns[nextIndex + 1]) === null || _columns === void 0 ? void 0 : _columns.width) || (defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.width);
50
101
  var startingRowPosition = activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row;
51
- var totalColumns = columns.length;
52
102
  var totalRows = rows.length;
53
- var totalMultiplierPossible = totalColumns - startingColumnPosition;
54
103
  var totalCellEditorMaxHeight = (totalRows - startingRowPosition) * defaultColumn.rowHeight;
55
104
  cellEditorRef.current.style.maxHeight = (0, _layout.px)(totalCellEditorMaxHeight);
56
- cellEditorRef.current.style.width = (0, _layout.px)(cellWidth * (widthMultiplier <= totalMultiplierPossible ? widthMultiplier : totalMultiplierPossible));
105
+ cellEditorRef.current.style.width = (0, _layout.px)(nextColumnWidth + cellEditorCurrentWidth);
57
106
  cellEditorRef.current.style.height = (0, _layout.px)(cellEditorRef.current.scrollHeight); // adds dynamic height to cell editor
58
107
  // Cell editor has reached max height, we need to add the scrolling back.
59
108
  // We also need to subtract 1 to account for the fact that the cell editor
@@ -72,8 +121,9 @@ var useSpreadsheetEdit = function useSpreadsheetEdit(_ref) {
72
121
  cellEditorRef.current.style.display = 'none';
73
122
  cellEditorRef.current.blur();
74
123
  activeCellRef.current.focus();
124
+ setNextIndex(activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column);
75
125
  }
76
- }, [isEditing, activeCellCoordinates, rows, cellEditorValue, columns.length, defaultColumn, cellEditorValue, activeCellRef, cellEditorRef, cellEditorRulerRef]);
126
+ }, [isEditing, activeCellCoordinates, rows, cellEditorValue, columns.length, defaultColumn, activeCellRef, cellEditorRef, cellEditorRulerRef, columns, blockClass, previousState === null || previousState === void 0 ? void 0 : previousState.cellEditorValue, nextIndex]);
77
127
  };
78
128
 
79
129
  exports.useSpreadsheetEdit = useSpreadsheetEdit;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.checkSelectedHeaderCell = void 0;
7
+
8
+ var _deepCloneObject = require("../../../global/js/utils/deepCloneObject");
9
+
10
+ /**
11
+ * Copyright IBM Corp. 2022, 2022
12
+ *
13
+ * This source code is licensed under the Apache-2.0 license found in the
14
+ * LICENSE file in the root directory of this source tree.
15
+ */
16
+ var checkSelectedHeaderCell = function checkSelectedHeaderCell(headerIndex, selectionAreas, headerType) {
17
+ var areasCloned = (0, _deepCloneObject.deepCloneObject)(selectionAreas);
18
+ var isSelectedHeader = areasCloned.some(function (area) {
19
+ var _area$header, _area$header2;
20
+
21
+ return (area === null || area === void 0 ? void 0 : (_area$header = area.header) === null || _area$header === void 0 ? void 0 : _area$header.type) === headerType && headerIndex === (area === null || area === void 0 ? void 0 : (_area$header2 = area.header) === null || _area$header2 === void 0 ? void 0 : _area$header2.index);
22
+ });
23
+ return isSelectedHeader;
24
+ };
25
+
26
+ exports.checkSelectedHeaderCell = checkSelectedHeaderCell;
@@ -21,6 +21,7 @@ var createCellSelectionArea = function createCellSelectionArea(_ref) {
21
21
  var ref = _ref.ref,
22
22
  area = _ref.area,
23
23
  blockClass = _ref.blockClass,
24
+ columns = _ref.columns,
24
25
  defaultColumn = _ref.defaultColumn,
25
26
  selectionAreas = _ref.selectionAreas,
26
27
  setSelectionAreas = _ref.setSelectionAreas,
@@ -38,24 +39,28 @@ var createCellSelectionArea = function createCellSelectionArea(_ref) {
38
39
  activeCellElement.setAttribute('data-selection-id', area.matcher);
39
40
  }
40
41
 
41
- var point1Element = document.querySelector("[data-row-index=\"".concat(area.point1.row, "\"][data-column-index=\"").concat(area.point1.column, "\"]")) || document.querySelector(".".concat(blockClass, "__body--td")); // if we can't find the point1 element (this can happen in the case where a virtualized row is not present anymore in the DOM), we get the default height/width of the first body cell we find
42
+ var selectionAreaVariableWidth = 0;
43
+ columns.forEach(function (item, index) {
44
+ if (index >= lowestColumnIndex && index <= greatestColumnIndex) {
45
+ selectionAreaVariableWidth += (item === null || item === void 0 ? void 0 : item.width) || (defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.width);
46
+ }
47
+ });
48
+ var point1Element = document.querySelector("[data-row-index=\"".concat(area.point1.row, "\"][data-column-index=\"").concat(area.point1.column, "\"]")) || document.querySelector(".".concat(blockClass, "__body--td")); // if we can't find the point1 element (this can happen in the case where a virtualized row is not present anymore in the DOM), we get the default height of the first body cell we find
42
49
 
43
- var selectionAreaCellWidth = point1Element.offsetWidth;
44
50
  var selectionAreaCellHeight = point1Element.offsetHeight;
45
- var selectionAreaTotalWidth = selectionAreaCellWidth * (greatestColumnIndex - lowestColumnIndex + 1);
46
51
  var selectionAreaTotalHeight = selectionAreaCellHeight * (greatestRowIndex - lowestRowIndex + 1);
47
52
  var bodyContainer = document.querySelector(".".concat(blockClass, "__list--container")).firstElementChild;
48
53
  var placementElement = bodyContainer.querySelector("[data-row-index=\"".concat(lowestRowIndex, "\"][data-column-index=\"").concat(lowestColumnIndex, "\"]"));
49
54
  var relativePosition = {
50
55
  top: placementElement ? placementElement.getBoundingClientRect().top - bodyContainer.getBoundingClientRect().top : lowestRowIndex === 0 ? 0 : selectionAreaCellHeight * lowestRowIndex,
51
56
  // calculate top value here if virtualized row is not in DOM
52
- left: placementElement ? placementElement.getBoundingClientRect().left - bodyContainer.getBoundingClientRect().left : lowestColumnIndex === 0 ? 0 + (defaultColumn.rowHeaderWidth - 4) : selectionAreaCellWidth * lowestColumnIndex + (defaultColumn.rowHeaderWidth - 4) // calculate left value here if virtualized row is not in DOM, accounting for row header cell width (including borders)
57
+ left: placementElement ? placementElement.getBoundingClientRect().left - bodyContainer.getBoundingClientRect().left : lowestColumnIndex === 0 ? 0 + (defaultColumn.rowHeaderWidth - 4) : defaultColumn.width * lowestColumnIndex + (defaultColumn.rowHeaderWidth - 4) // calculate left value here if virtualized row is not in DOM, accounting for row header cell width (including borders)
53
58
 
54
59
  };
55
60
  var selectionAreaElement = document.querySelector("[data-matcher-id=\"".concat(area.matcher, "\"]")) || document.createElement('div');
56
61
  selectionAreaElement.classList.add("".concat(blockClass, "__selection-area--element"));
57
62
  selectionAreaElement.setAttribute('data-matcher-id', area.matcher);
58
- selectionAreaElement.style.width = (0, _layout.px)(selectionAreaTotalWidth);
63
+ selectionAreaElement.style.width = (0, _layout.px)(selectionAreaVariableWidth);
59
64
  selectionAreaElement.style.height = (0, _layout.px)(selectionAreaTotalHeight);
60
65
  selectionAreaElement.style.left = (0, _layout.px)(relativePosition.left);
61
66
  selectionAreaElement.style.top = (0, _layout.px)(relativePosition.top);
@@ -76,10 +76,14 @@ var handleHeaderCellSelection = function handleHeaderCellSelection(_ref) {
76
76
 
77
77
  if (isHoldingCommandKey) {
78
78
  var selectionsFromHeaderCell = selectionsClone.filter(function (item) {
79
- return item.header.type;
79
+ var _item$header;
80
+
81
+ return (_item$header = item.header) === null || _item$header === void 0 ? void 0 : _item$header.type;
80
82
  });
81
83
  var previouslyCreatedHeaderSelection = selectionsFromHeaderCell.filter(function (item) {
82
- return item.header.type === type;
84
+ var _item$header2;
85
+
86
+ return ((_item$header2 = item.header) === null || _item$header2 === void 0 ? void 0 : _item$header2.type) === type;
83
87
  });
84
88
  var isHeaderPartOfPreviousSelection = (0, _checkActiveHeaderCell.checkActiveHeaderCell)(index, previouslyCreatedHeaderSelection, type); // Prevents row/column header selections from being created multiple times
85
89
 
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = void 0;
8
+ exports.Datagrid = void 0;
9
9
 
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
 
@@ -15,6 +15,8 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
15
15
 
16
16
  var _react = _interopRequireDefault(require("react"));
17
17
 
18
+ var _propTypes = _interopRequireDefault(require("prop-types"));
19
+
18
20
  var _carbonComponentsReact = require("carbon-components-react");
19
21
 
20
22
  var _classnames = _interopRequireDefault(require("classnames"));
@@ -29,15 +31,26 @@ var _devtools = require("../../../global/js/utils/devtools");
29
31
 
30
32
  var _settings = require("../../../settings");
31
33
 
32
- var _excluded = ["getTableProps", "withVirtualScroll", "DatagridPagination", "isFetching", "tableId", "CustomizeColumnsModal", "leftPanel", "fullHeightDatagrid", "verticalAlign", "variableRowHeight", "className"];
34
+ var _pconsole = _interopRequireDefault(require("../../../global/js/utils/pconsole"));
35
+
36
+ var _excluded = ["datagridState"];
33
37
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
34
38
  var componentName = 'Datagrid';
35
39
  var TableContainer = _carbonComponentsReact.DataTable.TableContainer,
36
40
  Table = _carbonComponentsReact.DataTable.Table;
37
41
 
38
- var Datagrid = /*#__PURE__*/_react.default.forwardRef(function (datagridState, ref) {
42
+ var Datagrid = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
39
43
  var _getTableProps;
40
44
 
45
+ var datagridState = _ref.datagridState,
46
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
47
+
48
+ if (!datagridState) {
49
+ _pconsole.default.warn('Datagrid was not passed datagridState which is required to render this component.');
50
+
51
+ return null;
52
+ }
53
+
41
54
  var _datagridState$getTab = datagridState.getTableProps,
42
55
  getTableProps = _datagridState$getTab === void 0 ? function () {} : _datagridState$getTab,
43
56
  withVirtualScroll = datagridState.withVirtualScroll,
@@ -50,8 +63,7 @@ var Datagrid = /*#__PURE__*/_react.default.forwardRef(function (datagridState, r
50
63
  _datagridState$vertic = datagridState.verticalAlign,
51
64
  verticalAlign = _datagridState$vertic === void 0 ? 'center' : _datagridState$vertic,
52
65
  variableRowHeight = datagridState.variableRowHeight,
53
- className = datagridState.className,
54
- rest = (0, _objectWithoutProperties2.default)(datagridState, _excluded);
66
+ className = datagridState.className;
55
67
  var rows = DatagridPagination && datagridState.page || datagridState.rows;
56
68
 
57
69
  var dataGrid = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(TableContainer, {
@@ -78,9 +90,14 @@ var Datagrid = /*#__PURE__*/_react.default.forwardRef(function (datagridState, r
78
90
  }); // Return a placeholder if not released and not enabled by feature flag
79
91
 
80
92
 
81
- Datagrid = _settings.pkg.checkComponentEnabled(Datagrid, componentName); // The display name of the component, used by React. Note that displayName
93
+ exports.Datagrid = Datagrid;
94
+ exports.Datagrid = Datagrid = _settings.pkg.checkComponentEnabled(Datagrid, componentName); // The display name of the component, used by React. Note that displayName
82
95
  // is used in preference to relying on function.name.
83
96
 
84
97
  Datagrid.displayName = componentName;
85
- var _default = Datagrid;
86
- exports.default = _default;
98
+ Datagrid.propTypes = {
99
+ /**
100
+ * The data grid state, much of it being supplied by the useDatagrid hook
101
+ */
102
+ datagridState: _propTypes.default.object.isRequired
103
+ };
@@ -7,18 +7,15 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
10
  var _react = _interopRequireDefault(require("react"));
13
11
 
14
12
  var _carbonComponentsReact = require("carbon-components-react");
15
13
 
16
- /*
17
- * Licensed Materials - Property of IBM
18
- * 5724-Q36
19
- * (c) Copyright IBM Corp. 2020, 2021
20
- * US Government Users Restricted Rights - Use, duplication or disclosure
21
- * restricted by GSA ADP Schedule Contract with IBM Corp.
14
+ /**
15
+ * Copyright IBM Corp. 2020, 2022
16
+ *
17
+ * This source code is licensed under the Apache-2.0 license found in the
18
+ * LICENSE file in the root directory of this source tree.
22
19
  */
23
20
  var TableHead = _carbonComponentsReact.DataTable.TableHead;
24
21
 
@@ -27,14 +24,9 @@ var DatagridHead = function DatagridHead(datagridState) {
27
24
  headerGroups = _datagridState$header === void 0 ? [] : _datagridState$header,
28
25
  headRef = datagridState.headRef,
29
26
  HeaderRow = datagridState.HeaderRow;
30
- return /*#__PURE__*/_react.default.createElement(TableHead, null, headerGroups.map(function (headerGroup, index) {
31
- return (
32
- /*#__PURE__*/
33
- // doesn't support header grouping.
34
- _react.default.createElement("div", (0, _extends2.default)({}, headerGroup.getHeaderGroupProps(), {
35
- ref: headRef,
36
- key: "header_".concat(index)
37
- }), HeaderRow(datagridState))
27
+ return /*#__PURE__*/_react.default.createElement(TableHead, null, headerGroups.map(function (headerGroup) {
28
+ return (// doesn't support header grouping.
29
+ HeaderRow(datagridState, headRef, headerGroup)
38
30
  );
39
31
  }));
40
32
  };
@@ -21,20 +21,20 @@ var _commonColumnIds = require("../common-column-ids");
21
21
 
22
22
  var _settings = require("../../../settings");
23
23
 
24
- /*
25
- * Licensed Materials - Property of IBM
26
- * 5724-Q36
27
- * (c) Copyright IBM Corp. 2020, 2021
28
- * US Government Users Restricted Rights - Use, duplication or disclosure
29
- * restricted by GSA ADP Schedule Contract with IBM Corp.
24
+ /**
25
+ * Copyright IBM Corp. 2020, 2022
26
+ *
27
+ * This source code is licensed under the Apache-2.0 license found in the
28
+ * LICENSE file in the root directory of this source tree.
30
29
  */
31
30
  // @flow
32
31
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
33
32
 
34
- var HeaderRow = function HeaderRow(datagridState) {
35
- return /*#__PURE__*/_react.default.createElement(TableRow, {
36
- className: "".concat(blockClass, "__head")
37
- }, datagridState.headers.filter(function (_ref) {
33
+ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
34
+ return /*#__PURE__*/_react.default.createElement(TableRow, (0, _extends2.default)({}, headerGroup.getHeaderGroupProps(), {
35
+ className: (0, _classnames.default)("".concat(blockClass, "__head"), headerGroup.getHeaderGroupProps().className),
36
+ ref: headRef
37
+ }), datagridState.headers.filter(function (_ref) {
38
38
  var isVisible = _ref.isVisible;
39
39
  return isVisible;
40
40
  }).map(function (header) {
@@ -1,15 +1,13 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
- Object.defineProperty(exports, "default", {
6
+ Object.defineProperty(exports, "Datagrid", {
9
7
  enumerable: true,
10
8
  get: function get() {
11
- return _Datagrid.default;
9
+ return _Datagrid.Datagrid;
12
10
  }
13
11
  });
14
12
 
15
- var _Datagrid = _interopRequireDefault(require("./Datagrid"));
13
+ var _Datagrid = require("./Datagrid");
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  Object.defineProperty(exports, "Datagrid", {
9
9
  enumerable: true,
10
10
  get: function get() {
11
- return _Datagrid.default;
11
+ return _Datagrid.Datagrid;
12
12
  }
13
13
  });
14
14
  Object.defineProperty(exports, "useActionsColumn", {
@@ -96,7 +96,7 @@ Object.defineProperty(exports, "useStickyColumn", {
96
96
  }
97
97
  });
98
98
 
99
- var _Datagrid = _interopRequireDefault(require("./Datagrid"));
99
+ var _Datagrid = require("./Datagrid");
100
100
 
101
101
  var _useDatagrid = _interopRequireDefault(require("./useDatagrid"));
102
102
 
@@ -51,8 +51,6 @@ var defaults = {
51
51
  validExtensions: Object.freeze([])
52
52
  };
53
53
  var ExportModal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
54
- var _preformattedExtensio;
55
-
56
54
  var body = _ref.body,
57
55
  className = _ref.className,
58
56
  error = _ref.error,
@@ -81,7 +79,7 @@ var ExportModal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
81
79
  validExtensions = _ref$validExtensions === void 0 ? defaults.validExtensions : _ref$validExtensions,
82
80
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
83
81
 
84
- var _useState = (0, _react.useState)(filename),
82
+ var _useState = (0, _react.useState)(''),
85
83
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
86
84
  name = _useState2[0],
87
85
  setName = _useState2[1];
@@ -92,11 +90,18 @@ var ExportModal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
92
90
  setDirtyInput = _useState4[1]; // by default (if it exists) use the first extension in the extension array
93
91
 
94
92
 
95
- var _useState5 = (0, _react.useState)(preformattedExtensions === null || preformattedExtensions === void 0 ? void 0 : (_preformattedExtensio = preformattedExtensions[0]) === null || _preformattedExtensio === void 0 ? void 0 : _preformattedExtensio.extension),
93
+ var _useState5 = (0, _react.useState)(''),
96
94
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
97
95
  extension = _useState6[0],
98
96
  setExtension = _useState6[1];
99
97
 
98
+ (0, _react.useEffect)(function () {
99
+ var _preformattedExtensio;
100
+
101
+ setName(filename);
102
+ setExtension(preformattedExtensions === null || preformattedExtensions === void 0 ? void 0 : (_preformattedExtensio = preformattedExtensions[0]) === null || _preformattedExtensio === void 0 ? void 0 : _preformattedExtensio.extension);
103
+ }, [filename, preformattedExtensions]);
104
+
100
105
  var onNameChangeHandler = function onNameChangeHandler(evt) {
101
106
  setName(evt.target.value);
102
107
  };
@@ -296,13 +296,17 @@ var SidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
296
296
 
297
297
  var actionToolbarElement = document.querySelector(".".concat(blockClass, "__action-toolbar"));
298
298
 
299
+ var _labelText = document.querySelector(".".concat(blockClass, "__label-text"));
300
+
299
301
  var _sidePanelSubtitleElementHeight = (_sidePanelSubtitleElement === null || _sidePanelSubtitleElement === void 0 ? void 0 : _sidePanelSubtitleElement.offsetHeight) || 0;
300
302
 
301
303
  var sidePanelActionBarElementHeight = (actionToolbarElement === null || actionToolbarElement === void 0 ? void 0 : actionToolbarElement.offsetHeight) || 0;
302
304
  var titleHeight = (_sidePanelTitleElement === null || _sidePanelTitleElement === void 0 ? void 0 : _sidePanelTitleElement.offsetHeight) + 24;
305
+ var labelHeight = (_labelText === null || _labelText === void 0 ? void 0 : _labelText.offsetHeight) || 0;
303
306
  _sidePanelOuter === null || _sidePanelOuter === void 0 ? void 0 : _sidePanelOuter.style.setProperty("--".concat(blockClass, "--title-text-height"), "".concat(titleHeight, "px"));
304
307
  _sidePanelOuter === null || _sidePanelOuter === void 0 ? void 0 : _sidePanelOuter.style.setProperty("--".concat(blockClass, "--subtitle-container-height"), "".concat(_sidePanelSubtitleElementHeight, "px"));
305
308
  _sidePanelOuter === null || _sidePanelOuter === void 0 ? void 0 : _sidePanelOuter.style.setProperty("--".concat(blockClass, "--action-bar-container-height"), "".concat(sidePanelActionBarElementHeight, "px"));
309
+ _sidePanelOuter === null || _sidePanelOuter === void 0 ? void 0 : _sidePanelOuter.style.setProperty("--".concat(blockClass, "--label-text-height"), "".concat(labelHeight, "px"));
306
310
  }
307
311
  }, [open, animateTitle, animationComplete, shouldRender, panelHeight, title, size, reducedMotion.matches]); // click outside functionality if `includeOverlay` prop is set
308
312
 
@@ -515,7 +519,7 @@ var SidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
515
519
  className: "".concat(blockClass, "__visually-hidden")
516
520
  }, "Focus sentinel"), !animateTitle && renderHeader(), /*#__PURE__*/_react.default.createElement("div", {
517
521
  ref: sidePanelInnerRef,
518
- className: (0, _classnames.default)("".concat(blockClass, "__inner-content"), (_cx4 = {}, (0, _defineProperty2.default)(_cx4, "".concat(blockClass, "__static-inner-content"), !animateTitle), (0, _defineProperty2.default)(_cx4, "".concat(blockClass, "__inner-content-with-actions"), actions && actions.length), _cx4))
522
+ className: (0, _classnames.default)("".concat(blockClass, "__inner-content"), (_cx4 = {}, (0, _defineProperty2.default)(_cx4, "".concat(blockClass, "__static-inner-content"), !animateTitle), (0, _defineProperty2.default)(_cx4, "".concat(blockClass, "__static-inner-content-no-actions"), !animateTitle && !(actions !== null && actions !== void 0 && actions.length)), (0, _defineProperty2.default)(_cx4, "".concat(blockClass, "__inner-content-with-actions"), actions && actions.length), _cx4))
519
523
  }, animateTitle && renderHeader(), /*#__PURE__*/_react.default.createElement("div", {
520
524
  className: "".concat(blockClass, "__body-content")
521
525
  }, children), /*#__PURE__*/_react.default.createElement(_ActionSet.ActionSet, {
@@ -29,6 +29,8 @@ var _iconsReact = require("@carbon/icons-react");
29
29
 
30
30
  var _carbonComponentsReact = require("carbon-components-react");
31
31
 
32
+ var _motion = require("@carbon/motion");
33
+
32
34
  var _excluded = ["actions", "children", "className", "closeIconDescription", "closeTerminal", "documentationLinks", "documentationLinksIconDescription", "open"];
33
35
 
34
36
  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); }
@@ -50,7 +52,7 @@ var defaults = {
50
52
  };
51
53
 
52
54
  var WebTerminal = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
53
- var _ref2;
55
+ var _ref3;
54
56
 
55
57
  var _ref$actions = _ref.actions,
56
58
  actions = _ref$actions === void 0 ? defaults.actions : _ref$actions,
@@ -70,6 +72,12 @@ var WebTerminal = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
70
72
  shouldRender = _useState2[0],
71
73
  setRender = _useState2[1];
72
74
 
75
+ var _ref2 = window && window.matchMedia ? window.matchMedia('(prefers-reduced-motion: reduce)') : {
76
+ matches: true
77
+ },
78
+ prefersReducedMotion = _ref2.matches;
79
+
80
+ var webTerminalAnimationName = "".concat(open ? 'web-terminal-entrance' : 'web-terminal-exit', " ").concat(_motion.moderate02);
73
81
  var showDocumentationLinks = (0, _react.useMemo)(function () {
74
82
  return documentationLinks.length > 0;
75
83
  }, [documentationLinks]);
@@ -78,6 +86,9 @@ var WebTerminal = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
78
86
  setRender(true);
79
87
  }
80
88
  }, [open]);
89
+ /**
90
+ When the web terminal slide in animation is complete, sets render to false.
91
+ */
81
92
 
82
93
  var onAnimationEnd = function onAnimationEnd() {
83
94
  if (!open) {
@@ -85,11 +96,23 @@ var WebTerminal = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
85
96
  }
86
97
  };
87
98
 
99
+ var handleCloseTerminal = function handleCloseTerminal() {
100
+ /**
101
+ If the user prefers reduced motion, we have to manually set render to false
102
+ because onAnimationEnd will never be called.
103
+ */
104
+ if (prefersReducedMotion) {
105
+ setRender(false);
106
+ }
107
+
108
+ closeTerminal();
109
+ };
110
+
88
111
  return shouldRender ? /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
89
112
  ref: ref,
90
- className: (0, _classnames.default)([className, blockClass, (_ref2 = {}, (0, _defineProperty2.default)(_ref2, "".concat(blockClass, "--open"), open), (0, _defineProperty2.default)(_ref2, "".concat(blockClass, "--closed"), !open), _ref2)]),
113
+ className: (0, _classnames.default)([className, blockClass, (_ref3 = {}, (0, _defineProperty2.default)(_ref3, "".concat(blockClass, "--open"), open), (0, _defineProperty2.default)(_ref3, "".concat(blockClass, "--closed"), !open), _ref3)]),
91
114
  style: {
92
- animation: "".concat(open ? 'web-terminal-entrance 250ms' : 'web-terminal-exit 250ms')
115
+ animation: !prefersReducedMotion && webTerminalAnimationName
93
116
  },
94
117
  onAnimationEnd: onAnimationEnd
95
118
  }), /*#__PURE__*/_react.default.createElement("header", {
@@ -101,15 +124,15 @@ var WebTerminal = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
101
124
  iconDescription: documentationLinksIconDescription,
102
125
  menuOptionsClass: "".concat(blockClass, "__documentation-overflow"),
103
126
  size: "lg"
104
- }, documentationLinks.map(function (_ref3, i) {
105
- var rest = (0, _extends2.default)({}, _ref3);
127
+ }, documentationLinks.map(function (_ref4, i) {
128
+ var rest = (0, _extends2.default)({}, _ref4);
106
129
  return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.OverflowMenuItem, (0, _extends2.default)({
107
130
  key: i
108
131
  }, rest));
109
- })), actions.map(function (_ref4) {
110
- var renderIcon = _ref4.renderIcon,
111
- onClick = _ref4.onClick,
112
- iconDescription = _ref4.iconDescription;
132
+ })), actions.map(function (_ref5) {
133
+ var renderIcon = _ref5.renderIcon,
134
+ onClick = _ref5.onClick,
135
+ iconDescription = _ref5.iconDescription;
113
136
  return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
114
137
  key: iconDescription,
115
138
  hasIconOnly: true,
@@ -123,7 +146,10 @@ var WebTerminal = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
123
146
  renderIcon: _iconsReact.Close16,
124
147
  kind: "ghost",
125
148
  iconDescription: closeIconDescription,
126
- onClick: closeTerminal
149
+ onClick: handleCloseTerminal,
150
+ onAnimationEnd: function onAnimationEnd(event) {
151
+ return event.stopPropagation();
152
+ }
127
153
  })), /*#__PURE__*/_react.default.createElement("div", {
128
154
  className: "".concat(blockClass, "__body")
129
155
  }, children)) : null;