@carbon/ibm-products 2.7.0 → 2.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. package/css/index-full-carbon.css +115 -6
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +4 -4
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +10 -4
  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 +115 -6
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +4 -4
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +108 -4
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +4 -4
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/AddSelect/AddSelectRow.js +2 -1
  18. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +6 -7
  19. package/es/components/ButtonMenu/ButtonMenu.js +4 -0
  20. package/es/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +21 -28
  21. package/es/components/ComboButton/ComboButton.js +5 -0
  22. package/es/components/CreateFullPage/CreateFullPage.js +4 -3
  23. package/es/components/CreateInfluencer/CreateInfluencer.js +10 -3
  24. package/es/components/DataSpreadsheet/DataSpreadsheet.js +1 -1
  25. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +118 -10
  26. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +8 -14
  27. package/es/components/Datagrid/Datagrid/addons/stateReducer.js +111 -0
  28. package/es/components/Datagrid/Datagrid.docs-page.js +6 -0
  29. package/es/components/Datagrid/useDatagrid.js +5 -2
  30. package/es/components/Datagrid/utils/DatagridActions.js +9 -10
  31. package/es/components/FilterSummary/FilterSummary.js +9 -3
  32. package/es/components/NotificationsPanel/NotificationsPanel.js +3 -5
  33. package/es/components/PageHeader/PageHeaderUtils.js +10 -3
  34. package/es/components/SidePanel/SidePanel.js +3 -1
  35. package/es/components/TagSet/TagSet.js +3 -7
  36. package/es/components/TooltipTrigger/TooltipTrigger.js +62 -0
  37. package/es/components/TooltipTrigger/index.js +8 -0
  38. package/es/components/TooltipTrigger/useExample.js +49 -0
  39. package/es/components/UserProfileImage/UserProfileImage.js +7 -6
  40. package/es/global/decorators/sidePanelDecorator.js +11 -0
  41. package/es/global/js/hooks/useResizeObserver.js +7 -5
  42. package/es/global/js/utils/StoryDocsPage.js +5 -2
  43. package/es/global/js/utils/test-helper.js +97 -43
  44. package/es/settings.js +8 -2
  45. package/lib/components/AddSelect/AddSelectRow.js +2 -1
  46. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +5 -6
  47. package/lib/components/ButtonMenu/ButtonMenu.js +5 -1
  48. package/lib/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +20 -27
  49. package/lib/components/ComboButton/ComboButton.js +5 -0
  50. package/lib/components/CreateFullPage/CreateFullPage.js +4 -3
  51. package/lib/components/CreateInfluencer/CreateInfluencer.js +10 -3
  52. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +1 -1
  53. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +121 -10
  54. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +7 -13
  55. package/lib/components/Datagrid/Datagrid/addons/stateReducer.js +122 -0
  56. package/lib/components/Datagrid/Datagrid.docs-page.js +6 -0
  57. package/lib/components/Datagrid/useDatagrid.js +5 -2
  58. package/lib/components/Datagrid/utils/DatagridActions.js +8 -9
  59. package/lib/components/FilterSummary/FilterSummary.js +9 -4
  60. package/lib/components/NotificationsPanel/NotificationsPanel.js +3 -5
  61. package/lib/components/PageHeader/PageHeaderUtils.js +10 -3
  62. package/lib/components/SidePanel/SidePanel.js +3 -1
  63. package/lib/components/TagSet/TagSet.js +2 -6
  64. package/lib/components/TooltipTrigger/TooltipTrigger.js +67 -0
  65. package/lib/components/TooltipTrigger/index.js +12 -0
  66. package/lib/components/TooltipTrigger/useExample.js +58 -0
  67. package/lib/components/UserProfileImage/UserProfileImage.js +6 -5
  68. package/lib/global/decorators/sidePanelDecorator.js +19 -0
  69. package/lib/global/js/hooks/useResizeObserver.js +7 -5
  70. package/lib/global/js/utils/StoryDocsPage.js +5 -2
  71. package/lib/global/js/utils/test-helper.js +99 -44
  72. package/lib/settings.js +8 -2
  73. package/package.json +8 -8
  74. package/scss/components/APIKeyModal/_storybook-styles.scss +1 -1
  75. package/scss/components/AboutModal/_storybook-styles.scss +1 -1
  76. package/scss/components/ActionSet/_storybook-styles.scss +1 -1
  77. package/scss/components/CreateFullPage/_storybook-styles.scss +1 -1
  78. package/scss/components/CreateInfluencer/_create-influencer.scss +6 -2
  79. package/scss/components/CreateModal/_storybook-styles.scss +1 -1
  80. package/scss/components/CreateSidePanel/_storybook-styles.scss +4 -1
  81. package/scss/components/CreateTearsheet/_storybook-styles.scss +1 -1
  82. package/scss/components/CreateTearsheetNarrow/_storybook-styles.scss +1 -1
  83. package/scss/components/DataSpreadsheet/_storybook-styles.scss +7 -2
  84. package/scss/components/Datagrid/_storybook-styles.scss +6 -3
  85. package/scss/components/Datagrid/styles/_datagrid.scss +92 -0
  86. package/scss/components/EditSidePanel/_storybook-styles.scss +8 -5
  87. package/scss/components/EditTearsheet/_storybook-styles.scss +1 -1
  88. package/scss/components/EditTearsheetNarrow/_storybook-styles.scss +1 -1
  89. package/scss/components/EditUpdateCards/_storybook-styles.scss +1 -1
  90. package/scss/components/ExpressiveCard/_storybook-styles.scss +1 -1
  91. package/scss/components/NotificationsPanel/_storybook-styles.scss +1 -1
  92. package/scss/components/OptionsTile/_storybook-styles.scss +1 -1
  93. package/scss/components/PageHeader/_page-header.scss +8 -4
  94. package/scss/components/SidePanel/_storybook-styles.scss +7 -0
  95. package/scss/components/Tearsheet/_storybook-styles.scss +1 -1
  96. package/scss/components/TooltipTrigger/_index-with-carbon.scss +8 -0
  97. package/scss/components/TooltipTrigger/_index.scss +8 -0
  98. package/scss/components/TooltipTrigger/_storybook-styles.scss +6 -0
  99. package/scss/components/TooltipTrigger/_tooltip-trigger.scss +29 -0
  100. package/scss/components/WebTerminal/_storybook-styles.scss +1 -1
  101. package/scss/components/_index-with-carbon.scss +1 -0
  102. package/scss/components/_index.scss +1 -0
  103. package/scss/global/decorators/_side-panel-decorator.scss +18 -0
  104. package/scss/global/js/utils/_story-as-full-page.scss +6 -0
@@ -174,7 +174,8 @@ var CreateFullPage = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
174
174
  className: "".concat(blockClass, "__influencer")
175
175
  }, /*#__PURE__*/_react.default.createElement(_CreateInfluencer.CreateInfluencer, {
176
176
  stepData: stepData,
177
- currentStep: currentStep
177
+ currentStep: currentStep,
178
+ title: title
178
179
  })), /*#__PURE__*/_react.default.createElement("div", {
179
180
  className: "".concat(blockClass, "__body")
180
181
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -307,7 +308,7 @@ CreateFullPage.propTypes = {
307
308
  */
308
309
  submitButtonText: _propTypes.default.string.isRequired,
309
310
  /**
310
- * The main title of the full page, displayed in the header area.
311
+ * The main title of the full page, displayed in the influencer area.
311
312
  */
312
- title: _propTypes.default.node
313
+ title: _propTypes.default.string
313
314
  };
@@ -26,7 +26,8 @@ var componentName = 'CreateInfluencer';
26
26
  var CreateInfluencer = function CreateInfluencer(_ref) {
27
27
  var className = _ref.className,
28
28
  currentStep = _ref.currentStep,
29
- stepData = _ref.stepData;
29
+ stepData = _ref.stepData,
30
+ title = _ref.title;
30
31
  var getNumberOfDynamicStepsBeforeCurrentStep = function getNumberOfDynamicStepsBeforeCurrentStep(array, key) {
31
32
  var dynamicSteps = [];
32
33
  array.forEach(function (item, index) {
@@ -54,7 +55,9 @@ var CreateInfluencer = function CreateInfluencer(_ref) {
54
55
  var totalDynamicSteps = getNumberOfDynamicStepsBeforeCurrentStep(stepData, 'shouldIncludeStep') || 0;
55
56
  return /*#__PURE__*/_react.default.createElement("div", {
56
57
  className: "".concat(blockClass, "__left-nav")
57
- }, currentStep === 1 && (_stepData$ = stepData[0]) !== null && _stepData$ !== void 0 && _stepData$.introStep ? null : /*#__PURE__*/_react.default.createElement(_react2.ProgressIndicator, {
58
+ }, title && /*#__PURE__*/_react.default.createElement("h3", {
59
+ className: "".concat(blockClass, "__title")
60
+ }, title), currentStep === 1 && (_stepData$ = stepData[0]) !== null && _stepData$ !== void 0 && _stepData$.introStep ? null : /*#__PURE__*/_react.default.createElement(_react2.ProgressIndicator, {
58
61
  currentIndex: (_stepData$2 = stepData[0]) !== null && _stepData$2 !== void 0 && _stepData$2.introStep ? currentStep - totalDynamicSteps - 2 // minus 2 because we need to account for the intro step in addition to `currentIndex` being 0 index based and our steps being 1 index based
59
62
  : currentStep - totalDynamicSteps - 1 // minus 1 because ProgressIndicator currentIndex prop is 0 index based, but our steps are 1 index based
60
63
  ,
@@ -96,5 +99,9 @@ CreateInfluencer.propTypes = {
96
99
  secondaryLabel: _propTypes.default.string,
97
100
  shouldIncludeStep: _propTypes.default.bool,
98
101
  title: _propTypes.default.node
99
- }))
102
+ })),
103
+ /**
104
+ * The main title of the full page, displayed in the influencer area.
105
+ */
106
+ title: _propTypes.default.string
100
107
  };
@@ -552,7 +552,7 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
552
552
  setClickAndHoldActive(false);
553
553
  var activeCellFullData = typeof (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) === 'number' && typeof (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === 'number' ? rows[activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row].cells[activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column] : null;
554
554
  var activeCellValue = activeCellFullData ? activeCellFullData.row.cells[activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column].value : null;
555
- setCellEditorValue(activeCellValue);
555
+ setCellEditorValue(activeCellValue || '');
556
556
  cellEditorRulerRef.current.textContent = activeCellValue;
557
557
  cellEditorRef.current.style.width = activeCellRef === null || activeCellRef === void 0 ? void 0 : activeCellRef.current.style.width;
558
558
  };
@@ -1,20 +1,26 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = void 0;
8
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- var _react = _interopRequireDefault(require("react"));
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
+ var _react = _interopRequireWildcard(require("react"));
11
13
  var _classnames = _interopRequireDefault(require("classnames"));
12
14
  var _react2 = require("@carbon/react");
15
+ var _layout = require("@carbon/layout");
13
16
  var _commonColumnIds = require("../common-column-ids");
14
17
  var _settings = require("../../../settings");
15
18
  var _getColTitle = _interopRequireDefault(require("../utils/getColTitle"));
19
+ var _stateReducer = require("./addons/stateReducer");
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
+ 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; }
16
22
  /**
17
- * Copyright IBM Corp. 2020, 2022
23
+ * Copyright IBM Corp. 2020, 2023
18
24
  *
19
25
  * This source code is licensed under the Apache-2.0 license found in the
20
26
  * LICENSE file in the root directory of this source tree.
@@ -34,15 +40,76 @@ var getAccessibilityProps = function getAccessibilityProps(header) {
34
40
  return props;
35
41
  };
36
42
  var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
43
+ // Used to measure the height of the table and uses that value
44
+ // to display a vertical line to indicate the column you are resizing
45
+ (0, _react.useEffect)(function () {
46
+ var tableId = datagridState.tableId;
47
+ if (tableId) {
48
+ var gridElement = document.querySelector("#".concat(tableId));
49
+ var tableElement = gridElement.querySelector('table');
50
+ var headerRowElement = document.querySelector("#".concat(tableId, " .").concat(blockClass, "__head"));
51
+ var hasHorizontalScrollbar = tableElement.scrollWidth > tableElement.clientWidth;
52
+ var scrollBuffer = hasHorizontalScrollbar ? 18 : 2;
53
+ var tableToolbar = gridElement.querySelector(".".concat(blockClass, "__table-toolbar"));
54
+ var tableToolbarHeight = (tableToolbar === null || tableToolbar === void 0 ? void 0 : tableToolbar.offsetHeight) || 0;
55
+ var setCustomValues = function setCustomValues(_ref) {
56
+ var _ref$rowHeight = _ref.rowHeight,
57
+ rowHeight = _ref$rowHeight === void 0 ? 48 : _ref$rowHeight,
58
+ gridHeight = _ref.gridHeight;
59
+ headerRowElement.style.setProperty("--".concat(blockClass, "--row-height"), (0, _layout.px)(rowHeight));
60
+ headerRowElement.style.setProperty("--".concat(blockClass, "--grid-height"), (0, _layout.px)(gridHeight - scrollBuffer - tableToolbarHeight));
61
+ headerRowElement.style.setProperty("--".concat(blockClass, "--header-height"), (0, _layout.px)(headerRowElement.offsetHeight));
62
+ };
63
+ setCustomValues({
64
+ gridHeight: gridElement.offsetHeight,
65
+ rowHeight: headerRowElement.clientHeight
66
+ });
67
+ }
68
+ }, [datagridState.rowSize, datagridState.tableId, datagridState]);
69
+ var _useState = (0, _react.useState)(2),
70
+ _useState2 = (0, _slicedToArray2.default)(_useState, 1),
71
+ incrementAmount = _useState2[0];
72
+ var getClientXPosition = function getClientXPosition(event) {
73
+ var isTouchEvent = false;
74
+ if (event.type === 'touchstart') {
75
+ // Do not respond to multiple touches (e.g. 2 or 3 fingers)
76
+ if (event.touches && event.touches.length > 1) {
77
+ return;
78
+ }
79
+ isTouchEvent = true;
80
+ }
81
+ var clientX = isTouchEvent ? Math.round(event.touches[0].clientX) : event.clientX;
82
+ var closestHeader = event.target.closest('th');
83
+ var closestHeaderCoords = closestHeader.getBoundingClientRect();
84
+ var headerOffset = closestHeaderCoords.left;
85
+ var offsetValue = clientX - headerOffset;
86
+ return offsetValue;
87
+ };
88
+ (0, _react.useEffect)(function () {
89
+ var isResizing = datagridState.state.isResizing;
90
+ if (isResizing) {
91
+ var onColResizeEnd = datagridState.onColResizeEnd;
92
+ document.addEventListener('mouseup', function () {
93
+ (0, _stateReducer.handleColumnResizeEndEvent)(datagridState.dispatch, onColResizeEnd, isResizing);
94
+ document.activeElement.blur();
95
+ });
96
+ }
97
+ return function () {
98
+ document.removeEventListener('mouseup', function () {
99
+ return (0, _stateReducer.handleColumnResizeEndEvent)(datagridState.dispatch);
100
+ });
101
+ };
102
+ // eslint-disable-next-line react-hooks/exhaustive-deps
103
+ }, [datagridState.state.isResizing]);
37
104
  return /*#__PURE__*/_react.default.createElement(_react2.TableRow, (0, _extends2.default)({}, headerGroup.getHeaderGroupProps({
38
105
  role: false
39
106
  }), {
40
107
  className: (0, _classnames.default)("".concat(blockClass, "__head"), headerGroup.getHeaderGroupProps().className),
41
108
  ref: headRef
42
- }), datagridState.headers.filter(function (_ref) {
43
- var isVisible = _ref.isVisible;
109
+ }), datagridState.headers.filter(function (_ref2) {
110
+ var isVisible = _ref2.isVisible;
44
111
  return isVisible;
45
- }).map(function (header) {
112
+ }).map(function (header, index) {
46
113
  var _cx;
47
114
  if (header.id === _commonColumnIds.selectionColumnId) {
48
115
  // render directly without the wrapper TableHeader
@@ -50,13 +117,57 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
50
117
  key: header.id
51
118
  });
52
119
  }
53
- return /*#__PURE__*/_react.default.createElement(_react2.TableHeader, (0, _extends2.default)({}, header.getHeaderProps({
54
- role: false
55
- }), {
120
+ var _ref3 = header || 50,
121
+ minWidth = _ref3.minWidth;
122
+ var visibleColumns = datagridState.visibleColumns,
123
+ state = datagridState.state,
124
+ dispatch = datagridState.dispatch,
125
+ onColResizeEnd = datagridState.onColResizeEnd;
126
+ var columnResizing = state.columnResizing,
127
+ isResizing = state.isResizing;
128
+ var columnWidths = columnResizing.columnWidths;
129
+ var originalCol = visibleColumns[index];
130
+ return /*#__PURE__*/_react.default.createElement(_react2.TableHeader, (0, _extends2.default)({}, header.getHeaderProps(), {
56
131
  className: (0, _classnames.default)((_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__resizableColumn"), header.getResizerProps), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__isResizing"), header.isResizing), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__sortableColumn"), datagridState.isTableSortable), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__isSorted"), header.isSorted), _cx), header.getHeaderProps().className),
57
132
  key: header.id
58
- }, getAccessibilityProps(header)), header.render('Header'), header.getResizerProps && /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, header.getResizerProps(), {
59
- className: "".concat(blockClass, "__resizer")
133
+ }, getAccessibilityProps(header)), header.render('Header'), header.getResizerProps && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({}, header.getResizerProps(), {
134
+ onMouseMove: function onMouseMove(event) {
135
+ if (isResizing) {
136
+ var newWidth = getClientXPosition(event);
137
+ // Sets a min width for resizing so at least one character from the column header is visible
138
+ if (newWidth >= 50) {
139
+ (0, _stateReducer.handleColumnResizingEvent)(dispatch, header, newWidth);
140
+ }
141
+ }
142
+ },
143
+ onMouseDown: function onMouseDown() {
144
+ return (0, _stateReducer.handleColumnResizeStartEvent)(dispatch, header.id);
145
+ },
146
+ onKeyDown: function onKeyDown(event) {
147
+ var key = event.key;
148
+ if (key === 'ArrowLeft' || key === 'ArrowRight') {
149
+ var currentColumnWidth = columnWidths[header.id] || (datagridState.isTableSortable && originalCol.width < 90 ? 90 : originalCol.width);
150
+ if (key === 'ArrowLeft') {
151
+ if (currentColumnWidth - incrementAmount > Math.max(minWidth, 50)) {
152
+ var newWidth = currentColumnWidth - incrementAmount;
153
+ (0, _stateReducer.handleColumnResizingEvent)(dispatch, header, newWidth, true);
154
+ }
155
+ }
156
+ if (key === 'ArrowRight') {
157
+ var _newWidth = currentColumnWidth + incrementAmount;
158
+ (0, _stateReducer.handleColumnResizingEvent)(dispatch, header, _newWidth, true);
159
+ }
160
+ }
161
+ },
162
+ onKeyUp: function onKeyUp() {
163
+ return (0, _stateReducer.handleColumnResizeEndEvent)(dispatch, onColResizeEnd, header.id);
164
+ },
165
+ className: (0, _classnames.default)("".concat(blockClass, "__col-resizer-range")),
166
+ type: "range",
167
+ defaultValue: originalCol.width,
168
+ "aria-label": "Resize column"
169
+ })), /*#__PURE__*/_react.default.createElement("span", {
170
+ className: "".concat(blockClass, "__col-resize-indicator")
60
171
  })));
61
172
  }));
62
173
  };
@@ -9,10 +9,8 @@ exports.default = void 0;
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
- var _icons = require("@carbon/react/icons");
13
12
  var _react2 = require("@carbon/react");
14
13
  var _useResizeObserver2 = require("../../../global/js/hooks/useResizeObserver");
15
- var _ButtonMenu = require("../../ButtonMenu");
16
14
  var _settings = require("../../../settings");
17
15
  var _classnames = _interopRequireDefault(require("classnames"));
18
16
  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); }
@@ -86,19 +84,15 @@ var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridS
86
84
  if ((toolbarBatchActions === null || toolbarBatchActions === void 0 ? void 0 : toolbarBatchActions.length) <= 3 && !displayAllInMenu) {
87
85
  return null;
88
86
  }
89
- return /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenu, {
90
- label: width > minWidthBeforeOverflowIcon ? 'More' : null,
91
- renderIcon: width > minWidthBeforeOverflowIcon ? _icons.Add : _icons.OverflowMenuVertical,
92
- className: (0, _classnames.default)("".concat(blockClass, "__button-menu"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__button-menu--icon-only"), width <= minWidthBeforeOverflowIcon)),
93
- menuOptionsClass: "".concat(blockClass, "__button-menu-options"),
94
- flipped: true,
95
- menuAriaLabel: 'Batch actions'
87
+ return /*#__PURE__*/_react.default.createElement(_react2.MenuButton, {
88
+ label: "More",
89
+ className: (0, _classnames.default)("".concat(blockClass, "__button-menu"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__button-menu--icon-only"), width <= minWidthBeforeOverflowIcon))
96
90
  }, toolbarBatchActions && toolbarBatchActions.map(function (batchAction, index) {
97
91
  if (index < 2) {
98
92
  if (displayAllInMenu) {
99
- return /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenuItem, {
93
+ return /*#__PURE__*/_react.default.createElement(_react2.MenuItem, {
100
94
  key: "".concat(batchAction.label, "-").concat(index),
101
- itemText: batchAction.label,
95
+ label: batchAction.label,
102
96
  onClick: function onClick(event) {
103
97
  batchAction.onClick(getSelectedRowData(), event);
104
98
  if (batchAction.type === 'select_all') {
@@ -109,9 +103,9 @@ var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridS
109
103
  }
110
104
  return null;
111
105
  }
112
- return /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenuItem, {
106
+ return /*#__PURE__*/_react.default.createElement(_react2.MenuItem, {
113
107
  key: "".concat(batchAction.label, "-").concat(index),
114
- itemText: batchAction.label,
108
+ label: batchAction.label,
115
109
  onClick: function onClick(event) {
116
110
  batchAction.onClick(getSelectedRowData(), event);
117
111
  if (batchAction.type === 'select_all') {
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.stateReducer = exports.handleColumnResizingEvent = exports.handleColumnResizeStartEvent = exports.handleColumnResizeEndEvent = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ 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; }
11
+ 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; }
12
+ /**
13
+ * Copyright IBM Corp. 2023, 2023
14
+ *
15
+ * This source code is licensed under the Apache-2.0 license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */
18
+
19
+ var COLUMN_RESIZE_START = 'columnStartResizing';
20
+ var COLUMN_RESIZING = 'columnResizing';
21
+ var COLUMN_RESIZE_END = 'columnDoneResizing';
22
+ var INIT = 'init';
23
+ var handleColumnResizeStartEvent = function handleColumnResizeStartEvent(dispatch, headerId) {
24
+ dispatch({
25
+ type: COLUMN_RESIZE_START,
26
+ payload: {
27
+ headerId: headerId
28
+ }
29
+ });
30
+ };
31
+ exports.handleColumnResizeStartEvent = handleColumnResizeStartEvent;
32
+ var handleColumnResizeEndEvent = function handleColumnResizeEndEvent(dispatch, onColResizeEnd, headerId) {
33
+ dispatch({
34
+ type: COLUMN_RESIZE_END,
35
+ payload: {
36
+ onColResizeEnd: onColResizeEnd,
37
+ headerId: headerId
38
+ }
39
+ });
40
+ };
41
+ exports.handleColumnResizeEndEvent = handleColumnResizeEndEvent;
42
+ var handleColumnResizingEvent = function handleColumnResizingEvent(dispatch, header, newWidth, isKeyEvent) {
43
+ if (isKeyEvent) {
44
+ dispatch({
45
+ type: COLUMN_RESIZE_START,
46
+ payload: {
47
+ newWidth: newWidth,
48
+ headerId: header.id,
49
+ defaultWidth: header.originalWidth
50
+ }
51
+ });
52
+ }
53
+ dispatch({
54
+ type: COLUMN_RESIZING,
55
+ payload: {
56
+ newWidth: newWidth,
57
+ headerId: header.id,
58
+ defaultWidth: header.originalWidth
59
+ }
60
+ });
61
+ };
62
+ exports.handleColumnResizingEvent = handleColumnResizingEvent;
63
+ var stateReducer = function stateReducer(newState, action) {
64
+ switch (action.type) {
65
+ case INIT:
66
+ {
67
+ return _objectSpread(_objectSpread({}, newState), {}, {
68
+ isResizing: false
69
+ });
70
+ }
71
+ case COLUMN_RESIZE_START:
72
+ {
73
+ var headerId = action.payload.headerId;
74
+ return _objectSpread(_objectSpread({}, newState), {}, {
75
+ isResizing: headerId
76
+ });
77
+ }
78
+ case COLUMN_RESIZING:
79
+ {
80
+ var _ref = action.payload || {},
81
+ _headerId = _ref.headerId,
82
+ newWidth = _ref.newWidth,
83
+ defaultWidth = _ref.defaultWidth;
84
+ var newColumnWidth = {};
85
+ if (typeof _headerId === 'undefined') {
86
+ return _objectSpread({}, newState);
87
+ }
88
+ newColumnWidth[_headerId] = newWidth;
89
+ var cleanedWidths = Object.fromEntries(Object.entries(newState.columnResizing.columnWidths).filter(function (_ref2) {
90
+ var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
91
+ _ = _ref3[0],
92
+ value = _ref3[1];
93
+ return !isNaN(value);
94
+ }));
95
+ return _objectSpread(_objectSpread({}, newState), {}, {
96
+ isResizing: _headerId,
97
+ columnResizing: _objectSpread(_objectSpread({}, newState.columnResizing), {}, {
98
+ columnWidth: defaultWidth,
99
+ columnWidths: _objectSpread(_objectSpread({}, cleanedWidths), newColumnWidth),
100
+ headerIdWidths: [_headerId, newWidth]
101
+ })
102
+ });
103
+ }
104
+ case COLUMN_RESIZE_END:
105
+ {
106
+ var _action$payload = action.payload,
107
+ onColResizeEnd = _action$payload.onColResizeEnd,
108
+ _headerId2 = _action$payload.headerId;
109
+ var currentColumn = {};
110
+ currentColumn[_headerId2] = newState.columnResizing.columnWidths[_headerId2];
111
+ var allChangedColumns = newState.columnResizing.columnWidths;
112
+ var isResizing = newState.isResizing;
113
+ if (isResizing) {
114
+ onColResizeEnd === null || onColResizeEnd === void 0 ? void 0 : onColResizeEnd(currentColumn, allChangedColumns);
115
+ }
116
+ return _objectSpread(_objectSpread({}, newState), {}, {
117
+ isResizing: false
118
+ });
119
+ }
120
+ }
121
+ };
122
+ exports.stateReducer = stateReducer;
@@ -51,6 +51,12 @@ var DocsPage = function DocsPage() {
51
51
  language: 'jsx',
52
52
  code: "\n const columns = [\n {\n Header: 'First Name',\n accessor: 'firstName',\n },\n {\n Header: 'Last Name',\n accessor: 'lastName',\n Cell: ({ cell: { value } }) => (\n <span className=\"custom-cell-wrapper\">{value}</span>\n ),\n },\n];\n "
53
53
  }
54
+ }, {
55
+ description: "There is also an optional resize callback when resizing columns, allowing you to save the widths of columns that have been resized. The resize callback returns the column that was just resized and it's width, in addition to all of the columns that have been resized and their widths.",
56
+ source: {
57
+ language: 'jsx',
58
+ code: "\nuseDatagrid({\n columns,\n data,\n onColResizeEnd: (currentColumn, allColumns) =>\n console.log(currentColumn, allColumns),\n});\n "
59
+ }
54
60
  }, {
55
61
  title: 'Rendering the table toolbar',
56
62
  image: /*#__PURE__*/_react.default.createElement("img", {
@@ -17,6 +17,7 @@ var _useRowSize = _interopRequireDefault(require("./useRowSize"));
17
17
  var _DatagridHeaderRow = _interopRequireDefault(require("./Datagrid/DatagridHeaderRow"));
18
18
  var _useFlexResize = _interopRequireDefault(require("./useFlexResize"));
19
19
  var _useFloatingScroll = _interopRequireDefault(require("./useFloatingScroll"));
20
+ var _stateReducer = require("./Datagrid/addons/stateReducer");
20
21
  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; }
21
22
  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; } /*
22
23
  * Licensed Materials - Property of IBM
@@ -35,9 +36,11 @@ var useDatagrid = function useDatagrid(params) {
35
36
  for (var _len = arguments.length, plugins = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
36
37
  plugins[_key - 1] = arguments[_key];
37
38
  }
38
- var tableState = _reactTable.useTable.apply(void 0, [_objectSpread({
39
+ var tableState = _reactTable.useTable.apply(void 0, [_objectSpread(_objectSpread({
39
40
  tableId: tableId
40
- }, params)].concat(defaultPlugins, plugins, defaultEndPlugins, (0, _toConsumableArray2.default)(clientEndPlugins)));
41
+ }, params), {}, {
42
+ stateReducer: _stateReducer.stateReducer
43
+ })].concat(defaultPlugins, plugins, defaultEndPlugins, (0, _toConsumableArray2.default)(clientEndPlugins)));
41
44
  return tableState;
42
45
  };
43
46
  var _default = useDatagrid;
@@ -9,7 +9,6 @@ exports.DatagridActions = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _icons = require("@carbon/react/icons");
11
11
  var _react = require("@carbon/react");
12
- var _ButtonMenu = require("../../ButtonMenu");
13
12
  var _react2 = _interopRequireWildcard(require("react"));
14
13
  var _addonActions = require("@storybook/addon-actions");
15
14
  var _settings = require("../../../settings");
@@ -161,18 +160,18 @@ var DatagridActions = function DatagridActions(datagridState) {
161
160
  onClick: downloadCsv
162
161
  })), CustomizeColumnsButton && /*#__PURE__*/_react2.default.createElement("div", {
163
162
  style: style
164
- }, /*#__PURE__*/_react2.default.createElement(CustomizeColumnsButton, null)), /*#__PURE__*/_react2.default.createElement(RowSizeDropdown, rowSizeDropdownProps), /*#__PURE__*/_react2.default.createElement(_ButtonMenu.ButtonMenu, {
163
+ }, /*#__PURE__*/_react2.default.createElement(CustomizeColumnsButton, null)), /*#__PURE__*/_react2.default.createElement(RowSizeDropdown, rowSizeDropdownProps), /*#__PURE__*/_react2.default.createElement(_react.MenuButton, {
165
164
  label: "Primary button",
166
165
  renderIcon: _icons.ChevronDown,
167
- menuOptionsClass: "".concat(blockClass, "__toolbar-options")
168
- }, /*#__PURE__*/_react2.default.createElement(_ButtonMenu.ButtonMenuItem, {
169
- itemText: "Option 1",
166
+ className: "".concat(blockClass, "__toolbar-options")
167
+ }, /*#__PURE__*/_react2.default.createElement(_react.MenuItem, {
168
+ label: "Option 1",
170
169
  onClick: (0, _addonActions.action)("Click on ButtonMenu Option 1")
171
- }), /*#__PURE__*/_react2.default.createElement(_ButtonMenu.ButtonMenuItem, {
172
- itemText: "Option 2",
170
+ }), /*#__PURE__*/_react2.default.createElement(_react.MenuItem, {
171
+ label: "Option 2",
173
172
  onClick: (0, _addonActions.action)("Click on ButtonMenu Option 2")
174
- }), /*#__PURE__*/_react2.default.createElement(_ButtonMenu.ButtonMenuItem, {
175
- itemText: "Option 3",
173
+ }), /*#__PURE__*/_react2.default.createElement(_react.MenuItem, {
174
+ label: "Option 3",
176
175
  onClick: (0, _addonActions.action)("Click on ButtonMenu Option 3")
177
176
  }))) : /*#__PURE__*/_react2.default.createElement(_react.TableToolbarContent, null, renderFilterPanelButton(), /*#__PURE__*/_react2.default.createElement(_react.TableToolbarSearch, {
178
177
  size: "xl",
@@ -5,19 +5,23 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
8
10
  var _react = require("@carbon/react");
9
11
  var _react2 = _interopRequireDefault(require("react"));
10
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
13
  var _classnames = _interopRequireDefault(require("classnames"));
12
14
  var _TagSet = require("../TagSet");
13
15
  var _settings = require("../../settings");
16
+ var _excluded = ["key", "value"];
14
17
  /**
15
18
  * Copyright IBM Corp. 2022, 2022
16
19
  *
17
20
  * This source code is licensed under the Apache-2.0 license found in the
18
21
  * LICENSE file in the root directory of this source tree.
19
22
  */
20
-
23
+ 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; }
24
+ 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; }
21
25
  var blockClass = "".concat(_settings.pkg.prefix, "--filter-summary");
22
26
  var FilterSummary = /*#__PURE__*/_react2.default.forwardRef(function (_ref, ref) {
23
27
  var _ref$className = _ref.className,
@@ -33,11 +37,12 @@ var FilterSummary = /*#__PURE__*/_react2.default.forwardRef(function (_ref, ref)
33
37
  var tagFilters = filters.map(function (_ref2) {
34
38
  var _renderLabel;
35
39
  var key = _ref2.key,
36
- value = _ref2.value;
37
- return {
40
+ value = _ref2.value,
41
+ rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
42
+ return _objectSpread(_objectSpread({}, rest), {}, {
38
43
  type: 'gray',
39
44
  label: (_renderLabel = renderLabel === null || renderLabel === void 0 ? void 0 : renderLabel(key, value)) !== null && _renderLabel !== void 0 ? _renderLabel : "".concat(key, ": ").concat(value)
40
- };
45
+ });
41
46
  });
42
47
  return /*#__PURE__*/_react2.default.createElement("div", {
43
48
  ref: ref,
@@ -17,6 +17,7 @@ var _devtools = require("../../global/js/utils/devtools");
17
17
  var _hooks = require("../../global/js/hooks");
18
18
  var _settings = require("../../settings");
19
19
  var _utils = require("./utils");
20
+ var _propsHelper = require("../../global/js/utils/props-helper");
20
21
  var _NotificationsEmptyState = require("../EmptyStates/NotificationsEmptyState");
21
22
  var _react2 = require("@carbon/react");
22
23
  var _icons = require("@carbon/react/icons");
@@ -305,7 +306,7 @@ var NotificationsPanel = /*#__PURE__*/_react.default.forwardRef(function (_ref,
305
306
  }, notification.title), notification.description && notification.description.length && renderDescription(notification.id), notification.link && notification.link.text && notification.link.url && /*#__PURE__*/_react.default.createElement(_react2.Link, (0, _extends2.default)({
306
307
  href: notification.link.url,
307
308
  className: "".concat(blockClass, "__notifications-link")
308
- }, notification.link.optional), notification.link.text)), /*#__PURE__*/_react.default.createElement(_react2.IconButton, {
309
+ }, (0, _propsHelper.prepareProps)({}, notification.link, ['text', 'url'])), notification.link.text)), /*#__PURE__*/_react.default.createElement(_react2.IconButton, {
309
310
  align: "left",
310
311
  kind: "ghost",
311
312
  size: "sm",
@@ -426,10 +427,7 @@ NotificationsPanel.propTypes = {
426
427
  description: _propTypes.default.string,
427
428
  link: _propTypes.default.shape({
428
429
  url: _propTypes.default.string,
429
- text: _propTypes.default.string,
430
- optional: _propTypes.default.shape({
431
- // Add optional props here
432
- })
430
+ text: _propTypes.default.string
433
431
  }),
434
432
  unread: _propTypes.default.bool,
435
433
  onNotificationClick: _propTypes.default.func
@@ -13,7 +13,7 @@ var _scrollableAncestor = require("../../global/js/utils/scrollableAncestor");
13
13
  var _react2 = require("@carbon/react");
14
14
  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; }
15
15
  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; } /**
16
- * Copyright IBM Corp. 2020, 2021
16
+ * Copyright IBM Corp. 2020, 2023
17
17
  *
18
18
  * This source code is licensed under the Apache-2.0 license found in the
19
19
  * LICENSE file in the root directory of this source tree.
@@ -71,11 +71,14 @@ var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(headerR
71
71
  var scrollableContainer = (0, _scrollableAncestor.scrollableAncestor)(headerRef.current);
72
72
 
73
73
  /* istanbul ignore next */
74
- var scrollableContainerTop = scrollableContainer ? scrollableContainer.scrollTop - scrollableContainer.getBoundingClientRect().top : 0;
74
+ var scrollableContainerTop = scrollableContainer ? scrollableContainer.getBoundingClientRect().top : 0;
75
+
76
+ /* istanbul ignore next */
77
+ var offsetMeasuringTop = offsetTopMeasuringRef.current ? offsetTopMeasuringRef.current.getBoundingClientRect().top : 0;
75
78
 
76
79
  // The header offset calculation is either going to work out at 0 if we have no gap between scrolling container
77
80
  // top and the measuring ref top, or the difference between. It does not change on scroll or resize.
78
- update.headerOffset = (offsetTopMeasuringRef.current ? offsetTopMeasuringRef.current.getBoundingClientRect().top : 0) + scrollableContainerTop;
81
+ update.headerOffset = offsetMeasuringTop - scrollableContainerTop;
79
82
 
80
83
  /* istanbul ignore next */
81
84
  update.breadcrumbRowHeight = breadcrumbRowEl ? breadcrumbRowEl.clientHeight : 0;
@@ -133,6 +136,10 @@ var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(headerR
133
136
  update.pageActionsSpaceAbove = titleRowEl.clientHeight - pageActionsEl.clientHeight + update.titleRowSpaceAbove - (isNaN(val) ? 0 : val);
134
137
  }
135
138
  }
139
+ if (!hasActionBar && pageActionsEl) {
140
+ // adjust headerTopValue when there are no page actions or action bar items (margin above title row)
141
+ update.headerTopValue -= update.titleRowSpaceAbove;
142
+ }
136
143
  return _objectSpread(_objectSpread({}, previous), update);
137
144
  });
138
145
  };
@@ -295,12 +295,14 @@ var SidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
295
295
  if (includeOverlay && open) {
296
296
  bodyElement.style.overflow = 'hidden';
297
297
  } else if (includeOverlay && !open) {
298
- bodyElement.style.overflow = 'initial';
298
+ bodyElement.style.overflow = '';
299
299
  }
300
300
  if (includeOverlay && !preventCloseOnClickOutside) {
301
301
  document.addEventListener('click', handleOutsideClick);
302
302
  }
303
303
  return function () {
304
+ var bodyElement = document.body;
305
+ bodyElement.style.overflow = '';
304
306
  document.removeEventListener('click', handleOutsideClick);
305
307
  };
306
308
  }, [includeOverlay, onRequestClose, open, preventCloseOnClickOutside, ref, onUnmount]);