handsontable 0.0.0-next-ea1e0b3-20230620 → 0.0.0-next-acb8c02-20230620
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/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 +12315 -9533
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +107 -107
- package/dist/handsontable.js +15396 -12614
- 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 +1 -1
- package/helpers/mixed.mjs +1 -1
- 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/contextMenu/utils.js +25 -0
- package/plugins/contextMenu/utils.mjs +24 -0
- package/plugins/copyPaste/copyPaste.js +5 -1
- package/plugins/copyPaste/copyPaste.mjs +5 -1
- package/plugins/customBorders/customBorders.js +18 -53
- package/plugins/customBorders/customBorders.mjs +19 -54
- package/plugins/dropdownMenu/dropdownMenu.js +79 -25
- package/plugins/dropdownMenu/dropdownMenu.mjs +79 -25
- package/plugins/manualColumnResize/manualColumnResize.js +5 -36
- package/plugins/manualColumnResize/manualColumnResize.mjs +5 -36
- package/plugins/manualRowResize/manualRowResize.js +9 -40
- package/plugins/manualRowResize/manualRowResize.mjs +9 -40
- 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 +244 -0
- package/shortcutContexts/grid.mjs +240 -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/tableView.js +58 -9
- package/tableView.mjs +58 -9
- 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
@@ -79,7 +79,6 @@ export var ManualRowResize = /*#__PURE__*/function (_BasePlugin) {
|
|
79
79
|
_this.guide = rootDocument.createElement('DIV');
|
80
80
|
_this.eventManager = new EventManager(_assertThisInitialized(_this));
|
81
81
|
_this.pressed = null;
|
82
|
-
_this.isTriggeredByRMB = false;
|
83
82
|
_this.dblclick = 0;
|
84
83
|
_this.autoresizeTimeout = null;
|
85
84
|
|
@@ -401,11 +400,6 @@ export var ManualRowResize = /*#__PURE__*/function (_BasePlugin) {
|
|
401
400
|
if (isDetached(event.target)) {
|
402
401
|
return;
|
403
402
|
}
|
404
|
-
|
405
|
-
// A "mouseover" action is triggered right after executing "contextmenu" event. It should be ignored.
|
406
|
-
if (this.isTriggeredByRMB === true) {
|
407
|
-
return;
|
408
|
-
}
|
409
403
|
if (this.checkIfRowHeader(event.target)) {
|
410
404
|
var th = this.getClosestTHParent(event.target);
|
411
405
|
if (th) {
|
@@ -552,28 +546,6 @@ export var ManualRowResize = /*#__PURE__*/function (_BasePlugin) {
|
|
552
546
|
}
|
553
547
|
}
|
554
548
|
|
555
|
-
/**
|
556
|
-
* Callback for "contextmenu" event triggered on element showing move handle. It removes handle and guide elements.
|
557
|
-
*
|
558
|
-
* @private
|
559
|
-
*/
|
560
|
-
}, {
|
561
|
-
key: "onContextMenu",
|
562
|
-
value: function onContextMenu() {
|
563
|
-
var _this8 = this;
|
564
|
-
this.hideHandleAndGuide();
|
565
|
-
this.hot.rootElement.removeChild(this.handle);
|
566
|
-
this.hot.rootElement.removeChild(this.guide);
|
567
|
-
this.pressed = false;
|
568
|
-
this.isTriggeredByRMB = true;
|
569
|
-
|
570
|
-
// There is thrown "mouseover" event right after opening a context menu. This flag inform that handle
|
571
|
-
// shouldn't be drawn just after removing it.
|
572
|
-
this.hot._registerImmediate(function () {
|
573
|
-
_this8.isTriggeredByRMB = false;
|
574
|
-
});
|
575
|
-
}
|
576
|
-
|
577
549
|
/**
|
578
550
|
* Binds the mouse events.
|
579
551
|
*
|
@@ -582,24 +554,21 @@ export var ManualRowResize = /*#__PURE__*/function (_BasePlugin) {
|
|
582
554
|
}, {
|
583
555
|
key: "bindEvents",
|
584
556
|
value: function bindEvents() {
|
585
|
-
var
|
557
|
+
var _this8 = this;
|
586
558
|
var _this$hot = this.hot,
|
587
559
|
rootElement = _this$hot.rootElement,
|
588
560
|
rootWindow = _this$hot.rootWindow;
|
589
561
|
this.eventManager.addEventListener(rootElement, 'mouseover', function (e) {
|
590
|
-
return
|
562
|
+
return _this8.onMouseOver(e);
|
591
563
|
});
|
592
564
|
this.eventManager.addEventListener(rootElement, 'mousedown', function (e) {
|
593
|
-
return
|
565
|
+
return _this8.onMouseDown(e);
|
594
566
|
});
|
595
567
|
this.eventManager.addEventListener(rootWindow, 'mousemove', function (e) {
|
596
|
-
return
|
568
|
+
return _this8.onMouseMove(e);
|
597
569
|
});
|
598
570
|
this.eventManager.addEventListener(rootWindow, 'mouseup', function () {
|
599
|
-
return
|
600
|
-
});
|
601
|
-
this.eventManager.addEventListener(this.handle, 'contextmenu', function () {
|
602
|
-
return _this9.onContextMenu();
|
571
|
+
return _this8.onMouseUp();
|
603
572
|
});
|
604
573
|
}
|
605
574
|
|
@@ -633,23 +602,23 @@ export var ManualRowResize = /*#__PURE__*/function (_BasePlugin) {
|
|
633
602
|
}, {
|
634
603
|
key: "onMapInit",
|
635
604
|
value: function onMapInit() {
|
636
|
-
var
|
605
|
+
var _this9 = this;
|
637
606
|
var priv = privatePool.get(this);
|
638
607
|
var initialSetting = this.hot.getSettings()[PLUGIN_KEY];
|
639
608
|
var loadedManualRowHeights = this.loadManualRowHeights();
|
640
609
|
this.hot.batchExecution(function () {
|
641
610
|
if (typeof loadedManualRowHeights !== 'undefined') {
|
642
611
|
loadedManualRowHeights.forEach(function (height, index) {
|
643
|
-
|
612
|
+
_this9.rowHeightsMap.setValueAtIndex(index, height);
|
644
613
|
});
|
645
614
|
} else if (Array.isArray(initialSetting)) {
|
646
615
|
initialSetting.forEach(function (height, index) {
|
647
|
-
|
616
|
+
_this9.rowHeightsMap.setValueAtIndex(index, height);
|
648
617
|
});
|
649
618
|
priv.config = initialSetting;
|
650
619
|
} else if (initialSetting === true && Array.isArray(priv.config)) {
|
651
620
|
priv.config.forEach(function (height, index) {
|
652
|
-
|
621
|
+
_this9.rowHeightsMap.setValueAtIndex(index, height);
|
653
622
|
});
|
654
623
|
}
|
655
624
|
}, true);
|
@@ -243,9 +243,6 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
243
243
|
this.addHook('afterDrawSelection', function () {
|
244
244
|
return _this2.onAfterDrawSelection.apply(_this2, arguments);
|
245
245
|
});
|
246
|
-
this.addHook('beforeRemoveCellClassNames', function () {
|
247
|
-
return _this2.onBeforeRemoveCellClassNames.apply(_this2, arguments);
|
248
|
-
});
|
249
246
|
this.addHook('beforeUndoStackChange', function (action, source) {
|
250
247
|
if (source === 'MergeCells') {
|
251
248
|
return false;
|
@@ -662,8 +659,11 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
662
659
|
gridContext.addShortcut({
|
663
660
|
keys: [['Control', 'm']],
|
664
661
|
callback: function callback() {
|
665
|
-
_this7.
|
666
|
-
|
662
|
+
var range = _this7.hot.getSelectedRangeLast();
|
663
|
+
if (range && !range.isSingleHeader()) {
|
664
|
+
_this7.toggleMerge(range);
|
665
|
+
_this7.hot.render();
|
666
|
+
}
|
667
667
|
},
|
668
668
|
runOnlyIf: function runOnlyIf(event) {
|
669
669
|
return !event.altKey;
|
@@ -1340,19 +1340,6 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1340
1340
|
}
|
1341
1341
|
return this.selectionCalculations.getSelectedMergedCellClassName(currentRow, currentColumn, cornersOfSelection, layerLevel);
|
1342
1342
|
}
|
1343
|
-
|
1344
|
-
/**
|
1345
|
-
* `beforeRemoveCellClassNames` hook callback. Used to remove additional class name from all cells in the table.
|
1346
|
-
*
|
1347
|
-
* @private
|
1348
|
-
* @returns {string[]} An `Array` of `String`s. Each of these strings will act like class names to be removed from
|
1349
|
-
* all the cells in the table.
|
1350
|
-
*/
|
1351
|
-
}, {
|
1352
|
-
key: "onBeforeRemoveCellClassNames",
|
1353
|
-
value: function onBeforeRemoveCellClassNames() {
|
1354
|
-
return this.selectionCalculations.getSelectedMergedCellClassNameToRemove();
|
1355
|
-
}
|
1356
1343
|
}], [{
|
1357
1344
|
key: "PLUGIN_KEY",
|
1358
1345
|
get: function get() {
|
@@ -236,9 +236,6 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
236
236
|
this.addHook('afterDrawSelection', function () {
|
237
237
|
return _this2.onAfterDrawSelection.apply(_this2, arguments);
|
238
238
|
});
|
239
|
-
this.addHook('beforeRemoveCellClassNames', function () {
|
240
|
-
return _this2.onBeforeRemoveCellClassNames.apply(_this2, arguments);
|
241
|
-
});
|
242
239
|
this.addHook('beforeUndoStackChange', function (action, source) {
|
243
240
|
if (source === 'MergeCells') {
|
244
241
|
return false;
|
@@ -655,8 +652,11 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
655
652
|
gridContext.addShortcut({
|
656
653
|
keys: [['Control', 'm']],
|
657
654
|
callback: function callback() {
|
658
|
-
_this7.
|
659
|
-
|
655
|
+
var range = _this7.hot.getSelectedRangeLast();
|
656
|
+
if (range && !range.isSingleHeader()) {
|
657
|
+
_this7.toggleMerge(range);
|
658
|
+
_this7.hot.render();
|
659
|
+
}
|
660
660
|
},
|
661
661
|
runOnlyIf: function runOnlyIf(event) {
|
662
662
|
return !event.altKey;
|
@@ -1333,19 +1333,6 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1333
1333
|
}
|
1334
1334
|
return this.selectionCalculations.getSelectedMergedCellClassName(currentRow, currentColumn, cornersOfSelection, layerLevel);
|
1335
1335
|
}
|
1336
|
-
|
1337
|
-
/**
|
1338
|
-
* `beforeRemoveCellClassNames` hook callback. Used to remove additional class name from all cells in the table.
|
1339
|
-
*
|
1340
|
-
* @private
|
1341
|
-
* @returns {string[]} An `Array` of `String`s. Each of these strings will act like class names to be removed from
|
1342
|
-
* all the cells in the table.
|
1343
|
-
*/
|
1344
|
-
}, {
|
1345
|
-
key: "onBeforeRemoveCellClassNames",
|
1346
|
-
value: function onBeforeRemoveCellClassNames() {
|
1347
|
-
return this.selectionCalculations.getSelectedMergedCellClassNameToRemove();
|
1348
|
-
}
|
1349
1336
|
}], [{
|
1350
1337
|
key: "PLUGIN_KEY",
|
1351
1338
|
get: function get() {
|
@@ -16,8 +16,8 @@ require("core-js/modules/es.string.iterator.js");
|
|
16
16
|
require("core-js/modules/web.dom-collections.iterator.js");
|
17
17
|
exports.__esModule = true;
|
18
18
|
exports.PLUGIN_PRIORITY = exports.PLUGIN_KEY = exports.MultiColumnSorting = void 0;
|
19
|
-
require("core-js/modules/es.array.concat.js");
|
20
19
|
require("core-js/modules/es.array.sort.js");
|
20
|
+
require("core-js/modules/es.array.concat.js");
|
21
21
|
require("core-js/modules/es.object.set-prototype-of.js");
|
22
22
|
require("core-js/modules/es.object.get-prototype-of.js");
|
23
23
|
var _columnSorting = require("../columnSorting");
|
@@ -45,8 +45,8 @@ var PLUGIN_KEY = 'multiColumnSorting';
|
|
45
45
|
exports.PLUGIN_KEY = PLUGIN_KEY;
|
46
46
|
var PLUGIN_PRIORITY = 170;
|
47
47
|
exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
|
48
|
-
var APPEND_COLUMN_CONFIG_STRATEGY = 'append';
|
49
48
|
var CONFLICTED_PLUGIN_KEY = 'columnSorting';
|
49
|
+
var SHORTCUTS_GROUP = PLUGIN_KEY;
|
50
50
|
(0, _sortService.registerRootComparator)(PLUGIN_KEY, _rootComparator.rootComparator);
|
51
51
|
|
52
52
|
/**
|
@@ -151,6 +151,45 @@ var MultiColumnSorting = /*#__PURE__*/function (_ColumnSorting) {
|
|
151
151
|
_get(_getPrototypeOf(MultiColumnSorting.prototype), "disablePlugin", this).call(this);
|
152
152
|
}
|
153
153
|
|
154
|
+
/**
|
155
|
+
* Register shortcuts responsible for toggling column sorting functionality.
|
156
|
+
*
|
157
|
+
* @private
|
158
|
+
*/
|
159
|
+
}, {
|
160
|
+
key: "registerShortcuts",
|
161
|
+
value: function registerShortcuts() {
|
162
|
+
var _this2 = this;
|
163
|
+
_get(_getPrototypeOf(MultiColumnSorting.prototype), "registerShortcuts", this).call(this);
|
164
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
165
|
+
keys: [['Control/Meta', 'Enter']],
|
166
|
+
callback: function callback() {
|
167
|
+
var _this2$hot$getSelecte = _this2.hot.getSelectedRangeLast(),
|
168
|
+
highlight = _this2$hot$getSelecte.highlight;
|
169
|
+
if (highlight.row === -1 && highlight.col >= 0) {
|
170
|
+
_this2.sort(_this2.getNextSortConfig(highlight.col, _columnSorting.APPEND_COLUMN_CONFIG_STRATEGY));
|
171
|
+
}
|
172
|
+
},
|
173
|
+
runOnlyIf: function runOnlyIf() {
|
174
|
+
var _this2$hot$getSelecte2;
|
175
|
+
return (_this2$hot$getSelecte2 = _this2.hot.getSelectedRangeLast()) === null || _this2$hot$getSelecte2 === void 0 ? void 0 : _this2$hot$getSelecte2.highlight.isHeader();
|
176
|
+
},
|
177
|
+
group: SHORTCUTS_GROUP
|
178
|
+
});
|
179
|
+
}
|
180
|
+
|
181
|
+
/**
|
182
|
+
* Unregister shortcuts responsible for toggling column sorting functionality.
|
183
|
+
*
|
184
|
+
* @private
|
185
|
+
*/
|
186
|
+
}, {
|
187
|
+
key: "unregisterShortcuts",
|
188
|
+
value: function unregisterShortcuts() {
|
189
|
+
_get(_getPrototypeOf(MultiColumnSorting.prototype), "unregisterShortcuts", this).call(this);
|
190
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
191
|
+
}
|
192
|
+
|
154
193
|
/**
|
155
194
|
* Sorts the table by chosen columns and orders.
|
156
195
|
*
|
@@ -319,7 +358,7 @@ var MultiColumnSorting = /*#__PURE__*/function (_ColumnSorting) {
|
|
319
358
|
if (this.hot.getShortcutManager().isCtrlPressed()) {
|
320
359
|
this.hot.deselectCell();
|
321
360
|
this.hot.selectColumns(coords.col);
|
322
|
-
this.sort(this.getNextSortConfig(coords.col, APPEND_COLUMN_CONFIG_STRATEGY));
|
361
|
+
this.sort(this.getNextSortConfig(coords.col, _columnSorting.APPEND_COLUMN_CONFIG_STRATEGY));
|
323
362
|
} else {
|
324
363
|
this.sort(this.getColumnNextConfig(coords.col));
|
325
364
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
2
|
-
import "core-js/modules/es.array.concat.js";
|
3
2
|
import "core-js/modules/es.array.sort.js";
|
3
|
+
import "core-js/modules/es.array.concat.js";
|
4
4
|
import "core-js/modules/es.object.set-prototype-of.js";
|
5
5
|
import "core-js/modules/es.object.get-prototype-of.js";
|
6
6
|
import "core-js/modules/es.object.to-string.js";
|
@@ -30,7 +30,7 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
|
|
30
30
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
31
31
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
32
32
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
33
|
-
import { ColumnSorting } from "../columnSorting/index.mjs";
|
33
|
+
import { APPEND_COLUMN_CONFIG_STRATEGY, ColumnSorting } from "../columnSorting/index.mjs";
|
34
34
|
import { registerRootComparator } from "../columnSorting/sortService/index.mjs";
|
35
35
|
import { wasHeaderClickedProperly } from "../columnSorting/utils.mjs";
|
36
36
|
import { addClass, removeClass } from "../../helpers/dom/element.mjs";
|
@@ -39,8 +39,8 @@ import { warnAboutPluginsConflict } from "./utils.mjs";
|
|
39
39
|
import { getClassesToAdd, getClassesToRemove } from "./domHelpers.mjs";
|
40
40
|
export var PLUGIN_KEY = 'multiColumnSorting';
|
41
41
|
export var PLUGIN_PRIORITY = 170;
|
42
|
-
var APPEND_COLUMN_CONFIG_STRATEGY = 'append';
|
43
42
|
var CONFLICTED_PLUGIN_KEY = 'columnSorting';
|
43
|
+
var SHORTCUTS_GROUP = PLUGIN_KEY;
|
44
44
|
registerRootComparator(PLUGIN_KEY, rootComparator);
|
45
45
|
|
46
46
|
/**
|
@@ -145,6 +145,45 @@ export var MultiColumnSorting = /*#__PURE__*/function (_ColumnSorting) {
|
|
145
145
|
_get(_getPrototypeOf(MultiColumnSorting.prototype), "disablePlugin", this).call(this);
|
146
146
|
}
|
147
147
|
|
148
|
+
/**
|
149
|
+
* Register shortcuts responsible for toggling column sorting functionality.
|
150
|
+
*
|
151
|
+
* @private
|
152
|
+
*/
|
153
|
+
}, {
|
154
|
+
key: "registerShortcuts",
|
155
|
+
value: function registerShortcuts() {
|
156
|
+
var _this2 = this;
|
157
|
+
_get(_getPrototypeOf(MultiColumnSorting.prototype), "registerShortcuts", this).call(this);
|
158
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
159
|
+
keys: [['Control/Meta', 'Enter']],
|
160
|
+
callback: function callback() {
|
161
|
+
var _this2$hot$getSelecte = _this2.hot.getSelectedRangeLast(),
|
162
|
+
highlight = _this2$hot$getSelecte.highlight;
|
163
|
+
if (highlight.row === -1 && highlight.col >= 0) {
|
164
|
+
_this2.sort(_this2.getNextSortConfig(highlight.col, APPEND_COLUMN_CONFIG_STRATEGY));
|
165
|
+
}
|
166
|
+
},
|
167
|
+
runOnlyIf: function runOnlyIf() {
|
168
|
+
var _this2$hot$getSelecte2;
|
169
|
+
return (_this2$hot$getSelecte2 = _this2.hot.getSelectedRangeLast()) === null || _this2$hot$getSelecte2 === void 0 ? void 0 : _this2$hot$getSelecte2.highlight.isHeader();
|
170
|
+
},
|
171
|
+
group: SHORTCUTS_GROUP
|
172
|
+
});
|
173
|
+
}
|
174
|
+
|
175
|
+
/**
|
176
|
+
* Unregister shortcuts responsible for toggling column sorting functionality.
|
177
|
+
*
|
178
|
+
* @private
|
179
|
+
*/
|
180
|
+
}, {
|
181
|
+
key: "unregisterShortcuts",
|
182
|
+
value: function unregisterShortcuts() {
|
183
|
+
_get(_getPrototypeOf(MultiColumnSorting.prototype), "unregisterShortcuts", this).call(this);
|
184
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
185
|
+
}
|
186
|
+
|
148
187
|
/**
|
149
188
|
* Sorts the table by chosen columns and orders.
|
150
189
|
*
|
@@ -25,8 +25,8 @@ require("core-js/modules/es.weak-map.js");
|
|
25
25
|
require("core-js/modules/web.dom-collections.iterator.js");
|
26
26
|
var _element = require("../../helpers/dom/element");
|
27
27
|
var _number = require("../../helpers/number");
|
28
|
-
var _event = require("../../helpers/dom/event");
|
29
28
|
var _templateLiteralTag = require("../../helpers/templateLiteralTag");
|
29
|
+
var _event = require("../../helpers/dom/event");
|
30
30
|
var _console = require("../../helpers/console");
|
31
31
|
var _selection = require("../../selection");
|
32
32
|
var _base = require("../base");
|
@@ -201,6 +201,12 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
201
201
|
this.addHook('beforeOnCellMouseOver', function () {
|
202
202
|
return _this2.onBeforeOnCellMouseOver.apply(_this2, arguments);
|
203
203
|
});
|
204
|
+
this.addHook('modifyTransformStart', function () {
|
205
|
+
return _this2.onModifyTransformStart.apply(_this2, arguments);
|
206
|
+
});
|
207
|
+
this.addHook('afterSelection', function () {
|
208
|
+
return _this2.updateFocusHighlightPosition();
|
209
|
+
});
|
204
210
|
this.addHook('afterGetColumnHeaderRenderers', function (array) {
|
205
211
|
return _this2.onAfterGetColumnHeaderRenderers(array);
|
206
212
|
});
|
@@ -216,9 +222,18 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
216
222
|
this.addHook('beforeCopy', function () {
|
217
223
|
return _this2.onBeforeCopy.apply(_this2, arguments);
|
218
224
|
});
|
225
|
+
this.addHook('beforeSelectColumns', function () {
|
226
|
+
return _this2.onBeforeSelectColumns.apply(_this2, arguments);
|
227
|
+
});
|
219
228
|
this.addHook('afterViewportColumnCalculatorOverride', function () {
|
220
229
|
return _this2.onAfterViewportColumnCalculatorOverride.apply(_this2, arguments);
|
221
230
|
});
|
231
|
+
this.hot.columnIndexMapper.addLocalHook('cacheUpdated', function () {
|
232
|
+
return _this2.updateFocusHighlightPosition();
|
233
|
+
});
|
234
|
+
this.hot.rowIndexMapper.addLocalHook('cacheUpdated', function () {
|
235
|
+
return _this2.updateFocusHighlightPosition();
|
236
|
+
});
|
222
237
|
_get(_getPrototypeOf(NestedHeaders.prototype), "enablePlugin", this).call(this);
|
223
238
|
this.updatePlugin(); // @TODO: Workaround for broken plugin initialization abstraction.
|
224
239
|
}
|
@@ -440,6 +455,34 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
440
455
|
return this.hot.getColHeader(visualColumnIndex, headerLevel);
|
441
456
|
}
|
442
457
|
|
458
|
+
/**
|
459
|
+
* Updates the selection focus highlight position to point to the nested header root element (TH)
|
460
|
+
* even when the logical coordinates point in-between the header.
|
461
|
+
*
|
462
|
+
* @private
|
463
|
+
*/
|
464
|
+
}, {
|
465
|
+
key: "updateFocusHighlightPosition",
|
466
|
+
value: function updateFocusHighlightPosition() {
|
467
|
+
var _this$hot;
|
468
|
+
var selection = (_this$hot = this.hot) === null || _this$hot === void 0 ? void 0 : _this$hot.getSelectedRangeLast();
|
469
|
+
if (!selection) {
|
470
|
+
return;
|
471
|
+
}
|
472
|
+
var highlight = selection.highlight;
|
473
|
+
var isNestedHeadersRange = highlight.isHeader() && highlight.col >= 0;
|
474
|
+
if (isNestedHeadersRange) {
|
475
|
+
var columnIndex = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(highlight.row, highlight.col);
|
476
|
+
var focusHighlight = this.hot.selection.highlight.getFocus();
|
477
|
+
|
478
|
+
// Correct the highlight/focus selection to highlight the correct TH element
|
479
|
+
focusHighlight.visualCellRange.highlight.col = columnIndex;
|
480
|
+
focusHighlight.visualCellRange.from.col = columnIndex;
|
481
|
+
focusHighlight.visualCellRange.to.col = columnIndex;
|
482
|
+
focusHighlight.commit();
|
483
|
+
}
|
484
|
+
}
|
485
|
+
|
443
486
|
/**
|
444
487
|
* Allows to control which header DOM element will be used to highlight.
|
445
488
|
*
|
@@ -456,8 +499,7 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
456
499
|
if (!headerNodeData) {
|
457
500
|
return visualColumn;
|
458
501
|
}
|
459
|
-
var
|
460
|
-
columnCursor = highlightMeta.columnCursor,
|
502
|
+
var columnCursor = highlightMeta.columnCursor,
|
461
503
|
selectionType = highlightMeta.selectionType,
|
462
504
|
selectionWidth = highlightMeta.selectionWidth;
|
463
505
|
var _classPrivateFieldGet4 = _classPrivateFieldGet(this, _stateManager).getHeaderSettings(headerLevel, visualColumn),
|
@@ -469,8 +511,8 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
469
511
|
}
|
470
512
|
} else if (selectionType === _selection.ACTIVE_HEADER_TYPE) {
|
471
513
|
if (colspan > selectionWidth - columnCursor || !isRoot) {
|
472
|
-
//
|
473
|
-
|
514
|
+
// Prevents adding any CSS class names to the TH element
|
515
|
+
return null;
|
474
516
|
}
|
475
517
|
}
|
476
518
|
return visualColumn;
|
@@ -601,7 +643,7 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
601
643
|
}, {
|
602
644
|
key: "onBeforeOnCellMouseOver",
|
603
645
|
value: function onBeforeOnCellMouseOver(event, coords, TD, controller) {
|
604
|
-
var _this$hot;
|
646
|
+
var _this$hot$selection;
|
605
647
|
if (!this.hot.view.isMouseDown()) {
|
606
648
|
return;
|
607
649
|
}
|
@@ -622,13 +664,93 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
622
664
|
controller.cell = true;
|
623
665
|
var columnsToSelect = [];
|
624
666
|
if (coords.col < from.col) {
|
625
|
-
columnsToSelect.push(bottomEndCoords.col, columnIndex);
|
667
|
+
columnsToSelect.push(bottomEndCoords.col, columnIndex, coords.row);
|
626
668
|
} else if (coords.col > from.col) {
|
627
|
-
columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1);
|
669
|
+
columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1, coords.row);
|
628
670
|
} else {
|
629
|
-
columnsToSelect.push(columnIndex, columnIndex + origColspan - 1);
|
671
|
+
columnsToSelect.push(columnIndex, columnIndex + origColspan - 1, coords.row);
|
672
|
+
}
|
673
|
+
(_this$hot$selection = this.hot.selection).selectColumns.apply(_this$hot$selection, columnsToSelect);
|
674
|
+
}
|
675
|
+
|
676
|
+
/**
|
677
|
+
* `modifyTransformStart` hook is called every time the keyboard navigation is used.
|
678
|
+
*
|
679
|
+
* @private
|
680
|
+
* @param {object} delta The transformation delta.
|
681
|
+
*/
|
682
|
+
}, {
|
683
|
+
key: "onModifyTransformStart",
|
684
|
+
value: function onModifyTransformStart(delta) {
|
685
|
+
var _this$hot$getSelected = this.hot.getSelectedRangeLast(),
|
686
|
+
highlight = _this$hot$getSelected.highlight;
|
687
|
+
var nextCoords = this.hot._createCellCoords(highlight.row + delta.row, highlight.col + delta.col);
|
688
|
+
var isNestedHeadersRange = nextCoords.isHeader() && nextCoords.col >= 0;
|
689
|
+
if (!isNestedHeadersRange) {
|
690
|
+
return;
|
691
|
+
}
|
692
|
+
var visualColumnIndexStart = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(nextCoords.row, nextCoords.col);
|
693
|
+
var visualColumnIndexEnd = _classPrivateFieldGet(this, _stateManager).findRightMostColumnIndex(nextCoords.row, nextCoords.col);
|
694
|
+
if (delta.col < 0) {
|
695
|
+
var nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexStart - 1 : visualColumnIndexEnd;
|
696
|
+
var notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, -1);
|
697
|
+
if (notHiddenColumnIndex === null) {
|
698
|
+
// There are no visible columns anymore, so move the selection out of the table edge. This will
|
699
|
+
// be processed by the selection Transformer class as a move selection to the previous row (if autoWrapRow is enabled).
|
700
|
+
delta.col = -this.hot.view.countRenderableColumnsInRange(0, highlight.col);
|
701
|
+
} else {
|
702
|
+
delta.col = -Math.max(this.hot.view.countRenderableColumnsInRange(notHiddenColumnIndex, highlight.col) - 1, 1);
|
703
|
+
}
|
704
|
+
} else if (delta.col > 0) {
|
705
|
+
var _nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexEnd + 1 : visualColumnIndexStart;
|
706
|
+
var _notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(_nextColumn, 1);
|
707
|
+
if (_notHiddenColumnIndex === null) {
|
708
|
+
// There are no visible columns anymore, so move the selection out of the table edge. This will
|
709
|
+
// be processed by the selection Transformer class as a move selection to the next row (if autoWrapRow is enabled).
|
710
|
+
delta.col = this.hot.view.countRenderableColumnsInRange(highlight.col, this.hot.countCols());
|
711
|
+
} else {
|
712
|
+
delta.col = Math.max(this.hot.view.countRenderableColumnsInRange(highlight.col, _notHiddenColumnIndex) - 1, 1);
|
713
|
+
}
|
714
|
+
}
|
715
|
+
}
|
716
|
+
|
717
|
+
/**
|
718
|
+
* The hook observes the column selection from the Selection API and modifies the column range to
|
719
|
+
* ensure that the whole nested column will be covered.
|
720
|
+
*
|
721
|
+
* @private
|
722
|
+
* @param {*} from The coords object where the selection starts.
|
723
|
+
* @param {*} to The coords object where the selection ends.
|
724
|
+
*/
|
725
|
+
}, {
|
726
|
+
key: "onBeforeSelectColumns",
|
727
|
+
value: function onBeforeSelectColumns(from, to) {
|
728
|
+
var headerLevel = from.row;
|
729
|
+
var startNodeData = this._getHeaderTreeNodeDataByCoords({
|
730
|
+
row: headerLevel,
|
731
|
+
col: from.col
|
732
|
+
});
|
733
|
+
var endNodeData = this._getHeaderTreeNodeDataByCoords({
|
734
|
+
row: headerLevel,
|
735
|
+
col: to.col
|
736
|
+
});
|
737
|
+
if (to.col < from.col) {
|
738
|
+
// Column selection from right to left
|
739
|
+
if (startNodeData) {
|
740
|
+
from.col = startNodeData.columnIndex + startNodeData.origColspan - 1;
|
741
|
+
}
|
742
|
+
if (endNodeData) {
|
743
|
+
to.col = endNodeData.columnIndex;
|
744
|
+
}
|
745
|
+
} else if (to.col >= from.col) {
|
746
|
+
// Column selection from left to right or a single column selection
|
747
|
+
if (startNodeData) {
|
748
|
+
from.col = startNodeData.columnIndex;
|
749
|
+
}
|
750
|
+
if (endNodeData) {
|
751
|
+
to.col = endNodeData.columnIndex + endNodeData.origColspan - 1;
|
752
|
+
}
|
630
753
|
}
|
631
|
-
(_this$hot = this.hot).selectColumns.apply(_this$hot, columnsToSelect);
|
632
754
|
}
|
633
755
|
|
634
756
|
/**
|