@carbon/ibm-products 2.43.2-canary.4 → 2.43.2-canary.42
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 +52 -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 +52 -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 +52 -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 +51 -19
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.d.ts +21 -1
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +40 -8
- package/es/components/DataSpreadsheet/DataSpreadsheetHeader.d.ts +8 -0
- package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +20 -6
- package/es/components/DataSpreadsheet/hooks/useSpreadsheetMouseMove.js +4 -1
- package/es/components/DataSpreadsheet/hooks/useSpreadsheetMouseUp.d.ts +3 -1
- package/es/components/DataSpreadsheet/hooks/useSpreadsheetMouseUp.js +15 -3
- package/es/components/DataSpreadsheet/types/index.d.ts +1 -1
- package/es/components/DataSpreadsheet/utils/moveColumnIndicatorLine.js +34 -2
- package/es/components/Datagrid/Datagrid/Datagrid.d.ts +0 -4
- package/es/components/Datagrid/Datagrid/Datagrid.js +4 -9
- package/es/components/Datagrid/Datagrid/DatagridContent.js +1 -1
- package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +23 -8
- package/es/components/Datagrid/Datagrid/DatagridRow.js +21 -8
- 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 +2 -3
- 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 +37 -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/useCustomizeColumns.d.ts +8 -1
- package/es/components/Datagrid/useCustomizeColumns.js +4 -3
- package/es/components/Datagrid/useDefaultStringRenderer.js +0 -1
- package/es/components/Datagrid/useInlineEdit.js +12 -2
- package/es/components/Datagrid/useNestedRowExpander.js +1 -3
- package/es/components/Datagrid/useNestedRows.js +32 -13
- package/es/components/Datagrid/useRowExpander.js +1 -3
- 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/PageHeader/PageHeader.js +1 -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 +51 -19
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.d.ts +21 -1
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +40 -8
- package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.d.ts +8 -0
- package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +20 -6
- package/lib/components/DataSpreadsheet/hooks/useSpreadsheetMouseMove.js +4 -1
- package/lib/components/DataSpreadsheet/hooks/useSpreadsheetMouseUp.d.ts +3 -1
- package/lib/components/DataSpreadsheet/hooks/useSpreadsheetMouseUp.js +15 -3
- package/lib/components/DataSpreadsheet/types/index.d.ts +1 -1
- package/lib/components/DataSpreadsheet/utils/moveColumnIndicatorLine.js +34 -2
- package/lib/components/Datagrid/Datagrid/Datagrid.d.ts +0 -4
- package/lib/components/Datagrid/Datagrid/Datagrid.js +4 -9
- package/lib/components/Datagrid/Datagrid/DatagridContent.js +1 -1
- package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +23 -8
- package/lib/components/Datagrid/Datagrid/DatagridRow.js +21 -8
- 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 +2 -3
- 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 +37 -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/useCustomizeColumns.d.ts +8 -1
- package/lib/components/Datagrid/useCustomizeColumns.js +4 -3
- package/lib/components/Datagrid/useDefaultStringRenderer.js +0 -1
- package/lib/components/Datagrid/useInlineEdit.js +12 -2
- package/lib/components/Datagrid/useNestedRowExpander.js +1 -3
- package/lib/components/Datagrid/useNestedRows.js +32 -13
- package/lib/components/Datagrid/useRowExpander.js +1 -3
- 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/PageHeader/PageHeader.js +1 -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 +8 -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
@@ -52,6 +52,18 @@ interface DataSpreadsheetBodyProps {
|
|
52
52
|
* The event handler that is called when the active cell changes
|
53
53
|
*/
|
54
54
|
onActiveCellChange?: () => void;
|
55
|
+
/**
|
56
|
+
* Check if user is using custom component
|
57
|
+
*/
|
58
|
+
hasCustomRowHeader?: boolean;
|
59
|
+
/**
|
60
|
+
* Component next to numbering rows
|
61
|
+
*/
|
62
|
+
renderRowHeader?: (index: number) => any[];
|
63
|
+
/**
|
64
|
+
* Component next to numbering rows
|
65
|
+
*/
|
66
|
+
renderRowHeaderDirection?: string;
|
55
67
|
/**
|
56
68
|
* The event handler that is called to set the rows for the empty spreadsheet
|
57
69
|
*/
|
@@ -79,7 +91,15 @@ interface DataSpreadsheetBodyProps {
|
|
79
91
|
/**
|
80
92
|
* Array of selection area data
|
81
93
|
*/
|
82
|
-
selectionAreaData?:
|
94
|
+
selectionAreaData?: any[];
|
95
|
+
/**
|
96
|
+
* Header reordering is active
|
97
|
+
*/
|
98
|
+
selectedHeaderReorderActive?: boolean;
|
99
|
+
/**
|
100
|
+
* Set header reordering active or not
|
101
|
+
*/
|
102
|
+
setSelectedHeaderReorderActive?: Dispatch<SetStateAction<boolean>>;
|
83
103
|
/**
|
84
104
|
* Array of selection areas
|
85
105
|
*/
|
@@ -35,11 +35,16 @@ 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,
|
41
44
|
setSelectionAreaData = _ref.setSelectionAreaData,
|
42
45
|
setActiveCellCoordinates = _ref.setActiveCellCoordinates,
|
46
|
+
selectedHeaderReorderActive = _ref.selectedHeaderReorderActive,
|
47
|
+
setSelectedHeaderReorderActive = _ref.setSelectedHeaderReorderActive,
|
43
48
|
selectionAreas = _ref.selectionAreas,
|
44
49
|
setContainerHasFocus = _ref.setContainerHasFocus,
|
45
50
|
setSelectionAreas = _ref.setSelectionAreas,
|
@@ -75,8 +80,12 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
75
80
|
// back to the consumer
|
76
81
|
useEffect(function () {
|
77
82
|
if (selectionAreaData !== null && selectionAreaData !== void 0 && selectionAreaData.length) {
|
78
|
-
var _previousState$select;
|
79
|
-
|
83
|
+
var _previousState$select, _selectionAreaData$, _previousState$select2;
|
84
|
+
var selectionChanged = false;
|
85
|
+
if ((previousState === null || previousState === void 0 || (_previousState$select = previousState.selectionAreaData) === null || _previousState$select === void 0 ? void 0 : _previousState$select.length) !== (selectionAreaData === null || selectionAreaData === void 0 ? void 0 : selectionAreaData.length) || (selectionAreaData === null || selectionAreaData === void 0 || (_selectionAreaData$ = selectionAreaData[0]) === null || _selectionAreaData$ === void 0 ? void 0 : _selectionAreaData$.cells.length) !== (previousState === null || previousState === void 0 || (_previousState$select2 = previousState.selectionAreaData) === null || _previousState$select2 === void 0 || (_previousState$select2 = _previousState$select2[0]) === null || _previousState$select2 === void 0 ? void 0 : _previousState$select2.cells.length)) {
|
86
|
+
selectionChanged = true;
|
87
|
+
}
|
88
|
+
if (!clickAndHoldActive && previousState !== null && previousState !== void 0 && previousState.clickAndHoldActive || selectionChanged) {
|
80
89
|
onSelectionAreaChange === null || onSelectionAreaChange === void 0 || onSelectionAreaChange(selectionAreaData);
|
81
90
|
}
|
82
91
|
}
|
@@ -132,7 +141,7 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
132
141
|
return;
|
133
142
|
});
|
134
143
|
}
|
135
|
-
}, [selectionAreas, setSelectionAreas, defaultColumn, onSelectionAreaChange, setSelectionAreaData, ref, activeCellCoordinates, setActiveCellInsideSelectionArea, visibleColumns]);
|
144
|
+
}, [selectionAreas, setSelectionAreas, defaultColumn, onSelectionAreaChange, setSelectionAreaData, ref, activeCellCoordinates, setActiveCellInsideSelectionArea, visibleColumns, hasCustomRowHeader]);
|
136
145
|
var populateSelectionAreaCellData = function populateSelectionAreaCellData(_ref2) {
|
137
146
|
var rowStart = _ref2.rowStart,
|
138
147
|
rowEnd = _ref2.rowEnd,
|
@@ -151,6 +160,8 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
151
160
|
setClickAndHoldActive: setClickAndHoldActive,
|
152
161
|
setSelectionAreas: setSelectionAreas,
|
153
162
|
setValidStartingPoint: setValidStartingPoint,
|
163
|
+
selectedHeaderReorderActive: selectedHeaderReorderActive,
|
164
|
+
setSelectedHeaderReorderActive: setSelectedHeaderReorderActive,
|
154
165
|
validStartingPoint: validStartingPoint,
|
155
166
|
ref: ref,
|
156
167
|
setHeaderCellHoldActive: setHeaderCellHoldActive,
|
@@ -204,7 +215,7 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
204
215
|
});
|
205
216
|
}
|
206
217
|
}
|
207
|
-
}, [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]);
|
208
219
|
|
209
220
|
//this method will check for any duplicate selection area and remove.
|
210
221
|
//same selections are those have the same height, width, top, left styles. These inline styles are being set in createCellSelection util.
|
@@ -330,11 +341,12 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
330
341
|
"data-column-index": "header",
|
331
342
|
type: "button",
|
332
343
|
onClick: handleRowHeaderClickEvent(index),
|
333
|
-
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))),
|
334
345
|
style: {
|
335
|
-
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
|
336
348
|
}
|
337
|
-
}, index + 1)), row.cells.map(function (cell, index) {
|
349
|
+
}, index + 1, hasCustomRowHeader && typeof renderRowHeader === 'function' && renderRowHeader(index))), row.cells.map(function (cell, index) {
|
338
350
|
var _cell$column;
|
339
351
|
var cellProps = prepareProps(cell.getCellProps(), 'key');
|
340
352
|
return /*#__PURE__*/React__default.createElement("div", _extends({
|
@@ -359,7 +371,7 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
359
371
|
}, cell.render('Cell')));
|
360
372
|
}));
|
361
373
|
}
|
362
|
-
}, [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]);
|
363
375
|
var spreadsheetBodyRef = useRef();
|
364
376
|
return /*#__PURE__*/React__default.createElement("div", _extends({
|
365
377
|
ref: spreadsheetBodyRef,
|
@@ -425,6 +437,10 @@ DataSpreadsheetBody.propTypes = {
|
|
425
437
|
*/
|
426
438
|
/**@ts-ignore */
|
427
439
|
getTableBodyProps: PropTypes.func,
|
440
|
+
/**
|
441
|
+
* Check if spreadsheet is using custom row header component attached
|
442
|
+
*/
|
443
|
+
hasCustomRowHeader: PropTypes.bool,
|
428
444
|
/**
|
429
445
|
* Headers provided from useTable hook
|
430
446
|
*/
|
@@ -449,6 +465,14 @@ DataSpreadsheetBody.propTypes = {
|
|
449
465
|
* Prepare row function from react-table
|
450
466
|
*/
|
451
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,
|
452
476
|
/**
|
453
477
|
* All of the spreadsheet row data
|
454
478
|
*/
|
@@ -457,6 +481,10 @@ DataSpreadsheetBody.propTypes = {
|
|
457
481
|
* The scrollbar width
|
458
482
|
*/
|
459
483
|
scrollBarSize: PropTypes.number,
|
484
|
+
/**
|
485
|
+
* Header reordering is active
|
486
|
+
*/
|
487
|
+
selectedHeaderReorderActive: PropTypes.bool,
|
460
488
|
/**
|
461
489
|
* Array of selection area data
|
462
490
|
*/
|
@@ -493,6 +521,10 @@ DataSpreadsheetBody.propTypes = {
|
|
493
521
|
* Setter fn for header cell hold active value
|
494
522
|
*/
|
495
523
|
setHeaderCellHoldActive: PropTypes.func,
|
524
|
+
/**
|
525
|
+
* Set header reordering active or not
|
526
|
+
*/
|
527
|
+
setSelectedHeaderReorderActive: PropTypes.func,
|
496
528
|
/**
|
497
529
|
* Setter fn for selectionAreaData state value
|
498
530
|
*/
|
@@ -56,6 +56,14 @@ interface DataSpreadsheetHeaderProps {
|
|
56
56
|
* Setter fn for activeCellCoordinates value
|
57
57
|
*/
|
58
58
|
setActiveCellCoordinates?: Dispatch<SetStateAction<ActiveCellCoordinates | null>>;
|
59
|
+
/**
|
60
|
+
* Header reordering is active
|
61
|
+
*/
|
62
|
+
selectedHeaderReorderActive?: boolean;
|
63
|
+
/**
|
64
|
+
* Set header reordering active or not
|
65
|
+
*/
|
66
|
+
setSelectedHeaderReorderActive?: Dispatch<SetStateAction<boolean>>;
|
59
67
|
/**
|
60
68
|
* Setter fn for currentMatcher value
|
61
69
|
*/
|
@@ -31,6 +31,8 @@ var DataSpreadsheetHeader = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
31
31
|
headerGroups = _ref.headerGroups,
|
32
32
|
scrollBarSize = _ref.scrollBarSize,
|
33
33
|
selectionAreas = _ref.selectionAreas,
|
34
|
+
selectedHeaderReorderActive = _ref.selectedHeaderReorderActive,
|
35
|
+
setSelectedHeaderReorderActive = _ref.setSelectedHeaderReorderActive,
|
34
36
|
setActiveCellCoordinates = _ref.setActiveCellCoordinates,
|
35
37
|
setCurrentMatcher = _ref.setCurrentMatcher,
|
36
38
|
setSelectionAreas = _ref.setSelectionAreas,
|
@@ -46,10 +48,6 @@ var DataSpreadsheetHeader = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
46
48
|
_useState2 = _slicedToArray(_useState, 2),
|
47
49
|
scrollBarSizeValue = _useState2[0],
|
48
50
|
setScrollBarSizeValue = _useState2[1];
|
49
|
-
var _useState3 = useState(false),
|
50
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
51
|
-
selectedHeaderReorderActive = _useState4[0],
|
52
|
-
setSelectedHeaderReorderActive = _useState4[1];
|
53
51
|
var previousState = usePreviousValue({
|
54
52
|
cellSize: cellSize
|
55
53
|
}) || {};
|
@@ -107,11 +105,16 @@ var DataSpreadsheetHeader = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
107
105
|
// Remove columns, need to call handleHeaderCellSelection
|
108
106
|
return;
|
109
107
|
}
|
110
|
-
setSelectedHeaderReorderActive(true);
|
111
108
|
var selectionAreaToClone = selectionAreas === null || selectionAreas === void 0 ? void 0 : selectionAreas.filter(function (item) {
|
112
109
|
return (item === null || item === void 0 ? void 0 : item.matcher) === currentMatcher;
|
113
110
|
});
|
114
111
|
var selectionAreaElement = ref.current.querySelector("[data-matcher-id=\"".concat(selectionAreaToClone === null || selectionAreaToClone === void 0 || (_selectionAreaToClone = selectionAreaToClone[0]) === null || _selectionAreaToClone === void 0 ? void 0 : _selectionAreaToClone.matcher, "\"]"));
|
112
|
+
if (selectionAreaElement) {
|
113
|
+
selectionAreaElement.classList.add("".concat(blockClass, "__selection-area--element"));
|
114
|
+
}
|
115
|
+
if (typeof setSelectedHeaderReorderActive === 'function') {
|
116
|
+
setSelectedHeaderReorderActive(true);
|
117
|
+
}
|
115
118
|
var clickXPosition = event.clientX;
|
116
119
|
var headerButtonCoords = event.target.getBoundingClientRect();
|
117
120
|
var headerIndex = event.target.getAttribute('data-column-index');
|
@@ -172,6 +175,9 @@ var DataSpreadsheetHeader = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
172
175
|
"data-row-index": "header",
|
173
176
|
"data-column-index": "header",
|
174
177
|
type: "button",
|
178
|
+
style: {
|
179
|
+
width: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeaderWidth
|
180
|
+
},
|
175
181
|
tabIndex: -1,
|
176
182
|
"aria-label": selectAllAriaLabel,
|
177
183
|
onClick: handleSelectAllClick,
|
@@ -189,7 +195,7 @@ var DataSpreadsheetHeader = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
189
195
|
"data-column-index": index,
|
190
196
|
tabIndex: -1,
|
191
197
|
onMouseDown: selectedHeader ? handleHeaderMouseDown(index) : undefined,
|
192
|
-
onMouseUp: selectedHeader ? function () {
|
198
|
+
onMouseUp: selectedHeader && typeof setSelectedHeaderReorderActive === 'function' ? function () {
|
193
199
|
return setSelectedHeaderReorderActive(false);
|
194
200
|
} : undefined,
|
195
201
|
onClick: !selectedHeader ? handleColumnHeaderClick(index) : undefined,
|
@@ -254,6 +260,10 @@ DataSpreadsheetHeader.propTypes = {
|
|
254
260
|
* The aria label applied to the Select all button
|
255
261
|
*/
|
256
262
|
selectAllAriaLabel: PropTypes.string.isRequired,
|
263
|
+
/**
|
264
|
+
* Header reordering is active
|
265
|
+
*/
|
266
|
+
selectedHeaderReorderActive: PropTypes.bool,
|
257
267
|
/**
|
258
268
|
* All of the cell selection area items
|
259
269
|
*/
|
@@ -271,6 +281,10 @@ DataSpreadsheetHeader.propTypes = {
|
|
271
281
|
* Setter fn for header cell hold active value
|
272
282
|
*/
|
273
283
|
setHeaderCellHoldActive: PropTypes.func,
|
284
|
+
/**
|
285
|
+
* Set header reordering active or not
|
286
|
+
*/
|
287
|
+
setSelectedHeaderReorderActive: PropTypes.func,
|
274
288
|
/**
|
275
289
|
* Setter fn for selectionAreaData state value
|
276
290
|
*/
|
@@ -40,9 +40,12 @@ var useSpreadsheetMouseMove = function useSpreadsheetMouseMove(_ref) {
|
|
40
40
|
var totalSpreadsheetScrollingWidth = listContainer.scrollWidth;
|
41
41
|
var clonedSelectionWidth = clonedSelectionElement.offsetWidth;
|
42
42
|
var clonePlacement = Math.max(xPositionRelativeToSpreadsheet - offsetXValue, defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeaderWidth);
|
43
|
+
var leftPosition = totalSpreadsheetScrollingWidth - clonedSelectionWidth >= clonePlacement ? clonePlacement + scrollAmount : totalSpreadsheetScrollingWidth - clonedSelectionWidth;
|
43
44
|
// Moves the position of the cloned selection area to follow mouse, and
|
44
45
|
// add the amount horizontally scrolled
|
45
|
-
|
46
|
+
if (leftPosition < spreadsheetCoords.right - 40) {
|
47
|
+
clonedSelectionElement.style.left = px(leftPosition);
|
48
|
+
}
|
46
49
|
};
|
47
50
|
if (headerCellHoldActive) {
|
48
51
|
ref.current.addEventListener('mousemove', handleMouseMove);
|
@@ -1,6 +1,8 @@
|
|
1
|
-
export function useSpreadsheetMouseUp({ currentMatcher, setSelectionAreas, setClickAndHoldActive, setValidStartingPoint, validStartingPoint, blockClass, ref, setHeaderCellHoldActive, setColumnOrder, visibleColumns, setActiveCellCoordinates, activeCellCoordinates, rows, defaultColumn, selectionAreas, }: {
|
1
|
+
export function useSpreadsheetMouseUp({ currentMatcher, setSelectionAreas, selectedHeaderReorderActive, setSelectedHeaderReorderActive, setClickAndHoldActive, setValidStartingPoint, validStartingPoint, blockClass, ref, setHeaderCellHoldActive, setColumnOrder, visibleColumns, setActiveCellCoordinates, activeCellCoordinates, rows, defaultColumn, selectionAreas, }: {
|
2
2
|
currentMatcher: any;
|
3
3
|
setSelectionAreas: any;
|
4
|
+
selectedHeaderReorderActive: any;
|
5
|
+
setSelectedHeaderReorderActive: any;
|
4
6
|
setClickAndHoldActive: any;
|
5
7
|
setValidStartingPoint: any;
|
6
8
|
validStartingPoint: any;
|
@@ -14,6 +14,8 @@ import { deepCloneObject } from '../../../global/js/utils/deepCloneObject.js';
|
|
14
14
|
var useSpreadsheetMouseUp = function useSpreadsheetMouseUp(_ref) {
|
15
15
|
var currentMatcher = _ref.currentMatcher,
|
16
16
|
setSelectionAreas = _ref.setSelectionAreas,
|
17
|
+
selectedHeaderReorderActive = _ref.selectedHeaderReorderActive,
|
18
|
+
setSelectedHeaderReorderActive = _ref.setSelectedHeaderReorderActive,
|
17
19
|
setClickAndHoldActive = _ref.setClickAndHoldActive,
|
18
20
|
setValidStartingPoint = _ref.setValidStartingPoint,
|
19
21
|
validStartingPoint = _ref.validStartingPoint,
|
@@ -30,15 +32,22 @@ var useSpreadsheetMouseUp = function useSpreadsheetMouseUp(_ref) {
|
|
30
32
|
selectionAreas = _ref.selectionAreas;
|
31
33
|
useEffect(function () {
|
32
34
|
var handleMouseUp = function handleMouseUp(event) {
|
35
|
+
var _selectionAreas$;
|
36
|
+
var isHoldingColumn = false;
|
37
|
+
if (selectionAreas !== null && selectionAreas !== void 0 && (_selectionAreas$ = selectionAreas[0]) !== null && _selectionAreas$ !== void 0 && _selectionAreas$.header && selectionAreas[0].header.type === 'column') {
|
38
|
+
isHoldingColumn = true;
|
39
|
+
}
|
33
40
|
// Remove the cloned selection area on mouse up
|
34
|
-
if (!validStartingPoint) {
|
41
|
+
if (!validStartingPoint && isHoldingColumn) {
|
35
42
|
setHeaderCellHoldActive(false);
|
43
|
+
var selectionAreaElement = ref.current.querySelector(".".concat(blockClass, "__selection-area--element"));
|
36
44
|
var selectionAreaCloneElement = ref.current.querySelector(".".concat(blockClass, "__selection-area--element-cloned"));
|
37
45
|
if (!selectionAreaCloneElement) {
|
38
46
|
return;
|
39
47
|
}
|
40
48
|
// Mouse up while a cloned selection area exists/a column is being reordered
|
41
49
|
if (selectionAreaCloneElement) {
|
50
|
+
var _selectionAreaElement;
|
42
51
|
var closestCell = event.target.closest(".".concat(blockClass, "--interactive-cell-element"));
|
43
52
|
var newColumnIndex = parseInt === null || parseInt === void 0 ? void 0 : parseInt(closestCell === null || closestCell === void 0 ? void 0 : closestCell.getAttribute('data-column-index'));
|
44
53
|
var originalColumnIndex = parseInt === null || parseInt === void 0 ? void 0 : parseInt(selectionAreaCloneElement === null || selectionAreaCloneElement === void 0 ? void 0 : selectionAreaCloneElement.getAttribute('data-column-index-original'));
|
@@ -81,6 +90,7 @@ var useSpreadsheetMouseUp = function useSpreadsheetMouseUp(_ref) {
|
|
81
90
|
selectionAreaClone[indexOfItemToUpdate].point1.column = Math.min.apply(Math, _toConsumableArray(newIndexArray));
|
82
91
|
selectionAreaClone[indexOfItemToUpdate].point2.column = Math.max.apply(Math, _toConsumableArray(newIndexArray));
|
83
92
|
}
|
93
|
+
selectionAreaClone[indexOfItemToUpdate].areaCreated = false;
|
84
94
|
return selectionAreaClone;
|
85
95
|
});
|
86
96
|
// Only reorder columns if the new index is _not_ part of the
|
@@ -125,11 +135,13 @@ var useSpreadsheetMouseUp = function useSpreadsheetMouseUp(_ref) {
|
|
125
135
|
var indicatorLineElement = ref.current.querySelector(".".concat(blockClass, "__reorder-indicator-line"));
|
126
136
|
indicatorLineElement === null || indicatorLineElement === void 0 || indicatorLineElement.remove();
|
127
137
|
selectionAreaCloneElement === null || selectionAreaCloneElement === void 0 || selectionAreaCloneElement.remove();
|
138
|
+
selectionAreaElement === null || selectionAreaElement === void 0 || (_selectionAreaElement = selectionAreaElement.classList) === null || _selectionAreaElement === void 0 || _selectionAreaElement.remove("".concat(blockClass, "__selection-area--element"));
|
139
|
+
setSelectedHeaderReorderActive(false);
|
128
140
|
}
|
129
141
|
}
|
130
142
|
// Mouse up was on a spreadsheet body cell which is a valid
|
131
143
|
// start/end point for creating a selection area
|
132
|
-
if (validStartingPoint) {
|
144
|
+
if (validStartingPoint || event.type === 'mouseup') {
|
133
145
|
setClickAndHoldActive(false);
|
134
146
|
setValidStartingPoint(false);
|
135
147
|
var cellButton = event.target.closest(".".concat(blockClass, "__body--td"));
|
@@ -158,7 +170,7 @@ var useSpreadsheetMouseUp = function useSpreadsheetMouseUp(_ref) {
|
|
158
170
|
return function () {
|
159
171
|
document.removeEventListener('mouseup', handleMouseUp);
|
160
172
|
};
|
161
|
-
}, [blockClass, currentMatcher, setSelectionAreas, setClickAndHoldActive, setValidStartingPoint, validStartingPoint, ref, setHeaderCellHoldActive, setColumnOrder, visibleColumns, setActiveCellCoordinates, activeCellCoordinates, rows, defaultColumn, selectionAreas]);
|
173
|
+
}, [blockClass, currentMatcher, setSelectionAreas, setClickAndHoldActive, setValidStartingPoint, validStartingPoint, selectedHeaderReorderActive, setSelectedHeaderReorderActive, ref, setHeaderCellHoldActive, setColumnOrder, visibleColumns, setActiveCellCoordinates, activeCellCoordinates, rows, defaultColumn, selectionAreas]);
|
162
174
|
};
|
163
175
|
|
164
176
|
export { useSpreadsheetMouseUp };
|
@@ -13,7 +13,7 @@ export interface PrevState {
|
|
13
13
|
cellEditorValue?: string;
|
14
14
|
activeCellCoordinates?: ActiveCellCoordinates;
|
15
15
|
isEditing?: boolean;
|
16
|
-
selectionAreaData?:
|
16
|
+
selectionAreaData?: any[];
|
17
17
|
clickAndHoldActive?: boolean;
|
18
18
|
rowHeight?: number;
|
19
19
|
cellSize?: Size;
|
@@ -22,11 +22,43 @@ var moveColumnIndicatorLine = function moveColumnIndicatorLine(_ref) {
|
|
22
22
|
var indicatorLineElement = ref.current.querySelector(".".concat(blockClass, "__reorder-indicator-line"));
|
23
23
|
var matcherId = clonedSelectionElement === null || clonedSelectionElement === void 0 ? void 0 : clonedSelectionElement.getAttribute('data-matcher-id');
|
24
24
|
var selectionAreaOrigin = ref.current.querySelector("[data-matcher-id=\"".concat(matcherId, "\"]"));
|
25
|
+
var listContainer = ref.current.querySelector(".".concat(blockClass, "__list--container"));
|
26
|
+
var scrollSpeed = 10; // Scrolling speed
|
27
|
+
var leftEdgeThreshold = 120; // Distance from the left edge to start scrolling
|
28
|
+
var rightEdgeThreshold = 100; // Distance from the right edge to start scrolling
|
29
|
+
|
30
|
+
var _event = event,
|
31
|
+
clientX = _event.clientX;
|
32
|
+
var _listContainer$getBou = listContainer.getBoundingClientRect(),
|
33
|
+
left = _listContainer$getBou.left,
|
34
|
+
right = _listContainer$getBou.right;
|
35
|
+
|
36
|
+
// Is near left side of viewport
|
37
|
+
if (clientX < leftEdgeThreshold) {
|
38
|
+
window.scrollBy(-scrollSpeed, 0);
|
39
|
+
}
|
40
|
+
|
41
|
+
// Is near right side of viewport
|
42
|
+
if (clientX > window.innerWidth - rightEdgeThreshold) {
|
43
|
+
window.scrollBy(scrollSpeed, 0);
|
44
|
+
}
|
45
|
+
|
46
|
+
// Is near left edge of table
|
47
|
+
if (clientX > left && clientX < left + leftEdgeThreshold) {
|
48
|
+
listContainer.scrollBy(-scrollSpeed, 0);
|
49
|
+
}
|
50
|
+
|
51
|
+
// Is near right edge of table
|
52
|
+
if (clientX < right && clientX > right - rightEdgeThreshold) {
|
53
|
+
listContainer.scrollBy(scrollSpeed, 0);
|
54
|
+
}
|
25
55
|
if (Number(newColumnIndex) > Number(originalColumnIndex)) {
|
26
|
-
|
56
|
+
var leftPosition = closestCellCoords.left - spreadsheetCoords.left + closestCell.offsetWidth - 2 + leftScrollAmount;
|
57
|
+
indicatorLineElement.style.left = px(leftPosition);
|
27
58
|
}
|
28
59
|
if (Number(newColumnIndex) < Number(originalColumnIndex)) {
|
29
|
-
|
60
|
+
var _leftPosition = closestCellCoords.left - spreadsheetCoords.left + leftScrollAmount;
|
61
|
+
indicatorLineElement.style.left = px(_leftPosition);
|
30
62
|
}
|
31
63
|
if (Number(newColumnIndex) === Number(originalColumnIndex)) {
|
32
64
|
indicatorLineElement.style.left = selectionAreaOrigin.style.left;
|
@@ -16,10 +16,6 @@ export interface DatagridProps {
|
|
16
16
|
* The data grid state, much of it being supplied by the useDatagrid hook
|
17
17
|
*/
|
18
18
|
datagridState: DataGridState;
|
19
|
-
/**
|
20
|
-
* Table title
|
21
|
-
*/
|
22
|
-
title?: string;
|
23
19
|
}
|
24
20
|
/**
|
25
21
|
* The `Datagrid` component is an extension of Carbon's DataTable component. At the most basic level, the `Datagrid` component takes in columns and rows and renders a data table. There is a set of data table extensions which this component provides support for, these can be found [here](https://pages.github.ibm.com/cdai-design/pal/components/data-table/overview/). This component is data driven and allows you to choose what pieces will be included based on the hooks/plugins that are provided.
|
@@ -16,7 +16,7 @@ import { DatagridContent } from './DatagridContent.js';
|
|
16
16
|
import { FilterProvider } from './addons/Filtering/FilterProvider.js';
|
17
17
|
import { InlineEditProvider } from './addons/InlineEdit/InlineEditContext/InlineEditContext.js';
|
18
18
|
|
19
|
-
var _excluded = ["datagridState", "
|
19
|
+
var _excluded = ["datagridState", "ariaToolbarLabel"];
|
20
20
|
var blockClass = "".concat(pkg.prefix, "--datagrid");
|
21
21
|
var componentName = 'Datagrid';
|
22
22
|
/**
|
@@ -24,7 +24,6 @@ var componentName = 'Datagrid';
|
|
24
24
|
*/
|
25
25
|
var Datagrid = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
|
26
26
|
var datagridState = _ref.datagridState,
|
27
|
-
title = _ref.title,
|
28
27
|
ariaToolbarLabel = _ref.ariaToolbarLabel,
|
29
28
|
rest = _objectWithoutProperties(_ref, _excluded);
|
30
29
|
if (!datagridState) {
|
@@ -40,13 +39,13 @@ var Datagrid = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
|
|
40
39
|
state = datagridState.state;
|
41
40
|
var rows = DatagridPagination && datagridState.page || datagridState.rows;
|
42
41
|
var props = {
|
43
|
-
title: title,
|
44
42
|
datagridState: datagridState,
|
45
43
|
ariaToolbarLabel: ariaToolbarLabel
|
46
44
|
};
|
47
45
|
return /*#__PURE__*/React__default.createElement(FilterProvider, {
|
48
46
|
filters: state === null || state === void 0 ? void 0 : state.filters,
|
49
|
-
filterProps: filterProps
|
47
|
+
filterProps: filterProps,
|
48
|
+
tableId: tableId
|
50
49
|
}, /*#__PURE__*/React__default.createElement(InlineEditProvider, null, /*#__PURE__*/React__default.createElement("div", _extends({}, rest, {
|
51
50
|
id: tableId,
|
52
51
|
ref: ref,
|
@@ -72,11 +71,7 @@ Datagrid.propTypes = {
|
|
72
71
|
* The data grid state, much of it being supplied by the useDatagrid hook
|
73
72
|
*/
|
74
73
|
/**@ts-ignore */
|
75
|
-
datagridState: PropTypes.object.isRequired
|
76
|
-
/**
|
77
|
-
* Table title
|
78
|
-
*/
|
79
|
-
title: PropTypes.string
|
74
|
+
datagridState: PropTypes.object.isRequired
|
80
75
|
};
|
81
76
|
|
82
77
|
export { Datagrid };
|
@@ -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"
|
@@ -23,10 +23,8 @@ var _excluded = ["className"],
|
|
23
23
|
var blockClass = "".concat(pkg.prefix, "--datagrid");
|
24
24
|
var getAccessibilityProps = function getAccessibilityProps(header) {
|
25
25
|
var props = {};
|
26
|
-
var
|
27
|
-
if (
|
28
|
-
props.title = title;
|
29
|
-
} else {
|
26
|
+
var content = getNodeTextContent(header.Header);
|
27
|
+
if (!content) {
|
30
28
|
props['aria-hidden'] = true;
|
31
29
|
}
|
32
30
|
return props;
|
@@ -82,6 +80,7 @@ var ResizeHeader = function ResizeHeader(_ref) {
|
|
82
80
|
"aria-label": resizerAriaLabel || 'Resize column',
|
83
81
|
disabled: isFetching
|
84
82
|
})), /*#__PURE__*/React__default.createElement("span", {
|
83
|
+
role: "separator",
|
85
84
|
className: "".concat(blockClass, "__col-resize-indicator")
|
86
85
|
}));
|
87
86
|
};
|
@@ -90,7 +89,8 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
|
|
90
89
|
var resizerAriaLabel = datagridState.resizerAriaLabel,
|
91
90
|
isTableSortable = datagridState.isTableSortable,
|
92
91
|
rows = datagridState.rows,
|
93
|
-
isFetching = datagridState.isFetching
|
92
|
+
isFetching = datagridState.isFetching,
|
93
|
+
headers = datagridState.headers;
|
94
94
|
useInitialColumnSort(datagridState);
|
95
95
|
// Used to measure the height of the table and uses that value
|
96
96
|
// to display a vertical line to indicate the column you are resizing
|
@@ -135,7 +135,9 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
|
|
135
135
|
}
|
136
136
|
onMouseDown === null || onMouseDown === void 0 || onMouseDown(event);
|
137
137
|
};
|
138
|
-
var _headerGroup$getHeade = headerGroup.getHeaderGroupProps(
|
138
|
+
var _headerGroup$getHeade = headerGroup.getHeaderGroupProps({
|
139
|
+
role: undefined
|
140
|
+
}),
|
139
141
|
headerGroupClassName = _headerGroup$getHeade.className,
|
140
142
|
headerGroupProps = _objectWithoutProperties(_headerGroup$getHeade, _excluded);
|
141
143
|
var renderSlug = function renderSlug(slug) {
|
@@ -152,6 +154,9 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
|
|
152
154
|
});
|
153
155
|
var key = headerGroupProps.key,
|
154
156
|
rowProps = _objectWithoutProperties(headerGroupProps, _excluded2);
|
157
|
+
var withActionsColumn = headers ? !!headers.filter(function (header) {
|
158
|
+
return header.isAction;
|
159
|
+
}).length : false;
|
155
160
|
return /*#__PURE__*/React__default.createElement(TableRow, _extends({
|
156
161
|
key: key
|
157
162
|
}, rowProps, {
|
@@ -181,9 +186,19 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
|
|
181
186
|
var _ref5 = columnResizing || {},
|
182
187
|
columnWidths = _ref5.columnWidths;
|
183
188
|
var originalCol = visibleColumns[index];
|
184
|
-
var _header$getHeaderProp = header.getHeaderProps(
|
189
|
+
var _header$getHeaderProp = header.getHeaderProps({
|
190
|
+
role: undefined
|
191
|
+
}),
|
185
192
|
headerProps = _extends({}, (_objectDestructuringEmpty(_header$getHeaderProp), _header$getHeaderProp));
|
186
|
-
var resizerProps = header === null || header === void 0 || (_header$getResizerPro = header.getResizerProps) === null || _header$getResizerPro === void 0 ? void 0 : _header$getResizerPro.call(header
|
193
|
+
var resizerProps = header === null || header === void 0 || (_header$getResizerPro = header.getResizerProps) === null || _header$getResizerPro === void 0 ? void 0 : _header$getResizerPro.call(header, {
|
194
|
+
role: undefined
|
195
|
+
});
|
196
|
+
var headerStyle = headerProps === null || headerProps === void 0 ? void 0 : headerProps.style;
|
197
|
+
var lastVisibleIndex = withActionsColumn ? 2 : 1;
|
198
|
+
var lastVisibleFlexStyle = index === visibleColumns.length - lastVisibleIndex ? '1 1 0' : '0 0 auto';
|
199
|
+
if (headerStyle) {
|
200
|
+
headerStyle.flex = lastVisibleFlexStyle;
|
201
|
+
}
|
187
202
|
return /*#__PURE__*/React__default.createElement(TableHeader, _extends({}, headerProps, {
|
188
203
|
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
204
|
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;
|
@@ -107,7 +108,9 @@ var DatagridRow = function DatagridRow(datagridState) {
|
|
107
108
|
}
|
108
109
|
return {};
|
109
110
|
};
|
110
|
-
var _row$getRowProps = row.getRowProps(
|
111
|
+
var _row$getRowProps = row.getRowProps({
|
112
|
+
role: undefined
|
113
|
+
}),
|
111
114
|
className = _row$getRowProps.className,
|
112
115
|
rowProps = _objectWithoutProperties(_row$getRowProps, _excluded);
|
113
116
|
var foundAIRow = rows.some(function (r) {
|
@@ -115,6 +118,9 @@ var DatagridRow = function DatagridRow(datagridState) {
|
|
115
118
|
return /*#__PURE__*/isValidElement(r === null || r === void 0 || (_r$original = r.original) === null || _r$original === void 0 ? void 0 : _r$original.slug);
|
116
119
|
});
|
117
120
|
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)));
|
121
|
+
var withActionsColumn = headers ? !!headers.filter(function (header) {
|
122
|
+
return header.isAction;
|
123
|
+
}).length : false;
|
118
124
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
|
119
125
|
key: key
|
120
126
|
}, /*#__PURE__*/React__default.createElement(TableRow, _extends({}, rowProps, {
|
@@ -132,10 +138,13 @@ var DatagridRow = function DatagridRow(datagridState) {
|
|
132
138
|
})) : /*#__PURE__*/React__default.createElement("td", {
|
133
139
|
className: "".concat(blockClass, "__table-row-ai-spacer")
|
134
140
|
}) : null, row.cells.map(function (cell, index) {
|
135
|
-
var _cell$column, _cell$column2,
|
136
|
-
var cellProps = cell.getCellProps(
|
141
|
+
var _cell$column, _cell$column2, _associatedHeader$;
|
142
|
+
var cellProps = cell.getCellProps({
|
143
|
+
role: undefined
|
144
|
+
});
|
137
145
|
// eslint-disable-next-line no-unused-vars
|
138
146
|
var _ref2 = cellProps,
|
147
|
+
style = _ref2.style,
|
139
148
|
children = _ref2.children,
|
140
149
|
restProps = _objectWithoutProperties(_ref2, _excluded2);
|
141
150
|
var columnClassname = cell === null || cell === void 0 || (_cell$column = cell.column) === null || _cell$column === void 0 ? void 0 : _cell$column.className;
|
@@ -146,15 +155,19 @@ var DatagridRow = function DatagridRow(datagridState) {
|
|
146
155
|
key: cell.column.id
|
147
156
|
});
|
148
157
|
}
|
149
|
-
var title = content === null || content === void 0 || (_content$props = content.props) === null || _content$props === void 0 || (_content$props = _content$props.children[0]) === null || _content$props === void 0 || (_content$props = _content$props.props) === null || _content$props === void 0 ? void 0 : _content$props.value;
|
150
158
|
var associatedHeader = headers === null || headers === void 0 ? void 0 : headers.filter(function (h) {
|
151
159
|
return h.id === cell.column.id;
|
152
160
|
});
|
161
|
+
var lastVisibleIndex = withActionsColumn ? 2 : 1;
|
162
|
+
var lastVisibleFlexStyle = index === visibleColumns.length - lastVisibleIndex ? '1 1 0' : '0 0 auto';
|
163
|
+
if (style) {
|
164
|
+
style.flex = lastVisibleFlexStyle;
|
165
|
+
}
|
153
166
|
return /*#__PURE__*/React__default.createElement(TableCell, _extends({
|
154
167
|
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
168
|
}, restProps, {
|
156
|
-
|
157
|
-
|
169
|
+
style: style,
|
170
|
+
key: cell.column.id
|
158
171
|
}), content);
|
159
172
|
})), (renderExpandedRow === null || renderExpandedRow === void 0 ? void 0 : renderExpandedRow()) || undefined);
|
160
173
|
};
|
@@ -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]);
|