handsontable 0.0.0-next-baf2fcf-20230809 → 0.0.0-next-be16baf-20230809
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 +50 -11
- package/3rdparty/walkontable/src/cell/coords.mjs +50 -11
- package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
- package/3rdparty/walkontable/src/cell/range.js +38 -7
- package/3rdparty/walkontable/src/cell/range.mjs +38 -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 -6
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -6
- package/3rdparty/walkontable/src/overlay/top.js +2 -6
- package/3rdparty/walkontable/src/overlay/top.mjs +2 -6
- 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 +16 -0
- package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
- package/3rdparty/walkontable/src/selection/constants.js +62 -0
- package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
- package/3rdparty/walkontable/src/selection/index.js +26 -0
- package/3rdparty/walkontable/src/selection/index.mjs +5 -0
- package/3rdparty/walkontable/src/selection/manager.js +259 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +254 -0
- package/3rdparty/walkontable/src/selection/scanner.js +270 -0
- package/3rdparty/walkontable/src/selection/scanner.mjs +267 -0
- package/3rdparty/walkontable/src/selection/selection.js +101 -0
- package/3rdparty/walkontable/src/selection/selection.mjs +96 -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 +6 -78
- package/3rdparty/walkontable/src/table.mjs +7 -79
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/common.d.ts +1 -1
- package/core/focusCatcher/focusDetector.js +58 -0
- package/core/focusCatcher/focusDetector.mjs +54 -0
- package/core/focusCatcher/index.js +142 -0
- package/core/focusCatcher/index.mjs +138 -0
- package/core/index.js +9 -0
- package/core/index.mjs +1 -0
- package/core.d.ts +6 -3
- package/core.js +176 -293
- package/core.mjs +176 -293
- package/dataMap/metaManager/metaSchema.js +41 -0
- package/dataMap/metaManager/metaSchema.mjs +41 -0
- package/dist/handsontable.css +24 -4
- package/dist/handsontable.full.css +24 -4
- package/dist/handsontable.full.js +8682 -5384
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +25 -25
- package/dist/handsontable.js +10989 -7691
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +19 -19
- package/editorManager.js +11 -75
- package/editorManager.mjs +11 -74
- package/editors/baseEditor/baseEditor.d.ts +0 -1
- 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 +7 -1
- package/pluginHooks.js +106 -1
- package/pluginHooks.mjs +106 -1
- package/plugins/collapsibleColumns/collapsibleColumns.js +58 -4
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +58 -4
- package/plugins/columnSorting/columnSorting.js +38 -0
- package/plugins/columnSorting/columnSorting.mjs +38 -2
- package/plugins/columnSorting/index.js +3 -1
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/comments/commentEditor.js +1 -0
- package/plugins/comments/commentEditor.mjs +1 -0
- package/plugins/comments/comments.js +251 -189
- package/plugins/comments/comments.mjs +250 -190
- package/plugins/comments/contextMenuItem/addEditComment.js +41 -0
- package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.js +49 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.mjs +43 -0
- package/plugins/comments/contextMenuItem/removeComment.js +38 -0
- package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +72 -30
- package/plugins/contextMenu/contextMenu.mjs +73 -31
- package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
- package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/removeColumn.js +7 -5
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/removeRow.js +7 -5
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
- package/plugins/contextMenu/utils.js +28 -16
- package/plugins/contextMenu/utils.mjs +27 -15
- package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
- package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
- package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
- package/plugins/copyPaste/copyPaste.js +14 -10
- package/plugins/copyPaste/copyPaste.mjs +14 -10
- package/plugins/customBorders/customBorders.js +23 -20
- package/plugins/customBorders/customBorders.mjs +24 -21
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +89 -32
- package/plugins/dropdownMenu/dropdownMenu.mjs +89 -32
- package/plugins/filters/filters.js +31 -14
- package/plugins/filters/filters.mjs +30 -13
- package/plugins/manualColumnResize/manualColumnResize.js +0 -6
- package/plugins/manualColumnResize/manualColumnResize.mjs +1 -7
- package/plugins/mergeCells/mergeCells.js +5 -17
- package/plugins/mergeCells/mergeCells.mjs +5 -17
- package/plugins/multiColumnSorting/multiColumnSorting.js +37 -2
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +37 -2
- package/plugins/nestedHeaders/nestedHeaders.js +121 -8
- package/plugins/nestedHeaders/nestedHeaders.mjs +121 -8
- package/plugins/nestedHeaders/stateManager/index.js +37 -0
- package/plugins/nestedHeaders/stateManager/index.mjs +37 -0
- package/plugins/nestedRows/nestedRows.js +41 -0
- package/plugins/nestedRows/nestedRows.mjs +41 -0
- package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
- package/selection/highlight/highlight.js +256 -71
- package/selection/highlight/highlight.mjs +250 -71
- package/selection/highlight/types/activeHeader.js +10 -8
- package/selection/highlight/types/activeHeader.mjs +10 -8
- package/selection/highlight/types/area.js +6 -18
- package/selection/highlight/types/area.mjs +6 -18
- package/selection/highlight/types/areaLayered.js +31 -0
- package/selection/highlight/types/areaLayered.mjs +26 -0
- package/selection/highlight/types/column.js +27 -0
- package/selection/highlight/types/column.mjs +22 -0
- package/selection/highlight/types/customSelection.js +7 -9
- package/selection/highlight/types/customSelection.mjs +7 -9
- package/selection/highlight/types/fill.js +5 -7
- package/selection/highlight/types/fill.mjs +5 -7
- package/selection/highlight/types/{cell.js → focus.js} +5 -7
- package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
- package/selection/highlight/types/header.js +9 -18
- package/selection/highlight/types/header.mjs +9 -18
- package/selection/highlight/types/row.js +27 -0
- package/selection/highlight/types/row.mjs +22 -0
- 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 +293 -154
- package/selection/selection.mjs +290 -153
- package/selection/transformation.js +232 -90
- package/selection/transformation.mjs +232 -90
- package/selection/utils.js +15 -21
- package/selection/utils.mjs +16 -21
- package/settings.d.ts +2 -0
- package/shortcutContexts/commands/editor/closeAndSave.js +12 -0
- package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +12 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
- package/shortcutContexts/commands/editor/fastOpen.js +16 -0
- package/shortcutContexts/commands/editor/fastOpen.mjs +12 -0
- package/shortcutContexts/commands/editor/index.js +16 -0
- package/shortcutContexts/commands/editor/index.mjs +12 -0
- package/shortcutContexts/commands/editor/open.js +27 -0
- package/shortcutContexts/commands/editor/open.mjs +23 -0
- package/shortcutContexts/commands/emptySelectedCells.js +11 -0
- package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
- package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +21 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +17 -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 +11 -0
- package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +21 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +17 -0
- package/shortcutContexts/commands/index.js +35 -0
- package/shortcutContexts/commands/index.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/down.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +31 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +27 -0
- package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
- package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/left.js +10 -0
- package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/right.js +10 -0
- package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +18 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +14 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +19 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +21 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +19 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
- package/shortcutContexts/commands/moveCellSelection/up.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +31 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +27 -0
- package/shortcutContexts/commands/populateSelectedCellsData.js +29 -0
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
- package/shortcutContexts/commands/scrollToFocusedCell.js +36 -0
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +32 -0
- package/shortcutContexts/commands/selectAll.js +10 -0
- package/shortcutContexts/commands/selectAll.mjs +6 -0
- package/shortcutContexts/constants.js +13 -0
- package/shortcutContexts/constants.mjs +8 -0
- package/shortcutContexts/editor.js +25 -0
- package/shortcutContexts/editor.mjs +21 -0
- package/shortcutContexts/grid.js +163 -0
- package/shortcutContexts/grid.mjs +159 -0
- package/shortcutContexts/index.js +24 -0
- package/shortcutContexts/index.mjs +11 -0
- package/shortcuts/manager.js +2 -0
- package/shortcuts/manager.mjs +2 -0
- package/shortcuts/recorder.js +2 -2
- package/shortcuts/recorder.mjs +2 -2
- package/shortcuts/utils.js +19 -5
- package/shortcuts/utils.mjs +18 -4
- package/tableView.js +67 -13
- package/tableView.mjs +67 -13
- package/3rdparty/walkontable/src/selection.js +0 -295
- package/3rdparty/walkontable/src/selection.mjs +0 -290
- package/selection/highlight/constants.js +0 -15
- package/selection/highlight/constants.mjs +0 -6
- package/selection/highlight/types/index.js +0 -35
- package/selection/highlight/types/index.mjs +0 -31
@@ -1,156 +1,298 @@
|
|
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; } }
|
1
11
|
import { mixin } from "../helpers/object.mjs";
|
2
12
|
import localHooks from "./../mixins/localHooks.mjs";
|
3
13
|
/**
|
4
14
|
* The Transformation class implements algorithms for transforming coordinates based on current settings
|
5
|
-
* passed to the Handsontable.
|
15
|
+
* passed to the Handsontable. The class performs the calculations based on the renderable indexes.
|
6
16
|
*
|
7
17
|
* Transformation is always applied relative to the current selection.
|
8
18
|
*
|
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
|
+
*
|
9
25
|
* @class Transformation
|
10
26
|
* @util
|
11
27
|
*/
|
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();
|
12
36
|
class Transformation {
|
13
37
|
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);
|
14
73
|
/**
|
15
74
|
* Instance of the SelectionRange, holder for visual coordinates applied to the table.
|
16
75
|
*
|
17
76
|
* @type {SelectionRange}
|
18
77
|
*/
|
19
|
-
this
|
78
|
+
_classPrivateFieldInitSpec(this, _range, {
|
79
|
+
writable: true,
|
80
|
+
value: void 0
|
81
|
+
});
|
20
82
|
/**
|
21
83
|
* Additional options which define the state of the settings which can infer transformation and
|
22
84
|
* give the possibility to translate indexes.
|
23
85
|
*
|
24
86
|
* @type {object}
|
25
87
|
*/
|
26
|
-
this
|
88
|
+
_classPrivateFieldInitSpec(this, _options, {
|
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);
|
27
107
|
}
|
28
108
|
|
29
109
|
/**
|
30
|
-
* Selects cell relative to current cell (if possible).
|
110
|
+
* Selects cell relative to the current cell (if possible).
|
31
111
|
*
|
32
112
|
* @param {number} rowDelta Rows number to move, value can be passed as negative number.
|
33
113
|
* @param {number} colDelta Columns number to move, value can be passed as negative number.
|
34
|
-
* @param {boolean} [
|
114
|
+
* @param {boolean} [createMissingRecords=false] If `true` the new rows/columns will be created if necessary. Otherwise, row/column will
|
35
115
|
* be created according to `minSpareRows/minSpareCols` settings of Handsontable.
|
36
116
|
* @returns {CellCoords} Visual coordinates after transformation.
|
37
117
|
*/
|
38
118
|
transformStart(rowDelta, colDelta) {
|
39
|
-
let
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
119
|
+
let createMissingRecords = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
120
|
+
_classPrivateMethodGet(this, _setOffsetSize, _setOffsetSize2).call(this, {
|
121
|
+
x: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countRowHeaders() : 0,
|
122
|
+
y: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countColHeaders() : 0
|
123
|
+
});
|
124
|
+
const delta = _classPrivateFieldGet(this, _options).createCellCoords(rowDelta, colDelta);
|
125
|
+
let visualCoords = _classPrivateFieldGet(this, _range).current().highlight;
|
126
|
+
const highlightRenderableCoords = _classPrivateFieldGet(this, _options).visualToRenderableCoords(visualCoords);
|
47
127
|
let rowTransformDir = 0;
|
48
128
|
let colTransformDir = 0;
|
49
129
|
this.runLocalHooks('beforeTransformStart', delta);
|
50
|
-
if (
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
const
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
130
|
+
if (highlightRenderableCoords.row !== null && highlightRenderableCoords.col !== null) {
|
131
|
+
const {
|
132
|
+
width,
|
133
|
+
height
|
134
|
+
} = _classPrivateMethodGet(this, _getTableSize, _getTableSize2).call(this);
|
135
|
+
const {
|
136
|
+
x,
|
137
|
+
y
|
138
|
+
} = _classPrivateMethodGet(this, _visualToZeroBasedCoords, _visualToZeroBasedCoords2).call(this, visualCoords);
|
139
|
+
const fixedRowsBottom = _classPrivateFieldGet(this, _options).fixedRowsBottom();
|
140
|
+
const minSpareRows = _classPrivateFieldGet(this, _options).minSpareRows();
|
141
|
+
const minSpareCols = _classPrivateFieldGet(this, _options).minSpareCols();
|
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());
|
62
151
|
} else if (autoWrapCol) {
|
63
|
-
|
64
|
-
|
152
|
+
const nextColumn = rawCoords.col + 1;
|
153
|
+
rawCoords.row = rawCoords.row - height;
|
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;
|
65
161
|
}
|
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;
|
69
162
|
}
|
70
|
-
if (
|
71
|
-
if (
|
72
|
-
this.runLocalHooks('insertColRequire',
|
73
|
-
totalCols = this.options.countCols();
|
163
|
+
if (rawCoords.col >= width) {
|
164
|
+
if (createMissingRecords && minSpareCols > 0) {
|
165
|
+
this.runLocalHooks('insertColRequire', _classPrivateFieldGet(this, _options).countRenderableColumns());
|
74
166
|
} else if (autoWrapRow) {
|
75
|
-
|
76
|
-
|
167
|
+
const nextRow = rawCoords.row + 1;
|
168
|
+
rawCoords.row = nextRow >= height ? nextRow - height : nextRow;
|
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;
|
77
176
|
}
|
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;
|
81
|
-
}
|
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
177
|
}
|
99
|
-
|
178
|
+
const coords = _classPrivateFieldGet(this, _options).createCellCoords(rawCoords.row, rawCoords.col);
|
179
|
+
const {
|
180
|
+
rowDir,
|
181
|
+
colDir
|
182
|
+
} = _classPrivateMethodGet(this, _clampCoords, _clampCoords2).call(this, coords);
|
183
|
+
rowTransformDir = rowDir;
|
184
|
+
colTransformDir = colDir;
|
185
|
+
visualCoords = _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, coords);
|
100
186
|
}
|
101
187
|
this.runLocalHooks('afterTransformStart', visualCoords, rowTransformDir, colTransformDir);
|
102
188
|
return visualCoords;
|
103
189
|
}
|
104
190
|
|
105
191
|
/**
|
106
|
-
* Sets selection end cell relative to current selection end cell (if possible).
|
192
|
+
* Sets selection end cell relative to the current selection end cell (if possible).
|
107
193
|
*
|
108
194
|
* @param {number} rowDelta Rows number to move, value can be passed as negative number.
|
109
195
|
* @param {number} colDelta Columns number to move, value can be passed as negative number.
|
110
196
|
* @returns {CellCoords} Visual coordinates after transformation.
|
111
197
|
*/
|
112
198
|
transformEnd(rowDelta, colDelta) {
|
113
|
-
|
114
|
-
|
115
|
-
|
199
|
+
_classPrivateMethodGet(this, _setOffsetSize, _setOffsetSize2).call(this, {
|
200
|
+
x: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countRowHeaders() : 0,
|
201
|
+
y: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countColHeaders() : 0
|
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();
|
116
207
|
let rowTransformDir = 0;
|
117
208
|
let colTransformDir = 0;
|
118
209
|
this.runLocalHooks('beforeTransformEnd', delta);
|
119
|
-
|
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();
|
210
|
+
if (highlightRenderableCoords.row !== null && highlightRenderableCoords.col !== null) {
|
128
211
|
const {
|
129
|
-
|
130
|
-
|
131
|
-
} = this.
|
132
|
-
const
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
212
|
+
x,
|
213
|
+
y
|
214
|
+
} = _classPrivateMethodGet(this, _visualToZeroBasedCoords, _visualToZeroBasedCoords2).call(this, cellRange.to);
|
215
|
+
const rawCoords = {
|
216
|
+
row: y + delta.row,
|
217
|
+
col: x + delta.col
|
218
|
+
};
|
219
|
+
const coords = _classPrivateFieldGet(this, _options).createCellCoords(rawCoords.row, rawCoords.col);
|
220
|
+
const {
|
221
|
+
rowDir,
|
222
|
+
colDir
|
223
|
+
} = _classPrivateMethodGet(this, _clampCoords, _clampCoords2).call(this, coords);
|
224
|
+
rowTransformDir = rowDir;
|
225
|
+
colTransformDir = colDir;
|
226
|
+
const newVisualCoords = _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, coords);
|
227
|
+
if (delta.row === 0 && delta.col !== 0) {
|
228
|
+
visualCoords.col = newVisualCoords.col;
|
229
|
+
} else if (delta.row !== 0 && delta.col === 0) {
|
230
|
+
visualCoords.row = newVisualCoords.row;
|
231
|
+
} else {
|
232
|
+
visualCoords.row = newVisualCoords.row;
|
233
|
+
visualCoords.col = newVisualCoords.col;
|
148
234
|
}
|
149
|
-
visualCoords = this.options.renderableToVisualCoords(coords);
|
150
235
|
}
|
151
236
|
this.runLocalHooks('afterTransformEnd', visualCoords, rowTransformDir, colTransformDir);
|
152
237
|
return visualCoords;
|
153
238
|
}
|
154
239
|
}
|
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
|
+
}
|
155
297
|
mixin(Transformation, localHooks);
|
156
298
|
export default Transformation;
|
package/selection/utils.js
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.detectSelectionType = detectSelectionType;
|
5
|
-
exports.isValidCoord = isValidCoord;
|
6
5
|
exports.normalizeSelectionFactory = normalizeSelectionFactory;
|
7
6
|
exports.transformSelectionToColumnDistance = transformSelectionToColumnDistance;
|
8
7
|
exports.transformSelectionToRowDistance = transformSelectionToRowDistance;
|
@@ -111,7 +110,9 @@ function normalizeSelectionFactory(type) {
|
|
111
110
|
rowEnd = Math.max(origRowStart, origRowEnd);
|
112
111
|
columnEnd = Math.max(origColumnStart, origColumnEnd);
|
113
112
|
}
|
114
|
-
|
113
|
+
const from = new _src.CellCoords(rowStart, columnStart);
|
114
|
+
const to = new _src.CellCoords(rowEnd, columnEnd);
|
115
|
+
return new _src.CellRange(from, from, to);
|
115
116
|
};
|
116
117
|
}
|
117
118
|
|
@@ -137,9 +138,12 @@ function transformSelectionToColumnDistance(selectionRanges) {
|
|
137
138
|
|
138
139
|
// Iterate through all ranges and collect all column indexes which are not saved yet.
|
139
140
|
(0, _array.arrayEach)(selectionRanges, selection => {
|
140
|
-
const
|
141
|
-
|
142
|
-
|
141
|
+
const {
|
142
|
+
from,
|
143
|
+
to
|
144
|
+
} = selectionSchemaNormalizer(selection);
|
145
|
+
const columnNonHeaderStart = Math.max(from.col, 0);
|
146
|
+
const amount = to.col - columnNonHeaderStart + 1;
|
143
147
|
(0, _array.arrayEach)(Array.from(new Array(amount), (_, i) => columnNonHeaderStart + i), index => {
|
144
148
|
if (!unorderedIndexes.has(index)) {
|
145
149
|
unorderedIndexes.add(index);
|
@@ -182,9 +186,12 @@ function transformSelectionToRowDistance(selectionRanges) {
|
|
182
186
|
|
183
187
|
// Iterate through all ranges and collect all column indexes which are not saved yet.
|
184
188
|
(0, _array.arrayEach)(selectionRanges, selection => {
|
185
|
-
const
|
186
|
-
|
187
|
-
|
189
|
+
const {
|
190
|
+
from,
|
191
|
+
to
|
192
|
+
} = selectionSchemaNormalizer(selection);
|
193
|
+
const rowNonHeaderStart = Math.max(from.row, 0);
|
194
|
+
const amount = to.row - rowNonHeaderStart + 1;
|
188
195
|
(0, _array.arrayEach)(Array.from(new Array(amount), (_, i) => rowNonHeaderStart + i), index => {
|
189
196
|
if (!unorderedIndexes.has(index)) {
|
190
197
|
unorderedIndexes.add(index);
|
@@ -203,17 +210,4 @@ function transformSelectionToRowDistance(selectionRanges) {
|
|
203
210
|
return acc;
|
204
211
|
}, []);
|
205
212
|
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;
|
219
213
|
}
|
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 } from "./../3rdparty/walkontable/src/index.mjs";
|
3
|
+
import { CellRange, CellCoords } 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,7 +98,9 @@ export function normalizeSelectionFactory(type) {
|
|
98
98
|
rowEnd = Math.max(origRowStart, origRowEnd);
|
99
99
|
columnEnd = Math.max(origColumnStart, origColumnEnd);
|
100
100
|
}
|
101
|
-
|
101
|
+
const from = new CellCoords(rowStart, columnStart);
|
102
|
+
const to = new CellCoords(rowEnd, columnEnd);
|
103
|
+
return new CellRange(from, from, to);
|
102
104
|
};
|
103
105
|
}
|
104
106
|
|
@@ -124,9 +126,12 @@ export function transformSelectionToColumnDistance(selectionRanges) {
|
|
124
126
|
|
125
127
|
// Iterate through all ranges and collect all column indexes which are not saved yet.
|
126
128
|
arrayEach(selectionRanges, selection => {
|
127
|
-
const
|
128
|
-
|
129
|
-
|
129
|
+
const {
|
130
|
+
from,
|
131
|
+
to
|
132
|
+
} = selectionSchemaNormalizer(selection);
|
133
|
+
const columnNonHeaderStart = Math.max(from.col, 0);
|
134
|
+
const amount = to.col - columnNonHeaderStart + 1;
|
130
135
|
arrayEach(Array.from(new Array(amount), (_, i) => columnNonHeaderStart + i), index => {
|
131
136
|
if (!unorderedIndexes.has(index)) {
|
132
137
|
unorderedIndexes.add(index);
|
@@ -169,9 +174,12 @@ export function transformSelectionToRowDistance(selectionRanges) {
|
|
169
174
|
|
170
175
|
// Iterate through all ranges and collect all column indexes which are not saved yet.
|
171
176
|
arrayEach(selectionRanges, selection => {
|
172
|
-
const
|
173
|
-
|
174
|
-
|
177
|
+
const {
|
178
|
+
from,
|
179
|
+
to
|
180
|
+
} = selectionSchemaNormalizer(selection);
|
181
|
+
const rowNonHeaderStart = Math.max(from.row, 0);
|
182
|
+
const amount = to.row - rowNonHeaderStart + 1;
|
175
183
|
arrayEach(Array.from(new Array(amount), (_, i) => rowNonHeaderStart + i), index => {
|
176
184
|
if (!unorderedIndexes.has(index)) {
|
177
185
|
unorderedIndexes.add(index);
|
@@ -190,17 +198,4 @@ export function transformSelectionToRowDistance(selectionRanges) {
|
|
190
198
|
return acc;
|
191
199
|
}, []);
|
192
200
|
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;
|
206
201
|
}
|
package/settings.d.ts
CHANGED
@@ -124,6 +124,7 @@ export interface GridSettings extends Events {
|
|
124
124
|
dateFormat?: string;
|
125
125
|
datePickerConfig?: PikadayOptions;
|
126
126
|
defaultDate?: string;
|
127
|
+
disableTabNavigation?: boolean;
|
127
128
|
disableVisualSelection?: boolean | 'current' | 'area' | 'header' | Array<'current' | 'area' | 'header'>;
|
128
129
|
dragToScroll?: boolean;
|
129
130
|
dropdownMenu?: DropdownMenuSettings;
|
@@ -164,6 +165,7 @@ export interface GridSettings extends Events {
|
|
164
165
|
minSpareCols?: number;
|
165
166
|
minSpareRows?: number;
|
166
167
|
multiColumnSorting?: MultiColumnSortingSettings;
|
168
|
+
navigableHeaders?: boolean;
|
167
169
|
nestedHeaders?: NestedHeadersSettings;
|
168
170
|
nestedRows?: boolean;
|
169
171
|
noWordWrapClassName?: string;
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
const command = {
|
5
|
+
name: 'editorCloseAndSave',
|
6
|
+
callback(hot, event, keys) {
|
7
|
+
const editorManager = hot._getEditorManager();
|
8
|
+
editorManager.closeEditorAndSaveChanges(hot.getShortcutManager().isCtrlPressed());
|
9
|
+
editorManager.moveSelectionAfterEnter(keys.includes('shift'));
|
10
|
+
}
|
11
|
+
};
|
12
|
+
exports.command = command;
|
@@ -0,0 +1,8 @@
|
|
1
|
+
export const command = {
|
2
|
+
name: 'editorCloseAndSave',
|
3
|
+
callback(hot, event, keys) {
|
4
|
+
const editorManager = hot._getEditorManager();
|
5
|
+
editorManager.closeEditorAndSaveChanges(hot.getShortcutManager().isCtrlPressed());
|
6
|
+
editorManager.moveSelectionAfterEnter(keys.includes('shift'));
|
7
|
+
}
|
8
|
+
};
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
const command = {
|
5
|
+
name: 'editorCloseWithoutSaving',
|
6
|
+
callback(hot) {
|
7
|
+
const editorManager = hot._getEditorManager();
|
8
|
+
editorManager.closeEditorAndRestoreOriginalValue(hot.getShortcutManager().isCtrlPressed());
|
9
|
+
editorManager.activeEditor.focus();
|
10
|
+
}
|
11
|
+
};
|
12
|
+
exports.command = command;
|
@@ -0,0 +1,8 @@
|
|
1
|
+
export const command = {
|
2
|
+
name: 'editorCloseWithoutSaving',
|
3
|
+
callback(hot) {
|
4
|
+
const editorManager = hot._getEditorManager();
|
5
|
+
editorManager.closeEditorAndRestoreOriginalValue(hot.getShortcutManager().isCtrlPressed());
|
6
|
+
editorManager.activeEditor.focus();
|
7
|
+
}
|
8
|
+
};
|
@@ -0,0 +1,16 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
const command = {
|
5
|
+
name: 'editorFastOpen',
|
6
|
+
callback(hot, event) {
|
7
|
+
const {
|
8
|
+
highlight
|
9
|
+
} = hot.getSelectedRangeLast();
|
10
|
+
if (highlight.isHeader()) {
|
11
|
+
return;
|
12
|
+
}
|
13
|
+
hot._getEditorManager().openEditor(null, event, true);
|
14
|
+
}
|
15
|
+
};
|
16
|
+
exports.command = command;
|
@@ -0,0 +1,16 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.getAllCommands = getAllCommands;
|
5
|
+
var _closeAndSave = require("./closeAndSave");
|
6
|
+
var _closeWithoutSaving = require("./closeWithoutSaving");
|
7
|
+
var _fastOpen = require("./fastOpen");
|
8
|
+
var _open = require("./open");
|
9
|
+
/**
|
10
|
+
* Returns complete list of the shortcut commands for the cells editing feature.
|
11
|
+
*
|
12
|
+
* @returns {Function[]}
|
13
|
+
*/
|
14
|
+
function getAllCommands() {
|
15
|
+
return [_closeAndSave.command, _closeWithoutSaving.command, _fastOpen.command, _open.command];
|
16
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { command as closeAndSave } from "./closeAndSave.mjs";
|
2
|
+
import { command as closeWithoutSaving } from "./closeWithoutSaving.mjs";
|
3
|
+
import { command as fastOpen } from "./fastOpen.mjs";
|
4
|
+
import { command as open } from "./open.mjs";
|
5
|
+
/**
|
6
|
+
* Returns complete list of the shortcut commands for the cells editing feature.
|
7
|
+
*
|
8
|
+
* @returns {Function[]}
|
9
|
+
*/
|
10
|
+
export function getAllCommands() {
|
11
|
+
return [closeAndSave, closeWithoutSaving, fastOpen, open];
|
12
|
+
}
|