@carbon/ibm-products 1.48.0 → 1.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/index-full-carbon.css +37 -5
- 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-released-only.css +36 -4
- package/css/index-without-carbon-released-only.css.map +1 -1
- package/css/index-without-carbon-released-only.min.css +2 -2
- package/css/index-without-carbon-released-only.min.css.map +1 -1
- package/css/index-without-carbon.css +37 -5
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +3 -3
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +37 -5
- 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/Datagrid/Datagrid/DatagridToolbar.js +1 -1
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +6 -3
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +15 -62
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +5 -2
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +105 -0
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +1 -0
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +17 -5
- package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +11 -0
- package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +8 -8
- package/es/components/Datagrid/index.js +8 -7
- package/es/components/Datagrid/useOnRowClick.js +3 -3
- package/es/components/Datagrid/useSortableColumns.js +6 -5
- package/es/components/Datagrid/utils/getAutoSizedColumnWidth.js +27 -0
- package/es/components/InlineEditV2/InlineEditV2.js +6 -3
- package/es/components/SidePanel/SidePanel.js +1 -1
- package/es/components/index.js +1 -1
- package/es/global/js/utils/story-helper.js +9 -0
- package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +1 -1
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +6 -3
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +15 -62
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +5 -2
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +113 -0
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +1 -0
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +17 -5
- package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +11 -0
- package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +3 -1
- package/lib/components/Datagrid/index.js +8 -1
- package/lib/components/Datagrid/useOnRowClick.js +3 -3
- package/lib/components/Datagrid/useSortableColumns.js +6 -5
- package/lib/components/Datagrid/utils/getAutoSizedColumnWidth.js +35 -0
- package/lib/components/InlineEditV2/InlineEditV2.js +6 -3
- package/lib/components/SidePanel/SidePanel.js +1 -1
- package/lib/components/index.js +6 -0
- package/lib/global/js/utils/story-helper.js +12 -2
- package/package.json +2 -2
- package/scss/components/Datagrid/styles/_datagrid.scss +1 -1
- package/scss/components/InlineEditV1/_inline-edit-v1.scss +1 -5
- package/scss/components/InlineEditV2/_inline-edit-v2.scss +41 -3
- package/scss/components/SidePanel/_side-panel.scss +2 -1
@@ -14,9 +14,8 @@ var _reactDndHtml5Backend = require("react-dnd-html5-backend");
|
|
14
14
|
var _carbonComponentsReact = require("carbon-components-react");
|
15
15
|
var _immutabilityHelper = _interopRequireDefault(require("immutability-helper"));
|
16
16
|
var _settings = require("../../../../../settings");
|
17
|
-
var _DraggableElement = _interopRequireDefault(require("../../DraggableElement"));
|
18
|
-
var _common = require("./common");
|
19
17
|
var _classnames = _interopRequireDefault(require("classnames"));
|
18
|
+
var _DraggableItemsList = require("./DraggableItemsList");
|
20
19
|
/**
|
21
20
|
* Copyright IBM Corp. 2022, 2022
|
22
21
|
*
|
@@ -43,7 +42,8 @@ var Columns = function Columns(_ref) {
|
|
43
42
|
onSelectColumn = _ref.onSelectColumn,
|
44
43
|
assistiveTextInstructionsLabel = _ref.assistiveTextInstructionsLabel,
|
45
44
|
assistiveTextDisabledInstructionsLabel = _ref.assistiveTextDisabledInstructionsLabel,
|
46
|
-
selectAllLabel = _ref.selectAllLabel
|
45
|
+
selectAllLabel = _ref.selectAllLabel,
|
46
|
+
isTableSortable = _ref.isTableSortable;
|
47
47
|
var _React$useState = _react.default.useState(''),
|
48
48
|
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|
49
49
|
ariaRegionText = _React$useState2[0],
|
@@ -94,65 +94,17 @@ var Columns = function Columns(_ref) {
|
|
94
94
|
},
|
95
95
|
id: "".concat(blockClass, "__customization-column-select-all"),
|
96
96
|
labelText: selectAllLabel
|
97
|
-
})),
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
var firstWord = res !== null ? res[0] === '' ? res[1].charAt(0).toUpperCase() + res[1].substring(1) : res[0].charAt(0).toUpperCase() + res[0].substring(1) : null;
|
109
|
-
var highlightedText = res !== null ? res[0] === '' ? "<strong>".concat(firstWord, "</strong>") + res[2] : firstWord + "<strong>".concat(res[1], "</strong>") + res[2] : colDef.Header.props.title;
|
110
|
-
var isFrozenColumn = !!colDef.sticky;
|
111
|
-
var listContents = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Checkbox, {
|
112
|
-
wrapperClassName: "".concat(blockClass, "__customize-columns-checkbox-wrapper"),
|
113
|
-
checked: (0, _common.isColumnVisible)(colDef),
|
114
|
-
disabled: isFrozenColumn,
|
115
|
-
onChange: onSelectColumn.bind(null, colDef),
|
116
|
-
id: "".concat(blockClass, "__customization-column-").concat(colDef.id),
|
117
|
-
labelText: colDef.Header.props.title,
|
118
|
-
title: colDef.Header.props.title,
|
119
|
-
className: "".concat(blockClass, "__customize-columns-checkbox"),
|
120
|
-
hideLabel: true
|
121
|
-
}), /*#__PURE__*/_react.default.createElement("div", {
|
122
|
-
dangerouslySetInnerHTML: {
|
123
|
-
__html: highlightedText
|
124
|
-
}
|
125
|
-
}));
|
126
|
-
return /*#__PURE__*/_react.default.createElement(_DraggableElement.default, {
|
127
|
-
key: colDef.id,
|
128
|
-
index: i,
|
129
|
-
listData: columns,
|
130
|
-
setListData: setColumnsObject,
|
131
|
-
id: "dnd-datagrid-columns-".concat(colDef.id),
|
132
|
-
type: "column-customization",
|
133
|
-
disabled: filterString.length > 0 || isFrozenColumn,
|
134
|
-
ariaLabel: colDef.Header.props.title,
|
135
|
-
onGrab: setAriaRegionText,
|
136
|
-
isFocused: focusIndex === i,
|
137
|
-
moveElement: moveElement,
|
138
|
-
onArrowKeyDown: function onArrowKeyDown(e, isGrabbed, currentIndex) {
|
139
|
-
if (isGrabbed) {
|
140
|
-
var _columns$nextIndex;
|
141
|
-
var nextIndex = getNextIndex(columns, currentIndex, e.key);
|
142
|
-
e.preventDefault();
|
143
|
-
e.stopPropagation();
|
144
|
-
if (nextIndex >= 0 && !((_columns$nextIndex = columns[nextIndex]) !== null && _columns$nextIndex !== void 0 && _columns$nextIndex.sticky)) {
|
145
|
-
setFocusIndex(nextIndex);
|
146
|
-
moveElement(currentIndex, nextIndex);
|
147
|
-
e.target.scrollIntoView({
|
148
|
-
block: 'center'
|
149
|
-
});
|
150
|
-
}
|
151
|
-
}
|
152
|
-
},
|
153
|
-
isSticky: isFrozenColumn,
|
154
|
-
selected: (0, _common.isColumnVisible)(colDef)
|
155
|
-
}, listContents);
|
97
|
+
})), /*#__PURE__*/_react.default.createElement(_DraggableItemsList.DraggableItemsList, {
|
98
|
+
columns: columns,
|
99
|
+
filterString: filterString,
|
100
|
+
focusIndex: focusIndex,
|
101
|
+
getNextIndex: getNextIndex,
|
102
|
+
isTableSortable: isTableSortable,
|
103
|
+
moveElement: moveElement,
|
104
|
+
onSelectColumn: onSelectColumn,
|
105
|
+
setAriaRegionText: setAriaRegionText,
|
106
|
+
setColumnsObject: setColumnsObject,
|
107
|
+
setFocusIndex: setFocusIndex
|
156
108
|
}))));
|
157
109
|
};
|
158
110
|
Columns.propTypes = {
|
@@ -163,6 +115,7 @@ Columns.propTypes = {
|
|
163
115
|
filterString: _propTypes.default.string.isRequired,
|
164
116
|
getVisibleColumnsCount: _propTypes.default.func.isRequired,
|
165
117
|
instructionsLabel: _propTypes.default.string,
|
118
|
+
isTableSortable: _propTypes.default.bool.isRequired,
|
166
119
|
onSelectColumn: _propTypes.default.func.isRequired,
|
167
120
|
selectAllLabel: _propTypes.default.string,
|
168
121
|
setColumnStatus: _propTypes.default.func,
|
package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js
CHANGED
@@ -43,7 +43,8 @@ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
|
|
43
43
|
_ref$assistiveTextDis = _ref.assistiveTextDisabledInstructionsLabel,
|
44
44
|
assistiveTextDisabledInstructionsLabel = _ref$assistiveTextDis === void 0 ? 'Reordering columns are disabled because they are filtered currently.' : _ref$assistiveTextDis,
|
45
45
|
_ref$selectAllLabel = _ref.selectAllLabel,
|
46
|
-
selectAllLabel = _ref$selectAllLabel === void 0 ? 'Column name' : _ref$selectAllLabel
|
46
|
+
selectAllLabel = _ref$selectAllLabel === void 0 ? 'Column name' : _ref$selectAllLabel,
|
47
|
+
isTableSortable = _ref.isTableSortable;
|
47
48
|
var _useState = (0, _react.useState)(''),
|
48
49
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
49
50
|
visibleColumnsCount = _useState2[0],
|
@@ -153,7 +154,8 @@ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
|
|
153
154
|
setColumnObjects(cols);
|
154
155
|
setDirty();
|
155
156
|
},
|
156
|
-
selectAllLabel: selectAllLabel
|
157
|
+
selectAllLabel: selectAllLabel,
|
158
|
+
isTableSortable: isTableSortable
|
157
159
|
}));
|
158
160
|
};
|
159
161
|
CustomizeColumnsTearsheet.propTypes = {
|
@@ -164,6 +166,7 @@ CustomizeColumnsTearsheet.propTypes = {
|
|
164
166
|
findColumnPlaceholderLabel: _propTypes.default.string,
|
165
167
|
instructionsLabel: _propTypes.default.string,
|
166
168
|
isOpen: _propTypes.default.bool.isRequired,
|
169
|
+
isTableSortable: _propTypes.default.bool.isRequired,
|
167
170
|
onSaveColumnPrefs: _propTypes.default.func.isRequired,
|
168
171
|
originalColumnDefinitions: _propTypes.default.array.isRequired,
|
169
172
|
primaryButtonTextLabel: _propTypes.default.string,
|
@@ -0,0 +1,113 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.DraggableItemsList = void 0;
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
9
|
+
var _propTypes = require("prop-types");
|
10
|
+
var _carbonComponentsReact = require("carbon-components-react");
|
11
|
+
var _common = require("./common");
|
12
|
+
var _DraggableElement = _interopRequireDefault(require("../../DraggableElement"));
|
13
|
+
var _settings = require("../../../../../settings");
|
14
|
+
/**
|
15
|
+
* Copyright IBM Corp. 2023, 2023
|
16
|
+
*
|
17
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
18
|
+
* LICENSE file in the root directory of this source tree.
|
19
|
+
*/
|
20
|
+
|
21
|
+
var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
|
22
|
+
var DraggableItemsList = function DraggableItemsList(_ref) {
|
23
|
+
var columns = _ref.columns,
|
24
|
+
filterString = _ref.filterString,
|
25
|
+
focusIndex = _ref.focusIndex,
|
26
|
+
getNextIndex = _ref.getNextIndex,
|
27
|
+
isTableSortable = _ref.isTableSortable,
|
28
|
+
moveElement = _ref.moveElement,
|
29
|
+
onSelectColumn = _ref.onSelectColumn,
|
30
|
+
setAriaRegionText = _ref.setAriaRegionText,
|
31
|
+
setColumnsObject = _ref.setColumnsObject,
|
32
|
+
setFocusIndex = _ref.setFocusIndex;
|
33
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, columns
|
34
|
+
// hide the columns without Header, e.g the sticky actions, spacer
|
35
|
+
.filter(function (colDef) {
|
36
|
+
var _colDef$Header$props$, _colDef$Header$props;
|
37
|
+
var sortableTitle = isTableSortable && ((_colDef$Header$props$ = colDef.Header().props.children.props) === null || _colDef$Header$props$ === void 0 ? void 0 : _colDef$Header$props$.title);
|
38
|
+
return !!colDef.Header.props && !!((_colDef$Header$props = colDef.Header.props) !== null && _colDef$Header$props !== void 0 && _colDef$Header$props.title) || isTableSortable && !!sortableTitle;
|
39
|
+
}).filter(function (colDef) {
|
40
|
+
return !colDef.isAction;
|
41
|
+
}).filter(function (colDef) {
|
42
|
+
var _colDef$Header$props$2, _colDef$Header$props2, _colDef$Header$props3;
|
43
|
+
var sortableTitle = isTableSortable && ((_colDef$Header$props$2 = colDef.Header().props.children.props) === null || _colDef$Header$props$2 === void 0 ? void 0 : _colDef$Header$props$2.title);
|
44
|
+
return filterString.length === 0 || (isTableSortable ? sortableTitle === null || sortableTitle === void 0 ? void 0 : sortableTitle.toLowerCase().includes(filterString) : (_colDef$Header$props2 = colDef.Header.props) === null || _colDef$Header$props2 === void 0 ? void 0 : (_colDef$Header$props3 = _colDef$Header$props2.title) === null || _colDef$Header$props3 === void 0 ? void 0 : _colDef$Header$props3.toLowerCase().includes(filterString)) && colDef.id !== 'spacer';
|
45
|
+
}).map(function (colDef, i) {
|
46
|
+
var _colDef$Header$props$3, _colDef$Header$props4, _colDef$Header$props5, _colDef$Header$props6, _colDef$Header$props7;
|
47
|
+
var isSortableColumn = !!colDef.canSort && !!isTableSortable;
|
48
|
+
var sortableTitle = isTableSortable && ((_colDef$Header$props$3 = colDef.Header().props.children.props) === null || _colDef$Header$props$3 === void 0 ? void 0 : _colDef$Header$props$3.title);
|
49
|
+
var searchString = new RegExp('(' + filterString + ')');
|
50
|
+
var res = filterString.length ? isSortableColumn ? sortableTitle.toLowerCase().split(searchString) : colDef.Header.props.title.toLowerCase().split(searchString) : null;
|
51
|
+
var firstWord = res !== null ? res[0] === '' ? res[1].charAt(0).toUpperCase() + res[1].substring(1) : res[0].charAt(0).toUpperCase() + res[0].substring(1) : null;
|
52
|
+
var highlightedText = res !== null ? res[0] === '' ? "<strong>".concat(firstWord, "</strong>") + res[2] : firstWord + "<strong>".concat(res[1], "</strong>") + res[2] : isSortableColumn ? sortableTitle : (_colDef$Header$props4 = colDef.Header.props) === null || _colDef$Header$props4 === void 0 ? void 0 : _colDef$Header$props4.title;
|
53
|
+
var isFrozenColumn = !!colDef.sticky;
|
54
|
+
var listContents = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Checkbox, {
|
55
|
+
wrapperClassName: "".concat(blockClass, "__customize-columns-checkbox-wrapper"),
|
56
|
+
checked: (0, _common.isColumnVisible)(colDef),
|
57
|
+
disabled: isFrozenColumn,
|
58
|
+
onChange: onSelectColumn.bind(null, colDef),
|
59
|
+
id: "".concat(blockClass, "__customization-column-").concat(colDef.id),
|
60
|
+
labelText: isSortableColumn ? sortableTitle : (_colDef$Header$props5 = colDef.Header.props) === null || _colDef$Header$props5 === void 0 ? void 0 : _colDef$Header$props5.title,
|
61
|
+
title: isSortableColumn ? sortableTitle : (_colDef$Header$props6 = colDef.Header.props) === null || _colDef$Header$props6 === void 0 ? void 0 : _colDef$Header$props6.title,
|
62
|
+
className: "".concat(blockClass, "__customize-columns-checkbox"),
|
63
|
+
hideLabel: true
|
64
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
65
|
+
dangerouslySetInnerHTML: {
|
66
|
+
__html: highlightedText
|
67
|
+
}
|
68
|
+
}));
|
69
|
+
return /*#__PURE__*/_react.default.createElement(_DraggableElement.default, {
|
70
|
+
key: colDef.id,
|
71
|
+
index: i,
|
72
|
+
listData: columns,
|
73
|
+
setListData: setColumnsObject,
|
74
|
+
id: "dnd-datagrid-columns-".concat(colDef.id),
|
75
|
+
type: "column-customization",
|
76
|
+
disabled: filterString.length > 0 || isFrozenColumn,
|
77
|
+
ariaLabel: isSortableColumn ? sortableTitle : (_colDef$Header$props7 = colDef.Header.props) === null || _colDef$Header$props7 === void 0 ? void 0 : _colDef$Header$props7.title,
|
78
|
+
onGrab: setAriaRegionText,
|
79
|
+
isFocused: focusIndex === i,
|
80
|
+
moveElement: moveElement,
|
81
|
+
onArrowKeyDown: function onArrowKeyDown(e, isGrabbed, currentIndex) {
|
82
|
+
if (isGrabbed) {
|
83
|
+
var _columns$nextIndex;
|
84
|
+
var nextIndex = getNextIndex(columns, currentIndex, e.key);
|
85
|
+
e.preventDefault();
|
86
|
+
e.stopPropagation();
|
87
|
+
if (nextIndex >= 0 && !((_columns$nextIndex = columns[nextIndex]) !== null && _columns$nextIndex !== void 0 && _columns$nextIndex.sticky)) {
|
88
|
+
setFocusIndex(nextIndex);
|
89
|
+
moveElement(currentIndex, nextIndex);
|
90
|
+
e.target.scrollIntoView({
|
91
|
+
block: 'center'
|
92
|
+
});
|
93
|
+
}
|
94
|
+
}
|
95
|
+
},
|
96
|
+
isSticky: isFrozenColumn,
|
97
|
+
selected: (0, _common.isColumnVisible)(colDef)
|
98
|
+
}, listContents);
|
99
|
+
}));
|
100
|
+
};
|
101
|
+
exports.DraggableItemsList = DraggableItemsList;
|
102
|
+
DraggableItemsList.propTypes = {
|
103
|
+
columns: _propTypes.PropTypes.array.isRequired,
|
104
|
+
filterString: _propTypes.PropTypes.string.isRequired,
|
105
|
+
focusIndex: _propTypes.PropTypes.number.isRequired,
|
106
|
+
getNextIndex: _propTypes.PropTypes.func.isRequired,
|
107
|
+
isTableSortable: _propTypes.PropTypes.bool,
|
108
|
+
moveElement: _propTypes.PropTypes.func.isRequired,
|
109
|
+
onSelectColumn: _propTypes.PropTypes.func.isRequired,
|
110
|
+
setAriaRegionText: _propTypes.PropTypes.func.isRequired,
|
111
|
+
setColumnsObject: _propTypes.PropTypes.func.isRequired,
|
112
|
+
setFocusIndex: _propTypes.PropTypes.func.isRequired
|
113
|
+
};
|
@@ -24,6 +24,7 @@ var TearsheetWrapper = function TearsheetWrapper(_ref) {
|
|
24
24
|
rest = (0, _objectWithoutProperties2.default)(_instance$customizeCo, _excluded);
|
25
25
|
return /*#__PURE__*/React.createElement(_CustomizeColumnsTearsheet.default, (0, _extends2.default)({}, rest, labels, {
|
26
26
|
isOpen: isTearsheetOpen,
|
27
|
+
isTableSortable: instance === null || instance === void 0 ? void 0 : instance.isTableSortable,
|
27
28
|
setIsTearsheetOpen: setIsTearsheetOpen,
|
28
29
|
columnDefinitions: instance.allColumns,
|
29
30
|
originalColumnDefinitions: instance.columns,
|
@@ -55,7 +55,15 @@ var FilterPanel = function FilterPanel(_ref) {
|
|
55
55
|
_ref$showFilterSearch = _ref.showFilterSearch,
|
56
56
|
showFilterSearch = _ref$showFilterSearch === void 0 ? false : _ref$showFilterSearch,
|
57
57
|
_ref$filterPanelMinHe = _ref.filterPanelMinHeight,
|
58
|
-
filterPanelMinHeight = _ref$filterPanelMinHe === void 0 ? 600 : _ref$filterPanelMinHe
|
58
|
+
filterPanelMinHeight = _ref$filterPanelMinHe === void 0 ? 600 : _ref$filterPanelMinHe,
|
59
|
+
_ref$primaryActionLab = _ref.primaryActionLabel,
|
60
|
+
primaryActionLabel = _ref$primaryActionLab === void 0 ? 'Apply' : _ref$primaryActionLab,
|
61
|
+
_ref$secondaryActionL = _ref.secondaryActionLabel,
|
62
|
+
secondaryActionLabel = _ref$secondaryActionL === void 0 ? 'Cancel' : _ref$secondaryActionL,
|
63
|
+
_ref$searchLabelText = _ref.searchLabelText,
|
64
|
+
searchLabelText = _ref$searchLabelText === void 0 ? 'Filter search' : _ref$searchLabelText,
|
65
|
+
_ref$searchPlaceholde = _ref.searchPlaceholder,
|
66
|
+
searchPlaceholder = _ref$searchPlaceholde === void 0 ? 'Find filters' : _ref$searchPlaceholde;
|
59
67
|
/** State */
|
60
68
|
var _useState = (0, _react.useState)(false),
|
61
69
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
@@ -130,13 +138,13 @@ var FilterPanel = function FilterPanel(_ref) {
|
|
130
138
|
actions: [{
|
131
139
|
key: 1,
|
132
140
|
kind: 'primary',
|
133
|
-
label:
|
141
|
+
label: primaryActionLabel,
|
134
142
|
onClick: apply,
|
135
143
|
disabled: shouldDisableButtons
|
136
144
|
}, {
|
137
145
|
key: 2,
|
138
146
|
kind: 'secondary',
|
139
|
-
label:
|
147
|
+
label: secondaryActionLabel,
|
140
148
|
onClick: cancel,
|
141
149
|
disabled: shouldDisableButtons
|
142
150
|
}],
|
@@ -199,8 +207,8 @@ var FilterPanel = function FilterPanel(_ref) {
|
|
199
207
|
ref: filterSearchRef,
|
200
208
|
className: "".concat(componentClass, "__search")
|
201
209
|
}, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Search, {
|
202
|
-
labelText:
|
203
|
-
placeHolderText:
|
210
|
+
labelText: searchLabelText,
|
211
|
+
placeHolderText: searchPlaceholder,
|
204
212
|
light: true,
|
205
213
|
size: "sm"
|
206
214
|
}))), /*#__PURE__*/_react.default.createElement("div", {
|
@@ -241,6 +249,10 @@ FilterPanel.propTypes = {
|
|
241
249
|
onPanelClose: _propTypes.default.func,
|
242
250
|
onPanelOpen: _propTypes.default.func,
|
243
251
|
open: _propTypes.default.bool,
|
252
|
+
primaryActionLabel: _propTypes.default.string,
|
253
|
+
searchLabelText: _propTypes.default.string,
|
254
|
+
searchPlaceholder: _propTypes.default.string,
|
255
|
+
secondaryActionLabel: _propTypes.default.string,
|
244
256
|
setAllFilters: _propTypes.default.func.isRequired,
|
245
257
|
showFilterSearch: _propTypes.default.bool,
|
246
258
|
title: _propTypes.default.string,
|
@@ -128,6 +128,17 @@ var useFilters = function useFilters(_ref) {
|
|
128
128
|
// Remove it from the filters array
|
129
129
|
filtersObjectArrayCopy.splice(_index2, 1);
|
130
130
|
}
|
131
|
+
} else if (type === _constants.NUMBER) {
|
132
|
+
// If the value is empty remove it from the filtersObjectArray
|
133
|
+
if (value === '') {
|
134
|
+
// Find the column that uses number and displays an empty string
|
135
|
+
var _index3 = filtersObjectArrayCopy.findIndex(function (filter) {
|
136
|
+
return filter.id === column;
|
137
|
+
});
|
138
|
+
|
139
|
+
// Remove it from the filters array
|
140
|
+
filtersObjectArrayCopy.splice(_index3, 1);
|
141
|
+
}
|
131
142
|
}
|
132
143
|
setFiltersObjectArray(filtersObjectArrayCopy);
|
133
144
|
|
@@ -37,7 +37,9 @@ var RowSizeDropdown = function RowSizeDropdown(_ref) {
|
|
37
37
|
tooltipPosition: "bottom",
|
38
38
|
renderIcon: _iconsReact.Settings16,
|
39
39
|
onClick: function onClick() {
|
40
|
-
return setIsOpen(
|
40
|
+
return setIsOpen(function (prevOpen) {
|
41
|
+
return !prevOpen;
|
42
|
+
});
|
41
43
|
},
|
42
44
|
iconDescription: legendText,
|
43
45
|
className: (0, _classnames.default)("".concat(blockClass, "__row-size-button"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__row-size-button--open"), isOpen))
|
@@ -10,6 +10,12 @@ Object.defineProperty(exports, "Datagrid", {
|
|
10
10
|
return _Datagrid.Datagrid;
|
11
11
|
}
|
12
12
|
});
|
13
|
+
Object.defineProperty(exports, "getAutoSizedColumnWidth", {
|
14
|
+
enumerable: true,
|
15
|
+
get: function get() {
|
16
|
+
return _getAutoSizedColumnWidth.getAutoSizedColumnWidth;
|
17
|
+
}
|
18
|
+
});
|
13
19
|
Object.defineProperty(exports, "useActionsColumn", {
|
14
20
|
enumerable: true,
|
15
21
|
get: function get() {
|
@@ -136,4 +142,5 @@ var _useSelectAllToggle = _interopRequireDefault(require("./useSelectAllToggle")
|
|
136
142
|
var _useColumnCenterAlign = _interopRequireDefault(require("./useColumnCenterAlign"));
|
137
143
|
var _useColumnOrder = _interopRequireDefault(require("./useColumnOrder"));
|
138
144
|
var _useInlineEdit = _interopRequireDefault(require("./useInlineEdit"));
|
139
|
-
var _useFiltering = _interopRequireDefault(require("./useFiltering"));
|
145
|
+
var _useFiltering = _interopRequireDefault(require("./useFiltering"));
|
146
|
+
var _getAutoSizedColumnWidth = require("./utils/getAutoSizedColumnWidth");
|
@@ -7,7 +7,7 @@ exports.default = void 0;
|
|
7
7
|
/*
|
8
8
|
* Licensed Materials - Property of IBM
|
9
9
|
* 5724-Q36
|
10
|
-
* (c) Copyright IBM Corp. 2020
|
10
|
+
* (c) Copyright IBM Corp. 2020, 2023
|
11
11
|
* US Government Users Restricted Rights - Use, duplication or disclosure
|
12
12
|
* restricted by GSA ADP Schedule Contract with IBM Corp.
|
13
13
|
*/
|
@@ -21,9 +21,9 @@ var useOnRowClick = function useOnRowClick(hooks) {
|
|
21
21
|
instance = datagridState.instance;
|
22
22
|
var id = row.id,
|
23
23
|
toggleRowSelected = row.toggleRowSelected;
|
24
|
-
var onClick = function onClick() {
|
24
|
+
var onClick = function onClick(event) {
|
25
25
|
if (!isFetching && onRowClick) {
|
26
|
-
onRowClick(row);
|
26
|
+
onRowClick(row, event);
|
27
27
|
instance.selectedFlatRows && instance.selectedFlatRows.map(function (toggleRow) {
|
28
28
|
return toggleRow.toggleRowSelected(false);
|
29
29
|
});
|
@@ -22,6 +22,7 @@ var ordering = {
|
|
22
22
|
};
|
23
23
|
var useSortableColumns = function useSortableColumns(hooks) {
|
24
24
|
var sortableVisibleColumns = function sortableVisibleColumns(visibleColumns, _ref) {
|
25
|
+
var _instance$customizeCo;
|
25
26
|
var instance = _ref.instance;
|
26
27
|
var onSort = instance.onSort;
|
27
28
|
var onSortClick = function onSortClick(column) {
|
@@ -37,7 +38,7 @@ var useSortableColumns = function useSortableColumns(hooks) {
|
|
37
38
|
};
|
38
39
|
var sortableColumns = visibleColumns.map(function (column) {
|
39
40
|
var icon = function icon(col) {
|
40
|
-
if (col.isSorted) {
|
41
|
+
if (col !== null && col !== void 0 && col.isSorted) {
|
41
42
|
switch (col.isSortedDesc) {
|
42
43
|
case false:
|
43
44
|
return function () {
|
@@ -69,11 +70,11 @@ var useSortableColumns = function useSortableColumns(hooks) {
|
|
69
70
|
var _cx;
|
70
71
|
return column.disableSortBy === true ? column.Header : /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
|
71
72
|
onClick: function onClick() {
|
72
|
-
return onSortClick(headerProp.column);
|
73
|
+
return onSortClick(headerProp === null || headerProp === void 0 ? void 0 : headerProp.column);
|
73
74
|
},
|
74
75
|
kind: "ghost",
|
75
|
-
renderIcon: icon(headerProp.column),
|
76
|
-
className: (0, _classnames.default)("".concat(_settings.carbon.prefix, "--table-sort ").concat(blockClass, "--table-sort"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--table-sort--desc"), headerProp.column.isSortedDesc), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--table-sort--asc"), headerProp.column.isSortedDesc === false), _cx))
|
76
|
+
renderIcon: icon(headerProp === null || headerProp === void 0 ? void 0 : headerProp.column),
|
77
|
+
className: (0, _classnames.default)("".concat(_settings.carbon.prefix, "--table-sort ").concat(blockClass, "--table-sort"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--table-sort--desc"), headerProp === null || headerProp === void 0 ? void 0 : headerProp.column.isSortedDesc), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--table-sort--asc"), (headerProp === null || headerProp === void 0 ? void 0 : headerProp.column.isSortedDesc) === false), _cx))
|
77
78
|
}, column.Header);
|
78
79
|
};
|
79
80
|
return _objectSpread(_objectSpread({}, column), {}, {
|
@@ -81,7 +82,7 @@ var useSortableColumns = function useSortableColumns(hooks) {
|
|
81
82
|
minWidth: column.disableSortBy === true ? 0 : 90
|
82
83
|
});
|
83
84
|
});
|
84
|
-
return (0, _toConsumableArray2.default)(sortableColumns);
|
85
|
+
return (_instance$customizeCo = instance.customizeColumnsProps) !== null && _instance$customizeCo !== void 0 && _instance$customizeCo.isTearsheetOpen ? visibleColumns : (0, _toConsumableArray2.default)(sortableColumns);
|
85
86
|
};
|
86
87
|
var sortInstanceProps = function sortInstanceProps(instance) {
|
87
88
|
var onSort = instance.onSort;
|
@@ -0,0 +1,35 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.getAutoSizedColumnWidth = void 0;
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
9
|
+
/**
|
10
|
+
* Copyright IBM Corp. 2023, 2023
|
11
|
+
*
|
12
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
13
|
+
* LICENSE file in the root directory of this source tree.
|
14
|
+
*/
|
15
|
+
|
16
|
+
/**
|
17
|
+
* Calculates the auto sized width of a column
|
18
|
+
* @param {Array<object>} rows - The datagrid rows
|
19
|
+
* @param {string} accessor - The accessor for the column
|
20
|
+
* @param {string} headerText - The header text for the column
|
21
|
+
*/
|
22
|
+
|
23
|
+
var getAutoSizedColumnWidth = function getAutoSizedColumnWidth(rows, accessor, headerText) {
|
24
|
+
var maxWidth = 400;
|
25
|
+
var minWidth = 58;
|
26
|
+
var letterSpacing = 10;
|
27
|
+
var cellLength = Math.max.apply(Math, (0, _toConsumableArray2.default)(rows.map(function (row) {
|
28
|
+
return ("".concat(row[accessor]) || '').length;
|
29
|
+
})).concat([headerText.length]));
|
30
|
+
if (cellLength <= 3) {
|
31
|
+
return minWidth;
|
32
|
+
}
|
33
|
+
return Math.min(maxWidth, cellLength * letterSpacing + 16);
|
34
|
+
};
|
35
|
+
exports.getAutoSizedColumnWidth = getAutoSizedColumnWidth;
|
@@ -23,6 +23,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
23
23
|
var componentName = 'InlineEditV2';
|
24
24
|
var blockClass = "".concat(_settings.pkg.prefix, "--inline-edit-v2");
|
25
25
|
var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
26
|
+
var _cx;
|
26
27
|
var cancelLabel = _ref.cancelLabel,
|
27
28
|
editLabel = _ref.editLabel,
|
28
29
|
id = _ref.id,
|
@@ -129,7 +130,7 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
129
130
|
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
|
130
131
|
ref: ref
|
131
132
|
}, (0, _devtools.getDevtoolsProps)(componentName)), /*#__PURE__*/_react.default.createElement("div", {
|
132
|
-
className: (0, _classnames.default)(blockClass, (0, _defineProperty2.default)(
|
133
|
+
className: (0, _classnames.default)(blockClass, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--focused"), focused), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--invalid"), invalid), _cx)),
|
133
134
|
onFocus: onFocusHandler,
|
134
135
|
onBlur: onBlurHandler
|
135
136
|
}, /*#__PURE__*/_react.default.createElement("label", {
|
@@ -145,7 +146,9 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
145
146
|
// readOnly={readOnly}
|
146
147
|
,
|
147
148
|
onKeyDown: onKeyHandler
|
148
|
-
}),
|
149
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
150
|
+
className: "".concat(blockClass, "__toolbar")
|
151
|
+
}, focused ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, invalid && /*#__PURE__*/_react.default.createElement(_iconsReact.WarningFilled16, {
|
149
152
|
className: "".concat(blockClass, "__warning-icon")
|
150
153
|
}), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
|
151
154
|
hasIconOnly: true,
|
@@ -182,7 +185,7 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
182
185
|
kind: "ghost",
|
183
186
|
tabIndex: 0,
|
184
187
|
key: "edit"
|
185
|
-
})), focused && invalid && /*#__PURE__*/_react.default.createElement("p", {
|
188
|
+
}))), focused && invalid && /*#__PURE__*/_react.default.createElement("p", {
|
186
189
|
className: "".concat(blockClass, "__warning-text")
|
187
190
|
}, invalidLabel));
|
188
191
|
});
|
@@ -413,7 +413,7 @@ var SidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
413
413
|
renderIcon: icon,
|
414
414
|
iconDescription: label,
|
415
415
|
tooltipPosition: tooltipPosition || 'bottom',
|
416
|
-
tooltipAlignment: tooltipAlignment || '
|
416
|
+
tooltipAlignment: tooltipAlignment || 'start',
|
417
417
|
hasIconOnly: !leading,
|
418
418
|
disabled: disabled,
|
419
419
|
className: (0, _classnames.default)(["".concat(blockClass, "__action-toolbar-button"), className, (0, _defineProperty2.default)({}, "".concat(blockClass, "__action-toolbar-leading-button"), leading)]),
|
package/lib/components/index.js
CHANGED
@@ -339,6 +339,12 @@ Object.defineProperty(exports, "WebTerminalProvider", {
|
|
339
339
|
return _WebTerminal.WebTerminalProvider;
|
340
340
|
}
|
341
341
|
});
|
342
|
+
Object.defineProperty(exports, "getAutoSizedColumnWidth", {
|
343
|
+
enumerable: true,
|
344
|
+
get: function get() {
|
345
|
+
return _Datagrid.getAutoSizedColumnWidth;
|
346
|
+
}
|
347
|
+
});
|
342
348
|
Object.defineProperty(exports, "useActionsColumn", {
|
343
349
|
enumerable: true,
|
344
350
|
get: function get() {
|
@@ -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.prepareStory = exports.getStoryTitle = exports.getStoryId = exports.CodesandboxLink = void 0;
|
7
|
+
exports.prepareStory = exports.getStoryTitle = exports.getStoryId = exports.getSelectedCarbonTheme = exports.CodesandboxLink = void 0;
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
10
10
|
var _csf = require("@storybook/csf");
|
@@ -87,4 +87,14 @@ CodesandboxLink.propTypes = {
|
|
87
87
|
* directory withing examples codesandbox will be found
|
88
88
|
*/
|
89
89
|
exampleDirectory: _propTypes.default.string
|
90
|
-
};
|
90
|
+
};
|
91
|
+
|
92
|
+
/**
|
93
|
+
* A helper function that finds the designated theme on the Storybook canvas.
|
94
|
+
* @returns "dark" or "light"
|
95
|
+
*/
|
96
|
+
var getSelectedCarbonTheme = function getSelectedCarbonTheme() {
|
97
|
+
var themeId = document.querySelector('html').getAttribute('storybook-carbon-theme');
|
98
|
+
return themeId === 'g90' || themeId === 'g100' ? 'dark' : 'light';
|
99
|
+
};
|
100
|
+
exports.getSelectedCarbonTheme = getSelectedCarbonTheme;
|
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.
|
4
|
+
"version": "1.49.0",
|
5
5
|
"license": "Apache-2.0",
|
6
6
|
"main": "lib/index.js",
|
7
7
|
"module": "es/index.js",
|
@@ -95,5 +95,5 @@
|
|
95
95
|
"react": "^16.8.6 || ^17.0.1",
|
96
96
|
"react-dom": "^16.8.6 || ^17.0.1"
|
97
97
|
},
|
98
|
-
"gitHead": "
|
98
|
+
"gitHead": "f76c9a9558cd884c3743d03850eac6245a5f7ea8"
|
99
99
|
}
|
@@ -60,7 +60,6 @@
|
|
60
60
|
|
61
61
|
&:hover {
|
62
62
|
--#{$block-class}--background-color: #{$hover-field};
|
63
|
-
// background-color: $background-color;
|
64
63
|
}
|
65
64
|
|
66
65
|
position: relative;
|
@@ -116,6 +115,7 @@
|
|
116
115
|
margin-right: var(--#{$block-class}--toolbar-width);
|
117
116
|
// room for toolbar
|
118
117
|
margin-left: $spacing-05;
|
118
|
+
color: $text-01;
|
119
119
|
// stylelint-disable-next-line carbon/type-token-use
|
120
120
|
line-height: var(--#{$block-class}--size);
|
121
121
|
|
@@ -206,10 +206,6 @@
|
|
206
206
|
--#{$block-class}--toolbar-width: calc(3 * var(--#{$block-class}--size));
|
207
207
|
}
|
208
208
|
|
209
|
-
.#{$block-class}__toolbar--animation {
|
210
|
-
// width: ;
|
211
|
-
}
|
212
|
-
|
213
209
|
&.#{$block-class}--editing .#{$block-class}__toolbar::after {
|
214
210
|
// cover top and bottom when focus within block
|
215
211
|
// doing the same on the buttons is problematic when animating
|