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
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.default = rowBelowItem;
|
5
|
+
var _utils = require("../utils");
|
5
6
|
var C = _interopRequireWildcard(require("../../../i18n/constants"));
|
6
7
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
7
8
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
@@ -22,11 +23,8 @@ function rowBelowItem() {
|
|
22
23
|
this.alter('insert_row_below', latestSelection.row, 1, 'ContextMenu.rowBelow');
|
23
24
|
},
|
24
25
|
disabled() {
|
25
|
-
const
|
26
|
-
if (!
|
27
|
-
return true;
|
28
|
-
}
|
29
|
-
if (range.isSingleHeader() && range.highlight.row < 0) {
|
26
|
+
const selected = (0, _utils.getValidSelection)(this);
|
27
|
+
if (!selected) {
|
30
28
|
return true;
|
31
29
|
}
|
32
30
|
if (this.selection.isSelectedByCorner()) {
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { getValidSelection } from "../utils.mjs";
|
1
2
|
import * as C from "../../../i18n/constants.mjs";
|
2
3
|
export const KEY = 'row_below';
|
3
4
|
|
@@ -15,11 +16,8 @@ export default function rowBelowItem() {
|
|
15
16
|
this.alter('insert_row_below', latestSelection.row, 1, 'ContextMenu.rowBelow');
|
16
17
|
},
|
17
18
|
disabled() {
|
18
|
-
const
|
19
|
-
if (!
|
20
|
-
return true;
|
21
|
-
}
|
22
|
-
if (range.isSingleHeader() && range.highlight.row < 0) {
|
19
|
+
const selected = getValidSelection(this);
|
20
|
+
if (!selected) {
|
23
21
|
return true;
|
24
22
|
}
|
25
23
|
if (this.selection.isSelectedByCorner()) {
|
@@ -5,7 +5,7 @@ exports.align = align;
|
|
5
5
|
exports.checkSelectionConsistency = checkSelectionConsistency;
|
6
6
|
exports.filterSeparators = filterSeparators;
|
7
7
|
exports.getAlignmentClasses = getAlignmentClasses;
|
8
|
-
exports.
|
8
|
+
exports.getValidSelection = getValidSelection;
|
9
9
|
exports.hasSubMenu = hasSubMenu;
|
10
10
|
exports.isDisabled = isDisabled;
|
11
11
|
exports.isItemHidden = isItemHidden;
|
@@ -62,6 +62,21 @@ function isSelectionDisabled(cell) {
|
|
62
62
|
return (0, _element.hasClass)(cell, 'htSelectionDisabled');
|
63
63
|
}
|
64
64
|
|
65
|
+
/**
|
66
|
+
* @param {Core} hot The Handsontable instance.
|
67
|
+
* @returns {Array[]|null}
|
68
|
+
*/
|
69
|
+
function getValidSelection(hot) {
|
70
|
+
const selected = hot.getSelected();
|
71
|
+
if (!selected) {
|
72
|
+
return null;
|
73
|
+
}
|
74
|
+
if (selected[0] < 0) {
|
75
|
+
return null;
|
76
|
+
}
|
77
|
+
return selected;
|
78
|
+
}
|
79
|
+
|
65
80
|
/**
|
66
81
|
* @param {string} className The full element class name to process.
|
67
82
|
* @param {string} alignment The slignment class name to compare with.
|
@@ -252,31 +267,4 @@ function filterSeparators(items) {
|
|
252
267
|
result = popSeparators(result, separator);
|
253
268
|
result = removeDuplicatedSeparators(result);
|
254
269
|
return result;
|
255
|
-
}
|
256
|
-
|
257
|
-
/**
|
258
|
-
* Returns document offset based on the passed element. If the document objects between element and the
|
259
|
-
* base document are not the same the offset as top and left properties will be returned.
|
260
|
-
*
|
261
|
-
* @param {Element} elementToCheck The element to compare with Document object.
|
262
|
-
* @param {Document} baseDocument The base Document object.
|
263
|
-
* @returns {{ top: number, left: number }}
|
264
|
-
*/
|
265
|
-
function getDocumentOffsetByElement(elementToCheck, baseDocument) {
|
266
|
-
const offset = {
|
267
|
-
top: 0,
|
268
|
-
left: 0
|
269
|
-
};
|
270
|
-
if (baseDocument !== elementToCheck.ownerDocument) {
|
271
|
-
const {
|
272
|
-
frameElement
|
273
|
-
} = baseDocument.defaultView;
|
274
|
-
const {
|
275
|
-
top,
|
276
|
-
left
|
277
|
-
} = frameElement.getBoundingClientRect();
|
278
|
-
offset.top = top;
|
279
|
-
offset.left = left;
|
280
|
-
}
|
281
|
-
return offset;
|
282
270
|
}
|
@@ -45,6 +45,21 @@ export function isSelectionDisabled(cell) {
|
|
45
45
|
return hasClass(cell, 'htSelectionDisabled');
|
46
46
|
}
|
47
47
|
|
48
|
+
/**
|
49
|
+
* @param {Core} hot The Handsontable instance.
|
50
|
+
* @returns {Array[]|null}
|
51
|
+
*/
|
52
|
+
export function getValidSelection(hot) {
|
53
|
+
const selected = hot.getSelected();
|
54
|
+
if (!selected) {
|
55
|
+
return null;
|
56
|
+
}
|
57
|
+
if (selected[0] < 0) {
|
58
|
+
return null;
|
59
|
+
}
|
60
|
+
return selected;
|
61
|
+
}
|
62
|
+
|
48
63
|
/**
|
49
64
|
* @param {string} className The full element class name to process.
|
50
65
|
* @param {string} alignment The slignment class name to compare with.
|
@@ -235,31 +250,4 @@ export function filterSeparators(items) {
|
|
235
250
|
result = popSeparators(result, separator);
|
236
251
|
result = removeDuplicatedSeparators(result);
|
237
252
|
return result;
|
238
|
-
}
|
239
|
-
|
240
|
-
/**
|
241
|
-
* Returns document offset based on the passed element. If the document objects between element and the
|
242
|
-
* base document are not the same the offset as top and left properties will be returned.
|
243
|
-
*
|
244
|
-
* @param {Element} elementToCheck The element to compare with Document object.
|
245
|
-
* @param {Document} baseDocument The base Document object.
|
246
|
-
* @returns {{ top: number, left: number }}
|
247
|
-
*/
|
248
|
-
export function getDocumentOffsetByElement(elementToCheck, baseDocument) {
|
249
|
-
const offset = {
|
250
|
-
top: 0,
|
251
|
-
left: 0
|
252
|
-
};
|
253
|
-
if (baseDocument !== elementToCheck.ownerDocument) {
|
254
|
-
const {
|
255
|
-
frameElement
|
256
|
-
} = baseDocument.defaultView;
|
257
|
-
const {
|
258
|
-
top,
|
259
|
-
left
|
260
|
-
} = frameElement.getBoundingClientRect();
|
261
|
-
offset.top = top;
|
262
|
-
offset.left = left;
|
263
|
-
}
|
264
|
-
return offset;
|
265
253
|
}
|
@@ -20,13 +20,6 @@ function copyItem(copyPastePlugin) {
|
|
20
20
|
if (this.countRows() === 0 || this.countCols() === 0) {
|
21
21
|
return true;
|
22
22
|
}
|
23
|
-
const range = this.getSelectedRangeLast();
|
24
|
-
if (!range) {
|
25
|
-
return true;
|
26
|
-
}
|
27
|
-
if (range.isSingleHeader()) {
|
28
|
-
return true;
|
29
|
-
}
|
30
23
|
const selected = this.getSelected();
|
31
24
|
|
32
25
|
// Disable for no selection or for non-contiguous selection.
|
@@ -16,13 +16,6 @@ export default function copyItem(copyPastePlugin) {
|
|
16
16
|
if (this.countRows() === 0 || this.countCols() === 0) {
|
17
17
|
return true;
|
18
18
|
}
|
19
|
-
const range = this.getSelectedRangeLast();
|
20
|
-
if (!range) {
|
21
|
-
return true;
|
22
|
-
}
|
23
|
-
if (range.isSingleHeader()) {
|
24
|
-
return true;
|
25
|
-
}
|
26
19
|
const selected = this.getSelected();
|
27
20
|
|
28
21
|
// Disable for no selection or for non-contiguous selection.
|
@@ -3,7 +3,6 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.default = copyColumnHeadersOnlyItem;
|
5
5
|
var _constants = require("../../../i18n/constants");
|
6
|
-
var _number = require("../../../helpers/number");
|
7
6
|
/**
|
8
7
|
* @param {CopyPaste} copyPastePlugin The plugin instance.
|
9
8
|
* @returns {object}
|
@@ -13,7 +12,7 @@ function copyColumnHeadersOnlyItem(copyPastePlugin) {
|
|
13
12
|
key: 'copy_column_headers_only',
|
14
13
|
name() {
|
15
14
|
const selectedRange = this.getSelectedRangeLast();
|
16
|
-
const nounForm = selectedRange ?
|
15
|
+
const nounForm = selectedRange ? Math.min(selectedRange.getWidth() - 1, 1) : 0;
|
17
16
|
return this.getTranslatedPhrase(_constants.CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY, nounForm);
|
18
17
|
},
|
19
18
|
callback() {
|
@@ -23,13 +22,6 @@ function copyColumnHeadersOnlyItem(copyPastePlugin) {
|
|
23
22
|
if (!this.hasColHeaders()) {
|
24
23
|
return true;
|
25
24
|
}
|
26
|
-
const range = this.getSelectedRangeLast();
|
27
|
-
if (!range) {
|
28
|
-
return true;
|
29
|
-
}
|
30
|
-
if (range.isSingleHeader()) {
|
31
|
-
return true;
|
32
|
-
}
|
33
25
|
const selected = this.getSelected();
|
34
26
|
|
35
27
|
// Disable for no selection or for non-contiguous selection.
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import { CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY } from "../../../i18n/constants.mjs";
|
2
|
-
import { clamp } from "../../../helpers/number.mjs";
|
3
2
|
/**
|
4
3
|
* @param {CopyPaste} copyPastePlugin The plugin instance.
|
5
4
|
* @returns {object}
|
@@ -9,7 +8,7 @@ export default function copyColumnHeadersOnlyItem(copyPastePlugin) {
|
|
9
8
|
key: 'copy_column_headers_only',
|
10
9
|
name() {
|
11
10
|
const selectedRange = this.getSelectedRangeLast();
|
12
|
-
const nounForm = selectedRange ?
|
11
|
+
const nounForm = selectedRange ? Math.min(selectedRange.getWidth() - 1, 1) : 0;
|
13
12
|
return this.getTranslatedPhrase(CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY, nounForm);
|
14
13
|
},
|
15
14
|
callback() {
|
@@ -19,13 +18,6 @@ export default function copyColumnHeadersOnlyItem(copyPastePlugin) {
|
|
19
18
|
if (!this.hasColHeaders()) {
|
20
19
|
return true;
|
21
20
|
}
|
22
|
-
const range = this.getSelectedRangeLast();
|
23
|
-
if (!range) {
|
24
|
-
return true;
|
25
|
-
}
|
26
|
-
if (range.isSingleHeader()) {
|
27
|
-
return true;
|
28
|
-
}
|
29
21
|
const selected = this.getSelected();
|
30
22
|
|
31
23
|
// Disable for no selection or for non-contiguous selection.
|
@@ -3,7 +3,6 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.default = copyWithColumnGroupHeadersItem;
|
5
5
|
var _constants = require("../../../i18n/constants");
|
6
|
-
var _number = require("../../../helpers/number");
|
7
6
|
/**
|
8
7
|
* @param {CopyPaste} copyPastePlugin The plugin instance.
|
9
8
|
* @returns {object}
|
@@ -13,7 +12,7 @@ function copyWithColumnGroupHeadersItem(copyPastePlugin) {
|
|
13
12
|
key: 'copy_with_column_group_headers',
|
14
13
|
name() {
|
15
14
|
const selectedRange = this.getSelectedRangeLast();
|
16
|
-
const nounForm = selectedRange ?
|
15
|
+
const nounForm = selectedRange ? Math.min(selectedRange.getWidth() - 1, 1) : 0;
|
17
16
|
return this.getTranslatedPhrase(_constants.CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS, nounForm);
|
18
17
|
},
|
19
18
|
callback() {
|
@@ -23,13 +22,6 @@ function copyWithColumnGroupHeadersItem(copyPastePlugin) {
|
|
23
22
|
if (!this.hasColHeaders() || !this.getSettings().nestedHeaders) {
|
24
23
|
return true;
|
25
24
|
}
|
26
|
-
const range = this.getSelectedRangeLast();
|
27
|
-
if (!range) {
|
28
|
-
return true;
|
29
|
-
}
|
30
|
-
if (range.isSingleHeader()) {
|
31
|
-
return true;
|
32
|
-
}
|
33
25
|
const selected = this.getSelected();
|
34
26
|
|
35
27
|
// Disable for no selection or for non-contiguous selection.
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import { CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS } from "../../../i18n/constants.mjs";
|
2
|
-
import { clamp } from "../../../helpers/number.mjs";
|
3
2
|
/**
|
4
3
|
* @param {CopyPaste} copyPastePlugin The plugin instance.
|
5
4
|
* @returns {object}
|
@@ -9,7 +8,7 @@ export default function copyWithColumnGroupHeadersItem(copyPastePlugin) {
|
|
9
8
|
key: 'copy_with_column_group_headers',
|
10
9
|
name() {
|
11
10
|
const selectedRange = this.getSelectedRangeLast();
|
12
|
-
const nounForm = selectedRange ?
|
11
|
+
const nounForm = selectedRange ? Math.min(selectedRange.getWidth() - 1, 1) : 0;
|
13
12
|
return this.getTranslatedPhrase(CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS, nounForm);
|
14
13
|
},
|
15
14
|
callback() {
|
@@ -19,13 +18,6 @@ export default function copyWithColumnGroupHeadersItem(copyPastePlugin) {
|
|
19
18
|
if (!this.hasColHeaders() || !this.getSettings().nestedHeaders) {
|
20
19
|
return true;
|
21
20
|
}
|
22
|
-
const range = this.getSelectedRangeLast();
|
23
|
-
if (!range) {
|
24
|
-
return true;
|
25
|
-
}
|
26
|
-
if (range.isSingleHeader()) {
|
27
|
-
return true;
|
28
|
-
}
|
29
21
|
const selected = this.getSelected();
|
30
22
|
|
31
23
|
// Disable for no selection or for non-contiguous selection.
|
@@ -3,7 +3,6 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.default = copyWithColumnHeadersItem;
|
5
5
|
var _constants = require("../../../i18n/constants");
|
6
|
-
var _number = require("../../../helpers/number");
|
7
6
|
/**
|
8
7
|
* @param {CopyPaste} copyPastePlugin The plugin instance.
|
9
8
|
* @returns {object}
|
@@ -13,7 +12,7 @@ function copyWithColumnHeadersItem(copyPastePlugin) {
|
|
13
12
|
key: 'copy_with_column_headers',
|
14
13
|
name() {
|
15
14
|
const selectedRange = this.getSelectedRangeLast();
|
16
|
-
const nounForm = selectedRange ?
|
15
|
+
const nounForm = selectedRange ? Math.min(selectedRange.getWidth() - 1, 1) : 0;
|
17
16
|
return this.getTranslatedPhrase(_constants.CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS, nounForm);
|
18
17
|
},
|
19
18
|
callback() {
|
@@ -23,13 +22,6 @@ function copyWithColumnHeadersItem(copyPastePlugin) {
|
|
23
22
|
if (!this.hasColHeaders()) {
|
24
23
|
return true;
|
25
24
|
}
|
26
|
-
const range = this.getSelectedRangeLast();
|
27
|
-
if (!range) {
|
28
|
-
return true;
|
29
|
-
}
|
30
|
-
if (range.isSingleHeader()) {
|
31
|
-
return true;
|
32
|
-
}
|
33
25
|
const selected = this.getSelected();
|
34
26
|
|
35
27
|
// Disable for no selection or for non-contiguous selection.
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import { CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS } from "../../../i18n/constants.mjs";
|
2
|
-
import { clamp } from "../../../helpers/number.mjs";
|
3
2
|
/**
|
4
3
|
* @param {CopyPaste} copyPastePlugin The plugin instance.
|
5
4
|
* @returns {object}
|
@@ -9,7 +8,7 @@ export default function copyWithColumnHeadersItem(copyPastePlugin) {
|
|
9
8
|
key: 'copy_with_column_headers',
|
10
9
|
name() {
|
11
10
|
const selectedRange = this.getSelectedRangeLast();
|
12
|
-
const nounForm = selectedRange ?
|
11
|
+
const nounForm = selectedRange ? Math.min(selectedRange.getWidth() - 1, 1) : 0;
|
13
12
|
return this.getTranslatedPhrase(CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS, nounForm);
|
14
13
|
},
|
15
14
|
callback() {
|
@@ -19,13 +18,6 @@ export default function copyWithColumnHeadersItem(copyPastePlugin) {
|
|
19
18
|
if (!this.hasColHeaders()) {
|
20
19
|
return true;
|
21
20
|
}
|
22
|
-
const range = this.getSelectedRangeLast();
|
23
|
-
if (!range) {
|
24
|
-
return true;
|
25
|
-
}
|
26
|
-
if (range.isSingleHeader()) {
|
27
|
-
return true;
|
28
|
-
}
|
29
21
|
const selected = this.getSelected();
|
30
22
|
|
31
23
|
// Disable for no selection or for non-contiguous selection.
|
@@ -22,13 +22,6 @@ function cutItem(copyPastePlugin) {
|
|
22
22
|
if (this.countRows() === 0 || this.countCols() === 0) {
|
23
23
|
return true;
|
24
24
|
}
|
25
|
-
const range = this.getSelectedRangeLast();
|
26
|
-
if (!range) {
|
27
|
-
return true;
|
28
|
-
}
|
29
|
-
if (range.isSingleHeader()) {
|
30
|
-
return true;
|
31
|
-
}
|
32
25
|
const selected = this.getSelected();
|
33
26
|
|
34
27
|
// Disable for no selection or for non-contiquous selection.
|
@@ -16,13 +16,6 @@ export default function cutItem(copyPastePlugin) {
|
|
16
16
|
if (this.countRows() === 0 || this.countCols() === 0) {
|
17
17
|
return true;
|
18
18
|
}
|
19
|
-
const range = this.getSelectedRangeLast();
|
20
|
-
if (!range) {
|
21
|
-
return true;
|
22
|
-
}
|
23
|
-
if (range.isSingleHeader()) {
|
24
|
-
return true;
|
25
|
-
}
|
26
19
|
const selected = this.getSelected();
|
27
20
|
|
28
21
|
// Disable for no selection or for non-contiquous selection.
|
@@ -431,10 +431,6 @@ class CopyPaste extends _base.BasePlugin {
|
|
431
431
|
if (!selectionRange) {
|
432
432
|
return;
|
433
433
|
}
|
434
|
-
if (selectionRange.isSingleHeader()) {
|
435
|
-
this.copyableRanges = [];
|
436
|
-
return;
|
437
|
-
}
|
438
434
|
_classPrivateFieldGet(this, _copyableRangesFactory).setSelectedRange(selectionRange);
|
439
435
|
const groupedRanges = new Map([['headers', null], ['cells', null]]);
|
440
436
|
if (_classPrivateFieldGet(this, _copyMode) === 'column-headers-only') {
|
@@ -631,7 +627,7 @@ class CopyPaste extends _base.BasePlugin {
|
|
631
627
|
* @private
|
632
628
|
*/
|
633
629
|
onPaste(event) {
|
634
|
-
if (!this.hot.isListening() || this.isEditorOpened()
|
630
|
+
if (!this.hot.isListening() || this.isEditorOpened()) {
|
635
631
|
return;
|
636
632
|
}
|
637
633
|
if (event && event.preventDefault) {
|
@@ -656,7 +652,7 @@ class CopyPaste extends _base.BasePlugin {
|
|
656
652
|
if (typeof pastedData === 'string') {
|
657
653
|
pastedData = (0, _SheetClip.parse)(pastedData);
|
658
654
|
}
|
659
|
-
if (pastedData
|
655
|
+
if (pastedData && pastedData.length === 0) {
|
660
656
|
return;
|
661
657
|
}
|
662
658
|
if (this.hot.runHooks('beforePaste', pastedData, this.copyableRanges) === false) {
|
@@ -425,10 +425,6 @@ export class CopyPaste extends BasePlugin {
|
|
425
425
|
if (!selectionRange) {
|
426
426
|
return;
|
427
427
|
}
|
428
|
-
if (selectionRange.isSingleHeader()) {
|
429
|
-
this.copyableRanges = [];
|
430
|
-
return;
|
431
|
-
}
|
432
428
|
_classPrivateFieldGet(this, _copyableRangesFactory).setSelectedRange(selectionRange);
|
433
429
|
const groupedRanges = new Map([['headers', null], ['cells', null]]);
|
434
430
|
if (_classPrivateFieldGet(this, _copyMode) === 'column-headers-only') {
|
@@ -625,7 +621,7 @@ export class CopyPaste extends BasePlugin {
|
|
625
621
|
* @private
|
626
622
|
*/
|
627
623
|
onPaste(event) {
|
628
|
-
if (!this.hot.isListening() || this.isEditorOpened()
|
624
|
+
if (!this.hot.isListening() || this.isEditorOpened()) {
|
629
625
|
return;
|
630
626
|
}
|
631
627
|
if (event && event.preventDefault) {
|
@@ -650,7 +646,7 @@ export class CopyPaste extends BasePlugin {
|
|
650
646
|
if (typeof pastedData === 'string') {
|
651
647
|
pastedData = parse(pastedData);
|
652
648
|
}
|
653
|
-
if (pastedData
|
649
|
+
if (pastedData && pastedData.length === 0) {
|
654
650
|
return;
|
655
651
|
}
|
656
652
|
if (this.hot.runHooks('beforePaste', pastedData, this.copyableRanges) === false) {
|
@@ -167,11 +167,14 @@ class CustomBorders extends _base.BasePlugin {
|
|
167
167
|
const selectionType = (0, _selection.detectSelectionType)(selectionRanges);
|
168
168
|
const selectionSchemaNormalizer = (0, _selection.normalizeSelectionFactory)(selectionType);
|
169
169
|
(0, _array.arrayEach)(selectionRanges, selection => {
|
170
|
-
selectionSchemaNormalizer(selection)
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
170
|
+
const [rowStart, columnStart, rowEnd, columnEnd] = selectionSchemaNormalizer(selection);
|
171
|
+
for (let row = rowStart; row <= rowEnd; row += 1) {
|
172
|
+
for (let col = columnStart; col <= columnEnd; col += 1) {
|
173
|
+
(0, _array.arrayEach)(borderKeys, borderKey => {
|
174
|
+
this.prepareBorderFromCustomAdded(row, col, normBorder, (0, _utils.toInlinePropName)(borderKey));
|
175
|
+
});
|
176
|
+
}
|
177
|
+
}
|
175
178
|
});
|
176
179
|
|
177
180
|
/*
|
@@ -211,13 +214,16 @@ class CustomBorders extends _base.BasePlugin {
|
|
211
214
|
const selectionSchemaNormalizer = (0, _selection.normalizeSelectionFactory)(selectionType);
|
212
215
|
const selectedBorders = [];
|
213
216
|
(0, _array.arrayEach)(selectionRanges, selection => {
|
214
|
-
selectionSchemaNormalizer(selection)
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
217
|
+
const [rowStart, columnStart, rowEnd, columnEnd] = selectionSchemaNormalizer(selection);
|
218
|
+
for (let row = rowStart; row <= rowEnd; row += 1) {
|
219
|
+
for (let col = columnStart; col <= columnEnd; col += 1) {
|
220
|
+
(0, _array.arrayEach)(this.savedBorders, border => {
|
221
|
+
if (border.row === row && border.col === col) {
|
222
|
+
selectedBorders.push((0, _utils.denormalizeBorder)(border));
|
223
|
+
}
|
224
|
+
});
|
225
|
+
}
|
226
|
+
}
|
221
227
|
});
|
222
228
|
return selectedBorders;
|
223
229
|
}
|
@@ -608,8 +614,7 @@ class CustomBorders extends _base.BasePlugin {
|
|
608
614
|
let check = false;
|
609
615
|
(0, _array.arrayEach)(this.hot.selection.highlight.customSelections, customSelection => {
|
610
616
|
if (border.id === customSelection.settings.id) {
|
611
|
-
|
612
|
-
(0, _array.arrayEach)(borders, borderObject => {
|
617
|
+
(0, _object.objectEach)(customSelection.instanceBorders, borderObject => {
|
613
618
|
borderObject.toggleHiddenClass(place, remove); // TODO this also bad?
|
614
619
|
});
|
615
620
|
|
@@ -643,8 +648,7 @@ class CustomBorders extends _base.BasePlugin {
|
|
643
648
|
customSelection.visualCellRange = cellRange;
|
644
649
|
customSelection.commit();
|
645
650
|
if (place) {
|
646
|
-
|
647
|
-
(0, _array.arrayEach)(borders, borderObject => {
|
651
|
+
(0, _object.objectEach)(customSelection.instanceBorders, borderObject => {
|
648
652
|
borderObject.changeBorderStyle(place, border);
|
649
653
|
});
|
650
654
|
}
|
@@ -712,13 +716,6 @@ class CustomBorders extends _base.BasePlugin {
|
|
712
716
|
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_BORDERS);
|
713
717
|
},
|
714
718
|
disabled() {
|
715
|
-
const range = this.getSelectedRangeLast();
|
716
|
-
if (!range) {
|
717
|
-
return true;
|
718
|
-
}
|
719
|
-
if (range.isSingleHeader()) {
|
720
|
-
return true;
|
721
|
-
}
|
722
719
|
return this.selection.isSelectedByCorner();
|
723
720
|
},
|
724
721
|
submenu: {
|
@@ -4,7 +4,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
4
4
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
5
5
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
6
6
|
import { BasePlugin } from "../base/index.mjs";
|
7
|
-
import { hasOwnProperty, deepClone } from "../../helpers/object.mjs";
|
7
|
+
import { hasOwnProperty, objectEach, deepClone } from "../../helpers/object.mjs";
|
8
8
|
import { rangeEach } from "../../helpers/number.mjs";
|
9
9
|
import { arrayEach, arrayReduce, arrayMap } from "../../helpers/array.mjs";
|
10
10
|
import * as C from "../../i18n/constants.mjs";
|
@@ -160,11 +160,14 @@ export class CustomBorders extends BasePlugin {
|
|
160
160
|
const selectionType = detectSelectionType(selectionRanges);
|
161
161
|
const selectionSchemaNormalizer = normalizeSelectionFactory(selectionType);
|
162
162
|
arrayEach(selectionRanges, selection => {
|
163
|
-
selectionSchemaNormalizer(selection)
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
163
|
+
const [rowStart, columnStart, rowEnd, columnEnd] = selectionSchemaNormalizer(selection);
|
164
|
+
for (let row = rowStart; row <= rowEnd; row += 1) {
|
165
|
+
for (let col = columnStart; col <= columnEnd; col += 1) {
|
166
|
+
arrayEach(borderKeys, borderKey => {
|
167
|
+
this.prepareBorderFromCustomAdded(row, col, normBorder, toInlinePropName(borderKey));
|
168
|
+
});
|
169
|
+
}
|
170
|
+
}
|
168
171
|
});
|
169
172
|
|
170
173
|
/*
|
@@ -204,13 +207,16 @@ export class CustomBorders extends BasePlugin {
|
|
204
207
|
const selectionSchemaNormalizer = normalizeSelectionFactory(selectionType);
|
205
208
|
const selectedBorders = [];
|
206
209
|
arrayEach(selectionRanges, selection => {
|
207
|
-
selectionSchemaNormalizer(selection)
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
210
|
+
const [rowStart, columnStart, rowEnd, columnEnd] = selectionSchemaNormalizer(selection);
|
211
|
+
for (let row = rowStart; row <= rowEnd; row += 1) {
|
212
|
+
for (let col = columnStart; col <= columnEnd; col += 1) {
|
213
|
+
arrayEach(this.savedBorders, border => {
|
214
|
+
if (border.row === row && border.col === col) {
|
215
|
+
selectedBorders.push(denormalizeBorder(border));
|
216
|
+
}
|
217
|
+
});
|
218
|
+
}
|
219
|
+
}
|
214
220
|
});
|
215
221
|
return selectedBorders;
|
216
222
|
}
|
@@ -601,8 +607,7 @@ export class CustomBorders extends BasePlugin {
|
|
601
607
|
let check = false;
|
602
608
|
arrayEach(this.hot.selection.highlight.customSelections, customSelection => {
|
603
609
|
if (border.id === customSelection.settings.id) {
|
604
|
-
|
605
|
-
arrayEach(borders, borderObject => {
|
610
|
+
objectEach(customSelection.instanceBorders, borderObject => {
|
606
611
|
borderObject.toggleHiddenClass(place, remove); // TODO this also bad?
|
607
612
|
});
|
608
613
|
|
@@ -636,8 +641,7 @@ export class CustomBorders extends BasePlugin {
|
|
636
641
|
customSelection.visualCellRange = cellRange;
|
637
642
|
customSelection.commit();
|
638
643
|
if (place) {
|
639
|
-
|
640
|
-
arrayEach(borders, borderObject => {
|
644
|
+
objectEach(customSelection.instanceBorders, borderObject => {
|
641
645
|
borderObject.changeBorderStyle(place, border);
|
642
646
|
});
|
643
647
|
}
|
@@ -705,13 +709,6 @@ export class CustomBorders extends BasePlugin {
|
|
705
709
|
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_BORDERS);
|
706
710
|
},
|
707
711
|
disabled() {
|
708
|
-
const range = this.getSelectedRangeLast();
|
709
|
-
if (!range) {
|
710
|
-
return true;
|
711
|
-
}
|
712
|
-
if (range.isSingleHeader()) {
|
713
|
-
return true;
|
714
|
-
}
|
715
712
|
return this.selection.isSelectedByCorner();
|
716
713
|
},
|
717
714
|
submenu: {
|
@@ -18,7 +18,7 @@ export class DropdownMenu extends BasePlugin {
|
|
18
18
|
|
19
19
|
constructor(hotInstance: Core);
|
20
20
|
isEnabled(): boolean;
|
21
|
-
open(
|
21
|
+
open(event: Event): void;
|
22
22
|
close(): void;
|
23
23
|
executeCommand(commandName: string, ...params: any): void;
|
24
24
|
}
|