handsontable 0.0.0-next-85c3085-20230713 → 0.0.0-next-08765b9-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/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/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 +173 -290
- package/core.mjs +173 -290
- package/dataMap/metaManager/metaSchema.js +41 -0
- package/dataMap/metaManager/metaSchema.mjs +41 -0
- package/dist/handsontable.css +19 -3
- package/dist/handsontable.full.css +19 -3
- package/dist/handsontable.full.js +8668 -5366
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +25 -25
- package/dist/handsontable.js +10976 -7674
- 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/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 +6 -2
- package/plugins/copyPaste/copyPaste.mjs +6 -2
- 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/mergeCells/mergeCells.js +5 -16
- package/plugins/mergeCells/mergeCells.mjs +5 -16
- 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 +290 -154
- package/selection/selection.mjs +287 -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,161 +1,303 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
+
require("core-js/modules/es.error.cause.js");
|
4
5
|
var _object = require("../helpers/object");
|
5
6
|
var _localHooks = _interopRequireDefault(require("./../mixins/localHooks"));
|
6
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
8
|
+
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
9
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
10
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
11
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
12
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
13
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
14
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
15
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
16
|
+
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; } }
|
7
17
|
/**
|
8
18
|
* The Transformation class implements algorithms for transforming coordinates based on current settings
|
9
|
-
* passed to the Handsontable.
|
19
|
+
* passed to the Handsontable. The class performs the calculations based on the renderable indexes.
|
10
20
|
*
|
11
21
|
* Transformation is always applied relative to the current selection.
|
12
22
|
*
|
23
|
+
* The class operates on a table size defined by the renderable indexes. If the `navigableHeaders`
|
24
|
+
* option is enabled, the table size is increased by the number of row and/or column headers.
|
25
|
+
* Because the headers are treated as cells as part of the table size (indexes always go from 0 to N),
|
26
|
+
* the algorithm can be written as simply as possible (without new if's that distinguish the headers
|
27
|
+
* logic).
|
28
|
+
*
|
13
29
|
* @class Transformation
|
14
30
|
* @util
|
15
31
|
*/
|
32
|
+
var _range = /*#__PURE__*/new WeakMap();
|
33
|
+
var _options = /*#__PURE__*/new WeakMap();
|
34
|
+
var _offset = /*#__PURE__*/new WeakMap();
|
35
|
+
var _setOffsetSize = /*#__PURE__*/new WeakSet();
|
36
|
+
var _clampCoords = /*#__PURE__*/new WeakSet();
|
37
|
+
var _getTableSize = /*#__PURE__*/new WeakSet();
|
38
|
+
var _visualToZeroBasedCoords = /*#__PURE__*/new WeakSet();
|
39
|
+
var _zeroBasedToVisualCoords = /*#__PURE__*/new WeakSet();
|
16
40
|
class Transformation {
|
17
41
|
constructor(range, options) {
|
42
|
+
/**
|
43
|
+
* Translates the zero-based coordinates to visual ones.
|
44
|
+
*
|
45
|
+
* @param {CellCoords} zeroBasedCoords The coordinates to process.
|
46
|
+
* @returns {CellCoords}
|
47
|
+
*/
|
48
|
+
_classPrivateMethodInitSpec(this, _zeroBasedToVisualCoords);
|
49
|
+
/**
|
50
|
+
* Translates the visual coordinates to zero-based ones.
|
51
|
+
*
|
52
|
+
* @param {CellCoords} visualCoords The visual coords to process.
|
53
|
+
* @returns {{x: number, y: number}}
|
54
|
+
*/
|
55
|
+
_classPrivateMethodInitSpec(this, _visualToZeroBasedCoords);
|
56
|
+
/**
|
57
|
+
* Gets the table size in number of rows with headers as "height" and number of columns with
|
58
|
+
* headers as "width".
|
59
|
+
*
|
60
|
+
* @returns {{width: number, height: number}}
|
61
|
+
*/
|
62
|
+
_classPrivateMethodInitSpec(this, _getTableSize);
|
63
|
+
/**
|
64
|
+
* Clamps the coords to make sure they points to the cell (or header) in the table range.
|
65
|
+
*
|
66
|
+
* @param {CellCoords} zeroBasedCoords The coords object to clamp.
|
67
|
+
* @returns {{rowDir: 1|0|-1, colDir: 1|0|-1}}
|
68
|
+
*/
|
69
|
+
_classPrivateMethodInitSpec(this, _clampCoords);
|
70
|
+
/**
|
71
|
+
* Sets the additional offset in table size that may occur when the `navigableHeaders` option
|
72
|
+
* is enabled.
|
73
|
+
*
|
74
|
+
* @param {{x: number, y: number}} offset Offset as x and y properties.
|
75
|
+
*/
|
76
|
+
_classPrivateMethodInitSpec(this, _setOffsetSize);
|
18
77
|
/**
|
19
78
|
* Instance of the SelectionRange, holder for visual coordinates applied to the table.
|
20
79
|
*
|
21
80
|
* @type {SelectionRange}
|
22
81
|
*/
|
23
|
-
this
|
82
|
+
_classPrivateFieldInitSpec(this, _range, {
|
83
|
+
writable: true,
|
84
|
+
value: void 0
|
85
|
+
});
|
24
86
|
/**
|
25
87
|
* Additional options which define the state of the settings which can infer transformation and
|
26
88
|
* give the possibility to translate indexes.
|
27
89
|
*
|
28
90
|
* @type {object}
|
29
91
|
*/
|
30
|
-
this
|
92
|
+
_classPrivateFieldInitSpec(this, _options, {
|
93
|
+
writable: true,
|
94
|
+
value: void 0
|
95
|
+
});
|
96
|
+
/**
|
97
|
+
* Increases the table size by applying the offsets. The option is used by the `navigableHeaders`
|
98
|
+
* option.
|
99
|
+
*
|
100
|
+
* @type {{ x: number, y: number }}
|
101
|
+
*/
|
102
|
+
_classPrivateFieldInitSpec(this, _offset, {
|
103
|
+
writable: true,
|
104
|
+
value: {
|
105
|
+
x: 0,
|
106
|
+
y: 0
|
107
|
+
}
|
108
|
+
});
|
109
|
+
_classPrivateFieldSet(this, _range, range);
|
110
|
+
_classPrivateFieldSet(this, _options, options);
|
31
111
|
}
|
32
112
|
|
33
113
|
/**
|
34
|
-
* Selects cell relative to current cell (if possible).
|
114
|
+
* Selects cell relative to the current cell (if possible).
|
35
115
|
*
|
36
116
|
* @param {number} rowDelta Rows number to move, value can be passed as negative number.
|
37
117
|
* @param {number} colDelta Columns number to move, value can be passed as negative number.
|
38
|
-
* @param {boolean} [
|
118
|
+
* @param {boolean} [createMissingRecords=false] If `true` the new rows/columns will be created if necessary. Otherwise, row/column will
|
39
119
|
* be created according to `minSpareRows/minSpareCols` settings of Handsontable.
|
40
120
|
* @returns {CellCoords} Visual coordinates after transformation.
|
41
121
|
*/
|
42
122
|
transformStart(rowDelta, colDelta) {
|
43
|
-
let
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
123
|
+
let createMissingRecords = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
124
|
+
_classPrivateMethodGet(this, _setOffsetSize, _setOffsetSize2).call(this, {
|
125
|
+
x: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countRowHeaders() : 0,
|
126
|
+
y: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countColHeaders() : 0
|
127
|
+
});
|
128
|
+
const delta = _classPrivateFieldGet(this, _options).createCellCoords(rowDelta, colDelta);
|
129
|
+
let visualCoords = _classPrivateFieldGet(this, _range).current().highlight;
|
130
|
+
const highlightRenderableCoords = _classPrivateFieldGet(this, _options).visualToRenderableCoords(visualCoords);
|
51
131
|
let rowTransformDir = 0;
|
52
132
|
let colTransformDir = 0;
|
53
133
|
this.runLocalHooks('beforeTransformStart', delta);
|
54
|
-
if (
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
const
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
134
|
+
if (highlightRenderableCoords.row !== null && highlightRenderableCoords.col !== null) {
|
135
|
+
const {
|
136
|
+
width,
|
137
|
+
height
|
138
|
+
} = _classPrivateMethodGet(this, _getTableSize, _getTableSize2).call(this);
|
139
|
+
const {
|
140
|
+
x,
|
141
|
+
y
|
142
|
+
} = _classPrivateMethodGet(this, _visualToZeroBasedCoords, _visualToZeroBasedCoords2).call(this, visualCoords);
|
143
|
+
const fixedRowsBottom = _classPrivateFieldGet(this, _options).fixedRowsBottom();
|
144
|
+
const minSpareRows = _classPrivateFieldGet(this, _options).minSpareRows();
|
145
|
+
const minSpareCols = _classPrivateFieldGet(this, _options).minSpareCols();
|
146
|
+
const autoWrapRow = _classPrivateFieldGet(this, _options).autoWrapRow();
|
147
|
+
const autoWrapCol = _classPrivateFieldGet(this, _options).autoWrapCol();
|
148
|
+
const rawCoords = {
|
149
|
+
row: y + delta.row,
|
150
|
+
col: x + delta.col
|
151
|
+
};
|
152
|
+
if (rawCoords.row >= height) {
|
153
|
+
if (createMissingRecords && minSpareRows > 0 && fixedRowsBottom === 0) {
|
154
|
+
this.runLocalHooks('insertRowRequire', _classPrivateFieldGet(this, _options).countRenderableRows());
|
66
155
|
} else if (autoWrapCol) {
|
67
|
-
|
68
|
-
|
156
|
+
const nextColumn = rawCoords.col + 1;
|
157
|
+
rawCoords.row = rawCoords.row - height;
|
158
|
+
rawCoords.col = nextColumn >= width ? nextColumn - width : nextColumn;
|
159
|
+
}
|
160
|
+
} else if (rawCoords.row < 0) {
|
161
|
+
if (autoWrapCol) {
|
162
|
+
const previousColumn = rawCoords.col - 1;
|
163
|
+
rawCoords.row = height + rawCoords.row;
|
164
|
+
rawCoords.col = previousColumn < 0 ? width + previousColumn : previousColumn;
|
69
165
|
}
|
70
|
-
} else if (autoWrapCol && renderableRow + delta.row < 0 && renderableColumn + delta.col >= 0) {
|
71
|
-
delta.row = totalRows - 1;
|
72
|
-
delta.col = renderableColumn + delta.col === 0 ? totalCols - 1 : -1;
|
73
166
|
}
|
74
|
-
if (
|
75
|
-
if (
|
76
|
-
this.runLocalHooks('insertColRequire',
|
77
|
-
totalCols = this.options.countCols();
|
167
|
+
if (rawCoords.col >= width) {
|
168
|
+
if (createMissingRecords && minSpareCols > 0) {
|
169
|
+
this.runLocalHooks('insertColRequire', _classPrivateFieldGet(this, _options).countRenderableColumns());
|
78
170
|
} else if (autoWrapRow) {
|
79
|
-
|
80
|
-
|
171
|
+
const nextRow = rawCoords.row + 1;
|
172
|
+
rawCoords.row = nextRow >= height ? nextRow - height : nextRow;
|
173
|
+
rawCoords.col = rawCoords.col - width;
|
174
|
+
}
|
175
|
+
} else if (rawCoords.col < 0) {
|
176
|
+
if (autoWrapRow) {
|
177
|
+
const previousRow = rawCoords.row - 1;
|
178
|
+
rawCoords.row = previousRow < 0 ? height + previousRow : previousRow;
|
179
|
+
rawCoords.col = width + rawCoords.col;
|
81
180
|
}
|
82
|
-
} else if (autoWrapRow && renderableColumn + delta.col < 0 && renderableRow + delta.row >= 0) {
|
83
|
-
delta.row = renderableRow + delta.row === 0 ? totalRows - 1 : -1;
|
84
|
-
delta.col = totalCols - 1;
|
85
|
-
}
|
86
|
-
const coords = this.options.createCellCoords(renderableRow + delta.row, renderableColumn + delta.col);
|
87
|
-
rowTransformDir = 0;
|
88
|
-
colTransformDir = 0;
|
89
|
-
if (coords.row < 0) {
|
90
|
-
rowTransformDir = -1;
|
91
|
-
coords.row = 0;
|
92
|
-
} else if (coords.row > 0 && coords.row >= totalRows) {
|
93
|
-
rowTransformDir = 1;
|
94
|
-
coords.row = totalRows - 1;
|
95
|
-
}
|
96
|
-
if (coords.col < 0) {
|
97
|
-
colTransformDir = -1;
|
98
|
-
coords.col = 0;
|
99
|
-
} else if (coords.col > 0 && coords.col >= totalCols) {
|
100
|
-
colTransformDir = 1;
|
101
|
-
coords.col = totalCols - 1;
|
102
181
|
}
|
103
|
-
|
182
|
+
const coords = _classPrivateFieldGet(this, _options).createCellCoords(rawCoords.row, rawCoords.col);
|
183
|
+
const {
|
184
|
+
rowDir,
|
185
|
+
colDir
|
186
|
+
} = _classPrivateMethodGet(this, _clampCoords, _clampCoords2).call(this, coords);
|
187
|
+
rowTransformDir = rowDir;
|
188
|
+
colTransformDir = colDir;
|
189
|
+
visualCoords = _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, coords);
|
104
190
|
}
|
105
191
|
this.runLocalHooks('afterTransformStart', visualCoords, rowTransformDir, colTransformDir);
|
106
192
|
return visualCoords;
|
107
193
|
}
|
108
194
|
|
109
195
|
/**
|
110
|
-
* Sets selection end cell relative to current selection end cell (if possible).
|
196
|
+
* Sets selection end cell relative to the current selection end cell (if possible).
|
111
197
|
*
|
112
198
|
* @param {number} rowDelta Rows number to move, value can be passed as negative number.
|
113
199
|
* @param {number} colDelta Columns number to move, value can be passed as negative number.
|
114
200
|
* @returns {CellCoords} Visual coordinates after transformation.
|
115
201
|
*/
|
116
202
|
transformEnd(rowDelta, colDelta) {
|
117
|
-
|
118
|
-
|
119
|
-
|
203
|
+
_classPrivateMethodGet(this, _setOffsetSize, _setOffsetSize2).call(this, {
|
204
|
+
x: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countRowHeaders() : 0,
|
205
|
+
y: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countColHeaders() : 0
|
206
|
+
});
|
207
|
+
const delta = _classPrivateFieldGet(this, _options).createCellCoords(rowDelta, colDelta);
|
208
|
+
const cellRange = _classPrivateFieldGet(this, _range).current();
|
209
|
+
const highlightRenderableCoords = _classPrivateFieldGet(this, _options).visualToRenderableCoords(cellRange.highlight);
|
210
|
+
const visualCoords = cellRange.to.clone();
|
120
211
|
let rowTransformDir = 0;
|
121
212
|
let colTransformDir = 0;
|
122
213
|
this.runLocalHooks('beforeTransformEnd', delta);
|
123
|
-
|
124
|
-
row: rowHighlight,
|
125
|
-
col: colHighlight
|
126
|
-
} = this.options.visualToRenderableCoords(cellRange.highlight);
|
127
|
-
|
128
|
-
// We have highlight (start point for the selection).
|
129
|
-
if (rowHighlight !== null && colHighlight !== null) {
|
130
|
-
const totalRows = this.options.countRows();
|
131
|
-
const totalCols = this.options.countCols();
|
214
|
+
if (highlightRenderableCoords.row !== null && highlightRenderableCoords.col !== null) {
|
132
215
|
const {
|
133
|
-
|
134
|
-
|
135
|
-
} = this.
|
136
|
-
const
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
216
|
+
x,
|
217
|
+
y
|
218
|
+
} = _classPrivateMethodGet(this, _visualToZeroBasedCoords, _visualToZeroBasedCoords2).call(this, cellRange.to);
|
219
|
+
const rawCoords = {
|
220
|
+
row: y + delta.row,
|
221
|
+
col: x + delta.col
|
222
|
+
};
|
223
|
+
const coords = _classPrivateFieldGet(this, _options).createCellCoords(rawCoords.row, rawCoords.col);
|
224
|
+
const {
|
225
|
+
rowDir,
|
226
|
+
colDir
|
227
|
+
} = _classPrivateMethodGet(this, _clampCoords, _clampCoords2).call(this, coords);
|
228
|
+
rowTransformDir = rowDir;
|
229
|
+
colTransformDir = colDir;
|
230
|
+
const newVisualCoords = _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, coords);
|
231
|
+
if (delta.row === 0 && delta.col !== 0) {
|
232
|
+
visualCoords.col = newVisualCoords.col;
|
233
|
+
} else if (delta.row !== 0 && delta.col === 0) {
|
234
|
+
visualCoords.row = newVisualCoords.row;
|
235
|
+
} else {
|
236
|
+
visualCoords.row = newVisualCoords.row;
|
237
|
+
visualCoords.col = newVisualCoords.col;
|
152
238
|
}
|
153
|
-
visualCoords = this.options.renderableToVisualCoords(coords);
|
154
239
|
}
|
155
240
|
this.runLocalHooks('afterTransformEnd', visualCoords, rowTransformDir, colTransformDir);
|
156
241
|
return visualCoords;
|
157
242
|
}
|
158
243
|
}
|
244
|
+
function _setOffsetSize2(_ref) {
|
245
|
+
let {
|
246
|
+
x,
|
247
|
+
y
|
248
|
+
} = _ref;
|
249
|
+
_classPrivateFieldSet(this, _offset, {
|
250
|
+
x,
|
251
|
+
y
|
252
|
+
});
|
253
|
+
}
|
254
|
+
function _clampCoords2(zeroBasedCoords) {
|
255
|
+
const {
|
256
|
+
width,
|
257
|
+
height
|
258
|
+
} = _classPrivateMethodGet(this, _getTableSize, _getTableSize2).call(this);
|
259
|
+
let rowDir = 0;
|
260
|
+
let colDir = 0;
|
261
|
+
if (zeroBasedCoords.row < 0) {
|
262
|
+
rowDir = -1;
|
263
|
+
zeroBasedCoords.row = 0;
|
264
|
+
} else if (zeroBasedCoords.row > 0 && zeroBasedCoords.row >= height) {
|
265
|
+
rowDir = 1;
|
266
|
+
zeroBasedCoords.row = height - 1;
|
267
|
+
}
|
268
|
+
if (zeroBasedCoords.col < 0) {
|
269
|
+
colDir = -1;
|
270
|
+
zeroBasedCoords.col = 0;
|
271
|
+
} else if (zeroBasedCoords.col > 0 && zeroBasedCoords.col >= width) {
|
272
|
+
colDir = 1;
|
273
|
+
zeroBasedCoords.col = width - 1;
|
274
|
+
}
|
275
|
+
return {
|
276
|
+
rowDir,
|
277
|
+
colDir
|
278
|
+
};
|
279
|
+
}
|
280
|
+
function _getTableSize2() {
|
281
|
+
return {
|
282
|
+
width: _classPrivateFieldGet(this, _offset).x + _classPrivateFieldGet(this, _options).countRenderableColumns(),
|
283
|
+
height: _classPrivateFieldGet(this, _offset).y + _classPrivateFieldGet(this, _options).countRenderableRows()
|
284
|
+
};
|
285
|
+
}
|
286
|
+
function _visualToZeroBasedCoords2(visualCoords) {
|
287
|
+
const {
|
288
|
+
row,
|
289
|
+
col
|
290
|
+
} = _classPrivateFieldGet(this, _options).visualToRenderableCoords(visualCoords);
|
291
|
+
return {
|
292
|
+
x: _classPrivateFieldGet(this, _offset).x + col,
|
293
|
+
y: _classPrivateFieldGet(this, _offset).y + row
|
294
|
+
};
|
295
|
+
}
|
296
|
+
function _zeroBasedToVisualCoords2(zeroBasedCoords) {
|
297
|
+
zeroBasedCoords.col = zeroBasedCoords.col - _classPrivateFieldGet(this, _offset).x;
|
298
|
+
zeroBasedCoords.row = zeroBasedCoords.row - _classPrivateFieldGet(this, _offset).y;
|
299
|
+
return _classPrivateFieldGet(this, _options).renderableToVisualCoords(zeroBasedCoords);
|
300
|
+
}
|
159
301
|
(0, _object.mixin)(Transformation, _localHooks.default);
|
160
302
|
var _default = Transformation;
|
161
303
|
exports.default = _default;
|