handsontable 0.0.0-next-6d7bdba-20230620 → 0.0.0-next-06a64be-20230621
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 +12 -61
- package/3rdparty/walkontable/src/cell/coords.mjs +12 -61
- package/3rdparty/walkontable/src/cell/range.d.ts +2 -9
- package/3rdparty/walkontable/src/cell/range.js +7 -44
- package/3rdparty/walkontable/src/cell/range.mjs +7 -44
- 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 +4 -2
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +4 -2
- package/3rdparty/walkontable/src/overlay/top.js +4 -2
- package/3rdparty/walkontable/src/overlay/top.mjs +4 -2
- package/3rdparty/walkontable/src/selection.js +355 -0
- package/3rdparty/walkontable/src/selection.mjs +349 -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 +79 -7
- package/3rdparty/walkontable/src/table.mjs +80 -8
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core.d.ts +3 -5
- package/core.js +309 -127
- package/core.mjs +309 -127
- package/dataMap/metaManager/metaSchema.js +0 -19
- package/dataMap/metaManager/metaSchema.mjs +0 -19
- package/dist/handsontable.css +3 -8
- package/dist/handsontable.full.css +3 -8
- package/dist/handsontable.full.js +10685 -13607
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +112 -112
- package/dist/handsontable.js +13664 -16586
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +4 -4
- package/editorManager.js +94 -21
- package/editorManager.mjs +98 -26
- 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 -5
- package/pluginHooks.js +1 -89
- package/pluginHooks.mjs +1 -89
- package/plugins/collapsibleColumns/collapsibleColumns.js +24 -81
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +24 -81
- package/plugins/columnSorting/columnSorting.js +8 -50
- package/plugins/columnSorting/columnSorting.mjs +9 -49
- package/plugins/columnSorting/index.js +2 -4
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/comments/comments.js +4 -11
- package/plugins/comments/comments.mjs +4 -11
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +29 -80
- package/plugins/contextMenu/contextMenu.mjs +30 -81
- 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 -25
- package/plugins/contextMenu/utils.mjs +15 -24
- 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 +1 -5
- package/plugins/copyPaste/copyPaste.mjs +1 -5
- package/plugins/customBorders/customBorders.js +53 -25
- package/plugins/customBorders/customBorders.mjs +54 -26
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +30 -94
- package/plugins/dropdownMenu/dropdownMenu.mjs +30 -94
- package/plugins/manualColumnResize/manualColumnResize.js +36 -5
- package/plugins/manualColumnResize/manualColumnResize.mjs +36 -5
- package/plugins/manualRowResize/manualRowResize.js +40 -9
- package/plugins/manualRowResize/manualRowResize.mjs +40 -9
- package/plugins/mergeCells/mergeCells.js +18 -5
- package/plugins/mergeCells/mergeCells.mjs +18 -5
- package/plugins/multiColumnSorting/multiColumnSorting.js +3 -42
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +3 -42
- package/plugins/nestedHeaders/nestedHeaders.js +10 -132
- package/plugins/nestedHeaders/nestedHeaders.mjs +10 -132
- package/plugins/nestedHeaders/stateManager/index.js +0 -37
- package/plugins/nestedHeaders/stateManager/index.mjs +0 -37
- package/plugins/nestedRows/nestedRows.js +7 -52
- package/plugins/nestedRows/nestedRows.mjs +7 -52
- package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
- package/selection/highlight/constants.js +16 -0
- package/selection/highlight/constants.mjs +6 -0
- package/selection/highlight/highlight.js +89 -312
- package/selection/highlight/highlight.mjs +85 -302
- package/selection/highlight/types/activeHeader.js +9 -10
- package/selection/highlight/types/activeHeader.mjs +8 -10
- package/selection/highlight/types/area.js +27 -12
- package/selection/highlight/types/area.mjs +30 -16
- package/selection/highlight/types/{focus.js → cell.js} +8 -5
- package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
- package/selection/highlight/types/customSelection.js +10 -7
- package/selection/highlight/types/customSelection.mjs +9 -7
- package/selection/highlight/types/fill.js +8 -5
- package/selection/highlight/types/fill.mjs +7 -5
- package/selection/highlight/types/header.js +20 -10
- package/selection/highlight/types/header.mjs +19 -10
- package/selection/highlight/types/{row.js → index.js} +31 -27
- package/selection/highlight/types/{row.mjs → index.mjs} +29 -24
- 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 +181 -315
- package/selection/selection.mjs +180 -310
- package/selection/transformation.js +96 -233
- package/selection/transformation.mjs +93 -230
- package/selection/utils.js +36 -12
- package/selection/utils.mjs +36 -13
- package/settings.d.ts +0 -1
- 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 -21
- package/shortcuts/utils.mjs +4 -20
- package/tableView.js +9 -58
- package/tableView.mjs +9 -58
- package/translations/indexMapper.js +9 -8
- package/translations/indexMapper.mjs +9 -8
- package/3rdparty/walkontable/src/selection/border/constants.js +0 -18
- package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -13
- package/3rdparty/walkontable/src/selection/constants.js +0 -63
- package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
- package/3rdparty/walkontable/src/selection/index.js +0 -30
- package/3rdparty/walkontable/src/selection/index.mjs +0 -5
- package/3rdparty/walkontable/src/selection/manager.js +0 -329
- package/3rdparty/walkontable/src/selection/manager.mjs +0 -323
- package/3rdparty/walkontable/src/selection/scanner.js +0 -364
- package/3rdparty/walkontable/src/selection/scanner.mjs +0 -360
- package/3rdparty/walkontable/src/selection/selection.js +0 -133
- package/3rdparty/walkontable/src/selection/selection.mjs +0 -127
- package/selection/highlight/types/areaLayered.js +0 -54
- package/selection/highlight/types/areaLayered.mjs +0 -49
- package/selection/highlight/types/column.js +0 -50
- package/selection/highlight/types/column.mjs +0 -45
- package/shortcutContexts/commands/editor/closeAndSave.js +0 -15
- package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -10
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -13
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
- package/shortcutContexts/commands/editor/fastOpen.js +0 -16
- package/shortcutContexts/commands/editor/fastOpen.mjs +0 -11
- package/shortcutContexts/commands/editor/index.js +0 -16
- package/shortcutContexts/commands/editor/index.mjs +0 -12
- package/shortcutContexts/commands/editor/open.js +0 -29
- package/shortcutContexts/commands/editor/open.mjs +0 -24
- package/shortcutContexts/commands/emptySelectedCells.js +0 -12
- package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
- package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -10
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -21
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -16
- 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 -10
- package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -10
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -14
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -22
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -17
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -17
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -12
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -17
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -12
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -40
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -35
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -40
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -35
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -22
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -17
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -14
- package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -10
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -21
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -16
- package/shortcutContexts/commands/index.js +0 -52
- package/shortcutContexts/commands/index.mjs +0 -48
- package/shortcutContexts/commands/moveCellSelection/down.js +0 -12
- package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -7
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -29
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -24
- package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
- package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -13
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -13
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
- package/shortcutContexts/commands/moveCellSelection/left.js +0 -11
- package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
- package/shortcutContexts/commands/moveCellSelection/right.js +0 -11
- package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -16
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -11
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -12
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -13
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -8
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -16
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -11
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -36
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -31
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -36
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -31
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -16
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -11
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -18
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -13
- package/shortcutContexts/commands/moveCellSelection/up.js +0 -12
- package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -7
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -29
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -24
- package/shortcutContexts/commands/populateSelectedCellsData.js +0 -35
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -30
- package/shortcutContexts/commands/selectAll.js +0 -11
- package/shortcutContexts/commands/selectAll.mjs +0 -6
- package/shortcutContexts/constants.js +0 -19
- package/shortcutContexts/constants.mjs +0 -12
- package/shortcutContexts/editor.js +0 -29
- package/shortcutContexts/editor.mjs +0 -25
- package/shortcutContexts/grid.js +0 -244
- package/shortcutContexts/grid.mjs +0 -240
- package/shortcutContexts/index.js +0 -29
- package/shortcutContexts/index.mjs +0 -15
package/selection/selection.js
CHANGED
@@ -3,8 +3,9 @@
|
|
3
3
|
require("core-js/modules/es.array.slice.js");
|
4
4
|
require("core-js/modules/es.object.freeze.js");
|
5
5
|
require("core-js/modules/es.symbol.iterator.js");
|
6
|
-
require("core-js/modules/es.
|
7
|
-
require("core-js/modules/es.
|
6
|
+
require("core-js/modules/es.regexp.to-string.js");
|
7
|
+
require("core-js/modules/es.function.name.js");
|
8
|
+
require("core-js/modules/es.regexp.exec.js");
|
8
9
|
exports.__esModule = true;
|
9
10
|
exports.default = void 0;
|
10
11
|
require("core-js/modules/es.array.iterator.js");
|
@@ -23,12 +24,11 @@ require("core-js/modules/es.symbol.to-primitive.js");
|
|
23
24
|
require("core-js/modules/es.date.to-primitive.js");
|
24
25
|
require("core-js/modules/es.symbol.js");
|
25
26
|
require("core-js/modules/es.symbol.description.js");
|
26
|
-
var
|
27
|
-
var
|
27
|
+
var _highlight = _interopRequireDefault(require("./highlight/highlight"));
|
28
|
+
var _constants = require("./highlight/constants");
|
28
29
|
var _range = _interopRequireDefault(require("./range"));
|
29
30
|
var _object = require("./../helpers/object");
|
30
31
|
var _mixed = require("./../helpers/mixed");
|
31
|
-
var _number = require("./../helpers/number");
|
32
32
|
var _array = require("./../helpers/array");
|
33
33
|
var _localHooks = _interopRequireDefault(require("./../mixins/localHooks"));
|
34
34
|
var _transformation = _interopRequireDefault(require("./transformation"));
|
@@ -36,14 +36,17 @@ var _utils = require("./utils");
|
|
36
36
|
var _templateLiteralTag = require("./../helpers/templateLiteralTag");
|
37
37
|
var _templateObject;
|
38
38
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
39
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
40
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
41
39
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
40
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
41
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
42
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
43
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
44
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
45
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
42
46
|
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
43
47
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
44
48
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
45
49
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
46
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
47
50
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
48
51
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
49
52
|
/**
|
@@ -59,62 +62,57 @@ var Selection = /*#__PURE__*/function () {
|
|
59
62
|
*
|
60
63
|
* @type {GridSettings}
|
61
64
|
*/
|
62
|
-
|
65
|
+
this.settings = settings;
|
63
66
|
/**
|
64
67
|
* An additional object with dynamically defined properties which describes table state.
|
65
68
|
*
|
66
69
|
* @type {object}
|
67
70
|
*/
|
68
|
-
|
71
|
+
this.tableProps = tableProps;
|
69
72
|
/**
|
70
73
|
* The flag which determines if the selection is in progress.
|
71
74
|
*
|
72
75
|
* @type {boolean}
|
73
76
|
*/
|
74
|
-
|
77
|
+
this.inProgress = false;
|
75
78
|
/**
|
76
|
-
*
|
79
|
+
* The flag indicates that selection was performed by clicking the corner overlay.
|
77
80
|
*
|
78
|
-
* @type {
|
81
|
+
* @type {boolean}
|
79
82
|
*/
|
80
|
-
|
81
|
-
return _this.tableProps.createCellRange(highlight, from, to);
|
82
|
-
}));
|
83
|
+
this.selectedByCorner = false;
|
83
84
|
/**
|
84
|
-
*
|
85
|
+
* The collection of the selection layer levels where the whole row was selected using the row header or
|
86
|
+
* the corner header.
|
85
87
|
*
|
86
|
-
* @type {
|
88
|
+
* @type {Set.<number>}
|
87
89
|
*/
|
88
|
-
|
90
|
+
this.selectedByRowHeader = new Set();
|
89
91
|
/**
|
90
|
-
* The
|
92
|
+
* The collection of the selection layer levels where the whole column was selected using the column header or
|
93
|
+
* the corner header.
|
91
94
|
*
|
92
|
-
* @type {
|
95
|
+
* @type {Set.<number>}
|
93
96
|
*/
|
94
|
-
|
97
|
+
this.selectedByColumnHeader = new Set();
|
95
98
|
/**
|
96
|
-
*
|
97
|
-
* the corner header.
|
99
|
+
* Selection data layer (handle visual coordinates).
|
98
100
|
*
|
99
|
-
* @type {
|
101
|
+
* @type {SelectionRange}
|
100
102
|
*/
|
101
|
-
|
103
|
+
this.selectedRange = new _range.default(function (highlight, from, to) {
|
104
|
+
return _this.tableProps.createCellRange(highlight, from, to);
|
105
|
+
});
|
102
106
|
/**
|
103
|
-
*
|
104
|
-
* the corner header.
|
107
|
+
* Visualization layer.
|
105
108
|
*
|
106
|
-
* @type {
|
109
|
+
* @type {Highlight}
|
107
110
|
*/
|
108
|
-
_defineProperty(this, "selectedByColumnHeader", new Set());
|
109
|
-
this.settings = settings;
|
110
|
-
this.tableProps = tableProps;
|
111
111
|
this.highlight = new _highlight.default({
|
112
112
|
headerClassName: settings.currentHeaderClassName,
|
113
113
|
activeHeaderClassName: settings.activeHeaderClassName,
|
114
114
|
rowClassName: settings.currentRowClassName,
|
115
115
|
columnClassName: settings.currentColClassName,
|
116
|
-
rowIndexMapper: this.tableProps.rowIndexMapper,
|
117
|
-
columnIndexMapper: this.tableProps.columnIndexMapper,
|
118
116
|
disabledCellSelection: function disabledCellSelection(row, column) {
|
119
117
|
return _this.tableProps.isDisabledCellSelection(row, column);
|
120
118
|
},
|
@@ -135,22 +133,25 @@ var Selection = /*#__PURE__*/function () {
|
|
135
133
|
},
|
136
134
|
createCellRange: function createCellRange(highlight, from, to) {
|
137
135
|
return _this.tableProps.createCellRange(highlight, from, to);
|
136
|
+
},
|
137
|
+
rowIndexMapper: function rowIndexMapper() {
|
138
|
+
return _this.tableProps.rowIndexMapper();
|
139
|
+
},
|
140
|
+
columnIndexMapper: function columnIndexMapper() {
|
141
|
+
return _this.tableProps.columnIndexMapper();
|
138
142
|
}
|
139
143
|
});
|
144
|
+
/**
|
145
|
+
* The module for modifying coordinates.
|
146
|
+
*
|
147
|
+
* @type {Transformation}
|
148
|
+
*/
|
140
149
|
this.transformation = new _transformation.default(this.selectedRange, {
|
141
|
-
|
142
|
-
|
143
|
-
countRenderableRows: function countRenderableRows() {
|
144
|
-
return _this.tableProps.countRenderableRows();
|
145
|
-
},
|
146
|
-
countRenderableColumns: function countRenderableColumns() {
|
147
|
-
return _this.tableProps.countRenderableColumns();
|
148
|
-
},
|
149
|
-
countRowHeaders: function countRowHeaders() {
|
150
|
-
return _this.tableProps.countRowHeaders();
|
150
|
+
countRows: function countRows() {
|
151
|
+
return _this.tableProps.countRowsTranslated();
|
151
152
|
},
|
152
|
-
|
153
|
-
return _this.tableProps.
|
153
|
+
countCols: function countCols() {
|
154
|
+
return _this.tableProps.countColsTranslated();
|
154
155
|
},
|
155
156
|
visualToRenderableCoords: function visualToRenderableCoords(coords) {
|
156
157
|
return _this.tableProps.visualToRenderableCoords(coords);
|
@@ -161,9 +162,6 @@ var Selection = /*#__PURE__*/function () {
|
|
161
162
|
createCellCoords: function createCellCoords(row, column) {
|
162
163
|
return _this.tableProps.createCellCoords(row, column);
|
163
164
|
},
|
164
|
-
navigableHeaders: function navigableHeaders() {
|
165
|
-
return settings.navigableHeaders;
|
166
|
-
},
|
167
165
|
fixedRowsBottom: function fixedRowsBottom() {
|
168
166
|
return settings.fixedRowsBottom;
|
169
167
|
},
|
@@ -230,7 +228,7 @@ var Selection = /*#__PURE__*/function () {
|
|
230
228
|
}
|
231
229
|
|
232
230
|
/**
|
233
|
-
* Indicate that selection process began. It sets
|
231
|
+
* Indicate that selection process began. It sets internaly `.inProgress` property to `true`.
|
234
232
|
*/
|
235
233
|
}, {
|
236
234
|
key: "begin",
|
@@ -239,7 +237,7 @@ var Selection = /*#__PURE__*/function () {
|
|
239
237
|
}
|
240
238
|
|
241
239
|
/**
|
242
|
-
* Indicate that selection process finished. It sets
|
240
|
+
* Indicate that selection process finished. It sets internaly `.inProgress` property to `false`.
|
243
241
|
*/
|
244
242
|
}, {
|
245
243
|
key: "finish",
|
@@ -268,27 +266,35 @@ var Selection = /*#__PURE__*/function () {
|
|
268
266
|
* the default trigger will be used.
|
269
267
|
* @param {boolean} [fragment=false] If `true`, the selection will be treated as a partial selection where the
|
270
268
|
* `setRangeEnd` method won't be called on every `setRangeStart` call.
|
271
|
-
* @param {CellCoords} [highlightCoords] If set, allows changing the coordinates of the highlight/focus cell.
|
272
269
|
*/
|
273
270
|
}, {
|
274
271
|
key: "setRangeStart",
|
275
272
|
value: function setRangeStart(coords, multipleSelection) {
|
276
273
|
var fragment = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
277
|
-
var highlightCoords = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : coords;
|
278
274
|
var isMultipleMode = this.settings.selectionMode === 'multiple';
|
279
275
|
var isMultipleSelection = (0, _mixed.isUndefined)(multipleSelection) ? this.tableProps.getShortcutManager().isCtrlPressed() : multipleSelection;
|
276
|
+
var isRowNegative = coords.row < 0;
|
277
|
+
var isColumnNegative = coords.col < 0;
|
278
|
+
var selectedByCorner = isRowNegative && isColumnNegative;
|
280
279
|
// We are creating copy. We would like to modify just the start of the selection by below hook. Then original coords
|
281
280
|
// should be handled by next methods.
|
282
281
|
var coordsClone = coords.clone();
|
282
|
+
this.selectedByCorner = selectedByCorner;
|
283
283
|
this.runLocalHooks("beforeSetRangeStart".concat(fragment ? 'Only' : ''), coordsClone);
|
284
284
|
if (!isMultipleMode || isMultipleMode && !isMultipleSelection && (0, _mixed.isUndefined)(multipleSelection)) {
|
285
285
|
this.selectedRange.clear();
|
286
286
|
}
|
287
|
-
this.selectedRange.add(coordsClone)
|
287
|
+
this.selectedRange.add(coordsClone);
|
288
288
|
if (this.getLayerLevel() === 0) {
|
289
289
|
this.selectedByRowHeader.clear();
|
290
290
|
this.selectedByColumnHeader.clear();
|
291
291
|
}
|
292
|
+
if (!selectedByCorner && isColumnNegative) {
|
293
|
+
this.selectedByRowHeader.add(this.getLayerLevel());
|
294
|
+
}
|
295
|
+
if (!selectedByCorner && isRowNegative) {
|
296
|
+
this.selectedByColumnHeader.add(this.getLayerLevel());
|
297
|
+
}
|
292
298
|
if (!fragment) {
|
293
299
|
this.setRangeEnd(coords);
|
294
300
|
}
|
@@ -301,13 +307,11 @@ var Selection = /*#__PURE__*/function () {
|
|
301
307
|
* @param {boolean} [multipleSelection] If `true`, selection will be worked in 'multiple' mode. This option works
|
302
308
|
* only when 'selectionMode' is set as 'multiple'. If the argument is not defined
|
303
309
|
* the default trigger will be used.
|
304
|
-
* @param {CellCoords} [highlightCoords] If set, allows changing the coordinates of the highlight/focus cell.
|
305
310
|
*/
|
306
311
|
}, {
|
307
312
|
key: "setRangeStartOnly",
|
308
313
|
value: function setRangeStartOnly(coords, multipleSelection) {
|
309
|
-
|
310
|
-
this.setRangeStart(coords, multipleSelection, true, highlightCoords);
|
314
|
+
this.setRangeStart(coords, multipleSelection, true);
|
311
315
|
}
|
312
316
|
|
313
317
|
/**
|
@@ -321,39 +325,21 @@ var Selection = /*#__PURE__*/function () {
|
|
321
325
|
if (this.selectedRange.isEmpty()) {
|
322
326
|
return;
|
323
327
|
}
|
324
|
-
var coordsClone = coords.clone();
|
325
|
-
var countRows = this.tableProps.countRows();
|
326
|
-
var countCols = this.tableProps.countCols();
|
327
|
-
var isSingle = this.selectedRange.current().clone().setTo(coords).isSingleHeader();
|
328
328
|
|
329
|
-
//
|
330
|
-
//
|
331
|
-
|
332
|
-
return;
|
333
|
-
}
|
329
|
+
// We are creating copy. We would like to modify just the end of the selection by below hook. Then original coords
|
330
|
+
// should be handled by next methods.
|
331
|
+
var coordsClone = coords.clone();
|
334
332
|
this.runLocalHooks('beforeSetRangeEnd', coordsClone);
|
335
333
|
this.begin();
|
336
334
|
var cellRange = this.selectedRange.current();
|
337
|
-
if (
|
338
|
-
cellRange.
|
339
|
-
}
|
340
|
-
if (this.settings.selectionMode === 'single') {
|
341
|
-
cellRange.setFrom(cellRange.highlight);
|
342
|
-
cellRange.setTo(cellRange.highlight);
|
343
|
-
} else {
|
344
|
-
cellRange.setTo(coordsClone);
|
335
|
+
if (this.settings.selectionMode !== 'single') {
|
336
|
+
cellRange.setTo(this.tableProps.createCellCoords(coordsClone.row, coordsClone.col));
|
345
337
|
}
|
346
338
|
|
347
|
-
//
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
}
|
352
|
-
}
|
353
|
-
var focusHighlight = this.highlight.getFocus();
|
354
|
-
focusHighlight.clear();
|
355
|
-
if (this.highlight.isEnabledFor(_highlight.FOCUS_TYPE, cellRange.highlight)) {
|
356
|
-
focusHighlight.add(this.selectedRange.current().highlight).commit().syncWith(cellRange);
|
339
|
+
// Set up current selection.
|
340
|
+
this.highlight.getCell().clear();
|
341
|
+
if (this.highlight.isEnabledFor(_constants.CELL_TYPE, cellRange.highlight)) {
|
342
|
+
this.highlight.getCell().add(this.selectedRange.current().highlight).commit().syncWith(cellRange);
|
357
343
|
}
|
358
344
|
var layerLevel = this.getLayerLevel();
|
359
345
|
|
@@ -363,96 +349,73 @@ var Selection = /*#__PURE__*/function () {
|
|
363
349
|
(0, _array.arrayEach)(this.highlight.getAreas(), function (highlight) {
|
364
350
|
return void highlight.clear();
|
365
351
|
});
|
366
|
-
(0, _array.arrayEach)(this.highlight.
|
367
|
-
return void highlight.clear();
|
368
|
-
});
|
369
|
-
(0, _array.arrayEach)(this.highlight.getRowHeaders(), function (highlight) {
|
370
|
-
return void highlight.clear();
|
371
|
-
});
|
372
|
-
(0, _array.arrayEach)(this.highlight.getColumnHeaders(), function (highlight) {
|
373
|
-
return void highlight.clear();
|
374
|
-
});
|
375
|
-
(0, _array.arrayEach)(this.highlight.getActiveRowHeaders(), function (highlight) {
|
376
|
-
return void highlight.clear();
|
377
|
-
});
|
378
|
-
(0, _array.arrayEach)(this.highlight.getActiveColumnHeaders(), function (highlight) {
|
379
|
-
return void highlight.clear();
|
380
|
-
});
|
381
|
-
(0, _array.arrayEach)(this.highlight.getActiveCornerHeaders(), function (highlight) {
|
352
|
+
(0, _array.arrayEach)(this.highlight.getHeaders(), function (highlight) {
|
382
353
|
return void highlight.clear();
|
383
354
|
});
|
384
|
-
(0, _array.arrayEach)(this.highlight.
|
385
|
-
return void highlight.clear();
|
386
|
-
});
|
387
|
-
(0, _array.arrayEach)(this.highlight.getColumnHighlights(), function (highlight) {
|
355
|
+
(0, _array.arrayEach)(this.highlight.getActiveHeaders(), function (highlight) {
|
388
356
|
return void highlight.clear();
|
389
357
|
});
|
390
358
|
}
|
391
359
|
this.highlight.useLayerLevel(layerLevel);
|
392
|
-
var areaHighlight = this.highlight.
|
393
|
-
var
|
394
|
-
var
|
395
|
-
var columnHeaderHighlight = this.highlight.createColumnHeader();
|
396
|
-
var activeRowHeaderHighlight = this.highlight.createActiveRowHeader();
|
397
|
-
var activeColumnHeaderHighlight = this.highlight.createActiveColumnHeader();
|
398
|
-
var activeCornerHeaderHighlight = this.highlight.createActiveCornerHeader();
|
399
|
-
var rowHighlight = this.highlight.createRowHighlight();
|
400
|
-
var columnHighlight = this.highlight.createColumnHighlight();
|
360
|
+
var areaHighlight = this.highlight.createOrGetArea();
|
361
|
+
var headerHighlight = this.highlight.createOrGetHeader();
|
362
|
+
var activeHeaderHighlight = this.highlight.createOrGetActiveHeader();
|
401
363
|
areaHighlight.clear();
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
activeRowHeaderHighlight.clear();
|
406
|
-
activeColumnHeaderHighlight.clear();
|
407
|
-
activeCornerHeaderHighlight.clear();
|
408
|
-
rowHighlight.clear();
|
409
|
-
columnHighlight.clear();
|
410
|
-
if (this.highlight.isEnabledFor(_highlight.AREA_TYPE, cellRange.highlight) && (this.isMultiple() || layerLevel >= 1)) {
|
364
|
+
headerHighlight.clear();
|
365
|
+
activeHeaderHighlight.clear();
|
366
|
+
if (this.highlight.isEnabledFor(_constants.AREA_TYPE, cellRange.highlight) && (this.isMultiple() || layerLevel >= 1)) {
|
411
367
|
areaHighlight.add(cellRange.from).add(cellRange.to).commit();
|
412
|
-
layeredAreaHighlight.add(cellRange.from).add(cellRange.to).commit();
|
413
368
|
if (layerLevel === 1) {
|
414
369
|
// For single cell selection in the same layer, we do not create area selection to prevent blue background.
|
415
370
|
// When non-consecutive selection is performed we have to add that missing area selection to the previous layer
|
416
371
|
// based on previous coordinates. It only occurs when the previous selection wasn't select multiple cells.
|
417
372
|
var previousRange = this.selectedRange.previous();
|
418
|
-
this.highlight.useLayerLevel(layerLevel - 1)
|
419
|
-
this.highlight.createArea().add(previousRange.from).commit()
|
420
|
-
// Range may start with hidden indexes. Commit would not found start point (as we add just the `from` coords).
|
421
|
-
.syncWith(previousRange);
|
422
|
-
this.highlight.createLayeredArea().add(previousRange.from).commit()
|
373
|
+
this.highlight.useLayerLevel(layerLevel - 1).createOrGetArea().add(previousRange.from).commit()
|
423
374
|
// Range may start with hidden indexes. Commit would not found start point (as we add just the `from` coords).
|
424
375
|
.syncWith(previousRange);
|
425
376
|
this.highlight.useLayerLevel(layerLevel);
|
426
377
|
}
|
427
378
|
}
|
428
|
-
if (this.highlight.isEnabledFor(
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
columnHighlight.add(columnCoordsFrom).commit();
|
439
|
-
} else {
|
440
|
-
rowHeaderHighlight.add(rowCoordsFrom).add(rowCoordsTo).commit();
|
441
|
-
columnHeaderHighlight.add(columnCoordsFrom).add(columnCoordsTo).commit();
|
442
|
-
rowHighlight.add(rowCoordsFrom).add(rowCoordsTo).commit();
|
443
|
-
columnHighlight.add(columnCoordsFrom).add(columnCoordsTo).commit();
|
444
|
-
}
|
379
|
+
if (this.highlight.isEnabledFor(_constants.HEADER_TYPE, cellRange.highlight)) {
|
380
|
+
// The header selection generally contains cell selection. In a case when all rows (or columns)
|
381
|
+
// are hidden that visual coordinates are translated to renderable coordinates that do not exist.
|
382
|
+
// Hence no header highlight is generated. In that case, to make a column (or a row) header
|
383
|
+
// highlight, the row and column index has to point to the header (the negative value). See #7052.
|
384
|
+
var areAnyRowsRendered = this.tableProps.countRowsTranslated() === 0;
|
385
|
+
var areAnyColumnsRendered = this.tableProps.countColsTranslated() === 0;
|
386
|
+
var headerCellRange = cellRange;
|
387
|
+
if (areAnyRowsRendered || areAnyColumnsRendered) {
|
388
|
+
headerCellRange = cellRange.clone();
|
445
389
|
}
|
446
|
-
|
447
|
-
|
448
|
-
if (highlightRowHeaders) {
|
449
|
-
activeRowHeaderHighlight.add(this.tableProps.createCellCoords(Math.max(cellRange.from.row, 0), Math.min(-this.tableProps.countRowHeaders(), -1))).add(this.tableProps.createCellCoords(Math.max(cellRange.to.row, 0), -1)).commit();
|
390
|
+
if (areAnyRowsRendered) {
|
391
|
+
headerCellRange.from.row = -1;
|
450
392
|
}
|
451
|
-
if (
|
452
|
-
|
393
|
+
if (areAnyColumnsRendered) {
|
394
|
+
headerCellRange.from.col = -1;
|
453
395
|
}
|
454
|
-
if (
|
455
|
-
|
396
|
+
if (this.settings.selectionMode === 'single') {
|
397
|
+
if (this.isSelectedByAnyHeader()) {
|
398
|
+
headerCellRange.from.normalize();
|
399
|
+
}
|
400
|
+
headerHighlight.add(headerCellRange.from).commit();
|
401
|
+
} else {
|
402
|
+
headerHighlight.add(headerCellRange.from).add(headerCellRange.to).commit();
|
403
|
+
}
|
404
|
+
if (this.isEntireRowSelected()) {
|
405
|
+
var isRowSelected = this.tableProps.countCols() === cellRange.getWidth();
|
406
|
+
|
407
|
+
// Make sure that the whole row is selected (in case where selectionMode is set to 'single')
|
408
|
+
if (isRowSelected) {
|
409
|
+
activeHeaderHighlight.add(this.tableProps.createCellCoords(cellRange.from.row, -1)).add(this.tableProps.createCellCoords(cellRange.to.row, -1)).commit();
|
410
|
+
}
|
411
|
+
}
|
412
|
+
if (this.isEntireColumnSelected()) {
|
413
|
+
var isColumnSelected = this.tableProps.countRows() === cellRange.getHeight();
|
414
|
+
|
415
|
+
// Make sure that the whole column is selected (in case where selectionMode is set to 'single')
|
416
|
+
if (isColumnSelected) {
|
417
|
+
activeHeaderHighlight.add(this.tableProps.createCellCoords(-1, cellRange.from.col)).add(this.tableProps.createCellCoords(-1, cellRange.to.col)).commit();
|
418
|
+
}
|
456
419
|
}
|
457
420
|
}
|
458
421
|
this.runLocalHooks('afterSetRangeEnd', coords);
|
@@ -477,14 +440,14 @@ var Selection = /*#__PURE__*/function () {
|
|
477
440
|
*
|
478
441
|
* @param {number} rowDelta Rows number to move, value can be passed as negative number.
|
479
442
|
* @param {number} colDelta Columns number to move, value can be passed as negative number.
|
480
|
-
* @param {boolean} [
|
481
|
-
*
|
443
|
+
* @param {boolean} [force=false] If `true` the new rows/columns will be created if necessary. Otherwise, row/column will
|
444
|
+
* be created according to `minSpareRows/minSpareCols` settings of Handsontable.
|
482
445
|
*/
|
483
446
|
}, {
|
484
447
|
key: "transformStart",
|
485
448
|
value: function transformStart(rowDelta, colDelta) {
|
486
|
-
var
|
487
|
-
this.setRangeStart(this.transformation.transformStart(rowDelta, colDelta,
|
449
|
+
var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
450
|
+
this.setRangeStart(this.transformation.transformStart(rowDelta, colDelta, force));
|
488
451
|
}
|
489
452
|
|
490
453
|
/**
|
@@ -533,7 +496,7 @@ var Selection = /*#__PURE__*/function () {
|
|
533
496
|
key: "isSelectedByRowHeader",
|
534
497
|
value: function isSelectedByRowHeader() {
|
535
498
|
var layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();
|
536
|
-
return !this.isSelectedByCorner(layerLevel) &&
|
499
|
+
return !this.isSelectedByCorner(layerLevel) && this.isEntireRowSelected(layerLevel);
|
537
500
|
}
|
538
501
|
|
539
502
|
/**
|
@@ -546,22 +509,8 @@ var Selection = /*#__PURE__*/function () {
|
|
546
509
|
}, {
|
547
510
|
key: "isEntireRowSelected",
|
548
511
|
value: function isEntireRowSelected() {
|
549
|
-
var _this2 = this;
|
550
512
|
var layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();
|
551
|
-
|
552
|
-
var _range$getOuterTopSta = range.getOuterTopStartCorner(),
|
553
|
-
col = _range$getOuterTopSta.col;
|
554
|
-
var rowHeaders = _this2.tableProps.countRowHeaders();
|
555
|
-
var countCols = _this2.tableProps.countCols();
|
556
|
-
return (rowHeaders > 0 && col < 0 || rowHeaders === 0) && range.getWidth() === countCols;
|
557
|
-
};
|
558
|
-
if (layerLevel === -1) {
|
559
|
-
return Array.from(this.selectedRange).some(function (range) {
|
560
|
-
return tester(range);
|
561
|
-
});
|
562
|
-
}
|
563
|
-
var range = this.selectedRange.peekByIndex(layerLevel);
|
564
|
-
return range ? tester(range) : false;
|
513
|
+
return layerLevel === -1 ? this.selectedByRowHeader.size > 0 : this.selectedByRowHeader.has(layerLevel);
|
565
514
|
}
|
566
515
|
|
567
516
|
/**
|
@@ -576,7 +525,7 @@ var Selection = /*#__PURE__*/function () {
|
|
576
525
|
key: "isSelectedByColumnHeader",
|
577
526
|
value: function isSelectedByColumnHeader() {
|
578
527
|
var layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();
|
579
|
-
return !this.isSelectedByCorner() &&
|
528
|
+
return !this.isSelectedByCorner() && this.isEntireColumnSelected(layerLevel);
|
580
529
|
}
|
581
530
|
|
582
531
|
/**
|
@@ -589,22 +538,8 @@ var Selection = /*#__PURE__*/function () {
|
|
589
538
|
}, {
|
590
539
|
key: "isEntireColumnSelected",
|
591
540
|
value: function isEntireColumnSelected() {
|
592
|
-
var _this3 = this;
|
593
541
|
var layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();
|
594
|
-
|
595
|
-
var _range$getOuterTopSta2 = range.getOuterTopStartCorner(),
|
596
|
-
row = _range$getOuterTopSta2.row;
|
597
|
-
var colHeaders = _this3.tableProps.countColHeaders();
|
598
|
-
var countRows = _this3.tableProps.countRows();
|
599
|
-
return (colHeaders > 0 && row < 0 || colHeaders === 0) && range.getHeight() === countRows;
|
600
|
-
};
|
601
|
-
if (layerLevel === -1) {
|
602
|
-
return Array.from(this.selectedRange).some(function (range) {
|
603
|
-
return tester(range);
|
604
|
-
});
|
605
|
-
}
|
606
|
-
var range = this.selectedRange.peekByIndex(layerLevel);
|
607
|
-
return range ? tester(range) : false;
|
542
|
+
return layerLevel === -1 ? this.selectedByColumnHeader.size > 0 : this.selectedByColumnHeader.has(layerLevel);
|
608
543
|
}
|
609
544
|
|
610
545
|
/**
|
@@ -626,7 +561,7 @@ var Selection = /*#__PURE__*/function () {
|
|
626
561
|
}, {
|
627
562
|
key: "isSelectedByCorner",
|
628
563
|
value: function isSelectedByCorner() {
|
629
|
-
return this.
|
564
|
+
return this.selectedByCorner;
|
630
565
|
}
|
631
566
|
|
632
567
|
/**
|
@@ -695,49 +630,31 @@ var Selection = /*#__PURE__*/function () {
|
|
695
630
|
}
|
696
631
|
|
697
632
|
/**
|
698
|
-
*
|
633
|
+
* Select all cells.
|
699
634
|
*
|
700
|
-
* @param {boolean} [includeRowHeaders=false] `true` If the selection should include the row headers,
|
701
|
-
*
|
702
|
-
* @param {boolean} [includeColumnHeaders=false] `true` If the selection should include the column
|
703
|
-
*
|
704
|
-
* @param {{row: number, col: number}} [focusPosition] The argument allows changing the cell/header
|
705
|
-
* focus position. The value takes an object with a `row` and `col` properties from -N to N, where
|
706
|
-
* negative values point to the headers and positive values point to the cell range.
|
635
|
+
* @param {boolean} [includeRowHeaders=false] `true` If the selection should include the row headers, `false`
|
636
|
+
* otherwise.
|
637
|
+
* @param {boolean} [includeColumnHeaders=false] `true` If the selection should include the column headers, `false`
|
638
|
+
* otherwise.
|
707
639
|
*/
|
708
640
|
}, {
|
709
641
|
key: "selectAll",
|
710
642
|
value: function selectAll() {
|
711
643
|
var includeRowHeaders = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
712
644
|
var includeColumnHeaders = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
713
|
-
var focusPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
714
|
-
row: this.tableProps.countColHeaders() > 0 ? -this.tableProps.countColHeaders() : 0,
|
715
|
-
col: this.tableProps.countRowHeaders() > 0 ? -this.tableProps.countRowHeaders() : 0
|
716
|
-
};
|
717
645
|
var nrOfRows = this.tableProps.countRows();
|
718
646
|
var nrOfColumns = this.tableProps.countCols();
|
719
|
-
var countRowHeaders = this.tableProps.countRowHeaders();
|
720
|
-
var countColHeaders = this.tableProps.countColHeaders();
|
721
|
-
var rowFrom = includeRowHeaders ? -countColHeaders : 0;
|
722
|
-
var columnFrom = includeColumnHeaders ? -countRowHeaders : 0;
|
723
647
|
|
724
648
|
// We can't select cells when there is no data.
|
725
|
-
if (
|
649
|
+
if (!includeRowHeaders && !includeColumnHeaders && (nrOfRows === 0 || nrOfColumns === 0)) {
|
726
650
|
return;
|
727
651
|
}
|
728
|
-
var
|
729
|
-
var highlightColumn = Number.isInteger(focusPosition.col) ? focusPosition.col : 0;
|
730
|
-
var startCoords = this.tableProps.createCellCoords(rowFrom, columnFrom);
|
731
|
-
var highlight = this.tableProps.createCellCoords((0, _number.clamp)(highlightRow, rowFrom, nrOfRows - 1), (0, _number.clamp)(highlightColumn, columnFrom, nrOfColumns - 1));
|
652
|
+
var startCoords = this.tableProps.createCellCoords(includeColumnHeaders ? -1 : 0, includeRowHeaders ? -1 : 0);
|
732
653
|
var endCoords = this.tableProps.createCellCoords(nrOfRows - 1, nrOfColumns - 1);
|
733
654
|
this.clear();
|
734
|
-
this.setRangeStartOnly(startCoords
|
735
|
-
|
736
|
-
|
737
|
-
}
|
738
|
-
if (rowFrom < 0) {
|
739
|
-
this.selectedByColumnHeader.add(this.getLayerLevel());
|
740
|
-
}
|
655
|
+
this.setRangeStartOnly(startCoords);
|
656
|
+
this.selectedByRowHeader.add(this.getLayerLevel());
|
657
|
+
this.selectedByColumnHeader.add(this.getLayerLevel());
|
741
658
|
this.setRangeEnd(endCoords);
|
742
659
|
this.finish();
|
743
660
|
}
|
@@ -754,7 +671,7 @@ var Selection = /*#__PURE__*/function () {
|
|
754
671
|
}, {
|
755
672
|
key: "selectCells",
|
756
673
|
value: function selectCells(selectionRanges) {
|
757
|
-
var
|
674
|
+
var _this2 = this;
|
758
675
|
var selectionType = (0, _utils.detectSelectionType)(selectionRanges);
|
759
676
|
if (selectionType === _utils.SELECTION_TYPE_EMPTY) {
|
760
677
|
return false;
|
@@ -763,33 +680,36 @@ var Selection = /*#__PURE__*/function () {
|
|
763
680
|
}
|
764
681
|
var selectionSchemaNormalizer = (0, _utils.normalizeSelectionFactory)(selectionType, {
|
765
682
|
propToCol: function propToCol(prop) {
|
766
|
-
return
|
683
|
+
return _this2.tableProps.propToCol(prop);
|
767
684
|
},
|
768
685
|
keepDirection: true
|
769
686
|
});
|
770
|
-
var
|
771
|
-
var
|
772
|
-
countRows: this.tableProps.countRows(),
|
773
|
-
countCols: this.tableProps.countCols(),
|
774
|
-
countRowHeaders: navigableHeaders ? this.tableProps.countRowHeaders() : 0,
|
775
|
-
countColHeaders: navigableHeaders ? this.tableProps.countColHeaders() : 0
|
776
|
-
};
|
687
|
+
var nrOfRows = this.tableProps.countRows();
|
688
|
+
var nrOfColumns = this.tableProps.countCols();
|
777
689
|
|
778
690
|
// Check if every layer of the coordinates are valid.
|
779
691
|
var isValid = !selectionRanges.some(function (selection) {
|
780
|
-
var
|
781
|
-
|
782
|
-
|
692
|
+
var _selectionSchemaNorma = selectionSchemaNormalizer(selection),
|
693
|
+
_selectionSchemaNorma2 = _slicedToArray(_selectionSchemaNorma, 4),
|
694
|
+
rowStart = _selectionSchemaNorma2[0],
|
695
|
+
columnStart = _selectionSchemaNorma2[1],
|
696
|
+
rowEnd = _selectionSchemaNorma2[2],
|
697
|
+
columnEnd = _selectionSchemaNorma2[3];
|
698
|
+
var _isValid = (0, _utils.isValidCoord)(rowStart, nrOfRows) && (0, _utils.isValidCoord)(columnStart, nrOfColumns) && (0, _utils.isValidCoord)(rowEnd, nrOfRows) && (0, _utils.isValidCoord)(columnEnd, nrOfColumns);
|
699
|
+
return !_isValid;
|
783
700
|
});
|
784
701
|
if (isValid) {
|
785
702
|
this.clear();
|
786
703
|
(0, _array.arrayEach)(selectionRanges, function (selection) {
|
787
|
-
var
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
704
|
+
var _selectionSchemaNorma3 = selectionSchemaNormalizer(selection),
|
705
|
+
_selectionSchemaNorma4 = _slicedToArray(_selectionSchemaNorma3, 4),
|
706
|
+
rowStart = _selectionSchemaNorma4[0],
|
707
|
+
columnStart = _selectionSchemaNorma4[1],
|
708
|
+
rowEnd = _selectionSchemaNorma4[2],
|
709
|
+
columnEnd = _selectionSchemaNorma4[3];
|
710
|
+
_this2.setRangeStartOnly(_this2.tableProps.createCellCoords(rowStart, columnStart), false);
|
711
|
+
_this2.setRangeEnd(_this2.tableProps.createCellCoords(rowEnd, columnEnd));
|
712
|
+
_this2.finish();
|
793
713
|
});
|
794
714
|
}
|
795
715
|
return isValid;
|
@@ -801,45 +721,24 @@ var Selection = /*#__PURE__*/function () {
|
|
801
721
|
*
|
802
722
|
* @param {number|string} startColumn Visual column index or column property from which the selection starts.
|
803
723
|
* @param {number|string} [endColumn] Visual column index or column property from to the selection finishes.
|
804
|
-
* @param {number} [
|
805
|
-
*
|
806
|
-
*
|
724
|
+
* @param {number} [headerLevel=-1] A row header index that triggers the column selection. The value can
|
725
|
+
* take -1 to -N, where -1 means the header closest to the cells.
|
726
|
+
*
|
807
727
|
* @returns {boolean} Returns `true` if selection was successful, `false` otherwise.
|
808
728
|
*/
|
809
729
|
}, {
|
810
730
|
key: "selectColumns",
|
811
731
|
value: function selectColumns(startColumn) {
|
812
732
|
var endColumn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : startColumn;
|
813
|
-
var
|
733
|
+
var headerLevel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
|
814
734
|
var start = typeof startColumn === 'string' ? this.tableProps.propToCol(startColumn) : startColumn;
|
815
735
|
var end = typeof endColumn === 'string' ? this.tableProps.propToCol(endColumn) : endColumn;
|
816
|
-
var
|
817
|
-
var
|
818
|
-
var
|
819
|
-
var columnHeaderLastIndex = countColHeaders === 0 ? 0 : -countColHeaders;
|
820
|
-
var fromCoords = new _src.CellCoords(columnHeaderLastIndex, start);
|
821
|
-
var toCoords = new _src.CellCoords(countRows - 1, end);
|
822
|
-
var isValid = new _src.CellRange(fromCoords, fromCoords, toCoords).isValid({
|
823
|
-
countRows: countRows,
|
824
|
-
countCols: countCols,
|
825
|
-
countRowHeaders: 0,
|
826
|
-
countColHeaders: countColHeaders
|
827
|
-
});
|
736
|
+
var nrOfColumns = this.tableProps.countCols();
|
737
|
+
var nrOfRows = this.tableProps.countRows();
|
738
|
+
var isValid = (0, _utils.isValidCoord)(start, nrOfColumns) && (0, _utils.isValidCoord)(end, nrOfColumns);
|
828
739
|
if (isValid) {
|
829
|
-
|
830
|
-
|
831
|
-
var from = this.tableProps.createCellCoords(fromRow, start);
|
832
|
-
var to = this.tableProps.createCellCoords(toRow, end);
|
833
|
-
var highlight = this.tableProps.createCellCoords((0, _number.clamp)(focusPosition, columnHeaderLastIndex, countRows - 1), start);
|
834
|
-
this.runLocalHooks('beforeSelectColumns', from, to, highlight);
|
835
|
-
|
836
|
-
// disallow modifying row axis for that hooks
|
837
|
-
from.row = fromRow;
|
838
|
-
to.row = toRow;
|
839
|
-
this.setRangeStartOnly(from, void 0, highlight);
|
840
|
-
this.selectedByColumnHeader.add(this.getLayerLevel());
|
841
|
-
this.setRangeEnd(to);
|
842
|
-
this.runLocalHooks('afterSelectColumns', from, to, highlight);
|
740
|
+
this.setRangeStartOnly(this.tableProps.createCellCoords(headerLevel, start));
|
741
|
+
this.setRangeEnd(this.tableProps.createCellCoords(nrOfRows - 1, end));
|
843
742
|
this.finish();
|
844
743
|
}
|
845
744
|
return isValid;
|
@@ -850,43 +749,22 @@ var Selection = /*#__PURE__*/function () {
|
|
850
749
|
*
|
851
750
|
* @param {number} startRow Visual row index from which the selection starts.
|
852
751
|
* @param {number} [endRow] Visual row index from to the selection finishes.
|
853
|
-
* @param {number} [
|
854
|
-
*
|
855
|
-
*
|
752
|
+
* @param {number} [headerLevel=-1] A column header index that triggers the row selection.
|
753
|
+
* The value can take -1 to -N, where -1 means the header
|
754
|
+
* closest to the cells.
|
856
755
|
* @returns {boolean} Returns `true` if selection was successful, `false` otherwise.
|
857
756
|
*/
|
858
757
|
}, {
|
859
758
|
key: "selectRows",
|
860
759
|
value: function selectRows(startRow) {
|
861
760
|
var endRow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : startRow;
|
862
|
-
var
|
863
|
-
var
|
864
|
-
var
|
865
|
-
var
|
866
|
-
var rowHeaderLastIndex = countRowHeaders === 0 ? 0 : -countRowHeaders;
|
867
|
-
var fromCoords = new _src.CellCoords(startRow, rowHeaderLastIndex);
|
868
|
-
var toCoords = new _src.CellCoords(endRow, countCols - 1);
|
869
|
-
var isValid = new _src.CellRange(fromCoords, fromCoords, toCoords).isValid({
|
870
|
-
countRows: countRows,
|
871
|
-
countCols: countCols,
|
872
|
-
countRowHeaders: countRowHeaders,
|
873
|
-
countColHeaders: 0
|
874
|
-
});
|
761
|
+
var headerLevel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
|
762
|
+
var nrOfRows = this.tableProps.countRows();
|
763
|
+
var nrOfColumns = this.tableProps.countCols();
|
764
|
+
var isValid = (0, _utils.isValidCoord)(startRow, nrOfRows) && (0, _utils.isValidCoord)(endRow, nrOfRows);
|
875
765
|
if (isValid) {
|
876
|
-
|
877
|
-
|
878
|
-
var from = this.tableProps.createCellCoords(startRow, fromColumn);
|
879
|
-
var to = this.tableProps.createCellCoords(endRow, toColumn);
|
880
|
-
var highlight = this.tableProps.createCellCoords(startRow, (0, _number.clamp)(focusPosition, rowHeaderLastIndex, countCols - 1));
|
881
|
-
this.runLocalHooks('beforeSelectRows', from, to, highlight);
|
882
|
-
|
883
|
-
// disallow modifying column axis for that hooks
|
884
|
-
from.col = fromColumn;
|
885
|
-
to.col = toColumn;
|
886
|
-
this.setRangeStartOnly(from, void 0, highlight);
|
887
|
-
this.selectedByRowHeader.add(this.getLayerLevel());
|
888
|
-
this.setRangeEnd(to);
|
889
|
-
this.runLocalHooks('afterSelectRows', from, to, highlight);
|
766
|
+
this.setRangeStartOnly(this.tableProps.createCellCoords(startRow, headerLevel));
|
767
|
+
this.setRangeEnd(this.tableProps.createCellCoords(endRow, nrOfColumns - 1));
|
890
768
|
this.finish();
|
891
769
|
}
|
892
770
|
return isValid;
|
@@ -905,31 +783,19 @@ var Selection = /*#__PURE__*/function () {
|
|
905
783
|
if (!this.isSelected()) {
|
906
784
|
return;
|
907
785
|
}
|
908
|
-
var
|
786
|
+
var cellHighlight = this.highlight.getCell();
|
909
787
|
var currentLayer = this.getLayerLevel();
|
910
|
-
|
788
|
+
cellHighlight.commit().syncWith(this.selectedRange.current());
|
911
789
|
|
912
790
|
// Rewriting rendered ranges going through all layers.
|
913
791
|
for (var layerLevel = 0; layerLevel < this.selectedRange.size(); layerLevel += 1) {
|
914
792
|
this.highlight.useLayerLevel(layerLevel);
|
915
|
-
var areaHighlight = this.highlight.
|
916
|
-
var
|
917
|
-
var
|
918
|
-
var columnHeaderHighlight = this.highlight.createColumnHeader();
|
919
|
-
var activeRowHeaderHighlight = this.highlight.createActiveRowHeader();
|
920
|
-
var activeColumnHeaderHighlight = this.highlight.createActiveColumnHeader();
|
921
|
-
var activeCornerHeaderHighlight = this.highlight.createActiveCornerHeader();
|
922
|
-
var rowHighlight = this.highlight.createRowHighlight();
|
923
|
-
var columnHighlight = this.highlight.createColumnHighlight();
|
793
|
+
var areaHighlight = this.highlight.createOrGetArea();
|
794
|
+
var headerHighlight = this.highlight.createOrGetHeader();
|
795
|
+
var activeHeaderHighlight = this.highlight.createOrGetActiveHeader();
|
924
796
|
areaHighlight.commit();
|
925
|
-
|
926
|
-
|
927
|
-
columnHeaderHighlight.commit();
|
928
|
-
activeRowHeaderHighlight.commit();
|
929
|
-
activeColumnHeaderHighlight.commit();
|
930
|
-
activeCornerHeaderHighlight.commit();
|
931
|
-
rowHighlight.commit();
|
932
|
-
columnHighlight.commit();
|
797
|
+
headerHighlight.commit();
|
798
|
+
activeHeaderHighlight.commit();
|
933
799
|
}
|
934
800
|
|
935
801
|
// Reverting starting layer for the Highlight.
|