handsontable 0.0.0-next-ac97c93-20230617 → 0.0.0-next-acb8c02-20230620
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
- package/3rdparty/walkontable/src/cell/coords.js +61 -12
- package/3rdparty/walkontable/src/cell/coords.mjs +61 -12
- package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
- package/3rdparty/walkontable/src/cell/range.js +44 -7
- package/3rdparty/walkontable/src/cell/range.mjs +44 -7
- package/3rdparty/walkontable/src/core/_base.js +9 -3
- package/3rdparty/walkontable/src/core/_base.mjs +9 -3
- package/3rdparty/walkontable/src/core/clone.js +2 -2
- package/3rdparty/walkontable/src/core/clone.mjs +2 -2
- package/3rdparty/walkontable/src/core/core.js +3 -2
- package/3rdparty/walkontable/src/core/core.mjs +3 -2
- package/3rdparty/walkontable/src/event.js +7 -7
- package/3rdparty/walkontable/src/event.mjs +7 -7
- package/3rdparty/walkontable/src/facade/core.js +2 -2
- package/3rdparty/walkontable/src/facade/core.mjs +2 -2
- package/3rdparty/walkontable/src/index.js +10 -2
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +1 -1
- package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -4
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -4
- package/3rdparty/walkontable/src/overlay/top.js +2 -4
- package/3rdparty/walkontable/src/overlay/top.mjs +2 -4
- package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +7 -12
- package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
- package/3rdparty/walkontable/src/selection/border/constants.js +18 -0
- package/3rdparty/walkontable/src/selection/border/constants.mjs +13 -0
- package/3rdparty/walkontable/src/selection/constants.js +63 -0
- package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
- package/3rdparty/walkontable/src/selection/index.js +30 -0
- package/3rdparty/walkontable/src/selection/index.mjs +5 -0
- package/3rdparty/walkontable/src/selection/manager.js +329 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +323 -0
- package/3rdparty/walkontable/src/selection/scanner.js +364 -0
- package/3rdparty/walkontable/src/selection/scanner.mjs +360 -0
- package/3rdparty/walkontable/src/selection/selection.js +133 -0
- package/3rdparty/walkontable/src/selection/selection.mjs +127 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
- package/3rdparty/walkontable/src/table.js +7 -79
- package/3rdparty/walkontable/src/table.mjs +8 -80
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core.d.ts +5 -3
- package/core.js +127 -309
- package/core.mjs +127 -309
- package/dataMap/metaManager/metaSchema.js +19 -0
- package/dataMap/metaManager/metaSchema.mjs +19 -0
- package/dist/handsontable.css +8 -3
- package/dist/handsontable.full.css +8 -3
- package/dist/handsontable.full.js +13260 -10403
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +112 -112
- package/dist/handsontable.js +19121 -16264
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +4 -4
- package/editorManager.js +21 -82
- package/editorManager.mjs +26 -86
- package/editors/textEditor/textEditor.js +3 -11
- package/editors/textEditor/textEditor.mjs +4 -12
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/helpers/number.d.ts +1 -0
- package/helpers/number.js +18 -0
- package/helpers/number.mjs +17 -0
- package/package.json +1 -1
- package/pluginHooks.d.ts +5 -1
- package/pluginHooks.js +89 -1
- package/pluginHooks.mjs +89 -1
- package/plugins/collapsibleColumns/collapsibleColumns.js +81 -24
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +81 -24
- package/plugins/columnSorting/columnSorting.js +50 -8
- package/plugins/columnSorting/columnSorting.mjs +49 -9
- package/plugins/columnSorting/index.js +4 -2
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/contextMenu/utils.js +25 -0
- package/plugins/contextMenu/utils.mjs +24 -0
- package/plugins/copyPaste/copyPaste.js +5 -1
- package/plugins/copyPaste/copyPaste.mjs +5 -1
- package/plugins/customBorders/customBorders.js +18 -53
- package/plugins/customBorders/customBorders.mjs +19 -54
- package/plugins/dropdownMenu/dropdownMenu.js +79 -25
- package/plugins/dropdownMenu/dropdownMenu.mjs +79 -25
- package/plugins/mergeCells/mergeCells.js +5 -18
- package/plugins/mergeCells/mergeCells.mjs +5 -18
- package/plugins/multiColumnSorting/multiColumnSorting.js +42 -3
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +42 -3
- package/plugins/nestedHeaders/nestedHeaders.js +132 -10
- package/plugins/nestedHeaders/nestedHeaders.mjs +132 -10
- package/plugins/nestedHeaders/stateManager/index.js +37 -0
- package/plugins/nestedHeaders/stateManager/index.mjs +37 -0
- package/plugins/nestedRows/nestedRows.js +52 -7
- package/plugins/nestedRows/nestedRows.mjs +52 -7
- package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
- package/selection/highlight/highlight.js +312 -89
- package/selection/highlight/highlight.mjs +302 -85
- package/selection/highlight/types/activeHeader.js +10 -9
- package/selection/highlight/types/activeHeader.mjs +10 -8
- package/selection/highlight/types/area.js +12 -27
- package/selection/highlight/types/area.mjs +16 -30
- package/selection/highlight/types/areaLayered.js +54 -0
- package/selection/highlight/types/areaLayered.mjs +49 -0
- package/selection/highlight/types/column.js +50 -0
- package/selection/highlight/types/column.mjs +45 -0
- package/selection/highlight/types/customSelection.js +7 -10
- package/selection/highlight/types/customSelection.mjs +7 -9
- package/selection/highlight/types/fill.js +5 -8
- package/selection/highlight/types/fill.mjs +5 -7
- package/selection/highlight/types/{cell.js → focus.js} +5 -8
- package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
- package/selection/highlight/types/header.js +10 -20
- package/selection/highlight/types/header.mjs +10 -19
- package/selection/highlight/types/{index.js → row.js} +27 -31
- package/selection/highlight/types/{index.mjs → row.mjs} +24 -29
- package/selection/highlight/visualSelection.js +31 -27
- package/selection/highlight/visualSelection.mjs +31 -27
- package/selection/index.js +4 -7
- package/selection/index.mjs +2 -3
- package/selection/mouseEventHandler.js +1 -1
- package/selection/mouseEventHandler.mjs +1 -1
- package/selection/range.js +8 -8
- package/selection/range.mjs +8 -8
- package/selection/selection.js +315 -181
- package/selection/selection.mjs +310 -180
- package/selection/transformation.js +233 -96
- package/selection/transformation.mjs +230 -93
- package/selection/utils.js +12 -36
- package/selection/utils.mjs +13 -36
- package/settings.d.ts +1 -0
- package/shortcutContexts/commands/editor/closeAndSave.js +15 -0
- package/shortcutContexts/commands/editor/closeAndSave.mjs +10 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +13 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
- package/shortcutContexts/commands/editor/fastOpen.js +16 -0
- package/shortcutContexts/commands/editor/fastOpen.mjs +11 -0
- package/shortcutContexts/commands/editor/index.js +16 -0
- package/shortcutContexts/commands/editor/index.mjs +12 -0
- package/shortcutContexts/commands/editor/open.js +29 -0
- package/shortcutContexts/commands/editor/open.mjs +24 -0
- package/shortcutContexts/commands/emptySelectedCells.js +12 -0
- package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
- package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +21 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +16 -0
- package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
- package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
- package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +14 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +22 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +12 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +12 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +40 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +35 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +40 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +35 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +22 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +14 -0
- package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +21 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +16 -0
- package/shortcutContexts/commands/index.js +52 -0
- package/shortcutContexts/commands/index.mjs +48 -0
- package/shortcutContexts/commands/moveCellSelection/down.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/down.mjs +7 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +29 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
- package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/left.js +11 -0
- package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/right.js +11 -0
- package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +11 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +12 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +11 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +36 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +36 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +11 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +18 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/up.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/up.mjs +7 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +29 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +24 -0
- package/shortcutContexts/commands/populateSelectedCellsData.js +35 -0
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +30 -0
- package/shortcutContexts/commands/selectAll.js +11 -0
- package/shortcutContexts/commands/selectAll.mjs +6 -0
- package/shortcutContexts/constants.js +19 -0
- package/shortcutContexts/constants.mjs +12 -0
- package/shortcutContexts/editor.js +29 -0
- package/shortcutContexts/editor.mjs +25 -0
- package/shortcutContexts/grid.js +244 -0
- package/shortcutContexts/grid.mjs +240 -0
- package/shortcutContexts/index.js +29 -0
- package/shortcutContexts/index.mjs +15 -0
- package/shortcuts/manager.js +2 -0
- package/shortcuts/manager.mjs +2 -0
- package/tableView.js +58 -9
- package/tableView.mjs +58 -9
- package/3rdparty/walkontable/src/selection.js +0 -355
- package/3rdparty/walkontable/src/selection.mjs +0 -349
- package/selection/highlight/constants.js +0 -16
- package/selection/highlight/constants.mjs +0 -6
package/editorManager.js
CHANGED
@@ -7,9 +7,7 @@ require("core-js/modules/es.function.name.js");
|
|
7
7
|
require("core-js/modules/es.array.from.js");
|
8
8
|
require("core-js/modules/es.regexp.exec.js");
|
9
9
|
exports.__esModule = true;
|
10
|
-
exports.default = exports.SHORTCUTS_GROUP_NAVIGATION =
|
11
|
-
require("core-js/modules/es.array.includes.js");
|
12
|
-
require("core-js/modules/es.string.includes.js");
|
10
|
+
exports.default = exports.SHORTCUTS_GROUP_NAVIGATION = void 0;
|
13
11
|
require("core-js/modules/es.symbol.to-primitive.js");
|
14
12
|
require("core-js/modules/es.date.to-primitive.js");
|
15
13
|
require("core-js/modules/es.symbol.js");
|
@@ -21,8 +19,8 @@ require("core-js/modules/es.string.iterator.js");
|
|
21
19
|
require("core-js/modules/es.weak-map.js");
|
22
20
|
require("core-js/modules/web.dom-collections.iterator.js");
|
23
21
|
var _unicode = require("./helpers/unicode");
|
24
|
-
var _event = require("./helpers/dom/event");
|
25
22
|
var _element = require("./helpers/dom/element");
|
23
|
+
var _event = require("./helpers/dom/event");
|
26
24
|
var _registry = require("./editors/registry");
|
27
25
|
var _eventManager = _interopRequireDefault(require("./eventManager"));
|
28
26
|
var _mixed = require("./helpers/mixed");
|
@@ -41,8 +39,6 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _ty
|
|
41
39
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
42
40
|
var SHORTCUTS_GROUP_NAVIGATION = 'editorManager.navigation';
|
43
41
|
exports.SHORTCUTS_GROUP_NAVIGATION = SHORTCUTS_GROUP_NAVIGATION;
|
44
|
-
var SHORTCUTS_GROUP_EDITOR = 'editorManager.handlingEditor';
|
45
|
-
exports.SHORTCUTS_GROUP_EDITOR = SHORTCUTS_GROUP_EDITOR;
|
46
42
|
var EditorManager = /*#__PURE__*/function () {
|
47
43
|
/**
|
48
44
|
* @param {Core} instance The Handsontable instance.
|
@@ -107,9 +103,6 @@ var EditorManager = /*#__PURE__*/function () {
|
|
107
103
|
* @type {object}
|
108
104
|
*/
|
109
105
|
this.cellProperties = void 0;
|
110
|
-
var shortcutManager = this.instance.getShortcutManager();
|
111
|
-
shortcutManager.addContext('editor');
|
112
|
-
this.registerShortcuts();
|
113
106
|
this.instance.addHook('afterDocumentKeyDown', function (event) {
|
114
107
|
return _this.onAfterDocumentKeyDown(event);
|
115
108
|
});
|
@@ -126,66 +119,10 @@ var EditorManager = /*#__PURE__*/function () {
|
|
126
119
|
}
|
127
120
|
|
128
121
|
/**
|
129
|
-
*
|
130
|
-
*
|
131
|
-
* @private
|
122
|
+
* Lock the editor from being prepared and closed. Locking the editor prevents its closing and
|
123
|
+
* reinitialized after selecting the new cell. This feature is necessary for a mobile editor.
|
132
124
|
*/
|
133
125
|
_createClass(EditorManager, [{
|
134
|
-
key: "registerShortcuts",
|
135
|
-
value: function registerShortcuts() {
|
136
|
-
var _this2 = this;
|
137
|
-
var shortcutManager = this.instance.getShortcutManager();
|
138
|
-
var gridContext = shortcutManager.getContext('grid');
|
139
|
-
var editorContext = shortcutManager.getContext('editor');
|
140
|
-
var config = {
|
141
|
-
group: SHORTCUTS_GROUP_EDITOR
|
142
|
-
};
|
143
|
-
editorContext.addShortcuts([{
|
144
|
-
keys: [['Enter'], ['Enter', 'Shift'], ['Enter', 'Control/Meta'], ['Enter', 'Control/Meta', 'Shift']],
|
145
|
-
callback: function callback(event, keys) {
|
146
|
-
_this2.closeEditorAndSaveChanges(shortcutManager.isCtrlPressed());
|
147
|
-
_this2.moveSelectionAfterEnter(keys.includes('shift'));
|
148
|
-
}
|
149
|
-
}, {
|
150
|
-
keys: [['Escape'], ['Escape', 'Control/Meta']],
|
151
|
-
callback: function callback() {
|
152
|
-
_this2.closeEditorAndRestoreOriginalValue(shortcutManager.isCtrlPressed());
|
153
|
-
_this2.activeEditor.focus();
|
154
|
-
}
|
155
|
-
}], config);
|
156
|
-
gridContext.addShortcuts([{
|
157
|
-
keys: [['F2']],
|
158
|
-
callback: function callback(event) {
|
159
|
-
_this2.openEditor(null, event, true);
|
160
|
-
}
|
161
|
-
}, {
|
162
|
-
keys: [['Backspace'], ['Delete']],
|
163
|
-
callback: function callback() {
|
164
|
-
_this2.instance.emptySelectedCells();
|
165
|
-
_this2.prepareEditor();
|
166
|
-
}
|
167
|
-
}, {
|
168
|
-
keys: [['Enter'], ['Enter', 'Shift']],
|
169
|
-
callback: function callback(event, keys) {
|
170
|
-
if (_this2.instance.getSettings().enterBeginsEditing) {
|
171
|
-
if (_this2.cellProperties.readOnly) {
|
172
|
-
_this2.moveSelectionAfterEnter();
|
173
|
-
} else {
|
174
|
-
_this2.openEditor(null, event, true);
|
175
|
-
}
|
176
|
-
} else {
|
177
|
-
_this2.moveSelectionAfterEnter(keys.includes('shift'));
|
178
|
-
}
|
179
|
-
(0, _event.stopImmediatePropagation)(event); // required by HandsontableEditor
|
180
|
-
}
|
181
|
-
}], config);
|
182
|
-
}
|
183
|
-
|
184
|
-
/**
|
185
|
-
* Lock the editor from being prepared and closed. Locking the editor prevents its closing and
|
186
|
-
* reinitialized after selecting the new cell. This feature is necessary for a mobile editor.
|
187
|
-
*/
|
188
|
-
}, {
|
189
126
|
key: "lockEditor",
|
190
127
|
value: function lockEditor() {
|
191
128
|
this.lock = true;
|
@@ -232,21 +169,25 @@ var EditorManager = /*#__PURE__*/function () {
|
|
232
169
|
}, {
|
233
170
|
key: "prepareEditor",
|
234
171
|
value: function prepareEditor() {
|
235
|
-
var
|
172
|
+
var _this2 = this;
|
236
173
|
if (this.lock) {
|
237
174
|
return;
|
238
175
|
}
|
239
176
|
if (this.activeEditor && this.activeEditor.isWaiting()) {
|
240
177
|
this.closeEditor(false, false, function (dataSaved) {
|
241
178
|
if (dataSaved) {
|
242
|
-
|
179
|
+
_this2.prepareEditor();
|
243
180
|
}
|
244
181
|
});
|
245
182
|
return;
|
246
183
|
}
|
247
|
-
var _this$instance$getSel = this.instance.getSelectedRangeLast()
|
248
|
-
|
249
|
-
|
184
|
+
var _this$instance$getSel = this.instance.getSelectedRangeLast(),
|
185
|
+
highlight = _this$instance$getSel.highlight;
|
186
|
+
if (highlight.isHeader()) {
|
187
|
+
return;
|
188
|
+
}
|
189
|
+
var row = highlight.row,
|
190
|
+
col = highlight.col;
|
250
191
|
var modifiedCellCoords = this.instance.runHooks('modifyGetCellCoords', row, col);
|
251
192
|
var visualRowToCheck = row;
|
252
193
|
var visualColumnToCheck = col;
|
@@ -436,14 +377,12 @@ var EditorManager = /*#__PURE__*/function () {
|
|
436
377
|
}, {
|
437
378
|
key: "onAfterDocumentKeyDown",
|
438
379
|
value: function onAfterDocumentKeyDown(event) {
|
439
|
-
var
|
440
|
-
|
380
|
+
var _this3 = this;
|
381
|
+
var selection = this.instance.getSelectedRangeLast();
|
382
|
+
if (!this.instance.isListening() || !selection || selection.highlight.isHeader() || (0, _event.isImmediatePropagationStopped)(event)) {
|
441
383
|
return;
|
442
384
|
}
|
443
385
|
var keyCode = event.keyCode;
|
444
|
-
if (!this.selection.isSelected()) {
|
445
|
-
return;
|
446
|
-
}
|
447
386
|
|
448
387
|
// catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
|
449
388
|
var isCtrlPressed = (event.ctrlKey || event.metaKey) && !event.altKey;
|
@@ -453,29 +392,29 @@ var EditorManager = /*#__PURE__*/function () {
|
|
453
392
|
var editorContext = shortcutManager.getContext('editor');
|
454
393
|
var runOnlySelectedConfig = {
|
455
394
|
runOnlyIf: function runOnlyIf() {
|
456
|
-
return (0, _mixed.isDefined)(
|
395
|
+
return (0, _mixed.isDefined)(_this3.instance.getSelected());
|
457
396
|
},
|
458
397
|
group: SHORTCUTS_GROUP_NAVIGATION
|
459
398
|
};
|
460
399
|
editorContext.addShortcuts([{
|
461
400
|
keys: [['ArrowUp']],
|
462
401
|
callback: function callback() {
|
463
|
-
|
402
|
+
_this3.instance.selection.transformStart(-1, 0);
|
464
403
|
}
|
465
404
|
}, {
|
466
405
|
keys: [['ArrowDown']],
|
467
406
|
callback: function callback() {
|
468
|
-
|
407
|
+
_this3.instance.selection.transformStart(1, 0);
|
469
408
|
}
|
470
409
|
}, {
|
471
410
|
keys: [['ArrowLeft']],
|
472
411
|
callback: function callback() {
|
473
|
-
|
412
|
+
_this3.instance.selection.transformStart(0, -1 * _this3.instance.getDirectionFactor());
|
474
413
|
}
|
475
414
|
}, {
|
476
415
|
keys: [['ArrowRight']],
|
477
416
|
callback: function callback() {
|
478
|
-
|
417
|
+
_this3.instance.selection.transformStart(0, _this3.instance.getDirectionFactor());
|
479
418
|
}
|
480
419
|
}], runOnlySelectedConfig);
|
481
420
|
this.openEditor('', event);
|
package/editorManager.mjs
CHANGED
@@ -1,12 +1,4 @@
|
|
1
1
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
2
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
3
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
4
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
5
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
6
|
-
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
7
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
8
|
-
import "core-js/modules/es.array.includes.js";
|
9
|
-
import "core-js/modules/es.string.includes.js";
|
10
2
|
import "core-js/modules/es.array.iterator.js";
|
11
3
|
import "core-js/modules/es.object.to-string.js";
|
12
4
|
import "core-js/modules/es.string.iterator.js";
|
@@ -23,19 +15,24 @@ import "core-js/modules/es.regexp.to-string.js";
|
|
23
15
|
import "core-js/modules/es.function.name.js";
|
24
16
|
import "core-js/modules/es.array.from.js";
|
25
17
|
import "core-js/modules/es.regexp.exec.js";
|
18
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
19
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
20
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
21
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
22
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
23
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
26
24
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
27
25
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
28
26
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
29
27
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
30
28
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
31
29
|
import { isFunctionKey, isCtrlMetaKey } from "./helpers/unicode.mjs";
|
32
|
-
import { stopImmediatePropagation } from "./helpers/dom/event.mjs";
|
33
30
|
import { isOutsideInput } from "./helpers/dom/element.mjs";
|
31
|
+
import { isImmediatePropagationStopped } from "./helpers/dom/event.mjs";
|
34
32
|
import { getEditorInstance } from "./editors/registry.mjs";
|
35
33
|
import EventManager from "./eventManager.mjs";
|
36
34
|
import { isDefined } from "./helpers/mixed.mjs";
|
37
35
|
export var SHORTCUTS_GROUP_NAVIGATION = 'editorManager.navigation';
|
38
|
-
export var SHORTCUTS_GROUP_EDITOR = 'editorManager.handlingEditor';
|
39
36
|
var EditorManager = /*#__PURE__*/function () {
|
40
37
|
/**
|
41
38
|
* @param {Core} instance The Handsontable instance.
|
@@ -100,9 +97,6 @@ var EditorManager = /*#__PURE__*/function () {
|
|
100
97
|
* @type {object}
|
101
98
|
*/
|
102
99
|
this.cellProperties = void 0;
|
103
|
-
var shortcutManager = this.instance.getShortcutManager();
|
104
|
-
shortcutManager.addContext('editor');
|
105
|
-
this.registerShortcuts();
|
106
100
|
this.instance.addHook('afterDocumentKeyDown', function (event) {
|
107
101
|
return _this.onAfterDocumentKeyDown(event);
|
108
102
|
});
|
@@ -119,66 +113,10 @@ var EditorManager = /*#__PURE__*/function () {
|
|
119
113
|
}
|
120
114
|
|
121
115
|
/**
|
122
|
-
*
|
123
|
-
*
|
124
|
-
* @private
|
116
|
+
* Lock the editor from being prepared and closed. Locking the editor prevents its closing and
|
117
|
+
* reinitialized after selecting the new cell. This feature is necessary for a mobile editor.
|
125
118
|
*/
|
126
119
|
_createClass(EditorManager, [{
|
127
|
-
key: "registerShortcuts",
|
128
|
-
value: function registerShortcuts() {
|
129
|
-
var _this2 = this;
|
130
|
-
var shortcutManager = this.instance.getShortcutManager();
|
131
|
-
var gridContext = shortcutManager.getContext('grid');
|
132
|
-
var editorContext = shortcutManager.getContext('editor');
|
133
|
-
var config = {
|
134
|
-
group: SHORTCUTS_GROUP_EDITOR
|
135
|
-
};
|
136
|
-
editorContext.addShortcuts([{
|
137
|
-
keys: [['Enter'], ['Enter', 'Shift'], ['Enter', 'Control/Meta'], ['Enter', 'Control/Meta', 'Shift']],
|
138
|
-
callback: function callback(event, keys) {
|
139
|
-
_this2.closeEditorAndSaveChanges(shortcutManager.isCtrlPressed());
|
140
|
-
_this2.moveSelectionAfterEnter(keys.includes('shift'));
|
141
|
-
}
|
142
|
-
}, {
|
143
|
-
keys: [['Escape'], ['Escape', 'Control/Meta']],
|
144
|
-
callback: function callback() {
|
145
|
-
_this2.closeEditorAndRestoreOriginalValue(shortcutManager.isCtrlPressed());
|
146
|
-
_this2.activeEditor.focus();
|
147
|
-
}
|
148
|
-
}], config);
|
149
|
-
gridContext.addShortcuts([{
|
150
|
-
keys: [['F2']],
|
151
|
-
callback: function callback(event) {
|
152
|
-
_this2.openEditor(null, event, true);
|
153
|
-
}
|
154
|
-
}, {
|
155
|
-
keys: [['Backspace'], ['Delete']],
|
156
|
-
callback: function callback() {
|
157
|
-
_this2.instance.emptySelectedCells();
|
158
|
-
_this2.prepareEditor();
|
159
|
-
}
|
160
|
-
}, {
|
161
|
-
keys: [['Enter'], ['Enter', 'Shift']],
|
162
|
-
callback: function callback(event, keys) {
|
163
|
-
if (_this2.instance.getSettings().enterBeginsEditing) {
|
164
|
-
if (_this2.cellProperties.readOnly) {
|
165
|
-
_this2.moveSelectionAfterEnter();
|
166
|
-
} else {
|
167
|
-
_this2.openEditor(null, event, true);
|
168
|
-
}
|
169
|
-
} else {
|
170
|
-
_this2.moveSelectionAfterEnter(keys.includes('shift'));
|
171
|
-
}
|
172
|
-
stopImmediatePropagation(event); // required by HandsontableEditor
|
173
|
-
}
|
174
|
-
}], config);
|
175
|
-
}
|
176
|
-
|
177
|
-
/**
|
178
|
-
* Lock the editor from being prepared and closed. Locking the editor prevents its closing and
|
179
|
-
* reinitialized after selecting the new cell. This feature is necessary for a mobile editor.
|
180
|
-
*/
|
181
|
-
}, {
|
182
120
|
key: "lockEditor",
|
183
121
|
value: function lockEditor() {
|
184
122
|
this.lock = true;
|
@@ -225,21 +163,25 @@ var EditorManager = /*#__PURE__*/function () {
|
|
225
163
|
}, {
|
226
164
|
key: "prepareEditor",
|
227
165
|
value: function prepareEditor() {
|
228
|
-
var
|
166
|
+
var _this2 = this;
|
229
167
|
if (this.lock) {
|
230
168
|
return;
|
231
169
|
}
|
232
170
|
if (this.activeEditor && this.activeEditor.isWaiting()) {
|
233
171
|
this.closeEditor(false, false, function (dataSaved) {
|
234
172
|
if (dataSaved) {
|
235
|
-
|
173
|
+
_this2.prepareEditor();
|
236
174
|
}
|
237
175
|
});
|
238
176
|
return;
|
239
177
|
}
|
240
|
-
var _this$instance$getSel = this.instance.getSelectedRangeLast()
|
241
|
-
|
242
|
-
|
178
|
+
var _this$instance$getSel = this.instance.getSelectedRangeLast(),
|
179
|
+
highlight = _this$instance$getSel.highlight;
|
180
|
+
if (highlight.isHeader()) {
|
181
|
+
return;
|
182
|
+
}
|
183
|
+
var row = highlight.row,
|
184
|
+
col = highlight.col;
|
243
185
|
var modifiedCellCoords = this.instance.runHooks('modifyGetCellCoords', row, col);
|
244
186
|
var visualRowToCheck = row;
|
245
187
|
var visualColumnToCheck = col;
|
@@ -429,14 +371,12 @@ var EditorManager = /*#__PURE__*/function () {
|
|
429
371
|
}, {
|
430
372
|
key: "onAfterDocumentKeyDown",
|
431
373
|
value: function onAfterDocumentKeyDown(event) {
|
432
|
-
var
|
433
|
-
|
374
|
+
var _this3 = this;
|
375
|
+
var selection = this.instance.getSelectedRangeLast();
|
376
|
+
if (!this.instance.isListening() || !selection || selection.highlight.isHeader() || isImmediatePropagationStopped(event)) {
|
434
377
|
return;
|
435
378
|
}
|
436
379
|
var keyCode = event.keyCode;
|
437
|
-
if (!this.selection.isSelected()) {
|
438
|
-
return;
|
439
|
-
}
|
440
380
|
|
441
381
|
// catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
|
442
382
|
var isCtrlPressed = (event.ctrlKey || event.metaKey) && !event.altKey;
|
@@ -446,29 +386,29 @@ var EditorManager = /*#__PURE__*/function () {
|
|
446
386
|
var editorContext = shortcutManager.getContext('editor');
|
447
387
|
var runOnlySelectedConfig = {
|
448
388
|
runOnlyIf: function runOnlyIf() {
|
449
|
-
return isDefined(
|
389
|
+
return isDefined(_this3.instance.getSelected());
|
450
390
|
},
|
451
391
|
group: SHORTCUTS_GROUP_NAVIGATION
|
452
392
|
};
|
453
393
|
editorContext.addShortcuts([{
|
454
394
|
keys: [['ArrowUp']],
|
455
395
|
callback: function callback() {
|
456
|
-
|
396
|
+
_this3.instance.selection.transformStart(-1, 0);
|
457
397
|
}
|
458
398
|
}, {
|
459
399
|
keys: [['ArrowDown']],
|
460
400
|
callback: function callback() {
|
461
|
-
|
401
|
+
_this3.instance.selection.transformStart(1, 0);
|
462
402
|
}
|
463
403
|
}, {
|
464
404
|
keys: [['ArrowLeft']],
|
465
405
|
callback: function callback() {
|
466
|
-
|
406
|
+
_this3.instance.selection.transformStart(0, -1 * _this3.instance.getDirectionFactor());
|
467
407
|
}
|
468
408
|
}, {
|
469
409
|
keys: [['ArrowRight']],
|
470
410
|
callback: function callback() {
|
471
|
-
|
411
|
+
_this3.instance.selection.transformStart(0, _this3.instance.getDirectionFactor());
|
472
412
|
}
|
473
413
|
}], runOnlySelectedConfig);
|
474
414
|
this.openEditor('', event);
|
@@ -508,9 +508,7 @@ var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
508
508
|
// We trigger a data population for multiple selection.
|
509
509
|
// catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
|
510
510
|
!event.altKey;
|
511
|
-
}
|
512
|
-
relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
|
513
|
-
position: 'before'
|
511
|
+
}
|
514
512
|
}, {
|
515
513
|
keys: [['Meta', 'Enter']],
|
516
514
|
callback: function callback() {
|
@@ -520,19 +518,13 @@ var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
520
518
|
|
521
519
|
runOnlyIf: function runOnlyIf() {
|
522
520
|
return !_this4.hot.selection.isMultiple();
|
523
|
-
}
|
524
|
-
// We trigger a data population for multiple selection.
|
525
|
-
relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
|
526
|
-
position: 'before'
|
521
|
+
} // We trigger a data population for multiple selection.
|
527
522
|
}, {
|
528
523
|
keys: [['Alt', 'Enter']],
|
529
524
|
callback: function callback() {
|
530
525
|
insertNewLine();
|
531
526
|
return false; // Will block closing editor.
|
532
|
-
}
|
533
|
-
|
534
|
-
relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
|
535
|
-
position: 'before'
|
527
|
+
}
|
536
528
|
}, {
|
537
529
|
// TODO: Duplicated part of code (callback to shortcut)
|
538
530
|
keys: [['PageUp']],
|
@@ -48,7 +48,7 @@ import { rangeEach } from "../../helpers/number.mjs";
|
|
48
48
|
import { KEY_CODES } from "../../helpers/unicode.mjs";
|
49
49
|
import { autoResize } from "../../3rdparty/autoResize/index.mjs";
|
50
50
|
import { isDefined } from "../../helpers/mixed.mjs";
|
51
|
-
import { SHORTCUTS_GROUP_NAVIGATION
|
51
|
+
import { SHORTCUTS_GROUP_NAVIGATION } from "../../editorManager.mjs";
|
52
52
|
import { SHORTCUTS_GROUP_EDITOR } from "../baseEditor/baseEditor.mjs";
|
53
53
|
import { updateCaretPosition } from "./caretPositioner.mjs";
|
54
54
|
var EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';
|
@@ -502,9 +502,7 @@ export var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
502
502
|
// We trigger a data population for multiple selection.
|
503
503
|
// catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
|
504
504
|
!event.altKey;
|
505
|
-
}
|
506
|
-
relativeToGroup: EDITOR_MANAGER_GROUP,
|
507
|
-
position: 'before'
|
505
|
+
}
|
508
506
|
}, {
|
509
507
|
keys: [['Meta', 'Enter']],
|
510
508
|
callback: function callback() {
|
@@ -514,19 +512,13 @@ export var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
514
512
|
|
515
513
|
runOnlyIf: function runOnlyIf() {
|
516
514
|
return !_this4.hot.selection.isMultiple();
|
517
|
-
}
|
518
|
-
// We trigger a data population for multiple selection.
|
519
|
-
relativeToGroup: EDITOR_MANAGER_GROUP,
|
520
|
-
position: 'before'
|
515
|
+
} // We trigger a data population for multiple selection.
|
521
516
|
}, {
|
522
517
|
keys: [['Alt', 'Enter']],
|
523
518
|
callback: function callback() {
|
524
519
|
insertNewLine();
|
525
520
|
return false; // Will block closing editor.
|
526
|
-
}
|
527
|
-
|
528
|
-
relativeToGroup: EDITOR_MANAGER_GROUP,
|
529
|
-
position: 'before'
|
521
|
+
}
|
530
522
|
}, {
|
531
523
|
// TODO: Duplicated part of code (callback to shortcut)
|
532
524
|
keys: [['PageUp']],
|
package/helpers/mixed.js
CHANGED
@@ -152,7 +152,7 @@ var domMessages = {
|
|
152
152
|
function _injectProductInfo(key, element) {
|
153
153
|
var hasValidType = !isEmpty(key);
|
154
154
|
var isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
|
155
|
-
var hotVersion = "0.0.0-next-
|
155
|
+
var hotVersion = "0.0.0-next-acb8c02-20230620";
|
156
156
|
var keyValidityDate;
|
157
157
|
var consoleMessageState = 'invalid';
|
158
158
|
var domMessageState = 'invalid';
|
package/helpers/mixed.mjs
CHANGED
@@ -142,7 +142,7 @@ var domMessages = {
|
|
142
142
|
export function _injectProductInfo(key, element) {
|
143
143
|
var hasValidType = !isEmpty(key);
|
144
144
|
var isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
|
145
|
-
var hotVersion = "0.0.0-next-
|
145
|
+
var hotVersion = "0.0.0-next-acb8c02-20230620";
|
146
146
|
var keyValidityDate;
|
147
147
|
var consoleMessageState = 'invalid';
|
148
148
|
var domMessageState = 'invalid';
|
package/helpers/number.d.ts
CHANGED
@@ -3,3 +3,4 @@ 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
@@ -3,6 +3,7 @@
|
|
3
3
|
require("core-js/modules/es.array.slice.js");
|
4
4
|
require("core-js/modules/es.function.name.js");
|
5
5
|
exports.__esModule = true;
|
6
|
+
exports.clamp = clamp;
|
6
7
|
exports.isNumeric = isNumeric;
|
7
8
|
exports.isNumericLike = isNumericLike;
|
8
9
|
exports.rangeEach = rangeEach;
|
@@ -139,4 +140,21 @@ function valueAccordingPercent(value, percent) {
|
|
139
140
|
percent = parseInt(percent.toString().replace('%', ''), 10);
|
140
141
|
percent = isNaN(percent) ? 0 : percent;
|
141
142
|
return parseInt(value * percent / 100, 10);
|
143
|
+
}
|
144
|
+
|
145
|
+
/**
|
146
|
+
* Clamps the value between min and max.
|
147
|
+
*
|
148
|
+
* @param {number} value The base number value.
|
149
|
+
* @param {number} minValue The max number value.
|
150
|
+
* @param {number} maxValue The min number value.
|
151
|
+
* @returns {number}
|
152
|
+
*/
|
153
|
+
function clamp(value, minValue, maxValue) {
|
154
|
+
if (Math.min(value, minValue) === value) {
|
155
|
+
return minValue;
|
156
|
+
} else if (Math.max(value, maxValue) === value) {
|
157
|
+
return maxValue;
|
158
|
+
}
|
159
|
+
return value;
|
142
160
|
}
|
package/helpers/number.mjs
CHANGED
@@ -131,4 +131,21 @@ export function valueAccordingPercent(value, percent) {
|
|
131
131
|
percent = parseInt(percent.toString().replace('%', ''), 10);
|
132
132
|
percent = isNaN(percent) ? 0 : percent;
|
133
133
|
return parseInt(value * percent / 100, 10);
|
134
|
+
}
|
135
|
+
|
136
|
+
/**
|
137
|
+
* Clamps the value between min and max.
|
138
|
+
*
|
139
|
+
* @param {number} value The base number value.
|
140
|
+
* @param {number} minValue The max number value.
|
141
|
+
* @param {number} maxValue The min number value.
|
142
|
+
* @returns {number}
|
143
|
+
*/
|
144
|
+
export function clamp(value, minValue, maxValue) {
|
145
|
+
if (Math.min(value, minValue) === value) {
|
146
|
+
return minValue;
|
147
|
+
} else if (Math.max(value, maxValue) === value) {
|
148
|
+
return maxValue;
|
149
|
+
}
|
150
|
+
return value;
|
134
151
|
}
|
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-acb8c02-20230620",
|
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
|
-
afterOnCellMouseOver?: (event: MouseEvent, coords: CellCoords, TD: HTMLTableCellElement) => void;
|
114
113
|
afterOnCellMouseOut?: (event: MouseEvent, coords: CellCoords, TD: HTMLTableCellElement) => void;
|
114
|
+
afterOnCellMouseOver?: (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,10 +128,12 @@ export interface Events {
|
|
128
128
|
afterRowSequenceChange?: (source: 'init' | 'move' | 'insert' | 'remove' | 'update') => void;
|
129
129
|
afterScrollHorizontally?: () => void;
|
130
130
|
afterScrollVertically?: () => void;
|
131
|
+
afterSelectColumns?: (from: CellCoords, to: CellCoords, highlight: CellCoords) => void;
|
131
132
|
afterSelection?: (row: number, column: number, row2: number, column2: number, preventScrolling: { value: boolean }, selectionLayerLevel: number) => void;
|
132
133
|
afterSelectionByProp?: (row: number, prop: string, row2: number, prop2: string, preventScrolling: { value: boolean }, selectionLayerLevel: number) => void;
|
133
134
|
afterSelectionEnd?: (row: number, column: number, row2: number, column2: number, selectionLayerLevel: number) => void;
|
134
135
|
afterSelectionEndByProp?: (row: number, prop: string, row2: number, prop2: string, selectionLayerLevel: number) => void;
|
136
|
+
afterSelectRows?: (from: CellCoords, to: CellCoords, highlight: CellCoords) => void;
|
135
137
|
afterSetCellMeta?: (row: number, column: number, key: string, value: any) => void;
|
136
138
|
afterSetDataAtCell?: (changes: CellChange[], source?: ChangeSource) => void;
|
137
139
|
afterSetDataAtRowProp?: (changes: CellChange[], source?: ChangeSource) => void;
|
@@ -205,6 +207,8 @@ export interface Events {
|
|
205
207
|
beforeRenderer?: (TD: HTMLTableCellElement, row: number, column: number, prop: string | number, value: CellValue, cellProperties: CellProperties) => void;
|
206
208
|
beforeRowMove?: (movedRows: number[], finalIndex: number, dropIndex: number | undefined, movePossible: boolean) => void;
|
207
209
|
beforeRowResize?: (newSize: number, row: number, isDoubleClick: boolean) => number | void;
|
210
|
+
beforeSelectColumns?: (from: CellCoords, to: CellCoords, highlight: CellCoords) => void;
|
211
|
+
beforeSelectRows?: (from: CellCoords, to: CellCoords, highlight: CellCoords) => void;
|
208
212
|
beforeSetCellMeta?: (row: number, col: number, key: string, value: any) => boolean | void;
|
209
213
|
beforeSetRangeEnd?: (coords: CellCoords) => void;
|
210
214
|
beforeSetRangeStart?: (coords: CellCoords) => void;
|