handsontable 0.0.0-next-03bda88-20230622 → 0.0.0-next-c3d199b-20230626
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
- package/3rdparty/walkontable/src/cell/coords.js +61 -12
- package/3rdparty/walkontable/src/cell/coords.mjs +61 -12
- package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
- package/3rdparty/walkontable/src/cell/range.js +44 -7
- package/3rdparty/walkontable/src/cell/range.mjs +44 -7
- package/3rdparty/walkontable/src/core/_base.js +9 -3
- package/3rdparty/walkontable/src/core/_base.mjs +9 -3
- package/3rdparty/walkontable/src/core/clone.js +2 -2
- package/3rdparty/walkontable/src/core/clone.mjs +2 -2
- package/3rdparty/walkontable/src/core/core.js +3 -2
- package/3rdparty/walkontable/src/core/core.mjs +3 -2
- package/3rdparty/walkontable/src/event.js +7 -7
- package/3rdparty/walkontable/src/event.mjs +7 -7
- package/3rdparty/walkontable/src/facade/core.js +2 -2
- package/3rdparty/walkontable/src/facade/core.mjs +2 -2
- package/3rdparty/walkontable/src/index.js +10 -2
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +1 -1
- package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -4
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -4
- package/3rdparty/walkontable/src/overlay/top.js +2 -4
- package/3rdparty/walkontable/src/overlay/top.mjs +2 -4
- package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +7 -12
- package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
- package/3rdparty/walkontable/src/selection/border/constants.js +18 -0
- package/3rdparty/walkontable/src/selection/border/constants.mjs +13 -0
- package/3rdparty/walkontable/src/selection/constants.js +63 -0
- package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
- package/3rdparty/walkontable/src/selection/index.js +30 -0
- package/3rdparty/walkontable/src/selection/index.mjs +5 -0
- package/3rdparty/walkontable/src/selection/manager.js +329 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +323 -0
- package/3rdparty/walkontable/src/selection/scanner.js +364 -0
- package/3rdparty/walkontable/src/selection/scanner.mjs +360 -0
- package/3rdparty/walkontable/src/selection/selection.js +133 -0
- package/3rdparty/walkontable/src/selection/selection.mjs +127 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
- package/3rdparty/walkontable/src/table.js +7 -79
- package/3rdparty/walkontable/src/table.mjs +8 -80
- package/CHANGELOG.md +0 -31
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core.d.ts +5 -3
- package/core.js +127 -309
- package/core.mjs +127 -309
- package/dataMap/metaManager/metaSchema.js +19 -0
- package/dataMap/metaManager/metaSchema.mjs +19 -0
- package/dist/handsontable.css +8 -3
- package/dist/handsontable.full.css +8 -3
- package/dist/handsontable.full.js +15283 -12109
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +115 -115
- package/dist/handsontable.js +23364 -20190
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +4 -4
- package/editorManager.js +21 -94
- package/editorManager.mjs +26 -98
- package/editors/textEditor/textEditor.js +3 -11
- package/editors/textEditor/textEditor.mjs +4 -12
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/helpers/number.d.ts +1 -0
- package/helpers/number.js +18 -0
- package/helpers/number.mjs +17 -0
- package/package.json +1 -1
- package/pluginHooks.d.ts +5 -1
- package/pluginHooks.js +89 -1
- package/pluginHooks.mjs +89 -1
- package/plugins/collapsibleColumns/collapsibleColumns.js +81 -24
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +81 -24
- package/plugins/columnSorting/columnSorting.js +50 -8
- package/plugins/columnSorting/columnSorting.mjs +49 -9
- package/plugins/columnSorting/index.js +4 -2
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/comments/commentEditor.js +1 -0
- package/plugins/comments/commentEditor.mjs +1 -0
- package/plugins/comments/comments.js +263 -224
- package/plugins/comments/comments.mjs +271 -234
- package/plugins/comments/contextMenuItem/addEditComment.js +51 -0
- package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.js +63 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.mjs +55 -0
- package/plugins/comments/contextMenuItem/removeComment.js +48 -0
- package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +80 -29
- package/plugins/contextMenu/contextMenu.mjs +81 -30
- package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
- package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/removeColumn.js +7 -5
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/removeRow.js +7 -5
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
- package/plugins/contextMenu/utils.js +25 -16
- package/plugins/contextMenu/utils.mjs +24 -15
- package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
- package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
- package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
- package/plugins/copyPaste/copyPaste.js +6 -2
- package/plugins/copyPaste/copyPaste.mjs +6 -2
- package/plugins/customBorders/customBorders.js +25 -53
- package/plugins/customBorders/customBorders.mjs +26 -54
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +94 -30
- package/plugins/dropdownMenu/dropdownMenu.mjs +94 -30
- package/plugins/mergeCells/mergeCells.js +5 -18
- package/plugins/mergeCells/mergeCells.mjs +5 -18
- package/plugins/multiColumnSorting/multiColumnSorting.js +42 -3
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +42 -3
- package/plugins/nestedHeaders/nestedHeaders.js +132 -10
- package/plugins/nestedHeaders/nestedHeaders.mjs +132 -10
- package/plugins/nestedHeaders/stateManager/index.js +37 -0
- package/plugins/nestedHeaders/stateManager/index.mjs +37 -0
- package/plugins/nestedRows/nestedRows.js +52 -7
- package/plugins/nestedRows/nestedRows.mjs +52 -7
- package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
- package/selection/highlight/highlight.js +312 -89
- package/selection/highlight/highlight.mjs +302 -85
- package/selection/highlight/types/activeHeader.js +10 -9
- package/selection/highlight/types/activeHeader.mjs +10 -8
- package/selection/highlight/types/area.js +12 -27
- package/selection/highlight/types/area.mjs +16 -30
- package/selection/highlight/types/areaLayered.js +54 -0
- package/selection/highlight/types/areaLayered.mjs +49 -0
- package/selection/highlight/types/column.js +50 -0
- package/selection/highlight/types/column.mjs +45 -0
- package/selection/highlight/types/customSelection.js +7 -10
- package/selection/highlight/types/customSelection.mjs +7 -9
- package/selection/highlight/types/fill.js +5 -8
- package/selection/highlight/types/fill.mjs +5 -7
- package/selection/highlight/types/{cell.js → focus.js} +5 -8
- package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
- package/selection/highlight/types/header.js +10 -20
- package/selection/highlight/types/header.mjs +10 -19
- package/selection/highlight/types/{index.js → row.js} +27 -31
- package/selection/highlight/types/{index.mjs → row.mjs} +24 -29
- package/selection/highlight/visualSelection.js +31 -27
- package/selection/highlight/visualSelection.mjs +31 -27
- package/selection/index.js +4 -7
- package/selection/index.mjs +2 -3
- package/selection/mouseEventHandler.js +1 -1
- package/selection/mouseEventHandler.mjs +1 -1
- package/selection/range.js +8 -8
- package/selection/range.mjs +8 -8
- package/selection/selection.js +315 -181
- package/selection/selection.mjs +310 -180
- package/selection/transformation.js +233 -96
- package/selection/transformation.mjs +230 -93
- package/selection/utils.js +12 -36
- package/selection/utils.mjs +13 -36
- package/settings.d.ts +1 -0
- package/shortcutContexts/commands/editor/closeAndSave.js +15 -0
- package/shortcutContexts/commands/editor/closeAndSave.mjs +10 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +13 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
- package/shortcutContexts/commands/editor/fastOpen.js +16 -0
- package/shortcutContexts/commands/editor/fastOpen.mjs +11 -0
- package/shortcutContexts/commands/editor/index.js +16 -0
- package/shortcutContexts/commands/editor/index.mjs +12 -0
- package/shortcutContexts/commands/editor/open.js +29 -0
- package/shortcutContexts/commands/editor/open.mjs +24 -0
- package/shortcutContexts/commands/emptySelectedCells.js +12 -0
- package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
- package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +21 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +16 -0
- package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
- package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
- package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +14 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +22 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +12 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +12 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +40 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +35 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +40 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +35 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +22 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +14 -0
- package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +21 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +16 -0
- package/shortcutContexts/commands/index.js +52 -0
- package/shortcutContexts/commands/index.mjs +48 -0
- package/shortcutContexts/commands/moveCellSelection/down.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/down.mjs +7 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +29 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
- package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/left.js +11 -0
- package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/right.js +11 -0
- package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +11 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +12 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +11 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +36 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +36 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +11 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +18 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/up.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/up.mjs +7 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +29 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +24 -0
- package/shortcutContexts/commands/populateSelectedCellsData.js +35 -0
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +30 -0
- package/shortcutContexts/commands/selectAll.js +11 -0
- package/shortcutContexts/commands/selectAll.mjs +6 -0
- package/shortcutContexts/constants.js +19 -0
- package/shortcutContexts/constants.mjs +12 -0
- package/shortcutContexts/editor.js +29 -0
- package/shortcutContexts/editor.mjs +25 -0
- package/shortcutContexts/grid.js +247 -0
- package/shortcutContexts/grid.mjs +243 -0
- package/shortcutContexts/index.js +29 -0
- package/shortcutContexts/index.mjs +15 -0
- package/shortcuts/manager.js +2 -0
- package/shortcuts/manager.mjs +2 -0
- package/shortcuts/recorder.js +2 -2
- package/shortcuts/recorder.mjs +2 -2
- package/shortcuts/utils.js +21 -5
- package/shortcuts/utils.mjs +20 -4
- package/tableView.js +63 -11
- package/tableView.mjs +63 -11
- package/3rdparty/walkontable/src/selection.js +0 -355
- package/3rdparty/walkontable/src/selection.mjs +0 -349
- package/selection/highlight/constants.js +0 -16
- package/selection/highlight/constants.mjs +0 -6
@@ -45,8 +45,8 @@ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!priva
|
|
45
45
|
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
46
46
|
import { addClass, removeClass } from "../../helpers/dom/element.mjs";
|
47
47
|
import { isNumeric } from "../../helpers/number.mjs";
|
48
|
-
import { isLeftClick, isRightClick } from "../../helpers/dom/event.mjs";
|
49
48
|
import { toSingleLine } from "../../helpers/templateLiteralTag.mjs";
|
49
|
+
import { isLeftClick, isRightClick } from "../../helpers/dom/event.mjs";
|
50
50
|
import { warn } from "../../helpers/console.mjs";
|
51
51
|
import { ACTIVE_HEADER_TYPE, HEADER_TYPE } from "../../selection/index.mjs";
|
52
52
|
import { BasePlugin } from "../base/index.mjs";
|
@@ -194,6 +194,12 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
194
194
|
this.addHook('beforeOnCellMouseOver', function () {
|
195
195
|
return _this2.onBeforeOnCellMouseOver.apply(_this2, arguments);
|
196
196
|
});
|
197
|
+
this.addHook('modifyTransformStart', function () {
|
198
|
+
return _this2.onModifyTransformStart.apply(_this2, arguments);
|
199
|
+
});
|
200
|
+
this.addHook('afterSelection', function () {
|
201
|
+
return _this2.updateFocusHighlightPosition();
|
202
|
+
});
|
197
203
|
this.addHook('afterGetColumnHeaderRenderers', function (array) {
|
198
204
|
return _this2.onAfterGetColumnHeaderRenderers(array);
|
199
205
|
});
|
@@ -209,9 +215,18 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
209
215
|
this.addHook('beforeCopy', function () {
|
210
216
|
return _this2.onBeforeCopy.apply(_this2, arguments);
|
211
217
|
});
|
218
|
+
this.addHook('beforeSelectColumns', function () {
|
219
|
+
return _this2.onBeforeSelectColumns.apply(_this2, arguments);
|
220
|
+
});
|
212
221
|
this.addHook('afterViewportColumnCalculatorOverride', function () {
|
213
222
|
return _this2.onAfterViewportColumnCalculatorOverride.apply(_this2, arguments);
|
214
223
|
});
|
224
|
+
this.hot.columnIndexMapper.addLocalHook('cacheUpdated', function () {
|
225
|
+
return _this2.updateFocusHighlightPosition();
|
226
|
+
});
|
227
|
+
this.hot.rowIndexMapper.addLocalHook('cacheUpdated', function () {
|
228
|
+
return _this2.updateFocusHighlightPosition();
|
229
|
+
});
|
215
230
|
_get(_getPrototypeOf(NestedHeaders.prototype), "enablePlugin", this).call(this);
|
216
231
|
this.updatePlugin(); // @TODO: Workaround for broken plugin initialization abstraction.
|
217
232
|
}
|
@@ -433,6 +448,34 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
433
448
|
return this.hot.getColHeader(visualColumnIndex, headerLevel);
|
434
449
|
}
|
435
450
|
|
451
|
+
/**
|
452
|
+
* Updates the selection focus highlight position to point to the nested header root element (TH)
|
453
|
+
* even when the logical coordinates point in-between the header.
|
454
|
+
*
|
455
|
+
* @private
|
456
|
+
*/
|
457
|
+
}, {
|
458
|
+
key: "updateFocusHighlightPosition",
|
459
|
+
value: function updateFocusHighlightPosition() {
|
460
|
+
var _this$hot;
|
461
|
+
var selection = (_this$hot = this.hot) === null || _this$hot === void 0 ? void 0 : _this$hot.getSelectedRangeLast();
|
462
|
+
if (!selection) {
|
463
|
+
return;
|
464
|
+
}
|
465
|
+
var highlight = selection.highlight;
|
466
|
+
var isNestedHeadersRange = highlight.isHeader() && highlight.col >= 0;
|
467
|
+
if (isNestedHeadersRange) {
|
468
|
+
var columnIndex = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(highlight.row, highlight.col);
|
469
|
+
var focusHighlight = this.hot.selection.highlight.getFocus();
|
470
|
+
|
471
|
+
// Correct the highlight/focus selection to highlight the correct TH element
|
472
|
+
focusHighlight.visualCellRange.highlight.col = columnIndex;
|
473
|
+
focusHighlight.visualCellRange.from.col = columnIndex;
|
474
|
+
focusHighlight.visualCellRange.to.col = columnIndex;
|
475
|
+
focusHighlight.commit();
|
476
|
+
}
|
477
|
+
}
|
478
|
+
|
436
479
|
/**
|
437
480
|
* Allows to control which header DOM element will be used to highlight.
|
438
481
|
*
|
@@ -449,8 +492,7 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
449
492
|
if (!headerNodeData) {
|
450
493
|
return visualColumn;
|
451
494
|
}
|
452
|
-
var
|
453
|
-
columnCursor = highlightMeta.columnCursor,
|
495
|
+
var columnCursor = highlightMeta.columnCursor,
|
454
496
|
selectionType = highlightMeta.selectionType,
|
455
497
|
selectionWidth = highlightMeta.selectionWidth;
|
456
498
|
var _classPrivateFieldGet4 = _classPrivateFieldGet(this, _stateManager).getHeaderSettings(headerLevel, visualColumn),
|
@@ -462,8 +504,8 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
462
504
|
}
|
463
505
|
} else if (selectionType === ACTIVE_HEADER_TYPE) {
|
464
506
|
if (colspan > selectionWidth - columnCursor || !isRoot) {
|
465
|
-
//
|
466
|
-
|
507
|
+
// Prevents adding any CSS class names to the TH element
|
508
|
+
return null;
|
467
509
|
}
|
468
510
|
}
|
469
511
|
return visualColumn;
|
@@ -594,7 +636,7 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
594
636
|
}, {
|
595
637
|
key: "onBeforeOnCellMouseOver",
|
596
638
|
value: function onBeforeOnCellMouseOver(event, coords, TD, controller) {
|
597
|
-
var _this$hot;
|
639
|
+
var _this$hot$selection;
|
598
640
|
if (!this.hot.view.isMouseDown()) {
|
599
641
|
return;
|
600
642
|
}
|
@@ -615,13 +657,93 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
615
657
|
controller.cell = true;
|
616
658
|
var columnsToSelect = [];
|
617
659
|
if (coords.col < from.col) {
|
618
|
-
columnsToSelect.push(bottomEndCoords.col, columnIndex);
|
660
|
+
columnsToSelect.push(bottomEndCoords.col, columnIndex, coords.row);
|
619
661
|
} else if (coords.col > from.col) {
|
620
|
-
columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1);
|
662
|
+
columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1, coords.row);
|
621
663
|
} else {
|
622
|
-
columnsToSelect.push(columnIndex, columnIndex + origColspan - 1);
|
664
|
+
columnsToSelect.push(columnIndex, columnIndex + origColspan - 1, coords.row);
|
665
|
+
}
|
666
|
+
(_this$hot$selection = this.hot.selection).selectColumns.apply(_this$hot$selection, columnsToSelect);
|
667
|
+
}
|
668
|
+
|
669
|
+
/**
|
670
|
+
* `modifyTransformStart` hook is called every time the keyboard navigation is used.
|
671
|
+
*
|
672
|
+
* @private
|
673
|
+
* @param {object} delta The transformation delta.
|
674
|
+
*/
|
675
|
+
}, {
|
676
|
+
key: "onModifyTransformStart",
|
677
|
+
value: function onModifyTransformStart(delta) {
|
678
|
+
var _this$hot$getSelected = this.hot.getSelectedRangeLast(),
|
679
|
+
highlight = _this$hot$getSelected.highlight;
|
680
|
+
var nextCoords = this.hot._createCellCoords(highlight.row + delta.row, highlight.col + delta.col);
|
681
|
+
var isNestedHeadersRange = nextCoords.isHeader() && nextCoords.col >= 0;
|
682
|
+
if (!isNestedHeadersRange) {
|
683
|
+
return;
|
684
|
+
}
|
685
|
+
var visualColumnIndexStart = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(nextCoords.row, nextCoords.col);
|
686
|
+
var visualColumnIndexEnd = _classPrivateFieldGet(this, _stateManager).findRightMostColumnIndex(nextCoords.row, nextCoords.col);
|
687
|
+
if (delta.col < 0) {
|
688
|
+
var nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexStart - 1 : visualColumnIndexEnd;
|
689
|
+
var notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, -1);
|
690
|
+
if (notHiddenColumnIndex === null) {
|
691
|
+
// There are no visible columns anymore, so move the selection out of the table edge. This will
|
692
|
+
// be processed by the selection Transformer class as a move selection to the previous row (if autoWrapRow is enabled).
|
693
|
+
delta.col = -this.hot.view.countRenderableColumnsInRange(0, highlight.col);
|
694
|
+
} else {
|
695
|
+
delta.col = -Math.max(this.hot.view.countRenderableColumnsInRange(notHiddenColumnIndex, highlight.col) - 1, 1);
|
696
|
+
}
|
697
|
+
} else if (delta.col > 0) {
|
698
|
+
var _nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexEnd + 1 : visualColumnIndexStart;
|
699
|
+
var _notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(_nextColumn, 1);
|
700
|
+
if (_notHiddenColumnIndex === null) {
|
701
|
+
// There are no visible columns anymore, so move the selection out of the table edge. This will
|
702
|
+
// be processed by the selection Transformer class as a move selection to the next row (if autoWrapRow is enabled).
|
703
|
+
delta.col = this.hot.view.countRenderableColumnsInRange(highlight.col, this.hot.countCols());
|
704
|
+
} else {
|
705
|
+
delta.col = Math.max(this.hot.view.countRenderableColumnsInRange(highlight.col, _notHiddenColumnIndex) - 1, 1);
|
706
|
+
}
|
707
|
+
}
|
708
|
+
}
|
709
|
+
|
710
|
+
/**
|
711
|
+
* The hook observes the column selection from the Selection API and modifies the column range to
|
712
|
+
* ensure that the whole nested column will be covered.
|
713
|
+
*
|
714
|
+
* @private
|
715
|
+
* @param {*} from The coords object where the selection starts.
|
716
|
+
* @param {*} to The coords object where the selection ends.
|
717
|
+
*/
|
718
|
+
}, {
|
719
|
+
key: "onBeforeSelectColumns",
|
720
|
+
value: function onBeforeSelectColumns(from, to) {
|
721
|
+
var headerLevel = from.row;
|
722
|
+
var startNodeData = this._getHeaderTreeNodeDataByCoords({
|
723
|
+
row: headerLevel,
|
724
|
+
col: from.col
|
725
|
+
});
|
726
|
+
var endNodeData = this._getHeaderTreeNodeDataByCoords({
|
727
|
+
row: headerLevel,
|
728
|
+
col: to.col
|
729
|
+
});
|
730
|
+
if (to.col < from.col) {
|
731
|
+
// Column selection from right to left
|
732
|
+
if (startNodeData) {
|
733
|
+
from.col = startNodeData.columnIndex + startNodeData.origColspan - 1;
|
734
|
+
}
|
735
|
+
if (endNodeData) {
|
736
|
+
to.col = endNodeData.columnIndex;
|
737
|
+
}
|
738
|
+
} else if (to.col >= from.col) {
|
739
|
+
// Column selection from left to right or a single column selection
|
740
|
+
if (startNodeData) {
|
741
|
+
from.col = startNodeData.columnIndex;
|
742
|
+
}
|
743
|
+
if (endNodeData) {
|
744
|
+
to.col = endNodeData.columnIndex + endNodeData.origColspan - 1;
|
745
|
+
}
|
623
746
|
}
|
624
|
-
(_this$hot = this.hot).selectColumns.apply(_this$hot, columnsToSelect);
|
625
747
|
}
|
626
748
|
|
627
749
|
/**
|
@@ -416,6 +416,43 @@ var StateManager = /*#__PURE__*/function () {
|
|
416
416
|
return stepBackColumn;
|
417
417
|
}
|
418
418
|
|
419
|
+
/**
|
420
|
+
* The method is helpful in cases where the column index targets in-between currently
|
421
|
+
* collapsed column. In that case, the method returns the right-most column index
|
422
|
+
* where the nested header ends.
|
423
|
+
*
|
424
|
+
* @param {number} headerLevel Header level (there is support for negative and positive values).
|
425
|
+
* @param {number} columnIndex A visual column index.
|
426
|
+
* @returns {number}
|
427
|
+
*/
|
428
|
+
}, {
|
429
|
+
key: "findRightMostColumnIndex",
|
430
|
+
value: function findRightMostColumnIndex(headerLevel, columnIndex) {
|
431
|
+
var _this$getHeaderSettin3;
|
432
|
+
var _ref4 = (_this$getHeaderSettin3 = this.getHeaderSettings(headerLevel, columnIndex)) !== null && _this$getHeaderSettin3 !== void 0 ? _this$getHeaderSettin3 : {
|
433
|
+
isRoot: true,
|
434
|
+
origColspan: 1
|
435
|
+
},
|
436
|
+
isRoot = _ref4.isRoot,
|
437
|
+
origColspan = _ref4.origColspan;
|
438
|
+
if (isRoot) {
|
439
|
+
return columnIndex + origColspan - 1;
|
440
|
+
}
|
441
|
+
var stepForthColumn = columnIndex + 1;
|
442
|
+
while (stepForthColumn < this.getColumnsCount()) {
|
443
|
+
var _this$getHeaderSettin4;
|
444
|
+
var _ref5 = (_this$getHeaderSettin4 = this.getHeaderSettings(headerLevel, stepForthColumn)) !== null && _this$getHeaderSettin4 !== void 0 ? _this$getHeaderSettin4 : {
|
445
|
+
isRoot: true
|
446
|
+
},
|
447
|
+
isRootNode = _ref5.isRoot;
|
448
|
+
if (isRootNode) {
|
449
|
+
break;
|
450
|
+
}
|
451
|
+
stepForthColumn += 1;
|
452
|
+
}
|
453
|
+
return stepForthColumn - 1;
|
454
|
+
}
|
455
|
+
|
419
456
|
/**
|
420
457
|
* Gets a total number of headers levels.
|
421
458
|
*
|
@@ -411,6 +411,43 @@ var StateManager = /*#__PURE__*/function () {
|
|
411
411
|
return stepBackColumn;
|
412
412
|
}
|
413
413
|
|
414
|
+
/**
|
415
|
+
* The method is helpful in cases where the column index targets in-between currently
|
416
|
+
* collapsed column. In that case, the method returns the right-most column index
|
417
|
+
* where the nested header ends.
|
418
|
+
*
|
419
|
+
* @param {number} headerLevel Header level (there is support for negative and positive values).
|
420
|
+
* @param {number} columnIndex A visual column index.
|
421
|
+
* @returns {number}
|
422
|
+
*/
|
423
|
+
}, {
|
424
|
+
key: "findRightMostColumnIndex",
|
425
|
+
value: function findRightMostColumnIndex(headerLevel, columnIndex) {
|
426
|
+
var _this$getHeaderSettin3;
|
427
|
+
var _ref4 = (_this$getHeaderSettin3 = this.getHeaderSettings(headerLevel, columnIndex)) !== null && _this$getHeaderSettin3 !== void 0 ? _this$getHeaderSettin3 : {
|
428
|
+
isRoot: true,
|
429
|
+
origColspan: 1
|
430
|
+
},
|
431
|
+
isRoot = _ref4.isRoot,
|
432
|
+
origColspan = _ref4.origColspan;
|
433
|
+
if (isRoot) {
|
434
|
+
return columnIndex + origColspan - 1;
|
435
|
+
}
|
436
|
+
var stepForthColumn = columnIndex + 1;
|
437
|
+
while (stepForthColumn < this.getColumnsCount()) {
|
438
|
+
var _this$getHeaderSettin4;
|
439
|
+
var _ref5 = (_this$getHeaderSettin4 = this.getHeaderSettings(headerLevel, stepForthColumn)) !== null && _this$getHeaderSettin4 !== void 0 ? _this$getHeaderSettin4 : {
|
440
|
+
isRoot: true
|
441
|
+
},
|
442
|
+
isRootNode = _ref5.isRoot;
|
443
|
+
if (isRootNode) {
|
444
|
+
break;
|
445
|
+
}
|
446
|
+
stepForthColumn += 1;
|
447
|
+
}
|
448
|
+
return stepForthColumn - 1;
|
449
|
+
}
|
450
|
+
|
414
451
|
/**
|
415
452
|
* Gets a total number of headers levels.
|
416
453
|
*
|
@@ -62,6 +62,7 @@ var PLUGIN_KEY = 'nestedRows';
|
|
62
62
|
exports.PLUGIN_KEY = PLUGIN_KEY;
|
63
63
|
var PLUGIN_PRIORITY = 300;
|
64
64
|
exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
|
65
|
+
var SHORTCUTS_GROUP = PLUGIN_KEY;
|
65
66
|
var privatePool = new WeakMap();
|
66
67
|
|
67
68
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
@@ -203,6 +204,7 @@ var NestedRows = /*#__PURE__*/function (_BasePlugin) {
|
|
203
204
|
this.addHook('beforeUpdateData', function (data) {
|
204
205
|
return _this2.onBeforeLoadData(data);
|
205
206
|
});
|
207
|
+
this.registerShortcuts();
|
206
208
|
_get(_getPrototypeOf(NestedRows.prototype), "enablePlugin", this).call(this);
|
207
209
|
}
|
208
210
|
|
@@ -213,6 +215,7 @@ var NestedRows = /*#__PURE__*/function (_BasePlugin) {
|
|
213
215
|
key: "disablePlugin",
|
214
216
|
value: function disablePlugin() {
|
215
217
|
this.hot.rowIndexMapper.unregisterMap('nestedRows');
|
218
|
+
this.unregisterShortcuts();
|
216
219
|
_get(_getPrototypeOf(NestedRows.prototype), "disablePlugin", this).call(this);
|
217
220
|
}
|
218
221
|
|
@@ -236,6 +239,48 @@ var NestedRows = /*#__PURE__*/function (_BasePlugin) {
|
|
236
239
|
_get(_getPrototypeOf(NestedRows.prototype), "updatePlugin", this).call(this);
|
237
240
|
}
|
238
241
|
|
242
|
+
/**
|
243
|
+
* Register shortcuts responsible for toggling collapsible columns.
|
244
|
+
*
|
245
|
+
* @private
|
246
|
+
*/
|
247
|
+
}, {
|
248
|
+
key: "registerShortcuts",
|
249
|
+
value: function registerShortcuts() {
|
250
|
+
var _this3 = this;
|
251
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
252
|
+
keys: [['Enter']],
|
253
|
+
callback: function callback() {
|
254
|
+
var _this3$hot$getSelecte = _this3.hot.getSelectedRangeLast(),
|
255
|
+
highlight = _this3$hot$getSelecte.highlight;
|
256
|
+
if (highlight.col === -1 && highlight.row >= 0) {
|
257
|
+
var row = _this3.collapsingUI.translateTrimmedRow(highlight.row);
|
258
|
+
if (_this3.collapsingUI.areChildrenCollapsed(row)) {
|
259
|
+
_this3.collapsingUI.expandChildren(row);
|
260
|
+
} else {
|
261
|
+
_this3.collapsingUI.collapseChildren(row);
|
262
|
+
}
|
263
|
+
}
|
264
|
+
},
|
265
|
+
runOnlyIf: function runOnlyIf() {
|
266
|
+
var _this3$hot$getSelecte2;
|
267
|
+
return (_this3$hot$getSelecte2 = _this3.hot.getSelectedRangeLast()) === null || _this3$hot$getSelecte2 === void 0 ? void 0 : _this3$hot$getSelecte2.highlight.isHeader();
|
268
|
+
},
|
269
|
+
group: SHORTCUTS_GROUP
|
270
|
+
});
|
271
|
+
}
|
272
|
+
|
273
|
+
/**
|
274
|
+
* Unregister shortcuts responsible for toggling collapsible columns.
|
275
|
+
*
|
276
|
+
* @private
|
277
|
+
*/
|
278
|
+
}, {
|
279
|
+
key: "unregisterShortcuts",
|
280
|
+
value: function unregisterShortcuts() {
|
281
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
282
|
+
}
|
283
|
+
|
239
284
|
/**
|
240
285
|
* `beforeRowMove` hook callback.
|
241
286
|
*
|
@@ -415,15 +460,15 @@ var NestedRows = /*#__PURE__*/function (_BasePlugin) {
|
|
415
460
|
}, {
|
416
461
|
key: "onAfterRemoveRow",
|
417
462
|
value: function onAfterRemoveRow(index, amount, logicRows, source) {
|
418
|
-
var
|
463
|
+
var _this4 = this;
|
419
464
|
if (source === this.pluginName) {
|
420
465
|
return;
|
421
466
|
}
|
422
467
|
var priv = privatePool.get(this);
|
423
468
|
setTimeout(function () {
|
424
469
|
priv.skipRender = null;
|
425
|
-
|
426
|
-
|
470
|
+
_this4.headersUI.updateRowHeaderWidth();
|
471
|
+
_this4.collapsingUI.collapsedRowsStash.applyStash();
|
427
472
|
}, 0);
|
428
473
|
}
|
429
474
|
|
@@ -439,17 +484,17 @@ var NestedRows = /*#__PURE__*/function (_BasePlugin) {
|
|
439
484
|
}, {
|
440
485
|
key: "onBeforeRemoveRow",
|
441
486
|
value: function onBeforeRemoveRow(index, amount, physicalRows) {
|
442
|
-
var
|
487
|
+
var _this5 = this;
|
443
488
|
var modifiedPhysicalRows = Array.from(physicalRows.reduce(function (removedRows, physicalIndex) {
|
444
|
-
if (
|
445
|
-
var children =
|
489
|
+
if (_this5.dataManager.isParent(physicalIndex)) {
|
490
|
+
var children = _this5.dataManager.getDataObject(physicalIndex).__children;
|
446
491
|
|
447
492
|
// Preserve a parent in the list of removed rows.
|
448
493
|
removedRows.add(physicalIndex);
|
449
494
|
if (Array.isArray(children)) {
|
450
495
|
// Add a children to the list of removed rows.
|
451
496
|
children.forEach(function (child) {
|
452
|
-
return removedRows.add(
|
497
|
+
return removedRows.add(_this5.dataManager.getRowIndex(child));
|
453
498
|
});
|
454
499
|
}
|
455
500
|
return removedRows;
|
@@ -55,6 +55,7 @@ import { TrimmingMap } from "../../translations/index.mjs";
|
|
55
55
|
import RowMoveController from "./utils/rowMoveController.mjs";
|
56
56
|
export var PLUGIN_KEY = 'nestedRows';
|
57
57
|
export var PLUGIN_PRIORITY = 300;
|
58
|
+
var SHORTCUTS_GROUP = PLUGIN_KEY;
|
58
59
|
var privatePool = new WeakMap();
|
59
60
|
|
60
61
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
@@ -196,6 +197,7 @@ export var NestedRows = /*#__PURE__*/function (_BasePlugin) {
|
|
196
197
|
this.addHook('beforeUpdateData', function (data) {
|
197
198
|
return _this2.onBeforeLoadData(data);
|
198
199
|
});
|
200
|
+
this.registerShortcuts();
|
199
201
|
_get(_getPrototypeOf(NestedRows.prototype), "enablePlugin", this).call(this);
|
200
202
|
}
|
201
203
|
|
@@ -206,6 +208,7 @@ export var NestedRows = /*#__PURE__*/function (_BasePlugin) {
|
|
206
208
|
key: "disablePlugin",
|
207
209
|
value: function disablePlugin() {
|
208
210
|
this.hot.rowIndexMapper.unregisterMap('nestedRows');
|
211
|
+
this.unregisterShortcuts();
|
209
212
|
_get(_getPrototypeOf(NestedRows.prototype), "disablePlugin", this).call(this);
|
210
213
|
}
|
211
214
|
|
@@ -229,6 +232,48 @@ export var NestedRows = /*#__PURE__*/function (_BasePlugin) {
|
|
229
232
|
_get(_getPrototypeOf(NestedRows.prototype), "updatePlugin", this).call(this);
|
230
233
|
}
|
231
234
|
|
235
|
+
/**
|
236
|
+
* Register shortcuts responsible for toggling collapsible columns.
|
237
|
+
*
|
238
|
+
* @private
|
239
|
+
*/
|
240
|
+
}, {
|
241
|
+
key: "registerShortcuts",
|
242
|
+
value: function registerShortcuts() {
|
243
|
+
var _this3 = this;
|
244
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
245
|
+
keys: [['Enter']],
|
246
|
+
callback: function callback() {
|
247
|
+
var _this3$hot$getSelecte = _this3.hot.getSelectedRangeLast(),
|
248
|
+
highlight = _this3$hot$getSelecte.highlight;
|
249
|
+
if (highlight.col === -1 && highlight.row >= 0) {
|
250
|
+
var row = _this3.collapsingUI.translateTrimmedRow(highlight.row);
|
251
|
+
if (_this3.collapsingUI.areChildrenCollapsed(row)) {
|
252
|
+
_this3.collapsingUI.expandChildren(row);
|
253
|
+
} else {
|
254
|
+
_this3.collapsingUI.collapseChildren(row);
|
255
|
+
}
|
256
|
+
}
|
257
|
+
},
|
258
|
+
runOnlyIf: function runOnlyIf() {
|
259
|
+
var _this3$hot$getSelecte2;
|
260
|
+
return (_this3$hot$getSelecte2 = _this3.hot.getSelectedRangeLast()) === null || _this3$hot$getSelecte2 === void 0 ? void 0 : _this3$hot$getSelecte2.highlight.isHeader();
|
261
|
+
},
|
262
|
+
group: SHORTCUTS_GROUP
|
263
|
+
});
|
264
|
+
}
|
265
|
+
|
266
|
+
/**
|
267
|
+
* Unregister shortcuts responsible for toggling collapsible columns.
|
268
|
+
*
|
269
|
+
* @private
|
270
|
+
*/
|
271
|
+
}, {
|
272
|
+
key: "unregisterShortcuts",
|
273
|
+
value: function unregisterShortcuts() {
|
274
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
275
|
+
}
|
276
|
+
|
232
277
|
/**
|
233
278
|
* `beforeRowMove` hook callback.
|
234
279
|
*
|
@@ -408,15 +453,15 @@ export var NestedRows = /*#__PURE__*/function (_BasePlugin) {
|
|
408
453
|
}, {
|
409
454
|
key: "onAfterRemoveRow",
|
410
455
|
value: function onAfterRemoveRow(index, amount, logicRows, source) {
|
411
|
-
var
|
456
|
+
var _this4 = this;
|
412
457
|
if (source === this.pluginName) {
|
413
458
|
return;
|
414
459
|
}
|
415
460
|
var priv = privatePool.get(this);
|
416
461
|
setTimeout(function () {
|
417
462
|
priv.skipRender = null;
|
418
|
-
|
419
|
-
|
463
|
+
_this4.headersUI.updateRowHeaderWidth();
|
464
|
+
_this4.collapsingUI.collapsedRowsStash.applyStash();
|
420
465
|
}, 0);
|
421
466
|
}
|
422
467
|
|
@@ -432,17 +477,17 @@ export var NestedRows = /*#__PURE__*/function (_BasePlugin) {
|
|
432
477
|
}, {
|
433
478
|
key: "onBeforeRemoveRow",
|
434
479
|
value: function onBeforeRemoveRow(index, amount, physicalRows) {
|
435
|
-
var
|
480
|
+
var _this5 = this;
|
436
481
|
var modifiedPhysicalRows = Array.from(physicalRows.reduce(function (removedRows, physicalIndex) {
|
437
|
-
if (
|
438
|
-
var children =
|
482
|
+
if (_this5.dataManager.isParent(physicalIndex)) {
|
483
|
+
var children = _this5.dataManager.getDataObject(physicalIndex).__children;
|
439
484
|
|
440
485
|
// Preserve a parent in the list of removed rows.
|
441
486
|
removedRows.add(physicalIndex);
|
442
487
|
if (Array.isArray(children)) {
|
443
488
|
// Add a children to the list of removed rows.
|
444
489
|
children.forEach(function (child) {
|
445
|
-
return removedRows.add(
|
490
|
+
return removedRows.add(_this5.dataManager.getRowIndex(child));
|
446
491
|
});
|
447
492
|
}
|
448
493
|
return removedRows;
|
@@ -16,7 +16,7 @@ var _baseRenderer = require("../baseRenderer");
|
|
16
16
|
var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
17
17
|
var _element = require("../../helpers/dom/element");
|
18
18
|
var _mixed = require("../../helpers/mixed");
|
19
|
-
var
|
19
|
+
var _shortcutContexts = require("../../shortcutContexts");
|
20
20
|
var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
|
21
21
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
22
22
|
var isListeningKeyDownEvent = new WeakMap();
|
@@ -163,7 +163,7 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
163
163
|
return !areSelectedCheckboxCells(); // False blocks next action associated with the keyboard shortcut.
|
164
164
|
},
|
165
165
|
|
166
|
-
relativeToGroup:
|
166
|
+
relativeToGroup: _shortcutContexts.EDITOR_EDIT_GROUP,
|
167
167
|
position: 'before'
|
168
168
|
}], config);
|
169
169
|
}
|
@@ -11,7 +11,7 @@ import { baseRenderer } from "../baseRenderer/index.mjs";
|
|
11
11
|
import EventManager from "../../eventManager.mjs";
|
12
12
|
import { empty, addClass } from "../../helpers/dom/element.mjs";
|
13
13
|
import { isEmpty, stringify } from "../../helpers/mixed.mjs";
|
14
|
-
import { SHORTCUTS_GROUP_EDITOR } from "../../
|
14
|
+
import { EDITOR_EDIT_GROUP as SHORTCUTS_GROUP_EDITOR } from "../../shortcutContexts/index.mjs";
|
15
15
|
import Hooks from "../../pluginHooks.mjs";
|
16
16
|
var isListeningKeyDownEvent = new WeakMap();
|
17
17
|
var isCheckboxListenerAdded = new WeakMap();
|