handsontable 0.0.0-next-baf2fcf-20230809 → 0.0.0-next-be16baf-20230809
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
- package/3rdparty/walkontable/src/cell/coords.js +50 -11
- package/3rdparty/walkontable/src/cell/coords.mjs +50 -11
- package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
- package/3rdparty/walkontable/src/cell/range.js +38 -7
- package/3rdparty/walkontable/src/cell/range.mjs +38 -7
- package/3rdparty/walkontable/src/core/_base.js +9 -3
- package/3rdparty/walkontable/src/core/_base.mjs +9 -3
- package/3rdparty/walkontable/src/core/clone.js +2 -2
- package/3rdparty/walkontable/src/core/clone.mjs +2 -2
- package/3rdparty/walkontable/src/core/core.js +3 -2
- package/3rdparty/walkontable/src/core/core.mjs +3 -2
- package/3rdparty/walkontable/src/event.js +7 -7
- package/3rdparty/walkontable/src/event.mjs +7 -7
- package/3rdparty/walkontable/src/facade/core.js +2 -2
- package/3rdparty/walkontable/src/facade/core.mjs +2 -2
- package/3rdparty/walkontable/src/index.js +10 -2
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +1 -1
- package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -6
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -6
- package/3rdparty/walkontable/src/overlay/top.js +2 -6
- package/3rdparty/walkontable/src/overlay/top.mjs +2 -6
- package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +7 -12
- package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
- package/3rdparty/walkontable/src/selection/border/constants.js +16 -0
- package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
- package/3rdparty/walkontable/src/selection/constants.js +62 -0
- package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
- package/3rdparty/walkontable/src/selection/index.js +26 -0
- package/3rdparty/walkontable/src/selection/index.mjs +5 -0
- package/3rdparty/walkontable/src/selection/manager.js +259 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +254 -0
- package/3rdparty/walkontable/src/selection/scanner.js +270 -0
- package/3rdparty/walkontable/src/selection/scanner.mjs +267 -0
- package/3rdparty/walkontable/src/selection/selection.js +101 -0
- package/3rdparty/walkontable/src/selection/selection.mjs +96 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
- package/3rdparty/walkontable/src/table.js +6 -78
- package/3rdparty/walkontable/src/table.mjs +7 -79
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/common.d.ts +1 -1
- package/core/focusCatcher/focusDetector.js +58 -0
- package/core/focusCatcher/focusDetector.mjs +54 -0
- package/core/focusCatcher/index.js +142 -0
- package/core/focusCatcher/index.mjs +138 -0
- package/core/index.js +9 -0
- package/core/index.mjs +1 -0
- package/core.d.ts +6 -3
- package/core.js +176 -293
- package/core.mjs +176 -293
- package/dataMap/metaManager/metaSchema.js +41 -0
- package/dataMap/metaManager/metaSchema.mjs +41 -0
- package/dist/handsontable.css +24 -4
- package/dist/handsontable.full.css +24 -4
- package/dist/handsontable.full.js +8682 -5384
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +25 -25
- package/dist/handsontable.js +10989 -7691
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +19 -19
- package/editorManager.js +11 -75
- package/editorManager.mjs +11 -74
- package/editors/baseEditor/baseEditor.d.ts +0 -1
- package/editors/textEditor/textEditor.js +3 -11
- package/editors/textEditor/textEditor.mjs +4 -12
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/helpers/number.d.ts +1 -0
- package/helpers/number.js +18 -0
- package/helpers/number.mjs +17 -0
- package/package.json +1 -1
- package/pluginHooks.d.ts +7 -1
- package/pluginHooks.js +106 -1
- package/pluginHooks.mjs +106 -1
- package/plugins/collapsibleColumns/collapsibleColumns.js +58 -4
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +58 -4
- package/plugins/columnSorting/columnSorting.js +38 -0
- package/plugins/columnSorting/columnSorting.mjs +38 -2
- package/plugins/columnSorting/index.js +3 -1
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/comments/commentEditor.js +1 -0
- package/plugins/comments/commentEditor.mjs +1 -0
- package/plugins/comments/comments.js +251 -189
- package/plugins/comments/comments.mjs +250 -190
- package/plugins/comments/contextMenuItem/addEditComment.js +41 -0
- package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.js +49 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.mjs +43 -0
- package/plugins/comments/contextMenuItem/removeComment.js +38 -0
- package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +72 -30
- package/plugins/contextMenu/contextMenu.mjs +73 -31
- package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
- package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/removeColumn.js +7 -5
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/removeRow.js +7 -5
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
- package/plugins/contextMenu/utils.js +28 -16
- package/plugins/contextMenu/utils.mjs +27 -15
- package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
- package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
- package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
- package/plugins/copyPaste/copyPaste.js +14 -10
- package/plugins/copyPaste/copyPaste.mjs +14 -10
- package/plugins/customBorders/customBorders.js +23 -20
- package/plugins/customBorders/customBorders.mjs +24 -21
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +89 -32
- package/plugins/dropdownMenu/dropdownMenu.mjs +89 -32
- package/plugins/filters/filters.js +31 -14
- package/plugins/filters/filters.mjs +30 -13
- package/plugins/manualColumnResize/manualColumnResize.js +0 -6
- package/plugins/manualColumnResize/manualColumnResize.mjs +1 -7
- package/plugins/mergeCells/mergeCells.js +5 -17
- package/plugins/mergeCells/mergeCells.mjs +5 -17
- package/plugins/multiColumnSorting/multiColumnSorting.js +37 -2
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +37 -2
- package/plugins/nestedHeaders/nestedHeaders.js +121 -8
- package/plugins/nestedHeaders/nestedHeaders.mjs +121 -8
- package/plugins/nestedHeaders/stateManager/index.js +37 -0
- package/plugins/nestedHeaders/stateManager/index.mjs +37 -0
- package/plugins/nestedRows/nestedRows.js +41 -0
- package/plugins/nestedRows/nestedRows.mjs +41 -0
- package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
- package/selection/highlight/highlight.js +256 -71
- package/selection/highlight/highlight.mjs +250 -71
- package/selection/highlight/types/activeHeader.js +10 -8
- package/selection/highlight/types/activeHeader.mjs +10 -8
- package/selection/highlight/types/area.js +6 -18
- package/selection/highlight/types/area.mjs +6 -18
- package/selection/highlight/types/areaLayered.js +31 -0
- package/selection/highlight/types/areaLayered.mjs +26 -0
- package/selection/highlight/types/column.js +27 -0
- package/selection/highlight/types/column.mjs +22 -0
- package/selection/highlight/types/customSelection.js +7 -9
- package/selection/highlight/types/customSelection.mjs +7 -9
- package/selection/highlight/types/fill.js +5 -7
- package/selection/highlight/types/fill.mjs +5 -7
- package/selection/highlight/types/{cell.js → focus.js} +5 -7
- package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
- package/selection/highlight/types/header.js +9 -18
- package/selection/highlight/types/header.mjs +9 -18
- package/selection/highlight/types/row.js +27 -0
- package/selection/highlight/types/row.mjs +22 -0
- package/selection/highlight/visualSelection.js +31 -27
- package/selection/highlight/visualSelection.mjs +31 -27
- package/selection/index.js +4 -7
- package/selection/index.mjs +2 -3
- package/selection/mouseEventHandler.js +1 -1
- package/selection/mouseEventHandler.mjs +1 -1
- package/selection/range.js +8 -8
- package/selection/range.mjs +8 -8
- package/selection/selection.js +293 -154
- package/selection/selection.mjs +290 -153
- package/selection/transformation.js +232 -90
- package/selection/transformation.mjs +232 -90
- package/selection/utils.js +15 -21
- package/selection/utils.mjs +16 -21
- package/settings.d.ts +2 -0
- package/shortcutContexts/commands/editor/closeAndSave.js +12 -0
- package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +12 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
- package/shortcutContexts/commands/editor/fastOpen.js +16 -0
- package/shortcutContexts/commands/editor/fastOpen.mjs +12 -0
- package/shortcutContexts/commands/editor/index.js +16 -0
- package/shortcutContexts/commands/editor/index.mjs +12 -0
- package/shortcutContexts/commands/editor/open.js +27 -0
- package/shortcutContexts/commands/editor/open.mjs +23 -0
- package/shortcutContexts/commands/emptySelectedCells.js +11 -0
- package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
- package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +21 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +17 -0
- package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
- package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
- package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +21 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +17 -0
- package/shortcutContexts/commands/index.js +35 -0
- package/shortcutContexts/commands/index.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/down.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +31 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +27 -0
- package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
- package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/left.js +10 -0
- package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/right.js +10 -0
- package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +18 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +14 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +19 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +21 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +19 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
- package/shortcutContexts/commands/moveCellSelection/up.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +31 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +27 -0
- package/shortcutContexts/commands/populateSelectedCellsData.js +29 -0
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
- package/shortcutContexts/commands/scrollToFocusedCell.js +36 -0
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +32 -0
- package/shortcutContexts/commands/selectAll.js +10 -0
- package/shortcutContexts/commands/selectAll.mjs +6 -0
- package/shortcutContexts/constants.js +13 -0
- package/shortcutContexts/constants.mjs +8 -0
- package/shortcutContexts/editor.js +25 -0
- package/shortcutContexts/editor.mjs +21 -0
- package/shortcutContexts/grid.js +163 -0
- package/shortcutContexts/grid.mjs +159 -0
- package/shortcutContexts/index.js +24 -0
- package/shortcutContexts/index.mjs +11 -0
- package/shortcuts/manager.js +2 -0
- package/shortcuts/manager.mjs +2 -0
- package/shortcuts/recorder.js +2 -2
- package/shortcuts/recorder.mjs +2 -2
- package/shortcuts/utils.js +19 -5
- package/shortcuts/utils.mjs +18 -4
- package/tableView.js +67 -13
- package/tableView.mjs +67 -13
- package/3rdparty/walkontable/src/selection.js +0 -295
- package/3rdparty/walkontable/src/selection.mjs +0 -290
- package/selection/highlight/constants.js +0 -15
- package/selection/highlight/constants.mjs +0 -6
- package/selection/highlight/types/index.js +0 -35
- package/selection/highlight/types/index.mjs +0 -31
@@ -0,0 +1,27 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.createHighlight = createHighlight;
|
5
|
+
var _src = require("../../../3rdparty/walkontable/src");
|
6
|
+
var _visualSelection = _interopRequireDefault(require("../visualSelection"));
|
7
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
8
|
+
/**
|
9
|
+
* Creates the new instance of Selection, responsible for highlighting cells in a columns and
|
10
|
+
* column headers.
|
11
|
+
* This type of selection can occur multiple times.
|
12
|
+
*
|
13
|
+
* @param {object} highlightParams A configuration object to create a highlight.
|
14
|
+
* @param {string} highlightParams.columnClassName Highlighted column' class name.
|
15
|
+
* @returns {Selection}
|
16
|
+
*/
|
17
|
+
function createHighlight(_ref) {
|
18
|
+
let {
|
19
|
+
columnClassName,
|
20
|
+
...restOptions
|
21
|
+
} = _ref;
|
22
|
+
return new _visualSelection.default({
|
23
|
+
className: columnClassName,
|
24
|
+
...restOptions,
|
25
|
+
selectionType: _src.HIGHLIGHT_COLUMN_TYPE
|
26
|
+
});
|
27
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { HIGHLIGHT_COLUMN_TYPE } from "../../../3rdparty/walkontable/src/index.mjs";
|
2
|
+
import VisualSelection from "../visualSelection.mjs";
|
3
|
+
/**
|
4
|
+
* Creates the new instance of Selection, responsible for highlighting cells in a columns and
|
5
|
+
* column headers.
|
6
|
+
* This type of selection can occur multiple times.
|
7
|
+
*
|
8
|
+
* @param {object} highlightParams A configuration object to create a highlight.
|
9
|
+
* @param {string} highlightParams.columnClassName Highlighted column' class name.
|
10
|
+
* @returns {Selection}
|
11
|
+
*/
|
12
|
+
export function createHighlight(_ref) {
|
13
|
+
let {
|
14
|
+
columnClassName,
|
15
|
+
...restOptions
|
16
|
+
} = _ref;
|
17
|
+
return new VisualSelection({
|
18
|
+
className: columnClassName,
|
19
|
+
...restOptions,
|
20
|
+
selectionType: HIGHLIGHT_COLUMN_TYPE
|
21
|
+
});
|
22
|
+
}
|
@@ -1,12 +1,13 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
-
|
4
|
+
exports.createHighlight = createHighlight;
|
5
|
+
var _src = require("../../../3rdparty/walkontable/src");
|
5
6
|
var _visualSelection = _interopRequireDefault(require("../visualSelection"));
|
6
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
7
8
|
/**
|
8
|
-
* Creates the new instance of Selection responsible for highlighting currently selected cell.
|
9
|
-
* can present on the table only one at the time.
|
9
|
+
* Creates the new instance of Selection responsible for highlighting currently selected cell.
|
10
|
+
* This type of selection can present on the table only one at the time.
|
10
11
|
*
|
11
12
|
* @param {object} highlightParams A configuration object to create a highlight.
|
12
13
|
* @param {object} highlightParams.border Border configuration.
|
@@ -19,12 +20,9 @@ function createHighlight(_ref) {
|
|
19
20
|
visualCellRange,
|
20
21
|
...restOptions
|
21
22
|
} = _ref;
|
22
|
-
|
23
|
+
return new _visualSelection.default({
|
23
24
|
...border,
|
24
25
|
...restOptions,
|
25
|
-
selectionType:
|
26
|
+
selectionType: _src.HIGHLIGHT_CUSTOM_SELECTION_TYPE
|
26
27
|
}, visualCellRange);
|
27
|
-
|
28
|
-
}
|
29
|
-
var _default = createHighlight;
|
30
|
-
exports.default = _default;
|
28
|
+
}
|
@@ -1,25 +1,23 @@
|
|
1
|
-
import {
|
1
|
+
import { HIGHLIGHT_CUSTOM_SELECTION_TYPE } from "../../../3rdparty/walkontable/src/index.mjs";
|
2
2
|
import VisualSelection from "../visualSelection.mjs";
|
3
3
|
/**
|
4
|
-
* Creates the new instance of Selection responsible for highlighting currently selected cell.
|
5
|
-
* can present on the table only one at the time.
|
4
|
+
* Creates the new instance of Selection responsible for highlighting currently selected cell.
|
5
|
+
* This type of selection can present on the table only one at the time.
|
6
6
|
*
|
7
7
|
* @param {object} highlightParams A configuration object to create a highlight.
|
8
8
|
* @param {object} highlightParams.border Border configuration.
|
9
9
|
* @param {object} highlightParams.visualCellRange Function to translate visual to renderable coords.
|
10
10
|
* @returns {Selection}
|
11
11
|
*/
|
12
|
-
function createHighlight(_ref) {
|
12
|
+
export function createHighlight(_ref) {
|
13
13
|
let {
|
14
14
|
border,
|
15
15
|
visualCellRange,
|
16
16
|
...restOptions
|
17
17
|
} = _ref;
|
18
|
-
|
18
|
+
return new VisualSelection({
|
19
19
|
...border,
|
20
20
|
...restOptions,
|
21
|
-
selectionType:
|
21
|
+
selectionType: HIGHLIGHT_CUSTOM_SELECTION_TYPE
|
22
22
|
}, visualCellRange);
|
23
|
-
|
24
|
-
}
|
25
|
-
export default createHighlight;
|
23
|
+
}
|
@@ -1,7 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
-
|
4
|
+
exports.createHighlight = createHighlight;
|
5
|
+
var _src = require("../../../3rdparty/walkontable/src");
|
5
6
|
var _visualSelection = _interopRequireDefault(require("../visualSelection"));
|
6
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
7
8
|
/**
|
@@ -15,16 +16,13 @@ function createHighlight(_ref) {
|
|
15
16
|
let {
|
16
17
|
...restOptions
|
17
18
|
} = _ref;
|
18
|
-
|
19
|
+
return new _visualSelection.default({
|
19
20
|
className: 'fill',
|
20
21
|
border: {
|
21
22
|
width: 1,
|
22
23
|
color: '#ff0000'
|
23
24
|
},
|
24
25
|
...restOptions,
|
25
|
-
selectionType:
|
26
|
+
selectionType: _src.HIGHLIGHT_FILL_TYPE
|
26
27
|
});
|
27
|
-
|
28
|
-
}
|
29
|
-
var _default = createHighlight;
|
30
|
-
exports.default = _default;
|
28
|
+
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { HIGHLIGHT_FILL_TYPE } from "../../../3rdparty/walkontable/src/index.mjs";
|
2
2
|
import VisualSelection from "../visualSelection.mjs";
|
3
3
|
/**
|
4
4
|
* Creates the new instance of Selection, responsible for highlighting cells which are covered by fill handle
|
@@ -7,19 +7,17 @@ import VisualSelection from "../visualSelection.mjs";
|
|
7
7
|
* @param {object} highlightParams A configuration object to create a highlight.
|
8
8
|
* @returns {Selection}
|
9
9
|
*/
|
10
|
-
function createHighlight(_ref) {
|
10
|
+
export function createHighlight(_ref) {
|
11
11
|
let {
|
12
12
|
...restOptions
|
13
13
|
} = _ref;
|
14
|
-
|
14
|
+
return new VisualSelection({
|
15
15
|
className: 'fill',
|
16
16
|
border: {
|
17
17
|
width: 1,
|
18
18
|
color: '#ff0000'
|
19
19
|
},
|
20
20
|
...restOptions,
|
21
|
-
selectionType:
|
21
|
+
selectionType: HIGHLIGHT_FILL_TYPE
|
22
22
|
});
|
23
|
-
|
24
|
-
}
|
25
|
-
export default createHighlight;
|
23
|
+
}
|
@@ -1,7 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
-
|
4
|
+
exports.createHighlight = createHighlight;
|
5
|
+
var _src = require("../../../3rdparty/walkontable/src");
|
5
6
|
var _visualSelection = _interopRequireDefault(require("../visualSelection"));
|
6
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
7
8
|
/**
|
@@ -17,7 +18,7 @@ function createHighlight(_ref) {
|
|
17
18
|
cellCornerVisible,
|
18
19
|
...restOptions
|
19
20
|
} = _ref;
|
20
|
-
|
21
|
+
return new _visualSelection.default({
|
21
22
|
className: 'current',
|
22
23
|
border: {
|
23
24
|
width: 2,
|
@@ -25,9 +26,6 @@ function createHighlight(_ref) {
|
|
25
26
|
cornerVisible: cellCornerVisible
|
26
27
|
},
|
27
28
|
...restOptions,
|
28
|
-
selectionType:
|
29
|
+
selectionType: _src.HIGHLIGHT_FOCUS_TYPE
|
29
30
|
});
|
30
|
-
|
31
|
-
}
|
32
|
-
var _default = createHighlight;
|
33
|
-
exports.default = _default;
|
31
|
+
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { HIGHLIGHT_FOCUS_TYPE } from "../../../3rdparty/walkontable/src/index.mjs";
|
2
2
|
import VisualSelection from "../visualSelection.mjs";
|
3
3
|
/**
|
4
4
|
* Creates the new instance of Selection responsible for highlighting currently selected cell. This type of selection
|
@@ -8,12 +8,12 @@ import VisualSelection from "../visualSelection.mjs";
|
|
8
8
|
* @param {Function} highlightParams.cellCornerVisible Function to determine if cell's corner should be visible.
|
9
9
|
* @returns {Selection}
|
10
10
|
*/
|
11
|
-
function createHighlight(_ref) {
|
11
|
+
export function createHighlight(_ref) {
|
12
12
|
let {
|
13
13
|
cellCornerVisible,
|
14
14
|
...restOptions
|
15
15
|
} = _ref;
|
16
|
-
|
16
|
+
return new VisualSelection({
|
17
17
|
className: 'current',
|
18
18
|
border: {
|
19
19
|
width: 2,
|
@@ -21,8 +21,6 @@ function createHighlight(_ref) {
|
|
21
21
|
cornerVisible: cellCornerVisible
|
22
22
|
},
|
23
23
|
...restOptions,
|
24
|
-
selectionType:
|
24
|
+
selectionType: HIGHLIGHT_FOCUS_TYPE
|
25
25
|
});
|
26
|
-
|
27
|
-
}
|
28
|
-
export default createHighlight;
|
26
|
+
}
|
@@ -1,36 +1,27 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
-
|
4
|
+
exports.createHighlight = createHighlight;
|
5
|
+
var _src = require("../../../3rdparty/walkontable/src");
|
5
6
|
var _visualSelection = _interopRequireDefault(require("../visualSelection"));
|
6
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
7
8
|
/**
|
8
|
-
* Creates the new instance of Selection, responsible for highlighting
|
9
|
-
*
|
9
|
+
* Creates the new instance of Selection, responsible for highlighting column or row headers when
|
10
|
+
* any cell is selected.
|
11
|
+
* This type of selection can occur multiple times.
|
10
12
|
*
|
11
13
|
* @param {object} highlightParams A configuration object to create a highlight.
|
12
14
|
* @param {string} highlightParams.headerClassName Highlighted headers' class name.
|
13
|
-
* @param {string} highlightParams.rowClassName Highlighted row' class name.
|
14
|
-
* @param {string} highlightParams.columnClassName Highlighted column' class name.
|
15
15
|
* @returns {Selection}
|
16
16
|
*/
|
17
17
|
function createHighlight(_ref) {
|
18
18
|
let {
|
19
19
|
headerClassName,
|
20
|
-
rowClassName,
|
21
|
-
columnClassName,
|
22
20
|
...restOptions
|
23
21
|
} = _ref;
|
24
|
-
|
25
|
-
className:
|
26
|
-
highlightHeaderClassName: headerClassName,
|
27
|
-
highlightRowClassName: rowClassName,
|
28
|
-
highlightColumnClassName: columnClassName,
|
22
|
+
return new _visualSelection.default({
|
23
|
+
className: headerClassName,
|
29
24
|
...restOptions,
|
30
|
-
|
31
|
-
selectionType: _constants.HEADER_TYPE
|
25
|
+
selectionType: _src.HIGHLIGHT_HEADER_TYPE
|
32
26
|
});
|
33
|
-
|
34
|
-
}
|
35
|
-
var _default = createHighlight;
|
36
|
-
exports.default = _default;
|
27
|
+
}
|
@@ -1,31 +1,22 @@
|
|
1
|
-
import {
|
1
|
+
import { HIGHLIGHT_HEADER_TYPE } from "../../../3rdparty/walkontable/src/index.mjs";
|
2
2
|
import VisualSelection from "../visualSelection.mjs";
|
3
3
|
/**
|
4
|
-
* Creates the new instance of Selection, responsible for highlighting
|
5
|
-
*
|
4
|
+
* Creates the new instance of Selection, responsible for highlighting column or row headers when
|
5
|
+
* any cell is selected.
|
6
|
+
* This type of selection can occur multiple times.
|
6
7
|
*
|
7
8
|
* @param {object} highlightParams A configuration object to create a highlight.
|
8
9
|
* @param {string} highlightParams.headerClassName Highlighted headers' class name.
|
9
|
-
* @param {string} highlightParams.rowClassName Highlighted row' class name.
|
10
|
-
* @param {string} highlightParams.columnClassName Highlighted column' class name.
|
11
10
|
* @returns {Selection}
|
12
11
|
*/
|
13
|
-
function createHighlight(_ref) {
|
12
|
+
export function createHighlight(_ref) {
|
14
13
|
let {
|
15
14
|
headerClassName,
|
16
|
-
rowClassName,
|
17
|
-
columnClassName,
|
18
15
|
...restOptions
|
19
16
|
} = _ref;
|
20
|
-
|
21
|
-
className:
|
22
|
-
highlightHeaderClassName: headerClassName,
|
23
|
-
highlightRowClassName: rowClassName,
|
24
|
-
highlightColumnClassName: columnClassName,
|
17
|
+
return new VisualSelection({
|
18
|
+
className: headerClassName,
|
25
19
|
...restOptions,
|
26
|
-
|
27
|
-
selectionType: HEADER_TYPE
|
20
|
+
selectionType: HIGHLIGHT_HEADER_TYPE
|
28
21
|
});
|
29
|
-
|
30
|
-
}
|
31
|
-
export default createHighlight;
|
22
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.createHighlight = createHighlight;
|
5
|
+
var _src = require("../../../3rdparty/walkontable/src");
|
6
|
+
var _visualSelection = _interopRequireDefault(require("../visualSelection"));
|
7
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
8
|
+
/**
|
9
|
+
* Creates the new instance of Selection, responsible for highlighting cells in a rows and
|
10
|
+
* row headers.
|
11
|
+
* This type of selection can occur multiple times.
|
12
|
+
*
|
13
|
+
* @param {object} highlightParams A configuration object to create a highlight.
|
14
|
+
* @param {string} highlightParams.rowClassName Highlighted row' class name.
|
15
|
+
* @returns {Selection}
|
16
|
+
*/
|
17
|
+
function createHighlight(_ref) {
|
18
|
+
let {
|
19
|
+
rowClassName,
|
20
|
+
...restOptions
|
21
|
+
} = _ref;
|
22
|
+
return new _visualSelection.default({
|
23
|
+
className: rowClassName,
|
24
|
+
...restOptions,
|
25
|
+
selectionType: _src.HIGHLIGHT_ROW_TYPE
|
26
|
+
});
|
27
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { HIGHLIGHT_ROW_TYPE } from "../../../3rdparty/walkontable/src/index.mjs";
|
2
|
+
import VisualSelection from "../visualSelection.mjs";
|
3
|
+
/**
|
4
|
+
* Creates the new instance of Selection, responsible for highlighting cells in a rows and
|
5
|
+
* row headers.
|
6
|
+
* This type of selection can occur multiple times.
|
7
|
+
*
|
8
|
+
* @param {object} highlightParams A configuration object to create a highlight.
|
9
|
+
* @param {string} highlightParams.rowClassName Highlighted row' class name.
|
10
|
+
* @returns {Selection}
|
11
|
+
*/
|
12
|
+
export function createHighlight(_ref) {
|
13
|
+
let {
|
14
|
+
rowClassName,
|
15
|
+
...restOptions
|
16
|
+
} = _ref;
|
17
|
+
return new VisualSelection({
|
18
|
+
className: rowClassName,
|
19
|
+
...restOptions,
|
20
|
+
selectionType: HIGHLIGHT_ROW_TYPE
|
21
|
+
});
|
22
|
+
}
|
@@ -62,10 +62,6 @@ class VisualSelection extends _src.Selection {
|
|
62
62
|
return null;
|
63
63
|
}
|
64
64
|
if (visibleFromCoords.row > visibleToCoords.row || visibleFromCoords.col > visibleToCoords.col) {
|
65
|
-
const isHeaderTypeSelection = this.settings.type === 'header' || this.settings.type === 'active-header';
|
66
|
-
if (!isHeaderTypeSelection) {
|
67
|
-
return null;
|
68
|
-
}
|
69
65
|
visibleFromCoords = from;
|
70
66
|
visibleToCoords = to;
|
71
67
|
}
|
@@ -85,13 +81,13 @@ class VisualSelection extends _src.Selection {
|
|
85
81
|
*/
|
86
82
|
getNearestNotHiddenCoords(coords, rowSearchDirection) {
|
87
83
|
let columnSearchDirection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : rowSearchDirection;
|
88
|
-
const nextVisibleRow = this.getNearestNotHiddenIndex(this.settings.rowIndexMapper
|
84
|
+
const nextVisibleRow = this.getNearestNotHiddenIndex(this.settings.rowIndexMapper, coords.row, rowSearchDirection);
|
89
85
|
|
90
86
|
// There are no more visual rows in the range.
|
91
87
|
if (nextVisibleRow === null) {
|
92
88
|
return null;
|
93
89
|
}
|
94
|
-
const nextVisibleColumn = this.getNearestNotHiddenIndex(this.settings.columnIndexMapper
|
90
|
+
const nextVisibleColumn = this.getNearestNotHiddenIndex(this.settings.columnIndexMapper, coords.col, columnSearchDirection);
|
95
91
|
|
96
92
|
// There are no more visual columns in the range.
|
97
93
|
if (nextVisibleColumn === null) {
|
@@ -114,12 +110,7 @@ class VisualSelection extends _src.Selection {
|
|
114
110
|
if (visualIndex < 0) {
|
115
111
|
return visualIndex;
|
116
112
|
}
|
117
|
-
|
118
|
-
const isHeaderSelectionType = this.settings.type === 'header' || this.settings.type === 'active-header';
|
119
|
-
if (isHeaderSelectionType && nearestVisualIndex === null) {
|
120
|
-
return -1;
|
121
|
-
}
|
122
|
-
return nearestVisualIndex;
|
113
|
+
return indexMapper.getNearestNotHiddenIndex(visualIndex, searchDirection);
|
123
114
|
}
|
124
115
|
|
125
116
|
/**
|
@@ -156,24 +147,38 @@ class VisualSelection extends _src.Selection {
|
|
156
147
|
* @returns {VisualSelection}
|
157
148
|
*/
|
158
149
|
syncWith(broaderCellRange) {
|
150
|
+
const coordsFrom = broaderCellRange.from.clone().normalize();
|
159
151
|
const rowDirection = broaderCellRange.getVerticalDirection() === 'N-S' ? 1 : -1;
|
160
152
|
const columnDirection = broaderCellRange.getHorizontalDirection() === 'W-E' ? 1 : -1;
|
161
|
-
const
|
162
|
-
|
163
|
-
|
153
|
+
const renderableHighlight = this.settings.visualToRenderableCoords(this.visualCellRange.highlight);
|
154
|
+
let cellCoordsVisual = null;
|
155
|
+
if (renderableHighlight === null || renderableHighlight.col === null || renderableHighlight.row === null) {
|
156
|
+
cellCoordsVisual = this.getNearestNotHiddenCoords(coordsFrom, rowDirection, columnDirection);
|
157
|
+
}
|
158
|
+
if (cellCoordsVisual !== null && broaderCellRange.overlaps(cellCoordsVisual)) {
|
159
|
+
const currentHighlight = broaderCellRange.highlight.clone();
|
160
|
+
if (currentHighlight.row >= 0) {
|
161
|
+
currentHighlight.row = cellCoordsVisual.row;
|
162
|
+
}
|
163
|
+
if (currentHighlight.col >= 0) {
|
164
|
+
currentHighlight.col = cellCoordsVisual.col;
|
165
|
+
}
|
166
|
+
|
167
|
+
// We can't show selection visually now, but we found first visible range in the broader cell range.
|
164
168
|
if (this.cellRange === null) {
|
165
|
-
const
|
166
|
-
this.cellRange = this.settings.createCellRange(
|
169
|
+
const cellCoordsRenderable = this.settings.visualToRenderableCoords(currentHighlight);
|
170
|
+
this.cellRange = this.settings.createCellRange(cellCoordsRenderable);
|
167
171
|
}
|
168
172
|
|
169
173
|
// We set new highlight as it might change (for example, when showing/hiding some cells from the broader selection range)
|
170
174
|
// TODO: It is also handled by the `MergeCells` plugin while adjusting already modified coordinates. Should it?
|
171
|
-
broaderCellRange.setHighlight(
|
172
|
-
return this;
|
175
|
+
broaderCellRange.setHighlight(currentHighlight);
|
173
176
|
}
|
174
177
|
|
175
|
-
//
|
176
|
-
|
178
|
+
// Sync the highlight coords from the visual selection layer with logical coords.
|
179
|
+
if (this.settings.selectionType === 'focus' && renderableHighlight !== null && cellCoordsVisual === null) {
|
180
|
+
broaderCellRange.setHighlight(this.visualCellRange.highlight);
|
181
|
+
}
|
177
182
|
return this;
|
178
183
|
}
|
179
184
|
|
@@ -190,11 +195,7 @@ class VisualSelection extends _src.Selection {
|
|
190
195
|
from,
|
191
196
|
to
|
192
197
|
} = this.cellRange;
|
193
|
-
|
194
|
-
const isColumnUndefined = from.col === null || to.col === null;
|
195
|
-
const topLeftCorner = this.settings.createCellCoords(isRowUndefined ? null : Math.min(from.row, to.row), isColumnUndefined ? null : Math.min(from.col, to.col));
|
196
|
-
const bottomRightCorner = this.settings.createCellCoords(isRowUndefined ? null : Math.max(from.row, to.row), isColumnUndefined ? null : Math.max(from.col, to.col));
|
197
|
-
return [topLeftCorner.row, topLeftCorner.col, bottomRightCorner.row, bottomRightCorner.col];
|
198
|
+
return [Math.min(from.row, to.row), Math.min(from.col, to.col), Math.max(from.row, to.row), Math.max(from.col, to.col)];
|
198
199
|
}
|
199
200
|
|
200
201
|
/**
|
@@ -217,11 +218,14 @@ class VisualSelection extends _src.Selection {
|
|
217
218
|
* points to the beginning of the selection.
|
218
219
|
* @param {CellCoords} visualToCoords The CellCoords object which contains coordinates that
|
219
220
|
* points to the end of the selection.
|
220
|
-
* @returns {CellRange}
|
221
|
+
* @returns {CellRange|null}
|
221
222
|
*/
|
222
223
|
createRenderableCellRange(visualFromCoords, visualToCoords) {
|
223
224
|
const renderableFromCoords = this.settings.visualToRenderableCoords(visualFromCoords);
|
224
225
|
const renderableToCoords = this.settings.visualToRenderableCoords(visualToCoords);
|
226
|
+
if (renderableFromCoords.row === null || renderableFromCoords.col === null || renderableToCoords.row === null || renderableToCoords.col === null) {
|
227
|
+
return null;
|
228
|
+
}
|
225
229
|
return this.settings.createCellRange(renderableFromCoords, renderableFromCoords, renderableToCoords);
|
226
230
|
}
|
227
231
|
}
|
@@ -59,10 +59,6 @@ class VisualSelection extends Selection {
|
|
59
59
|
return null;
|
60
60
|
}
|
61
61
|
if (visibleFromCoords.row > visibleToCoords.row || visibleFromCoords.col > visibleToCoords.col) {
|
62
|
-
const isHeaderTypeSelection = this.settings.type === 'header' || this.settings.type === 'active-header';
|
63
|
-
if (!isHeaderTypeSelection) {
|
64
|
-
return null;
|
65
|
-
}
|
66
62
|
visibleFromCoords = from;
|
67
63
|
visibleToCoords = to;
|
68
64
|
}
|
@@ -82,13 +78,13 @@ class VisualSelection extends Selection {
|
|
82
78
|
*/
|
83
79
|
getNearestNotHiddenCoords(coords, rowSearchDirection) {
|
84
80
|
let columnSearchDirection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : rowSearchDirection;
|
85
|
-
const nextVisibleRow = this.getNearestNotHiddenIndex(this.settings.rowIndexMapper
|
81
|
+
const nextVisibleRow = this.getNearestNotHiddenIndex(this.settings.rowIndexMapper, coords.row, rowSearchDirection);
|
86
82
|
|
87
83
|
// There are no more visual rows in the range.
|
88
84
|
if (nextVisibleRow === null) {
|
89
85
|
return null;
|
90
86
|
}
|
91
|
-
const nextVisibleColumn = this.getNearestNotHiddenIndex(this.settings.columnIndexMapper
|
87
|
+
const nextVisibleColumn = this.getNearestNotHiddenIndex(this.settings.columnIndexMapper, coords.col, columnSearchDirection);
|
92
88
|
|
93
89
|
// There are no more visual columns in the range.
|
94
90
|
if (nextVisibleColumn === null) {
|
@@ -111,12 +107,7 @@ class VisualSelection extends Selection {
|
|
111
107
|
if (visualIndex < 0) {
|
112
108
|
return visualIndex;
|
113
109
|
}
|
114
|
-
|
115
|
-
const isHeaderSelectionType = this.settings.type === 'header' || this.settings.type === 'active-header';
|
116
|
-
if (isHeaderSelectionType && nearestVisualIndex === null) {
|
117
|
-
return -1;
|
118
|
-
}
|
119
|
-
return nearestVisualIndex;
|
110
|
+
return indexMapper.getNearestNotHiddenIndex(visualIndex, searchDirection);
|
120
111
|
}
|
121
112
|
|
122
113
|
/**
|
@@ -153,24 +144,38 @@ class VisualSelection extends Selection {
|
|
153
144
|
* @returns {VisualSelection}
|
154
145
|
*/
|
155
146
|
syncWith(broaderCellRange) {
|
147
|
+
const coordsFrom = broaderCellRange.from.clone().normalize();
|
156
148
|
const rowDirection = broaderCellRange.getVerticalDirection() === 'N-S' ? 1 : -1;
|
157
149
|
const columnDirection = broaderCellRange.getHorizontalDirection() === 'W-E' ? 1 : -1;
|
158
|
-
const
|
159
|
-
|
160
|
-
|
150
|
+
const renderableHighlight = this.settings.visualToRenderableCoords(this.visualCellRange.highlight);
|
151
|
+
let cellCoordsVisual = null;
|
152
|
+
if (renderableHighlight === null || renderableHighlight.col === null || renderableHighlight.row === null) {
|
153
|
+
cellCoordsVisual = this.getNearestNotHiddenCoords(coordsFrom, rowDirection, columnDirection);
|
154
|
+
}
|
155
|
+
if (cellCoordsVisual !== null && broaderCellRange.overlaps(cellCoordsVisual)) {
|
156
|
+
const currentHighlight = broaderCellRange.highlight.clone();
|
157
|
+
if (currentHighlight.row >= 0) {
|
158
|
+
currentHighlight.row = cellCoordsVisual.row;
|
159
|
+
}
|
160
|
+
if (currentHighlight.col >= 0) {
|
161
|
+
currentHighlight.col = cellCoordsVisual.col;
|
162
|
+
}
|
163
|
+
|
164
|
+
// We can't show selection visually now, but we found first visible range in the broader cell range.
|
161
165
|
if (this.cellRange === null) {
|
162
|
-
const
|
163
|
-
this.cellRange = this.settings.createCellRange(
|
166
|
+
const cellCoordsRenderable = this.settings.visualToRenderableCoords(currentHighlight);
|
167
|
+
this.cellRange = this.settings.createCellRange(cellCoordsRenderable);
|
164
168
|
}
|
165
169
|
|
166
170
|
// We set new highlight as it might change (for example, when showing/hiding some cells from the broader selection range)
|
167
171
|
// TODO: It is also handled by the `MergeCells` plugin while adjusting already modified coordinates. Should it?
|
168
|
-
broaderCellRange.setHighlight(
|
169
|
-
return this;
|
172
|
+
broaderCellRange.setHighlight(currentHighlight);
|
170
173
|
}
|
171
174
|
|
172
|
-
//
|
173
|
-
|
175
|
+
// Sync the highlight coords from the visual selection layer with logical coords.
|
176
|
+
if (this.settings.selectionType === 'focus' && renderableHighlight !== null && cellCoordsVisual === null) {
|
177
|
+
broaderCellRange.setHighlight(this.visualCellRange.highlight);
|
178
|
+
}
|
174
179
|
return this;
|
175
180
|
}
|
176
181
|
|
@@ -187,11 +192,7 @@ class VisualSelection extends Selection {
|
|
187
192
|
from,
|
188
193
|
to
|
189
194
|
} = this.cellRange;
|
190
|
-
|
191
|
-
const isColumnUndefined = from.col === null || to.col === null;
|
192
|
-
const topLeftCorner = this.settings.createCellCoords(isRowUndefined ? null : Math.min(from.row, to.row), isColumnUndefined ? null : Math.min(from.col, to.col));
|
193
|
-
const bottomRightCorner = this.settings.createCellCoords(isRowUndefined ? null : Math.max(from.row, to.row), isColumnUndefined ? null : Math.max(from.col, to.col));
|
194
|
-
return [topLeftCorner.row, topLeftCorner.col, bottomRightCorner.row, bottomRightCorner.col];
|
195
|
+
return [Math.min(from.row, to.row), Math.min(from.col, to.col), Math.max(from.row, to.row), Math.max(from.col, to.col)];
|
195
196
|
}
|
196
197
|
|
197
198
|
/**
|
@@ -214,11 +215,14 @@ class VisualSelection extends Selection {
|
|
214
215
|
* points to the beginning of the selection.
|
215
216
|
* @param {CellCoords} visualToCoords The CellCoords object which contains coordinates that
|
216
217
|
* points to the end of the selection.
|
217
|
-
* @returns {CellRange}
|
218
|
+
* @returns {CellRange|null}
|
218
219
|
*/
|
219
220
|
createRenderableCellRange(visualFromCoords, visualToCoords) {
|
220
221
|
const renderableFromCoords = this.settings.visualToRenderableCoords(visualFromCoords);
|
221
222
|
const renderableToCoords = this.settings.visualToRenderableCoords(visualToCoords);
|
223
|
+
if (renderableFromCoords.row === null || renderableFromCoords.col === null || renderableToCoords.row === null || renderableToCoords.col === null) {
|
224
|
+
return null;
|
225
|
+
}
|
222
226
|
return this.settings.createCellRange(renderableFromCoords, renderableFromCoords, renderableToCoords);
|
223
227
|
}
|
224
228
|
}
|
package/selection/index.js
CHANGED
@@ -2,14 +2,11 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
var _exportNames = {
|
5
|
-
Highlight: true,
|
6
5
|
Selection: true,
|
7
6
|
handleMouseEvent: true,
|
8
7
|
detectSelectionType: true,
|
9
8
|
normalizeSelectionFactory: true
|
10
9
|
};
|
11
|
-
var _highlight = _interopRequireDefault(require("./highlight/highlight"));
|
12
|
-
exports.Highlight = _highlight.default;
|
13
10
|
var _selection = _interopRequireDefault(require("./selection"));
|
14
11
|
exports.Selection = _selection.default;
|
15
12
|
var _mouseEventHandler = require("./mouseEventHandler");
|
@@ -17,11 +14,11 @@ exports.handleMouseEvent = _mouseEventHandler.handleMouseEvent;
|
|
17
14
|
var _utils = require("./utils");
|
18
15
|
exports.detectSelectionType = _utils.detectSelectionType;
|
19
16
|
exports.normalizeSelectionFactory = _utils.normalizeSelectionFactory;
|
20
|
-
var
|
21
|
-
Object.keys(
|
17
|
+
var _highlight = require("./highlight/highlight");
|
18
|
+
Object.keys(_highlight).forEach(function (key) {
|
22
19
|
if (key === "default" || key === "__esModule") return;
|
23
20
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
24
|
-
if (key in exports && exports[key] ===
|
25
|
-
exports[key] =
|
21
|
+
if (key in exports && exports[key] === _highlight[key]) return;
|
22
|
+
exports[key] = _highlight[key];
|
26
23
|
});
|
27
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|