handsontable 0.0.0-next-06a64be-20230621 → 0.0.0-next-d1c8e0e-20230621
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 +13658 -10651
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +112 -112
- package/dist/handsontable.js +16566 -13559
- 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/comments/comments.js +11 -4
- package/plugins/comments/comments.mjs +11 -4
- 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 +5 -1
- package/plugins/copyPaste/copyPaste.mjs +5 -1
- 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/filters/filters.js +62 -42
- package/plugins/filters/filters.mjs +61 -41
- 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 +58 -9
- package/tableView.mjs +58 -9
- package/translations/indexMapper.js +8 -9
- package/translations/indexMapper.mjs +8 -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
@@ -0,0 +1,243 @@
|
|
1
|
+
import { isDefined } from "../helpers/mixed.mjs";
|
2
|
+
import { GRID_GROUP, EDITOR_EDIT_GROUP } from "./constants.mjs";
|
3
|
+
import { createKeyboardShortcutCommandsPool } from "./commands/index.mjs";
|
4
|
+
/**
|
5
|
+
* The context that defines shortcut list available for selected cell or cells.
|
6
|
+
*
|
7
|
+
* @param {Handsontable} hot The Handsontable instance.
|
8
|
+
*/
|
9
|
+
export function shortcutsGridContext(hot) {
|
10
|
+
var context = hot.getShortcutManager().addContext('grid');
|
11
|
+
var commandsPool = createKeyboardShortcutCommandsPool(hot);
|
12
|
+
var config = {
|
13
|
+
runOnlyIf: function runOnlyIf() {
|
14
|
+
var _hot$getSettings = hot.getSettings(),
|
15
|
+
navigableHeaders = _hot$getSettings.navigableHeaders;
|
16
|
+
return isDefined(hot.getSelected()) && (navigableHeaders || !navigableHeaders && hot.countRenderedRows() > 0 && hot.countRenderedCols() > 0);
|
17
|
+
},
|
18
|
+
group: GRID_GROUP
|
19
|
+
};
|
20
|
+
context.addShortcuts([{
|
21
|
+
keys: [['F2']],
|
22
|
+
callback: function callback(event) {
|
23
|
+
return commandsPool.editorFastOpen(event);
|
24
|
+
}
|
25
|
+
}, {
|
26
|
+
keys: [['Enter'], ['Enter', 'Shift']],
|
27
|
+
callback: function callback(event, keys) {
|
28
|
+
return commandsPool.editorOpen(event, keys);
|
29
|
+
}
|
30
|
+
}, {
|
31
|
+
keys: [['Backspace'], ['Delete']],
|
32
|
+
callback: function callback() {
|
33
|
+
return commandsPool.emptySelectedCells();
|
34
|
+
}
|
35
|
+
}], {
|
36
|
+
group: EDITOR_EDIT_GROUP,
|
37
|
+
runOnlyIf: function runOnlyIf() {
|
38
|
+
return isDefined(hot.getSelected());
|
39
|
+
}
|
40
|
+
});
|
41
|
+
context.addShortcuts([{
|
42
|
+
keys: [['Control/Meta', 'A'], ['Control/Meta', 'Shift', 'Space']],
|
43
|
+
callback: function callback() {
|
44
|
+
return commandsPool.selectAll();
|
45
|
+
}
|
46
|
+
}, {
|
47
|
+
keys: [['Control/Meta', 'Enter']],
|
48
|
+
callback: function callback() {
|
49
|
+
return commandsPool.populateSelectedCellsData();
|
50
|
+
},
|
51
|
+
runOnlyIf: function runOnlyIf() {
|
52
|
+
return !hot.getSelectedRangeLast().highlight.isHeader() && hot.getSelectedRangeLast().getCellsCount() > 1;
|
53
|
+
}
|
54
|
+
}, {
|
55
|
+
keys: [['Control', 'Space']],
|
56
|
+
captureCtrl: true,
|
57
|
+
callback: function callback() {
|
58
|
+
return commandsPool.extendCellsSelectionToColumns();
|
59
|
+
}
|
60
|
+
}, {
|
61
|
+
keys: [['Shift', 'Space']],
|
62
|
+
stopPropagation: true,
|
63
|
+
callback: function callback() {
|
64
|
+
return commandsPool.extendCellsSelectionToRows();
|
65
|
+
}
|
66
|
+
}, {
|
67
|
+
keys: [['ArrowUp']],
|
68
|
+
callback: function callback() {
|
69
|
+
return commandsPool.moveCellSelectionUp();
|
70
|
+
}
|
71
|
+
}, {
|
72
|
+
keys: [['ArrowUp', 'Control/Meta']],
|
73
|
+
captureCtrl: true,
|
74
|
+
callback: function callback() {
|
75
|
+
return commandsPool.moveCellSelectionToMostTop();
|
76
|
+
}
|
77
|
+
}, {
|
78
|
+
keys: [['ArrowUp', 'Shift']],
|
79
|
+
callback: function callback() {
|
80
|
+
return commandsPool.extendCellsSelectionUp();
|
81
|
+
}
|
82
|
+
}, {
|
83
|
+
keys: [['ArrowUp', 'Shift', 'Control/Meta']],
|
84
|
+
captureCtrl: true,
|
85
|
+
callback: function callback() {
|
86
|
+
return commandsPool.extendCellsSelectionToMostTop();
|
87
|
+
},
|
88
|
+
runOnlyIf: function runOnlyIf() {
|
89
|
+
return !(hot.selection.isSelectedByCorner() || hot.selection.isSelectedByColumnHeader());
|
90
|
+
}
|
91
|
+
}, {
|
92
|
+
keys: [['ArrowDown']],
|
93
|
+
callback: function callback() {
|
94
|
+
return commandsPool.moveCellSelectionDown();
|
95
|
+
}
|
96
|
+
}, {
|
97
|
+
keys: [['ArrowDown', 'Control/Meta']],
|
98
|
+
captureCtrl: true,
|
99
|
+
callback: function callback() {
|
100
|
+
return commandsPool.moveCellSelectionToMostBottom();
|
101
|
+
}
|
102
|
+
}, {
|
103
|
+
keys: [['ArrowDown', 'Shift']],
|
104
|
+
callback: function callback() {
|
105
|
+
return commandsPool.extendCellsSelectionDown();
|
106
|
+
}
|
107
|
+
}, {
|
108
|
+
keys: [['ArrowDown', 'Shift', 'Control/Meta']],
|
109
|
+
captureCtrl: true,
|
110
|
+
callback: function callback() {
|
111
|
+
return commandsPool.extendCellsSelectionToMostBottom();
|
112
|
+
},
|
113
|
+
runOnlyIf: function runOnlyIf() {
|
114
|
+
return !(hot.selection.isSelectedByCorner() || hot.selection.isSelectedByColumnHeader());
|
115
|
+
}
|
116
|
+
}, {
|
117
|
+
keys: [['ArrowLeft']],
|
118
|
+
callback: function callback() {
|
119
|
+
return commandsPool.moveCellSelectionLeft();
|
120
|
+
}
|
121
|
+
}, {
|
122
|
+
keys: [['ArrowLeft', 'Control/Meta']],
|
123
|
+
captureCtrl: true,
|
124
|
+
callback: function callback() {
|
125
|
+
return commandsPool.moveCellSelectionToMostLeft();
|
126
|
+
}
|
127
|
+
}, {
|
128
|
+
keys: [['ArrowLeft', 'Shift']],
|
129
|
+
callback: function callback() {
|
130
|
+
return commandsPool.extendCellsSelectionLeft();
|
131
|
+
}
|
132
|
+
}, {
|
133
|
+
keys: [['ArrowLeft', 'Shift', 'Control/Meta']],
|
134
|
+
captureCtrl: true,
|
135
|
+
callback: function callback() {
|
136
|
+
return commandsPool.extendCellsSelectionToMostLeft();
|
137
|
+
},
|
138
|
+
runOnlyIf: function runOnlyIf() {
|
139
|
+
return !(hot.selection.isSelectedByCorner() || hot.selection.isSelectedByRowHeader());
|
140
|
+
}
|
141
|
+
}, {
|
142
|
+
keys: [['ArrowRight']],
|
143
|
+
callback: function callback() {
|
144
|
+
return commandsPool.moveCellSelectionRight();
|
145
|
+
}
|
146
|
+
}, {
|
147
|
+
keys: [['ArrowRight', 'Control/Meta']],
|
148
|
+
captureCtrl: true,
|
149
|
+
callback: function callback() {
|
150
|
+
return commandsPool.moveCellSelectionToMostRight();
|
151
|
+
}
|
152
|
+
}, {
|
153
|
+
keys: [['ArrowRight', 'Shift']],
|
154
|
+
callback: function callback() {
|
155
|
+
return commandsPool.extendCellsSelectionRight();
|
156
|
+
}
|
157
|
+
}, {
|
158
|
+
keys: [['ArrowRight', 'Shift', 'Control/Meta']],
|
159
|
+
captureCtrl: true,
|
160
|
+
callback: function callback() {
|
161
|
+
return commandsPool.extendCellsSelectionToMostRight();
|
162
|
+
},
|
163
|
+
runOnlyIf: function runOnlyIf() {
|
164
|
+
return !(hot.selection.isSelectedByCorner() || hot.selection.isSelectedByRowHeader());
|
165
|
+
}
|
166
|
+
}, {
|
167
|
+
keys: [['Home']],
|
168
|
+
captureCtrl: true,
|
169
|
+
callback: function callback() {
|
170
|
+
return commandsPool.moveCellSelectionToMostInlineStart();
|
171
|
+
},
|
172
|
+
runOnlyIf: function runOnlyIf() {
|
173
|
+
return hot.view.isMainTableNotFullyCoveredByOverlays();
|
174
|
+
}
|
175
|
+
}, {
|
176
|
+
keys: [['Home', 'Shift']],
|
177
|
+
callback: function callback() {
|
178
|
+
return commandsPool.extendCellsSelectionToMostInlineStart();
|
179
|
+
}
|
180
|
+
}, {
|
181
|
+
keys: [['Home', 'Control/Meta']],
|
182
|
+
captureCtrl: true,
|
183
|
+
callback: function callback() {
|
184
|
+
return commandsPool.moveCellSelectionToMostTopInlineStart();
|
185
|
+
},
|
186
|
+
runOnlyIf: function runOnlyIf() {
|
187
|
+
return hot.view.isMainTableNotFullyCoveredByOverlays();
|
188
|
+
}
|
189
|
+
}, {
|
190
|
+
keys: [['End']],
|
191
|
+
captureCtrl: true,
|
192
|
+
callback: function callback() {
|
193
|
+
return commandsPool.moveCellSelectionToMostInlineEnd();
|
194
|
+
},
|
195
|
+
runOnlyIf: function runOnlyIf() {
|
196
|
+
return hot.view.isMainTableNotFullyCoveredByOverlays();
|
197
|
+
}
|
198
|
+
}, {
|
199
|
+
keys: [['End', 'Shift']],
|
200
|
+
callback: function callback() {
|
201
|
+
return commandsPool.extendCellsSelectionToMostInlineEnd();
|
202
|
+
}
|
203
|
+
}, {
|
204
|
+
keys: [['End', 'Control/Meta']],
|
205
|
+
captureCtrl: true,
|
206
|
+
callback: function callback() {
|
207
|
+
return commandsPool.moveCellSelectionToMostBottomInlineEnd();
|
208
|
+
},
|
209
|
+
runOnlyIf: function runOnlyIf() {
|
210
|
+
return hot.view.isMainTableNotFullyCoveredByOverlays();
|
211
|
+
}
|
212
|
+
}, {
|
213
|
+
keys: [['PageUp']],
|
214
|
+
callback: function callback() {
|
215
|
+
return commandsPool.moveCellSelectionUpByViewportHight();
|
216
|
+
}
|
217
|
+
}, {
|
218
|
+
keys: [['PageUp', 'Shift']],
|
219
|
+
callback: function callback() {
|
220
|
+
return commandsPool.extendCellsSelectionUpByViewportHeight();
|
221
|
+
}
|
222
|
+
}, {
|
223
|
+
keys: [['PageDown']],
|
224
|
+
callback: function callback() {
|
225
|
+
return commandsPool.moveCellSelectionDownByViewportHeight();
|
226
|
+
}
|
227
|
+
}, {
|
228
|
+
keys: [['PageDown', 'Shift']],
|
229
|
+
callback: function callback() {
|
230
|
+
return commandsPool.extendCellsSelectionDownByViewportHeight();
|
231
|
+
}
|
232
|
+
}, {
|
233
|
+
keys: [['Tab']],
|
234
|
+
callback: function callback() {
|
235
|
+
return commandsPool.moveCellSelectionInlineStart();
|
236
|
+
}
|
237
|
+
}, {
|
238
|
+
keys: [['Shift', 'Tab']],
|
239
|
+
callback: function callback() {
|
240
|
+
return commandsPool.moveCellSelectionInlineEnd();
|
241
|
+
}
|
242
|
+
}], config);
|
243
|
+
}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
require("core-js/modules/es.object.keys.js");
|
4
|
+
exports.__esModule = true;
|
5
|
+
var _exportNames = {
|
6
|
+
registerAllShortcutContexts: true
|
7
|
+
};
|
8
|
+
exports.registerAllShortcutContexts = registerAllShortcutContexts;
|
9
|
+
require("core-js/modules/es.object.to-string.js");
|
10
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
11
|
+
var _editor = require("./editor");
|
12
|
+
var _grid = require("./grid");
|
13
|
+
var _constants = require("./constants");
|
14
|
+
Object.keys(_constants).forEach(function (key) {
|
15
|
+
if (key === "default" || key === "__esModule") return;
|
16
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
17
|
+
if (key in exports && exports[key] === _constants[key]) return;
|
18
|
+
exports[key] = _constants[key];
|
19
|
+
});
|
20
|
+
/**
|
21
|
+
* Register all shortcut contexts.
|
22
|
+
*
|
23
|
+
* @param {Handsontable} hotInstance The Handsontable instance.
|
24
|
+
*/
|
25
|
+
function registerAllShortcutContexts(hotInstance) {
|
26
|
+
[_editor.shortcutsEditorContext, _grid.shortcutsGridContext].forEach(function (context) {
|
27
|
+
return context(hotInstance);
|
28
|
+
});
|
29
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import "core-js/modules/es.object.to-string.js";
|
2
|
+
import "core-js/modules/web.dom-collections.for-each.js";
|
3
|
+
import { shortcutsEditorContext } from "./editor.mjs";
|
4
|
+
import { shortcutsGridContext } from "./grid.mjs";
|
5
|
+
export * from "./constants.mjs";
|
6
|
+
/**
|
7
|
+
* Register all shortcut contexts.
|
8
|
+
*
|
9
|
+
* @param {Handsontable} hotInstance The Handsontable instance.
|
10
|
+
*/
|
11
|
+
export function registerAllShortcutContexts(hotInstance) {
|
12
|
+
[shortcutsEditorContext, shortcutsGridContext].forEach(function (context) {
|
13
|
+
return context(hotInstance);
|
14
|
+
});
|
15
|
+
}
|
package/shortcuts/manager.js
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.createShortcutManager = void 0;
|
5
5
|
var _uniqueMap = require("../utils/dataStructures/uniqueMap");
|
6
|
+
var _event = require("../helpers/dom/event");
|
6
7
|
var _context = require("./context");
|
7
8
|
var _recorder = require("./recorder");
|
8
9
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
@@ -126,6 +127,7 @@ var createShortcutManager = function createShortcutManager(_ref) {
|
|
126
127
|
event.preventDefault();
|
127
128
|
}
|
128
129
|
if (stopPropagation) {
|
130
|
+
(0, _event.stopImmediatePropagation)(event);
|
129
131
|
event.stopPropagation();
|
130
132
|
}
|
131
133
|
if (isExecutionCancelled) {
|
package/shortcuts/manager.mjs
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
import { createUniqueMap } from "../utils/dataStructures/uniqueMap.mjs";
|
2
|
+
import { stopImmediatePropagation } from "../helpers/dom/event.mjs";
|
2
3
|
import { createContext } from "./context.mjs";
|
3
4
|
import { useRecorder } from "./recorder.mjs";
|
4
5
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
@@ -121,6 +122,7 @@ export var createShortcutManager = function createShortcutManager(_ref) {
|
|
121
122
|
event.preventDefault();
|
122
123
|
}
|
123
124
|
if (stopPropagation) {
|
125
|
+
stopImmediatePropagation(event);
|
124
126
|
event.stopPropagation();
|
125
127
|
}
|
126
128
|
if (isExecutionCancelled) {
|
package/shortcuts/recorder.js
CHANGED
@@ -88,7 +88,7 @@ function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDown, call
|
|
88
88
|
if (event.keyCode === 229 || result === false || (0, _event.isImmediatePropagationStopped)(event)) {
|
89
89
|
return;
|
90
90
|
}
|
91
|
-
var pressedKey = (0, _utils.normalizeEventKey)(event
|
91
|
+
var pressedKey = (0, _utils.normalizeEventKey)(event);
|
92
92
|
var extraModifierKeys = [];
|
93
93
|
if (isModifierKey(pressedKey)) {
|
94
94
|
modifierKeysObserver.press(pressedKey);
|
@@ -114,7 +114,7 @@ function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDown, call
|
|
114
114
|
if (handleEvent(event) === false) {
|
115
115
|
return;
|
116
116
|
}
|
117
|
-
var pressedKey = (0, _utils.normalizeEventKey)(event
|
117
|
+
var pressedKey = (0, _utils.normalizeEventKey)(event);
|
118
118
|
if (isModifierKey(pressedKey) === false) {
|
119
119
|
return;
|
120
120
|
}
|
package/shortcuts/recorder.mjs
CHANGED
@@ -84,7 +84,7 @@ export function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDow
|
|
84
84
|
if (event.keyCode === 229 || result === false || isImmediatePropagationStopped(event)) {
|
85
85
|
return;
|
86
86
|
}
|
87
|
-
var pressedKey = normalizeEventKey(event
|
87
|
+
var pressedKey = normalizeEventKey(event);
|
88
88
|
var extraModifierKeys = [];
|
89
89
|
if (isModifierKey(pressedKey)) {
|
90
90
|
modifierKeysObserver.press(pressedKey);
|
@@ -110,7 +110,7 @@ export function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDow
|
|
110
110
|
if (handleEvent(event) === false) {
|
111
111
|
return;
|
112
112
|
}
|
113
|
-
var pressedKey = normalizeEventKey(event
|
113
|
+
var pressedKey = normalizeEventKey(event);
|
114
114
|
if (isModifierKey(pressedKey) === false) {
|
115
115
|
return;
|
116
116
|
}
|
package/shortcuts/utils.js
CHANGED
@@ -10,6 +10,10 @@ require("core-js/modules/web.dom-collections.iterator.js");
|
|
10
10
|
require("core-js/modules/es.array.join.js");
|
11
11
|
require("core-js/modules/es.array.sort.js");
|
12
12
|
require("core-js/modules/es.array.map.js");
|
13
|
+
require("core-js/modules/es.regexp.constructor.js");
|
14
|
+
require("core-js/modules/es.regexp.exec.js");
|
15
|
+
require("core-js/modules/es.regexp.to-string.js");
|
16
|
+
require("core-js/modules/es.string.replace.js");
|
13
17
|
// This file handles key-name discrepancies between browsers.
|
14
18
|
// For the list of discrepancies, go to: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values.
|
15
19
|
var mappings = new Map([[' ', 'space'],
|
@@ -46,13 +50,25 @@ var getKeysList = function getKeysList(normalizedKeys) {
|
|
46
50
|
};
|
47
51
|
|
48
52
|
/**
|
49
|
-
*
|
53
|
+
* The regex tests if the event.code matches to the pattern and it's used to extract letters and digits from
|
54
|
+
* the string.
|
55
|
+
*/
|
56
|
+
exports.getKeysList = getKeysList;
|
57
|
+
var codeToKeyRegExp = new RegExp('^(?:Key|Digit)([A-Z0-9])$');
|
58
|
+
|
59
|
+
/**
|
60
|
+
* Normalizes a keyboard event key value to a key before its modification. When the keyboard event
|
61
|
+
* is triggered with Alt, Control or Shift keys the `key` property contains modified key e.g. for Alt+L
|
62
|
+
* it will be `ł`. But that value is only valid for polish keyboard layout. To fix that limitations, for
|
63
|
+
* letters and digits the value is taken from the `code` property which holds original value before
|
64
|
+
* transformation.
|
50
65
|
*
|
51
|
-
* @param {
|
66
|
+
* @param {Event} event The KeyboardEvent object.
|
52
67
|
* @returns {string}
|
53
68
|
*/
|
54
|
-
|
55
|
-
var
|
56
|
-
|
69
|
+
var normalizeEventKey = function normalizeEventKey(_ref) {
|
70
|
+
var key = _ref.key,
|
71
|
+
code = _ref.code;
|
72
|
+
return (codeToKeyRegExp.test(code) ? code.replace(codeToKeyRegExp, '$1') : key).toLowerCase();
|
57
73
|
};
|
58
74
|
exports.normalizeEventKey = normalizeEventKey;
|
package/shortcuts/utils.mjs
CHANGED
@@ -6,6 +6,10 @@ import "core-js/modules/web.dom-collections.iterator.js";
|
|
6
6
|
import "core-js/modules/es.array.join.js";
|
7
7
|
import "core-js/modules/es.array.sort.js";
|
8
8
|
import "core-js/modules/es.array.map.js";
|
9
|
+
import "core-js/modules/es.regexp.constructor.js";
|
10
|
+
import "core-js/modules/es.regexp.exec.js";
|
11
|
+
import "core-js/modules/es.regexp.to-string.js";
|
12
|
+
import "core-js/modules/es.string.replace.js";
|
9
13
|
// This file handles key-name discrepancies between browsers.
|
10
14
|
// For the list of discrepancies, go to: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values.
|
11
15
|
var mappings = new Map([[' ', 'space'],
|
@@ -41,11 +45,23 @@ export var getKeysList = function getKeysList(normalizedKeys) {
|
|
41
45
|
};
|
42
46
|
|
43
47
|
/**
|
44
|
-
*
|
48
|
+
* The regex tests if the event.code matches to the pattern and it's used to extract letters and digits from
|
49
|
+
* the string.
|
50
|
+
*/
|
51
|
+
var codeToKeyRegExp = new RegExp('^(?:Key|Digit)([A-Z0-9])$');
|
52
|
+
|
53
|
+
/**
|
54
|
+
* Normalizes a keyboard event key value to a key before its modification. When the keyboard event
|
55
|
+
* is triggered with Alt, Control or Shift keys the `key` property contains modified key e.g. for Alt+L
|
56
|
+
* it will be `ł`. But that value is only valid for polish keyboard layout. To fix that limitations, for
|
57
|
+
* letters and digits the value is taken from the `code` property which holds original value before
|
58
|
+
* transformation.
|
45
59
|
*
|
46
|
-
* @param {
|
60
|
+
* @param {Event} event The KeyboardEvent object.
|
47
61
|
* @returns {string}
|
48
62
|
*/
|
49
|
-
export var normalizeEventKey = function normalizeEventKey(
|
50
|
-
|
63
|
+
export var normalizeEventKey = function normalizeEventKey(_ref) {
|
64
|
+
var key = _ref.key,
|
65
|
+
code = _ref.code;
|
66
|
+
return (codeToKeyRegExp.test(code) ? code.replace(codeToKeyRegExp, '$1') : key).toLowerCase();
|
51
67
|
};
|
package/tableView.js
CHANGED
@@ -613,6 +613,44 @@ var TableView = /*#__PURE__*/function () {
|
|
613
613
|
return this.countNotHiddenRowIndexes(visualFixedRowsBottom, 1);
|
614
614
|
}
|
615
615
|
|
616
|
+
/**
|
617
|
+
* The function returns the number of renderable column indexes within the passed range of the visual indexes.
|
618
|
+
*
|
619
|
+
* @param {number} columnStart The column visual start index.
|
620
|
+
* @param {number} columnEnd The column visual end index.
|
621
|
+
* @returns {number}
|
622
|
+
*/
|
623
|
+
}, {
|
624
|
+
key: "countRenderableColumnsInRange",
|
625
|
+
value: function countRenderableColumnsInRange(columnStart, columnEnd) {
|
626
|
+
var count = 0;
|
627
|
+
for (var column = columnStart; column <= columnEnd; column++) {
|
628
|
+
if (this.instance.columnIndexMapper.getRenderableFromVisualIndex(column) !== null) {
|
629
|
+
count += 1;
|
630
|
+
}
|
631
|
+
}
|
632
|
+
return count;
|
633
|
+
}
|
634
|
+
|
635
|
+
/**
|
636
|
+
* The function returns the number of renderable row indexes within the passed range of the visual indexes.
|
637
|
+
*
|
638
|
+
* @param {number} rowStart The row visual start index.
|
639
|
+
* @param {number} rowEnd The row visual end index.
|
640
|
+
* @returns {number}
|
641
|
+
*/
|
642
|
+
}, {
|
643
|
+
key: "countRenderableRowsInRange",
|
644
|
+
value: function countRenderableRowsInRange(rowStart, rowEnd) {
|
645
|
+
var count = 0;
|
646
|
+
for (var row = rowStart; row <= rowEnd; row++) {
|
647
|
+
if (this.instance.rowIndexMapper.getRenderableFromVisualIndex(row) !== null) {
|
648
|
+
count += 1;
|
649
|
+
}
|
650
|
+
}
|
651
|
+
return count;
|
652
|
+
}
|
653
|
+
|
616
654
|
/**
|
617
655
|
* Checks if at least one cell than belongs to the main table is not covered by the top, left or
|
618
656
|
* bottom overlay.
|
@@ -884,15 +922,29 @@ var TableView = /*#__PURE__*/function () {
|
|
884
922
|
},
|
885
923
|
onBeforeHighlightingRowHeader: function onBeforeHighlightingRowHeader(renderableRow, headerLevel, highlightMeta) {
|
886
924
|
var rowMapper = _this2.instance.rowIndexMapper;
|
887
|
-
var
|
925
|
+
var areColumnHeadersSelected = renderableRow < 0;
|
926
|
+
var visualRow = renderableRow;
|
927
|
+
if (!areColumnHeadersSelected) {
|
928
|
+
visualRow = rowMapper.getVisualFromRenderableIndex(renderableRow);
|
929
|
+
}
|
888
930
|
var newVisualRow = _this2.instance.runHooks('beforeHighlightingRowHeader', visualRow, headerLevel, highlightMeta);
|
889
|
-
|
931
|
+
if (!areColumnHeadersSelected) {
|
932
|
+
return rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(newVisualRow, 1));
|
933
|
+
}
|
934
|
+
return newVisualRow;
|
890
935
|
},
|
891
936
|
onBeforeHighlightingColumnHeader: function onBeforeHighlightingColumnHeader(renderableColumn, headerLevel, highlightMeta) {
|
892
937
|
var columnMapper = _this2.instance.columnIndexMapper;
|
893
|
-
var
|
938
|
+
var areRowHeadersSelected = renderableColumn < 0;
|
939
|
+
var visualColumn = renderableColumn;
|
940
|
+
if (!areRowHeadersSelected) {
|
941
|
+
visualColumn = columnMapper.getVisualFromRenderableIndex(renderableColumn);
|
942
|
+
}
|
894
943
|
var newVisualColumn = _this2.instance.runHooks('beforeHighlightingColumnHeader', visualColumn, headerLevel, highlightMeta);
|
895
|
-
|
944
|
+
if (!areRowHeadersSelected) {
|
945
|
+
return columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(newVisualColumn, 1));
|
946
|
+
}
|
947
|
+
return newVisualColumn;
|
896
948
|
},
|
897
949
|
onAfterDrawSelection: function onAfterDrawSelection(currentRow, currentColumn, layerLevel) {
|
898
950
|
var cornersOfSelection;
|
@@ -903,10 +955,7 @@ var TableView = /*#__PURE__*/function () {
|
|
903
955
|
var selectedRange = _this2.instance.selection.getSelectedRange();
|
904
956
|
var selectionRangeSize = selectedRange.size();
|
905
957
|
if (selectionRangeSize > 0) {
|
906
|
-
|
907
|
-
// Please look at the `SelectedRange` class and it's method for getting selection's layer for more information.
|
908
|
-
var selectionOffset = (layerLevel !== null && layerLevel !== void 0 ? layerLevel : 0) + 1 - selectionRangeSize;
|
909
|
-
var selectionForLayer = selectedRange.peekByIndex(selectionOffset);
|
958
|
+
var selectionForLayer = selectedRange.peekByIndex(layerLevel !== null && layerLevel !== void 0 ? layerLevel : 0);
|
910
959
|
cornersOfSelection = [selectionForLayer.from.row, selectionForLayer.from.col, selectionForLayer.to.row, selectionForLayer.to.col];
|
911
960
|
}
|
912
961
|
return _this2.instance.runHooks('afterDrawSelection', visualRowIndex, visualColumnIndex, cornersOfSelection, layerLevel);
|
@@ -1080,7 +1129,7 @@ var TableView = /*#__PURE__*/function () {
|
|
1080
1129
|
key: "isSelectedOnlyCell",
|
1081
1130
|
value: function isSelectedOnlyCell() {
|
1082
1131
|
var _this$instance$getSel, _this$instance$getSel2;
|
1083
|
-
return (_this$instance$getSel = (_this$instance$getSel2 = this.instance.getSelectedRangeLast()) === null || _this$instance$getSel2 === void 0 ? void 0 : _this$instance$getSel2.
|
1132
|
+
return (_this$instance$getSel = (_this$instance$getSel2 = this.instance.getSelectedRangeLast()) === null || _this$instance$getSel2 === void 0 ? void 0 : _this$instance$getSel2.isSingleCell()) !== null && _this$instance$getSel !== void 0 ? _this$instance$getSel : false;
|
1084
1133
|
}
|
1085
1134
|
|
1086
1135
|
/**
|
package/tableView.mjs
CHANGED
@@ -608,6 +608,44 @@ var TableView = /*#__PURE__*/function () {
|
|
608
608
|
return this.countNotHiddenRowIndexes(visualFixedRowsBottom, 1);
|
609
609
|
}
|
610
610
|
|
611
|
+
/**
|
612
|
+
* The function returns the number of renderable column indexes within the passed range of the visual indexes.
|
613
|
+
*
|
614
|
+
* @param {number} columnStart The column visual start index.
|
615
|
+
* @param {number} columnEnd The column visual end index.
|
616
|
+
* @returns {number}
|
617
|
+
*/
|
618
|
+
}, {
|
619
|
+
key: "countRenderableColumnsInRange",
|
620
|
+
value: function countRenderableColumnsInRange(columnStart, columnEnd) {
|
621
|
+
var count = 0;
|
622
|
+
for (var column = columnStart; column <= columnEnd; column++) {
|
623
|
+
if (this.instance.columnIndexMapper.getRenderableFromVisualIndex(column) !== null) {
|
624
|
+
count += 1;
|
625
|
+
}
|
626
|
+
}
|
627
|
+
return count;
|
628
|
+
}
|
629
|
+
|
630
|
+
/**
|
631
|
+
* The function returns the number of renderable row indexes within the passed range of the visual indexes.
|
632
|
+
*
|
633
|
+
* @param {number} rowStart The row visual start index.
|
634
|
+
* @param {number} rowEnd The row visual end index.
|
635
|
+
* @returns {number}
|
636
|
+
*/
|
637
|
+
}, {
|
638
|
+
key: "countRenderableRowsInRange",
|
639
|
+
value: function countRenderableRowsInRange(rowStart, rowEnd) {
|
640
|
+
var count = 0;
|
641
|
+
for (var row = rowStart; row <= rowEnd; row++) {
|
642
|
+
if (this.instance.rowIndexMapper.getRenderableFromVisualIndex(row) !== null) {
|
643
|
+
count += 1;
|
644
|
+
}
|
645
|
+
}
|
646
|
+
return count;
|
647
|
+
}
|
648
|
+
|
611
649
|
/**
|
612
650
|
* Checks if at least one cell than belongs to the main table is not covered by the top, left or
|
613
651
|
* bottom overlay.
|
@@ -879,15 +917,29 @@ var TableView = /*#__PURE__*/function () {
|
|
879
917
|
},
|
880
918
|
onBeforeHighlightingRowHeader: function onBeforeHighlightingRowHeader(renderableRow, headerLevel, highlightMeta) {
|
881
919
|
var rowMapper = _this2.instance.rowIndexMapper;
|
882
|
-
var
|
920
|
+
var areColumnHeadersSelected = renderableRow < 0;
|
921
|
+
var visualRow = renderableRow;
|
922
|
+
if (!areColumnHeadersSelected) {
|
923
|
+
visualRow = rowMapper.getVisualFromRenderableIndex(renderableRow);
|
924
|
+
}
|
883
925
|
var newVisualRow = _this2.instance.runHooks('beforeHighlightingRowHeader', visualRow, headerLevel, highlightMeta);
|
884
|
-
|
926
|
+
if (!areColumnHeadersSelected) {
|
927
|
+
return rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(newVisualRow, 1));
|
928
|
+
}
|
929
|
+
return newVisualRow;
|
885
930
|
},
|
886
931
|
onBeforeHighlightingColumnHeader: function onBeforeHighlightingColumnHeader(renderableColumn, headerLevel, highlightMeta) {
|
887
932
|
var columnMapper = _this2.instance.columnIndexMapper;
|
888
|
-
var
|
933
|
+
var areRowHeadersSelected = renderableColumn < 0;
|
934
|
+
var visualColumn = renderableColumn;
|
935
|
+
if (!areRowHeadersSelected) {
|
936
|
+
visualColumn = columnMapper.getVisualFromRenderableIndex(renderableColumn);
|
937
|
+
}
|
889
938
|
var newVisualColumn = _this2.instance.runHooks('beforeHighlightingColumnHeader', visualColumn, headerLevel, highlightMeta);
|
890
|
-
|
939
|
+
if (!areRowHeadersSelected) {
|
940
|
+
return columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(newVisualColumn, 1));
|
941
|
+
}
|
942
|
+
return newVisualColumn;
|
891
943
|
},
|
892
944
|
onAfterDrawSelection: function onAfterDrawSelection(currentRow, currentColumn, layerLevel) {
|
893
945
|
var cornersOfSelection;
|
@@ -898,10 +950,7 @@ var TableView = /*#__PURE__*/function () {
|
|
898
950
|
var selectedRange = _this2.instance.selection.getSelectedRange();
|
899
951
|
var selectionRangeSize = selectedRange.size();
|
900
952
|
if (selectionRangeSize > 0) {
|
901
|
-
|
902
|
-
// Please look at the `SelectedRange` class and it's method for getting selection's layer for more information.
|
903
|
-
var selectionOffset = (layerLevel !== null && layerLevel !== void 0 ? layerLevel : 0) + 1 - selectionRangeSize;
|
904
|
-
var selectionForLayer = selectedRange.peekByIndex(selectionOffset);
|
953
|
+
var selectionForLayer = selectedRange.peekByIndex(layerLevel !== null && layerLevel !== void 0 ? layerLevel : 0);
|
905
954
|
cornersOfSelection = [selectionForLayer.from.row, selectionForLayer.from.col, selectionForLayer.to.row, selectionForLayer.to.col];
|
906
955
|
}
|
907
956
|
return _this2.instance.runHooks('afterDrawSelection', visualRowIndex, visualColumnIndex, cornersOfSelection, layerLevel);
|
@@ -1075,7 +1124,7 @@ var TableView = /*#__PURE__*/function () {
|
|
1075
1124
|
key: "isSelectedOnlyCell",
|
1076
1125
|
value: function isSelectedOnlyCell() {
|
1077
1126
|
var _this$instance$getSel, _this$instance$getSel2;
|
1078
|
-
return (_this$instance$getSel = (_this$instance$getSel2 = this.instance.getSelectedRangeLast()) === null || _this$instance$getSel2 === void 0 ? void 0 : _this$instance$getSel2.
|
1127
|
+
return (_this$instance$getSel = (_this$instance$getSel2 = this.instance.getSelectedRangeLast()) === null || _this$instance$getSel2 === void 0 ? void 0 : _this$instance$getSel2.isSingleCell()) !== null && _this$instance$getSel !== void 0 ? _this$instance$getSel : false;
|
1079
1128
|
}
|
1080
1129
|
|
1081
1130
|
/**
|