@rowsncolumns/spreadsheet 10.6.5 → 10.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/autocomplete.d.ts +42 -0
- package/dist/cjs/api/autocomplete.d.ts.map +1 -0
- package/dist/cjs/api/autocomplete.js +114 -0
- package/dist/cjs/api/banded-ranges.d.ts.map +1 -1
- package/dist/cjs/api/banded-ranges.js +51 -1
- package/dist/cjs/api/error-checking.d.ts +82 -0
- package/dist/cjs/api/error-checking.d.ts.map +1 -0
- package/dist/cjs/api/error-checking.js +207 -0
- package/dist/cjs/api/move-overwrite.d.ts +8 -2
- package/dist/cjs/api/move-overwrite.d.ts.map +1 -1
- package/dist/cjs/api/move-overwrite.js +19 -3
- package/dist/cjs/api/selections.d.ts +2 -2
- package/dist/cjs/api/validation.d.ts +39 -1
- package/dist/cjs/api/validation.d.ts.map +1 -1
- package/dist/cjs/api/validation.js +87 -1
- package/dist/cjs/atoms/cell-input-context.atom.d.ts +4 -1
- package/dist/cjs/atoms/cell-input-context.atom.d.ts.map +1 -1
- package/dist/cjs/atoms/enter-key-direction.atom.d.ts +11 -0
- package/dist/cjs/atoms/enter-key-direction.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/enter-key-direction.atom.js +13 -0
- package/dist/cjs/atoms/index.d.ts +1 -0
- package/dist/cjs/atoms/index.d.ts.map +1 -1
- package/dist/cjs/atoms/index.js +1 -0
- package/dist/cjs/atoms/paste-menu.atom.d.ts +22 -0
- package/dist/cjs/atoms/paste-menu.atom.d.ts.map +1 -1
- package/dist/cjs/atoms/paste-menu.atom.js +13 -1
- package/dist/cjs/atoms/pick-list.atom.d.ts +15 -0
- package/dist/cjs/atoms/pick-list.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/pick-list.atom.js +7 -0
- package/dist/cjs/components/canvas-grid/index.d.ts.map +1 -1
- package/dist/cjs/components/canvas-grid/index.js +305 -70
- package/dist/cjs/components/canvas-grid/typings.d.ts +96 -11
- package/dist/cjs/components/canvas-grid/typings.d.ts.map +1 -1
- package/dist/cjs/components/cell/index.d.ts.map +1 -1
- package/dist/cjs/components/cell/index.js +7 -8
- package/dist/cjs/components/cell/typings.d.ts +9 -0
- package/dist/cjs/components/cell/typings.d.ts.map +1 -1
- package/dist/cjs/components/cell-editor/helpers.d.ts +22 -2
- package/dist/cjs/components/cell-editor/helpers.d.ts.map +1 -1
- package/dist/cjs/components/cell-editor/helpers.js +32 -8
- package/dist/cjs/components/cell-editor/index.d.ts +7 -1
- package/dist/cjs/components/cell-editor/index.d.ts.map +1 -1
- package/dist/cjs/components/cell-editor/index.js +85 -13
- package/dist/cjs/components/cell-indicator/index.d.ts +41 -0
- package/dist/cjs/components/cell-indicator/index.d.ts.map +1 -0
- package/dist/cjs/components/cell-indicator/index.js +90 -0
- package/dist/cjs/components/cell-input/cell-input.d.ts +10 -2
- package/dist/cjs/components/cell-input/cell-input.d.ts.map +1 -1
- package/dist/cjs/components/cell-input/cell-input.js +5 -3
- package/dist/cjs/components/cell-input/formula-bar-cell-input.d.ts.map +1 -1
- package/dist/cjs/components/cell-input/formula-bar-cell-input.js +9 -2
- package/dist/cjs/components/cell-structured/sparkline-math.d.ts +27 -1
- package/dist/cjs/components/cell-structured/sparkline-math.d.ts.map +1 -1
- package/dist/cjs/components/cell-structured/sparkline-math.js +48 -1
- package/dist/cjs/components/cell-structured/sparkline.d.ts +1 -1
- package/dist/cjs/components/cell-structured/sparkline.d.ts.map +1 -1
- package/dist/cjs/components/cell-structured/sparkline.js +36 -92
- package/dist/cjs/components/cell-structured/types.d.ts +6 -0
- package/dist/cjs/components/cell-structured/types.d.ts.map +1 -1
- package/dist/cjs/components/data-table-dialog/index.d.ts +22 -0
- package/dist/cjs/components/data-table-dialog/index.d.ts.map +1 -0
- package/dist/cjs/components/data-table-dialog/index.js +93 -0
- package/dist/cjs/components/error-check-smart-tag/index.d.ts +27 -0
- package/dist/cjs/components/error-check-smart-tag/index.d.ts.map +1 -0
- package/dist/cjs/components/error-check-smart-tag/index.js +39 -0
- package/dist/cjs/components/forecast-sheet-dialog/index.d.ts +26 -0
- package/dist/cjs/components/forecast-sheet-dialog/index.d.ts.map +1 -0
- package/dist/cjs/components/forecast-sheet-dialog/index.js +92 -0
- package/dist/cjs/components/paste-special-dialog/index.d.ts +3 -3
- package/dist/cjs/components/paste-special-dialog/index.d.ts.map +1 -1
- package/dist/cjs/components/paste-special-dialog/index.js +61 -23
- package/dist/cjs/components/protect-sheet-dialog/allow-edit-ranges-dialog.d.ts +57 -0
- package/dist/cjs/components/protect-sheet-dialog/allow-edit-ranges-dialog.d.ts.map +1 -0
- package/dist/cjs/components/protect-sheet-dialog/allow-edit-ranges-dialog.js +196 -0
- package/dist/cjs/components/protect-sheet-dialog/constants.d.ts +3 -0
- package/dist/cjs/components/protect-sheet-dialog/constants.d.ts.map +1 -0
- package/dist/cjs/components/protect-sheet-dialog/constants.js +5 -0
- package/dist/cjs/components/protect-sheet-dialog/index.d.ts +2 -2
- package/dist/cjs/components/protect-sheet-dialog/index.d.ts.map +1 -1
- package/dist/cjs/components/protect-sheet-dialog/index.js +5 -3
- package/dist/cjs/components/scenario-manager-dialog/index.d.ts +51 -0
- package/dist/cjs/components/scenario-manager-dialog/index.d.ts.map +1 -0
- package/dist/cjs/components/scenario-manager-dialog/index.js +257 -0
- package/dist/cjs/components/selection/index.d.ts +1 -1
- package/dist/cjs/components/selection/index.d.ts.map +1 -1
- package/dist/cjs/components/selection/index.js +9 -4
- package/dist/cjs/components/selection/paste-menu.d.ts +14 -1
- package/dist/cjs/components/selection/paste-menu.d.ts.map +1 -1
- package/dist/cjs/components/selection/paste-menu.js +78 -6
- package/dist/cjs/components/selection/paste-options.d.ts +28 -0
- package/dist/cjs/components/selection/paste-options.d.ts.map +1 -0
- package/dist/cjs/components/selection/paste-options.js +70 -0
- package/dist/cjs/components/selection/types.d.ts +12 -1
- package/dist/cjs/components/selection/types.d.ts.map +1 -1
- package/dist/cjs/components/selection-drop-menu/index.d.ts +18 -0
- package/dist/cjs/components/selection-drop-menu/index.d.ts.map +1 -0
- package/dist/cjs/components/selection-drop-menu/index.js +62 -0
- package/dist/cjs/components/solver-dialog/index.d.ts +57 -0
- package/dist/cjs/components/solver-dialog/index.d.ts.map +1 -0
- package/dist/cjs/components/solver-dialog/index.js +204 -0
- package/dist/cjs/components/toolbar/sparkline-actions.d.ts +3 -2
- package/dist/cjs/components/toolbar/sparkline-actions.d.ts.map +1 -1
- package/dist/cjs/components/toolbar/sparkline-actions.js +6 -2
- package/dist/cjs/components/toolbar/table-style-selector.d.ts.map +1 -1
- package/dist/cjs/components/toolbar/table-style-selector.js +33 -2
- package/dist/cjs/config.d.ts +5 -4
- package/dist/cjs/config.d.ts.map +1 -1
- package/dist/cjs/config.js +13 -9
- package/dist/cjs/hooks/use-cell-renderer.d.ts +12 -1
- package/dist/cjs/hooks/use-cell-renderer.d.ts.map +1 -1
- package/dist/cjs/hooks/use-cell-renderer.js +6 -3
- package/dist/cjs/hooks/use-copy-paste-cut.d.ts +36 -2
- package/dist/cjs/hooks/use-copy-paste-cut.d.ts.map +1 -1
- package/dist/cjs/hooks/use-copy-paste-cut.js +131 -5
- package/dist/cjs/hooks/use-editable.d.ts +6 -0
- package/dist/cjs/hooks/use-editable.d.ts.map +1 -1
- package/dist/cjs/hooks/use-editor-submit.d.ts +45 -3
- package/dist/cjs/hooks/use-editor-submit.d.ts.map +1 -1
- package/dist/cjs/hooks/use-editor-submit.js +91 -7
- package/dist/cjs/hooks/use-keyboard-handler.d.ts +5 -1
- package/dist/cjs/hooks/use-keyboard-handler.d.ts.map +1 -1
- package/dist/cjs/hooks/use-keyboard-handler.js +10 -1
- package/dist/cjs/hooks/use-selection-drag-copy.d.ts +55 -0
- package/dist/cjs/hooks/use-selection-drag-copy.d.ts.map +1 -0
- package/dist/cjs/hooks/use-selection-drag-copy.js +274 -0
- package/dist/cjs/hooks/use-selection-renderer.d.ts +8 -1
- package/dist/cjs/hooks/use-selection-renderer.d.ts.map +1 -1
- package/dist/cjs/hooks/use-selection-renderer.js +7 -2
- package/dist/cjs/hooks/use-selection.d.ts +59 -1
- package/dist/cjs/hooks/use-selection.d.ts.map +1 -1
- package/dist/cjs/hooks/use-selection.js +270 -61
- package/dist/cjs/index.d.ts +6 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +5 -0
- package/dist/cjs/release-date.js +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/cjs/types.d.ts +50 -1
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/api/autocomplete.d.ts +42 -0
- package/dist/esm/api/autocomplete.d.ts.map +1 -0
- package/dist/esm/api/autocomplete.js +91 -0
- package/dist/esm/api/banded-ranges.d.ts.map +1 -1
- package/dist/esm/api/banded-ranges.js +52 -2
- package/dist/esm/api/error-checking.d.ts +82 -0
- package/dist/esm/api/error-checking.d.ts.map +1 -0
- package/dist/esm/api/error-checking.js +156 -0
- package/dist/esm/api/move-overwrite.d.ts +8 -2
- package/dist/esm/api/move-overwrite.d.ts.map +1 -1
- package/dist/esm/api/move-overwrite.js +17 -2
- package/dist/esm/api/selections.d.ts +2 -2
- package/dist/esm/api/validation.d.ts +39 -1
- package/dist/esm/api/validation.d.ts.map +1 -1
- package/dist/esm/api/validation.js +70 -0
- package/dist/esm/atoms/cell-input-context.atom.d.ts +4 -1
- package/dist/esm/atoms/cell-input-context.atom.d.ts.map +1 -1
- package/dist/esm/atoms/enter-key-direction.atom.d.ts +11 -0
- package/dist/esm/atoms/enter-key-direction.atom.d.ts.map +1 -0
- package/dist/esm/atoms/enter-key-direction.atom.js +8 -0
- package/dist/esm/atoms/index.d.ts +1 -0
- package/dist/esm/atoms/index.d.ts.map +1 -1
- package/dist/esm/atoms/index.js +1 -0
- package/dist/esm/atoms/paste-menu.atom.d.ts +22 -0
- package/dist/esm/atoms/paste-menu.atom.d.ts.map +1 -1
- package/dist/esm/atoms/paste-menu.atom.js +10 -1
- package/dist/esm/atoms/pick-list.atom.d.ts +15 -0
- package/dist/esm/atoms/pick-list.atom.d.ts.map +1 -0
- package/dist/esm/atoms/pick-list.atom.js +3 -0
- package/dist/esm/components/canvas-grid/index.d.ts.map +1 -1
- package/dist/esm/components/canvas-grid/index.js +239 -13
- package/dist/esm/components/canvas-grid/typings.d.ts +96 -11
- package/dist/esm/components/canvas-grid/typings.d.ts.map +1 -1
- package/dist/esm/components/cell/index.d.ts.map +1 -1
- package/dist/esm/components/cell/index.js +8 -9
- package/dist/esm/components/cell/typings.d.ts +9 -0
- package/dist/esm/components/cell/typings.d.ts.map +1 -1
- package/dist/esm/components/cell-editor/helpers.d.ts +22 -2
- package/dist/esm/components/cell-editor/helpers.d.ts.map +1 -1
- package/dist/esm/components/cell-editor/helpers.js +25 -7
- package/dist/esm/components/cell-editor/index.d.ts +7 -1
- package/dist/esm/components/cell-editor/index.d.ts.map +1 -1
- package/dist/esm/components/cell-editor/index.js +80 -9
- package/dist/esm/components/cell-indicator/index.d.ts +41 -0
- package/dist/esm/components/cell-indicator/index.d.ts.map +1 -0
- package/dist/esm/components/cell-indicator/index.js +76 -0
- package/dist/esm/components/cell-input/cell-input.d.ts +10 -2
- package/dist/esm/components/cell-input/cell-input.d.ts.map +1 -1
- package/dist/esm/components/cell-input/cell-input.js +5 -3
- package/dist/esm/components/cell-input/formula-bar-cell-input.d.ts.map +1 -1
- package/dist/esm/components/cell-input/formula-bar-cell-input.js +9 -2
- package/dist/esm/components/cell-structured/sparkline-math.d.ts +27 -1
- package/dist/esm/components/cell-structured/sparkline-math.d.ts.map +1 -1
- package/dist/esm/components/cell-structured/sparkline-math.js +35 -0
- package/dist/esm/components/cell-structured/sparkline.d.ts +1 -1
- package/dist/esm/components/cell-structured/sparkline.d.ts.map +1 -1
- package/dist/esm/components/cell-structured/sparkline.js +34 -88
- package/dist/esm/components/cell-structured/types.d.ts +6 -0
- package/dist/esm/components/cell-structured/types.d.ts.map +1 -1
- package/dist/esm/components/data-table-dialog/index.d.ts +22 -0
- package/dist/esm/components/data-table-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/data-table-dialog/index.js +75 -0
- package/dist/esm/components/error-check-smart-tag/index.d.ts +27 -0
- package/dist/esm/components/error-check-smart-tag/index.d.ts.map +1 -0
- package/dist/esm/components/error-check-smart-tag/index.js +33 -0
- package/dist/esm/components/forecast-sheet-dialog/index.d.ts +26 -0
- package/dist/esm/components/forecast-sheet-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/forecast-sheet-dialog/index.js +83 -0
- package/dist/esm/components/paste-special-dialog/index.d.ts +3 -3
- package/dist/esm/components/paste-special-dialog/index.d.ts.map +1 -1
- package/dist/esm/components/paste-special-dialog/index.js +58 -23
- package/dist/esm/components/protect-sheet-dialog/allow-edit-ranges-dialog.d.ts +57 -0
- package/dist/esm/components/protect-sheet-dialog/allow-edit-ranges-dialog.d.ts.map +1 -0
- package/dist/esm/components/protect-sheet-dialog/allow-edit-ranges-dialog.js +177 -0
- package/dist/esm/components/protect-sheet-dialog/constants.d.ts +3 -0
- package/dist/esm/components/protect-sheet-dialog/constants.d.ts.map +1 -0
- package/dist/esm/components/protect-sheet-dialog/constants.js +2 -0
- package/dist/esm/components/protect-sheet-dialog/index.d.ts +2 -2
- package/dist/esm/components/protect-sheet-dialog/index.d.ts.map +1 -1
- package/dist/esm/components/protect-sheet-dialog/index.js +3 -2
- package/dist/esm/components/scenario-manager-dialog/index.d.ts +51 -0
- package/dist/esm/components/scenario-manager-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/scenario-manager-dialog/index.js +213 -0
- package/dist/esm/components/selection/index.d.ts +1 -1
- package/dist/esm/components/selection/index.d.ts.map +1 -1
- package/dist/esm/components/selection/index.js +9 -4
- package/dist/esm/components/selection/paste-menu.d.ts +14 -1
- package/dist/esm/components/selection/paste-menu.d.ts.map +1 -1
- package/dist/esm/components/selection/paste-menu.js +76 -8
- package/dist/esm/components/selection/paste-options.d.ts +28 -0
- package/dist/esm/components/selection/paste-options.d.ts.map +1 -0
- package/dist/esm/components/selection/paste-options.js +62 -0
- package/dist/esm/components/selection/types.d.ts +12 -1
- package/dist/esm/components/selection/types.d.ts.map +1 -1
- package/dist/esm/components/selection-drop-menu/index.d.ts +18 -0
- package/dist/esm/components/selection-drop-menu/index.d.ts.map +1 -0
- package/dist/esm/components/selection-drop-menu/index.js +56 -0
- package/dist/esm/components/solver-dialog/index.d.ts +57 -0
- package/dist/esm/components/solver-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/solver-dialog/index.js +176 -0
- package/dist/esm/components/toolbar/sparkline-actions.d.ts +3 -2
- package/dist/esm/components/toolbar/sparkline-actions.d.ts.map +1 -1
- package/dist/esm/components/toolbar/sparkline-actions.js +6 -2
- package/dist/esm/components/toolbar/table-style-selector.d.ts.map +1 -1
- package/dist/esm/components/toolbar/table-style-selector.js +29 -3
- package/dist/esm/config.d.ts +5 -4
- package/dist/esm/config.d.ts.map +1 -1
- package/dist/esm/config.js +12 -8
- package/dist/esm/hooks/use-cell-renderer.d.ts +12 -1
- package/dist/esm/hooks/use-cell-renderer.d.ts.map +1 -1
- package/dist/esm/hooks/use-cell-renderer.js +5 -2
- package/dist/esm/hooks/use-copy-paste-cut.d.ts +36 -2
- package/dist/esm/hooks/use-copy-paste-cut.d.ts.map +1 -1
- package/dist/esm/hooks/use-copy-paste-cut.js +117 -6
- package/dist/esm/hooks/use-editable.d.ts +6 -0
- package/dist/esm/hooks/use-editable.d.ts.map +1 -1
- package/dist/esm/hooks/use-editor-submit.d.ts +45 -3
- package/dist/esm/hooks/use-editor-submit.d.ts.map +1 -1
- package/dist/esm/hooks/use-editor-submit.js +81 -6
- package/dist/esm/hooks/use-keyboard-handler.d.ts +5 -1
- package/dist/esm/hooks/use-keyboard-handler.d.ts.map +1 -1
- package/dist/esm/hooks/use-keyboard-handler.js +10 -1
- package/dist/esm/hooks/use-selection-drag-copy.d.ts +55 -0
- package/dist/esm/hooks/use-selection-drag-copy.d.ts.map +1 -0
- package/dist/esm/hooks/use-selection-drag-copy.js +245 -0
- package/dist/esm/hooks/use-selection-renderer.d.ts +8 -1
- package/dist/esm/hooks/use-selection-renderer.d.ts.map +1 -1
- package/dist/esm/hooks/use-selection-renderer.js +7 -2
- package/dist/esm/hooks/use-selection.d.ts +59 -1
- package/dist/esm/hooks/use-selection.d.ts.map +1 -1
- package/dist/esm/hooks/use-selection.js +245 -52
- package/dist/esm/index.d.ts +6 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +5 -0
- package/dist/esm/release-date.js +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esm/types.d.ts +50 -1
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/spreadsheet.min.css +1 -1
- package/package.json +6 -5
- package/dist/cjs/components/cell-error/index.d.ts +0 -14
- package/dist/cjs/components/cell-error/index.d.ts.map +0 -1
- package/dist/cjs/components/cell-error/index.js +0 -24
- package/dist/esm/components/cell-error/index.d.ts +0 -14
- package/dist/esm/components/cell-error/index.d.ts.map +0 -1
- package/dist/esm/components/cell-error/index.js +0 -18
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useSelection = void 0;
|
|
3
|
+
exports.useSelection = exports.isSelectionCopyModifier = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var grid_1 = require("@rowsncolumns/grid");
|
|
6
6
|
var grid_2 = require("@rowsncolumns/grid");
|
|
@@ -10,9 +10,17 @@ var react_1 = require("react");
|
|
|
10
10
|
var scheduler_1 = require("../api/scheduler");
|
|
11
11
|
var move_overwrite_1 = require("../api/move-overwrite");
|
|
12
12
|
var table_1 = require("../api/table");
|
|
13
|
+
var helpers_1 = require("../components/cell-editor/helpers");
|
|
13
14
|
var config_1 = require("../config");
|
|
14
|
-
var
|
|
15
|
+
var helpers_2 = require("../helpers");
|
|
16
|
+
var platform_1 = require("../platform");
|
|
15
17
|
var use_callback_ref_1 = require("./use-callback-ref");
|
|
18
|
+
/**
|
|
19
|
+
* The copy modifier of a selection-border drag, read at release like Excel: Ctrl on
|
|
20
|
+
* Windows / Linux, Option (⌥) on macOS (Excel for Mac; ⌃-click is the Mac context menu).
|
|
21
|
+
*/
|
|
22
|
+
var isSelectionCopyModifier = function (e) { return ((0, platform_1.isMacPlatform)() ? e.altKey : e.ctrlKey); };
|
|
23
|
+
exports.isSelectionCopyModifier = isSelectionCopyModifier;
|
|
16
24
|
/** Ctrl on every platform; Cmd is accepted as an alias on macOS (Excel for Mac uses Ctrl). */
|
|
17
25
|
var isFillToggleModifier = function (e) {
|
|
18
26
|
return e.ctrlKey || e.metaKey;
|
|
@@ -20,6 +28,8 @@ var isFillToggleModifier = function (e) {
|
|
|
20
28
|
var fillGestureOptions = function (e) {
|
|
21
29
|
return e.ctrlKey || e.metaKey ? { modifier: "toggle" } : undefined;
|
|
22
30
|
};
|
|
31
|
+
/** How far an arrow key looks past unselectable cells for the next selectable one. */
|
|
32
|
+
var SELECTABLE_SEARCH_LIMIT = 10000;
|
|
23
33
|
var defaultIsHidden = function () { return false; };
|
|
24
34
|
var defaultSelectionSpan = function () { return true; };
|
|
25
35
|
var getPossibleActiveCellFromSelections = function (selections) {
|
|
@@ -99,9 +109,58 @@ var defaultConfirmMoveOverwrite = function (message) {
|
|
|
99
109
|
: window.confirm(message);
|
|
100
110
|
};
|
|
101
111
|
var useSelection = function (_a) {
|
|
102
|
-
var sheetId = _a.sheetId, activeCell = _a.activeCell,
|
|
103
|
-
|
|
104
|
-
|
|
112
|
+
var sheetId = _a.sheetId, activeCell = _a.activeCell, onChangeActiveCellProp = _a.onChangeActiveCell, selections = _a.selections, onChangeSelectionsProp = _a.onChangeSelections, _b = _a.columnCount, columnCount = _b === void 0 ? 0 : _b, _c = _a.rowCount, rowCount = _c === void 0 ? 0 : _c, _d = _a.selectionPolicy, selectionPolicy = _d === void 0 ? "multiple" : _d, _e = _a.newSelectionMode, newSelectionMode = _e === void 0 ? "clear" : _e, _f = _a.allowDeselectSelection, allowDeselectSelection = _f === void 0 ? true : _f, onFill = _a.onFill, onFillHandleRelease = _a.onFillHandleRelease, onFillShrink = _a.onFillShrink, onInsertCutCells = _a.onInsertCutCells, onCopySelection = _a.onCopySelection, onInsertCopiedCells = _a.onInsertCopiedCells, onSelectionDragMenu = _a.onSelectionDragMenu, _g = _a.confirmMoveOverwrite, confirmMoveOverwrite = _g === void 0 ? defaultConfirmMoveOverwrite : _g, _h = _a.isHiddenRow, isHiddenRow = _h === void 0 ? defaultIsHidden : _h, _j = _a.isHiddenColumn, isHiddenColumn = _j === void 0 ? defaultIsHidden : _j, _k = _a.alwaysScrollToActiveCell, alwaysScrollToActiveCell = _k === void 0 ? true : _k, _l = _a.selectionTopBound, selectionTopBound = _l === void 0 ? 0 : _l, _m = _a.selectionBottomBound, selectionBottomBound = _m === void 0 ? rowCount : _m, _o = _a.selectionLeftBound, selectionLeftBound = _o === void 0 ? 0 : _o, _p = _a.selectionRightBound, selectionRightBound = _p === void 0 ? columnCount : _p, mouseDownInterceptor = _a.mouseDownInterceptor, mouseMoveInterceptor = _a.mouseMoveInterceptor, _q = _a.mergedCells, mergedCells = _q === void 0 ? config_1.DEFAULT_ARRAY : _q, _r = _a.canSelectionSpanMergedCells, canSelectionSpanMergedCells = _r === void 0 ? defaultSelectionSpan : _r, getValue = _a.getValue, onMoveSelection = _a.onMoveSelection, getCellCoordsFromOffset = _a.getCellCoordsFromOffset, getCellBounds = _a.getCellBounds, getViewPort = _a.getViewPort, focus = _a.focus, scrollToCell = _a.scrollToCell, isMergedCell = _a.isMergedCell, enableSelectOnEnterKey = _a.enableSelectOnEnterKey, _s = _a.enterKeyDirection, enterKeyDirection = _s === void 0 ? "down" : _s, formulaMode = _a.formulaMode, isTouchDevice = _a.isTouchDevice, getDataRowCount = _a.getDataRowCount, getDataRegion = _a.getDataRegion, isRowHeader = _a.isRowHeader, isColumnHeader = _a.isColumnHeader, _t = _a.enableDataBoundaryNavigation, enableDataBoundaryNavigation = _t === void 0 ? false : _t, tables = _a.tables, onInsertTableRow = _a.onInsertTableRow, isRangeSelectableProp = _a.isRangeSelectable;
|
|
113
|
+
/**
|
|
114
|
+
* Selectability gate (Excel's Select locked / unlocked cells). Every
|
|
115
|
+
* gesture checks it before it moves anything, and the two emitters below
|
|
116
|
+
* refuse an active cell or a selection that covers an unselectable range —
|
|
117
|
+
* the backstop for row / column / select-all paths that emit directly.
|
|
118
|
+
*/
|
|
119
|
+
var isRangeSelectableRef = (0, react_1.useRef)(isRangeSelectableProp);
|
|
120
|
+
isRangeSelectableRef.current = isRangeSelectableProp;
|
|
121
|
+
var isSelectable = (0, react_1.useCallback)(function (range) {
|
|
122
|
+
var predicate = isRangeSelectableRef.current;
|
|
123
|
+
return !predicate || !range || predicate(range);
|
|
124
|
+
}, []);
|
|
125
|
+
var isCellSelectable = (0, react_1.useCallback)(function (cell) {
|
|
126
|
+
return !cell ||
|
|
127
|
+
isSelectable({
|
|
128
|
+
startRowIndex: cell.rowIndex,
|
|
129
|
+
endRowIndex: cell.rowIndex,
|
|
130
|
+
startColumnIndex: cell.columnIndex,
|
|
131
|
+
endColumnIndex: cell.columnIndex,
|
|
132
|
+
});
|
|
133
|
+
}, [isSelectable]);
|
|
134
|
+
var onChangeActiveCell = (0, react_1.useMemo)(function () {
|
|
135
|
+
return onChangeActiveCellProp
|
|
136
|
+
? function () {
|
|
137
|
+
var args = [];
|
|
138
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
139
|
+
args[_i] = arguments[_i];
|
|
140
|
+
}
|
|
141
|
+
if (!isCellSelectable(args[1]))
|
|
142
|
+
return;
|
|
143
|
+
onChangeActiveCellProp.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(args), false));
|
|
144
|
+
}
|
|
145
|
+
: undefined;
|
|
146
|
+
}, [onChangeActiveCellProp, isCellSelectable]);
|
|
147
|
+
var onChangeSelections = (0, react_1.useMemo)(function () {
|
|
148
|
+
return onChangeSelectionsProp
|
|
149
|
+
? function () {
|
|
150
|
+
var _a;
|
|
151
|
+
var args = [];
|
|
152
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
153
|
+
args[_i] = arguments[_i];
|
|
154
|
+
}
|
|
155
|
+
if ((_a = args[0]) === null || _a === void 0 ? void 0 : _a.some(function (selection) { return !isSelectable(selection.range); })) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
onChangeSelectionsProp.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(args), false));
|
|
159
|
+
}
|
|
160
|
+
: undefined;
|
|
161
|
+
}, [onChangeSelectionsProp, isSelectable]);
|
|
162
|
+
var _u = tslib_1.__read((0, react_1.useState)(), 2), fillSelection = _u[0], setFillSelection = _u[1];
|
|
163
|
+
var _v = tslib_1.__read((0, react_1.useState)(), 2), fillShrink = _v[0], setFillShrink = _v[1];
|
|
105
164
|
var fillShrinkRef = (0, react_1.useRef)(undefined);
|
|
106
165
|
// Ctrl/Cmd state of the fill-handle drag, sampled on every mousemove (mouseup carries the
|
|
107
166
|
// modifier too, but a key released mid-drag should still count — Excel reads it at drop time,
|
|
@@ -137,11 +196,11 @@ var useSelection = function (_a) {
|
|
|
137
196
|
contextMenuSuppressorRef.current = null;
|
|
138
197
|
suppressor.ownerDocument.removeEventListener("contextmenu", suppressor.handler, true);
|
|
139
198
|
}, []);
|
|
140
|
-
var suppressNextContextMenu = (0, react_1.useCallback)(function () {
|
|
199
|
+
var suppressNextContextMenu = (0, react_1.useCallback)(function (target) {
|
|
141
200
|
var _a;
|
|
142
201
|
if (contextMenuSuppressorRef.current)
|
|
143
202
|
return;
|
|
144
|
-
var ownerDocument = (_a = fillDocumentRef.current) !== null && _a !== void 0 ? _a : document;
|
|
203
|
+
var ownerDocument = (_a = target !== null && target !== void 0 ? target : fillDocumentRef.current) !== null && _a !== void 0 ? _a : document;
|
|
145
204
|
var handler = function (e) {
|
|
146
205
|
e.preventDefault();
|
|
147
206
|
e.stopPropagation();
|
|
@@ -155,13 +214,19 @@ var useSelection = function (_a) {
|
|
|
155
214
|
var onChangeSelectionsRef = (0, use_callback_ref_1.useCallbackRef)(onChangeSelections);
|
|
156
215
|
/* Drag drop selection */
|
|
157
216
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
158
|
-
var
|
|
217
|
+
var _w = tslib_1.__read((0, react_1.useReducer)(function (s) { return s + 1; }, 0), 2), _ = _w[0], forceRender = _w[1];
|
|
159
218
|
var isDragging = (0, react_1.useRef)(false);
|
|
160
219
|
var hasUserMovedSelection = (0, react_1.useRef)(false);
|
|
161
220
|
var initialDraggedSelection = (0, react_1.useRef)(undefined);
|
|
162
221
|
var initialDraggedCell = (0, react_1.useRef)(undefined);
|
|
163
222
|
var draggedSelection = (0, react_1.useRef)(undefined);
|
|
164
223
|
var draggedSelectionIndex = (0, react_1.useRef)(undefined);
|
|
224
|
+
/** Mouse button that grabbed the selection border (right = Excel's drop menu on release). */
|
|
225
|
+
var dragButtonRef = (0, react_1.useRef)("left");
|
|
226
|
+
/** Border element the gesture started on: a right-click that never moved re-opens the context menu there. */
|
|
227
|
+
var dragTargetRef = (0, react_1.useRef)(null);
|
|
228
|
+
/** Copy modifier held during the drag (Ctrl / ⌥) — drives the copy cursor; the drop re-reads it. */
|
|
229
|
+
var _x = tslib_1.__read((0, react_1.useState)(false), 2), isDragCopy = _x[0], setIsDragCopy = _x[1];
|
|
165
230
|
/**
|
|
166
231
|
* Need to store in ref because on mousemove and mouseup event that are
|
|
167
232
|
* registered in document
|
|
@@ -272,6 +337,9 @@ var useSelection = function (_a) {
|
|
|
272
337
|
) {
|
|
273
338
|
return;
|
|
274
339
|
}
|
|
340
|
+
if (!isSelectable(selectionFromStartEnd(selectionStart.current, coords))) {
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
275
343
|
selectionEnd.current = coords;
|
|
276
344
|
// If user is navigation to the same cell
|
|
277
345
|
// lets clear all selections
|
|
@@ -311,6 +379,7 @@ var useSelection = function (_a) {
|
|
|
311
379
|
selectionPolicy,
|
|
312
380
|
formulaMode,
|
|
313
381
|
clearSelections,
|
|
382
|
+
isSelectable,
|
|
314
383
|
]);
|
|
315
384
|
/* Adds a new selection, CMD key */
|
|
316
385
|
var appendSelection = (0, react_1.useCallback)(function (start, end) {
|
|
@@ -320,12 +389,12 @@ var useSelection = function (_a) {
|
|
|
320
389
|
isCellOutOfBounds(start)) {
|
|
321
390
|
return;
|
|
322
391
|
}
|
|
323
|
-
selectionStart.current = start;
|
|
324
|
-
selectionEnd.current = end;
|
|
325
392
|
var range = selectionFromStartEnd(start, end);
|
|
326
|
-
if (!range) {
|
|
393
|
+
if (!range || !isSelectable(range)) {
|
|
327
394
|
return;
|
|
328
395
|
}
|
|
396
|
+
selectionStart.current = start;
|
|
397
|
+
selectionEnd.current = end;
|
|
329
398
|
emitActiveCell(sheetId, {
|
|
330
399
|
rowIndex: range.startRowIndex,
|
|
331
400
|
columnIndex: range.startColumnIndex,
|
|
@@ -340,6 +409,7 @@ var useSelection = function (_a) {
|
|
|
340
409
|
selectionFromStartEnd,
|
|
341
410
|
isCellOutOfBounds,
|
|
342
411
|
selectionPolicy,
|
|
412
|
+
isSelectable,
|
|
343
413
|
]);
|
|
344
414
|
var removeSelectionByIndex = (0, react_1.useCallback)(function (index) {
|
|
345
415
|
var newSelection = selections.filter(function (_, idx) { return idx !== index; });
|
|
@@ -353,11 +423,11 @@ var useSelection = function (_a) {
|
|
|
353
423
|
if (isCellOutOfBounds(start)) {
|
|
354
424
|
return;
|
|
355
425
|
}
|
|
356
|
-
selectionStart.current = start;
|
|
357
|
-
selectionEnd.current = end;
|
|
358
426
|
var bounds = selectionFromStartEnd(start, end);
|
|
359
|
-
if (!bounds)
|
|
427
|
+
if (!bounds || !isSelectable(bounds))
|
|
360
428
|
return;
|
|
429
|
+
selectionStart.current = start;
|
|
430
|
+
selectionEnd.current = end;
|
|
361
431
|
var coords = {
|
|
362
432
|
rowIndex: bounds.startRowIndex,
|
|
363
433
|
columnIndex: bounds.startColumnIndex,
|
|
@@ -382,6 +452,7 @@ var useSelection = function (_a) {
|
|
|
382
452
|
emitActiveCell,
|
|
383
453
|
selectionFromStartEnd,
|
|
384
454
|
isCellOutOfBounds,
|
|
455
|
+
isSelectable,
|
|
385
456
|
]);
|
|
386
457
|
/**
|
|
387
458
|
* Mousemove handler
|
|
@@ -561,6 +632,44 @@ var useSelection = function (_a) {
|
|
|
561
632
|
rowIndex: rowIndex,
|
|
562
633
|
columnIndex: columnIndex,
|
|
563
634
|
});
|
|
635
|
+
// Protection makes the target unselectable: Shift+Arrow does not extend
|
|
636
|
+
// onto it, and a plain move keeps going the same way until it reaches a
|
|
637
|
+
// selectable cell — or stays put when there is none (Excel).
|
|
638
|
+
if (!isCellSelectable({ rowIndex: rowIndex, columnIndex: columnIndex })) {
|
|
639
|
+
if (modify)
|
|
640
|
+
return;
|
|
641
|
+
var vertical = direction === grid_4.Direction.Up || direction === grid_4.Direction.Down;
|
|
642
|
+
var step = direction === grid_4.Direction.Up || direction === grid_4.Direction.Left ? -1 : 1;
|
|
643
|
+
var lower = vertical ? selectionTopBound : selectionLeftBound;
|
|
644
|
+
var upper = vertical ? selectionBottomBound : selectionRightBound;
|
|
645
|
+
var isHidden = vertical ? isHiddenRow : isHiddenColumn;
|
|
646
|
+
var index = vertical ? rowIndex : columnIndex;
|
|
647
|
+
var found = false;
|
|
648
|
+
for (var tries = 0; tries < SELECTABLE_SEARCH_LIMIT; tries++) {
|
|
649
|
+
var edge = step > 0 ? newBounds.endRowIndex : newBounds.startRowIndex;
|
|
650
|
+
var edgeColumn = step > 0 ? newBounds.endColumnIndex : newBounds.startColumnIndex;
|
|
651
|
+
index = (vertical ? edge : edgeColumn) + step;
|
|
652
|
+
while (index >= lower && index <= upper && isHidden(index)) {
|
|
653
|
+
index += step;
|
|
654
|
+
}
|
|
655
|
+
if (index < lower || index > upper)
|
|
656
|
+
break;
|
|
657
|
+
if (vertical)
|
|
658
|
+
rowIndex = index;
|
|
659
|
+
else
|
|
660
|
+
columnIndex = index;
|
|
661
|
+
newBounds = getCellBounds({ rowIndex: rowIndex, columnIndex: columnIndex });
|
|
662
|
+
if (isCellSelectable({
|
|
663
|
+
rowIndex: newBounds.startRowIndex,
|
|
664
|
+
columnIndex: newBounds.startColumnIndex,
|
|
665
|
+
})) {
|
|
666
|
+
found = true;
|
|
667
|
+
break;
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
if (!found)
|
|
671
|
+
return;
|
|
672
|
+
}
|
|
564
673
|
var coords = {
|
|
565
674
|
rowIndex: newBounds.startRowIndex,
|
|
566
675
|
columnIndex: newBounds.startColumnIndex,
|
|
@@ -595,6 +704,7 @@ var useSelection = function (_a) {
|
|
|
595
704
|
modifySelection,
|
|
596
705
|
newSelection,
|
|
597
706
|
selectionBottomBound,
|
|
707
|
+
isCellSelectable,
|
|
598
708
|
selectionRightBound,
|
|
599
709
|
isMergedCell,
|
|
600
710
|
getDataRowCount,
|
|
@@ -1010,9 +1120,16 @@ var useSelection = function (_a) {
|
|
|
1010
1120
|
var coords = getCellCoordsFromOffset(e.clientX, e.clientY, true);
|
|
1011
1121
|
if (!coords)
|
|
1012
1122
|
return;
|
|
1123
|
+
// A press on a cell the protection makes unselectable does nothing, and
|
|
1124
|
+
// starts no drag that could extend the old selection onto it.
|
|
1125
|
+
if (!isCellSelectable(coords) &&
|
|
1126
|
+
!isRowHeader(coords.columnIndex) &&
|
|
1127
|
+
!isColumnHeader(coords.rowIndex)) {
|
|
1128
|
+
return;
|
|
1129
|
+
}
|
|
1013
1130
|
/* Check if its context menu click */
|
|
1014
1131
|
var isContextMenuClick = e.button === grid_4.MouseButtonCodes.right ||
|
|
1015
|
-
(e.button == grid_4.MouseButtonCodes.left && e.ctrlKey &&
|
|
1132
|
+
(e.button == grid_4.MouseButtonCodes.left && e.ctrlKey && helpers_2.isMac);
|
|
1016
1133
|
if (isContextMenuClick &&
|
|
1017
1134
|
!isRowHeader(coords.columnIndex) &&
|
|
1018
1135
|
!isColumnHeader(coords.rowIndex)) {
|
|
@@ -1144,6 +1261,7 @@ var useSelection = function (_a) {
|
|
|
1144
1261
|
scrollToCell,
|
|
1145
1262
|
selectAll,
|
|
1146
1263
|
formulaMode,
|
|
1264
|
+
isCellSelectable,
|
|
1147
1265
|
]);
|
|
1148
1266
|
// Keydown handler
|
|
1149
1267
|
var handleKeyDown = (0, react_1.useCallback)(function (e) {
|
|
@@ -1215,11 +1333,14 @@ var useSelection = function (_a) {
|
|
|
1215
1333
|
}
|
|
1216
1334
|
break;
|
|
1217
1335
|
// Add support for cycling multiple selections
|
|
1218
|
-
case "Enter":
|
|
1336
|
+
case "Enter": {
|
|
1337
|
+
var direction = (0, helpers_1.getEnterKeyDirection)(isShiftKey, enterKeyDirection);
|
|
1338
|
+
if (!direction) {
|
|
1339
|
+
break;
|
|
1340
|
+
}
|
|
1219
1341
|
if (selections.length && activeCell) {
|
|
1220
1342
|
var range = selections[selections.length - 1].range;
|
|
1221
1343
|
var activeCellBounds = getCellBounds(activeCell);
|
|
1222
|
-
var direction = isShiftKey ? grid_4.Direction.Up : grid_4.Direction.Down;
|
|
1223
1344
|
var nextCell = (0, grid_4.findNextCellWithinBounds)(activeCellBounds, range, direction);
|
|
1224
1345
|
if (nextCell) {
|
|
1225
1346
|
emitActiveCell(sheetId, nextCell);
|
|
@@ -1227,14 +1348,10 @@ var useSelection = function (_a) {
|
|
|
1227
1348
|
}
|
|
1228
1349
|
}
|
|
1229
1350
|
else if (enableSelectOnEnterKey) {
|
|
1230
|
-
|
|
1231
|
-
keyNavigate(grid_4.Direction.Up);
|
|
1232
|
-
}
|
|
1233
|
-
else {
|
|
1234
|
-
keyNavigate(grid_4.Direction.Down);
|
|
1235
|
-
}
|
|
1351
|
+
keyNavigate(direction);
|
|
1236
1352
|
}
|
|
1237
1353
|
break;
|
|
1354
|
+
}
|
|
1238
1355
|
case "Tab":
|
|
1239
1356
|
/* Cycle through the selections if selections.length > 0 */
|
|
1240
1357
|
if (selections.length && activeCell) {
|
|
@@ -1310,6 +1427,7 @@ var useSelection = function (_a) {
|
|
|
1310
1427
|
selectFirstCellInSheet,
|
|
1311
1428
|
selectLastCellInSheet,
|
|
1312
1429
|
enableSelectOnEnterKey,
|
|
1430
|
+
enterKeyDirection,
|
|
1313
1431
|
newSelection,
|
|
1314
1432
|
isHiddenRow,
|
|
1315
1433
|
isHiddenColumn,
|
|
@@ -1533,6 +1651,7 @@ var useSelection = function (_a) {
|
|
|
1533
1651
|
*/
|
|
1534
1652
|
var handleSelectionMouseMove = (0, react_1.useCallback)(function (e) {
|
|
1535
1653
|
var _a;
|
|
1654
|
+
setIsDragCopy(dragButtonRef.current === "left" && (0, exports.isSelectionCopyModifier)(e));
|
|
1536
1655
|
var coords = getCellCoordsFromOffset(e.clientX, e.clientY, false);
|
|
1537
1656
|
if (!coords) {
|
|
1538
1657
|
return;
|
|
@@ -1576,15 +1695,70 @@ var useSelection = function (_a) {
|
|
|
1576
1695
|
var _a;
|
|
1577
1696
|
var fromSelection = initialDraggedSelection.current;
|
|
1578
1697
|
var toSelection = draggedSelection.current;
|
|
1579
|
-
|
|
1580
|
-
|
|
1698
|
+
var button = dragButtonRef.current;
|
|
1699
|
+
var borderTarget = dragTargetRef.current;
|
|
1700
|
+
var moved = !!fromSelection &&
|
|
1701
|
+
!!toSelection &&
|
|
1702
|
+
!(0, grid_4.isAreasEqual)(toSelection.range, fromSelection.range);
|
|
1703
|
+
/* Remove event handlers from the document the gesture started on */
|
|
1704
|
+
var ownerDocument = (_a = dragSelectionDocumentRef.current) !== null && _a !== void 0 ? _a : document;
|
|
1705
|
+
var resetGesture = function () {
|
|
1706
|
+
isDragging.current = false;
|
|
1707
|
+
draggedSelection.current = void 0;
|
|
1708
|
+
draggedSelectionIndex.current = void 0;
|
|
1709
|
+
hasUserMovedSelection.current = false;
|
|
1710
|
+
dragButtonRef.current = "left";
|
|
1711
|
+
dragTargetRef.current = null;
|
|
1712
|
+
setIsDragCopy(false);
|
|
1713
|
+
dragSelectionDocumentRef.current = null;
|
|
1714
|
+
ownerDocument.removeEventListener("mouseup", handleSelectionMouseUp);
|
|
1715
|
+
ownerDocument.removeEventListener("pointerup", handleSelectionMouseUp);
|
|
1716
|
+
ownerDocument.removeEventListener("mousemove", handleSelectionMouseMove);
|
|
1717
|
+
ownerDocument.removeEventListener("pointermove", handleSelectionMouseMove);
|
|
1718
|
+
};
|
|
1719
|
+
if (button === "right") {
|
|
1720
|
+
// Right-button drag (Excel): nothing changes on release — the grid opens the drop
|
|
1721
|
+
// menu and runs the entry the user picks. The right-button `contextmenu` follows this
|
|
1722
|
+
// release on Windows (on macOS it fired at press); keep swallowing it for one tick.
|
|
1723
|
+
// A right-click that never left the source is an ordinary right-click: the context
|
|
1724
|
+
// menu the press swallowed opens at the release point instead.
|
|
1725
|
+
var clientX_1 = e.clientX, clientY_1 = e.clientY;
|
|
1726
|
+
setTimeout(function () {
|
|
1727
|
+
releaseContextMenuSuppressor();
|
|
1728
|
+
if (!moved && borderTarget && "dispatchEvent" in borderTarget) {
|
|
1729
|
+
borderTarget.dispatchEvent(new MouseEvent("contextmenu", {
|
|
1730
|
+
bubbles: true,
|
|
1731
|
+
cancelable: true,
|
|
1732
|
+
clientX: clientX_1,
|
|
1733
|
+
clientY: clientY_1,
|
|
1734
|
+
button: grid_4.MouseButtonCodes.right,
|
|
1735
|
+
}));
|
|
1736
|
+
}
|
|
1737
|
+
}, 0);
|
|
1738
|
+
if (moved && fromSelection && toSelection) {
|
|
1739
|
+
onSelectionDragMenu === null || onSelectionDragMenu === void 0 ? void 0 : onSelectionDragMenu({
|
|
1740
|
+
sheetId: sheetId,
|
|
1741
|
+
from: fromSelection,
|
|
1742
|
+
to: toSelection,
|
|
1743
|
+
clientX: clientX_1,
|
|
1744
|
+
clientY: clientY_1,
|
|
1745
|
+
});
|
|
1746
|
+
}
|
|
1747
|
+
resetGesture();
|
|
1748
|
+
forceRender();
|
|
1749
|
+
return;
|
|
1750
|
+
}
|
|
1751
|
+
// Excel reads the modifiers at RELEASE: Shift → insert between existing cells (I-beam),
|
|
1752
|
+
// Ctrl (⌥ on macOS) → copy instead of move, both → insert a copy; none → move
|
|
1753
|
+
// (overwriting after the data prompt).
|
|
1581
1754
|
var insertMode = e.shiftKey;
|
|
1755
|
+
var copyMode = (0, exports.isSelectionCopyModifier)(e);
|
|
1756
|
+
// Snapshot before the selection follows the drop, so a refusal / Cancel can restore it.
|
|
1757
|
+
var previousSelections = selectionsRef.current;
|
|
1582
1758
|
/**
|
|
1583
1759
|
* If the from and to selection area
|
|
1584
1760
|
*/
|
|
1585
|
-
if (toSelection
|
|
1586
|
-
fromSelection &&
|
|
1587
|
-
!(0, grid_4.isAreasEqual)(toSelection.range, fromSelection.range)) {
|
|
1761
|
+
if (moved && toSelection) {
|
|
1588
1762
|
/* Select the first cell in the selection area */
|
|
1589
1763
|
var coords = {
|
|
1590
1764
|
rowIndex: toSelection.range.startRowIndex,
|
|
@@ -1610,35 +1784,62 @@ var useSelection = function (_a) {
|
|
|
1610
1784
|
};
|
|
1611
1785
|
}
|
|
1612
1786
|
}
|
|
1787
|
+
// Put the selection back on the source (Cancel, or a gesture the host can't run).
|
|
1788
|
+
var restoreSource = function (source, dropped) {
|
|
1789
|
+
emitActiveCell(sheetId, {
|
|
1790
|
+
rowIndex: source.range.startRowIndex,
|
|
1791
|
+
columnIndex: source.range.startColumnIndex,
|
|
1792
|
+
});
|
|
1793
|
+
onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections((0, grid_4.selectionSpansCells)(source.range)
|
|
1794
|
+
? previousSelections.map(function (cur) {
|
|
1795
|
+
return (0, grid_4.isAreasEqual)(cur.range, dropped.range) ? source : cur;
|
|
1796
|
+
})
|
|
1797
|
+
: previousSelections.filter(function (cur) { return !(0, grid_4.isAreasEqual)(cur.range, dropped.range); }));
|
|
1798
|
+
focus();
|
|
1799
|
+
};
|
|
1800
|
+
var hasValue = function (rowIndex, columnIndex) {
|
|
1801
|
+
return !(0, grid_1.isNull)(getValue(sheetId, rowIndex, columnIndex));
|
|
1802
|
+
};
|
|
1613
1803
|
// Callback
|
|
1614
|
-
if (fromSelection &&
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1804
|
+
if (moved && fromSelection && toSelection) {
|
|
1805
|
+
if (copyMode && insertMode) {
|
|
1806
|
+
// Ctrl+Shift+drag inserts a copy (destination band shifts) — Excel shows no prompt.
|
|
1807
|
+
if (!onInsertCopiedCells ||
|
|
1808
|
+
onInsertCopiedCells(sheetId, fromSelection, toSelection) === false) {
|
|
1809
|
+
restoreSource(fromSelection, toSelection);
|
|
1810
|
+
}
|
|
1811
|
+
}
|
|
1812
|
+
else if (copyMode) {
|
|
1813
|
+
if (!onCopySelection) {
|
|
1814
|
+
restoreSource(fromSelection, toSelection);
|
|
1815
|
+
}
|
|
1816
|
+
else if ((0, move_overwrite_1.needsCopyOverwritePrompt)(toSelection.range, hasValue)) {
|
|
1817
|
+
// The copy would replace data: Excel asks first, Cancel puts the selection back.
|
|
1818
|
+
Promise.resolve(confirmMoveOverwrite(move_overwrite_1.MOVE_OVERWRITE_PROMPT)).then(function (replace) {
|
|
1819
|
+
if (replace &&
|
|
1820
|
+
onCopySelection(sheetId, fromSelection, toSelection) !== false) {
|
|
1821
|
+
return;
|
|
1822
|
+
}
|
|
1823
|
+
restoreSource(fromSelection, toSelection);
|
|
1824
|
+
});
|
|
1825
|
+
}
|
|
1826
|
+
else if (onCopySelection(sheetId, fromSelection, toSelection) === false) {
|
|
1827
|
+
restoreSource(fromSelection, toSelection);
|
|
1828
|
+
}
|
|
1829
|
+
}
|
|
1830
|
+
else if (insertMode && onInsertCutCells) {
|
|
1618
1831
|
// Shift+drag inserts (displaces the destination band) — Excel shows no prompt.
|
|
1619
1832
|
onInsertCutCells(sheetId, fromSelection, toSelection);
|
|
1620
1833
|
}
|
|
1621
|
-
else if ((0, move_overwrite_1.needsOverwritePrompt)(fromSelection.range, toSelection.range,
|
|
1622
|
-
return !(0, grid_1.isNull)(getValue(sheetId, rowIndex, columnIndex));
|
|
1623
|
-
})) {
|
|
1834
|
+
else if ((0, move_overwrite_1.needsOverwritePrompt)(fromSelection.range, toSelection.range, hasValue)) {
|
|
1624
1835
|
// The destination holds data the block would overwrite: Excel asks first. The
|
|
1625
1836
|
// selection has already followed the drop; Cancel puts it back on the source.
|
|
1626
|
-
var previousSelections_1 = selectionsRef.current;
|
|
1627
1837
|
Promise.resolve(confirmMoveOverwrite(move_overwrite_1.MOVE_OVERWRITE_PROMPT)).then(function (replace) {
|
|
1628
1838
|
if (replace) {
|
|
1629
1839
|
onMoveSelection === null || onMoveSelection === void 0 ? void 0 : onMoveSelection(sheetId, fromSelection, toSelection);
|
|
1630
1840
|
return;
|
|
1631
1841
|
}
|
|
1632
|
-
|
|
1633
|
-
rowIndex: fromSelection.range.startRowIndex,
|
|
1634
|
-
columnIndex: fromSelection.range.startColumnIndex,
|
|
1635
|
-
});
|
|
1636
|
-
onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections((0, grid_4.selectionSpansCells)(fromSelection.range)
|
|
1637
|
-
? previousSelections_1.map(function (cur) {
|
|
1638
|
-
return (0, grid_4.isAreasEqual)(cur.range, toSelection.range) ? fromSelection : cur;
|
|
1639
|
-
})
|
|
1640
|
-
: previousSelections_1.filter(function (cur) { return !(0, grid_4.isAreasEqual)(cur.range, toSelection.range); }));
|
|
1641
|
-
focus();
|
|
1842
|
+
restoreSource(fromSelection, toSelection);
|
|
1642
1843
|
});
|
|
1643
1844
|
}
|
|
1644
1845
|
else {
|
|
@@ -1648,41 +1849,37 @@ var useSelection = function (_a) {
|
|
|
1648
1849
|
/* Focus on the grid */
|
|
1649
1850
|
focus();
|
|
1650
1851
|
/* Reset all references */
|
|
1651
|
-
|
|
1652
|
-
draggedSelection.current = void 0;
|
|
1653
|
-
draggedSelectionIndex.current = void 0;
|
|
1654
|
-
hasUserMovedSelection.current = false;
|
|
1655
|
-
/* Remove event handlers from the document the gesture started on */
|
|
1656
|
-
var ownerDocument = (_a = dragSelectionDocumentRef.current) !== null && _a !== void 0 ? _a : document;
|
|
1657
|
-
dragSelectionDocumentRef.current = null;
|
|
1658
|
-
ownerDocument.removeEventListener("mouseup", handleSelectionMouseUp);
|
|
1659
|
-
ownerDocument.removeEventListener("pointerup", handleSelectionMouseUp);
|
|
1660
|
-
ownerDocument.removeEventListener("mousemove", handleSelectionMouseMove);
|
|
1661
|
-
ownerDocument.removeEventListener("pointermove", handleSelectionMouseMove);
|
|
1852
|
+
resetGesture();
|
|
1662
1853
|
/* Force render */
|
|
1663
1854
|
forceRender();
|
|
1664
1855
|
}, [
|
|
1665
1856
|
sheetId,
|
|
1666
1857
|
onMoveSelection,
|
|
1667
1858
|
onInsertCutCells,
|
|
1859
|
+
onCopySelection,
|
|
1860
|
+
onInsertCopiedCells,
|
|
1861
|
+
onSelectionDragMenu,
|
|
1668
1862
|
confirmMoveOverwrite,
|
|
1669
1863
|
getValue,
|
|
1670
1864
|
handleSelectionMouseMove,
|
|
1671
1865
|
focus,
|
|
1672
1866
|
emitActiveCell,
|
|
1673
1867
|
onChangeSelections,
|
|
1868
|
+
releaseContextMenuSuppressor,
|
|
1674
1869
|
]);
|
|
1675
1870
|
/**
|
|
1676
1871
|
* When user mouse downs on selection
|
|
1677
1872
|
*/
|
|
1678
1873
|
var handleSelectionMouseDown = (0, react_1.useCallback)(function (e, activeCell, selection, index, shouldClamp) {
|
|
1679
|
-
var _a;
|
|
1874
|
+
var _a, _b;
|
|
1680
1875
|
if (shouldClamp === void 0) { shouldClamp = true; }
|
|
1681
1876
|
if (e.isDefaultPrevented()) {
|
|
1682
1877
|
return;
|
|
1683
1878
|
}
|
|
1684
|
-
|
|
1685
|
-
|
|
1879
|
+
// ⌃-click is the macOS context-menu gesture; on Windows Ctrl+drag copies (read at
|
|
1880
|
+
// release). A right-button drag opens Excel's drop menu when the host offers one.
|
|
1881
|
+
var isRightButton = e.button === grid_4.MouseButtonCodes.right;
|
|
1882
|
+
if (isRightButton ? !onSelectionDragMenu : e.ctrlKey && (0, platform_1.isMacPlatform)()) {
|
|
1686
1883
|
return;
|
|
1687
1884
|
}
|
|
1688
1885
|
// Keep keyboard focus in the grid. The selection border is rendered OUTSIDE the tabIndex=0
|
|
@@ -1715,6 +1912,9 @@ var useSelection = function (_a) {
|
|
|
1715
1912
|
}
|
|
1716
1913
|
/* Set dragging flag */
|
|
1717
1914
|
isDragging.current = true;
|
|
1915
|
+
dragButtonRef.current = isRightButton ? "right" : "left";
|
|
1916
|
+
dragTargetRef.current = (_a = e.currentTarget) !== null && _a !== void 0 ? _a : null;
|
|
1917
|
+
setIsDragCopy(!isRightButton && (0, exports.isSelectionCopyModifier)(e));
|
|
1718
1918
|
/* Listen on the document the gesture started on. The border cover starts
|
|
1719
1919
|
* the gesture from `pointerdown`, and the preventDefault above cancels it —
|
|
1720
1920
|
* a browser then withholds the compatibility mouse events (mousemove /
|
|
@@ -1722,8 +1922,13 @@ var useSelection = function (_a) {
|
|
|
1722
1922
|
* ended: a plain click on the border left the sheet in drag-move mode
|
|
1723
1923
|
* (#1048). Both pairs are registered; the first end event removes all
|
|
1724
1924
|
* four, so the release runs once. */
|
|
1725
|
-
var ownerDocument = (
|
|
1925
|
+
var ownerDocument = (_b = (0, grid_3.getOwnerDocument)(e.currentTarget)) !== null && _b !== void 0 ? _b : document;
|
|
1726
1926
|
dragSelectionDocumentRef.current = ownerDocument;
|
|
1927
|
+
if (isRightButton) {
|
|
1928
|
+
// The right-button `contextmenu` (at press on macOS, at release on Windows) must not
|
|
1929
|
+
// open the cell context menu over the drag; the release decides what opens.
|
|
1930
|
+
suppressNextContextMenu(ownerDocument);
|
|
1931
|
+
}
|
|
1727
1932
|
ownerDocument.addEventListener("mouseup", handleSelectionMouseUp);
|
|
1728
1933
|
ownerDocument.addEventListener("pointerup", handleSelectionMouseUp);
|
|
1729
1934
|
ownerDocument.addEventListener("mousemove", handleSelectionMouseMove);
|
|
@@ -1735,6 +1940,8 @@ var useSelection = function (_a) {
|
|
|
1735
1940
|
getCellBounds,
|
|
1736
1941
|
handleSelectionMouseMove,
|
|
1737
1942
|
handleSelectionMouseUp,
|
|
1943
|
+
onSelectionDragMenu,
|
|
1944
|
+
suppressNextContextMenu,
|
|
1738
1945
|
]);
|
|
1739
1946
|
/**
|
|
1740
1947
|
* Set selection start and end reference
|
|
@@ -1951,6 +2158,8 @@ var useSelection = function (_a) {
|
|
|
1951
2158
|
]);
|
|
1952
2159
|
return {
|
|
1953
2160
|
isDragging: isDragging.current,
|
|
2161
|
+
/** True while a selection-border drag would copy on release (Ctrl / ⌥ held). */
|
|
2162
|
+
isDragCopy: isDragCopy,
|
|
1954
2163
|
draggedSelection: draggedSelection.current,
|
|
1955
2164
|
initialDraggedSelection: initialDraggedSelection.current,
|
|
1956
2165
|
isFilling: isFilling.current,
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -30,6 +30,10 @@ export * from "./components/remove-duplicates-dialog";
|
|
|
30
30
|
export * from "./components/text-to-columns-dialog";
|
|
31
31
|
export * from "./components/subtotal-dialog";
|
|
32
32
|
export * from "./components/goal-seek-dialog";
|
|
33
|
+
export * from "./components/data-table-dialog";
|
|
34
|
+
export * from "./components/scenario-manager-dialog";
|
|
35
|
+
export * from "./components/solver-dialog";
|
|
36
|
+
export * from "./components/forecast-sheet-dialog";
|
|
33
37
|
export * from "./components/advanced-filter-dialog";
|
|
34
38
|
export * from "./components/validation-alert-dialog";
|
|
35
39
|
export * from "./components/insert-cells-dialog";
|
|
@@ -73,6 +77,7 @@ export * from "./api/cf-overlays";
|
|
|
73
77
|
export * from "./api/cf-icons";
|
|
74
78
|
export * from "./api/cf-engine";
|
|
75
79
|
export * from "./api/cf-priority";
|
|
80
|
+
export * from "./api/error-checking";
|
|
76
81
|
export * from "./api/fill-patterns";
|
|
77
82
|
export type { AvailableIcon } from "./components/filter-box";
|
|
78
83
|
export * from "./hooks";
|
|
@@ -92,7 +97,7 @@ export { type ContextMenuWrapperProps } from "./hooks/use-context-menu";
|
|
|
92
97
|
export * from "./api/scheduler";
|
|
93
98
|
export * from "./themes";
|
|
94
99
|
export * from "./signals/scroll-subscriber";
|
|
95
|
-
export type { PasteSpecialOperation, PasteSpecialOptions, PasteSpecialRequest, PasteSpecialType, } from "./hooks/use-copy-paste-cut";
|
|
100
|
+
export type { PasteSpecialMode, PasteSpecialOperation, PasteSpecialOptions, PasteSpecialRequest, PasteSpecialType, } from "./hooks/use-copy-paste-cut";
|
|
96
101
|
export { CHART_CLIPBOARD_MIME, CHART_PASTE_OFFSET_PIXELS, type UseChartClipboardProps, useChartClipboard, } from "./hooks/use-chart-clipboard";
|
|
97
102
|
export * from "./hooks/use-formula-range-helpers";
|
|
98
103
|
export * from "./utils/z-order";
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.tsx"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -34,6 +34,10 @@ tslib_1.__exportStar(require("./components/remove-duplicates-dialog"), exports);
|
|
|
34
34
|
tslib_1.__exportStar(require("./components/text-to-columns-dialog"), exports);
|
|
35
35
|
tslib_1.__exportStar(require("./components/subtotal-dialog"), exports);
|
|
36
36
|
tslib_1.__exportStar(require("./components/goal-seek-dialog"), exports);
|
|
37
|
+
tslib_1.__exportStar(require("./components/data-table-dialog"), exports);
|
|
38
|
+
tslib_1.__exportStar(require("./components/scenario-manager-dialog"), exports);
|
|
39
|
+
tslib_1.__exportStar(require("./components/solver-dialog"), exports);
|
|
40
|
+
tslib_1.__exportStar(require("./components/forecast-sheet-dialog"), exports);
|
|
37
41
|
tslib_1.__exportStar(require("./components/advanced-filter-dialog"), exports);
|
|
38
42
|
tslib_1.__exportStar(require("./components/validation-alert-dialog"), exports);
|
|
39
43
|
tslib_1.__exportStar(require("./components/insert-cells-dialog"), exports);
|
|
@@ -78,6 +82,7 @@ tslib_1.__exportStar(require("./api/cf-overlays"), exports);
|
|
|
78
82
|
tslib_1.__exportStar(require("./api/cf-icons"), exports);
|
|
79
83
|
tslib_1.__exportStar(require("./api/cf-engine"), exports);
|
|
80
84
|
tslib_1.__exportStar(require("./api/cf-priority"), exports);
|
|
85
|
+
tslib_1.__exportStar(require("./api/error-checking"), exports);
|
|
81
86
|
tslib_1.__exportStar(require("./api/fill-patterns"), exports);
|
|
82
87
|
tslib_1.__exportStar(require("./hooks"), exports);
|
|
83
88
|
tslib_1.__exportStar(require("./components/cell/typings"), exports);
|
package/dist/cjs/release-date.js
CHANGED
|
@@ -4,4 +4,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.releaseDate = void 0;
|
|
5
5
|
exports.releaseDate =
|
|
6
6
|
// @ts-ignore
|
|
7
|
-
(_a = new Date("2026-11-
|
|
7
|
+
(_a = new Date("2026-11-03")) !== null && _a !== void 0 ? _a : new Date("2025-06-18");
|