@carbon/ibm-products 1.62.0 → 1.62.1
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.
- package/css/index-full-carbon.css +16 -2
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +2 -2
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon-released-only.css +15 -0
- package/css/index-without-carbon-released-only.css.map +1 -1
- package/css/index-without-carbon-released-only.min.css +1 -1
- package/css/index-without-carbon-released-only.min.css.map +1 -1
- package/css/index-without-carbon.css +16 -2
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +2 -2
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +16 -2
- package/css/index.css.map +1 -1
- package/css/index.min.css +2 -2
- package/css/index.min.css.map +1 -1
- package/es/components/Carousel/Carousel.js +194 -119
- package/es/components/Carousel/CarouselItem.js +8 -21
- package/es/components/CoachmarkOverlayElements/CoachmarkOverlayElements.js +6 -7
- package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +3 -1
- package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +1 -0
- package/es/components/Datagrid/Datagrid/DatagridRow.js +19 -10
- package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +19 -1
- package/es/components/Datagrid/Datagrid/DatagridToolbar.js +15 -1
- package/es/components/Datagrid/Datagrid/addons/stateReducer.js +67 -24
- package/es/components/Datagrid/useExpandedRow.js +3 -6
- package/es/components/Datagrid/useFocusRowExpander.js +40 -0
- package/es/components/Datagrid/useNestedRowExpander.js +9 -0
- package/es/components/Datagrid/useNestedRows.js +0 -4
- package/es/components/Datagrid/useRowExpander.js +9 -0
- package/es/components/Datagrid/useSelectRows.js +23 -11
- package/es/components/Guidebanner/Guidebanner.js +9 -12
- package/es/global/js/package-settings.js +0 -2
- package/lib/components/Carousel/Carousel.js +190 -114
- package/lib/components/Carousel/CarouselItem.js +9 -25
- package/lib/components/CoachmarkOverlayElements/CoachmarkOverlayElements.js +6 -7
- package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +3 -1
- package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +1 -0
- package/lib/components/Datagrid/Datagrid/DatagridRow.js +13 -3
- package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +19 -1
- package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +15 -1
- package/lib/components/Datagrid/Datagrid/addons/stateReducer.js +70 -26
- package/lib/components/Datagrid/useExpandedRow.js +2 -5
- package/lib/components/Datagrid/useFocusRowExpander.js +46 -0
- package/lib/components/Datagrid/useNestedRowExpander.js +9 -0
- package/lib/components/Datagrid/useNestedRows.js +0 -4
- package/lib/components/Datagrid/useRowExpander.js +9 -0
- package/lib/components/Datagrid/useSelectRows.js +17 -4
- package/lib/components/Guidebanner/Guidebanner.js +9 -12
- package/lib/global/js/package-settings.js +0 -2
- package/package.json +2 -2
- package/scss/components/Carousel/_carousel.scss +1 -2
- package/scss/components/Datagrid/styles/_useExpandedRow.scss +21 -0
- package/scss/components/Datagrid/styles/addons/_RowSizeDropdown.scss +9 -0
- package/es/components/Carousel/utils.js +0 -98
- package/lib/components/Carousel/utils.js +0 -108
@@ -15,6 +15,7 @@ var _useResizeObserver2 = require("../../../global/js/hooks/useResizeObserver");
|
|
15
15
|
var _ButtonMenu = require("../../ButtonMenu");
|
16
16
|
var _settings = require("../../../settings");
|
17
17
|
var _classnames = _interopRequireDefault(require("classnames"));
|
18
|
+
var _stateReducer = require("./addons/stateReducer");
|
18
19
|
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); }
|
19
20
|
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; }
|
20
21
|
/**
|
@@ -45,8 +46,11 @@ var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridS
|
|
45
46
|
toggleAllRowsSelected = datagridState.toggleAllRowsSelected,
|
46
47
|
toolbarBatchActions = datagridState.toolbarBatchActions,
|
47
48
|
setGlobalFilter = datagridState.setGlobalFilter,
|
49
|
+
dispatch = datagridState.dispatch,
|
50
|
+
getRowId = datagridState.getRowId,
|
48
51
|
batchActionMenuButtonLabel = datagridState.batchActionMenuButtonLabel,
|
49
|
-
translateWithIdBatchActions = datagridState.translateWithIdBatchActions
|
52
|
+
translateWithIdBatchActions = datagridState.translateWithIdBatchActions,
|
53
|
+
rows = datagridState.rows;
|
50
54
|
var batchActionMenuButtonLabelText = batchActionMenuButtonLabel !== null && batchActionMenuButtonLabel !== void 0 ? batchActionMenuButtonLabel : 'More';
|
51
55
|
var selectedKeys = Object.keys(selectedRowIds || {});
|
52
56
|
var totalSelected = selectedKeys.length;
|
@@ -94,6 +98,11 @@ var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridS
|
|
94
98
|
batchAction.onClick();
|
95
99
|
if (batchAction.type === 'select_all') {
|
96
100
|
toggleAllRowsSelected(true);
|
101
|
+
(0, _stateReducer.handleSelectAllRowData)({
|
102
|
+
dispatch: dispatch,
|
103
|
+
rows: rows,
|
104
|
+
getRowId: getRowId
|
105
|
+
});
|
97
106
|
}
|
98
107
|
}
|
99
108
|
});
|
@@ -121,6 +130,11 @@ var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridS
|
|
121
130
|
batchAction.onClick();
|
122
131
|
if (batchAction.type === 'select_all') {
|
123
132
|
toggleAllRowsSelected(true);
|
133
|
+
(0, _stateReducer.handleSelectAllRowData)({
|
134
|
+
dispatch: dispatch,
|
135
|
+
rows: rows,
|
136
|
+
getRowId: getRowId
|
137
|
+
});
|
124
138
|
}
|
125
139
|
},
|
126
140
|
iconDescription: batchAction.label
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
5
5
|
value: true
|
6
6
|
});
|
7
|
-
exports.stateReducer = exports.handleToggleRowSelected = exports.handleColumnResizingEvent = exports.handleColumnResizeEndEvent = void 0;
|
7
|
+
exports.stateReducer = exports.handleToggleRowSelected = exports.handleSelectAllRowData = exports.handleColumnResizingEvent = exports.handleColumnResizeEndEvent = void 0;
|
8
8
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
@@ -16,6 +16,7 @@ var COLUMN_RESIZING = 'columnResizing';
|
|
16
16
|
var COLUMN_RESIZE_END = 'columnDoneResizing';
|
17
17
|
var INIT = 'init';
|
18
18
|
var TOGGLE_ROW_SELECTED = 'toggleRowSelected';
|
19
|
+
var TOGGLE_ALL_ROWS_SELECTED = 'toggleAllRowsSelected';
|
19
20
|
var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
|
20
21
|
var handleColumnResizeEndEvent = function handleColumnResizeEndEvent(dispatch, onColResizeEnd, headerId, isKeyEvent) {
|
21
22
|
dispatch({
|
@@ -49,36 +50,79 @@ var handleColumnResizingEvent = function handleColumnResizingEvent(dispatch, hea
|
|
49
50
|
});
|
50
51
|
};
|
51
52
|
exports.handleColumnResizingEvent = handleColumnResizingEvent;
|
52
|
-
var handleToggleRowSelected = function handleToggleRowSelected(
|
53
|
+
var handleToggleRowSelected = function handleToggleRowSelected(_ref) {
|
54
|
+
var dispatch = _ref.dispatch,
|
55
|
+
rowData = _ref.rowData,
|
56
|
+
isChecked = _ref.isChecked,
|
57
|
+
getRowId = _ref.getRowId,
|
58
|
+
selectAll = _ref.selectAll;
|
53
59
|
return dispatch({
|
54
60
|
type: TOGGLE_ROW_SELECTED,
|
55
61
|
payload: {
|
56
62
|
rowData: rowData,
|
57
|
-
isChecked: isChecked
|
63
|
+
isChecked: isChecked,
|
64
|
+
getRowId: getRowId,
|
65
|
+
selectAll: selectAll
|
58
66
|
}
|
59
67
|
});
|
60
68
|
};
|
61
69
|
exports.handleToggleRowSelected = handleToggleRowSelected;
|
70
|
+
var handleSelectAllRowData = function handleSelectAllRowData(_ref2) {
|
71
|
+
var dispatch = _ref2.dispatch,
|
72
|
+
rows = _ref2.rows,
|
73
|
+
getRowId = _ref2.getRowId,
|
74
|
+
indeterminate = _ref2.indeterminate,
|
75
|
+
isChecked = _ref2.isChecked;
|
76
|
+
return dispatch({
|
77
|
+
type: TOGGLE_ALL_ROWS_SELECTED,
|
78
|
+
payload: {
|
79
|
+
rows: rows,
|
80
|
+
getRowId: getRowId,
|
81
|
+
indeterminate: indeterminate,
|
82
|
+
isChecked: isChecked
|
83
|
+
}
|
84
|
+
});
|
85
|
+
};
|
86
|
+
exports.handleSelectAllRowData = handleSelectAllRowData;
|
62
87
|
var stateReducer = function stateReducer(newState, action) {
|
63
88
|
switch (action.type) {
|
89
|
+
case TOGGLE_ALL_ROWS_SELECTED:
|
90
|
+
{
|
91
|
+
var _ref3 = action.payload || {},
|
92
|
+
rows = _ref3.rows,
|
93
|
+
getRowId = _ref3.getRowId,
|
94
|
+
indeterminate = _ref3.indeterminate,
|
95
|
+
isChecked = _ref3.isChecked;
|
96
|
+
if (rows) {
|
97
|
+
var newSelectedRowData = {};
|
98
|
+
rows.forEach(function (row) {
|
99
|
+
newSelectedRowData[getRowId(row, row.index)] = row;
|
100
|
+
});
|
101
|
+
return _objectSpread(_objectSpread({}, newState), {}, {
|
102
|
+
selectedRowData: indeterminate || !isChecked ? {} : newSelectedRowData
|
103
|
+
});
|
104
|
+
}
|
105
|
+
return _objectSpread({}, newState);
|
106
|
+
}
|
64
107
|
case TOGGLE_ROW_SELECTED:
|
65
108
|
{
|
66
|
-
var
|
67
|
-
rowData =
|
68
|
-
|
109
|
+
var _ref4 = action.payload || {},
|
110
|
+
rowData = _ref4.rowData,
|
111
|
+
_isChecked = _ref4.isChecked,
|
112
|
+
_getRowId = _ref4.getRowId;
|
69
113
|
if (!rowData) {
|
70
114
|
return;
|
71
115
|
}
|
72
|
-
if (
|
116
|
+
if (_isChecked) {
|
73
117
|
return _objectSpread(_objectSpread({}, newState), {}, {
|
74
|
-
selectedRowData: _objectSpread(_objectSpread({}, newState.selectedRowData), {}, (0, _defineProperty2.default)({}, rowData.index, rowData))
|
118
|
+
selectedRowData: _objectSpread(_objectSpread({}, newState.selectedRowData), {}, (0, _defineProperty2.default)({}, _getRowId(rowData, rowData.index), rowData))
|
75
119
|
});
|
76
120
|
}
|
77
|
-
if (rowData && !
|
121
|
+
if (rowData && !_isChecked) {
|
78
122
|
var newData = _objectSpread({}, newState.selectedRowData);
|
79
|
-
var dataWithRemovedRow = Object.fromEntries(Object.entries(newData).filter(function (
|
80
|
-
var
|
81
|
-
key =
|
123
|
+
var dataWithRemovedRow = Object.fromEntries(Object.entries(newData).filter(function (_ref5) {
|
124
|
+
var _ref6 = (0, _slicedToArray2.default)(_ref5, 1),
|
125
|
+
key = _ref6[0];
|
82
126
|
return parseInt(key) !== parseInt(rowData.index);
|
83
127
|
}));
|
84
128
|
return _objectSpread(_objectSpread({}, newState), {}, {
|
@@ -95,27 +139,27 @@ var stateReducer = function stateReducer(newState, action) {
|
|
95
139
|
}
|
96
140
|
case COLUMN_RESIZE_START:
|
97
141
|
{
|
98
|
-
var
|
99
|
-
headerId =
|
142
|
+
var _ref7 = action.payload || {},
|
143
|
+
headerId = _ref7.headerId;
|
100
144
|
return _objectSpread(_objectSpread({}, newState), {}, {
|
101
145
|
isResizing: headerId
|
102
146
|
});
|
103
147
|
}
|
104
148
|
case COLUMN_RESIZING:
|
105
149
|
{
|
106
|
-
var
|
107
|
-
_headerId =
|
108
|
-
newWidth =
|
109
|
-
defaultWidth =
|
150
|
+
var _ref8 = action.payload || {},
|
151
|
+
_headerId = _ref8.headerId,
|
152
|
+
newWidth = _ref8.newWidth,
|
153
|
+
defaultWidth = _ref8.defaultWidth;
|
110
154
|
var newColumnWidth = {};
|
111
155
|
if (typeof _headerId === 'undefined') {
|
112
156
|
return _objectSpread({}, newState);
|
113
157
|
}
|
114
158
|
newColumnWidth[_headerId] = newWidth;
|
115
|
-
var cleanedWidths = Object.fromEntries(Object.entries(newState.columnResizing.columnWidths).filter(function (
|
116
|
-
var
|
117
|
-
_ =
|
118
|
-
value =
|
159
|
+
var cleanedWidths = Object.fromEntries(Object.entries(newState.columnResizing.columnWidths).filter(function (_ref9) {
|
160
|
+
var _ref10 = (0, _slicedToArray2.default)(_ref9, 2),
|
161
|
+
_ = _ref10[0],
|
162
|
+
value = _ref10[1];
|
119
163
|
return !isNaN(value);
|
120
164
|
}));
|
121
165
|
var headerIdArray = newState.columnResizing.headerIdWidths || [];
|
@@ -130,10 +174,10 @@ var stateReducer = function stateReducer(newState, action) {
|
|
130
174
|
}
|
131
175
|
case COLUMN_RESIZE_END:
|
132
176
|
{
|
133
|
-
var
|
134
|
-
onColResizeEnd =
|
135
|
-
_headerId2 =
|
136
|
-
isKeyEvent =
|
177
|
+
var _ref11 = action.payload || {},
|
178
|
+
onColResizeEnd = _ref11.onColResizeEnd,
|
179
|
+
_headerId2 = _ref11.headerId,
|
180
|
+
isKeyEvent = _ref11.isKeyEvent;
|
137
181
|
var currentColumn = {};
|
138
182
|
currentColumn[_headerId2] = newState.columnResizing.columnWidths[_headerId2];
|
139
183
|
var allChangedColumns = newState.columnResizing.columnWidths;
|
@@ -8,15 +8,11 @@ exports.default = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
10
10
|
var _react = require("react");
|
11
|
-
var _settings = require("../../settings");
|
12
11
|
var _DatagridExpandedRow = _interopRequireDefault(require("./Datagrid/DatagridExpandedRow"));
|
13
12
|
var _useRowExpander = _interopRequireDefault(require("./useRowExpander"));
|
14
13
|
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
14
|
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
15
|
var useExpandedRow = function useExpandedRow(hooks) {
|
17
|
-
(0, _react.useEffect)(function () {
|
18
|
-
_settings.pkg.checkReportFeatureEnabled('Datagrid.useExpandedRow');
|
19
|
-
}, []);
|
20
16
|
(0, _useRowExpander.default)(hooks);
|
21
17
|
var useInstance = function useInstance(instance) {
|
22
18
|
var rows = instance.rows,
|
@@ -38,7 +34,8 @@ var useExpandedRow = function useExpandedRow(hooks) {
|
|
38
34
|
});
|
39
35
|
Object.assign(instance, {
|
40
36
|
rows: rowsWithExpand,
|
41
|
-
setExpandedRowHeight: setExpandedRowHeight
|
37
|
+
setExpandedRowHeight: setExpandedRowHeight,
|
38
|
+
withExpandedRows: true
|
42
39
|
});
|
43
40
|
};
|
44
41
|
hooks.useInstance.push(useInstance);
|
@@ -0,0 +1,46 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.useFocusRowExpander = void 0;
|
7
|
+
var _react = require("react");
|
8
|
+
/**
|
9
|
+
* Copyright IBM Corp. 2023, 2023
|
10
|
+
*
|
11
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
12
|
+
* LICENSE file in the root directory of this source tree.
|
13
|
+
*/
|
14
|
+
|
15
|
+
// Focuses the row expander after a nested/expandable row state change.
|
16
|
+
// We have to add this workaround because react-table is re-rendering the entire row
|
17
|
+
// which removes the focus from the expander and interrupts the keyboard navigation
|
18
|
+
// flow.
|
19
|
+
var useFocusRowExpander = function useFocusRowExpander(_ref) {
|
20
|
+
var instance = _ref.instance,
|
21
|
+
_ref$lastExpandedRowI = _ref.lastExpandedRowIndex,
|
22
|
+
lastExpandedRowIndex = _ref$lastExpandedRowI === void 0 ? 0 : _ref$lastExpandedRowI,
|
23
|
+
blockClass = _ref.blockClass,
|
24
|
+
activeElement = _ref.activeElement;
|
25
|
+
(0, _react.useEffect)(function () {
|
26
|
+
// We need to return at this point so that the focus is not stolen from
|
27
|
+
// other interactive elements in the Datagrid
|
28
|
+
if (!activeElement.classList.contains("".concat(blockClass, "__row-expander"))) {
|
29
|
+
return;
|
30
|
+
}
|
31
|
+
var tableId = instance === null || instance === void 0 ? void 0 : instance.tableId;
|
32
|
+
var rowElements = document.querySelectorAll("#".concat(tableId, " tbody tr"));
|
33
|
+
var rowElementsArray = Array.from(rowElements);
|
34
|
+
var activeRow = rowElementsArray.filter(function (r) {
|
35
|
+
if (r.getAttribute('data-nested-row-id') === lastExpandedRowIndex) {
|
36
|
+
return r;
|
37
|
+
}
|
38
|
+
return null;
|
39
|
+
});
|
40
|
+
if (activeRow.length) {
|
41
|
+
var rowExpander = activeRow[0].querySelector(".".concat(blockClass, "__row-expander"));
|
42
|
+
rowExpander.focus();
|
43
|
+
}
|
44
|
+
}, [instance === null || instance === void 0 ? void 0 : instance.tableId, instance === null || instance === void 0 ? void 0 : instance.expandedRows, lastExpandedRowIndex, blockClass, activeElement]);
|
45
|
+
};
|
46
|
+
exports.useFocusRowExpander = useFocusRowExpander;
|
@@ -13,6 +13,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
13
13
|
var _iconsReact = require("@carbon/icons-react");
|
14
14
|
var _classnames = _interopRequireDefault(require("classnames"));
|
15
15
|
var _settings = require("../../settings");
|
16
|
+
var _useFocusRowExpander = require("./useFocusRowExpander");
|
16
17
|
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); }
|
17
18
|
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; }
|
18
19
|
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; }
|
@@ -20,9 +21,16 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
20
21
|
var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
|
21
22
|
var useNestedRowExpander = function useNestedRowExpander(hooks) {
|
22
23
|
var tempState = (0, _react.useRef)();
|
24
|
+
var lastExpandedRowIndex = (0, _react.useRef)();
|
23
25
|
var useInstance = function useInstance(instance) {
|
24
26
|
tempState.current = instance;
|
25
27
|
};
|
28
|
+
(0, _useFocusRowExpander.useFocusRowExpander)({
|
29
|
+
instance: tempState === null || tempState === void 0 ? void 0 : tempState.current,
|
30
|
+
lastExpandedRowIndex: lastExpandedRowIndex === null || lastExpandedRowIndex === void 0 ? void 0 : lastExpandedRowIndex.current,
|
31
|
+
blockClass: blockClass,
|
32
|
+
activeElement: document.activeElement
|
33
|
+
});
|
26
34
|
var visibleColumns = function visibleColumns(columns) {
|
27
35
|
var expanderColumn = {
|
28
36
|
id: 'expander',
|
@@ -34,6 +42,7 @@ var useNestedRowExpander = function useNestedRowExpander(hooks) {
|
|
34
42
|
// Prevents `onRowClick` from being called if `useOnRowClick` is included
|
35
43
|
event.stopPropagation();
|
36
44
|
row.toggleRowExpanded();
|
45
|
+
lastExpandedRowIndex.current = row.id;
|
37
46
|
}
|
38
47
|
});
|
39
48
|
var _ref2 = (tempState === null || tempState === void 0 ? void 0 : tempState.current) || {},
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
});
|
7
7
|
exports.default = void 0;
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
9
|
-
var _react = require("react");
|
10
9
|
var _settings = require("../../settings");
|
11
10
|
var _classnames = _interopRequireDefault(require("classnames"));
|
12
11
|
var _useNestedRowExpander = _interopRequireDefault(require("./useNestedRowExpander"));
|
@@ -19,9 +18,6 @@ var _useNestedRowExpander = _interopRequireDefault(require("./useNestedRowExpand
|
|
19
18
|
|
20
19
|
var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
|
21
20
|
var useNestedRows = function useNestedRows(hooks) {
|
22
|
-
(0, _react.useEffect)(function () {
|
23
|
-
_settings.pkg.checkReportFeatureEnabled('Datagrid.useNestedRows');
|
24
|
-
}, []);
|
25
21
|
(0, _useNestedRowExpander.default)(hooks);
|
26
22
|
var marginLeft = 24;
|
27
23
|
var getRowProps = function getRowProps(props, _ref) {
|
@@ -13,6 +13,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
13
13
|
var _iconsReact = require("@carbon/icons-react");
|
14
14
|
var _classnames = _interopRequireDefault(require("classnames"));
|
15
15
|
var _settings = require("../../settings");
|
16
|
+
var _useFocusRowExpander = require("./useFocusRowExpander");
|
16
17
|
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); }
|
17
18
|
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; }
|
18
19
|
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; }
|
@@ -20,9 +21,16 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
20
21
|
var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
|
21
22
|
var useRowExpander = function useRowExpander(hooks) {
|
22
23
|
var tempState = (0, _react.useRef)();
|
24
|
+
var lastExpandedRowIndex = (0, _react.useRef)();
|
23
25
|
var useInstance = function useInstance(instance) {
|
24
26
|
tempState.current = instance;
|
25
27
|
};
|
28
|
+
(0, _useFocusRowExpander.useFocusRowExpander)({
|
29
|
+
instance: tempState === null || tempState === void 0 ? void 0 : tempState.current,
|
30
|
+
lastExpandedRowIndex: lastExpandedRowIndex === null || lastExpandedRowIndex === void 0 ? void 0 : lastExpandedRowIndex.current,
|
31
|
+
blockClass: blockClass,
|
32
|
+
activeElement: document.activeElement
|
33
|
+
});
|
26
34
|
var visibleColumns = function visibleColumns(columns) {
|
27
35
|
var expanderColumn = {
|
28
36
|
id: 'expander',
|
@@ -33,6 +41,7 @@ var useRowExpander = function useRowExpander(hooks) {
|
|
33
41
|
// Prevents `onRowClick` from being called if `useOnRowClick` is included
|
34
42
|
event.stopPropagation();
|
35
43
|
row.toggleRowExpanded();
|
44
|
+
lastExpandedRowIndex.current = row.id;
|
36
45
|
}
|
37
46
|
});
|
38
47
|
var _ref2 = (tempState === null || tempState === void 0 ? void 0 : tempState.current) || {},
|
@@ -45,7 +45,14 @@ var useSelectRows = function useSelectRows(hooks) {
|
|
45
45
|
});
|
46
46
|
});
|
47
47
|
hooks.visibleColumns.push(function (columns) {
|
48
|
-
|
48
|
+
// Ensures that the first column is the row expander in the
|
49
|
+
// case of selected rows and expandable rows being used together
|
50
|
+
var newColOrder = (0, _toConsumableArray2.default)(columns);
|
51
|
+
var expanderColumnIndex = newColOrder.findIndex(function (col) {
|
52
|
+
return col.id === 'expander';
|
53
|
+
});
|
54
|
+
var expanderCol = expanderColumnIndex > -1 ? newColOrder.splice(expanderColumnIndex, 1) : [];
|
55
|
+
return [].concat((0, _toConsumableArray2.default)(expanderColumnIndex > -1 && expanderCol && expanderCol.length ? expanderCol : []), [{
|
49
56
|
id: _commonColumnIds.selectionColumnId,
|
50
57
|
Header: function Header(gridState) {
|
51
58
|
return /*#__PURE__*/_react.default.createElement(_DatagridSelectAll.SelectAll, gridState);
|
@@ -53,7 +60,7 @@ var useSelectRows = function useSelectRows(hooks) {
|
|
53
60
|
Cell: function Cell(gridState) {
|
54
61
|
return /*#__PURE__*/_react.default.createElement(SelectRow, gridState);
|
55
62
|
}
|
56
|
-
}]
|
63
|
+
}], (0, _toConsumableArray2.default)(newColOrder));
|
57
64
|
});
|
58
65
|
};
|
59
66
|
var useHighlightSelection = function useHighlightSelection(hooks) {
|
@@ -81,7 +88,8 @@ var SelectRow = function SelectRow(datagridState) {
|
|
81
88
|
onRowSelect = datagridState.onRowSelect,
|
82
89
|
columns = datagridState.columns,
|
83
90
|
withStickyColumn = datagridState.withStickyColumn,
|
84
|
-
dispatch = datagridState.dispatch
|
91
|
+
dispatch = datagridState.dispatch,
|
92
|
+
getRowId = datagridState.getRowId;
|
85
93
|
var _useState = (0, _react.useState)(window.innerWidth),
|
86
94
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
87
95
|
windowSize = _useState2[0],
|
@@ -112,7 +120,12 @@ var SelectRow = function SelectRow(datagridState) {
|
|
112
120
|
}
|
113
121
|
onChange(event);
|
114
122
|
onRowSelect === null || onRowSelect === void 0 ? void 0 : onRowSelect(row, event);
|
115
|
-
(0, _stateReducer.handleToggleRowSelected)(
|
123
|
+
(0, _stateReducer.handleToggleRowSelected)({
|
124
|
+
dispatch: dispatch,
|
125
|
+
rowData: row,
|
126
|
+
isChecked: event.target.checked,
|
127
|
+
getRowId: getRowId
|
128
|
+
});
|
116
129
|
};
|
117
130
|
var rowId = "".concat(tableId, "-").concat(row.index);
|
118
131
|
return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TableSelectRow, (0, _extends2.default)({}, cellProps, selectProps, {
|
@@ -73,9 +73,6 @@ var Guidebanner = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
73
73
|
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
74
74
|
isCollapsed = _useState6[0],
|
75
75
|
setIsCollapsed = _useState6[1];
|
76
|
-
var handleScrollableChange = function handleScrollableChange(value) {
|
77
|
-
setShowNavigation(value);
|
78
|
-
};
|
79
76
|
var handleClickToggle = function handleClickToggle() {
|
80
77
|
setScrollPosition(0);
|
81
78
|
scrollRef.current.scrollToView(0);
|
@@ -100,9 +97,13 @@ var Guidebanner = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
100
97
|
left: _colors.blue90,
|
101
98
|
right: _colors.purple70
|
102
99
|
},
|
103
|
-
|
104
|
-
|
105
|
-
|
100
|
+
onChangeIsScrollable: function onChangeIsScrollable(value) {
|
101
|
+
setShowNavigation(value);
|
102
|
+
},
|
103
|
+
onScroll: function onScroll(scrollPercent) {
|
104
|
+
setScrollPosition(scrollPercent);
|
105
|
+
},
|
106
|
+
ref: scrollRef
|
106
107
|
}, children), /*#__PURE__*/_react.default.createElement("div", {
|
107
108
|
className: (0, _classnames.default)([collapsible || showNavigation ? "".concat(blockClass, "__navigation") : null])
|
108
109
|
}, collapsible && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
|
@@ -121,9 +122,7 @@ var Guidebanner = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
121
122
|
tooltipPosition: "top",
|
122
123
|
iconDescription: previousIconDescription,
|
123
124
|
onClick: function onClick() {
|
124
|
-
scrollRef.current.scrollPrev()
|
125
|
-
return setScrollPosition(scrollPercentage);
|
126
|
-
});
|
125
|
+
scrollRef.current.scrollPrev();
|
127
126
|
}
|
128
127
|
}), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
|
129
128
|
kind: "ghost",
|
@@ -136,9 +135,7 @@ var Guidebanner = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
136
135
|
tooltipAlignment: "end",
|
137
136
|
iconDescription: nextIconDescription,
|
138
137
|
onClick: function onClick() {
|
139
|
-
scrollRef.current.scrollNext()
|
140
|
-
return setScrollPosition(scrollPercentage);
|
141
|
-
});
|
138
|
+
scrollRef.current.scrollNext();
|
142
139
|
}
|
143
140
|
}))), onClose && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
|
144
141
|
className: "".concat(blockClass, "__close-button"),
|
@@ -95,8 +95,6 @@ var defaults = {
|
|
95
95
|
feature: {
|
96
96
|
'a-new-feature': false,
|
97
97
|
'default-portal-target-body': true,
|
98
|
-
'Datagrid.useExpandedRow': false,
|
99
|
-
'Datagrid.useNestedRows': false,
|
100
98
|
'Datagrid.useInlineEdit': false,
|
101
99
|
'Datagrid.useFiltering': false,
|
102
100
|
'Datagrid.useCustomizeColumns': false,
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@carbon/ibm-products",
|
3
3
|
"description": "Carbon for IBM Products",
|
4
|
-
"version": "1.62.
|
4
|
+
"version": "1.62.1",
|
5
5
|
"license": "Apache-2.0",
|
6
6
|
"main": "lib/index.js",
|
7
7
|
"module": "es/index.js",
|
@@ -97,5 +97,5 @@
|
|
97
97
|
"react": "^16.8.6 || ^17.0.1",
|
98
98
|
"react-dom": "^16.8.6 || ^17.0.1"
|
99
99
|
},
|
100
|
-
"gitHead": "
|
100
|
+
"gitHead": "9de0589dad65ac5c559578d5f53c6ee31432717a"
|
101
101
|
}
|
@@ -63,3 +63,24 @@
|
|
63
63
|
.#{$block-class} .#{$block-class}__expandable-row--hover td {
|
64
64
|
background: $layer-hover;
|
65
65
|
}
|
66
|
+
|
67
|
+
.#{$block-class}
|
68
|
+
.#{$carbon-prefix}--data-table
|
69
|
+
tbody
|
70
|
+
tr:hover
|
71
|
+
td.#{$block-class}__expanded-row-cell-wrapper,
|
72
|
+
.#{$block-class}
|
73
|
+
.#{$carbon-prefix}--data-table
|
74
|
+
td.#{$block-class}__expanded-row-cell-wrapper,
|
75
|
+
.#{$block-class}
|
76
|
+
.#{$carbon-prefix}--data-table
|
77
|
+
.#{$block-class}__carbon-row-expanded
|
78
|
+
td.#{$block-class}__expandable-row-cell {
|
79
|
+
border: none;
|
80
|
+
}
|
81
|
+
|
82
|
+
.#{$block-class}
|
83
|
+
.#{$carbon-prefix}--data-table
|
84
|
+
td.#{$block-class}__expanded-row-cell-wrapper {
|
85
|
+
padding: 0;
|
86
|
+
}
|
@@ -67,3 +67,12 @@
|
|
67
67
|
.#{$block-class}__row-size__row-settings-trigger--open.#{$carbon-prefix}--btn--ghost {
|
68
68
|
background-color: $ui-02;
|
69
69
|
}
|
70
|
+
|
71
|
+
.#{$block-class}
|
72
|
+
table.#{$carbon-prefix}--data-table--xl.#{$block-class}__vertical-align-center
|
73
|
+
td.#{$block-class}__expandable-row-cell,
|
74
|
+
.#{$block-class}
|
75
|
+
table.#{$carbon-prefix}--data-table--xl.#{$block-class}__vertical-align-top
|
76
|
+
td.#{$block-class}__expandable-row-cell {
|
77
|
+
padding-top: $spacing-03;
|
78
|
+
}
|
@@ -1,98 +0,0 @@
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
2
|
-
/**
|
3
|
-
* Copyright IBM Corp. 2023, 2023
|
4
|
-
*
|
5
|
-
* This source code is licensed under the Apache-2.0 license found in the
|
6
|
-
* LICENSE file in the root directory of this source tree.
|
7
|
-
*/
|
8
|
-
|
9
|
-
import { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';
|
10
|
-
export var useIntersection = function useIntersection(element, threshold) {
|
11
|
-
var _useState = useState(false),
|
12
|
-
_useState2 = _slicedToArray(_useState, 2),
|
13
|
-
isVisible = _useState2[0],
|
14
|
-
setState = _useState2[1];
|
15
|
-
useEffect(function () {
|
16
|
-
var el = element.current;
|
17
|
-
var observer = new IntersectionObserver(function (_ref) {
|
18
|
-
var _ref2 = _slicedToArray(_ref, 1),
|
19
|
-
entry = _ref2[0];
|
20
|
-
setState(entry.isIntersecting);
|
21
|
-
}, {
|
22
|
-
threshold: threshold
|
23
|
-
});
|
24
|
-
el && observer.observe(el);
|
25
|
-
return function () {
|
26
|
-
return observer.unobserve(el);
|
27
|
-
};
|
28
|
-
}, [element, threshold]);
|
29
|
-
return isVisible;
|
30
|
-
};
|
31
|
-
export var useIsOverflow = function useIsOverflow(ref) {
|
32
|
-
var _useState3 = useState(),
|
33
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
34
|
-
isScrollable = _useState4[0],
|
35
|
-
setIsScrollable = _useState4[1];
|
36
|
-
var _useState5 = useState(),
|
37
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
38
|
-
mutationObserver = _useState6[0],
|
39
|
-
setMutationObserver = _useState6[1];
|
40
|
-
var _useState7 = useState(),
|
41
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
42
|
-
resizeObserver = _useState8[0],
|
43
|
-
setResizeObserver = _useState8[1];
|
44
|
-
var checkOverflow = useCallback(function () {
|
45
|
-
if (!ref.current) {
|
46
|
-
return;
|
47
|
-
}
|
48
|
-
var hasOverflow = ref.current.scrollWidth > ref.current.clientWidth;
|
49
|
-
setIsScrollable(hasOverflow);
|
50
|
-
}, [ref]);
|
51
|
-
useEffect(function () {
|
52
|
-
if (!mutationObserver) {
|
53
|
-
return;
|
54
|
-
}
|
55
|
-
return function () {
|
56
|
-
if (mutationObserver) {
|
57
|
-
mutationObserver.disconnect();
|
58
|
-
}
|
59
|
-
if (resizeObserver) {
|
60
|
-
resizeObserver.disconnect();
|
61
|
-
}
|
62
|
-
};
|
63
|
-
});
|
64
|
-
useLayoutEffect(function () {
|
65
|
-
var current = ref.current;
|
66
|
-
if (current) {
|
67
|
-
if ('ResizeObserver' in window && !resizeObserver) {
|
68
|
-
setResizeObserver(new ResizeObserver(checkOverflow).observe(current));
|
69
|
-
}
|
70
|
-
if ('MutationObserver' in window && !mutationObserver) {
|
71
|
-
setMutationObserver(new MutationObserver(checkOverflow).observe(current, {
|
72
|
-
attributes: false,
|
73
|
-
childList: true,
|
74
|
-
subtree: false
|
75
|
-
}));
|
76
|
-
}
|
77
|
-
checkOverflow();
|
78
|
-
}
|
79
|
-
}, [ref, checkOverflow, mutationObserver, resizeObserver]);
|
80
|
-
return isScrollable;
|
81
|
-
};
|
82
|
-
export var useWindowEvent = function useWindowEvent(eventName, callback) {
|
83
|
-
var savedCallback = useRef(null);
|
84
|
-
useEffect(function () {
|
85
|
-
savedCallback.current = callback;
|
86
|
-
});
|
87
|
-
useEffect(function () {
|
88
|
-
function handler(event) {
|
89
|
-
if (savedCallback.current) {
|
90
|
-
savedCallback.current(event);
|
91
|
-
}
|
92
|
-
}
|
93
|
-
window.addEventListener(eventName, handler);
|
94
|
-
return function () {
|
95
|
-
window.removeEventListener(eventName, handler);
|
96
|
-
};
|
97
|
-
}, [eventName]);
|
98
|
-
};
|