handsontable 0.0.0-next-08765b9-20230714 → 0.0.0-next-6b996e8-20230714
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/{selection/border/border.js → border.js} +12 -7
- package/3rdparty/walkontable/src/{selection/border/border.mjs → border.mjs} +12 -7
- package/3rdparty/walkontable/src/cell/coords.d.ts +1 -6
- package/3rdparty/walkontable/src/cell/coords.js +11 -50
- package/3rdparty/walkontable/src/cell/coords.mjs +11 -50
- package/3rdparty/walkontable/src/cell/range.d.ts +2 -9
- package/3rdparty/walkontable/src/cell/range.js +7 -38
- package/3rdparty/walkontable/src/cell/range.mjs +7 -38
- package/3rdparty/walkontable/src/core/_base.js +3 -9
- package/3rdparty/walkontable/src/core/_base.mjs +3 -9
- package/3rdparty/walkontable/src/core/clone.js +2 -2
- package/3rdparty/walkontable/src/core/clone.mjs +2 -2
- package/3rdparty/walkontable/src/core/core.js +2 -3
- package/3rdparty/walkontable/src/core/core.mjs +2 -3
- package/3rdparty/walkontable/src/event.js +7 -7
- package/3rdparty/walkontable/src/event.mjs +7 -7
- package/3rdparty/walkontable/src/facade/core.js +2 -2
- package/3rdparty/walkontable/src/facade/core.mjs +2 -2
- package/3rdparty/walkontable/src/index.js +2 -10
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +1 -1
- package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.js +6 -2
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +6 -2
- package/3rdparty/walkontable/src/overlay/top.js +6 -2
- package/3rdparty/walkontable/src/overlay/top.mjs +6 -2
- package/3rdparty/walkontable/src/selection.js +295 -0
- package/3rdparty/walkontable/src/selection.mjs +290 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +0 -9
- package/3rdparty/walkontable/src/table.js +78 -6
- package/3rdparty/walkontable/src/table.mjs +79 -7
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/common.d.ts +1 -1
- package/core.d.ts +3 -6
- package/core.js +290 -173
- package/core.mjs +290 -173
- package/dataMap/metaManager/metaSchema.js +0 -41
- package/dataMap/metaManager/metaSchema.mjs +0 -41
- package/dist/handsontable.css +3 -19
- package/dist/handsontable.full.css +3 -19
- package/dist/handsontable.full.js +5369 -8671
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +25 -25
- package/dist/handsontable.js +8117 -11419
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +19 -19
- package/editorManager.js +75 -11
- package/editorManager.mjs +74 -11
- package/editors/textEditor/textEditor.js +11 -3
- package/editors/textEditor/textEditor.mjs +12 -4
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/helpers/number.d.ts +0 -1
- package/helpers/number.js +0 -18
- package/helpers/number.mjs +0 -17
- package/package.json +1 -1
- package/pluginHooks.d.ts +1 -7
- package/pluginHooks.js +1 -106
- package/pluginHooks.mjs +1 -106
- package/plugins/collapsibleColumns/collapsibleColumns.js +4 -58
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +4 -58
- package/plugins/columnSorting/columnSorting.js +0 -38
- package/plugins/columnSorting/columnSorting.mjs +2 -38
- package/plugins/columnSorting/index.js +1 -3
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/comments/commentEditor.js +0 -1
- package/plugins/comments/commentEditor.mjs +0 -1
- package/plugins/comments/comments.js +189 -251
- package/plugins/comments/comments.mjs +190 -250
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +30 -72
- package/plugins/contextMenu/contextMenu.mjs +31 -73
- package/plugins/contextMenu/predefinedItems/alignment.js +0 -7
- package/plugins/contextMenu/predefinedItems/alignment.mjs +0 -7
- package/plugins/contextMenu/predefinedItems/clearColumn.js +3 -5
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -5
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/columnRight.js +3 -5
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/readOnly.js +0 -7
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +0 -7
- package/plugins/contextMenu/predefinedItems/removeColumn.js +5 -7
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/removeRow.js +5 -7
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -5
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/rowBelow.js +3 -5
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +3 -5
- package/plugins/contextMenu/utils.js +16 -28
- package/plugins/contextMenu/utils.mjs +15 -27
- package/plugins/copyPaste/contextMenuItem/copy.js +0 -7
- package/plugins/copyPaste/contextMenuItem/copy.mjs +0 -7
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +1 -9
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +1 -9
- package/plugins/copyPaste/contextMenuItem/cut.js +0 -7
- package/plugins/copyPaste/contextMenuItem/cut.mjs +0 -7
- package/plugins/copyPaste/copyPaste.js +2 -6
- package/plugins/copyPaste/copyPaste.mjs +2 -6
- package/plugins/customBorders/customBorders.js +20 -23
- package/plugins/customBorders/customBorders.mjs +21 -24
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +32 -89
- package/plugins/dropdownMenu/dropdownMenu.mjs +32 -89
- package/plugins/filters/filters.js +14 -31
- package/plugins/filters/filters.mjs +13 -30
- package/plugins/mergeCells/mergeCells.js +16 -5
- package/plugins/mergeCells/mergeCells.mjs +16 -5
- package/plugins/multiColumnSorting/multiColumnSorting.js +2 -37
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -37
- package/plugins/nestedHeaders/nestedHeaders.js +8 -121
- package/plugins/nestedHeaders/nestedHeaders.mjs +8 -121
- package/plugins/nestedHeaders/stateManager/index.js +0 -37
- package/plugins/nestedHeaders/stateManager/index.mjs +0 -37
- package/plugins/nestedRows/nestedRows.js +0 -41
- package/plugins/nestedRows/nestedRows.mjs +0 -41
- package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
- package/selection/highlight/constants.js +15 -0
- package/selection/highlight/constants.mjs +6 -0
- package/selection/highlight/highlight.js +71 -256
- package/selection/highlight/highlight.mjs +71 -250
- package/selection/highlight/types/activeHeader.js +8 -10
- package/selection/highlight/types/activeHeader.mjs +8 -10
- package/selection/highlight/types/area.js +18 -6
- package/selection/highlight/types/area.mjs +18 -6
- package/selection/highlight/types/{focus.js → cell.js} +7 -5
- package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
- package/selection/highlight/types/customSelection.js +9 -7
- package/selection/highlight/types/customSelection.mjs +9 -7
- package/selection/highlight/types/fill.js +7 -5
- package/selection/highlight/types/fill.mjs +7 -5
- package/selection/highlight/types/header.js +18 -9
- package/selection/highlight/types/header.mjs +18 -9
- package/selection/highlight/types/index.js +35 -0
- package/selection/highlight/types/index.mjs +31 -0
- package/selection/highlight/visualSelection.js +27 -31
- package/selection/highlight/visualSelection.mjs +27 -31
- package/selection/index.js +7 -4
- package/selection/index.mjs +3 -2
- package/selection/mouseEventHandler.js +1 -1
- package/selection/mouseEventHandler.mjs +1 -1
- package/selection/range.js +8 -8
- package/selection/range.mjs +8 -8
- package/selection/selection.js +154 -290
- package/selection/selection.mjs +153 -287
- package/selection/transformation.js +90 -232
- package/selection/transformation.mjs +90 -232
- package/selection/utils.js +21 -15
- package/selection/utils.mjs +21 -16
- package/settings.d.ts +0 -2
- package/shortcuts/manager.js +0 -2
- package/shortcuts/manager.mjs +0 -2
- package/shortcuts/recorder.js +2 -2
- package/shortcuts/recorder.mjs +2 -2
- package/shortcuts/utils.js +5 -19
- package/shortcuts/utils.mjs +4 -18
- package/tableView.js +13 -67
- package/tableView.mjs +13 -67
- package/3rdparty/walkontable/src/selection/border/constants.js +0 -16
- package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
- package/3rdparty/walkontable/src/selection/constants.js +0 -62
- package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
- package/3rdparty/walkontable/src/selection/index.js +0 -26
- package/3rdparty/walkontable/src/selection/index.mjs +0 -5
- package/3rdparty/walkontable/src/selection/manager.js +0 -259
- package/3rdparty/walkontable/src/selection/manager.mjs +0 -254
- package/3rdparty/walkontable/src/selection/scanner.js +0 -270
- package/3rdparty/walkontable/src/selection/scanner.mjs +0 -267
- package/3rdparty/walkontable/src/selection/selection.js +0 -101
- package/3rdparty/walkontable/src/selection/selection.mjs +0 -96
- package/core/focusCatcher/focusDetector.js +0 -58
- package/core/focusCatcher/focusDetector.mjs +0 -54
- package/core/focusCatcher/index.js +0 -142
- package/core/focusCatcher/index.mjs +0 -138
- package/core/index.js +0 -9
- package/core/index.mjs +0 -1
- package/plugins/comments/contextMenuItem/addEditComment.js +0 -41
- package/plugins/comments/contextMenuItem/addEditComment.mjs +0 -35
- package/plugins/comments/contextMenuItem/readOnlyComment.js +0 -49
- package/plugins/comments/contextMenuItem/readOnlyComment.mjs +0 -43
- package/plugins/comments/contextMenuItem/removeComment.js +0 -38
- package/plugins/comments/contextMenuItem/removeComment.mjs +0 -32
- package/selection/highlight/types/areaLayered.js +0 -31
- package/selection/highlight/types/areaLayered.mjs +0 -26
- package/selection/highlight/types/column.js +0 -27
- package/selection/highlight/types/column.mjs +0 -22
- package/selection/highlight/types/row.js +0 -27
- package/selection/highlight/types/row.mjs +0 -22
- package/shortcutContexts/commands/editor/closeAndSave.js +0 -12
- package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -8
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -12
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
- package/shortcutContexts/commands/editor/fastOpen.js +0 -16
- package/shortcutContexts/commands/editor/fastOpen.mjs +0 -12
- package/shortcutContexts/commands/editor/index.js +0 -16
- package/shortcutContexts/commands/editor/index.mjs +0 -12
- package/shortcutContexts/commands/editor/open.js +0 -27
- package/shortcutContexts/commands/editor/open.mjs +0 -23
- package/shortcutContexts/commands/emptySelectedCells.js +0 -11
- package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
- package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -21
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -17
- package/shortcutContexts/commands/extendCellsSelection/index.js +0 -26
- package/shortcutContexts/commands/extendCellsSelection/index.mjs +0 -22
- package/shortcutContexts/commands/extendCellsSelection/left.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -21
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -17
- package/shortcutContexts/commands/index.js +0 -35
- package/shortcutContexts/commands/index.mjs +0 -31
- package/shortcutContexts/commands/moveCellSelection/down.js +0 -13
- package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -9
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -31
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -27
- package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
- package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -12
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -12
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
- package/shortcutContexts/commands/moveCellSelection/left.js +0 -10
- package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
- package/shortcutContexts/commands/moveCellSelection/right.js +0 -10
- package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -13
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -18
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -14
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -14
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -10
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -13
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -19
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -15
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -21
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -13
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -19
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -15
- package/shortcutContexts/commands/moveCellSelection/up.js +0 -13
- package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -9
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -31
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -27
- package/shortcutContexts/commands/populateSelectedCellsData.js +0 -29
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -25
- package/shortcutContexts/commands/scrollToFocusedCell.js +0 -36
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +0 -32
- package/shortcutContexts/commands/selectAll.js +0 -10
- package/shortcutContexts/commands/selectAll.mjs +0 -6
- package/shortcutContexts/constants.js +0 -13
- package/shortcutContexts/constants.mjs +0 -8
- package/shortcutContexts/editor.js +0 -25
- package/shortcutContexts/editor.mjs +0 -21
- package/shortcutContexts/grid.js +0 -163
- package/shortcutContexts/grid.mjs +0 -159
- package/shortcutContexts/index.js +0 -24
- package/shortcutContexts/index.mjs +0 -11
@@ -1,270 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
exports.__esModule = true;
|
4
|
-
require("core-js/modules/es.error.cause.js");
|
5
|
-
var _element = require("../../../../helpers/dom/element");
|
6
|
-
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
7
|
-
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
8
|
-
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
9
|
-
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
10
|
-
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
11
|
-
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
12
|
-
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
13
|
-
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
14
|
-
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; } } /* eslint-disable no-continue */
|
15
|
-
/**
|
16
|
-
* Selection scanner module scans the rendered cells and headers and if it finds an intersection with
|
17
|
-
* the coordinates of the Selection class (highlight) it returns the DOM elements.
|
18
|
-
*
|
19
|
-
* @private
|
20
|
-
*/
|
21
|
-
var _selection = /*#__PURE__*/new WeakMap();
|
22
|
-
var _activeOverlaysWot = /*#__PURE__*/new WeakMap();
|
23
|
-
var _scanCellsRange = /*#__PURE__*/new WeakSet();
|
24
|
-
class SelectionScanner {
|
25
|
-
constructor() {
|
26
|
-
/**
|
27
|
-
* The method triggers a callback for each rendered cell.
|
28
|
-
*
|
29
|
-
* @param {function(number, number): void} callback The callback function to trigger.
|
30
|
-
*/
|
31
|
-
_classPrivateMethodInitSpec(this, _scanCellsRange);
|
32
|
-
/**
|
33
|
-
* Active Selection instance to process.
|
34
|
-
*
|
35
|
-
* @type {Selection}
|
36
|
-
*/
|
37
|
-
_classPrivateFieldInitSpec(this, _selection, {
|
38
|
-
writable: true,
|
39
|
-
value: void 0
|
40
|
-
});
|
41
|
-
/**
|
42
|
-
* The Walkontable instance that the scans depends on.
|
43
|
-
*
|
44
|
-
* @type {Walkontable}
|
45
|
-
*/
|
46
|
-
_classPrivateFieldInitSpec(this, _activeOverlaysWot, {
|
47
|
-
writable: true,
|
48
|
-
value: void 0
|
49
|
-
});
|
50
|
-
}
|
51
|
-
/**
|
52
|
-
* Sets the Walkontable instance that will be taking into account while scanning the table.
|
53
|
-
*
|
54
|
-
* @param {Walkontable} activeOverlaysWot The Walkontable instance.
|
55
|
-
* @returns {SelectionScanner}
|
56
|
-
*/
|
57
|
-
setActiveOverlay(activeOverlaysWot) {
|
58
|
-
_classPrivateFieldSet(this, _activeOverlaysWot, activeOverlaysWot);
|
59
|
-
return this;
|
60
|
-
}
|
61
|
-
|
62
|
-
/**
|
63
|
-
* Sets the Selection instance to process.
|
64
|
-
*
|
65
|
-
* @param {Selection} selection The Selection instance.
|
66
|
-
* @returns {SelectionScanner}
|
67
|
-
*/
|
68
|
-
setActiveSelection(selection) {
|
69
|
-
_classPrivateFieldSet(this, _selection, selection);
|
70
|
-
return this;
|
71
|
-
}
|
72
|
-
|
73
|
-
/**
|
74
|
-
* Scans the rendered table with selection and returns elements that intersects
|
75
|
-
* with selection coordinates.
|
76
|
-
*
|
77
|
-
* @returns {HTMLTableElement[]}
|
78
|
-
*/
|
79
|
-
scan() {
|
80
|
-
const selectionType = _classPrivateFieldGet(this, _selection).settings.selectionType;
|
81
|
-
const elements = new Set();
|
82
|
-
|
83
|
-
// TODO(improvement): use heuristics from coords to detect what type of scan
|
84
|
-
// the Selection needs instead of using `selectionType` property.
|
85
|
-
if (selectionType === 'active-header') {
|
86
|
-
this.scanColumnsInHeadersRange(element => elements.add(element));
|
87
|
-
this.scanRowsInHeadersRange(element => elements.add(element));
|
88
|
-
} else if (selectionType === 'area') {
|
89
|
-
this.scanCellsRange(element => elements.add(element));
|
90
|
-
} else if (selectionType === 'focus') {
|
91
|
-
this.scanColumnsInHeadersRange(element => elements.add(element));
|
92
|
-
this.scanRowsInHeadersRange(element => elements.add(element));
|
93
|
-
this.scanCellsRange(element => elements.add(element));
|
94
|
-
} else if (selectionType === 'fill') {
|
95
|
-
this.scanCellsRange(element => elements.add(element));
|
96
|
-
} else if (selectionType === 'header') {
|
97
|
-
this.scanColumnsInHeadersRange(element => elements.add(element));
|
98
|
-
this.scanRowsInHeadersRange(element => elements.add(element));
|
99
|
-
} else if (selectionType === 'row') {
|
100
|
-
this.scanRowsInHeadersRange(element => elements.add(element));
|
101
|
-
this.scanRowsInCellsRange(element => elements.add(element));
|
102
|
-
} else if (selectionType === 'column') {
|
103
|
-
this.scanColumnsInHeadersRange(element => elements.add(element));
|
104
|
-
this.scanColumnsInCellsRange(element => elements.add(element));
|
105
|
-
}
|
106
|
-
return elements;
|
107
|
-
}
|
108
|
-
|
109
|
-
/**
|
110
|
-
* Scans the table (only rendered headers) and collect all column headers (TH) that match
|
111
|
-
* the coordinates passed in the Selection instance.
|
112
|
-
*
|
113
|
-
* @param {function(HTMLTableElement): void} callback The callback function to trigger.
|
114
|
-
*/
|
115
|
-
scanColumnsInHeadersRange(callback) {
|
116
|
-
const [topRow, topColumn, bottomRow, bottomColumn] = _classPrivateFieldGet(this, _selection).getCorners();
|
117
|
-
const {
|
118
|
-
wtTable
|
119
|
-
} = _classPrivateFieldGet(this, _activeOverlaysWot);
|
120
|
-
const renderedColumnsCount = wtTable.getRenderedColumnsCount();
|
121
|
-
const columnHeadersCount = wtTable.getColumnHeadersCount();
|
122
|
-
let cursor = 0;
|
123
|
-
for (let column = -wtTable.getRowHeadersCount(); column < renderedColumnsCount; column++) {
|
124
|
-
const sourceColumn = wtTable.columnFilter.renderedToSource(column);
|
125
|
-
if (sourceColumn < topColumn || sourceColumn > bottomColumn) {
|
126
|
-
continue;
|
127
|
-
}
|
128
|
-
for (let headerLevel = -columnHeadersCount; headerLevel < 0; headerLevel++) {
|
129
|
-
if (headerLevel < topRow || headerLevel > bottomRow) {
|
130
|
-
continue;
|
131
|
-
}
|
132
|
-
const positiveBasedHeaderLevel = headerLevel + columnHeadersCount;
|
133
|
-
let TH = wtTable.getColumnHeader(sourceColumn, positiveBasedHeaderLevel);
|
134
|
-
const newSourceCol = _classPrivateFieldGet(this, _activeOverlaysWot).getSetting('onBeforeHighlightingColumnHeader', sourceColumn, positiveBasedHeaderLevel, {
|
135
|
-
selectionType: _classPrivateFieldGet(this, _selection).settings.selectionType,
|
136
|
-
columnCursor: cursor,
|
137
|
-
selectionWidth: bottomColumn - topColumn + 1
|
138
|
-
});
|
139
|
-
if (newSourceCol === null) {
|
140
|
-
continue;
|
141
|
-
}
|
142
|
-
if (newSourceCol !== sourceColumn) {
|
143
|
-
TH = wtTable.getColumnHeader(newSourceCol, positiveBasedHeaderLevel);
|
144
|
-
}
|
145
|
-
callback(TH);
|
146
|
-
}
|
147
|
-
cursor += 1;
|
148
|
-
}
|
149
|
-
}
|
150
|
-
|
151
|
-
/**
|
152
|
-
* Scans the table (only rendered headers) and collect all row headers (TH) that match
|
153
|
-
* the coordinates passed in the Selection instance.
|
154
|
-
*
|
155
|
-
* @param {function(HTMLTableElement): void} callback The callback function to trigger.
|
156
|
-
*/
|
157
|
-
scanRowsInHeadersRange(callback) {
|
158
|
-
const [topRow, topColumn, bottomRow, bottomColumn] = _classPrivateFieldGet(this, _selection).getCorners();
|
159
|
-
const {
|
160
|
-
wtTable
|
161
|
-
} = _classPrivateFieldGet(this, _activeOverlaysWot);
|
162
|
-
const renderedRowsCount = wtTable.getRenderedRowsCount();
|
163
|
-
const rowHeadersCount = wtTable.getRowHeadersCount();
|
164
|
-
let cursor = 0;
|
165
|
-
for (let row = -wtTable.getColumnHeadersCount(); row < renderedRowsCount; row++) {
|
166
|
-
const sourceRow = wtTable.rowFilter.renderedToSource(row);
|
167
|
-
if (sourceRow < topRow || sourceRow > bottomRow) {
|
168
|
-
continue;
|
169
|
-
}
|
170
|
-
for (let headerLevel = -rowHeadersCount; headerLevel < 0; headerLevel++) {
|
171
|
-
if (headerLevel < topColumn || headerLevel > bottomColumn) {
|
172
|
-
continue;
|
173
|
-
}
|
174
|
-
const positiveBasedHeaderLevel = headerLevel + rowHeadersCount;
|
175
|
-
let TH = wtTable.getRowHeader(sourceRow, positiveBasedHeaderLevel);
|
176
|
-
const newSourceRow = _classPrivateFieldGet(this, _activeOverlaysWot).getSetting('onBeforeHighlightingRowHeader', sourceRow, positiveBasedHeaderLevel, {
|
177
|
-
selectionType: _classPrivateFieldGet(this, _selection).settings.selectionType,
|
178
|
-
rowCursor: cursor,
|
179
|
-
selectionHeight: bottomRow - topRow + 1
|
180
|
-
});
|
181
|
-
if (newSourceRow === null) {
|
182
|
-
continue;
|
183
|
-
}
|
184
|
-
if (newSourceRow !== sourceRow) {
|
185
|
-
TH = wtTable.getRowHeader(newSourceRow, positiveBasedHeaderLevel);
|
186
|
-
}
|
187
|
-
callback(TH);
|
188
|
-
}
|
189
|
-
cursor += 1;
|
190
|
-
}
|
191
|
-
}
|
192
|
-
|
193
|
-
/**
|
194
|
-
* Scans the table (only rendered cells) and collect all cells (TR) that match
|
195
|
-
* the coordinates passed in the Selection instance.
|
196
|
-
*
|
197
|
-
* @param {function(HTMLTableElement): void} callback The callback function to trigger.
|
198
|
-
*/
|
199
|
-
scanCellsRange(callback) {
|
200
|
-
const [topRow, topColumn, bottomRow, bottomColumn] = _classPrivateFieldGet(this, _selection).getCorners();
|
201
|
-
const {
|
202
|
-
wtTable
|
203
|
-
} = _classPrivateFieldGet(this, _activeOverlaysWot);
|
204
|
-
_classPrivateMethodGet(this, _scanCellsRange, _scanCellsRange2).call(this, (sourceRow, sourceColumn) => {
|
205
|
-
if (sourceRow >= topRow && sourceRow <= bottomRow && sourceColumn >= topColumn && sourceColumn <= bottomColumn) {
|
206
|
-
const cell = wtTable.getCell(_classPrivateFieldGet(this, _activeOverlaysWot).createCellCoords(sourceRow, sourceColumn));
|
207
|
-
|
208
|
-
// support for old API
|
209
|
-
const additionalSelectionClass = _classPrivateFieldGet(this, _activeOverlaysWot).getSetting('onAfterDrawSelection', sourceRow, sourceColumn, _classPrivateFieldGet(this, _selection).settings.layerLevel);
|
210
|
-
if (typeof additionalSelectionClass === 'string') {
|
211
|
-
(0, _element.addClass)(cell, additionalSelectionClass);
|
212
|
-
}
|
213
|
-
callback(cell);
|
214
|
-
}
|
215
|
-
});
|
216
|
-
}
|
217
|
-
|
218
|
-
/**
|
219
|
-
* Scans the table (only rendered cells) and collects all cells (TR) that match the coordinates
|
220
|
-
* passed in the Selection instance but only for the X axis (rows).
|
221
|
-
*
|
222
|
-
* @param {function(HTMLTableElement): void} callback The callback function to trigger.
|
223
|
-
*/
|
224
|
-
scanRowsInCellsRange(callback) {
|
225
|
-
// eslint-disable-next-line comma-spacing
|
226
|
-
const [topRow,, bottomRow] = _classPrivateFieldGet(this, _selection).getCorners();
|
227
|
-
const {
|
228
|
-
wtTable
|
229
|
-
} = _classPrivateFieldGet(this, _activeOverlaysWot);
|
230
|
-
_classPrivateMethodGet(this, _scanCellsRange, _scanCellsRange2).call(this, (sourceRow, sourceColumn) => {
|
231
|
-
if (sourceRow >= topRow && sourceRow <= bottomRow) {
|
232
|
-
const cell = wtTable.getCell(_classPrivateFieldGet(this, _activeOverlaysWot).createCellCoords(sourceRow, sourceColumn));
|
233
|
-
callback(cell);
|
234
|
-
}
|
235
|
-
});
|
236
|
-
}
|
237
|
-
|
238
|
-
/**
|
239
|
-
* Scans the table (only rendered cells) and collects all cells (TR) that match the coordinates
|
240
|
-
* passed in the Selection instance but only for the Y axis (columns).
|
241
|
-
*
|
242
|
-
* @param {function(HTMLTableElement): void} callback The callback function to trigger.
|
243
|
-
*/
|
244
|
-
scanColumnsInCellsRange(callback) {
|
245
|
-
const [, topColumn,, bottomColumn] = _classPrivateFieldGet(this, _selection).getCorners();
|
246
|
-
const {
|
247
|
-
wtTable
|
248
|
-
} = _classPrivateFieldGet(this, _activeOverlaysWot);
|
249
|
-
_classPrivateMethodGet(this, _scanCellsRange, _scanCellsRange2).call(this, (sourceRow, sourceColumn) => {
|
250
|
-
if (sourceColumn >= topColumn && sourceColumn <= bottomColumn) {
|
251
|
-
const cell = wtTable.getCell(_classPrivateFieldGet(this, _activeOverlaysWot).createCellCoords(sourceRow, sourceColumn));
|
252
|
-
callback(cell);
|
253
|
-
}
|
254
|
-
});
|
255
|
-
}
|
256
|
-
}
|
257
|
-
exports.SelectionScanner = SelectionScanner;
|
258
|
-
function _scanCellsRange2(callback) {
|
259
|
-
const {
|
260
|
-
wtTable
|
261
|
-
} = _classPrivateFieldGet(this, _activeOverlaysWot);
|
262
|
-
const renderedRowsCount = wtTable.getRenderedRowsCount();
|
263
|
-
const renderedColumnsCount = wtTable.getRenderedColumnsCount();
|
264
|
-
for (let row = 0; row < renderedRowsCount; row += 1) {
|
265
|
-
const sourceRow = wtTable.rowFilter.renderedToSource(row);
|
266
|
-
for (let column = 0; column < renderedColumnsCount; column += 1) {
|
267
|
-
callback(sourceRow, wtTable.columnFilter.renderedToSource(column));
|
268
|
-
}
|
269
|
-
}
|
270
|
-
}
|
@@ -1,267 +0,0 @@
|
|
1
|
-
import "core-js/modules/es.error.cause.js";
|
2
|
-
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
3
|
-
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
4
|
-
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
5
|
-
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
6
|
-
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
7
|
-
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
8
|
-
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
9
|
-
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
10
|
-
function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
|
11
|
-
/* eslint-disable no-continue */
|
12
|
-
import { addClass } from "../../../../helpers/dom/element.mjs";
|
13
|
-
/**
|
14
|
-
* Selection scanner module scans the rendered cells and headers and if it finds an intersection with
|
15
|
-
* the coordinates of the Selection class (highlight) it returns the DOM elements.
|
16
|
-
*
|
17
|
-
* @private
|
18
|
-
*/
|
19
|
-
var _selection = /*#__PURE__*/new WeakMap();
|
20
|
-
var _activeOverlaysWot = /*#__PURE__*/new WeakMap();
|
21
|
-
var _scanCellsRange = /*#__PURE__*/new WeakSet();
|
22
|
-
export class SelectionScanner {
|
23
|
-
constructor() {
|
24
|
-
/**
|
25
|
-
* The method triggers a callback for each rendered cell.
|
26
|
-
*
|
27
|
-
* @param {function(number, number): void} callback The callback function to trigger.
|
28
|
-
*/
|
29
|
-
_classPrivateMethodInitSpec(this, _scanCellsRange);
|
30
|
-
/**
|
31
|
-
* Active Selection instance to process.
|
32
|
-
*
|
33
|
-
* @type {Selection}
|
34
|
-
*/
|
35
|
-
_classPrivateFieldInitSpec(this, _selection, {
|
36
|
-
writable: true,
|
37
|
-
value: void 0
|
38
|
-
});
|
39
|
-
/**
|
40
|
-
* The Walkontable instance that the scans depends on.
|
41
|
-
*
|
42
|
-
* @type {Walkontable}
|
43
|
-
*/
|
44
|
-
_classPrivateFieldInitSpec(this, _activeOverlaysWot, {
|
45
|
-
writable: true,
|
46
|
-
value: void 0
|
47
|
-
});
|
48
|
-
}
|
49
|
-
/**
|
50
|
-
* Sets the Walkontable instance that will be taking into account while scanning the table.
|
51
|
-
*
|
52
|
-
* @param {Walkontable} activeOverlaysWot The Walkontable instance.
|
53
|
-
* @returns {SelectionScanner}
|
54
|
-
*/
|
55
|
-
setActiveOverlay(activeOverlaysWot) {
|
56
|
-
_classPrivateFieldSet(this, _activeOverlaysWot, activeOverlaysWot);
|
57
|
-
return this;
|
58
|
-
}
|
59
|
-
|
60
|
-
/**
|
61
|
-
* Sets the Selection instance to process.
|
62
|
-
*
|
63
|
-
* @param {Selection} selection The Selection instance.
|
64
|
-
* @returns {SelectionScanner}
|
65
|
-
*/
|
66
|
-
setActiveSelection(selection) {
|
67
|
-
_classPrivateFieldSet(this, _selection, selection);
|
68
|
-
return this;
|
69
|
-
}
|
70
|
-
|
71
|
-
/**
|
72
|
-
* Scans the rendered table with selection and returns elements that intersects
|
73
|
-
* with selection coordinates.
|
74
|
-
*
|
75
|
-
* @returns {HTMLTableElement[]}
|
76
|
-
*/
|
77
|
-
scan() {
|
78
|
-
const selectionType = _classPrivateFieldGet(this, _selection).settings.selectionType;
|
79
|
-
const elements = new Set();
|
80
|
-
|
81
|
-
// TODO(improvement): use heuristics from coords to detect what type of scan
|
82
|
-
// the Selection needs instead of using `selectionType` property.
|
83
|
-
if (selectionType === 'active-header') {
|
84
|
-
this.scanColumnsInHeadersRange(element => elements.add(element));
|
85
|
-
this.scanRowsInHeadersRange(element => elements.add(element));
|
86
|
-
} else if (selectionType === 'area') {
|
87
|
-
this.scanCellsRange(element => elements.add(element));
|
88
|
-
} else if (selectionType === 'focus') {
|
89
|
-
this.scanColumnsInHeadersRange(element => elements.add(element));
|
90
|
-
this.scanRowsInHeadersRange(element => elements.add(element));
|
91
|
-
this.scanCellsRange(element => elements.add(element));
|
92
|
-
} else if (selectionType === 'fill') {
|
93
|
-
this.scanCellsRange(element => elements.add(element));
|
94
|
-
} else if (selectionType === 'header') {
|
95
|
-
this.scanColumnsInHeadersRange(element => elements.add(element));
|
96
|
-
this.scanRowsInHeadersRange(element => elements.add(element));
|
97
|
-
} else if (selectionType === 'row') {
|
98
|
-
this.scanRowsInHeadersRange(element => elements.add(element));
|
99
|
-
this.scanRowsInCellsRange(element => elements.add(element));
|
100
|
-
} else if (selectionType === 'column') {
|
101
|
-
this.scanColumnsInHeadersRange(element => elements.add(element));
|
102
|
-
this.scanColumnsInCellsRange(element => elements.add(element));
|
103
|
-
}
|
104
|
-
return elements;
|
105
|
-
}
|
106
|
-
|
107
|
-
/**
|
108
|
-
* Scans the table (only rendered headers) and collect all column headers (TH) that match
|
109
|
-
* the coordinates passed in the Selection instance.
|
110
|
-
*
|
111
|
-
* @param {function(HTMLTableElement): void} callback The callback function to trigger.
|
112
|
-
*/
|
113
|
-
scanColumnsInHeadersRange(callback) {
|
114
|
-
const [topRow, topColumn, bottomRow, bottomColumn] = _classPrivateFieldGet(this, _selection).getCorners();
|
115
|
-
const {
|
116
|
-
wtTable
|
117
|
-
} = _classPrivateFieldGet(this, _activeOverlaysWot);
|
118
|
-
const renderedColumnsCount = wtTable.getRenderedColumnsCount();
|
119
|
-
const columnHeadersCount = wtTable.getColumnHeadersCount();
|
120
|
-
let cursor = 0;
|
121
|
-
for (let column = -wtTable.getRowHeadersCount(); column < renderedColumnsCount; column++) {
|
122
|
-
const sourceColumn = wtTable.columnFilter.renderedToSource(column);
|
123
|
-
if (sourceColumn < topColumn || sourceColumn > bottomColumn) {
|
124
|
-
continue;
|
125
|
-
}
|
126
|
-
for (let headerLevel = -columnHeadersCount; headerLevel < 0; headerLevel++) {
|
127
|
-
if (headerLevel < topRow || headerLevel > bottomRow) {
|
128
|
-
continue;
|
129
|
-
}
|
130
|
-
const positiveBasedHeaderLevel = headerLevel + columnHeadersCount;
|
131
|
-
let TH = wtTable.getColumnHeader(sourceColumn, positiveBasedHeaderLevel);
|
132
|
-
const newSourceCol = _classPrivateFieldGet(this, _activeOverlaysWot).getSetting('onBeforeHighlightingColumnHeader', sourceColumn, positiveBasedHeaderLevel, {
|
133
|
-
selectionType: _classPrivateFieldGet(this, _selection).settings.selectionType,
|
134
|
-
columnCursor: cursor,
|
135
|
-
selectionWidth: bottomColumn - topColumn + 1
|
136
|
-
});
|
137
|
-
if (newSourceCol === null) {
|
138
|
-
continue;
|
139
|
-
}
|
140
|
-
if (newSourceCol !== sourceColumn) {
|
141
|
-
TH = wtTable.getColumnHeader(newSourceCol, positiveBasedHeaderLevel);
|
142
|
-
}
|
143
|
-
callback(TH);
|
144
|
-
}
|
145
|
-
cursor += 1;
|
146
|
-
}
|
147
|
-
}
|
148
|
-
|
149
|
-
/**
|
150
|
-
* Scans the table (only rendered headers) and collect all row headers (TH) that match
|
151
|
-
* the coordinates passed in the Selection instance.
|
152
|
-
*
|
153
|
-
* @param {function(HTMLTableElement): void} callback The callback function to trigger.
|
154
|
-
*/
|
155
|
-
scanRowsInHeadersRange(callback) {
|
156
|
-
const [topRow, topColumn, bottomRow, bottomColumn] = _classPrivateFieldGet(this, _selection).getCorners();
|
157
|
-
const {
|
158
|
-
wtTable
|
159
|
-
} = _classPrivateFieldGet(this, _activeOverlaysWot);
|
160
|
-
const renderedRowsCount = wtTable.getRenderedRowsCount();
|
161
|
-
const rowHeadersCount = wtTable.getRowHeadersCount();
|
162
|
-
let cursor = 0;
|
163
|
-
for (let row = -wtTable.getColumnHeadersCount(); row < renderedRowsCount; row++) {
|
164
|
-
const sourceRow = wtTable.rowFilter.renderedToSource(row);
|
165
|
-
if (sourceRow < topRow || sourceRow > bottomRow) {
|
166
|
-
continue;
|
167
|
-
}
|
168
|
-
for (let headerLevel = -rowHeadersCount; headerLevel < 0; headerLevel++) {
|
169
|
-
if (headerLevel < topColumn || headerLevel > bottomColumn) {
|
170
|
-
continue;
|
171
|
-
}
|
172
|
-
const positiveBasedHeaderLevel = headerLevel + rowHeadersCount;
|
173
|
-
let TH = wtTable.getRowHeader(sourceRow, positiveBasedHeaderLevel);
|
174
|
-
const newSourceRow = _classPrivateFieldGet(this, _activeOverlaysWot).getSetting('onBeforeHighlightingRowHeader', sourceRow, positiveBasedHeaderLevel, {
|
175
|
-
selectionType: _classPrivateFieldGet(this, _selection).settings.selectionType,
|
176
|
-
rowCursor: cursor,
|
177
|
-
selectionHeight: bottomRow - topRow + 1
|
178
|
-
});
|
179
|
-
if (newSourceRow === null) {
|
180
|
-
continue;
|
181
|
-
}
|
182
|
-
if (newSourceRow !== sourceRow) {
|
183
|
-
TH = wtTable.getRowHeader(newSourceRow, positiveBasedHeaderLevel);
|
184
|
-
}
|
185
|
-
callback(TH);
|
186
|
-
}
|
187
|
-
cursor += 1;
|
188
|
-
}
|
189
|
-
}
|
190
|
-
|
191
|
-
/**
|
192
|
-
* Scans the table (only rendered cells) and collect all cells (TR) that match
|
193
|
-
* the coordinates passed in the Selection instance.
|
194
|
-
*
|
195
|
-
* @param {function(HTMLTableElement): void} callback The callback function to trigger.
|
196
|
-
*/
|
197
|
-
scanCellsRange(callback) {
|
198
|
-
const [topRow, topColumn, bottomRow, bottomColumn] = _classPrivateFieldGet(this, _selection).getCorners();
|
199
|
-
const {
|
200
|
-
wtTable
|
201
|
-
} = _classPrivateFieldGet(this, _activeOverlaysWot);
|
202
|
-
_classPrivateMethodGet(this, _scanCellsRange, _scanCellsRange2).call(this, (sourceRow, sourceColumn) => {
|
203
|
-
if (sourceRow >= topRow && sourceRow <= bottomRow && sourceColumn >= topColumn && sourceColumn <= bottomColumn) {
|
204
|
-
const cell = wtTable.getCell(_classPrivateFieldGet(this, _activeOverlaysWot).createCellCoords(sourceRow, sourceColumn));
|
205
|
-
|
206
|
-
// support for old API
|
207
|
-
const additionalSelectionClass = _classPrivateFieldGet(this, _activeOverlaysWot).getSetting('onAfterDrawSelection', sourceRow, sourceColumn, _classPrivateFieldGet(this, _selection).settings.layerLevel);
|
208
|
-
if (typeof additionalSelectionClass === 'string') {
|
209
|
-
addClass(cell, additionalSelectionClass);
|
210
|
-
}
|
211
|
-
callback(cell);
|
212
|
-
}
|
213
|
-
});
|
214
|
-
}
|
215
|
-
|
216
|
-
/**
|
217
|
-
* Scans the table (only rendered cells) and collects all cells (TR) that match the coordinates
|
218
|
-
* passed in the Selection instance but only for the X axis (rows).
|
219
|
-
*
|
220
|
-
* @param {function(HTMLTableElement): void} callback The callback function to trigger.
|
221
|
-
*/
|
222
|
-
scanRowsInCellsRange(callback) {
|
223
|
-
// eslint-disable-next-line comma-spacing
|
224
|
-
const [topRow,, bottomRow] = _classPrivateFieldGet(this, _selection).getCorners();
|
225
|
-
const {
|
226
|
-
wtTable
|
227
|
-
} = _classPrivateFieldGet(this, _activeOverlaysWot);
|
228
|
-
_classPrivateMethodGet(this, _scanCellsRange, _scanCellsRange2).call(this, (sourceRow, sourceColumn) => {
|
229
|
-
if (sourceRow >= topRow && sourceRow <= bottomRow) {
|
230
|
-
const cell = wtTable.getCell(_classPrivateFieldGet(this, _activeOverlaysWot).createCellCoords(sourceRow, sourceColumn));
|
231
|
-
callback(cell);
|
232
|
-
}
|
233
|
-
});
|
234
|
-
}
|
235
|
-
|
236
|
-
/**
|
237
|
-
* Scans the table (only rendered cells) and collects all cells (TR) that match the coordinates
|
238
|
-
* passed in the Selection instance but only for the Y axis (columns).
|
239
|
-
*
|
240
|
-
* @param {function(HTMLTableElement): void} callback The callback function to trigger.
|
241
|
-
*/
|
242
|
-
scanColumnsInCellsRange(callback) {
|
243
|
-
const [, topColumn,, bottomColumn] = _classPrivateFieldGet(this, _selection).getCorners();
|
244
|
-
const {
|
245
|
-
wtTable
|
246
|
-
} = _classPrivateFieldGet(this, _activeOverlaysWot);
|
247
|
-
_classPrivateMethodGet(this, _scanCellsRange, _scanCellsRange2).call(this, (sourceRow, sourceColumn) => {
|
248
|
-
if (sourceColumn >= topColumn && sourceColumn <= bottomColumn) {
|
249
|
-
const cell = wtTable.getCell(_classPrivateFieldGet(this, _activeOverlaysWot).createCellCoords(sourceRow, sourceColumn));
|
250
|
-
callback(cell);
|
251
|
-
}
|
252
|
-
});
|
253
|
-
}
|
254
|
-
}
|
255
|
-
function _scanCellsRange2(callback) {
|
256
|
-
const {
|
257
|
-
wtTable
|
258
|
-
} = _classPrivateFieldGet(this, _activeOverlaysWot);
|
259
|
-
const renderedRowsCount = wtTable.getRenderedRowsCount();
|
260
|
-
const renderedColumnsCount = wtTable.getRenderedColumnsCount();
|
261
|
-
for (let row = 0; row < renderedRowsCount; row += 1) {
|
262
|
-
const sourceRow = wtTable.rowFilter.renderedToSource(row);
|
263
|
-
for (let column = 0; column < renderedColumnsCount; column += 1) {
|
264
|
-
callback(sourceRow, wtTable.columnFilter.renderedToSource(column));
|
265
|
-
}
|
266
|
-
}
|
267
|
-
}
|
@@ -1,101 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
exports.__esModule = true;
|
4
|
-
var _object = require("../../../../helpers/object");
|
5
|
-
var _localHooks = _interopRequireDefault(require("../../../../mixins/localHooks"));
|
6
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
7
|
-
/**
|
8
|
-
* The Selection class allows highlighting (by applying CSS class) the table's cells or headers
|
9
|
-
* and setting up the borders if defined in the settings.
|
10
|
-
*
|
11
|
-
* The Selection coordinates may point to the cells (positive numbers) or headers (negative numbers).
|
12
|
-
*
|
13
|
-
* @class Selection
|
14
|
-
*/
|
15
|
-
class Selection {
|
16
|
-
/**
|
17
|
-
* @param {object} settings The selection settings object. @todo type.
|
18
|
-
* @param {CellRange} cellRange The cell range instance.
|
19
|
-
*/
|
20
|
-
constructor(settings, cellRange) {
|
21
|
-
this.settings = settings;
|
22
|
-
this.cellRange = cellRange || null;
|
23
|
-
}
|
24
|
-
|
25
|
-
/**
|
26
|
-
* Checks if selection is empty.
|
27
|
-
*
|
28
|
-
* @returns {boolean}
|
29
|
-
*/
|
30
|
-
isEmpty() {
|
31
|
-
return this.cellRange === null;
|
32
|
-
}
|
33
|
-
|
34
|
-
/**
|
35
|
-
* Adds a cell coords to the selection.
|
36
|
-
*
|
37
|
-
* @param {CellCoords} coords The cell coordinates to add.
|
38
|
-
* @returns {Selection}
|
39
|
-
*/
|
40
|
-
add(coords) {
|
41
|
-
if (this.isEmpty()) {
|
42
|
-
this.cellRange = this.settings.createCellRange(coords);
|
43
|
-
} else {
|
44
|
-
this.cellRange.expand(coords);
|
45
|
-
}
|
46
|
-
return this;
|
47
|
-
}
|
48
|
-
|
49
|
-
/**
|
50
|
-
* If selection range from or to property equals oldCoords, replace it with newCoords. Return boolean
|
51
|
-
* information about success.
|
52
|
-
*
|
53
|
-
* @param {CellCoords} oldCoords An old cell coordinates to replace.
|
54
|
-
* @param {CellCoords} newCoords The new cell coordinates.
|
55
|
-
* @returns {boolean}
|
56
|
-
*/
|
57
|
-
replace(oldCoords, newCoords) {
|
58
|
-
if (!this.isEmpty()) {
|
59
|
-
if (this.cellRange.from.isEqual(oldCoords)) {
|
60
|
-
this.cellRange.from = newCoords;
|
61
|
-
return true;
|
62
|
-
}
|
63
|
-
if (this.cellRange.to.isEqual(oldCoords)) {
|
64
|
-
this.cellRange.to = newCoords;
|
65
|
-
return true;
|
66
|
-
}
|
67
|
-
}
|
68
|
-
return false;
|
69
|
-
}
|
70
|
-
|
71
|
-
/**
|
72
|
-
* Clears selection.
|
73
|
-
*
|
74
|
-
* @returns {Selection}
|
75
|
-
*/
|
76
|
-
clear() {
|
77
|
-
this.cellRange = null;
|
78
|
-
return this;
|
79
|
-
}
|
80
|
-
|
81
|
-
/**
|
82
|
-
* Returns the top left (or top right in RTL) and bottom right (or bottom left in RTL) selection coordinates.
|
83
|
-
*
|
84
|
-
* @returns {number[]} Returns array of coordinates for example `[1, 1, 5, 5]`.
|
85
|
-
*/
|
86
|
-
getCorners() {
|
87
|
-
const topStart = this.cellRange.getOuterTopStartCorner();
|
88
|
-
const bottomEnd = this.cellRange.getOuterBottomEndCorner();
|
89
|
-
return [topStart.row, topStart.col, bottomEnd.row, bottomEnd.col];
|
90
|
-
}
|
91
|
-
|
92
|
-
/**
|
93
|
-
* Destroys the instance.
|
94
|
-
*/
|
95
|
-
destroy() {
|
96
|
-
this.runLocalHooks('destroy');
|
97
|
-
}
|
98
|
-
}
|
99
|
-
(0, _object.mixin)(Selection, _localHooks.default);
|
100
|
-
var _default = Selection;
|
101
|
-
exports.default = _default;
|