@carbon/ibm-products 1.59.0 → 1.60.0
Sign up to get free protection for your applications and to get access to all the features.
- package/css/index-full-carbon.css +97 -65
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +3 -3
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon.css +53 -21
- 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 +97 -65
- package/css/index.css.map +1 -1
- package/css/index.min.css +3 -3
- package/css/index.min.css.map +1 -1
- package/es/components/Checklist/ChecklistChart.js +2 -2
- package/es/components/Datagrid/Datagrid/Datagrid.js +2 -1
- package/es/components/Datagrid/Datagrid/DatagridContent.js +15 -7
- package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +3 -2
- package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +26 -13
- package/es/components/Datagrid/Datagrid/DatagridRow.js +41 -33
- package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +13 -1
- package/es/components/Datagrid/Datagrid/DatagridToolbar.js +3 -15
- package/es/components/Datagrid/Datagrid/DraggableElement.js +32 -135
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +14 -38
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +1 -0
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +128 -40
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +7 -6
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +104 -18
- package/es/components/Datagrid/Datagrid/addons/Filtering/constants.js +1 -0
- package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +37 -4
- package/es/components/Datagrid/useExpandedRow.js +1 -1
- package/es/components/Datagrid/useFiltering.js +4 -1
- package/es/components/Datagrid/useNestedRowExpander.js +22 -9
- package/es/components/Datagrid/useRowExpander.js +22 -9
- package/es/components/Datagrid/utils/DatagridPagination.js +1 -1
- package/es/components/Datagrid/utils/getArgTypes.js +12 -0
- package/es/components/EmptyStates/EmptyState.js +1 -1
- package/es/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +1 -1
- package/es/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +1 -1
- package/es/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +1 -1
- package/es/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +1 -1
- package/es/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +1 -1
- package/es/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +1 -1
- package/es/components/EmptyStates/assets/ErrorIllustration.js +6 -11
- package/es/components/EmptyStates/assets/NoDataIllustration.js +6 -11
- package/es/components/EmptyStates/assets/NoTagsIllustration.js +6 -12
- package/es/components/EmptyStates/assets/NotFoundIllustration.js +6 -12
- package/es/components/EmptyStates/assets/NotificationsIllustration.js +6 -12
- package/es/components/EmptyStates/assets/UnauthorizedIllustration.js +6 -12
- package/es/components/FilterSummary/FilterSummary.js +9 -3
- package/es/components/TagSet/TagSet.js +3 -7
- package/es/global/js/hooks/useWindowScroll.js +5 -0
- package/lib/components/Checklist/ChecklistChart.js +2 -2
- package/lib/components/Datagrid/Datagrid/Datagrid.js +2 -1
- package/lib/components/Datagrid/Datagrid/DatagridContent.js +14 -6
- package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +2 -1
- package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +26 -13
- package/lib/components/Datagrid/Datagrid/DatagridRow.js +41 -33
- package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +13 -1
- package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +3 -15
- package/lib/components/Datagrid/Datagrid/DraggableElement.js +34 -140
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +17 -38
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +1 -0
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +128 -47
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +7 -6
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +104 -24
- package/lib/components/Datagrid/Datagrid/addons/Filtering/constants.js +4 -2
- package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +36 -3
- package/lib/components/Datagrid/useExpandedRow.js +1 -1
- package/lib/components/Datagrid/useFiltering.js +4 -1
- package/lib/components/Datagrid/useNestedRowExpander.js +24 -9
- package/lib/components/Datagrid/useRowExpander.js +24 -9
- package/lib/components/Datagrid/utils/DatagridPagination.js +1 -1
- package/lib/components/Datagrid/utils/getArgTypes.js +12 -0
- package/lib/components/EmptyStates/EmptyState.js +1 -1
- package/lib/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +1 -1
- package/lib/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +1 -1
- package/lib/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +1 -1
- package/lib/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +1 -1
- package/lib/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +1 -1
- package/lib/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +1 -1
- package/lib/components/EmptyStates/assets/ErrorIllustration.js +6 -11
- package/lib/components/EmptyStates/assets/NoDataIllustration.js +6 -11
- package/lib/components/EmptyStates/assets/NoTagsIllustration.js +6 -12
- package/lib/components/EmptyStates/assets/NotFoundIllustration.js +6 -12
- package/lib/components/EmptyStates/assets/NotificationsIllustration.js +6 -12
- package/lib/components/EmptyStates/assets/UnauthorizedIllustration.js +6 -12
- package/lib/components/FilterSummary/FilterSummary.js +9 -10
- package/lib/components/TagSet/TagSet.js +2 -6
- package/lib/global/js/hooks/useWindowScroll.js +6 -0
- package/package.json +8 -7
- package/scss/components/Datagrid/_datagrid.scss +1 -1
- package/scss/components/Datagrid/styles/_datagrid.scss +5 -0
- package/scss/components/Datagrid/styles/_draggableElement.scss +44 -20
- package/scss/components/Datagrid/styles/_useExpandedRow.scss +10 -0
- package/scss/components/Datagrid/styles/addons/_CustomizeColumnsTearsheet.scss +0 -1
@@ -15,6 +15,8 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
15
|
var _commonColumnIds = require("../common-column-ids");
|
16
16
|
var _settings = require("../../../settings");
|
17
17
|
var _excluded = ["children"];
|
18
|
+
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; }
|
19
|
+
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; }
|
18
20
|
var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
|
19
21
|
var TableRow = _carbonComponentsReact.DataTable.TableRow,
|
20
22
|
TableCell = _carbonComponentsReact.DataTable.TableCell;
|
@@ -31,7 +33,8 @@ var DatagridRow = function DatagridRow(datagridState) {
|
|
31
33
|
var _cx;
|
32
34
|
var row = datagridState.row,
|
33
35
|
rowSize = datagridState.rowSize,
|
34
|
-
withNestedRows = datagridState.withNestedRows
|
36
|
+
withNestedRows = datagridState.withNestedRows,
|
37
|
+
prepareRow = datagridState.prepareRow;
|
35
38
|
var getVisibleNestedRowCount = function getVisibleNestedRowCount(_ref) {
|
36
39
|
var isExpanded = _ref.isExpanded,
|
37
40
|
subRows = _ref.subRows;
|
@@ -46,6 +49,9 @@ var DatagridRow = function DatagridRow(datagridState) {
|
|
46
49
|
};
|
47
50
|
var hoverHandler = function hoverHandler(event) {
|
48
51
|
var _hoverRow$style, _hoverRow$style2, _hoverRow$style3;
|
52
|
+
if (!withNestedRows) {
|
53
|
+
return;
|
54
|
+
}
|
49
55
|
var subRowCount = getVisibleNestedRowCount(row);
|
50
56
|
var totalNestedRowIndicatorHeight = (0, _layout.px)(subRowCount * rowHeights[rowSize]);
|
51
57
|
var hoverRow = event.target.closest(".".concat(blockClass, "__carbon-row-expanded"));
|
@@ -62,48 +68,50 @@ var DatagridRow = function DatagridRow(datagridState) {
|
|
62
68
|
el.classList.remove("".concat(blockClass, "__carbon-row-expanded-hover-active"));
|
63
69
|
});
|
64
70
|
};
|
65
|
-
|
66
|
-
|
71
|
+
var renderExpandedRow = function renderExpandedRow() {
|
72
|
+
if (row.isExpanded) {
|
73
|
+
var _row$RowExpansionRend;
|
74
|
+
prepareRow(row);
|
75
|
+
return row === null || row === void 0 ? void 0 : (_row$RowExpansionRend = row.RowExpansionRenderer) === null || _row$RowExpansionRend === void 0 ? void 0 : _row$RowExpansionRend.call(row, _objectSpread(_objectSpread({}, datagridState), {}, {
|
76
|
+
row: row
|
77
|
+
}));
|
78
|
+
}
|
79
|
+
return null;
|
80
|
+
};
|
81
|
+
var handleMouseLeave = function handleMouseLeave(event) {
|
82
|
+
var hoverRow = event.target.closest(".".concat(blockClass, "__carbon-row-expanded"));
|
83
|
+
hoverRow === null || hoverRow === void 0 ? void 0 : hoverRow.classList.remove("".concat(blockClass, "__carbon-row-expanded-hover-active"));
|
84
|
+
};
|
85
|
+
var handleOnKeyUp = function handleOnKeyUp(event) {
|
86
|
+
if (!withNestedRows) {
|
87
|
+
return;
|
88
|
+
}
|
89
|
+
if (event.key === 'Enter' || event.key === 'Space') {
|
90
|
+
focusRemover();
|
91
|
+
hoverHandler(event);
|
92
|
+
}
|
93
|
+
};
|
94
|
+
var rowClassNames = (0, _classnames.default)("".concat(blockClass, "__carbon-row"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expandable"), row.canExpand), (0, _defineProperty2.default)(_cx, "".concat(_settings.carbon.prefix, "--data-table--selected"), row.isSelected), _cx));
|
95
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(TableRow, (0, _extends2.default)({
|
96
|
+
className: rowClassNames
|
67
97
|
}, row.getRowProps({
|
68
98
|
role: false
|
69
99
|
}), {
|
70
100
|
key: row.id,
|
71
|
-
onMouseEnter:
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
},
|
77
|
-
onMouseLeave: function onMouseLeave(event) {
|
78
|
-
var hoverRow = event.target.closest(".".concat(blockClass, "__carbon-row-expanded"));
|
79
|
-
hoverRow === null || hoverRow === void 0 ? void 0 : hoverRow.classList.remove("".concat(blockClass, "__carbon-row-expanded-hover-active"));
|
80
|
-
},
|
81
|
-
onFocus: function onFocus(event) {
|
82
|
-
if (!withNestedRows) {
|
83
|
-
return;
|
84
|
-
}
|
85
|
-
hoverHandler(event);
|
86
|
-
},
|
87
|
-
onBlur: function onBlur() {
|
88
|
-
focusRemover();
|
89
|
-
},
|
90
|
-
onKeyUp: function onKeyUp(event) {
|
91
|
-
if (!withNestedRows) {
|
92
|
-
return;
|
93
|
-
}
|
94
|
-
if (event.key === 'Enter' || event.key === 'Space') {
|
95
|
-
focusRemover();
|
96
|
-
hoverHandler(event);
|
97
|
-
}
|
98
|
-
}
|
101
|
+
onMouseEnter: hoverHandler,
|
102
|
+
onMouseLeave: handleMouseLeave,
|
103
|
+
onFocus: hoverHandler,
|
104
|
+
onBlur: focusRemover,
|
105
|
+
onKeyUp: handleOnKeyUp
|
99
106
|
}), row.cells.map(function (cell, index) {
|
107
|
+
var _cell$column;
|
100
108
|
var cellProps = cell.getCellProps({
|
101
109
|
role: false
|
102
110
|
});
|
103
111
|
var children = cellProps.children,
|
104
112
|
restProps = (0, _objectWithoutProperties2.default)(cellProps, _excluded);
|
105
113
|
var content = children || /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !row.isSkeleton && cell.render('Cell'), row.isSkeleton && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.SkeletonText, null));
|
106
|
-
if (cell
|
114
|
+
if ((cell === null || cell === void 0 ? void 0 : (_cell$column = cell.column) === null || _cell$column === void 0 ? void 0 : _cell$column.id) === _commonColumnIds.selectionColumnId) {
|
107
115
|
// directly render component without the wrapping TableCell
|
108
116
|
return cell.render('Cell', {
|
109
117
|
key: cell.column.id
|
@@ -114,7 +122,7 @@ var DatagridRow = function DatagridRow(datagridState) {
|
|
114
122
|
}, restProps, {
|
115
123
|
key: cell.column.id
|
116
124
|
}), content);
|
117
|
-
}));
|
125
|
+
})), renderExpandedRow());
|
118
126
|
};
|
119
127
|
var _default = DatagridRow;
|
120
128
|
exports.default = _default;
|
@@ -52,11 +52,23 @@ var SelectAll = function SelectAll(datagridState) {
|
|
52
52
|
var _getProps = getProps(),
|
53
53
|
onChange = _getProps.onChange,
|
54
54
|
selectProps = (0, _objectWithoutProperties2.default)(_getProps, _excluded);
|
55
|
+
var _ref = selectProps || {},
|
56
|
+
indeterminate = _ref.indeterminate;
|
57
|
+
var handleSelectAllChange = function handleSelectAllChange(event) {
|
58
|
+
if (indeterminate) {
|
59
|
+
return onChange === null || onChange === void 0 ? void 0 : onChange({
|
60
|
+
target: {
|
61
|
+
checked: false
|
62
|
+
}
|
63
|
+
});
|
64
|
+
}
|
65
|
+
return onChange === null || onChange === void 0 ? void 0 : onChange(event);
|
66
|
+
};
|
55
67
|
return /*#__PURE__*/_react.default.createElement("div", {
|
56
68
|
className: (0, _classnames.default)("".concat(blockClass, "__head-select-all"), "".concat(blockClass, "__checkbox-cell"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__checkbox-cell-sticky-left"), isFirstColumnStickyLeft && windowSize > 671))
|
57
69
|
}, /*#__PURE__*/_react.default.createElement(TableSelectAll, (0, _extends2.default)({}, selectProps, {
|
58
70
|
name: "".concat(tableId, "-select-all-checkbox-name"),
|
59
|
-
onSelect:
|
71
|
+
onSelect: handleSelectAllChange,
|
60
72
|
disabled: isFetching || selectProps.disabled,
|
61
73
|
id: "".concat(tableId, "-select-all-checkbox-id")
|
62
74
|
})));
|
@@ -18,7 +18,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
18
18
|
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
19
|
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
20
|
/**
|
21
|
-
* Copyright IBM Corp. 2022,
|
21
|
+
* Copyright IBM Corp. 2022, 2023
|
22
22
|
*
|
23
23
|
* This source code is licensed under the Apache-2.0 license found in the
|
24
24
|
* LICENSE file in the root directory of this source tree.
|
@@ -80,20 +80,8 @@ var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridS
|
|
80
80
|
menuOptionsClass: "".concat(blockClass, "__button-menu-options"),
|
81
81
|
flipped: true
|
82
82
|
}, toolbarBatchActions && toolbarBatchActions.map(function (batchAction, index) {
|
83
|
-
if (index < 2) {
|
84
|
-
|
85
|
-
return /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenuItem, {
|
86
|
-
key: "".concat(batchAction.label, "-").concat(index),
|
87
|
-
itemText: batchAction.label,
|
88
|
-
onClick: function onClick() {
|
89
|
-
batchAction.onClick();
|
90
|
-
if (batchAction.type === 'select_all') {
|
91
|
-
toggleAllRowsSelected(true);
|
92
|
-
}
|
93
|
-
}
|
94
|
-
});
|
95
|
-
}
|
96
|
-
return null;
|
83
|
+
if (index < 2 && !displayAllInMenu) {
|
84
|
+
return;
|
97
85
|
}
|
98
86
|
return /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenuItem, {
|
99
87
|
key: "".concat(batchAction.label, "-").concat(index),
|
@@ -1,21 +1,19 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
6
5
|
value: true
|
7
6
|
});
|
8
7
|
exports.default = void 0;
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
9
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
10
|
-
var
|
11
|
-
var React = _interopRequireWildcard(require("react"));
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
12
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
13
12
|
var _iconsReact = require("@carbon/icons-react");
|
14
|
-
var _reactDnd = require("react-dnd");
|
15
13
|
var _classnames = _interopRequireDefault(require("classnames"));
|
16
14
|
var _settings = require("../../../settings");
|
17
|
-
|
18
|
-
|
15
|
+
var _utilities = require("@dnd-kit/utilities");
|
16
|
+
var _sortable = require("@dnd-kit/sortable");
|
19
17
|
// @flow
|
20
18
|
/*
|
21
19
|
* Licensed Materials - Property of IBM
|
@@ -25,161 +23,57 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
25
23
|
* restricted by GSA ADP Schedule Contract with IBM Corp.
|
26
24
|
*/
|
27
25
|
|
28
|
-
var useEffect = React.useEffect,
|
29
|
-
useRef = React.useRef,
|
30
|
-
useState = React.useState;
|
31
26
|
var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
|
32
|
-
var DRAG_TYPE = "".concat(blockClass, "__shared-ui-draggable-element");
|
33
27
|
var DraggableElement = function DraggableElement(_ref) {
|
34
28
|
var _cx;
|
35
29
|
var id = _ref.id,
|
36
|
-
index = _ref.index,
|
37
|
-
listData = _ref.listData,
|
38
30
|
children = _ref.children,
|
39
|
-
|
31
|
+
classList = _ref.classList,
|
40
32
|
disabled = _ref.disabled,
|
41
33
|
ariaLabel = _ref.ariaLabel,
|
42
|
-
onGrab = _ref.onGrab,
|
43
|
-
onArrowKeyDown = _ref.onArrowKeyDown,
|
44
|
-
isFocused = _ref.isFocused,
|
45
34
|
isSticky = _ref.isSticky,
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
positionLabel = _ref$positionLabel === void 0 ? 'Current position {index} of {total}' : _ref$positionLabel,
|
50
|
-
_ref$grabbedLabel = _ref.grabbedLabel,
|
51
|
-
grabbedLabel = _ref$grabbedLabel === void 0 ? '{itemName} grabbed.' : _ref$grabbedLabel,
|
52
|
-
_ref$droppedLabel = _ref.droppedLabel,
|
53
|
-
droppedLabel = _ref$droppedLabel === void 0 ? '{itemName} dropped.' : _ref$droppedLabel;
|
54
|
-
var ref = useRef();
|
55
|
-
var _useDrop = (0, _reactDnd.useDrop)({
|
56
|
-
accept: DRAG_TYPE + type,
|
57
|
-
collect: function collect(monitor) {
|
58
|
-
return {
|
59
|
-
isOver: !!monitor.isOver()
|
60
|
-
};
|
61
|
-
},
|
62
|
-
drop: function drop(item) {
|
63
|
-
moveElement(item.index, index);
|
64
|
-
},
|
65
|
-
canDrop: function canDrop() {
|
66
|
-
return !disabled;
|
67
|
-
},
|
68
|
-
hover: function hover(item) {
|
69
|
-
var dragIndex = item.index;
|
70
|
-
var hoverIndex = index;
|
71
|
-
// Don't replace items with themselves
|
72
|
-
if (dragIndex === hoverIndex || disabled) {
|
73
|
-
return;
|
74
|
-
}
|
75
|
-
moveElement(dragIndex, hoverIndex);
|
76
|
-
// Time to actually perform the action
|
77
|
-
// Note: we're mutating the monitor item here!
|
78
|
-
// Generally it's better to avoid mutations,
|
79
|
-
// but it's good here for the sake of performance
|
80
|
-
// to avoid expensive index searches.
|
81
|
-
// eslint-disable-next-line no-param-reassign
|
82
|
-
item.index = hoverIndex;
|
83
|
-
}
|
35
|
+
selected = _ref.selected;
|
36
|
+
var _useSortable = (0, _sortable.useSortable)({
|
37
|
+
id: id
|
84
38
|
}),
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
index: index
|
93
|
-
},
|
94
|
-
canDrag: function canDrag() {
|
95
|
-
return !disabled;
|
96
|
-
},
|
97
|
-
collect: function collect(monitor) {
|
98
|
-
return {
|
99
|
-
isDragging: monitor.isDragging()
|
100
|
-
};
|
101
|
-
}
|
102
|
-
}),
|
103
|
-
_useDrag2 = (0, _slicedToArray2.default)(_useDrag, 3),
|
104
|
-
isDragging = _useDrag2[0].isDragging,
|
105
|
-
drag = _useDrag2[1],
|
106
|
-
preview = _useDrag2[2];
|
107
|
-
useEffect(function () {
|
108
|
-
if (isFocused && ref && ref.current) {
|
109
|
-
ref.current.focus();
|
110
|
-
}
|
111
|
-
}, [isFocused]);
|
112
|
-
var _useState = useState(false),
|
113
|
-
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
114
|
-
isGrabbed = _useState2[0],
|
115
|
-
setIsGrabbed = _useState2[1];
|
116
|
-
var _useState3 = useState(isFocused),
|
117
|
-
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
118
|
-
isFocusedOnItem = _useState4[0],
|
119
|
-
setIsFocusedOnItem = _useState4[1];
|
120
|
-
drop(ref);
|
121
|
-
var content = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
39
|
+
attributes = _useSortable.attributes,
|
40
|
+
isDragging = _useSortable.isDragging,
|
41
|
+
listeners = _useSortable.listeners,
|
42
|
+
setNodeRef = _useSortable.setNodeRef,
|
43
|
+
transform = _useSortable.transform,
|
44
|
+
transition = _useSortable.transition;
|
45
|
+
var content = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
122
46
|
className: (0, _classnames.default)({
|
123
47
|
disabled: disabled
|
124
48
|
}, "".concat(blockClass, "__draggable-handleStyle"))
|
125
|
-
}, isSticky ? /*#__PURE__*/
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
},
|
141
|
-
onKeyDown: function onKeyDown(e) {
|
142
|
-
if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
|
143
|
-
onArrowKeyDown(e, isGrabbed, index);
|
144
|
-
}
|
145
|
-
},
|
146
|
-
onBlur: function onBlur(e) {
|
147
|
-
// handle when focus move to inner elements
|
148
|
-
setIsFocusedOnItem(e.currentTarget === e.target);
|
149
|
-
},
|
150
|
-
onFocus: function onFocus(e) {
|
151
|
-
// handle when focus move to li element
|
152
|
-
setIsFocusedOnItem(e.currentTarget === e.target);
|
153
|
-
}
|
154
|
-
}, /*#__PURE__*/React.createElement("span", {
|
49
|
+
}, isSticky ? /*#__PURE__*/_react.default.createElement(_iconsReact.Locked16, null) : /*#__PURE__*/_react.default.createElement(_iconsReact.Draggable16, null)), children);
|
50
|
+
var style = {
|
51
|
+
transform: _utilities.CSS.Transform.toString(transform),
|
52
|
+
transition: transition
|
53
|
+
};
|
54
|
+
return /*#__PURE__*/_react.default.createElement("li", (0, _extends2.default)({
|
55
|
+
className: (0, _classnames.default)(classList, "".concat(blockClass, "__draggable-handleHolder"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__draggable-handleHolder--selected"), selected), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__draggable-handleHolder--sticky"), isSticky), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__draggable-handleHolder--dragging"), isDragging), _cx)),
|
56
|
+
id: id,
|
57
|
+
ref: setNodeRef,
|
58
|
+
style: style
|
59
|
+
}, attributes, listeners, {
|
60
|
+
disabled: disabled,
|
61
|
+
"aria-selected": selected,
|
62
|
+
role: "option"
|
63
|
+
}), /*#__PURE__*/_react.default.createElement("span", {
|
155
64
|
className: "".concat(blockClass, "__shared-ui--assistive-text")
|
156
|
-
}, ariaLabel),
|
157
|
-
ref: preview,
|
158
|
-
className: "".concat(blockClass, "__draggable-handleHolder-droppable ").concat(blockClass, "__draggable-handleHolder-droppable--origin")
|
159
|
-
}, content) : /*#__PURE__*/React.createElement("div", {
|
160
|
-
ref: drag,
|
161
|
-
"aria-hidden": isFocused && isFocusedOnItem // if focus on li, hide the children from aria
|
162
|
-
,
|
65
|
+
}, ariaLabel), /*#__PURE__*/_react.default.createElement("div", {
|
163
66
|
className: (0, _classnames.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "__draggable-handleStyle"), !disabled), ["".concat(blockClass, "__draggable-handleHolder-droppable")])
|
164
|
-
},
|
67
|
+
}, content));
|
165
68
|
};
|
166
69
|
DraggableElement.propTypes = {
|
167
70
|
ariaLabel: _propTypes.default.string.isRequired,
|
168
71
|
children: _propTypes.default.element.isRequired,
|
72
|
+
classList: _propTypes.default.string,
|
169
73
|
disabled: _propTypes.default.bool,
|
170
|
-
droppedLabel: _propTypes.default.string,
|
171
|
-
grabbedLabel: _propTypes.default.string,
|
172
74
|
id: _propTypes.default.string.isRequired,
|
173
|
-
index: _propTypes.default.number.isRequired,
|
174
|
-
isFocused: _propTypes.default.bool.isRequired,
|
175
75
|
isSticky: _propTypes.default.bool,
|
176
|
-
|
177
|
-
moveElement: _propTypes.default.func.isRequired,
|
178
|
-
onArrowKeyDown: _propTypes.default.func.isRequired,
|
179
|
-
onGrab: _propTypes.default.func.isRequired,
|
180
|
-
positionLabel: _propTypes.default.string,
|
181
|
-
selected: _propTypes.default.bool,
|
182
|
-
type: _propTypes.default.string.isRequired
|
76
|
+
selected: _propTypes.default.bool
|
183
77
|
};
|
184
78
|
var _default = DraggableElement;
|
185
79
|
exports.default = _default;
|
@@ -1,39 +1,31 @@
|
|
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
9
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
10
|
-
var _react =
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
11
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
12
|
-
var _reactDnd = require("react-dnd");
|
13
|
-
var _reactDndHtml5Backend = require("react-dnd-html5-backend");
|
14
13
|
var _carbonComponentsReact = require("carbon-components-react");
|
15
14
|
var _immutabilityHelper = _interopRequireDefault(require("immutability-helper"));
|
16
15
|
var _settings = require("../../../../../settings");
|
17
16
|
var _classnames = _interopRequireDefault(require("classnames"));
|
18
17
|
var _DraggableItemsList = require("./DraggableItemsList");
|
18
|
+
var _uuidv = _interopRequireDefault(require("../../../../../global/js/utils/uuidv4"));
|
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); }
|
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; }
|
19
21
|
/**
|
20
|
-
* Copyright IBM Corp. 2022,
|
22
|
+
* Copyright IBM Corp. 2022, 2023
|
21
23
|
*
|
22
24
|
* This source code is licensed under the Apache-2.0 license found in the
|
23
25
|
* LICENSE file in the root directory of this source tree.
|
24
26
|
*/
|
25
27
|
|
26
28
|
var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
|
27
|
-
var getNextIndex = function getNextIndex(array, currentIndex, key) {
|
28
|
-
var newIndex = -1;
|
29
|
-
if (key === 'ArrowUp') {
|
30
|
-
newIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : array.length - 1;
|
31
|
-
}
|
32
|
-
if (key === 'ArrowDown') {
|
33
|
-
newIndex = currentIndex + 1 < array.length ? currentIndex + 1 : 0;
|
34
|
-
}
|
35
|
-
return newIndex;
|
36
|
-
};
|
37
29
|
var Columns = function Columns(_ref) {
|
38
30
|
var getVisibleColumnsCount = _ref.getVisibleColumnsCount,
|
39
31
|
filterString = _ref.filterString,
|
@@ -43,36 +35,26 @@ var Columns = function Columns(_ref) {
|
|
43
35
|
assistiveTextInstructionsLabel = _ref.assistiveTextInstructionsLabel,
|
44
36
|
assistiveTextDisabledInstructionsLabel = _ref.assistiveTextDisabledInstructionsLabel,
|
45
37
|
selectAllLabel = _ref.selectAllLabel;
|
38
|
+
var listId = (0, _react.useRef)((0, _uuidv.default)()); // keep id between renders
|
39
|
+
var listRef = (0, _react.useRef)(null);
|
46
40
|
var _React$useState = _react.default.useState(''),
|
47
41
|
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|
48
42
|
ariaRegionText = _React$useState2[0],
|
49
43
|
setAriaRegionText = _React$useState2[1];
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
setFocusIndex = _React$useState4[1];
|
54
|
-
var moveElement = _react.default.useCallback(function (dragIndex, hoverIndex) {
|
55
|
-
var dragCard = columns[dragIndex];
|
44
|
+
// after a drag/drop action set the columns
|
45
|
+
var moveElement = _react.default.useCallback(function (from, to) {
|
46
|
+
var fromCol = columns[from];
|
56
47
|
setColumnsObject((0, _immutabilityHelper.default)(columns, {
|
57
|
-
$splice: [[
|
48
|
+
$splice: [[from, 1], [to, 0, fromCol]]
|
58
49
|
}));
|
59
50
|
}, [columns, setColumnsObject]);
|
60
51
|
return /*#__PURE__*/_react.default.createElement("div", {
|
61
|
-
className: "".concat(blockClass, "__customize-columns-column-list")
|
62
|
-
|
63
|
-
backend: _reactDndHtml5Backend.HTML5Backend
|
52
|
+
className: "".concat(blockClass, "__customize-columns-column-list"),
|
53
|
+
ref: listRef
|
64
54
|
}, /*#__PURE__*/_react.default.createElement("ol", {
|
65
55
|
className: "".concat(blockClass, "__customize-columns-column-list--focus"),
|
66
56
|
role: "listbox",
|
67
57
|
"aria-describedby": "".concat(blockClass, "__customize-columns--instructions"),
|
68
|
-
onKeyDown: function onKeyDown(e) {
|
69
|
-
var nextIndex = getNextIndex(columns, focusIndex, e.key);
|
70
|
-
if (nextIndex >= 0) {
|
71
|
-
setFocusIndex(nextIndex);
|
72
|
-
e.preventDefault();
|
73
|
-
e.stopPropagation();
|
74
|
-
}
|
75
|
-
},
|
76
58
|
tabIndex: 0
|
77
59
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
78
60
|
"aria-live": "assertive",
|
@@ -94,16 +76,13 @@ var Columns = function Columns(_ref) {
|
|
94
76
|
id: "".concat(blockClass, "__customization-column-select-all"),
|
95
77
|
labelText: selectAllLabel
|
96
78
|
})), /*#__PURE__*/_react.default.createElement(_DraggableItemsList.DraggableItemsList, {
|
79
|
+
id: listId.current,
|
97
80
|
columns: columns,
|
98
81
|
filterString: filterString,
|
99
|
-
focusIndex: focusIndex,
|
100
|
-
getNextIndex: getNextIndex,
|
101
82
|
moveElement: moveElement,
|
102
|
-
onSelectColumn: onSelectColumn,
|
103
83
|
setAriaRegionText: setAriaRegionText,
|
104
|
-
|
105
|
-
|
106
|
-
}))));
|
84
|
+
onSelectColumn: onSelectColumn
|
85
|
+
})));
|
107
86
|
};
|
108
87
|
Columns.propTypes = {
|
109
88
|
assistiveTextDisabledInstructionsLabel: _propTypes.default.string,
|
package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js
CHANGED
@@ -77,6 +77,7 @@ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
|
|
77
77
|
isDirty = _useState10[0],
|
78
78
|
setIsDirty = _useState10[1];
|
79
79
|
var onRequestClose = function onRequestClose() {
|
80
|
+
setColumnObjects(columnDefinitions);
|
80
81
|
setIsTearsheetOpen(false);
|
81
82
|
};
|
82
83
|
var onRequestSubmit = function onRequestSubmit() {
|