handsontable 0.0.0-next-08765b9-20230714 → 0.0.0-next-f8ea07b-20230714
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/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 +3 -19
- package/dist/handsontable.full.css +3 -19
- package/dist/handsontable.full.js +5369 -8671
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +25 -25
- package/dist/handsontable.js +8117 -11419
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +19 -19
- package/editorManager.js +75 -11
- package/editorManager.mjs +74 -11
- 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 +2 -6
- package/plugins/copyPaste/copyPaste.mjs +2 -6
- 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/mergeCells/mergeCells.js +16 -5
- package/plugins/mergeCells/mergeCells.mjs +16 -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
@@ -1,298 +1,156 @@
|
|
1
|
-
import "core-js/modules/es.error.cause.js";
|
2
|
-
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
3
|
-
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
4
|
-
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
5
|
-
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
6
|
-
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
7
|
-
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
8
|
-
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
9
|
-
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
10
|
-
function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
|
11
1
|
import { mixin } from "../helpers/object.mjs";
|
12
2
|
import localHooks from "./../mixins/localHooks.mjs";
|
13
3
|
/**
|
14
4
|
* The Transformation class implements algorithms for transforming coordinates based on current settings
|
15
|
-
* passed to the Handsontable.
|
5
|
+
* passed to the Handsontable.
|
16
6
|
*
|
17
7
|
* Transformation is always applied relative to the current selection.
|
18
8
|
*
|
19
|
-
* The class operates on a table size defined by the renderable indexes. If the `navigableHeaders`
|
20
|
-
* option is enabled, the table size is increased by the number of row and/or column headers.
|
21
|
-
* Because the headers are treated as cells as part of the table size (indexes always go from 0 to N),
|
22
|
-
* the algorithm can be written as simply as possible (without new if's that distinguish the headers
|
23
|
-
* logic).
|
24
|
-
*
|
25
9
|
* @class Transformation
|
26
10
|
* @util
|
27
11
|
*/
|
28
|
-
var _range = /*#__PURE__*/new WeakMap();
|
29
|
-
var _options = /*#__PURE__*/new WeakMap();
|
30
|
-
var _offset = /*#__PURE__*/new WeakMap();
|
31
|
-
var _setOffsetSize = /*#__PURE__*/new WeakSet();
|
32
|
-
var _clampCoords = /*#__PURE__*/new WeakSet();
|
33
|
-
var _getTableSize = /*#__PURE__*/new WeakSet();
|
34
|
-
var _visualToZeroBasedCoords = /*#__PURE__*/new WeakSet();
|
35
|
-
var _zeroBasedToVisualCoords = /*#__PURE__*/new WeakSet();
|
36
12
|
class Transformation {
|
37
13
|
constructor(range, options) {
|
38
|
-
/**
|
39
|
-
* Translates the zero-based coordinates to visual ones.
|
40
|
-
*
|
41
|
-
* @param {CellCoords} zeroBasedCoords The coordinates to process.
|
42
|
-
* @returns {CellCoords}
|
43
|
-
*/
|
44
|
-
_classPrivateMethodInitSpec(this, _zeroBasedToVisualCoords);
|
45
|
-
/**
|
46
|
-
* Translates the visual coordinates to zero-based ones.
|
47
|
-
*
|
48
|
-
* @param {CellCoords} visualCoords The visual coords to process.
|
49
|
-
* @returns {{x: number, y: number}}
|
50
|
-
*/
|
51
|
-
_classPrivateMethodInitSpec(this, _visualToZeroBasedCoords);
|
52
|
-
/**
|
53
|
-
* Gets the table size in number of rows with headers as "height" and number of columns with
|
54
|
-
* headers as "width".
|
55
|
-
*
|
56
|
-
* @returns {{width: number, height: number}}
|
57
|
-
*/
|
58
|
-
_classPrivateMethodInitSpec(this, _getTableSize);
|
59
|
-
/**
|
60
|
-
* Clamps the coords to make sure they points to the cell (or header) in the table range.
|
61
|
-
*
|
62
|
-
* @param {CellCoords} zeroBasedCoords The coords object to clamp.
|
63
|
-
* @returns {{rowDir: 1|0|-1, colDir: 1|0|-1}}
|
64
|
-
*/
|
65
|
-
_classPrivateMethodInitSpec(this, _clampCoords);
|
66
|
-
/**
|
67
|
-
* Sets the additional offset in table size that may occur when the `navigableHeaders` option
|
68
|
-
* is enabled.
|
69
|
-
*
|
70
|
-
* @param {{x: number, y: number}} offset Offset as x and y properties.
|
71
|
-
*/
|
72
|
-
_classPrivateMethodInitSpec(this, _setOffsetSize);
|
73
14
|
/**
|
74
15
|
* Instance of the SelectionRange, holder for visual coordinates applied to the table.
|
75
16
|
*
|
76
17
|
* @type {SelectionRange}
|
77
18
|
*/
|
78
|
-
|
79
|
-
writable: true,
|
80
|
-
value: void 0
|
81
|
-
});
|
19
|
+
this.range = range;
|
82
20
|
/**
|
83
21
|
* Additional options which define the state of the settings which can infer transformation and
|
84
22
|
* give the possibility to translate indexes.
|
85
23
|
*
|
86
24
|
* @type {object}
|
87
25
|
*/
|
88
|
-
|
89
|
-
writable: true,
|
90
|
-
value: void 0
|
91
|
-
});
|
92
|
-
/**
|
93
|
-
* Increases the table size by applying the offsets. The option is used by the `navigableHeaders`
|
94
|
-
* option.
|
95
|
-
*
|
96
|
-
* @type {{ x: number, y: number }}
|
97
|
-
*/
|
98
|
-
_classPrivateFieldInitSpec(this, _offset, {
|
99
|
-
writable: true,
|
100
|
-
value: {
|
101
|
-
x: 0,
|
102
|
-
y: 0
|
103
|
-
}
|
104
|
-
});
|
105
|
-
_classPrivateFieldSet(this, _range, range);
|
106
|
-
_classPrivateFieldSet(this, _options, options);
|
26
|
+
this.options = options;
|
107
27
|
}
|
108
28
|
|
109
29
|
/**
|
110
|
-
* Selects cell relative to
|
30
|
+
* Selects cell relative to current cell (if possible).
|
111
31
|
*
|
112
32
|
* @param {number} rowDelta Rows number to move, value can be passed as negative number.
|
113
33
|
* @param {number} colDelta Columns number to move, value can be passed as negative number.
|
114
|
-
* @param {boolean} [
|
34
|
+
* @param {boolean} [force=false] If `true` the new rows/columns will be created if necessary. Otherwise, row/column will
|
115
35
|
* be created according to `minSpareRows/minSpareCols` settings of Handsontable.
|
116
36
|
* @returns {CellCoords} Visual coordinates after transformation.
|
117
37
|
*/
|
118
38
|
transformStart(rowDelta, colDelta) {
|
119
|
-
let
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
39
|
+
let force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
40
|
+
const delta = this.options.createCellCoords(rowDelta, colDelta);
|
41
|
+
const highlightCoords = this.range.current().highlight;
|
42
|
+
const {
|
43
|
+
row: renderableRow,
|
44
|
+
col: renderableColumn
|
45
|
+
} = this.options.visualToRenderableCoords(highlightCoords);
|
46
|
+
let visualCoords = highlightCoords;
|
127
47
|
let rowTransformDir = 0;
|
128
48
|
let colTransformDir = 0;
|
129
49
|
this.runLocalHooks('beforeTransformStart', delta);
|
130
|
-
if (
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
const
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
const autoWrapRow = _classPrivateFieldGet(this, _options).autoWrapRow();
|
143
|
-
const autoWrapCol = _classPrivateFieldGet(this, _options).autoWrapCol();
|
144
|
-
const rawCoords = {
|
145
|
-
row: y + delta.row,
|
146
|
-
col: x + delta.col
|
147
|
-
};
|
148
|
-
if (rawCoords.row >= height) {
|
149
|
-
if (createMissingRecords && minSpareRows > 0 && fixedRowsBottom === 0) {
|
150
|
-
this.runLocalHooks('insertRowRequire', _classPrivateFieldGet(this, _options).countRenderableRows());
|
50
|
+
if (renderableRow !== null && renderableColumn !== null) {
|
51
|
+
let totalRows = this.options.countRows();
|
52
|
+
let totalCols = this.options.countCols();
|
53
|
+
const fixedRowsBottom = this.options.fixedRowsBottom();
|
54
|
+
const minSpareRows = this.options.minSpareRows();
|
55
|
+
const minSpareCols = this.options.minSpareCols();
|
56
|
+
const autoWrapRow = this.options.autoWrapRow();
|
57
|
+
const autoWrapCol = this.options.autoWrapCol();
|
58
|
+
if (renderableRow + rowDelta > totalRows - 1) {
|
59
|
+
if (force && minSpareRows > 0 && !(fixedRowsBottom && renderableRow >= totalRows - fixedRowsBottom - 1)) {
|
60
|
+
this.runLocalHooks('insertRowRequire', totalRows);
|
61
|
+
totalRows = this.options.countRows();
|
151
62
|
} else if (autoWrapCol) {
|
152
|
-
|
153
|
-
|
154
|
-
rawCoords.col = nextColumn >= width ? nextColumn - width : nextColumn;
|
155
|
-
}
|
156
|
-
} else if (rawCoords.row < 0) {
|
157
|
-
if (autoWrapCol) {
|
158
|
-
const previousColumn = rawCoords.col - 1;
|
159
|
-
rawCoords.row = height + rawCoords.row;
|
160
|
-
rawCoords.col = previousColumn < 0 ? width + previousColumn : previousColumn;
|
63
|
+
delta.row = 1 - totalRows;
|
64
|
+
delta.col = renderableColumn + delta.col === totalCols - 1 ? 1 - totalCols : 1;
|
161
65
|
}
|
66
|
+
} else if (autoWrapCol && renderableRow + delta.row < 0 && renderableColumn + delta.col >= 0) {
|
67
|
+
delta.row = totalRows - 1;
|
68
|
+
delta.col = renderableColumn + delta.col === 0 ? totalCols - 1 : -1;
|
162
69
|
}
|
163
|
-
if (
|
164
|
-
if (
|
165
|
-
this.runLocalHooks('insertColRequire',
|
70
|
+
if (renderableColumn + delta.col > totalCols - 1) {
|
71
|
+
if (force && minSpareCols > 0) {
|
72
|
+
this.runLocalHooks('insertColRequire', totalCols);
|
73
|
+
totalCols = this.options.countCols();
|
166
74
|
} else if (autoWrapRow) {
|
167
|
-
|
168
|
-
|
169
|
-
rawCoords.col = rawCoords.col - width;
|
170
|
-
}
|
171
|
-
} else if (rawCoords.col < 0) {
|
172
|
-
if (autoWrapRow) {
|
173
|
-
const previousRow = rawCoords.row - 1;
|
174
|
-
rawCoords.row = previousRow < 0 ? height + previousRow : previousRow;
|
175
|
-
rawCoords.col = width + rawCoords.col;
|
75
|
+
delta.row = renderableRow + delta.row === totalRows - 1 ? 1 - totalRows : 1;
|
76
|
+
delta.col = 1 - totalCols;
|
176
77
|
}
|
78
|
+
} else if (autoWrapRow && renderableColumn + delta.col < 0 && renderableRow + delta.row >= 0) {
|
79
|
+
delta.row = renderableRow + delta.row === 0 ? totalRows - 1 : -1;
|
80
|
+
delta.col = totalCols - 1;
|
177
81
|
}
|
178
|
-
const coords =
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
82
|
+
const coords = this.options.createCellCoords(renderableRow + delta.row, renderableColumn + delta.col);
|
83
|
+
rowTransformDir = 0;
|
84
|
+
colTransformDir = 0;
|
85
|
+
if (coords.row < 0) {
|
86
|
+
rowTransformDir = -1;
|
87
|
+
coords.row = 0;
|
88
|
+
} else if (coords.row > 0 && coords.row >= totalRows) {
|
89
|
+
rowTransformDir = 1;
|
90
|
+
coords.row = totalRows - 1;
|
91
|
+
}
|
92
|
+
if (coords.col < 0) {
|
93
|
+
colTransformDir = -1;
|
94
|
+
coords.col = 0;
|
95
|
+
} else if (coords.col > 0 && coords.col >= totalCols) {
|
96
|
+
colTransformDir = 1;
|
97
|
+
coords.col = totalCols - 1;
|
98
|
+
}
|
99
|
+
visualCoords = this.options.renderableToVisualCoords(coords);
|
186
100
|
}
|
187
101
|
this.runLocalHooks('afterTransformStart', visualCoords, rowTransformDir, colTransformDir);
|
188
102
|
return visualCoords;
|
189
103
|
}
|
190
104
|
|
191
105
|
/**
|
192
|
-
* Sets selection end cell relative to
|
106
|
+
* Sets selection end cell relative to current selection end cell (if possible).
|
193
107
|
*
|
194
108
|
* @param {number} rowDelta Rows number to move, value can be passed as negative number.
|
195
109
|
* @param {number} colDelta Columns number to move, value can be passed as negative number.
|
196
110
|
* @returns {CellCoords} Visual coordinates after transformation.
|
197
111
|
*/
|
198
112
|
transformEnd(rowDelta, colDelta) {
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
});
|
203
|
-
const delta = _classPrivateFieldGet(this, _options).createCellCoords(rowDelta, colDelta);
|
204
|
-
const cellRange = _classPrivateFieldGet(this, _range).current();
|
205
|
-
const highlightRenderableCoords = _classPrivateFieldGet(this, _options).visualToRenderableCoords(cellRange.highlight);
|
206
|
-
const visualCoords = cellRange.to.clone();
|
113
|
+
const delta = this.options.createCellCoords(rowDelta, colDelta);
|
114
|
+
const cellRange = this.range.current();
|
115
|
+
let visualCoords = cellRange.to;
|
207
116
|
let rowTransformDir = 0;
|
208
117
|
let colTransformDir = 0;
|
209
118
|
this.runLocalHooks('beforeTransformEnd', delta);
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
const coords = _classPrivateFieldGet(this, _options).createCellCoords(rawCoords.row, rawCoords.col);
|
119
|
+
const {
|
120
|
+
row: rowHighlight,
|
121
|
+
col: colHighlight
|
122
|
+
} = this.options.visualToRenderableCoords(cellRange.highlight);
|
123
|
+
|
124
|
+
// We have highlight (start point for the selection).
|
125
|
+
if (rowHighlight !== null && colHighlight !== null) {
|
126
|
+
const totalRows = this.options.countRows();
|
127
|
+
const totalCols = this.options.countCols();
|
220
128
|
const {
|
221
|
-
|
222
|
-
|
223
|
-
} =
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
if (
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
129
|
+
row: rowTo,
|
130
|
+
col: colTo
|
131
|
+
} = this.options.visualToRenderableCoords(cellRange.to);
|
132
|
+
const coords = this.options.createCellCoords(rowTo + delta.row, colTo + delta.col);
|
133
|
+
rowTransformDir = 0;
|
134
|
+
colTransformDir = 0;
|
135
|
+
if (coords.row < 0) {
|
136
|
+
rowTransformDir = -1;
|
137
|
+
coords.row = 0;
|
138
|
+
} else if (coords.row > 0 && coords.row >= totalRows) {
|
139
|
+
rowTransformDir = 1;
|
140
|
+
coords.row = totalRows - 1;
|
141
|
+
}
|
142
|
+
if (coords.col < 0) {
|
143
|
+
colTransformDir = -1;
|
144
|
+
coords.col = 0;
|
145
|
+
} else if (coords.col > 0 && coords.col >= totalCols) {
|
146
|
+
colTransformDir = 1;
|
147
|
+
coords.col = totalCols - 1;
|
234
148
|
}
|
149
|
+
visualCoords = this.options.renderableToVisualCoords(coords);
|
235
150
|
}
|
236
151
|
this.runLocalHooks('afterTransformEnd', visualCoords, rowTransformDir, colTransformDir);
|
237
152
|
return visualCoords;
|
238
153
|
}
|
239
154
|
}
|
240
|
-
function _setOffsetSize2(_ref) {
|
241
|
-
let {
|
242
|
-
x,
|
243
|
-
y
|
244
|
-
} = _ref;
|
245
|
-
_classPrivateFieldSet(this, _offset, {
|
246
|
-
x,
|
247
|
-
y
|
248
|
-
});
|
249
|
-
}
|
250
|
-
function _clampCoords2(zeroBasedCoords) {
|
251
|
-
const {
|
252
|
-
width,
|
253
|
-
height
|
254
|
-
} = _classPrivateMethodGet(this, _getTableSize, _getTableSize2).call(this);
|
255
|
-
let rowDir = 0;
|
256
|
-
let colDir = 0;
|
257
|
-
if (zeroBasedCoords.row < 0) {
|
258
|
-
rowDir = -1;
|
259
|
-
zeroBasedCoords.row = 0;
|
260
|
-
} else if (zeroBasedCoords.row > 0 && zeroBasedCoords.row >= height) {
|
261
|
-
rowDir = 1;
|
262
|
-
zeroBasedCoords.row = height - 1;
|
263
|
-
}
|
264
|
-
if (zeroBasedCoords.col < 0) {
|
265
|
-
colDir = -1;
|
266
|
-
zeroBasedCoords.col = 0;
|
267
|
-
} else if (zeroBasedCoords.col > 0 && zeroBasedCoords.col >= width) {
|
268
|
-
colDir = 1;
|
269
|
-
zeroBasedCoords.col = width - 1;
|
270
|
-
}
|
271
|
-
return {
|
272
|
-
rowDir,
|
273
|
-
colDir
|
274
|
-
};
|
275
|
-
}
|
276
|
-
function _getTableSize2() {
|
277
|
-
return {
|
278
|
-
width: _classPrivateFieldGet(this, _offset).x + _classPrivateFieldGet(this, _options).countRenderableColumns(),
|
279
|
-
height: _classPrivateFieldGet(this, _offset).y + _classPrivateFieldGet(this, _options).countRenderableRows()
|
280
|
-
};
|
281
|
-
}
|
282
|
-
function _visualToZeroBasedCoords2(visualCoords) {
|
283
|
-
const {
|
284
|
-
row,
|
285
|
-
col
|
286
|
-
} = _classPrivateFieldGet(this, _options).visualToRenderableCoords(visualCoords);
|
287
|
-
return {
|
288
|
-
x: _classPrivateFieldGet(this, _offset).x + col,
|
289
|
-
y: _classPrivateFieldGet(this, _offset).y + row
|
290
|
-
};
|
291
|
-
}
|
292
|
-
function _zeroBasedToVisualCoords2(zeroBasedCoords) {
|
293
|
-
zeroBasedCoords.col = zeroBasedCoords.col - _classPrivateFieldGet(this, _offset).x;
|
294
|
-
zeroBasedCoords.row = zeroBasedCoords.row - _classPrivateFieldGet(this, _offset).y;
|
295
|
-
return _classPrivateFieldGet(this, _options).renderableToVisualCoords(zeroBasedCoords);
|
296
|
-
}
|
297
155
|
mixin(Transformation, localHooks);
|
298
156
|
export default Transformation;
|
package/selection/utils.js
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.detectSelectionType = detectSelectionType;
|
5
|
+
exports.isValidCoord = isValidCoord;
|
5
6
|
exports.normalizeSelectionFactory = normalizeSelectionFactory;
|
6
7
|
exports.transformSelectionToColumnDistance = transformSelectionToColumnDistance;
|
7
8
|
exports.transformSelectionToRowDistance = transformSelectionToRowDistance;
|
@@ -110,9 +111,7 @@ function normalizeSelectionFactory(type) {
|
|
110
111
|
rowEnd = Math.max(origRowStart, origRowEnd);
|
111
112
|
columnEnd = Math.max(origColumnStart, origColumnEnd);
|
112
113
|
}
|
113
|
-
|
114
|
-
const to = new _src.CellCoords(rowEnd, columnEnd);
|
115
|
-
return new _src.CellRange(from, from, to);
|
114
|
+
return [rowStart, columnStart, rowEnd, columnEnd];
|
116
115
|
};
|
117
116
|
}
|
118
117
|
|
@@ -138,12 +137,9 @@ function transformSelectionToColumnDistance(selectionRanges) {
|
|
138
137
|
|
139
138
|
// Iterate through all ranges and collect all column indexes which are not saved yet.
|
140
139
|
(0, _array.arrayEach)(selectionRanges, selection => {
|
141
|
-
const
|
142
|
-
|
143
|
-
|
144
|
-
} = selectionSchemaNormalizer(selection);
|
145
|
-
const columnNonHeaderStart = Math.max(from.col, 0);
|
146
|
-
const amount = to.col - columnNonHeaderStart + 1;
|
140
|
+
const [, columnStart,, columnEnd] = selectionSchemaNormalizer(selection);
|
141
|
+
const columnNonHeaderStart = Math.max(columnStart, 0);
|
142
|
+
const amount = columnEnd - columnNonHeaderStart + 1;
|
147
143
|
(0, _array.arrayEach)(Array.from(new Array(amount), (_, i) => columnNonHeaderStart + i), index => {
|
148
144
|
if (!unorderedIndexes.has(index)) {
|
149
145
|
unorderedIndexes.add(index);
|
@@ -186,12 +182,9 @@ function transformSelectionToRowDistance(selectionRanges) {
|
|
186
182
|
|
187
183
|
// Iterate through all ranges and collect all column indexes which are not saved yet.
|
188
184
|
(0, _array.arrayEach)(selectionRanges, selection => {
|
189
|
-
const
|
190
|
-
|
191
|
-
|
192
|
-
} = selectionSchemaNormalizer(selection);
|
193
|
-
const rowNonHeaderStart = Math.max(from.row, 0);
|
194
|
-
const amount = to.row - rowNonHeaderStart + 1;
|
185
|
+
const [rowStart,, rowEnd] = selectionSchemaNormalizer(selection);
|
186
|
+
const rowNonHeaderStart = Math.max(rowStart, 0);
|
187
|
+
const amount = rowEnd - rowNonHeaderStart + 1;
|
195
188
|
(0, _array.arrayEach)(Array.from(new Array(amount), (_, i) => rowNonHeaderStart + i), index => {
|
196
189
|
if (!unorderedIndexes.has(index)) {
|
197
190
|
unorderedIndexes.add(index);
|
@@ -210,4 +203,17 @@ function transformSelectionToRowDistance(selectionRanges) {
|
|
210
203
|
return acc;
|
211
204
|
}, []);
|
212
205
|
return normalizedRowRanges;
|
206
|
+
}
|
207
|
+
|
208
|
+
/**
|
209
|
+
* Check if passed value can be treated as valid cell coordinate. The second argument is
|
210
|
+
* used to check if the value doesn't exceed the defined max table rows/columns count.
|
211
|
+
*
|
212
|
+
* @param {number} coord The coordinate to validate (row index or column index).
|
213
|
+
* @param {number} maxTableItemsCount The value that declares the maximum coordinate that is still validatable.
|
214
|
+
* @returns {boolean}
|
215
|
+
*/
|
216
|
+
function isValidCoord(coord) {
|
217
|
+
let maxTableItemsCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
|
218
|
+
return typeof coord === 'number' && coord >= 0 && coord < maxTableItemsCount;
|
213
219
|
}
|
package/selection/utils.mjs
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import "core-js/modules/es.error.cause.js";
|
2
2
|
import "core-js/modules/es.array.push.js";
|
3
|
-
import { CellRange
|
3
|
+
import { CellRange } from "./../3rdparty/walkontable/src/index.mjs";
|
4
4
|
import { arrayEach, arrayReduce } from "./../helpers/array.mjs";
|
5
5
|
import { isUndefined } from "./../helpers/mixed.mjs";
|
6
6
|
export const SELECTION_TYPE_UNRECOGNIZED = 0;
|
@@ -98,9 +98,7 @@ export function normalizeSelectionFactory(type) {
|
|
98
98
|
rowEnd = Math.max(origRowStart, origRowEnd);
|
99
99
|
columnEnd = Math.max(origColumnStart, origColumnEnd);
|
100
100
|
}
|
101
|
-
|
102
|
-
const to = new CellCoords(rowEnd, columnEnd);
|
103
|
-
return new CellRange(from, from, to);
|
101
|
+
return [rowStart, columnStart, rowEnd, columnEnd];
|
104
102
|
};
|
105
103
|
}
|
106
104
|
|
@@ -126,12 +124,9 @@ export function transformSelectionToColumnDistance(selectionRanges) {
|
|
126
124
|
|
127
125
|
// Iterate through all ranges and collect all column indexes which are not saved yet.
|
128
126
|
arrayEach(selectionRanges, selection => {
|
129
|
-
const
|
130
|
-
|
131
|
-
|
132
|
-
} = selectionSchemaNormalizer(selection);
|
133
|
-
const columnNonHeaderStart = Math.max(from.col, 0);
|
134
|
-
const amount = to.col - columnNonHeaderStart + 1;
|
127
|
+
const [, columnStart,, columnEnd] = selectionSchemaNormalizer(selection);
|
128
|
+
const columnNonHeaderStart = Math.max(columnStart, 0);
|
129
|
+
const amount = columnEnd - columnNonHeaderStart + 1;
|
135
130
|
arrayEach(Array.from(new Array(amount), (_, i) => columnNonHeaderStart + i), index => {
|
136
131
|
if (!unorderedIndexes.has(index)) {
|
137
132
|
unorderedIndexes.add(index);
|
@@ -174,12 +169,9 @@ export function transformSelectionToRowDistance(selectionRanges) {
|
|
174
169
|
|
175
170
|
// Iterate through all ranges and collect all column indexes which are not saved yet.
|
176
171
|
arrayEach(selectionRanges, selection => {
|
177
|
-
const
|
178
|
-
|
179
|
-
|
180
|
-
} = selectionSchemaNormalizer(selection);
|
181
|
-
const rowNonHeaderStart = Math.max(from.row, 0);
|
182
|
-
const amount = to.row - rowNonHeaderStart + 1;
|
172
|
+
const [rowStart,, rowEnd] = selectionSchemaNormalizer(selection);
|
173
|
+
const rowNonHeaderStart = Math.max(rowStart, 0);
|
174
|
+
const amount = rowEnd - rowNonHeaderStart + 1;
|
183
175
|
arrayEach(Array.from(new Array(amount), (_, i) => rowNonHeaderStart + i), index => {
|
184
176
|
if (!unorderedIndexes.has(index)) {
|
185
177
|
unorderedIndexes.add(index);
|
@@ -198,4 +190,17 @@ export function transformSelectionToRowDistance(selectionRanges) {
|
|
198
190
|
return acc;
|
199
191
|
}, []);
|
200
192
|
return normalizedRowRanges;
|
193
|
+
}
|
194
|
+
|
195
|
+
/**
|
196
|
+
* Check if passed value can be treated as valid cell coordinate. The second argument is
|
197
|
+
* used to check if the value doesn't exceed the defined max table rows/columns count.
|
198
|
+
*
|
199
|
+
* @param {number} coord The coordinate to validate (row index or column index).
|
200
|
+
* @param {number} maxTableItemsCount The value that declares the maximum coordinate that is still validatable.
|
201
|
+
* @returns {boolean}
|
202
|
+
*/
|
203
|
+
export function isValidCoord(coord) {
|
204
|
+
let maxTableItemsCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
|
205
|
+
return typeof coord === 'number' && coord >= 0 && coord < maxTableItemsCount;
|
201
206
|
}
|
package/settings.d.ts
CHANGED
@@ -124,7 +124,6 @@ export interface GridSettings extends Events {
|
|
124
124
|
dateFormat?: string;
|
125
125
|
datePickerConfig?: PikadayOptions;
|
126
126
|
defaultDate?: string;
|
127
|
-
disableTabNavigation?: boolean;
|
128
127
|
disableVisualSelection?: boolean | 'current' | 'area' | 'header' | Array<'current' | 'area' | 'header'>;
|
129
128
|
dragToScroll?: boolean;
|
130
129
|
dropdownMenu?: DropdownMenuSettings;
|
@@ -165,7 +164,6 @@ export interface GridSettings extends Events {
|
|
165
164
|
minSpareCols?: number;
|
166
165
|
minSpareRows?: number;
|
167
166
|
multiColumnSorting?: MultiColumnSortingSettings;
|
168
|
-
navigableHeaders?: boolean;
|
169
167
|
nestedHeaders?: NestedHeadersSettings;
|
170
168
|
nestedRows?: boolean;
|
171
169
|
noWordWrapClassName?: string;
|
package/shortcuts/manager.js
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
var _uniqueMap = require("../utils/dataStructures/uniqueMap");
|
5
|
-
var _event = require("../helpers/dom/event");
|
6
5
|
var _context = require("./context");
|
7
6
|
var _recorder = require("./recorder");
|
8
7
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
@@ -127,7 +126,6 @@ const createShortcutManager = _ref => {
|
|
127
126
|
event.preventDefault();
|
128
127
|
}
|
129
128
|
if (stopPropagation) {
|
130
|
-
(0, _event.stopImmediatePropagation)(event);
|
131
129
|
event.stopPropagation();
|
132
130
|
}
|
133
131
|
if (isExecutionCancelled) {
|
package/shortcuts/manager.mjs
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
import { createUniqueMap } from "../utils/dataStructures/uniqueMap.mjs";
|
2
|
-
import { stopImmediatePropagation } from "../helpers/dom/event.mjs";
|
3
2
|
import { createContext } from "./context.mjs";
|
4
3
|
import { useRecorder } from "./recorder.mjs";
|
5
4
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
@@ -123,7 +122,6 @@ export const createShortcutManager = _ref => {
|
|
123
122
|
event.preventDefault();
|
124
123
|
}
|
125
124
|
if (stopPropagation) {
|
126
|
-
stopImmediatePropagation(event);
|
127
125
|
event.stopPropagation();
|
128
126
|
}
|
129
127
|
if (isExecutionCancelled) {
|
package/shortcuts/recorder.js
CHANGED
@@ -86,7 +86,7 @@ function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDown, call
|
|
86
86
|
if (event.keyCode === 229 || result === false || (0, _event.isImmediatePropagationStopped)(event)) {
|
87
87
|
return;
|
88
88
|
}
|
89
|
-
const pressedKey = (0, _utils.normalizeEventKey)(event);
|
89
|
+
const pressedKey = (0, _utils.normalizeEventKey)(event.key);
|
90
90
|
let extraModifierKeys = [];
|
91
91
|
if (isModifierKey(pressedKey)) {
|
92
92
|
modifierKeysObserver.press(pressedKey);
|
@@ -112,7 +112,7 @@ function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDown, call
|
|
112
112
|
if (handleEvent(event) === false) {
|
113
113
|
return;
|
114
114
|
}
|
115
|
-
const pressedKey = (0, _utils.normalizeEventKey)(event);
|
115
|
+
const pressedKey = (0, _utils.normalizeEventKey)(event.key);
|
116
116
|
if (isModifierKey(pressedKey) === false) {
|
117
117
|
return;
|
118
118
|
}
|
package/shortcuts/recorder.mjs
CHANGED
@@ -82,7 +82,7 @@ export function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDow
|
|
82
82
|
if (event.keyCode === 229 || result === false || isImmediatePropagationStopped(event)) {
|
83
83
|
return;
|
84
84
|
}
|
85
|
-
const pressedKey = normalizeEventKey(event);
|
85
|
+
const pressedKey = normalizeEventKey(event.key);
|
86
86
|
let extraModifierKeys = [];
|
87
87
|
if (isModifierKey(pressedKey)) {
|
88
88
|
modifierKeysObserver.press(pressedKey);
|
@@ -108,7 +108,7 @@ export function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDow
|
|
108
108
|
if (handleEvent(event) === false) {
|
109
109
|
return;
|
110
110
|
}
|
111
|
-
const pressedKey = normalizeEventKey(event);
|
111
|
+
const pressedKey = normalizeEventKey(event.key);
|
112
112
|
if (isModifierKey(pressedKey) === false) {
|
113
113
|
return;
|
114
114
|
}
|
package/shortcuts/utils.js
CHANGED
@@ -37,27 +37,13 @@ const getKeysList = normalizedKeys => {
|
|
37
37
|
};
|
38
38
|
|
39
39
|
/**
|
40
|
-
*
|
41
|
-
* the string.
|
42
|
-
*/
|
43
|
-
exports.getKeysList = getKeysList;
|
44
|
-
const codeToKeyRegExp = new RegExp('^(?:Key|Digit)([A-Z0-9])$');
|
45
|
-
|
46
|
-
/**
|
47
|
-
* Normalizes a keyboard event key value to a key before its modification. When the keyboard event
|
48
|
-
* is triggered with Alt, Control or Shift keys the `key` property contains modified key e.g. for Alt+L
|
49
|
-
* it will be `ł`. But that value is only valid for polish keyboard layout. To fix that limitations, for
|
50
|
-
* letters and digits the value is taken from the `code` property which holds original value before
|
51
|
-
* transformation.
|
40
|
+
* Normalize a `KeyboardEvent.key` property, to use it for keyboard shortcuts.
|
52
41
|
*
|
53
|
-
* @param {
|
42
|
+
* @param {string} key KeyboardEvent's key property.
|
54
43
|
* @returns {string}
|
55
44
|
*/
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
code
|
60
|
-
} = _ref;
|
61
|
-
return (codeToKeyRegExp.test(code) ? code.replace(codeToKeyRegExp, '$1') : key).toLowerCase();
|
45
|
+
exports.getKeysList = getKeysList;
|
46
|
+
const normalizeEventKey = key => {
|
47
|
+
return key.toLowerCase();
|
62
48
|
};
|
63
49
|
exports.normalizeEventKey = normalizeEventKey;
|