@carbon/ibm-products 2.43.2-canary.143 → 2.43.2-canary.146
Sign up to get free protection for your applications and to get access to all the features.
- package/es/components/Datagrid/useFiltering.d.ts +1 -0
- package/es/components/Datagrid/useFiltering.js +14 -3
- package/es/components/Datagrid/useSortableColumns.js +14 -1
- package/lib/components/Datagrid/useFiltering.d.ts +1 -0
- package/lib/components/Datagrid/useFiltering.js +13 -1
- package/lib/components/Datagrid/useSortableColumns.js +14 -1
- package/package.json +2 -2
- package/telemetry.yml +1 -1
@@ -7,9 +7,18 @@
|
|
7
7
|
|
8
8
|
import { defineProperty as _defineProperty, slicedToArray as _slicedToArray, typeof as _typeof, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
9
9
|
import { useMemo } from 'react';
|
10
|
-
import {
|
10
|
+
import { RADIO, DATE, NUMBER, CHECKBOX, MULTISELECT, BATCH } from './Datagrid/addons/Filtering/constants.js';
|
11
11
|
import FilterFlyout from './Datagrid/addons/Filtering/FilterFlyout.js';
|
12
12
|
|
13
|
+
// This function was taken from https://github.com/TanStack/table/blob/v7/src/filterTypes.js
|
14
|
+
var exactText = function exactText(rows, ids, filterValue) {
|
15
|
+
return rows.filter(function (row) {
|
16
|
+
return ids.some(function (id) {
|
17
|
+
var rowValue = row.values[id];
|
18
|
+
return rowValue !== undefined ? String(rowValue).toLowerCase() === String(filterValue).toLowerCase() : true;
|
19
|
+
});
|
20
|
+
});
|
21
|
+
};
|
13
22
|
var handleMultiFilter = function handleMultiFilter(rows, id, value) {
|
14
23
|
// gets all the items that are selected and returns their value
|
15
24
|
var selectedItems = value.filter(function (item) {
|
@@ -30,7 +39,7 @@ var handleMultiFilter = function handleMultiFilter(rows, id, value) {
|
|
30
39
|
var useFiltering = function useFiltering(hooks) {
|
31
40
|
/* istanbul ignore next */
|
32
41
|
var filterTypes = useMemo(function () {
|
33
|
-
return _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, DATE, function (rows, id, _ref) {
|
42
|
+
return _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, DATE, function (rows, id, _ref) {
|
34
43
|
var _ref2 = _slicedToArray(_ref, 2),
|
35
44
|
startDate = _ref2[0],
|
36
45
|
endDate = _ref2[1];
|
@@ -60,6 +69,8 @@ var useFiltering = function useFiltering(hooks) {
|
|
60
69
|
return handleMultiFilter(rows, id, value);
|
61
70
|
}), MULTISELECT, function (rows, id, value) {
|
62
71
|
return handleMultiFilter(rows, id, value);
|
72
|
+
}), RADIO, function (rows, id, value) {
|
73
|
+
return exactText(rows, id, value);
|
63
74
|
});
|
64
75
|
}, []);
|
65
76
|
hooks.useInstance.push(function (instance) {
|
@@ -94,4 +105,4 @@ var useFiltering = function useFiltering(hooks) {
|
|
94
105
|
};
|
95
106
|
var useFiltering$1 = useFiltering;
|
96
107
|
|
97
|
-
export { useFiltering$1 as default };
|
108
|
+
export { useFiltering$1 as default, exactText };
|
@@ -113,6 +113,15 @@ var useSortableColumns = function useSortableColumns(hooks) {
|
|
113
113
|
}
|
114
114
|
return /*#__PURE__*/React__default.createElement(ArrowsVertical, iconProps);
|
115
115
|
};
|
116
|
+
var handleKey = function handleKey(e, columnId) {
|
117
|
+
var key = e.key;
|
118
|
+
if (key === 'Enter') {
|
119
|
+
setTimeout(function () {
|
120
|
+
var _document$getElementB;
|
121
|
+
return (_document$getElementB = document.getElementById(columnId)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.focus();
|
122
|
+
}, 0);
|
123
|
+
}
|
124
|
+
};
|
116
125
|
var Header = function Header(headerProp) {
|
117
126
|
return column.disableSortBy === true || column.id === 'datagridSelection' || column.isAction ? column.disableSortBy || column.isAction ? column.Header : /*#__PURE__*/React__default.createElement(SelectAll, instance) : /*#__PURE__*/React__default.createElement(Button, {
|
118
127
|
"aria-sort": getAriaSortValue(headerProp === null || headerProp === void 0 ? void 0 : headerProp.column, {
|
@@ -131,7 +140,11 @@ var useSortableColumns = function useSortableColumns(hooks) {
|
|
131
140
|
slug: headerProp === null || headerProp === void 0 || (_headerProp$column = headerProp.column) === null || _headerProp$column === void 0 ? void 0 : _headerProp$column.slug
|
132
141
|
}), icon(headerProp === null || headerProp === void 0 ? void 0 : headerProp.column, props));
|
133
142
|
},
|
134
|
-
|
143
|
+
id: column === null || column === void 0 ? void 0 : column.id,
|
144
|
+
className: cx("".concat(carbon.prefix, "--table-sort ").concat(blockClass, "--table-sort"), _defineProperty(_defineProperty({}, "".concat(blockClass, "--table-sort--desc"), headerProp === null || headerProp === void 0 ? void 0 : headerProp.column.isSortedDesc), "".concat(blockClass, "--table-sort--asc"), (headerProp === null || headerProp === void 0 ? void 0 : headerProp.column.isSortedDesc) === false)),
|
145
|
+
onKeyDown: function onKeyDown(event) {
|
146
|
+
return handleKey(event, column.id);
|
147
|
+
}
|
135
148
|
}, column.Header);
|
136
149
|
};
|
137
150
|
return _objectSpread2(_objectSpread2({}, column), {}, {
|
@@ -14,6 +14,15 @@ var React = require('react');
|
|
14
14
|
var constants = require('./Datagrid/addons/Filtering/constants.js');
|
15
15
|
var FilterFlyout = require('./Datagrid/addons/Filtering/FilterFlyout.js');
|
16
16
|
|
17
|
+
// This function was taken from https://github.com/TanStack/table/blob/v7/src/filterTypes.js
|
18
|
+
var exactText = function exactText(rows, ids, filterValue) {
|
19
|
+
return rows.filter(function (row) {
|
20
|
+
return ids.some(function (id) {
|
21
|
+
var rowValue = row.values[id];
|
22
|
+
return rowValue !== undefined ? String(rowValue).toLowerCase() === String(filterValue).toLowerCase() : true;
|
23
|
+
});
|
24
|
+
});
|
25
|
+
};
|
17
26
|
var handleMultiFilter = function handleMultiFilter(rows, id, value) {
|
18
27
|
// gets all the items that are selected and returns their value
|
19
28
|
var selectedItems = value.filter(function (item) {
|
@@ -34,7 +43,7 @@ var handleMultiFilter = function handleMultiFilter(rows, id, value) {
|
|
34
43
|
var useFiltering = function useFiltering(hooks) {
|
35
44
|
/* istanbul ignore next */
|
36
45
|
var filterTypes = React.useMemo(function () {
|
37
|
-
return _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty({}, constants.DATE, function (rows, id, _ref) {
|
46
|
+
return _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty({}, constants.DATE, function (rows, id, _ref) {
|
38
47
|
var _ref2 = _rollupPluginBabelHelpers.slicedToArray(_ref, 2),
|
39
48
|
startDate = _ref2[0],
|
40
49
|
endDate = _ref2[1];
|
@@ -64,6 +73,8 @@ var useFiltering = function useFiltering(hooks) {
|
|
64
73
|
return handleMultiFilter(rows, id, value);
|
65
74
|
}), constants.MULTISELECT, function (rows, id, value) {
|
66
75
|
return handleMultiFilter(rows, id, value);
|
76
|
+
}), constants.RADIO, function (rows, id, value) {
|
77
|
+
return exactText(rows, id, value);
|
67
78
|
});
|
68
79
|
}, []);
|
69
80
|
hooks.useInstance.push(function (instance) {
|
@@ -99,3 +110,4 @@ var useFiltering = function useFiltering(hooks) {
|
|
99
110
|
var useFiltering$1 = useFiltering;
|
100
111
|
|
101
112
|
exports["default"] = useFiltering$1;
|
113
|
+
exports.exactText = exactText;
|
@@ -122,6 +122,15 @@ var useSortableColumns = function useSortableColumns(hooks) {
|
|
122
122
|
}
|
123
123
|
return /*#__PURE__*/React__default["default"].createElement(icons.ArrowsVertical, iconProps);
|
124
124
|
};
|
125
|
+
var handleKey = function handleKey(e, columnId) {
|
126
|
+
var key = e.key;
|
127
|
+
if (key === 'Enter') {
|
128
|
+
setTimeout(function () {
|
129
|
+
var _document$getElementB;
|
130
|
+
return (_document$getElementB = document.getElementById(columnId)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.focus();
|
131
|
+
}, 0);
|
132
|
+
}
|
133
|
+
};
|
125
134
|
var Header = function Header(headerProp) {
|
126
135
|
return column.disableSortBy === true || column.id === 'datagridSelection' || column.isAction ? column.disableSortBy || column.isAction ? column.Header : /*#__PURE__*/React__default["default"].createElement(DatagridSelectAll.SelectAll, instance) : /*#__PURE__*/React__default["default"].createElement(react.Button, {
|
127
136
|
"aria-sort": getAriaSortValue(headerProp === null || headerProp === void 0 ? void 0 : headerProp.column, {
|
@@ -140,7 +149,11 @@ var useSortableColumns = function useSortableColumns(hooks) {
|
|
140
149
|
slug: headerProp === null || headerProp === void 0 || (_headerProp$column = headerProp.column) === null || _headerProp$column === void 0 ? void 0 : _headerProp$column.slug
|
141
150
|
}), icon(headerProp === null || headerProp === void 0 ? void 0 : headerProp.column, props));
|
142
151
|
},
|
143
|
-
|
152
|
+
id: column === null || column === void 0 ? void 0 : column.id,
|
153
|
+
className: cx__default["default"]("".concat(settings.carbon.prefix, "--table-sort ").concat(blockClass, "--table-sort"), _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty({}, "".concat(blockClass, "--table-sort--desc"), headerProp === null || headerProp === void 0 ? void 0 : headerProp.column.isSortedDesc), "".concat(blockClass, "--table-sort--asc"), (headerProp === null || headerProp === void 0 ? void 0 : headerProp.column.isSortedDesc) === false)),
|
154
|
+
onKeyDown: function onKeyDown(event) {
|
155
|
+
return handleKey(event, column.id);
|
156
|
+
}
|
144
157
|
}, column.Header);
|
145
158
|
};
|
146
159
|
return _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, column), {}, {
|
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": "2.43.2-canary.
|
4
|
+
"version": "2.43.2-canary.146+12667e838",
|
5
5
|
"license": "Apache-2.0",
|
6
6
|
"main": "lib/index.js",
|
7
7
|
"module": "es/index.js",
|
@@ -120,5 +120,5 @@
|
|
120
120
|
"react": "^16.8.6 || ^17.0.1 || ^18.2.0",
|
121
121
|
"react-dom": "^16.8.6 || ^17.0.1 || ^18.2.0"
|
122
122
|
},
|
123
|
-
"gitHead": "
|
123
|
+
"gitHead": "12667e8387afc97c8a81a791c72f7ad323d7be6b"
|
124
124
|
}
|
package/telemetry.yml
CHANGED
@@ -104,6 +104,7 @@ collect:
|
|
104
104
|
- formTitle
|
105
105
|
- fullHeightDatagrid
|
106
106
|
- getActionsState
|
107
|
+
- getAsyncSubRows
|
107
108
|
- getConditionState
|
108
109
|
- getFilterFlyoutProps
|
109
110
|
- getOptions
|
@@ -530,7 +531,6 @@ collect:
|
|
530
531
|
- isStatement
|
531
532
|
- onConnectorOperatorChange
|
532
533
|
- onStatementChange
|
533
|
-
- setShowDeletionPreviewForSubgroups
|
534
534
|
# ConditionBuilderAdd
|
535
535
|
- buttonLabel
|
536
536
|
- enableSubGroup
|