@carbon/ibm-products 2.43.2-canary.9 → 2.44.0-rc.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 +51 -3
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +1 -1
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon-released-only.css +12 -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 +51 -3
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +1 -1
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +51 -3
- package/css/index.css.map +1 -1
- package/css/index.min.css +1 -1
- package/css/index.min.css.map +1 -1
- package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +23 -21
- package/es/components/ConditionBuilder/ConditionBuilder.js +67 -20
- package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +15 -0
- package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +129 -0
- package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +6 -4
- package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +5 -1
- package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +16 -4
- package/es/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +2 -2
- package/es/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +2 -2
- package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +9 -11
- package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +36 -32
- package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +0 -1
- package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +7 -2
- package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +6 -1
- package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +18 -10
- package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +39 -36
- package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +12 -10
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +1 -1
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +24 -16
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +19 -4
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +13 -0
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +109 -0
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.d.ts → ItemOptionForValueField.d.ts} +2 -2
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.js → ItemOptionForValueField.js} +58 -33
- package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +4 -6
- package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +14 -5
- package/es/components/ConditionBuilder/utils/handleKeyboardEvents.js +1 -2
- package/es/components/ConditionBuilder/utils/util.d.ts +1 -0
- package/es/components/ConditionBuilder/utils/util.js +16 -1
- package/es/components/DataSpreadsheet/DataSpreadsheet.d.ts +12 -0
- package/es/components/DataSpreadsheet/DataSpreadsheet.js +29 -7
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.d.ts +12 -0
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +22 -6
- package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +3 -0
- package/es/components/Datagrid/Datagrid/Datagrid.js +2 -1
- package/es/components/Datagrid/Datagrid/DatagridContent.js +1 -1
- package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +11 -1
- package/es/components/Datagrid/Datagrid/DatagridRow.js +13 -2
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +6 -1
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +6 -1
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.d.ts +3 -1
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +6 -3
- package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.d.ts +1 -1
- package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +21 -16
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +1 -1
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +74 -11
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +10 -2
- package/es/components/Datagrid/types/index.d.ts +18 -4
- package/es/components/Datagrid/useActionsColumn.d.ts +8 -1
- package/es/components/Datagrid/useActionsColumn.js +7 -6
- package/es/components/Datagrid/useColumnRightAlign.d.ts +8 -1
- package/es/components/Datagrid/useColumnRightAlign.js +4 -3
- package/es/components/Datagrid/useInlineEdit.js +12 -2
- package/es/components/Datagrid/useNestedRows.js +32 -13
- package/es/components/Decorator/Decorator.js +2 -1
- package/es/components/DecoratorBase/DecoratorBase.js +3 -5
- package/es/components/DecoratorDualButton/DecoratorDualButton.js +2 -1
- package/es/components/DecoratorLink/DecoratorLink.js +2 -1
- package/es/components/DecoratorSingleButton/DecoratorSingleButton.js +2 -1
- package/es/components/EditTearsheet/EditTearsheet.d.ts +5 -1
- package/es/components/EditTearsheet/EditTearsheet.js +0 -1
- package/es/components/EditTearsheet/EditTearsheetForm.d.ts +45 -2
- package/es/components/EditTearsheet/EditTearsheetForm.js +3 -0
- package/es/components/HTTPErrors/HTTPError403/HTTPError403.js +6 -0
- package/es/components/HTTPErrors/HTTPError404/HTTPError404.js +6 -0
- package/es/components/HTTPErrors/HTTPErrorOther/HTTPErrorOther.js +6 -0
- package/es/components/RemoveModal/RemoveModal.d.ts +4 -0
- package/es/components/RemoveModal/RemoveModal.js +7 -1
- package/es/components/StatusIndicator/StatusIndicatorStep.js +87 -0
- package/es/components/Tearsheet/Tearsheet.d.ts +8 -1
- package/es/components/Tearsheet/Tearsheet.js +9 -1
- package/es/components/Tearsheet/TearsheetNarrow.d.ts +11 -0
- package/es/components/Tearsheet/TearsheetNarrow.js +12 -0
- package/es/components/Tearsheet/TearsheetShell.d.ts +10 -0
- package/es/components/Tearsheet/TearsheetShell.js +17 -3
- package/es/components/Toolbar/ToolbarButton.js +1 -1
- package/es/components/index.d.ts +1 -1
- package/es/index.js +1 -0
- package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +23 -21
- package/lib/components/ConditionBuilder/ConditionBuilder.js +67 -20
- package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +15 -0
- package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +137 -0
- package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +6 -3
- package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +5 -1
- package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +16 -4
- package/lib/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +2 -2
- package/lib/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +2 -2
- package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +9 -11
- package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +36 -32
- package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +0 -1
- package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +7 -2
- package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +6 -1
- package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +18 -10
- package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +39 -36
- package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +12 -10
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +1 -1
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +23 -15
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +20 -5
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +13 -0
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +117 -0
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.d.ts → ItemOptionForValueField.d.ts} +2 -2
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.js → ItemOptionForValueField.js} +56 -31
- package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +4 -6
- package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +14 -4
- package/lib/components/ConditionBuilder/utils/handleKeyboardEvents.js +1 -2
- package/lib/components/ConditionBuilder/utils/util.d.ts +1 -0
- package/lib/components/ConditionBuilder/utils/util.js +17 -0
- package/lib/components/DataSpreadsheet/DataSpreadsheet.d.ts +12 -0
- package/lib/components/DataSpreadsheet/DataSpreadsheet.js +29 -7
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.d.ts +12 -0
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +22 -6
- package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +3 -0
- package/lib/components/Datagrid/Datagrid/Datagrid.js +2 -1
- package/lib/components/Datagrid/Datagrid/DatagridContent.js +1 -1
- package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +11 -1
- package/lib/components/Datagrid/Datagrid/DatagridRow.js +13 -2
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +6 -1
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +6 -1
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.d.ts +3 -1
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +6 -3
- package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.d.ts +1 -1
- package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +21 -16
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +1 -1
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +73 -10
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +10 -2
- package/lib/components/Datagrid/types/index.d.ts +18 -4
- package/lib/components/Datagrid/useActionsColumn.d.ts +8 -1
- package/lib/components/Datagrid/useActionsColumn.js +7 -6
- package/lib/components/Datagrid/useColumnRightAlign.d.ts +8 -1
- package/lib/components/Datagrid/useColumnRightAlign.js +4 -3
- package/lib/components/Datagrid/useInlineEdit.js +12 -2
- package/lib/components/Datagrid/useNestedRows.js +32 -13
- package/lib/components/Decorator/Decorator.js +2 -1
- package/lib/components/DecoratorBase/DecoratorBase.js +3 -5
- package/lib/components/DecoratorDualButton/DecoratorDualButton.js +2 -1
- package/lib/components/DecoratorLink/DecoratorLink.js +2 -1
- package/lib/components/DecoratorSingleButton/DecoratorSingleButton.js +2 -1
- package/lib/components/EditTearsheet/EditTearsheet.d.ts +5 -1
- package/lib/components/EditTearsheet/EditTearsheet.js +0 -1
- package/lib/components/EditTearsheet/EditTearsheetForm.d.ts +45 -2
- package/lib/components/EditTearsheet/EditTearsheetForm.js +3 -0
- package/lib/components/HTTPErrors/HTTPError403/HTTPError403.js +6 -0
- package/lib/components/HTTPErrors/HTTPError404/HTTPError404.js +6 -0
- package/lib/components/HTTPErrors/HTTPErrorOther/HTTPErrorOther.js +6 -0
- package/lib/components/RemoveModal/RemoveModal.d.ts +4 -0
- package/lib/components/RemoveModal/RemoveModal.js +7 -1
- package/lib/components/StatusIndicator/StatusIndicatorStep.js +94 -0
- package/lib/components/Tearsheet/Tearsheet.d.ts +8 -1
- package/lib/components/Tearsheet/Tearsheet.js +9 -1
- package/lib/components/Tearsheet/TearsheetNarrow.d.ts +11 -0
- package/lib/components/Tearsheet/TearsheetNarrow.js +12 -0
- package/lib/components/Tearsheet/TearsheetShell.d.ts +10 -0
- package/lib/components/Tearsheet/TearsheetShell.js +16 -2
- package/lib/components/Toolbar/ToolbarButton.js +1 -1
- package/lib/components/index.d.ts +1 -1
- package/lib/index.js +5 -0
- package/package.json +7 -6
- package/scss/components/ConditionBuilder/styles/_conditionBuilderCondition.scss +9 -1
- package/scss/components/ConditionBuilder/styles/_conditionBuilderItem.scss +26 -1
- package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +7 -0
- package/scss/components/Datagrid/styles/_useInlineEdit.scss +13 -0
- package/scss/components/StatusIcon/_status-icon.scss +4 -4
- package/scss/components/StringFormatter/_string-formatter.scss +2 -2
- package/scss/components/UserProfileImage/_user-profile-image.scss +6 -2
- package/telemetry.yml +15 -3
- package/es/components/ConditionBuilder/utils/checkForHoldingKey.d.ts +0 -1
- package/es/components/ConditionBuilder/utils/checkForHoldingKey.js +0 -16
- package/lib/components/ConditionBuilder/utils/checkForHoldingKey.d.ts +0 -1
- package/lib/components/ConditionBuilder/utils/checkForHoldingKey.js +0 -20
@@ -35,6 +35,9 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
35
35
|
headerGroups = _ref.headerGroups,
|
36
36
|
id = _ref.id,
|
37
37
|
onDataUpdate = _ref.onDataUpdate,
|
38
|
+
renderRowHeader = _ref.renderRowHeader,
|
39
|
+
renderRowHeaderDirection = _ref.renderRowHeaderDirection,
|
40
|
+
hasCustomRowHeader = _ref.hasCustomRowHeader,
|
38
41
|
prepareRow = _ref.prepareRow,
|
39
42
|
rows = _ref.rows,
|
40
43
|
selectionAreaData = _ref.selectionAreaData,
|
@@ -138,7 +141,7 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
138
141
|
return;
|
139
142
|
});
|
140
143
|
}
|
141
|
-
}, [selectionAreas, setSelectionAreas, defaultColumn, onSelectionAreaChange, setSelectionAreaData, ref, activeCellCoordinates, setActiveCellInsideSelectionArea, visibleColumns]);
|
144
|
+
}, [selectionAreas, setSelectionAreas, defaultColumn, onSelectionAreaChange, setSelectionAreaData, ref, activeCellCoordinates, setActiveCellInsideSelectionArea, visibleColumns, hasCustomRowHeader]);
|
142
145
|
var populateSelectionAreaCellData = function populateSelectionAreaCellData(_ref2) {
|
143
146
|
var rowStart = _ref2.rowStart,
|
144
147
|
rowEnd = _ref2.rowEnd,
|
@@ -212,7 +215,7 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
212
215
|
});
|
213
216
|
}
|
214
217
|
}
|
215
|
-
}, [defaultColumn, ref, activeCellCoordinates, previousState === null || previousState === void 0 ? void 0 : previousState.rowHeight, selectionAreas, setActiveCellInsideSelectionArea, setSelectionAreas, visibleColumns]);
|
218
|
+
}, [defaultColumn, ref, activeCellCoordinates, previousState === null || previousState === void 0 ? void 0 : previousState.rowHeight, selectionAreas, setActiveCellInsideSelectionArea, setSelectionAreas, visibleColumns, hasCustomRowHeader]);
|
216
219
|
|
217
220
|
//this method will check for any duplicate selection area and remove.
|
218
221
|
//same selections are those have the same height, width, top, left styles. These inline styles are being set in createCellSelection util.
|
@@ -338,11 +341,12 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
338
341
|
"data-column-index": "header",
|
339
342
|
type: "button",
|
340
343
|
onClick: handleRowHeaderClickEvent(index),
|
341
|
-
className: cx("".concat(blockClass, "__td"), "".concat(blockClass, "__td-th"), "".concat(blockClass, "--interactive-cell-element"), _defineProperty(_defineProperty({}, "".concat(blockClass, "__td-th--active-header"), (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === index || checkActiveHeaderCell(index, selectionAreas, 'row')), "".concat(blockClass, "__td-th--selected-header"), checkSelectedHeaderCell(index, selectionAreas, 'row', columns))),
|
344
|
+
className: cx("".concat(blockClass, "__td"), "".concat(blockClass, "__td-th"), "".concat(blockClass, "--interactive-cell-element"), _defineProperty(_defineProperty(_defineProperty({}, "".concat(blockClass, "__td_custom"), hasCustomRowHeader ? true : false), "".concat(blockClass, "__td-th--active-header"), !hasCustomRowHeader && ((activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === index || checkActiveHeaderCell(index, selectionAreas, 'row'))), "".concat(blockClass, "__td-th--selected-header"), !hasCustomRowHeader && checkSelectedHeaderCell(index, selectionAreas, 'row', columns))),
|
342
345
|
style: {
|
343
|
-
width: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeaderWidth
|
346
|
+
width: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeaderWidth,
|
347
|
+
flexDirection: hasCustomRowHeader ? renderRowHeaderDirection === 'Left' ? 'row-reverse' : row : undefined
|
344
348
|
}
|
345
|
-
}, index + 1)), row.cells.map(function (cell, index) {
|
349
|
+
}, index + 1, hasCustomRowHeader && typeof renderRowHeader === 'function' && renderRowHeader(index))), row.cells.map(function (cell, index) {
|
346
350
|
var _cell$column;
|
347
351
|
var cellProps = prepareProps(cell.getCellProps(), 'key');
|
348
352
|
return /*#__PURE__*/React__default.createElement("div", _extends({
|
@@ -367,7 +371,7 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
367
371
|
}, cell.render('Cell')));
|
368
372
|
}));
|
369
373
|
}
|
370
|
-
}, [prepareRow, rows, activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row, selectionAreas, handleRowHeaderClickEvent, handleBodyCellClickEvent, handleBodyCellHoverEvent, defaultColumn, columns]);
|
374
|
+
}, [prepareRow, renderRowHeader, renderRowHeaderDirection, rows, hasCustomRowHeader, activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row, selectionAreas, handleRowHeaderClickEvent, handleBodyCellClickEvent, handleBodyCellHoverEvent, defaultColumn, columns]);
|
371
375
|
var spreadsheetBodyRef = useRef();
|
372
376
|
return /*#__PURE__*/React__default.createElement("div", _extends({
|
373
377
|
ref: spreadsheetBodyRef,
|
@@ -433,6 +437,10 @@ DataSpreadsheetBody.propTypes = {
|
|
433
437
|
*/
|
434
438
|
/**@ts-ignore */
|
435
439
|
getTableBodyProps: PropTypes.func,
|
440
|
+
/**
|
441
|
+
* Check if spreadsheet is using custom row header component attached
|
442
|
+
*/
|
443
|
+
hasCustomRowHeader: PropTypes.bool,
|
436
444
|
/**
|
437
445
|
* Headers provided from useTable hook
|
438
446
|
*/
|
@@ -457,6 +465,14 @@ DataSpreadsheetBody.propTypes = {
|
|
457
465
|
* Prepare row function from react-table
|
458
466
|
*/
|
459
467
|
prepareRow: PropTypes.func,
|
468
|
+
/**
|
469
|
+
* Component next to numbering rows
|
470
|
+
*/
|
471
|
+
renderRowHeader: PropTypes.func,
|
472
|
+
/**
|
473
|
+
* Component next to numbering rows
|
474
|
+
*/
|
475
|
+
renderRowHeaderDirection: PropTypes.string,
|
460
476
|
/**
|
461
477
|
* All of the spreadsheet row data
|
462
478
|
*/
|
@@ -175,6 +175,9 @@ var DataSpreadsheetHeader = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
175
175
|
"data-row-index": "header",
|
176
176
|
"data-column-index": "header",
|
177
177
|
type: "button",
|
178
|
+
style: {
|
179
|
+
width: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeaderWidth
|
180
|
+
},
|
178
181
|
tabIndex: -1,
|
179
182
|
"aria-label": selectAllAriaLabel,
|
180
183
|
onClick: handleSelectAllClick,
|
@@ -46,7 +46,8 @@ var Datagrid = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
|
|
46
46
|
};
|
47
47
|
return /*#__PURE__*/React__default.createElement(FilterProvider, {
|
48
48
|
filters: state === null || state === void 0 ? void 0 : state.filters,
|
49
|
-
filterProps: filterProps
|
49
|
+
filterProps: filterProps,
|
50
|
+
tableId: tableId
|
50
51
|
}, /*#__PURE__*/React__default.createElement(InlineEditProvider, null, /*#__PURE__*/React__default.createElement("div", _extends({}, rest, {
|
51
52
|
id: tableId,
|
52
53
|
ref: ref,
|
@@ -158,7 +158,7 @@ var DatagridContent = function DatagridContent(_ref) {
|
|
158
158
|
className: "".concat(blockClass, "__filter-summary"),
|
159
159
|
filters: filterTags,
|
160
160
|
clearFilters: function clearFilters() {
|
161
|
-
return EventEmitter.dispatch(CLEAR_FILTERS);
|
161
|
+
return EventEmitter.dispatch(CLEAR_FILTERS, tableId);
|
162
162
|
},
|
163
163
|
renderLabel: filterProps === null || filterProps === void 0 ? void 0 : filterProps.renderLabel,
|
164
164
|
overflowType: "tag"
|
@@ -90,7 +90,8 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
|
|
90
90
|
var resizerAriaLabel = datagridState.resizerAriaLabel,
|
91
91
|
isTableSortable = datagridState.isTableSortable,
|
92
92
|
rows = datagridState.rows,
|
93
|
-
isFetching = datagridState.isFetching
|
93
|
+
isFetching = datagridState.isFetching,
|
94
|
+
headers = datagridState.headers;
|
94
95
|
useInitialColumnSort(datagridState);
|
95
96
|
// Used to measure the height of the table and uses that value
|
96
97
|
// to display a vertical line to indicate the column you are resizing
|
@@ -152,6 +153,9 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
|
|
152
153
|
});
|
153
154
|
var key = headerGroupProps.key,
|
154
155
|
rowProps = _objectWithoutProperties(headerGroupProps, _excluded2);
|
156
|
+
var withActionsColumn = headers ? !!headers.filter(function (header) {
|
157
|
+
return header.isAction;
|
158
|
+
}).length : false;
|
155
159
|
return /*#__PURE__*/React__default.createElement(TableRow, _extends({
|
156
160
|
key: key
|
157
161
|
}, rowProps, {
|
@@ -184,6 +188,12 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
|
|
184
188
|
var _header$getHeaderProp = header.getHeaderProps(),
|
185
189
|
headerProps = _extends({}, (_objectDestructuringEmpty(_header$getHeaderProp), _header$getHeaderProp));
|
186
190
|
var resizerProps = header === null || header === void 0 || (_header$getResizerPro = header.getResizerProps) === null || _header$getResizerPro === void 0 ? void 0 : _header$getResizerPro.call(header);
|
191
|
+
var headerStyle = headerProps === null || headerProps === void 0 ? void 0 : headerProps.style;
|
192
|
+
var lastVisibleIndex = withActionsColumn ? 2 : 1;
|
193
|
+
var lastVisibleFlexStyle = index === visibleColumns.length - lastVisibleIndex ? '1 1 0' : '0 0 auto';
|
194
|
+
if (headerStyle) {
|
195
|
+
headerStyle.flex = lastVisibleFlexStyle;
|
196
|
+
}
|
187
197
|
return /*#__PURE__*/React__default.createElement(TableHeader, _extends({}, headerProps, {
|
188
198
|
className: cx(header === null || header === void 0 ? void 0 : header.className, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "".concat(blockClass, "__resizableColumn"), resizerProps), "".concat(blockClass, "__isResizing"), header === null || header === void 0 ? void 0 : header.isResizing), "".concat(blockClass, "__sortableColumn"), datagridState.isTableSortable && header.id !== 'spacer'), "".concat(blockClass, "__isSorted"), header === null || header === void 0 ? void 0 : header.isSorted), "".concat(blockClass, "__header-actions-column"), header === null || header === void 0 ? void 0 : header.isAction), "".concat(blockClass, "__with-slug"), header.slug && /*#__PURE__*/React__default.isValidElement(header === null || header === void 0 ? void 0 : header.slug)), headerProps.className),
|
189
199
|
key: header.id,
|
@@ -16,7 +16,7 @@ import { DatagridSlug } from './addons/Slug/DatagridSlug.js';
|
|
16
16
|
|
17
17
|
var _SkeletonText;
|
18
18
|
var _excluded = ["className"],
|
19
|
-
_excluded2 = ["children"];
|
19
|
+
_excluded2 = ["style", "children"];
|
20
20
|
var blockClass = "".concat(pkg.prefix, "--datagrid");
|
21
21
|
var rowHeights = {
|
22
22
|
xs: 24,
|
@@ -39,7 +39,8 @@ var DatagridRow = function DatagridRow(datagridState) {
|
|
39
39
|
withExpandedRows = datagridState.withExpandedRows,
|
40
40
|
withMouseHover = datagridState.withMouseHover,
|
41
41
|
setMouseOverRowIndex = datagridState.setMouseOverRowIndex,
|
42
|
-
headers = datagridState.headers
|
42
|
+
headers = datagridState.headers,
|
43
|
+
visibleColumns = datagridState.visibleColumns;
|
43
44
|
var getVisibleNestedRowCount = function getVisibleNestedRowCount(_ref) {
|
44
45
|
var isExpanded = _ref.isExpanded,
|
45
46
|
subRows = _ref.subRows;
|
@@ -115,6 +116,9 @@ var DatagridRow = function DatagridRow(datagridState) {
|
|
115
116
|
return /*#__PURE__*/isValidElement(r === null || r === void 0 || (_r$original = r.original) === null || _r$original === void 0 ? void 0 : _r$original.slug);
|
116
117
|
});
|
117
118
|
var rowClassNames = cx("".concat(blockClass, "__carbon-row"), _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded), "".concat(blockClass, "__carbon-row-expandable"), row.canExpand), "".concat(carbon.prefix, "--data-table--selected"), row.isSelected), "".concat(blockClass, "__slug--row"), /*#__PURE__*/isValidElement(row === null || row === void 0 || (_row$original = row.original) === null || _row$original === void 0 ? void 0 : _row$original.slug)));
|
119
|
+
var withActionsColumn = headers ? !!headers.filter(function (header) {
|
120
|
+
return header.isAction;
|
121
|
+
}).length : false;
|
118
122
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
|
119
123
|
key: key
|
120
124
|
}, /*#__PURE__*/React__default.createElement(TableRow, _extends({}, rowProps, {
|
@@ -136,6 +140,7 @@ var DatagridRow = function DatagridRow(datagridState) {
|
|
136
140
|
var cellProps = cell.getCellProps();
|
137
141
|
// eslint-disable-next-line no-unused-vars
|
138
142
|
var _ref2 = cellProps,
|
143
|
+
style = _ref2.style,
|
139
144
|
children = _ref2.children,
|
140
145
|
restProps = _objectWithoutProperties(_ref2, _excluded2);
|
141
146
|
var columnClassname = cell === null || cell === void 0 || (_cell$column = cell.column) === null || _cell$column === void 0 ? void 0 : _cell$column.className;
|
@@ -150,9 +155,15 @@ var DatagridRow = function DatagridRow(datagridState) {
|
|
150
155
|
var associatedHeader = headers === null || headers === void 0 ? void 0 : headers.filter(function (h) {
|
151
156
|
return h.id === cell.column.id;
|
152
157
|
});
|
158
|
+
var lastVisibleIndex = withActionsColumn ? 2 : 1;
|
159
|
+
var lastVisibleFlexStyle = index === visibleColumns.length - lastVisibleIndex ? '1 1 0' : '0 0 auto';
|
160
|
+
if (style) {
|
161
|
+
style.flex = lastVisibleFlexStyle;
|
162
|
+
}
|
153
163
|
return /*#__PURE__*/React__default.createElement(TableCell, _extends({
|
154
164
|
className: cx("".concat(blockClass, "__cell"), _defineProperty(_defineProperty(_defineProperty({}, "".concat(blockClass, "__expandable-row-cell"), row.canExpand && index === 0), "".concat(blockClass, "__expandable-row-cell--is-expanded"), row.isExpanded && index === 0), "".concat(blockClass, "__slug--cell"), associatedHeader && associatedHeader.length && /*#__PURE__*/isValidElement((_associatedHeader$ = associatedHeader[0]) === null || _associatedHeader$ === void 0 ? void 0 : _associatedHeader$.slug)), columnClassname)
|
155
165
|
}, restProps, {
|
166
|
+
style: style,
|
156
167
|
key: cell.column.id,
|
157
168
|
title: title
|
158
169
|
}), content);
|
@@ -209,7 +209,12 @@ var FilterFlyout = function FilterFlyout(_ref) {
|
|
209
209
|
closeFlyout();
|
210
210
|
cancel();
|
211
211
|
});
|
212
|
-
|
212
|
+
|
213
|
+
// tableId is passed in from the event emitter from the FilterSummary component
|
214
|
+
// in DatagridContent
|
215
|
+
useSubscribeToEventEmitter(CLEAR_FILTERS, function (tableId) {
|
216
|
+
reset(tableId);
|
217
|
+
});
|
213
218
|
useEffect(function reflectLastAppliedFiltersWhenReactTableUpdates() {
|
214
219
|
lastAppliedFilters.current = JSON.stringify(reactTableFiltersState);
|
215
220
|
}, [reactTableFiltersState, lastAppliedFilters]);
|
@@ -183,7 +183,12 @@ var FilterPanel = function FilterPanel(_ref) {
|
|
183
183
|
var _filterPanelRef$curre;
|
184
184
|
(_filterPanelRef$curre = filterPanelRef.current) === null || _filterPanelRef$curre === void 0 || _filterPanelRef$curre.style.setProperty('--filter-panel-min-height', rem(filterPanelMinHeight));
|
185
185
|
}, [filterPanelMinHeight]);
|
186
|
-
|
186
|
+
|
187
|
+
// tableId is passed in from the event emitter from the FilterSummary component
|
188
|
+
// in DatagridContent
|
189
|
+
useSubscribeToEventEmitter(CLEAR_FILTERS, function (tableId) {
|
190
|
+
reset(tableId);
|
191
|
+
});
|
187
192
|
var getScrollableContainerHeight = function getScrollableContainerHeight() {
|
188
193
|
var _filterHeadingRef$cur, _filterSearchRef$curr, _actionSetRef$current;
|
189
194
|
var filterHeadingHeight = (_filterHeadingRef$cur = filterHeadingRef.current) === null || _filterHeadingRef$cur === void 0 ? void 0 : _filterHeadingRef$cur.getBoundingClientRect().height;
|
@@ -3,16 +3,18 @@ export function clearSingleFilter({ key, value }: {
|
|
3
3
|
key: any;
|
4
4
|
value: any;
|
5
5
|
}, setAllFilters: any, state: any): void;
|
6
|
-
export function FilterProvider({ children, filters, filterProps }: {
|
6
|
+
export function FilterProvider({ children, filters, filterProps, tableId }: {
|
7
7
|
children: any;
|
8
8
|
filters: any;
|
9
9
|
filterProps: any;
|
10
|
+
tableId: any;
|
10
11
|
}): import("react/jsx-runtime").JSX.Element;
|
11
12
|
export namespace FilterProvider {
|
12
13
|
namespace propTypes {
|
13
14
|
let children: PropTypes.Validator<NonNullable<NonNullable<PropTypes.ReactNodeLike>>>;
|
14
15
|
let filterProps: PropTypes.Requireable<object>;
|
15
16
|
let filters: PropTypes.Validator<(object | null | undefined)[]>;
|
17
|
+
let tableId: PropTypes.Requireable<string>;
|
16
18
|
}
|
17
19
|
}
|
18
20
|
import React from 'react';
|
@@ -156,7 +156,8 @@ var filteringReducer = function filteringReducer(state, action) {
|
|
156
156
|
var FilterProvider = function FilterProvider(_ref4) {
|
157
157
|
var children = _ref4.children,
|
158
158
|
filters = _ref4.filters,
|
159
|
-
filterProps = _ref4.filterProps
|
159
|
+
filterProps = _ref4.filterProps,
|
160
|
+
tableId = _ref4.tableId;
|
160
161
|
var _ref5 = filterProps || {},
|
161
162
|
renderDateLabel = _ref5.renderDateLabel;
|
162
163
|
var filterTags = prepareFiltersForTags(filters, renderDateLabel);
|
@@ -177,7 +178,8 @@ var FilterProvider = function FilterProvider(_ref4) {
|
|
177
178
|
panelOpen: panelOpen,
|
178
179
|
setPanelOpen: setPanelOpen,
|
179
180
|
state: state,
|
180
|
-
dispatch: dispatch
|
181
|
+
dispatch: dispatch,
|
182
|
+
tableId: tableId
|
181
183
|
};
|
182
184
|
return /*#__PURE__*/React__default.createElement(FilterContext.Provider, {
|
183
185
|
value: value
|
@@ -186,7 +188,8 @@ var FilterProvider = function FilterProvider(_ref4) {
|
|
186
188
|
FilterProvider.propTypes = {
|
187
189
|
children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,
|
188
190
|
filterProps: PropTypes.object,
|
189
|
-
filters: PropTypes.arrayOf(PropTypes.object).isRequired
|
191
|
+
filters: PropTypes.arrayOf(PropTypes.object).isRequired,
|
192
|
+
tableId: PropTypes.string
|
190
193
|
};
|
191
194
|
|
192
195
|
export { FilterContext, FilterProvider, clearSingleFilter };
|
@@ -15,7 +15,7 @@ declare function useFilters({ updateMethod, filters, setAllFilters, variation, r
|
|
15
15
|
prevFiltersObjectArrayRef: React.MutableRefObject<string>;
|
16
16
|
prevFiltersRef: React.MutableRefObject<string>;
|
17
17
|
revertToPreviousFilters: () => void;
|
18
|
-
reset: () => void;
|
18
|
+
reset: (tableId: any) => void;
|
19
19
|
renderFilter: ({ type, column, props: components }: {
|
20
20
|
type: any;
|
21
21
|
column: any;
|
@@ -28,7 +28,8 @@ var useFilters = function useFilters(_ref) {
|
|
28
28
|
isFetching = _ref.isFetching;
|
29
29
|
var _useContext = useContext(FilterContext),
|
30
30
|
state = _useContext.state,
|
31
|
-
localDispatch = _useContext.dispatch
|
31
|
+
localDispatch = _useContext.dispatch,
|
32
|
+
contextTableId = _useContext.tableId;
|
32
33
|
var savedFilters = state.savedFilters;
|
33
34
|
/** State */
|
34
35
|
var _useState = useState(getInitialStateFromFilters(filters, variation, reactTableFiltersState)),
|
@@ -69,24 +70,28 @@ var useFilters = function useFilters(_ref) {
|
|
69
70
|
holdingLastAppliedFiltersRef.current = JSON.parse(prevFiltersObjectArrayRef.current);
|
70
71
|
holdingPrevFiltersObjectArrayRef.current = JSON.parse(lastAppliedFilters.current);
|
71
72
|
}, [setAllFilters]);
|
72
|
-
var reset = useCallback(function () {
|
73
|
-
//
|
74
|
-
|
73
|
+
var reset = useCallback(function (tableId) {
|
74
|
+
// only reset filters if tableid of the datagrid that triggered "clear filters"
|
75
|
+
// matches the table id stored in its context instance
|
76
|
+
if (tableId === contextTableId) {
|
77
|
+
// When we reset we want the "initialFilters" to be an empty array
|
78
|
+
var resetFiltersArray = [];
|
75
79
|
|
76
|
-
|
77
|
-
|
78
|
-
|
80
|
+
// Get the initial values for the filters
|
81
|
+
var initialFiltersState = getInitialStateFromFilters(filters, variation, resetFiltersArray);
|
82
|
+
var initialFiltersObjectArray = [];
|
79
83
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
+
// Set the state to the initial values
|
85
|
+
setFiltersState(initialFiltersState);
|
86
|
+
setFiltersObjectArray(initialFiltersObjectArray);
|
87
|
+
setAllFilters([]);
|
84
88
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
89
|
+
// Update their respective refs so everything is in sync
|
90
|
+
prevFiltersRef.current = JSON.stringify(initialFiltersState);
|
91
|
+
prevFiltersObjectArrayRef.current = JSON.stringify(initialFiltersObjectArray);
|
92
|
+
lastAppliedFilters.current = JSON.stringify([]);
|
93
|
+
}
|
94
|
+
}, [filters, setAllFilters, variation, contextTableId]);
|
90
95
|
var applyFilters = function applyFilters(_ref2) {
|
91
96
|
var column = _ref2.column,
|
92
97
|
value = _ref2.value,
|
package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js
CHANGED
@@ -48,7 +48,7 @@ InlineEditButton.propTypes = {
|
|
48
48
|
nonEditCell: PropTypes.bool,
|
49
49
|
placeholder: PropTypes.string,
|
50
50
|
renderIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
|
51
|
-
type: PropTypes.oneOf(['text', 'number', 'selection', 'date']),
|
51
|
+
type: PropTypes.oneOf(['text', 'number', 'selection', 'date', 'checkbox']),
|
52
52
|
value: PropTypes.oneOfType([PropTypes.string, PropTypes.node])
|
53
53
|
};
|
54
54
|
|
@@ -8,7 +8,7 @@
|
|
8
8
|
import { slicedToArray as _slicedToArray, objectSpread2 as _objectSpread2, defineProperty as _defineProperty, extends as _extends, typeof as _typeof } from '../../../../../../_virtual/_rollupPluginBabelHelpers.js';
|
9
9
|
import React__default, { useContext, useState, useRef, useEffect, useCallback } from 'react';
|
10
10
|
import PropTypes from '../../../../../../node_modules/prop-types/index.js';
|
11
|
-
import { Dropdown, DatePicker, DatePickerInput, NumberInput, TextInput } from '@carbon/react';
|
11
|
+
import { Dropdown, DatePicker, DatePickerInput, NumberInput, Checkbox, TextInput } from '@carbon/react';
|
12
12
|
import { Edit, CaretSort, ChevronDown, Calendar } from '@carbon/react/icons';
|
13
13
|
import { pkg } from '../../../../../../settings.js';
|
14
14
|
import cx from 'classnames';
|
@@ -19,7 +19,7 @@ import { InlineEditButton } from '../InlineEditButton/InlineEditButton.js';
|
|
19
19
|
|
20
20
|
var blockClass = "".concat(pkg.prefix, "--datagrid");
|
21
21
|
var InlineEditCell = function InlineEditCell(_ref) {
|
22
|
-
var _config$validator
|
22
|
+
var _config$validator;
|
23
23
|
var cell = _ref.cell,
|
24
24
|
config = _ref.config,
|
25
25
|
_ref$disabledCell = _ref.disabledCell,
|
@@ -66,6 +66,7 @@ var InlineEditCell = function InlineEditCell(_ref) {
|
|
66
66
|
var _ref2 = config || {},
|
67
67
|
inputProps = _ref2.inputProps;
|
68
68
|
var textInputRef = useRef();
|
69
|
+
var checkboxRef = useRef();
|
69
70
|
var numberInputRef = useRef();
|
70
71
|
var dropdownRef = useRef();
|
71
72
|
var datePickerRef = useRef();
|
@@ -208,10 +209,36 @@ var InlineEditCell = function InlineEditCell(_ref) {
|
|
208
209
|
var handleKeyDown = function handleKeyDown(event) {
|
209
210
|
var key = event.key;
|
210
211
|
switch (key) {
|
212
|
+
case 'ArrowRight':
|
213
|
+
case 'ArrowLeft':
|
214
|
+
case 'ArrowUp':
|
215
|
+
case 'ArrowDown':
|
216
|
+
if (inEditMode && event.target.type === 'checkbox') {
|
217
|
+
var newCellId = getNewCellId(key);
|
218
|
+
saveCellData(cellValue);
|
219
|
+
setInitialValue(cellValue);
|
220
|
+
dispatch({
|
221
|
+
type: 'EXIT_EDIT_MODE',
|
222
|
+
payload: newCellId
|
223
|
+
});
|
224
|
+
setInEditMode(false);
|
225
|
+
sendFocusBackToGrid();
|
226
|
+
}
|
227
|
+
break;
|
211
228
|
// Save cell contents to data
|
212
229
|
case 'Tab':
|
213
230
|
case 'Enter':
|
214
231
|
{
|
232
|
+
if (type === 'checkbox') {
|
233
|
+
// Since checkbox doesn't need to click into it to enter `inEditMode` we don't need to check for it
|
234
|
+
var _newCellId = getNewCellId(key);
|
235
|
+
dispatch({
|
236
|
+
type: 'EXIT_EDIT_MODE',
|
237
|
+
payload: _newCellId
|
238
|
+
});
|
239
|
+
setInEditMode(false);
|
240
|
+
sendFocusBackToGrid();
|
241
|
+
}
|
215
242
|
if (inEditMode) {
|
216
243
|
// Dropdown saves are handled in the Dropdown's/DatePicker's onChange prop
|
217
244
|
if (type === 'selection' || type === 'date') {
|
@@ -225,12 +252,12 @@ var InlineEditCell = function InlineEditCell(_ref) {
|
|
225
252
|
if (isInvalid) {
|
226
253
|
return;
|
227
254
|
}
|
228
|
-
var
|
255
|
+
var _newCellId2 = getNewCellId(key);
|
229
256
|
saveCellData(cellValue);
|
230
257
|
setInitialValue(cellValue);
|
231
258
|
dispatch({
|
232
259
|
type: 'EXIT_EDIT_MODE',
|
233
|
-
payload:
|
260
|
+
payload: _newCellId2
|
234
261
|
});
|
235
262
|
setInEditMode(false);
|
236
263
|
sendFocusBackToGrid();
|
@@ -425,9 +452,27 @@ var InlineEditCell = function InlineEditCell(_ref) {
|
|
425
452
|
ref: numberInputRef
|
426
453
|
}));
|
427
454
|
};
|
455
|
+
var renderCheckBoxCell = function renderCheckBoxCell() {
|
456
|
+
return /*#__PURE__*/React__default.createElement(Checkbox, _extends({
|
457
|
+
labelText: cellLabel || 'Checkbox'
|
458
|
+
}, inputProps, {
|
459
|
+
className: cx("".concat(blockClass, "__inline-edit--outer-cell-checkbox"), _defineProperty({}, "".concat(blockClass, "__inline-edit--outer-cell-checkbox-focus"), activeCellId === cellId)),
|
460
|
+
id: cellId,
|
461
|
+
hideLabel: true,
|
462
|
+
checked: cellValue,
|
463
|
+
onChange: function onChange(event, _ref10) {
|
464
|
+
var checked = _ref10.checked;
|
465
|
+
setCellValue(checked);
|
466
|
+
if (inputProps.onChange) {
|
467
|
+
inputProps.onChange(checked);
|
468
|
+
}
|
469
|
+
},
|
470
|
+
ref: checkboxRef
|
471
|
+
}));
|
472
|
+
};
|
428
473
|
var renderTextInput = function renderTextInput() {
|
429
|
-
var
|
430
|
-
validator =
|
474
|
+
var _ref11 = config || {},
|
475
|
+
validator = _ref11.validator;
|
431
476
|
var isInvalid = validator === null || validator === void 0 ? void 0 : validator(cellValue);
|
432
477
|
return /*#__PURE__*/React__default.createElement(TextInput, _extends({
|
433
478
|
labelText: cellLabel,
|
@@ -447,6 +492,24 @@ var InlineEditCell = function InlineEditCell(_ref) {
|
|
447
492
|
ref: textInputRef
|
448
493
|
}));
|
449
494
|
};
|
495
|
+
var getLabel = function getLabel() {
|
496
|
+
var _value$text, _checkStaticCell;
|
497
|
+
var checkStaticCell = function checkStaticCell(val) {
|
498
|
+
if (_typeof(val) === 'object' && val !== null && val !== void 0 && val.isStaticCell) {
|
499
|
+
return val === null || val === void 0 ? void 0 : val.value;
|
500
|
+
}
|
501
|
+
};
|
502
|
+
switch (type) {
|
503
|
+
case 'selection':
|
504
|
+
checkStaticCell(value);
|
505
|
+
return (_value$text = value === null || value === void 0 ? void 0 : value.text) !== null && _value$text !== void 0 ? _value$text : value;
|
506
|
+
case 'date':
|
507
|
+
checkStaticCell(value);
|
508
|
+
return buildDate(value);
|
509
|
+
default:
|
510
|
+
return (_checkStaticCell = checkStaticCell(value)) !== null && _checkStaticCell !== void 0 ? _checkStaticCell : value;
|
511
|
+
}
|
512
|
+
};
|
450
513
|
return (
|
451
514
|
/*#__PURE__*/
|
452
515
|
// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
|
@@ -455,15 +518,15 @@ var InlineEditCell = function InlineEditCell(_ref) {
|
|
455
518
|
"data-cell-id": cellId,
|
456
519
|
"data-column-index": columnIndex,
|
457
520
|
"data-row-index": cell.row.index,
|
458
|
-
"data-disabled": disabledCell,
|
521
|
+
"data-disabled": disabledCell || nonEditCell,
|
459
522
|
"data-inline-type": type,
|
460
523
|
onClick: !nonEditCell ? handleInlineCellClick : addActiveState,
|
461
524
|
onKeyDown: !nonEditCell ? handleKeyDown : null,
|
462
525
|
className: cx("".concat(blockClass, "__inline-edit--outer-cell-button"), _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "".concat(blockClass, "__inline-edit--outer-cell-button--").concat(rowSize), rowSize), "".concat(blockClass, "__inline-edit--outer-cell-button--lg"), !rowSize), "".concat(blockClass, "__inline-edit--outer-cell-button--invalid"), inEditMode && (config === null || config === void 0 || (_config$validator = config.validator) === null || _config$validator === void 0 ? void 0 : _config$validator.call(config, cellValue))), "".concat(blockClass, "__static--outer-cell"), !disabledCell))
|
463
|
-
}, !nonEditCell && !disabledCell && renderRegularCell(), (!inEditMode || disabledCell) && /*#__PURE__*/React__default.createElement(InlineEditButton, {
|
526
|
+
}, !nonEditCell && !disabledCell && type !== 'checkbox' && renderRegularCell(), (!inEditMode || disabledCell) && type !== 'checkbox' && /*#__PURE__*/React__default.createElement(InlineEditButton, {
|
464
527
|
isActiveCell: cellId === activeCellId,
|
465
528
|
renderIcon: setRenderIcon(),
|
466
|
-
label:
|
529
|
+
label: getLabel(),
|
467
530
|
disabledCell: disabledCell,
|
468
531
|
labelIcon: (value === null || value === void 0 ? void 0 : value.icon) || null,
|
469
532
|
placeholder: placeholder,
|
@@ -471,7 +534,7 @@ var InlineEditCell = function InlineEditCell(_ref) {
|
|
471
534
|
nonEditCell: nonEditCell,
|
472
535
|
columnConfig: cell.column,
|
473
536
|
type: type
|
474
|
-
}), !nonEditCell && inEditMode && cellId === activeCellId && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, type === 'text' && renderTextInput(), type === 'number' && renderNumberInput(), type === 'selection' && renderSelectCell(), type === 'date' && renderDateCell()))
|
537
|
+
}), type === 'checkbox' && renderCheckBoxCell(), !nonEditCell && inEditMode && cellId === activeCellId && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, type === 'text' && renderTextInput(), type === 'number' && renderNumberInput(), type === 'selection' && renderSelectCell(), type === 'date' && renderDateCell()))
|
475
538
|
);
|
476
539
|
};
|
477
540
|
InlineEditCell.propTypes = {
|
@@ -489,7 +552,7 @@ InlineEditCell.propTypes = {
|
|
489
552
|
nonEditCell: PropTypes.bool,
|
490
553
|
placeholder: PropTypes.string,
|
491
554
|
tabIndex: PropTypes.number,
|
492
|
-
type: PropTypes.oneOf(['text', 'number', 'selection', 'date']),
|
555
|
+
type: PropTypes.oneOf(['text', 'number', 'selection', 'date', 'checkbox']),
|
493
556
|
value: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.object])
|
494
557
|
};
|
495
558
|
|
@@ -74,7 +74,7 @@ var handleGridKeyPress = function handleGridKeyPress(_ref) {
|
|
74
74
|
};
|
75
75
|
|
76
76
|
// Stop grid key listener when in edit mode
|
77
|
-
var isEditing = document.activeElement.id === activeCellId && document.activeElement.id === editId || dropdownIsActive() || datePickerIsActive();
|
77
|
+
var isEditing = focusedCell.getAttribute('data-inline-type') !== 'checkbox' && document.activeElement.id === activeCellId && document.activeElement.id === editId || dropdownIsActive() || datePickerIsActive();
|
78
78
|
if (isEditing || !gridActive) {
|
79
79
|
return;
|
80
80
|
}
|
@@ -87,6 +87,7 @@ var handleGridKeyPress = function handleGridKeyPress(_ref) {
|
|
87
87
|
event.preventDefault();
|
88
88
|
}
|
89
89
|
var isDisabledCell = focusedCell.getAttribute('data-disabled') === 'false' ? false : true;
|
90
|
+
var isEditableCell = !event.target.classList.contains("".concat(blockClass, "__inline-edit-button--non-edit"));
|
90
91
|
var sharedUpdateParams = {
|
91
92
|
oldId: activeCellId,
|
92
93
|
instance: instance
|
@@ -194,7 +195,7 @@ var handleGridKeyPress = function handleGridKeyPress(_ref) {
|
|
194
195
|
case 'Enter':
|
195
196
|
{
|
196
197
|
// Disabled cells are not allowed to go into edit mode
|
197
|
-
if (isDisabledCell) {
|
198
|
+
if (isDisabledCell || !isEditableCell) {
|
198
199
|
return;
|
199
200
|
}
|
200
201
|
// Only go into edit mode if there is no editId, meaning that we're not already in edit mode
|
@@ -207,6 +208,13 @@ var handleGridKeyPress = function handleGridKeyPress(_ref) {
|
|
207
208
|
dropdownTrigger === null || dropdownTrigger === void 0 || dropdownTrigger.click();
|
208
209
|
}, 1);
|
209
210
|
}
|
211
|
+
if (focusedType === 'checkbox') {
|
212
|
+
setTimeout(function () {
|
213
|
+
var checkboxTrigger = focusedCell.querySelector('input');
|
214
|
+
checkboxTrigger === null || checkboxTrigger === void 0 || checkboxTrigger.click();
|
215
|
+
checkboxTrigger === null || checkboxTrigger === void 0 || checkboxTrigger.focus();
|
216
|
+
}, 1);
|
217
|
+
}
|
210
218
|
if (focusedType === 'date') {
|
211
219
|
setTimeout(function () {
|
212
220
|
var dateInputTrigger = focusedCell.querySelector('input');
|
@@ -5,10 +5,10 @@ import { RadioButtonProps } from '@carbon/react/lib/components/RadioButton/Radio
|
|
5
5
|
import { RadioButtonGroupProps } from '@carbon/react/lib/components/RadioButtonGroup/RadioButtonGroup';
|
6
6
|
import { CheckboxProps } from '@carbon/react/lib/components/Checkbox';
|
7
7
|
import { NumberInputProps } from '@carbon/react/lib/components/NumberInput/NumberInput';
|
8
|
-
import { CSSProperties, JSXElementConstructor, MutableRefObject, ReactNode, TouchEventHandler } from 'react';
|
9
|
-
import { Cell, Column, ColumnInstance, FilterValue, Filters, HeaderGroup, Meta, Row, TableCommonProps, TableDispatch, TableInstance, TableToggleAllRowsSelectedProps, UseExpandedRowProps, UseFiltersInstanceProps, UsePaginationInstanceProps, UseResizeColumnsColumnProps, UseResizeColumnsState, UseRowSelectInstanceProps, UseRowSelectRowProps, UseRowSelectState, UseSortByColumnProps, UseTableHooks } from 'react-table';
|
8
|
+
import React, { CSSProperties, ComponentType, FunctionComponent, JSXElementConstructor, MutableRefObject, ReactNode, TouchEventHandler } from 'react';
|
9
|
+
import { Cell, Column, ColumnInstance, FilterValue, Filters, HeaderGroup, Meta, Row, TableCommonProps, TableDispatch, TableInstance, TableToggleAllRowsSelectedProps, UseExpandedRowProps, UseFiltersInstanceProps, UsePaginationInstanceProps, UseResizeColumnsColumnProps, UseResizeColumnsState, UseRowSelectInstanceProps, UseRowSelectRowProps, UseRowSelectState, UseSortByColumnProps, UseSortByOptions, UseTableHooks } from 'react-table';
|
10
10
|
import { CarbonIconType } from '@carbon/react/icons';
|
11
|
-
import { type ButtonProps } from '@carbon/react';
|
11
|
+
import { IconButton, type ButtonProps } from '@carbon/react';
|
12
12
|
import { TableBatchActionsProps } from '@carbon/react/lib/components/DataTable/TableBatchActions';
|
13
13
|
export type Size = 'xs' | 'sm' | 'md' | 'lg';
|
14
14
|
export interface ResizerProps {
|
@@ -85,9 +85,10 @@ export interface DataGridToggleAllRowsProps extends TableToggleAllRowsSelectedPr
|
|
85
85
|
}
|
86
86
|
export interface DatagridTableHooks<T extends object = any> extends UseTableHooks<T> {
|
87
87
|
}
|
88
|
-
export interface DatagridColumn<T extends object = any> extends ColumnInstance<T> {
|
88
|
+
export interface DatagridColumn<T extends object = any> extends ColumnInstance<T>, UseSortByOptions<T> {
|
89
89
|
sticky?: 'left' | 'right';
|
90
90
|
className?: string;
|
91
|
+
rightAlignedColumn?: boolean;
|
91
92
|
disableSortBy?: boolean;
|
92
93
|
centerAlignedColumn?: boolean;
|
93
94
|
}
|
@@ -100,6 +101,7 @@ export interface DatagridRow<T extends object = any> extends Omit<Row<T>, 'cells
|
|
100
101
|
RowExpansionRenderer?: (state?: DataGridState) => void;
|
101
102
|
cells: Array<DataGridCell>;
|
102
103
|
isSkeleton?: boolean;
|
104
|
+
hasExpanded?: boolean;
|
103
105
|
}
|
104
106
|
export interface DataGridHeader<T extends object = any> extends ColumnInstance, UseResizeColumnsColumnProps<T>, UseSortByColumnProps<T> {
|
105
107
|
className(className: any, arg1: {
|
@@ -120,6 +122,16 @@ interface DataGridTableState extends UseResizeColumnsState<any>, UseRowSelectSta
|
|
120
122
|
}
|
121
123
|
export interface DataGridTableInstance<T extends object = any> extends TableInstance<T> {
|
122
124
|
}
|
125
|
+
export interface RowAction {
|
126
|
+
id?: string;
|
127
|
+
itemText?: string;
|
128
|
+
icon?: ComponentType | FunctionComponent;
|
129
|
+
align?: React.ComponentProps<typeof IconButton>['align'];
|
130
|
+
shouldHideMenuItem?: (...args: any[]) => void;
|
131
|
+
shouldDisableMenuItem?: (...args: any[]) => void;
|
132
|
+
disabled?: boolean;
|
133
|
+
onClick?: (...args: any[]) => void;
|
134
|
+
}
|
123
135
|
export interface DataGridState<T extends object = any> extends TableCommonProps, UsePaginationInstanceProps<T>, Omit<TableInstance<T>, 'state' | 'headers' | 'rows' | 'columns'>, Omit<UseFiltersInstanceProps<T>, 'rows'>, UseRowSelectInstanceProps<T>, Pick<UseRowSelectInstanceProps<T>, 'toggleAllRowsSelected'> {
|
124
136
|
withVirtualScroll?: boolean;
|
125
137
|
DatagridPagination?: JSXElementConstructor<any>;
|
@@ -142,6 +154,7 @@ export interface DataGridState<T extends object = any> extends TableCommonProps,
|
|
142
154
|
batchActions?: boolean;
|
143
155
|
row: DatagridRow;
|
144
156
|
rows: Array<DatagridRow<any>>;
|
157
|
+
rowActions?: RowAction[];
|
145
158
|
columns: Array<DatagridColumn>;
|
146
159
|
key?: any;
|
147
160
|
rowSize?: Size;
|
@@ -217,4 +230,5 @@ export interface ResizeHeaderProps {
|
|
217
230
|
isFetching?: boolean;
|
218
231
|
}
|
219
232
|
export type VisibleColumns<T extends object = {}> = (allColumns: Array<ColumnInstance<T>>, meta: Meta<T>) => Array<Column<T>>;
|
233
|
+
export type NodeFuncType = (props: any) => ReactNode;
|
220
234
|
export {};
|
@@ -1,2 +1,9 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright IBM Corp. 2021, 2023
|
3
|
+
*
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
import { Hooks } from 'react-table';
|
8
|
+
declare const useActionsColumn: (hooks: Hooks) => void;
|
1
9
|
export default useActionsColumn;
|
2
|
-
declare function useActionsColumn(hooks: any): void;
|