@carbon/ibm-products 2.43.2-canary.3 → 2.43.2-canary.7
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/es/components/DataSpreadsheet/DataSpreadsheet.js +17 -9
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.d.ts +9 -1
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +18 -2
- package/es/components/DataSpreadsheet/DataSpreadsheetHeader.d.ts +8 -0
- package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +17 -6
- 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/lib/components/DataSpreadsheet/DataSpreadsheet.js +17 -9
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.d.ts +9 -1
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +18 -2
- package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.d.ts +8 -0
- package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +17 -6
- 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/package.json +2 -2
@@ -112,15 +112,19 @@ var DataSpreadsheet = /*#__PURE__*/React__default.forwardRef(function (_ref, ref
|
|
112
112
|
_useState18 = _slicedToArray(_useState17, 2),
|
113
113
|
headerCellHoldActive = _useState18[0],
|
114
114
|
setHeaderCellHoldActive = _useState18[1];
|
115
|
-
var isBlurSpreadsheet = useRef(false);
|
116
115
|
var _useState19 = useState(false),
|
117
116
|
_useState20 = _slicedToArray(_useState19, 2),
|
118
|
-
|
119
|
-
|
117
|
+
selectedHeaderReorderActive = _useState20[0],
|
118
|
+
setSelectedHeaderReorderActive = _useState20[1];
|
119
|
+
var isBlurSpreadsheet = useRef(false);
|
120
120
|
var _useState21 = useState(false),
|
121
121
|
_useState22 = _slicedToArray(_useState21, 2),
|
122
|
-
|
123
|
-
|
122
|
+
isActiveHeaderCellChanged = _useState22[0],
|
123
|
+
setIsActiveHeaderCellChanged = _useState22[1];
|
124
|
+
var _useState23 = useState(false),
|
125
|
+
_useState24 = _slicedToArray(_useState23, 2),
|
126
|
+
activeCellInsideSelectionArea = _useState24[0],
|
127
|
+
setActiveCellInsideSelectionArea = _useState24[1];
|
124
128
|
var previousState = usePreviousValue({
|
125
129
|
activeCellCoordinates: activeCellCoordinates,
|
126
130
|
isEditing: isEditing,
|
@@ -128,10 +132,10 @@ var DataSpreadsheet = /*#__PURE__*/React__default.forwardRef(function (_ref, ref
|
|
128
132
|
}) || {};
|
129
133
|
var cellSizeValue = getCellSize(cellSize);
|
130
134
|
var cellEditorRef = useRef();
|
131
|
-
var
|
132
|
-
|
133
|
-
activeCellContent =
|
134
|
-
setActiveCellContent =
|
135
|
+
var _useState25 = useState(),
|
136
|
+
_useState26 = _slicedToArray(_useState25, 2),
|
137
|
+
activeCellContent = _useState26[0],
|
138
|
+
setActiveCellContent = _useState26[1];
|
135
139
|
var activeCellRef = useRef();
|
136
140
|
var cellEditorRulerRef = useRef();
|
137
141
|
var defaultColumn = useMemo(function () {
|
@@ -615,6 +619,8 @@ var DataSpreadsheet = /*#__PURE__*/React__default.forwardRef(function (_ref, ref
|
|
615
619
|
columns: columns,
|
616
620
|
currentMatcher: currentMatcher,
|
617
621
|
defaultColumn: defaultColumn,
|
622
|
+
selectedHeaderReorderActive: selectedHeaderReorderActive,
|
623
|
+
setSelectedHeaderReorderActive: setSelectedHeaderReorderActive,
|
618
624
|
headerGroups: headerGroups,
|
619
625
|
rows: rows,
|
620
626
|
scrollBarSize: scrollBarSize,
|
@@ -638,6 +644,8 @@ var DataSpreadsheet = /*#__PURE__*/React__default.forwardRef(function (_ref, ref
|
|
638
644
|
currentMatcher: currentMatcher,
|
639
645
|
setCurrentMatcher: setCurrentMatcher,
|
640
646
|
setContainerHasFocus: setContainerHasFocus,
|
647
|
+
selectedHeaderReorderActive: selectedHeaderReorderActive,
|
648
|
+
setSelectedHeaderReorderActive: setSelectedHeaderReorderActive,
|
641
649
|
selectionAreas: selectionAreas,
|
642
650
|
setSelectionAreas: setSelectionAreas,
|
643
651
|
headerGroups: headerGroups,
|
@@ -79,7 +79,15 @@ interface DataSpreadsheetBodyProps {
|
|
79
79
|
/**
|
80
80
|
* Array of selection area data
|
81
81
|
*/
|
82
|
-
selectionAreaData?:
|
82
|
+
selectionAreaData?: any[];
|
83
|
+
/**
|
84
|
+
* Header reordering is active
|
85
|
+
*/
|
86
|
+
selectedHeaderReorderActive?: boolean;
|
87
|
+
/**
|
88
|
+
* Set header reordering active or not
|
89
|
+
*/
|
90
|
+
setSelectedHeaderReorderActive?: Dispatch<SetStateAction<boolean>>;
|
83
91
|
/**
|
84
92
|
* Array of selection areas
|
85
93
|
*/
|
@@ -40,6 +40,8 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
40
40
|
selectionAreaData = _ref.selectionAreaData,
|
41
41
|
setSelectionAreaData = _ref.setSelectionAreaData,
|
42
42
|
setActiveCellCoordinates = _ref.setActiveCellCoordinates,
|
43
|
+
selectedHeaderReorderActive = _ref.selectedHeaderReorderActive,
|
44
|
+
setSelectedHeaderReorderActive = _ref.setSelectedHeaderReorderActive,
|
43
45
|
selectionAreas = _ref.selectionAreas,
|
44
46
|
setContainerHasFocus = _ref.setContainerHasFocus,
|
45
47
|
setSelectionAreas = _ref.setSelectionAreas,
|
@@ -75,8 +77,12 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
75
77
|
// back to the consumer
|
76
78
|
useEffect(function () {
|
77
79
|
if (selectionAreaData !== null && selectionAreaData !== void 0 && selectionAreaData.length) {
|
78
|
-
var _previousState$select;
|
79
|
-
|
80
|
+
var _previousState$select, _selectionAreaData$, _previousState$select2;
|
81
|
+
var selectionChanged = false;
|
82
|
+
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)) {
|
83
|
+
selectionChanged = true;
|
84
|
+
}
|
85
|
+
if (!clickAndHoldActive && previousState !== null && previousState !== void 0 && previousState.clickAndHoldActive || selectionChanged) {
|
80
86
|
onSelectionAreaChange === null || onSelectionAreaChange === void 0 || onSelectionAreaChange(selectionAreaData);
|
81
87
|
}
|
82
88
|
}
|
@@ -151,6 +157,8 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
151
157
|
setClickAndHoldActive: setClickAndHoldActive,
|
152
158
|
setSelectionAreas: setSelectionAreas,
|
153
159
|
setValidStartingPoint: setValidStartingPoint,
|
160
|
+
selectedHeaderReorderActive: selectedHeaderReorderActive,
|
161
|
+
setSelectedHeaderReorderActive: setSelectedHeaderReorderActive,
|
154
162
|
validStartingPoint: validStartingPoint,
|
155
163
|
ref: ref,
|
156
164
|
setHeaderCellHoldActive: setHeaderCellHoldActive,
|
@@ -457,6 +465,10 @@ DataSpreadsheetBody.propTypes = {
|
|
457
465
|
* The scrollbar width
|
458
466
|
*/
|
459
467
|
scrollBarSize: PropTypes.number,
|
468
|
+
/**
|
469
|
+
* Header reordering is active
|
470
|
+
*/
|
471
|
+
selectedHeaderReorderActive: PropTypes.bool,
|
460
472
|
/**
|
461
473
|
* Array of selection area data
|
462
474
|
*/
|
@@ -493,6 +505,10 @@ DataSpreadsheetBody.propTypes = {
|
|
493
505
|
* Setter fn for header cell hold active value
|
494
506
|
*/
|
495
507
|
setHeaderCellHoldActive: PropTypes.func,
|
508
|
+
/**
|
509
|
+
* Set header reordering active or not
|
510
|
+
*/
|
511
|
+
setSelectedHeaderReorderActive: PropTypes.func,
|
496
512
|
/**
|
497
513
|
* Setter fn for selectionAreaData state value
|
498
514
|
*/
|
@@ -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');
|
@@ -189,7 +192,7 @@ var DataSpreadsheetHeader = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
189
192
|
"data-column-index": index,
|
190
193
|
tabIndex: -1,
|
191
194
|
onMouseDown: selectedHeader ? handleHeaderMouseDown(index) : undefined,
|
192
|
-
onMouseUp: selectedHeader ? function () {
|
195
|
+
onMouseUp: selectedHeader && typeof setSelectedHeaderReorderActive === 'function' ? function () {
|
193
196
|
return setSelectedHeaderReorderActive(false);
|
194
197
|
} : undefined,
|
195
198
|
onClick: !selectedHeader ? handleColumnHeaderClick(index) : undefined,
|
@@ -254,6 +257,10 @@ DataSpreadsheetHeader.propTypes = {
|
|
254
257
|
* The aria label applied to the Select all button
|
255
258
|
*/
|
256
259
|
selectAllAriaLabel: PropTypes.string.isRequired,
|
260
|
+
/**
|
261
|
+
* Header reordering is active
|
262
|
+
*/
|
263
|
+
selectedHeaderReorderActive: PropTypes.bool,
|
257
264
|
/**
|
258
265
|
* All of the cell selection area items
|
259
266
|
*/
|
@@ -271,6 +278,10 @@ DataSpreadsheetHeader.propTypes = {
|
|
271
278
|
* Setter fn for header cell hold active value
|
272
279
|
*/
|
273
280
|
setHeaderCellHoldActive: PropTypes.func,
|
281
|
+
/**
|
282
|
+
* Set header reordering active or not
|
283
|
+
*/
|
284
|
+
setSelectedHeaderReorderActive: PropTypes.func,
|
274
285
|
/**
|
275
286
|
* Setter fn for selectionAreaData state value
|
276
287
|
*/
|
@@ -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;
|
@@ -121,15 +121,19 @@ exports.DataSpreadsheet = /*#__PURE__*/React__default["default"].forwardRef(func
|
|
121
121
|
_useState18 = _rollupPluginBabelHelpers.slicedToArray(_useState17, 2),
|
122
122
|
headerCellHoldActive = _useState18[0],
|
123
123
|
setHeaderCellHoldActive = _useState18[1];
|
124
|
-
var isBlurSpreadsheet = React.useRef(false);
|
125
124
|
var _useState19 = React.useState(false),
|
126
125
|
_useState20 = _rollupPluginBabelHelpers.slicedToArray(_useState19, 2),
|
127
|
-
|
128
|
-
|
126
|
+
selectedHeaderReorderActive = _useState20[0],
|
127
|
+
setSelectedHeaderReorderActive = _useState20[1];
|
128
|
+
var isBlurSpreadsheet = React.useRef(false);
|
129
129
|
var _useState21 = React.useState(false),
|
130
130
|
_useState22 = _rollupPluginBabelHelpers.slicedToArray(_useState21, 2),
|
131
|
-
|
132
|
-
|
131
|
+
isActiveHeaderCellChanged = _useState22[0],
|
132
|
+
setIsActiveHeaderCellChanged = _useState22[1];
|
133
|
+
var _useState23 = React.useState(false),
|
134
|
+
_useState24 = _rollupPluginBabelHelpers.slicedToArray(_useState23, 2),
|
135
|
+
activeCellInsideSelectionArea = _useState24[0],
|
136
|
+
setActiveCellInsideSelectionArea = _useState24[1];
|
133
137
|
var previousState = usePreviousValue.usePreviousValue({
|
134
138
|
activeCellCoordinates: activeCellCoordinates,
|
135
139
|
isEditing: isEditing,
|
@@ -137,10 +141,10 @@ exports.DataSpreadsheet = /*#__PURE__*/React__default["default"].forwardRef(func
|
|
137
141
|
}) || {};
|
138
142
|
var cellSizeValue = getCellSize.getCellSize(cellSize);
|
139
143
|
var cellEditorRef = React.useRef();
|
140
|
-
var
|
141
|
-
|
142
|
-
activeCellContent =
|
143
|
-
setActiveCellContent =
|
144
|
+
var _useState25 = React.useState(),
|
145
|
+
_useState26 = _rollupPluginBabelHelpers.slicedToArray(_useState25, 2),
|
146
|
+
activeCellContent = _useState26[0],
|
147
|
+
setActiveCellContent = _useState26[1];
|
144
148
|
var activeCellRef = React.useRef();
|
145
149
|
var cellEditorRulerRef = React.useRef();
|
146
150
|
var defaultColumn = React.useMemo(function () {
|
@@ -624,6 +628,8 @@ exports.DataSpreadsheet = /*#__PURE__*/React__default["default"].forwardRef(func
|
|
624
628
|
columns: columns,
|
625
629
|
currentMatcher: currentMatcher,
|
626
630
|
defaultColumn: defaultColumn,
|
631
|
+
selectedHeaderReorderActive: selectedHeaderReorderActive,
|
632
|
+
setSelectedHeaderReorderActive: setSelectedHeaderReorderActive,
|
627
633
|
headerGroups: headerGroups,
|
628
634
|
rows: rows,
|
629
635
|
scrollBarSize: scrollBarSize,
|
@@ -647,6 +653,8 @@ exports.DataSpreadsheet = /*#__PURE__*/React__default["default"].forwardRef(func
|
|
647
653
|
currentMatcher: currentMatcher,
|
648
654
|
setCurrentMatcher: setCurrentMatcher,
|
649
655
|
setContainerHasFocus: setContainerHasFocus,
|
656
|
+
selectedHeaderReorderActive: selectedHeaderReorderActive,
|
657
|
+
setSelectedHeaderReorderActive: setSelectedHeaderReorderActive,
|
650
658
|
selectionAreas: selectionAreas,
|
651
659
|
setSelectionAreas: setSelectionAreas,
|
652
660
|
headerGroups: headerGroups,
|
@@ -79,7 +79,15 @@ interface DataSpreadsheetBodyProps {
|
|
79
79
|
/**
|
80
80
|
* Array of selection area data
|
81
81
|
*/
|
82
|
-
selectionAreaData?:
|
82
|
+
selectionAreaData?: any[];
|
83
|
+
/**
|
84
|
+
* Header reordering is active
|
85
|
+
*/
|
86
|
+
selectedHeaderReorderActive?: boolean;
|
87
|
+
/**
|
88
|
+
* Set header reordering active or not
|
89
|
+
*/
|
90
|
+
setSelectedHeaderReorderActive?: Dispatch<SetStateAction<boolean>>;
|
83
91
|
/**
|
84
92
|
* Array of selection areas
|
85
93
|
*/
|
@@ -49,6 +49,8 @@ var DataSpreadsheetBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
49
49
|
selectionAreaData = _ref.selectionAreaData,
|
50
50
|
setSelectionAreaData = _ref.setSelectionAreaData,
|
51
51
|
setActiveCellCoordinates = _ref.setActiveCellCoordinates,
|
52
|
+
selectedHeaderReorderActive = _ref.selectedHeaderReorderActive,
|
53
|
+
setSelectedHeaderReorderActive = _ref.setSelectedHeaderReorderActive,
|
52
54
|
selectionAreas = _ref.selectionAreas,
|
53
55
|
setContainerHasFocus = _ref.setContainerHasFocus,
|
54
56
|
setSelectionAreas = _ref.setSelectionAreas,
|
@@ -84,8 +86,12 @@ var DataSpreadsheetBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
84
86
|
// back to the consumer
|
85
87
|
React.useEffect(function () {
|
86
88
|
if (selectionAreaData !== null && selectionAreaData !== void 0 && selectionAreaData.length) {
|
87
|
-
var _previousState$select;
|
88
|
-
|
89
|
+
var _previousState$select, _selectionAreaData$, _previousState$select2;
|
90
|
+
var selectionChanged = false;
|
91
|
+
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)) {
|
92
|
+
selectionChanged = true;
|
93
|
+
}
|
94
|
+
if (!clickAndHoldActive && previousState !== null && previousState !== void 0 && previousState.clickAndHoldActive || selectionChanged) {
|
89
95
|
onSelectionAreaChange === null || onSelectionAreaChange === void 0 || onSelectionAreaChange(selectionAreaData);
|
90
96
|
}
|
91
97
|
}
|
@@ -160,6 +166,8 @@ var DataSpreadsheetBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
160
166
|
setClickAndHoldActive: setClickAndHoldActive,
|
161
167
|
setSelectionAreas: setSelectionAreas,
|
162
168
|
setValidStartingPoint: setValidStartingPoint,
|
169
|
+
selectedHeaderReorderActive: selectedHeaderReorderActive,
|
170
|
+
setSelectedHeaderReorderActive: setSelectedHeaderReorderActive,
|
163
171
|
validStartingPoint: validStartingPoint,
|
164
172
|
ref: ref,
|
165
173
|
setHeaderCellHoldActive: setHeaderCellHoldActive,
|
@@ -466,6 +474,10 @@ DataSpreadsheetBody.propTypes = {
|
|
466
474
|
* The scrollbar width
|
467
475
|
*/
|
468
476
|
scrollBarSize: index["default"].number,
|
477
|
+
/**
|
478
|
+
* Header reordering is active
|
479
|
+
*/
|
480
|
+
selectedHeaderReorderActive: index["default"].bool,
|
469
481
|
/**
|
470
482
|
* Array of selection area data
|
471
483
|
*/
|
@@ -502,6 +514,10 @@ DataSpreadsheetBody.propTypes = {
|
|
502
514
|
* Setter fn for header cell hold active value
|
503
515
|
*/
|
504
516
|
setHeaderCellHoldActive: index["default"].func,
|
517
|
+
/**
|
518
|
+
* Set header reordering active or not
|
519
|
+
*/
|
520
|
+
setSelectedHeaderReorderActive: index["default"].func,
|
505
521
|
/**
|
506
522
|
* Setter fn for selectionAreaData state value
|
507
523
|
*/
|
@@ -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
|
*/
|
@@ -40,6 +40,8 @@ var DataSpreadsheetHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
40
40
|
headerGroups = _ref.headerGroups,
|
41
41
|
scrollBarSize = _ref.scrollBarSize,
|
42
42
|
selectionAreas = _ref.selectionAreas,
|
43
|
+
selectedHeaderReorderActive = _ref.selectedHeaderReorderActive,
|
44
|
+
setSelectedHeaderReorderActive = _ref.setSelectedHeaderReorderActive,
|
43
45
|
setActiveCellCoordinates = _ref.setActiveCellCoordinates,
|
44
46
|
setCurrentMatcher = _ref.setCurrentMatcher,
|
45
47
|
setSelectionAreas = _ref.setSelectionAreas,
|
@@ -55,10 +57,6 @@ var DataSpreadsheetHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
55
57
|
_useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
|
56
58
|
scrollBarSizeValue = _useState2[0],
|
57
59
|
setScrollBarSizeValue = _useState2[1];
|
58
|
-
var _useState3 = React.useState(false),
|
59
|
-
_useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
|
60
|
-
selectedHeaderReorderActive = _useState4[0],
|
61
|
-
setSelectedHeaderReorderActive = _useState4[1];
|
62
60
|
var previousState = usePreviousValue.usePreviousValue({
|
63
61
|
cellSize: cellSize
|
64
62
|
}) || {};
|
@@ -116,11 +114,16 @@ var DataSpreadsheetHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
116
114
|
// Remove columns, need to call handleHeaderCellSelection
|
117
115
|
return;
|
118
116
|
}
|
119
|
-
setSelectedHeaderReorderActive(true);
|
120
117
|
var selectionAreaToClone = selectionAreas === null || selectionAreas === void 0 ? void 0 : selectionAreas.filter(function (item) {
|
121
118
|
return (item === null || item === void 0 ? void 0 : item.matcher) === currentMatcher;
|
122
119
|
});
|
123
120
|
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, "\"]"));
|
121
|
+
if (selectionAreaElement) {
|
122
|
+
selectionAreaElement.classList.add("".concat(blockClass, "__selection-area--element"));
|
123
|
+
}
|
124
|
+
if (typeof setSelectedHeaderReorderActive === 'function') {
|
125
|
+
setSelectedHeaderReorderActive(true);
|
126
|
+
}
|
124
127
|
var clickXPosition = event.clientX;
|
125
128
|
var headerButtonCoords = event.target.getBoundingClientRect();
|
126
129
|
var headerIndex = event.target.getAttribute('data-column-index');
|
@@ -198,7 +201,7 @@ var DataSpreadsheetHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
198
201
|
"data-column-index": index,
|
199
202
|
tabIndex: -1,
|
200
203
|
onMouseDown: selectedHeader ? handleHeaderMouseDown(index) : undefined,
|
201
|
-
onMouseUp: selectedHeader ? function () {
|
204
|
+
onMouseUp: selectedHeader && typeof setSelectedHeaderReorderActive === 'function' ? function () {
|
202
205
|
return setSelectedHeaderReorderActive(false);
|
203
206
|
} : undefined,
|
204
207
|
onClick: !selectedHeader ? handleColumnHeaderClick(index) : undefined,
|
@@ -263,6 +266,10 @@ DataSpreadsheetHeader.propTypes = {
|
|
263
266
|
* The aria label applied to the Select all button
|
264
267
|
*/
|
265
268
|
selectAllAriaLabel: index["default"].string.isRequired,
|
269
|
+
/**
|
270
|
+
* Header reordering is active
|
271
|
+
*/
|
272
|
+
selectedHeaderReorderActive: index["default"].bool,
|
266
273
|
/**
|
267
274
|
* All of the cell selection area items
|
268
275
|
*/
|
@@ -280,6 +287,10 @@ DataSpreadsheetHeader.propTypes = {
|
|
280
287
|
* Setter fn for header cell hold active value
|
281
288
|
*/
|
282
289
|
setHeaderCellHoldActive: index["default"].func,
|
290
|
+
/**
|
291
|
+
* Set header reordering active or not
|
292
|
+
*/
|
293
|
+
setSelectedHeaderReorderActive: index["default"].func,
|
283
294
|
/**
|
284
295
|
* Setter fn for selectionAreaData state value
|
285
296
|
*/
|
@@ -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;
|
@@ -18,6 +18,8 @@ var deepCloneObject = require('../../../global/js/utils/deepCloneObject.js');
|
|
18
18
|
var useSpreadsheetMouseUp = function useSpreadsheetMouseUp(_ref) {
|
19
19
|
var currentMatcher = _ref.currentMatcher,
|
20
20
|
setSelectionAreas = _ref.setSelectionAreas,
|
21
|
+
selectedHeaderReorderActive = _ref.selectedHeaderReorderActive,
|
22
|
+
setSelectedHeaderReorderActive = _ref.setSelectedHeaderReorderActive,
|
21
23
|
setClickAndHoldActive = _ref.setClickAndHoldActive,
|
22
24
|
setValidStartingPoint = _ref.setValidStartingPoint,
|
23
25
|
validStartingPoint = _ref.validStartingPoint,
|
@@ -34,15 +36,22 @@ var useSpreadsheetMouseUp = function useSpreadsheetMouseUp(_ref) {
|
|
34
36
|
selectionAreas = _ref.selectionAreas;
|
35
37
|
React.useEffect(function () {
|
36
38
|
var handleMouseUp = function handleMouseUp(event) {
|
39
|
+
var _selectionAreas$;
|
40
|
+
var isHoldingColumn = false;
|
41
|
+
if (selectionAreas !== null && selectionAreas !== void 0 && (_selectionAreas$ = selectionAreas[0]) !== null && _selectionAreas$ !== void 0 && _selectionAreas$.header && selectionAreas[0].header.type === 'column') {
|
42
|
+
isHoldingColumn = true;
|
43
|
+
}
|
37
44
|
// Remove the cloned selection area on mouse up
|
38
|
-
if (!validStartingPoint) {
|
45
|
+
if (!validStartingPoint && isHoldingColumn) {
|
39
46
|
setHeaderCellHoldActive(false);
|
47
|
+
var selectionAreaElement = ref.current.querySelector(".".concat(blockClass, "__selection-area--element"));
|
40
48
|
var selectionAreaCloneElement = ref.current.querySelector(".".concat(blockClass, "__selection-area--element-cloned"));
|
41
49
|
if (!selectionAreaCloneElement) {
|
42
50
|
return;
|
43
51
|
}
|
44
52
|
// Mouse up while a cloned selection area exists/a column is being reordered
|
45
53
|
if (selectionAreaCloneElement) {
|
54
|
+
var _selectionAreaElement;
|
46
55
|
var closestCell = event.target.closest(".".concat(blockClass, "--interactive-cell-element"));
|
47
56
|
var newColumnIndex = parseInt === null || parseInt === void 0 ? void 0 : parseInt(closestCell === null || closestCell === void 0 ? void 0 : closestCell.getAttribute('data-column-index'));
|
48
57
|
var originalColumnIndex = parseInt === null || parseInt === void 0 ? void 0 : parseInt(selectionAreaCloneElement === null || selectionAreaCloneElement === void 0 ? void 0 : selectionAreaCloneElement.getAttribute('data-column-index-original'));
|
@@ -85,6 +94,7 @@ var useSpreadsheetMouseUp = function useSpreadsheetMouseUp(_ref) {
|
|
85
94
|
selectionAreaClone[indexOfItemToUpdate].point1.column = Math.min.apply(Math, _rollupPluginBabelHelpers.toConsumableArray(newIndexArray));
|
86
95
|
selectionAreaClone[indexOfItemToUpdate].point2.column = Math.max.apply(Math, _rollupPluginBabelHelpers.toConsumableArray(newIndexArray));
|
87
96
|
}
|
97
|
+
selectionAreaClone[indexOfItemToUpdate].areaCreated = false;
|
88
98
|
return selectionAreaClone;
|
89
99
|
});
|
90
100
|
// Only reorder columns if the new index is _not_ part of the
|
@@ -129,11 +139,13 @@ var useSpreadsheetMouseUp = function useSpreadsheetMouseUp(_ref) {
|
|
129
139
|
var indicatorLineElement = ref.current.querySelector(".".concat(blockClass, "__reorder-indicator-line"));
|
130
140
|
indicatorLineElement === null || indicatorLineElement === void 0 || indicatorLineElement.remove();
|
131
141
|
selectionAreaCloneElement === null || selectionAreaCloneElement === void 0 || selectionAreaCloneElement.remove();
|
142
|
+
selectionAreaElement === null || selectionAreaElement === void 0 || (_selectionAreaElement = selectionAreaElement.classList) === null || _selectionAreaElement === void 0 || _selectionAreaElement.remove("".concat(blockClass, "__selection-area--element"));
|
143
|
+
setSelectedHeaderReorderActive(false);
|
132
144
|
}
|
133
145
|
}
|
134
146
|
// Mouse up was on a spreadsheet body cell which is a valid
|
135
147
|
// start/end point for creating a selection area
|
136
|
-
if (validStartingPoint) {
|
148
|
+
if (validStartingPoint || event.type === 'mouseup') {
|
137
149
|
setClickAndHoldActive(false);
|
138
150
|
setValidStartingPoint(false);
|
139
151
|
var cellButton = event.target.closest(".".concat(blockClass, "__body--td"));
|
@@ -162,7 +174,7 @@ var useSpreadsheetMouseUp = function useSpreadsheetMouseUp(_ref) {
|
|
162
174
|
return function () {
|
163
175
|
document.removeEventListener('mouseup', handleMouseUp);
|
164
176
|
};
|
165
|
-
}, [blockClass, currentMatcher, setSelectionAreas, setClickAndHoldActive, setValidStartingPoint, validStartingPoint, ref, setHeaderCellHoldActive, setColumnOrder, visibleColumns, setActiveCellCoordinates, activeCellCoordinates, rows, defaultColumn, selectionAreas]);
|
177
|
+
}, [blockClass, currentMatcher, setSelectionAreas, setClickAndHoldActive, setValidStartingPoint, validStartingPoint, selectedHeaderReorderActive, setSelectedHeaderReorderActive, ref, setHeaderCellHoldActive, setColumnOrder, visibleColumns, setActiveCellCoordinates, activeCellCoordinates, rows, defaultColumn, selectionAreas]);
|
166
178
|
};
|
167
179
|
|
168
180
|
exports.useSpreadsheetMouseUp = 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;
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@carbon/ibm-products",
|
3
3
|
"description": "Carbon for IBM Products",
|
4
|
-
"version": "2.43.2-canary.
|
4
|
+
"version": "2.43.2-canary.7+b2a413a06",
|
5
5
|
"license": "Apache-2.0",
|
6
6
|
"main": "lib/index.js",
|
7
7
|
"module": "es/index.js",
|
@@ -119,5 +119,5 @@
|
|
119
119
|
"react": "^16.8.6 || ^17.0.1 || ^18.2.0",
|
120
120
|
"react-dom": "^16.8.6 || ^17.0.1 || ^18.2.0"
|
121
121
|
},
|
122
|
-
"gitHead": "
|
122
|
+
"gitHead": "b2a413a067c999839c9481e3fa7d1fd8b1e3d2ff"
|
123
123
|
}
|