handsontable 0.0.0-next-08765b9-20230809 → 0.0.0-next-7e1ba35-20230821
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/{selection/border/border.js → border.js} +12 -7
- package/3rdparty/walkontable/src/{selection/border/border.mjs → border.mjs} +12 -7
- package/3rdparty/walkontable/src/cell/coords.d.ts +1 -6
- package/3rdparty/walkontable/src/cell/coords.js +11 -50
- package/3rdparty/walkontable/src/cell/coords.mjs +11 -50
- package/3rdparty/walkontable/src/cell/range.d.ts +2 -9
- package/3rdparty/walkontable/src/cell/range.js +7 -38
- package/3rdparty/walkontable/src/cell/range.mjs +7 -38
- package/3rdparty/walkontable/src/core/_base.js +3 -9
- package/3rdparty/walkontable/src/core/_base.mjs +3 -9
- 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 +2 -3
- package/3rdparty/walkontable/src/core/core.mjs +2 -3
- 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 +2 -10
- 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 +6 -2
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +6 -2
- package/3rdparty/walkontable/src/overlay/top.js +6 -2
- package/3rdparty/walkontable/src/overlay/top.mjs +6 -2
- package/3rdparty/walkontable/src/selection.js +295 -0
- package/3rdparty/walkontable/src/selection.mjs +290 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +0 -9
- package/3rdparty/walkontable/src/table.js +78 -6
- package/3rdparty/walkontable/src/table.mjs +79 -7
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/common.d.ts +1 -1
- package/core.d.ts +3 -6
- package/core.js +290 -173
- package/core.mjs +290 -173
- package/dataMap/metaManager/metaSchema.js +0 -41
- package/dataMap/metaManager/metaSchema.mjs +0 -41
- package/dist/handsontable.css +4 -24
- package/dist/handsontable.full.css +4 -24
- package/dist/handsontable.full.js +5384 -8679
- package/dist/handsontable.full.min.css +3 -4
- package/dist/handsontable.full.min.js +960 -29
- package/dist/handsontable.js +8132 -11427
- package/dist/handsontable.min.css +3 -4
- package/dist/handsontable.min.js +61 -24
- package/editorManager.js +75 -11
- package/editorManager.mjs +74 -11
- package/editors/baseEditor/baseEditor.d.ts +1 -0
- package/editors/textEditor/textEditor.js +11 -3
- package/editors/textEditor/textEditor.mjs +12 -4
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/helpers/number.d.ts +0 -1
- package/helpers/number.js +0 -18
- package/helpers/number.mjs +0 -17
- package/package.json +1 -1
- package/pluginHooks.d.ts +1 -7
- package/pluginHooks.js +1 -106
- package/pluginHooks.mjs +1 -106
- package/plugins/collapsibleColumns/collapsibleColumns.js +4 -58
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +4 -58
- package/plugins/columnSorting/columnSorting.js +0 -38
- package/plugins/columnSorting/columnSorting.mjs +2 -38
- package/plugins/columnSorting/index.js +1 -3
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/comments/commentEditor.js +0 -1
- package/plugins/comments/commentEditor.mjs +0 -1
- package/plugins/comments/comments.js +189 -251
- package/plugins/comments/comments.mjs +190 -250
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +30 -72
- package/plugins/contextMenu/contextMenu.mjs +31 -73
- package/plugins/contextMenu/predefinedItems/alignment.js +0 -7
- package/plugins/contextMenu/predefinedItems/alignment.mjs +0 -7
- package/plugins/contextMenu/predefinedItems/clearColumn.js +3 -5
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -5
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/columnRight.js +3 -5
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/readOnly.js +0 -7
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +0 -7
- package/plugins/contextMenu/predefinedItems/removeColumn.js +5 -7
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/removeRow.js +5 -7
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -5
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/rowBelow.js +3 -5
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +3 -5
- package/plugins/contextMenu/utils.js +16 -28
- package/plugins/contextMenu/utils.mjs +15 -27
- package/plugins/copyPaste/contextMenuItem/copy.js +0 -7
- package/plugins/copyPaste/contextMenuItem/copy.mjs +0 -7
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +1 -9
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +1 -9
- package/plugins/copyPaste/contextMenuItem/cut.js +0 -7
- package/plugins/copyPaste/contextMenuItem/cut.mjs +0 -7
- package/plugins/copyPaste/copyPaste.js +10 -14
- package/plugins/copyPaste/copyPaste.mjs +10 -14
- package/plugins/customBorders/customBorders.js +20 -23
- package/plugins/customBorders/customBorders.mjs +21 -24
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +32 -89
- package/plugins/dropdownMenu/dropdownMenu.mjs +32 -89
- package/plugins/filters/filters.js +14 -31
- package/plugins/filters/filters.mjs +13 -30
- package/plugins/manualColumnResize/manualColumnResize.js +6 -0
- package/plugins/manualColumnResize/manualColumnResize.mjs +7 -1
- package/plugins/mergeCells/mergeCells.js +17 -5
- package/plugins/mergeCells/mergeCells.mjs +17 -5
- package/plugins/multiColumnSorting/multiColumnSorting.js +2 -37
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -37
- package/plugins/nestedHeaders/nestedHeaders.js +8 -121
- package/plugins/nestedHeaders/nestedHeaders.mjs +8 -121
- package/plugins/nestedHeaders/stateManager/index.js +0 -37
- package/plugins/nestedHeaders/stateManager/index.mjs +0 -37
- package/plugins/nestedRows/nestedRows.js +0 -41
- package/plugins/nestedRows/nestedRows.mjs +0 -41
- package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
- package/selection/highlight/constants.js +15 -0
- package/selection/highlight/constants.mjs +6 -0
- package/selection/highlight/highlight.js +71 -256
- package/selection/highlight/highlight.mjs +71 -250
- package/selection/highlight/types/activeHeader.js +8 -10
- package/selection/highlight/types/activeHeader.mjs +8 -10
- package/selection/highlight/types/area.js +18 -6
- package/selection/highlight/types/area.mjs +18 -6
- package/selection/highlight/types/{focus.js → cell.js} +7 -5
- package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
- package/selection/highlight/types/customSelection.js +9 -7
- package/selection/highlight/types/customSelection.mjs +9 -7
- package/selection/highlight/types/fill.js +7 -5
- package/selection/highlight/types/fill.mjs +7 -5
- package/selection/highlight/types/header.js +18 -9
- package/selection/highlight/types/header.mjs +18 -9
- package/selection/highlight/types/index.js +35 -0
- package/selection/highlight/types/index.mjs +31 -0
- package/selection/highlight/visualSelection.js +27 -31
- package/selection/highlight/visualSelection.mjs +27 -31
- package/selection/index.js +7 -4
- package/selection/index.mjs +3 -2
- 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 +154 -290
- package/selection/selection.mjs +153 -287
- package/selection/transformation.js +90 -232
- package/selection/transformation.mjs +90 -232
- package/selection/utils.js +21 -15
- package/selection/utils.mjs +21 -16
- package/settings.d.ts +0 -2
- package/shortcuts/manager.js +0 -2
- package/shortcuts/manager.mjs +0 -2
- package/shortcuts/recorder.js +2 -2
- package/shortcuts/recorder.mjs +2 -2
- package/shortcuts/utils.js +5 -19
- package/shortcuts/utils.mjs +4 -18
- package/tableView.js +13 -67
- package/tableView.mjs +13 -67
- package/3rdparty/walkontable/src/selection/border/constants.js +0 -16
- package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
- package/3rdparty/walkontable/src/selection/constants.js +0 -62
- package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
- package/3rdparty/walkontable/src/selection/index.js +0 -26
- package/3rdparty/walkontable/src/selection/index.mjs +0 -5
- package/3rdparty/walkontable/src/selection/manager.js +0 -259
- package/3rdparty/walkontable/src/selection/manager.mjs +0 -254
- package/3rdparty/walkontable/src/selection/scanner.js +0 -270
- package/3rdparty/walkontable/src/selection/scanner.mjs +0 -267
- package/3rdparty/walkontable/src/selection/selection.js +0 -101
- package/3rdparty/walkontable/src/selection/selection.mjs +0 -96
- package/core/focusCatcher/focusDetector.js +0 -58
- package/core/focusCatcher/focusDetector.mjs +0 -54
- package/core/focusCatcher/index.js +0 -142
- package/core/focusCatcher/index.mjs +0 -138
- package/core/index.js +0 -9
- package/core/index.mjs +0 -1
- package/plugins/comments/contextMenuItem/addEditComment.js +0 -41
- package/plugins/comments/contextMenuItem/addEditComment.mjs +0 -35
- package/plugins/comments/contextMenuItem/readOnlyComment.js +0 -49
- package/plugins/comments/contextMenuItem/readOnlyComment.mjs +0 -43
- package/plugins/comments/contextMenuItem/removeComment.js +0 -38
- package/plugins/comments/contextMenuItem/removeComment.mjs +0 -32
- package/selection/highlight/types/areaLayered.js +0 -31
- package/selection/highlight/types/areaLayered.mjs +0 -26
- package/selection/highlight/types/column.js +0 -27
- package/selection/highlight/types/column.mjs +0 -22
- package/selection/highlight/types/row.js +0 -27
- package/selection/highlight/types/row.mjs +0 -22
- package/shortcutContexts/commands/editor/closeAndSave.js +0 -12
- package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -8
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -12
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
- package/shortcutContexts/commands/editor/fastOpen.js +0 -16
- package/shortcutContexts/commands/editor/fastOpen.mjs +0 -12
- package/shortcutContexts/commands/editor/index.js +0 -16
- package/shortcutContexts/commands/editor/index.mjs +0 -12
- package/shortcutContexts/commands/editor/open.js +0 -27
- package/shortcutContexts/commands/editor/open.mjs +0 -23
- package/shortcutContexts/commands/emptySelectedCells.js +0 -11
- package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
- package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -21
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -17
- package/shortcutContexts/commands/extendCellsSelection/index.js +0 -26
- package/shortcutContexts/commands/extendCellsSelection/index.mjs +0 -22
- package/shortcutContexts/commands/extendCellsSelection/left.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -21
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -17
- package/shortcutContexts/commands/index.js +0 -35
- package/shortcutContexts/commands/index.mjs +0 -31
- package/shortcutContexts/commands/moveCellSelection/down.js +0 -13
- package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -9
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -31
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -27
- package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
- package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -12
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -12
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
- package/shortcutContexts/commands/moveCellSelection/left.js +0 -10
- package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
- package/shortcutContexts/commands/moveCellSelection/right.js +0 -10
- package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -13
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -18
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -14
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -14
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -10
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -13
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -19
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -15
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -21
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -13
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -19
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -15
- package/shortcutContexts/commands/moveCellSelection/up.js +0 -13
- package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -9
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -31
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -27
- package/shortcutContexts/commands/populateSelectedCellsData.js +0 -29
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -25
- package/shortcutContexts/commands/scrollToFocusedCell.js +0 -36
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +0 -32
- package/shortcutContexts/commands/selectAll.js +0 -10
- package/shortcutContexts/commands/selectAll.mjs +0 -6
- package/shortcutContexts/constants.js +0 -13
- package/shortcutContexts/constants.mjs +0 -8
- package/shortcutContexts/editor.js +0 -25
- package/shortcutContexts/editor.mjs +0 -21
- package/shortcutContexts/grid.js +0 -163
- package/shortcutContexts/grid.mjs +0 -159
- package/shortcutContexts/index.js +0 -24
- package/shortcutContexts/index.mjs +0 -11
package/editorManager.js
CHANGED
@@ -2,14 +2,16 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
var _unicode = require("./helpers/unicode");
|
5
|
-
var _element = require("./helpers/dom/element");
|
6
5
|
var _event = require("./helpers/dom/event");
|
6
|
+
var _element = require("./helpers/dom/element");
|
7
7
|
var _registry = require("./editors/registry");
|
8
8
|
var _eventManager = _interopRequireDefault(require("./eventManager"));
|
9
9
|
var _mixed = require("./helpers/mixed");
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
11
11
|
const SHORTCUTS_GROUP_NAVIGATION = 'editorManager.navigation';
|
12
12
|
exports.SHORTCUTS_GROUP_NAVIGATION = SHORTCUTS_GROUP_NAVIGATION;
|
13
|
+
const SHORTCUTS_GROUP_EDITOR = 'editorManager.handlingEditor';
|
14
|
+
exports.SHORTCUTS_GROUP_EDITOR = SHORTCUTS_GROUP_EDITOR;
|
13
15
|
class EditorManager {
|
14
16
|
/**
|
15
17
|
* @param {Core} instance The Handsontable instance.
|
@@ -72,6 +74,9 @@ class EditorManager {
|
|
72
74
|
* @type {object}
|
73
75
|
*/
|
74
76
|
this.cellProperties = void 0;
|
77
|
+
const shortcutManager = this.instance.getShortcutManager();
|
78
|
+
shortcutManager.addContext('editor');
|
79
|
+
this.registerShortcuts();
|
75
80
|
this.instance.addHook('afterDocumentKeyDown', event => this.onAfterDocumentKeyDown(event));
|
76
81
|
|
77
82
|
// Open editor when text composition is started (IME editor)
|
@@ -83,6 +88,62 @@ class EditorManager {
|
|
83
88
|
this.instance.view._wt.update('onCellDblClick', (event, coords, elem) => this.onCellDblClick(event, coords, elem));
|
84
89
|
}
|
85
90
|
|
91
|
+
/**
|
92
|
+
* Register shortcuts responsible for handling some actions related to an editor.
|
93
|
+
*
|
94
|
+
* @private
|
95
|
+
*/
|
96
|
+
registerShortcuts() {
|
97
|
+
const shortcutManager = this.instance.getShortcutManager();
|
98
|
+
const gridContext = shortcutManager.getContext('grid');
|
99
|
+
const editorContext = shortcutManager.getContext('editor');
|
100
|
+
const config = {
|
101
|
+
group: SHORTCUTS_GROUP_EDITOR
|
102
|
+
};
|
103
|
+
editorContext.addShortcuts([{
|
104
|
+
keys: [['Enter'], ['Enter', 'Shift'], ['Enter', 'Control/Meta'], ['Enter', 'Control/Meta', 'Shift']],
|
105
|
+
callback: (event, keys) => {
|
106
|
+
this.closeEditorAndSaveChanges(shortcutManager.isCtrlPressed());
|
107
|
+
this.moveSelectionAfterEnter(keys.includes('shift'));
|
108
|
+
}
|
109
|
+
}, {
|
110
|
+
keys: [['Escape'], ['Escape', 'Control/Meta']],
|
111
|
+
callback: () => {
|
112
|
+
this.closeEditorAndRestoreOriginalValue(shortcutManager.isCtrlPressed());
|
113
|
+
this.activeEditor.focus();
|
114
|
+
}
|
115
|
+
}], config);
|
116
|
+
gridContext.addShortcuts([{
|
117
|
+
keys: [['F2']],
|
118
|
+
callback: event => {
|
119
|
+
this.openEditor(null, event, true);
|
120
|
+
}
|
121
|
+
}, {
|
122
|
+
keys: [['Backspace'], ['Delete']],
|
123
|
+
callback: () => {
|
124
|
+
this.instance.emptySelectedCells();
|
125
|
+
this.prepareEditor();
|
126
|
+
}
|
127
|
+
}, {
|
128
|
+
keys: [['Enter'], ['Enter', 'Shift']],
|
129
|
+
callback: (event, keys) => {
|
130
|
+
if (this.instance.getSettings().enterBeginsEditing) {
|
131
|
+
if (this.cellProperties.readOnly) {
|
132
|
+
this.moveSelectionAfterEnter();
|
133
|
+
} else {
|
134
|
+
this.openEditor(null, event, true);
|
135
|
+
}
|
136
|
+
} else {
|
137
|
+
this.moveSelectionAfterEnter(keys.includes('shift'));
|
138
|
+
}
|
139
|
+
(0, _event.stopImmediatePropagation)(event); // required by HandsontableEditor
|
140
|
+
}
|
141
|
+
}], {
|
142
|
+
...config,
|
143
|
+
runOnlyIf: () => (0, _mixed.isDefined)(this.instance.getSelected())
|
144
|
+
});
|
145
|
+
}
|
146
|
+
|
86
147
|
/**
|
87
148
|
* Lock the editor from being prepared and closed. Locking the editor prevents its closing and
|
88
149
|
* reinitialized after selecting the new cell. This feature is necessary for a mobile editor.
|
@@ -135,16 +196,10 @@ class EditorManager {
|
|
135
196
|
});
|
136
197
|
return;
|
137
198
|
}
|
138
|
-
const {
|
139
|
-
highlight
|
140
|
-
} = this.instance.getSelectedRangeLast();
|
141
|
-
if (highlight.isHeader()) {
|
142
|
-
return;
|
143
|
-
}
|
144
199
|
const {
|
145
200
|
row,
|
146
201
|
col
|
147
|
-
} = highlight;
|
202
|
+
} = this.instance.getSelectedRangeLast().highlight;
|
148
203
|
const modifiedCellCoords = this.instance.runHooks('modifyGetCellCoords', row, col);
|
149
204
|
let visualRowToCheck = row;
|
150
205
|
let visualColumnToCheck = col;
|
@@ -208,7 +263,14 @@ class EditorManager {
|
|
208
263
|
return;
|
209
264
|
}
|
210
265
|
if (!this.activeEditor) {
|
211
|
-
|
266
|
+
const {
|
267
|
+
row,
|
268
|
+
col
|
269
|
+
} = this.instance.getSelectedRangeLast().highlight;
|
270
|
+
const renderableRowIndex = this.instance.rowIndexMapper.getRenderableFromVisualIndex(row);
|
271
|
+
const renderableColumnIndex = this.instance.columnIndexMapper.getRenderableFromVisualIndex(col);
|
272
|
+
this.instance.view.scrollViewport(this.instance._createCellCoords(renderableRowIndex, renderableColumnIndex));
|
273
|
+
this.instance.view.render();
|
212
274
|
this.prepareEditor();
|
213
275
|
}
|
214
276
|
if (this.activeEditor) {
|
@@ -312,13 +374,15 @@ class EditorManager {
|
|
312
374
|
* @param {KeyboardEvent} event The keyboard event object.
|
313
375
|
*/
|
314
376
|
onAfterDocumentKeyDown(event) {
|
315
|
-
|
316
|
-
if (!this.instance.isListening() || !selection || selection.highlight.isHeader() || (0, _event.isImmediatePropagationStopped)(event)) {
|
377
|
+
if (!this.instance.isListening()) {
|
317
378
|
return;
|
318
379
|
}
|
319
380
|
const {
|
320
381
|
keyCode
|
321
382
|
} = event;
|
383
|
+
if (!this.selection.isSelected()) {
|
384
|
+
return;
|
385
|
+
}
|
322
386
|
|
323
387
|
// catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
|
324
388
|
const isCtrlPressed = (event.ctrlKey || event.metaKey) && !event.altKey;
|
package/editorManager.mjs
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
import { isFunctionKey, isCtrlMetaKey } from "./helpers/unicode.mjs";
|
2
|
+
import { stopImmediatePropagation } from "./helpers/dom/event.mjs";
|
2
3
|
import { isOutsideInput } from "./helpers/dom/element.mjs";
|
3
|
-
import { isImmediatePropagationStopped } from "./helpers/dom/event.mjs";
|
4
4
|
import { getEditorInstance } from "./editors/registry.mjs";
|
5
5
|
import EventManager from "./eventManager.mjs";
|
6
6
|
import { isDefined } from "./helpers/mixed.mjs";
|
7
7
|
export const SHORTCUTS_GROUP_NAVIGATION = 'editorManager.navigation';
|
8
|
+
export const SHORTCUTS_GROUP_EDITOR = 'editorManager.handlingEditor';
|
8
9
|
class EditorManager {
|
9
10
|
/**
|
10
11
|
* @param {Core} instance The Handsontable instance.
|
@@ -67,6 +68,9 @@ class EditorManager {
|
|
67
68
|
* @type {object}
|
68
69
|
*/
|
69
70
|
this.cellProperties = void 0;
|
71
|
+
const shortcutManager = this.instance.getShortcutManager();
|
72
|
+
shortcutManager.addContext('editor');
|
73
|
+
this.registerShortcuts();
|
70
74
|
this.instance.addHook('afterDocumentKeyDown', event => this.onAfterDocumentKeyDown(event));
|
71
75
|
|
72
76
|
// Open editor when text composition is started (IME editor)
|
@@ -78,6 +82,62 @@ class EditorManager {
|
|
78
82
|
this.instance.view._wt.update('onCellDblClick', (event, coords, elem) => this.onCellDblClick(event, coords, elem));
|
79
83
|
}
|
80
84
|
|
85
|
+
/**
|
86
|
+
* Register shortcuts responsible for handling some actions related to an editor.
|
87
|
+
*
|
88
|
+
* @private
|
89
|
+
*/
|
90
|
+
registerShortcuts() {
|
91
|
+
const shortcutManager = this.instance.getShortcutManager();
|
92
|
+
const gridContext = shortcutManager.getContext('grid');
|
93
|
+
const editorContext = shortcutManager.getContext('editor');
|
94
|
+
const config = {
|
95
|
+
group: SHORTCUTS_GROUP_EDITOR
|
96
|
+
};
|
97
|
+
editorContext.addShortcuts([{
|
98
|
+
keys: [['Enter'], ['Enter', 'Shift'], ['Enter', 'Control/Meta'], ['Enter', 'Control/Meta', 'Shift']],
|
99
|
+
callback: (event, keys) => {
|
100
|
+
this.closeEditorAndSaveChanges(shortcutManager.isCtrlPressed());
|
101
|
+
this.moveSelectionAfterEnter(keys.includes('shift'));
|
102
|
+
}
|
103
|
+
}, {
|
104
|
+
keys: [['Escape'], ['Escape', 'Control/Meta']],
|
105
|
+
callback: () => {
|
106
|
+
this.closeEditorAndRestoreOriginalValue(shortcutManager.isCtrlPressed());
|
107
|
+
this.activeEditor.focus();
|
108
|
+
}
|
109
|
+
}], config);
|
110
|
+
gridContext.addShortcuts([{
|
111
|
+
keys: [['F2']],
|
112
|
+
callback: event => {
|
113
|
+
this.openEditor(null, event, true);
|
114
|
+
}
|
115
|
+
}, {
|
116
|
+
keys: [['Backspace'], ['Delete']],
|
117
|
+
callback: () => {
|
118
|
+
this.instance.emptySelectedCells();
|
119
|
+
this.prepareEditor();
|
120
|
+
}
|
121
|
+
}, {
|
122
|
+
keys: [['Enter'], ['Enter', 'Shift']],
|
123
|
+
callback: (event, keys) => {
|
124
|
+
if (this.instance.getSettings().enterBeginsEditing) {
|
125
|
+
if (this.cellProperties.readOnly) {
|
126
|
+
this.moveSelectionAfterEnter();
|
127
|
+
} else {
|
128
|
+
this.openEditor(null, event, true);
|
129
|
+
}
|
130
|
+
} else {
|
131
|
+
this.moveSelectionAfterEnter(keys.includes('shift'));
|
132
|
+
}
|
133
|
+
stopImmediatePropagation(event); // required by HandsontableEditor
|
134
|
+
}
|
135
|
+
}], {
|
136
|
+
...config,
|
137
|
+
runOnlyIf: () => isDefined(this.instance.getSelected())
|
138
|
+
});
|
139
|
+
}
|
140
|
+
|
81
141
|
/**
|
82
142
|
* Lock the editor from being prepared and closed. Locking the editor prevents its closing and
|
83
143
|
* reinitialized after selecting the new cell. This feature is necessary for a mobile editor.
|
@@ -130,16 +190,10 @@ class EditorManager {
|
|
130
190
|
});
|
131
191
|
return;
|
132
192
|
}
|
133
|
-
const {
|
134
|
-
highlight
|
135
|
-
} = this.instance.getSelectedRangeLast();
|
136
|
-
if (highlight.isHeader()) {
|
137
|
-
return;
|
138
|
-
}
|
139
193
|
const {
|
140
194
|
row,
|
141
195
|
col
|
142
|
-
} = highlight;
|
196
|
+
} = this.instance.getSelectedRangeLast().highlight;
|
143
197
|
const modifiedCellCoords = this.instance.runHooks('modifyGetCellCoords', row, col);
|
144
198
|
let visualRowToCheck = row;
|
145
199
|
let visualColumnToCheck = col;
|
@@ -203,7 +257,14 @@ class EditorManager {
|
|
203
257
|
return;
|
204
258
|
}
|
205
259
|
if (!this.activeEditor) {
|
206
|
-
|
260
|
+
const {
|
261
|
+
row,
|
262
|
+
col
|
263
|
+
} = this.instance.getSelectedRangeLast().highlight;
|
264
|
+
const renderableRowIndex = this.instance.rowIndexMapper.getRenderableFromVisualIndex(row);
|
265
|
+
const renderableColumnIndex = this.instance.columnIndexMapper.getRenderableFromVisualIndex(col);
|
266
|
+
this.instance.view.scrollViewport(this.instance._createCellCoords(renderableRowIndex, renderableColumnIndex));
|
267
|
+
this.instance.view.render();
|
207
268
|
this.prepareEditor();
|
208
269
|
}
|
209
270
|
if (this.activeEditor) {
|
@@ -307,13 +368,15 @@ class EditorManager {
|
|
307
368
|
* @param {KeyboardEvent} event The keyboard event object.
|
308
369
|
*/
|
309
370
|
onAfterDocumentKeyDown(event) {
|
310
|
-
|
311
|
-
if (!this.instance.isListening() || !selection || selection.highlight.isHeader() || isImmediatePropagationStopped(event)) {
|
371
|
+
if (!this.instance.isListening()) {
|
312
372
|
return;
|
313
373
|
}
|
314
374
|
const {
|
315
375
|
keyCode
|
316
376
|
} = event;
|
377
|
+
if (!this.selection.isSelected()) {
|
378
|
+
return;
|
379
|
+
}
|
317
380
|
|
318
381
|
// catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
|
319
382
|
const isCtrlPressed = (event.ctrlKey || event.metaKey) && !event.altKey;
|
@@ -32,6 +32,7 @@ export abstract class BaseEditor {
|
|
32
32
|
finishEditing(restoreOriginalValue?: boolean, ctrlDown?: boolean, callback?: () => void): void;
|
33
33
|
abstract focus(): void;
|
34
34
|
getEditedCell(): HTMLTableCellElement | null;
|
35
|
+
getEditedCellRect(): { top: number, start: number, width: number, maxWidth: number, height: number, maxHeight: number } | undefined;
|
35
36
|
getEditedCellsZIndex(): string;
|
36
37
|
abstract getValue(): any;
|
37
38
|
init(): void;
|
@@ -416,7 +416,9 @@ class TextEditor extends _baseEditor.BaseEditor {
|
|
416
416
|
runOnlyIf: event => !this.hot.selection.isMultiple() &&
|
417
417
|
// We trigger a data population for multiple selection.
|
418
418
|
// catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
|
419
|
-
!event.altKey
|
419
|
+
!event.altKey,
|
420
|
+
relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
|
421
|
+
position: 'before'
|
420
422
|
}, {
|
421
423
|
keys: [['Meta', 'Enter']],
|
422
424
|
callback: () => {
|
@@ -424,13 +426,19 @@ class TextEditor extends _baseEditor.BaseEditor {
|
|
424
426
|
return false; // Will block closing editor.
|
425
427
|
},
|
426
428
|
|
427
|
-
runOnlyIf: () => !this.hot.selection.isMultiple()
|
429
|
+
runOnlyIf: () => !this.hot.selection.isMultiple(),
|
430
|
+
// We trigger a data population for multiple selection.
|
431
|
+
relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
|
432
|
+
position: 'before'
|
428
433
|
}, {
|
429
434
|
keys: [['Alt', 'Enter']],
|
430
435
|
callback: () => {
|
431
436
|
insertNewLine();
|
432
437
|
return false; // Will block closing editor.
|
433
|
-
}
|
438
|
+
},
|
439
|
+
|
440
|
+
relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
|
441
|
+
position: 'before'
|
434
442
|
}, {
|
435
443
|
// TODO: Duplicated part of code (callback to shortcut)
|
436
444
|
keys: [['PageUp']],
|
@@ -6,7 +6,7 @@ import { rangeEach } from "../../helpers/number.mjs";
|
|
6
6
|
import { KEY_CODES } from "../../helpers/unicode.mjs";
|
7
7
|
import { autoResize } from "../../3rdparty/autoResize/index.mjs";
|
8
8
|
import { isDefined } from "../../helpers/mixed.mjs";
|
9
|
-
import { SHORTCUTS_GROUP_NAVIGATION } from "../../editorManager.mjs";
|
9
|
+
import { SHORTCUTS_GROUP_NAVIGATION, SHORTCUTS_GROUP_EDITOR as EDITOR_MANAGER_GROUP } from "../../editorManager.mjs";
|
10
10
|
import { SHORTCUTS_GROUP_EDITOR } from "../baseEditor/baseEditor.mjs";
|
11
11
|
import { updateCaretPosition } from "./caretPositioner.mjs";
|
12
12
|
const EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';
|
@@ -411,7 +411,9 @@ export class TextEditor extends BaseEditor {
|
|
411
411
|
runOnlyIf: event => !this.hot.selection.isMultiple() &&
|
412
412
|
// We trigger a data population for multiple selection.
|
413
413
|
// catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
|
414
|
-
!event.altKey
|
414
|
+
!event.altKey,
|
415
|
+
relativeToGroup: EDITOR_MANAGER_GROUP,
|
416
|
+
position: 'before'
|
415
417
|
}, {
|
416
418
|
keys: [['Meta', 'Enter']],
|
417
419
|
callback: () => {
|
@@ -419,13 +421,19 @@ export class TextEditor extends BaseEditor {
|
|
419
421
|
return false; // Will block closing editor.
|
420
422
|
},
|
421
423
|
|
422
|
-
runOnlyIf: () => !this.hot.selection.isMultiple()
|
424
|
+
runOnlyIf: () => !this.hot.selection.isMultiple(),
|
425
|
+
// We trigger a data population for multiple selection.
|
426
|
+
relativeToGroup: EDITOR_MANAGER_GROUP,
|
427
|
+
position: 'before'
|
423
428
|
}, {
|
424
429
|
keys: [['Alt', 'Enter']],
|
425
430
|
callback: () => {
|
426
431
|
insertNewLine();
|
427
432
|
return false; // Will block closing editor.
|
428
|
-
}
|
433
|
+
},
|
434
|
+
|
435
|
+
relativeToGroup: EDITOR_MANAGER_GROUP,
|
436
|
+
position: 'before'
|
429
437
|
}, {
|
430
438
|
// TODO: Duplicated part of code (callback to shortcut)
|
431
439
|
keys: [['PageUp']],
|
package/helpers/mixed.js
CHANGED
@@ -134,7 +134,7 @@ const domMessages = {
|
|
134
134
|
function _injectProductInfo(key, element) {
|
135
135
|
const hasValidType = !isEmpty(key);
|
136
136
|
const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
|
137
|
-
const hotVersion = "0.0.0-next-
|
137
|
+
const hotVersion = "0.0.0-next-7e1ba35-20230821";
|
138
138
|
let keyValidityDate;
|
139
139
|
let consoleMessageState = 'invalid';
|
140
140
|
let domMessageState = 'invalid';
|
package/helpers/mixed.mjs
CHANGED
@@ -124,7 +124,7 @@ const domMessages = {
|
|
124
124
|
export function _injectProductInfo(key, element) {
|
125
125
|
const hasValidType = !isEmpty(key);
|
126
126
|
const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
|
127
|
-
const hotVersion = "0.0.0-next-
|
127
|
+
const hotVersion = "0.0.0-next-7e1ba35-20230821";
|
128
128
|
let keyValidityDate;
|
129
129
|
let consoleMessageState = 'invalid';
|
130
130
|
let domMessageState = 'invalid';
|
package/helpers/number.d.ts
CHANGED
@@ -3,4 +3,3 @@ export function isNumericLike(value: any): boolean;
|
|
3
3
|
export function rangeEach(rangeFrom: number, rangeTo: number, iteratee: (index: number) => void): void;
|
4
4
|
export function rangeEachReverse(rangeFrom: number, rangeTo: number, iteratee: (index: number) => void): void;
|
5
5
|
export function valueAccordingPercent(value: number, percent: string | number): number;
|
6
|
-
export function clamp(value: number, minValue: number, maxValue: number): number;
|
package/helpers/number.js
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
-
exports.clamp = clamp;
|
5
4
|
exports.isNumeric = isNumeric;
|
6
5
|
exports.isNumericLike = isNumericLike;
|
7
6
|
exports.rangeEach = rangeEach;
|
@@ -112,21 +111,4 @@ function valueAccordingPercent(value, percent) {
|
|
112
111
|
percent = parseInt(percent.toString().replace('%', ''), 10);
|
113
112
|
percent = isNaN(percent) ? 0 : percent;
|
114
113
|
return parseInt(value * percent / 100, 10);
|
115
|
-
}
|
116
|
-
|
117
|
-
/**
|
118
|
-
* Clamps the value between min and max.
|
119
|
-
*
|
120
|
-
* @param {number} value The base number value.
|
121
|
-
* @param {number} minValue The max number value.
|
122
|
-
* @param {number} maxValue The min number value.
|
123
|
-
* @returns {number}
|
124
|
-
*/
|
125
|
-
function clamp(value, minValue, maxValue) {
|
126
|
-
if (Math.min(value, minValue) === value) {
|
127
|
-
return minValue;
|
128
|
-
} else if (Math.max(value, maxValue) === value) {
|
129
|
-
return maxValue;
|
130
|
-
}
|
131
|
-
return value;
|
132
114
|
}
|
package/helpers/number.mjs
CHANGED
@@ -103,21 +103,4 @@ export function valueAccordingPercent(value, percent) {
|
|
103
103
|
percent = parseInt(percent.toString().replace('%', ''), 10);
|
104
104
|
percent = isNaN(percent) ? 0 : percent;
|
105
105
|
return parseInt(value * percent / 100, 10);
|
106
|
-
}
|
107
|
-
|
108
|
-
/**
|
109
|
-
* Clamps the value between min and max.
|
110
|
-
*
|
111
|
-
* @param {number} value The base number value.
|
112
|
-
* @param {number} minValue The max number value.
|
113
|
-
* @param {number} maxValue The min number value.
|
114
|
-
* @returns {number}
|
115
|
-
*/
|
116
|
-
export function clamp(value, minValue, maxValue) {
|
117
|
-
if (Math.min(value, minValue) === value) {
|
118
|
-
return minValue;
|
119
|
-
} else if (Math.max(value, maxValue) === value) {
|
120
|
-
return maxValue;
|
121
|
-
}
|
122
|
-
return value;
|
123
106
|
}
|
package/package.json
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
"url": "https://github.com/handsontable/handsontable/issues"
|
11
11
|
},
|
12
12
|
"author": "Handsoncode <hello@handsontable.com>",
|
13
|
-
"version": "0.0.0-next-
|
13
|
+
"version": "0.0.0-next-7e1ba35-20230821",
|
14
14
|
"main": "index",
|
15
15
|
"module": "index.mjs",
|
16
16
|
"jsnext:main": "index.mjs",
|
package/pluginHooks.d.ts
CHANGED
@@ -110,8 +110,8 @@ export interface Events {
|
|
110
110
|
afterOnCellCornerDblClick?: (event: MouseEvent) => void;
|
111
111
|
afterOnCellCornerMouseDown?: (event: MouseEvent) => void;
|
112
112
|
afterOnCellMouseDown?: (event: MouseEvent, coords: CellCoords, TD: HTMLTableCellElement) => void;
|
113
|
-
afterOnCellMouseOut?: (event: MouseEvent, coords: CellCoords, TD: HTMLTableCellElement) => void;
|
114
113
|
afterOnCellMouseOver?: (event: MouseEvent, coords: CellCoords, TD: HTMLTableCellElement) => void;
|
114
|
+
afterOnCellMouseOut?: (event: MouseEvent, coords: CellCoords, TD: HTMLTableCellElement) => void;
|
115
115
|
afterOnCellMouseUp?: (event: MouseEvent, coords: CellCoords, TD: HTMLTableCellElement) => void;
|
116
116
|
afterPaste?: (data: CellValue[][], coords: RangeType[]) => void;
|
117
117
|
afterPluginsInitialized?: () => void;
|
@@ -128,13 +128,10 @@ export interface Events {
|
|
128
128
|
afterRowSequenceChange?: (source: 'init' | 'move' | 'insert' | 'remove' | 'update') => void;
|
129
129
|
afterScrollHorizontally?: () => void;
|
130
130
|
afterScrollVertically?: () => void;
|
131
|
-
afterScroll?: () => void;
|
132
|
-
afterSelectColumns?: (from: CellCoords, to: CellCoords, highlight: CellCoords) => void;
|
133
131
|
afterSelection?: (row: number, column: number, row2: number, column2: number, preventScrolling: { value: boolean }, selectionLayerLevel: number) => void;
|
134
132
|
afterSelectionByProp?: (row: number, prop: string, row2: number, prop2: string, preventScrolling: { value: boolean }, selectionLayerLevel: number) => void;
|
135
133
|
afterSelectionEnd?: (row: number, column: number, row2: number, column2: number, selectionLayerLevel: number) => void;
|
136
134
|
afterSelectionEndByProp?: (row: number, prop: string, row2: number, prop2: string, selectionLayerLevel: number) => void;
|
137
|
-
afterSelectRows?: (from: CellCoords, to: CellCoords, highlight: CellCoords) => void;
|
138
135
|
afterSetCellMeta?: (row: number, column: number, key: string, value: any) => void;
|
139
136
|
afterSetDataAtCell?: (changes: CellChange[], source?: ChangeSource) => void;
|
140
137
|
afterSetDataAtRowProp?: (changes: CellChange[], source?: ChangeSource) => void;
|
@@ -208,8 +205,6 @@ export interface Events {
|
|
208
205
|
beforeRenderer?: (TD: HTMLTableCellElement, row: number, column: number, prop: string | number, value: CellValue, cellProperties: CellProperties) => void;
|
209
206
|
beforeRowMove?: (movedRows: number[], finalIndex: number, dropIndex: number | undefined, movePossible: boolean) => void;
|
210
207
|
beforeRowResize?: (newSize: number, row: number, isDoubleClick: boolean) => number | void;
|
211
|
-
beforeSelectColumns?: (from: CellCoords, to: CellCoords, highlight: CellCoords) => void;
|
212
|
-
beforeSelectRows?: (from: CellCoords, to: CellCoords, highlight: CellCoords) => void;
|
213
208
|
beforeSetCellMeta?: (row: number, col: number, key: string, value: any) => boolean | void;
|
214
209
|
beforeSetRangeEnd?: (coords: CellCoords) => void;
|
215
210
|
beforeSetRangeStart?: (coords: CellCoords) => void;
|
@@ -237,7 +232,6 @@ export interface Events {
|
|
237
232
|
modifyColWidth?: (width: number, column: number) => void;
|
238
233
|
modifyCopyableRange?: (copyableRanges: RangeType[]) => void;
|
239
234
|
modifyData?: (row: number, column: number, valueHolder: { value: CellValue }, ioMode: 'get' | 'set') => void;
|
240
|
-
modifyFocusOnTabNavigation?: (tabActivationDir: 'from_above' | 'from_below', visualCoords: CellCoords) => void;
|
241
235
|
modifyGetCellCoords?: (row: number, column: number, topmost: boolean) => void | [number, number] | [number, number, number, number];
|
242
236
|
modifyRowData?: (row: number) => void;
|
243
237
|
modifyRowHeader?: (row: number) => void;
|
package/pluginHooks.js
CHANGED
@@ -554,13 +554,6 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
|
|
554
554
|
* @event Hooks#afterScrollVertically
|
555
555
|
*/
|
556
556
|
'afterScrollVertically',
|
557
|
-
/**
|
558
|
-
* Fired after the vertical or horizontal scroll event.
|
559
|
-
*
|
560
|
-
* @since 14.0.0
|
561
|
-
* @event Hooks#afterScroll
|
562
|
-
*/
|
563
|
-
'afterScroll',
|
564
557
|
/**
|
565
558
|
* Fired after one or more cells are selected (e.g. During mouse move).
|
566
559
|
*
|
@@ -664,94 +657,6 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
|
|
664
657
|
* @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
|
665
658
|
*/
|
666
659
|
'afterSelectionEndByProp',
|
667
|
-
/**
|
668
|
-
* Fired before one or more columns are selected (e.g. During mouse header click or {@link Core#selectColumns} API call).
|
669
|
-
*
|
670
|
-
* @since 14.0.0
|
671
|
-
* @event Hooks#beforeSelectColumns
|
672
|
-
* @param {CellCoords} from Selection start coords object.
|
673
|
-
* @param {CellCoords} to Selection end coords object.
|
674
|
-
* @param {CellCoords} highlight Selection cell focus coords object.
|
675
|
-
* @example
|
676
|
-
* ::: only-for javascript
|
677
|
-
* ```js
|
678
|
-
* new Handsontable(element, {
|
679
|
-
* beforeSelectColumns: (from, to, highlight) => {
|
680
|
-
* // Extend the column selection by one column left and one column right.
|
681
|
-
* from.col = Math.max(from.col - 1, 0);
|
682
|
-
* to.col = Math.min(to.col + 1, this.countCols() - 1);
|
683
|
-
* }
|
684
|
-
* })
|
685
|
-
* ```
|
686
|
-
* :::
|
687
|
-
*
|
688
|
-
* ::: only-for react
|
689
|
-
* ```jsx
|
690
|
-
* <HotTable
|
691
|
-
* beforeSelectColumns={(from, to, highlight) => {
|
692
|
-
* // Extend the column selection by one column left and one column right.
|
693
|
-
* from.col = Math.max(from.col - 1, 0);
|
694
|
-
* to.col = Math.min(to.col + 1, this.countCols() - 1);
|
695
|
-
* }}
|
696
|
-
* />
|
697
|
-
* ```
|
698
|
-
* :::
|
699
|
-
*/
|
700
|
-
'beforeSelectColumns',
|
701
|
-
/**
|
702
|
-
* Fired after one or more columns are selected (e.g. During mouse header click or {@link Core#selectColumns} API call).
|
703
|
-
*
|
704
|
-
* @since 14.0.0
|
705
|
-
* @event Hooks#afterSelectColumns
|
706
|
-
* @param {CellCoords} from Selection start coords object.
|
707
|
-
* @param {CellCoords} to Selection end coords object.
|
708
|
-
* @param {CellCoords} highlight Selection cell focus coords object.
|
709
|
-
*/
|
710
|
-
'afterSelectColumns',
|
711
|
-
/**
|
712
|
-
* Fired before one or more rows are selected (e.g. During mouse header click or {@link Core#selectRows} API call).
|
713
|
-
*
|
714
|
-
* @since 14.0.0
|
715
|
-
* @event Hooks#beforeSelectRows
|
716
|
-
* @param {CellCoords} from Selection start coords object.
|
717
|
-
* @param {CellCoords} to Selection end coords object.
|
718
|
-
* @param {CellCoords} highlight Selection cell focus coords object.
|
719
|
-
* @example
|
720
|
-
* ::: only-for javascript
|
721
|
-
* ```js
|
722
|
-
* new Handsontable(element, {
|
723
|
-
* beforeSelectRows: (from, to, highlight) => {
|
724
|
-
* // Extend the row selection by one row up and one row bottom more.
|
725
|
-
* from.row = Math.max(from.row - 1, 0);
|
726
|
-
* to.row = Math.min(to.row + 1, this.countRows() - 1);
|
727
|
-
* }
|
728
|
-
* })
|
729
|
-
* ```
|
730
|
-
* :::
|
731
|
-
*
|
732
|
-
* ::: only-for react
|
733
|
-
* ```jsx
|
734
|
-
* <HotTable
|
735
|
-
* beforeSelectRows={(from, to, highlight) => {
|
736
|
-
* // Extend the row selection by one row up and one row bottom more.
|
737
|
-
* from.row = Math.max(from.row - 1, 0);
|
738
|
-
* to.row = Math.min(to.row + 1, this.countRows() - 1);
|
739
|
-
* }}
|
740
|
-
* />
|
741
|
-
* ```
|
742
|
-
* :::
|
743
|
-
*/
|
744
|
-
'beforeSelectRows',
|
745
|
-
/**
|
746
|
-
* Fired after one or more rows are selected (e.g. During mouse header click or {@link Core#selectRows} API call).
|
747
|
-
*
|
748
|
-
* @since 14.0.0
|
749
|
-
* @event Hooks#afterSelectRows
|
750
|
-
* @param {CellCoords} from Selection start coords object.
|
751
|
-
* @param {CellCoords} to Selection end coords object.
|
752
|
-
* @param {CellCoords} highlight Selection cell focus coords object.
|
753
|
-
*/
|
754
|
-
'afterSelectRows',
|
755
660
|
/**
|
756
661
|
* Fired after cell meta is changed.
|
757
662
|
*
|
@@ -1320,16 +1225,6 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
|
|
1320
1225
|
* @returns {undefined|number[]}
|
1321
1226
|
*/
|
1322
1227
|
'modifyGetCellCoords',
|
1323
|
-
/**
|
1324
|
-
* Used to modify the cell coordinates when the table is activated (going into the listen mode).
|
1325
|
-
*
|
1326
|
-
* @event Hooks#modifyFocusOnTabNavigation
|
1327
|
-
* @since 14.0.0
|
1328
|
-
* @param {'from_above' | 'from_below'} tabActivationDir The browsers Tab navigation direction. Depending on
|
1329
|
-
* whether the user activated the table from the element above or below, another cell can be selected.
|
1330
|
-
* @param {CellCoords} visualCoords The coords that will be used to select a cell.
|
1331
|
-
*/
|
1332
|
-
'modifyFocusOnTabNavigation',
|
1333
1228
|
/**
|
1334
1229
|
* Allows modify the visual row index that is used to retrieve the row header element (TH) before it's
|
1335
1230
|
* highlighted (proper CSS class names are added). Modifying the visual row index allows building a custom
|
@@ -2487,7 +2382,7 @@ const REMOVED_HOOKS = new Map([['modifyRow', '8.0.0'], ['modifyCol', '8.0.0'], [
|
|
2487
2382
|
* @type {Map<string, string>}
|
2488
2383
|
*/
|
2489
2384
|
/* eslint-enable jsdoc/require-description-complete-sentence */
|
2490
|
-
const DEPRECATED_HOOKS = new Map([
|
2385
|
+
const DEPRECATED_HOOKS = new Map([]);
|
2491
2386
|
class Hooks {
|
2492
2387
|
static getSingleton() {
|
2493
2388
|
return getGlobalSingleton();
|