@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.useEditorSubmit = exports.planEntryFill = exports.entryValueForCell = void 0;
|
|
3
|
+
exports.useEditorSubmit = exports.entryTurnsOnWrap = exports.planArrayFormulaRange = exports.planEntryFill = exports.entryValueForCell = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var utils_1 = require("@rowsncolumns/utils");
|
|
6
6
|
var react_1 = require("react");
|
|
@@ -93,8 +93,54 @@ var planEntryFill = function (value, activeCell, selections) {
|
|
|
93
93
|
return writes;
|
|
94
94
|
};
|
|
95
95
|
exports.planEntryFill = planEntryFill;
|
|
96
|
+
var rangeContains = function (range, cell) {
|
|
97
|
+
return cell.rowIndex >= range.startRowIndex &&
|
|
98
|
+
cell.rowIndex <= range.endRowIndex &&
|
|
99
|
+
cell.columnIndex >= range.startColumnIndex &&
|
|
100
|
+
cell.columnIndex <= range.endColumnIndex;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* The range a Ctrl+Shift+Enter commit at `activeCell` enters its array over (Excel): the selection
|
|
104
|
+
* holding the active cell; with nothing but the active cell selected, the CSE array it already
|
|
105
|
+
* belongs to (`existing` — editing any cell of an array and pressing Ctrl+Shift+Enter re-enters
|
|
106
|
+
* the whole array), else the active cell alone.
|
|
107
|
+
*/
|
|
108
|
+
var planArrayFormulaRange = function (activeCell, selections, existing) {
|
|
109
|
+
var _a;
|
|
110
|
+
var selected = (_a = selections.find(function (s) { return rangeContains(s.range, activeCell); })) === null || _a === void 0 ? void 0 : _a.range;
|
|
111
|
+
if (selected &&
|
|
112
|
+
(selected.startRowIndex !== selected.endRowIndex ||
|
|
113
|
+
selected.startColumnIndex !== selected.endColumnIndex)) {
|
|
114
|
+
return selected;
|
|
115
|
+
}
|
|
116
|
+
if (existing && rangeContains(existing, activeCell)) {
|
|
117
|
+
return existing;
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
startRowIndex: activeCell.rowIndex,
|
|
121
|
+
endRowIndex: activeCell.rowIndex,
|
|
122
|
+
startColumnIndex: activeCell.columnIndex,
|
|
123
|
+
endColumnIndex: activeCell.columnIndex,
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
exports.planArrayFormulaRange = planArrayFormulaRange;
|
|
127
|
+
/**
|
|
128
|
+
* Whether committing `value` turns Wrap Text on (Excel: an entry typed with a line break, Alt+Enter /
|
|
129
|
+
* ⌥Return, shows every line — "Start a new line of text inside a cell", support.microsoft.com). A
|
|
130
|
+
* formula's text breaks are its own, an unchanged entry is not a new one, and a cell that wraps
|
|
131
|
+
* already keeps its format.
|
|
132
|
+
*/
|
|
133
|
+
var entryTurnsOnWrap = function (_a) {
|
|
134
|
+
var value = _a.value, previousValue = _a.previousValue, format = _a.format;
|
|
135
|
+
return typeof value === "string" &&
|
|
136
|
+
!value.startsWith("=") &&
|
|
137
|
+
value.includes("\n") &&
|
|
138
|
+
value !== previousValue &&
|
|
139
|
+
(format === null || format === void 0 ? void 0 : format.wrapStrategy) !== "wrap";
|
|
140
|
+
};
|
|
141
|
+
exports.entryTurnsOnWrap = entryTurnsOnWrap;
|
|
96
142
|
var useEditorSubmit = function (_a) {
|
|
97
|
-
var sheetId = _a.sheetId, onChangeActiveSheet = _a.onChangeActiveSheet, setActiveCell = _a.setActiveCell, onChange = _a.onChange, onComplete = _a.onComplete, getCommitValidation = _a.getCommitValidation, showValidationAlert = _a.showValidationAlert, selections = _a.selections, onChangeBatch = _a.onChangeBatch, batchHistory = _a.batchHistory, formulaLocale = _a.formulaLocale;
|
|
143
|
+
var sheetId = _a.sheetId, onChangeActiveSheet = _a.onChangeActiveSheet, setActiveCell = _a.setActiveCell, onChange = _a.onChange, onComplete = _a.onComplete, getCommitValidation = _a.getCommitValidation, showValidationAlert = _a.showValidationAlert, selections = _a.selections, onChangeBatch = _a.onChangeBatch, batchHistory = _a.batchHistory, formulaLocale = _a.formulaLocale, onChangeArrayFormula = _a.onChangeArrayFormula, getArrayFormula = _a.getArrayFormula, getEffectiveFormat = _a.getEffectiveFormat, onChangeFormatting = _a.onChangeFormatting, autoCorrect = _a.autoCorrect;
|
|
98
144
|
var _b = tslib_1.__read((0, formula_mode_atom_1.useFormulaMode)(), 2), formulaMode = _b[0], setFormulaMode = _b[1];
|
|
99
145
|
var _c = tslib_1.__read((0, editing_cell_atom_1.useEditingCell)(), 2), _ = _c[0], setEditingCellCoordinate = _c[1];
|
|
100
146
|
var setActiveEditor = (0, atoms_1.useSetActiveEditor)();
|
|
@@ -117,6 +163,17 @@ var useEditorSubmit = function (_a) {
|
|
|
117
163
|
if (typeof previousValue === "string") {
|
|
118
164
|
previousValue = (0, utils_1.canonicalizeCellInput)(previousValue, formulaLocale);
|
|
119
165
|
}
|
|
166
|
+
/* AutoCorrect a new text entry; an entry whose runs index into it keeps its length */
|
|
167
|
+
if (autoCorrect &&
|
|
168
|
+
!formulaMode &&
|
|
169
|
+
typeof value === "string" &&
|
|
170
|
+
value !== previousValue) {
|
|
171
|
+
value = (0, utils_1.applyAutoCorrect)({
|
|
172
|
+
text: value,
|
|
173
|
+
options: autoCorrect,
|
|
174
|
+
lengthPreserving: Boolean(textFormatRuns === null || textFormatRuns === void 0 ? void 0 : textFormatRuns.length),
|
|
175
|
+
});
|
|
176
|
+
}
|
|
120
177
|
resetEditorState = function () {
|
|
121
178
|
setEditingCellCoordinate(undefined);
|
|
122
179
|
setActiveEditor(undefined);
|
|
@@ -124,24 +181,41 @@ var useEditorSubmit = function (_a) {
|
|
|
124
181
|
onComplete === null || onComplete === void 0 ? void 0 : onComplete();
|
|
125
182
|
};
|
|
126
183
|
commit = function () {
|
|
127
|
-
var _a;
|
|
184
|
+
var _a, _b, _c;
|
|
128
185
|
var writeActiveCell = function () {
|
|
129
186
|
return onChange === null || onChange === void 0 ? void 0 : onChange(editingSheetId, activeCell, value, textFormatRuns, previousValue, isDirty);
|
|
130
187
|
};
|
|
188
|
+
// Ctrl+Shift+Enter on a formula: ONE legacy array over the selection (or the array being
|
|
189
|
+
// re-entered) — the engine writes and fits every cell of it, so nothing else is written.
|
|
190
|
+
var arrayFormula = (options === null || options === void 0 ? void 0 : options.arrayFormula) && onChangeArrayFormula && isFormulaEntry(value);
|
|
131
191
|
// Ctrl+Enter: the same entry into every other selected cell (formulas shift per cell).
|
|
132
192
|
// Explicit per-cell values — never a read-back of the cell just written — so the spread
|
|
133
193
|
// is correct even when the engine applies `onChange` asynchronously (legacy setState),
|
|
134
|
-
// and so the writes can share one history batch (the rnc batcher defers them all).
|
|
135
|
-
|
|
194
|
+
// and so the writes can share one history batch (the rnc batcher defers them all). A
|
|
195
|
+
// Ctrl+Shift+Enter the host cannot enter as an array (a constant, or no array support)
|
|
196
|
+
// commits the same way.
|
|
197
|
+
var fillWrites = !arrayFormula &&
|
|
198
|
+
((options === null || options === void 0 ? void 0 : options.fillSelection) || (options === null || options === void 0 ? void 0 : options.arrayFormula)) &&
|
|
199
|
+
onChangeBatch
|
|
136
200
|
? (0, exports.planEntryFill)(value, activeCell, (_a = selectionsRef.current) !== null && _a !== void 0 ? _a : [])
|
|
137
201
|
: [];
|
|
138
|
-
|
|
202
|
+
var wrapLineBreak = onChangeFormatting &&
|
|
203
|
+
(0, exports.entryTurnsOnWrap)({
|
|
204
|
+
value: value,
|
|
205
|
+
previousValue: previousValue,
|
|
206
|
+
format: getEffectiveFormat === null || getEffectiveFormat === void 0 ? void 0 : getEffectiveFormat(editingSheetId, activeCell.rowIndex, activeCell.columnIndex),
|
|
207
|
+
});
|
|
208
|
+
if (arrayFormula) {
|
|
209
|
+
onChangeArrayFormula === null || onChangeArrayFormula === void 0 ? void 0 : onChangeArrayFormula(editingSheetId, (0, exports.planArrayFormulaRange)(activeCell, (_b = selectionsRef.current) !== null && _b !== void 0 ? _b : [], (_c = getArrayFormula === null || getArrayFormula === void 0 ? void 0 : getArrayFormula(editingSheetId, activeCell.rowIndex, activeCell.columnIndex)) === null || _c === void 0 ? void 0 : _c.range), value);
|
|
210
|
+
}
|
|
211
|
+
else if (fillWrites.length === 0 && !wrapLineBreak) {
|
|
139
212
|
writeActiveCell();
|
|
140
213
|
}
|
|
141
214
|
else {
|
|
142
|
-
// One gesture, one undo entry: the active cell
|
|
215
|
+
// One gesture, one undo entry: the active cell, every rectangle and the wrap together.
|
|
143
216
|
var writeAll = function () {
|
|
144
217
|
var e_3, _a;
|
|
218
|
+
var _b;
|
|
145
219
|
writeActiveCell();
|
|
146
220
|
try {
|
|
147
221
|
for (var fillWrites_1 = tslib_1.__values(fillWrites), fillWrites_1_1 = fillWrites_1.next(); !fillWrites_1_1.done; fillWrites_1_1 = fillWrites_1.next()) {
|
|
@@ -156,6 +230,11 @@ var useEditorSubmit = function (_a) {
|
|
|
156
230
|
}
|
|
157
231
|
finally { if (e_3) throw e_3.error; }
|
|
158
232
|
}
|
|
233
|
+
if (wrapLineBreak) {
|
|
234
|
+
// Excel turns Wrap Text on for an entry with a line break, so every line shows and
|
|
235
|
+
// an auto-height row grows to them (the engines refit it on the format change).
|
|
236
|
+
onChangeFormatting === null || onChangeFormatting === void 0 ? void 0 : onChangeFormatting(editingSheetId, activeCell, fillWrites.length ? (_b = selectionsRef.current) !== null && _b !== void 0 ? _b : [] : [], "wrapStrategy", "wrap");
|
|
237
|
+
}
|
|
159
238
|
};
|
|
160
239
|
if (batchHistory) {
|
|
161
240
|
batchHistory(writeAll);
|
|
@@ -239,6 +318,11 @@ var useEditorSubmit = function (_a) {
|
|
|
239
318
|
onChangeBatch,
|
|
240
319
|
batchHistory,
|
|
241
320
|
formulaLocale,
|
|
321
|
+
onChangeArrayFormula,
|
|
322
|
+
getArrayFormula,
|
|
323
|
+
getEffectiveFormat,
|
|
324
|
+
onChangeFormatting,
|
|
325
|
+
autoCorrect,
|
|
242
326
|
]);
|
|
243
327
|
};
|
|
244
328
|
exports.useEditorSubmit = useEditorSubmit;
|
|
@@ -71,11 +71,15 @@ type FormattingKeyboardProps = {
|
|
|
71
71
|
* opened; the key is left alone otherwise.
|
|
72
72
|
*/
|
|
73
73
|
onShowCellList?(sheetId: number, cell: CellInterface): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Alt+Shift+F10: open the active cell's error-checking menu (Excel). Returns whether one opened.
|
|
76
|
+
*/
|
|
77
|
+
onShowErrorCheckMenu?(sheetId: number, cell: CellInterface): boolean;
|
|
74
78
|
/** Ctrl+' / Ctrl+Shift+" write the cell above into the active cell */
|
|
75
79
|
onChangeBatch?: CanvasGridProps["onChangeBatch"];
|
|
76
80
|
getUserEnteredValue?(sheetId: number, rowIndex: number, columnIndex: number): string | undefined | null;
|
|
77
81
|
getEffectiveValue?(sheetId: number, rowIndex: number, columnIndex: number): Maybe<ExtendedValue>;
|
|
78
82
|
};
|
|
79
|
-
export declare const useKeyboardHandler: ({ sheetId, locale, selectedRows, selectedColumns, selectedRowHeadersIds, selectedColumnHeadersIds, showFormulas, keymap, defaultFontSizePoint, onShowFormulas, onChangeFormatting, onRepeatFormatting, onClearFormatting, onSelectNextSheet, onSelectPreviousSheet, onCreateNewSheet, onFillRange, disableFillRightShortcut, onInsertTime, onInsertDate, onInsertDateTime, onInsertNote, onInsertAutoSum, onRedo, onUndo, onRequestSearch, onRequestReplace, onRequestFormatCells, onRequestInsertComment, onRequestInsertLink, onCreateTable, onRequestCreateTable, onCreateBasicFilter, clearCopiedSelections, getCellFormat, onShowContextMenu, onHideColumn, onShowColumn, onGroupColumns, onUngroupColumns, onHideRow, onShowRow, onGroupRows, onUngroupRows, onDeleteRow, onInsertRow, onAddQuickEdit, onCalculateNow, onRequestGoTo, onRequestPasteSpecial, onRequestEditCell, onShowCellList, onChangeBatch, getUserEnteredValue, getEffectiveValue, canEditCell, isSheetFocused, activeCell, selections, }: FormattingKeyboardProps) => (e: React.KeyboardEvent<HTMLDivElement>) => void;
|
|
83
|
+
export declare const useKeyboardHandler: ({ sheetId, locale, selectedRows, selectedColumns, selectedRowHeadersIds, selectedColumnHeadersIds, showFormulas, keymap, defaultFontSizePoint, onShowFormulas, onChangeFormatting, onRepeatFormatting, onClearFormatting, onSelectNextSheet, onSelectPreviousSheet, onCreateNewSheet, onFillRange, disableFillRightShortcut, onInsertTime, onInsertDate, onInsertDateTime, onInsertNote, onInsertAutoSum, onRedo, onUndo, onRequestSearch, onRequestReplace, onRequestFormatCells, onRequestInsertComment, onRequestInsertLink, onCreateTable, onRequestCreateTable, onCreateBasicFilter, clearCopiedSelections, getCellFormat, onShowContextMenu, onHideColumn, onShowColumn, onGroupColumns, onUngroupColumns, onHideRow, onShowRow, onGroupRows, onUngroupRows, onDeleteRow, onInsertRow, onAddQuickEdit, onCalculateNow, onRequestGoTo, onRequestPasteSpecial, onRequestEditCell, onShowCellList, onShowErrorCheckMenu, onChangeBatch, getUserEnteredValue, getEffectiveValue, canEditCell, isSheetFocused, activeCell, selections, }: FormattingKeyboardProps) => (e: React.KeyboardEvent<HTMLDivElement>) => void;
|
|
80
84
|
export {};
|
|
81
85
|
//# sourceMappingURL=use-keyboard-handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-keyboard-handler.d.ts","sourceRoot":"","sources":["../../../hooks/use-keyboard-handler.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"use-keyboard-handler.d.ts","sourceRoot":"","sources":["../../../hooks/use-keyboard-handler.tsx"],"names":[],"mappings":"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"}
|
|
@@ -61,7 +61,7 @@ var useKeyboardHandler = function (_a) {
|
|
|
61
61
|
// Quick edit
|
|
62
62
|
onAddQuickEdit = _a.onAddQuickEdit,
|
|
63
63
|
// Excel keymap
|
|
64
|
-
onCalculateNow = _a.onCalculateNow, onRequestGoTo = _a.onRequestGoTo, onRequestPasteSpecial = _a.onRequestPasteSpecial, onRequestEditCell = _a.onRequestEditCell, onShowCellList = _a.onShowCellList, onChangeBatch = _a.onChangeBatch, getUserEnteredValue = _a.getUserEnteredValue, getEffectiveValue = _a.getEffectiveValue, canEditCell = _a.canEditCell, isSheetFocused = _a.isSheetFocused, activeCell = _a.activeCell, selections = _a.selections;
|
|
64
|
+
onCalculateNow = _a.onCalculateNow, onRequestGoTo = _a.onRequestGoTo, onRequestPasteSpecial = _a.onRequestPasteSpecial, onRequestEditCell = _a.onRequestEditCell, onShowCellList = _a.onShowCellList, onShowErrorCheckMenu = _a.onShowErrorCheckMenu, onChangeBatch = _a.onChangeBatch, getUserEnteredValue = _a.getUserEnteredValue, getEffectiveValue = _a.getEffectiveValue, canEditCell = _a.canEditCell, isSheetFocused = _a.isSheetFocused, activeCell = _a.activeCell, selections = _a.selections;
|
|
65
65
|
return (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function (e) {
|
|
66
66
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
67
67
|
var isCtrl = e.ctrlKey; // Ctrl
|
|
@@ -234,6 +234,14 @@ var useKeyboardHandler = function (_a) {
|
|
|
234
234
|
}
|
|
235
235
|
if (isAlt) {
|
|
236
236
|
switch (key) {
|
|
237
|
+
// Alt+Shift+F10 — "displays the menu or message for an Error Checking button" (Excel).
|
|
238
|
+
case "F10":
|
|
239
|
+
if (!isShift || isMeta || isCtrl)
|
|
240
|
+
break;
|
|
241
|
+
if (onShowErrorCheckMenu === null || onShowErrorCheckMenu === void 0 ? void 0 : onShowErrorCheckMenu(sheetId, activeCell)) {
|
|
242
|
+
e.preventDefault();
|
|
243
|
+
}
|
|
244
|
+
return;
|
|
237
245
|
// Option/Alt + ArrowUp — previous sheet (Sheets). Nothing in
|
|
238
246
|
// Excel, so the Excel keymap leaves the key alone.
|
|
239
247
|
case "ArrowUp":
|
|
@@ -686,6 +694,7 @@ var useKeyboardHandler = function (_a) {
|
|
|
686
694
|
onRequestPasteSpecial,
|
|
687
695
|
onRequestEditCell,
|
|
688
696
|
onShowCellList,
|
|
697
|
+
onShowErrorCheckMenu,
|
|
689
698
|
onChangeBatch,
|
|
690
699
|
getUserEnteredValue,
|
|
691
700
|
getEffectiveValue,
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { CellInterface, GridRange, SelectionArea } from "@rowsncolumns/grid";
|
|
2
|
+
import type { CanvasGridProps, SelectionAttributes } from "../components/canvas-grid/typings";
|
|
3
|
+
import type { SelectionDragMenuRequest } from "./use-selection";
|
|
4
|
+
type Selection = SelectionArea<SelectionAttributes>;
|
|
5
|
+
/** What a selection-border copy writes (Excel's right-drag Copy Here entries). */
|
|
6
|
+
export type SelectionCopyKind = "all" | "values" | "formats";
|
|
7
|
+
/**
|
|
8
|
+
* Excel's right-drag drop menu entries (support.microsoft.com "Move or copy cells and cell
|
|
9
|
+
* contents"). "Create Hyperlink Here" is not offered: the grid has no hyperlink write it can
|
|
10
|
+
* issue for a range (`onRequestInsertLink` only opens the link dialog for the active cell).
|
|
11
|
+
*/
|
|
12
|
+
export type SelectionDropAction = "move" | "copy" | "copy-values" | "copy-formats" | "link" | "shift-down-copy" | "shift-right-copy" | "shift-down-move" | "shift-right-move";
|
|
13
|
+
export type SelectionDropMenuState = SelectionDragMenuRequest<SelectionAttributes>;
|
|
14
|
+
/** Shift direction of an Insert Cut Cells move (`planInsertCutCells`' rule): right only when the drop stays on the source's rows. */
|
|
15
|
+
export declare const insertShiftForDrop: (from: GridRange, to: GridRange) => "down" | "right";
|
|
16
|
+
/**
|
|
17
|
+
* Excel "Link Here": each destination cell reads its source cell. A single cell links
|
|
18
|
+
* absolutely (`=$A$1`), a range relatively (`=A1`), as Paste Link writes them.
|
|
19
|
+
*/
|
|
20
|
+
export declare const linkFormulasFor: (from: GridRange) => string[][];
|
|
21
|
+
export type UseSelectionDragCopyProps = {
|
|
22
|
+
sheetId: number;
|
|
23
|
+
readonly?: boolean;
|
|
24
|
+
onCopy: CanvasGridProps["onCopy"];
|
|
25
|
+
onPaste: CanvasGridProps["onPaste"];
|
|
26
|
+
onChangeBatch: CanvasGridProps["onChangeBatch"];
|
|
27
|
+
onMoveSelection: CanvasGridProps["onMoveSelection"];
|
|
28
|
+
onInsertCutCells: CanvasGridProps["onInsertCutCells"];
|
|
29
|
+
onInsertCopiedCells: CanvasGridProps["onInsertCopiedCells"];
|
|
30
|
+
/** Excel's "There's already data here" prompt; resolves `false` to cancel. */
|
|
31
|
+
confirmOverwrite?: (message: string) => boolean | Promise<boolean>;
|
|
32
|
+
getValue: (sheetId: number, rowIndex: number, columnIndex: number) => string | undefined | null;
|
|
33
|
+
/** Publish the grid selection (the destination after a drop-menu action). */
|
|
34
|
+
onChangeSelections?: (selections: Selection[]) => void;
|
|
35
|
+
onChangeActiveCell?: (sheetId: number, cell: CellInterface) => void;
|
|
36
|
+
focusSheet?: () => void;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Copy gestures of the selection border (Excel): Ctrl/⌥+drag copies, Ctrl+Shift/⌥⇧+drag
|
|
40
|
+
* inserts a copy, and a right-button drag opens the drop menu. A copy runs through the
|
|
41
|
+
* host's own `onCopy` → `onPaste` into a private clipboard — the system clipboard and the
|
|
42
|
+
* copied-range marquee are untouched — so the host's paste gates (protection, locked
|
|
43
|
+
* ranges, readonly) refuse a drop exactly as they refuse a paste.
|
|
44
|
+
*/
|
|
45
|
+
export declare const useSelectionDragCopy: ({ sheetId, readonly, onCopy, onPaste, onChangeBatch, onMoveSelection, onInsertCutCells, onInsertCopiedCells, confirmOverwrite, getValue, onChangeSelections, onChangeActiveCell, focusSheet, }: UseSelectionDragCopyProps) => {
|
|
46
|
+
copySelection: (from: Selection, to: Selection, kind?: SelectionCopyKind) => boolean;
|
|
47
|
+
insertCopiedCells: (from: Selection, to: Selection, shift?: "down" | "right") => boolean;
|
|
48
|
+
dropMenu: SelectionDropMenuState | null;
|
|
49
|
+
dropActions: SelectionDropAction[];
|
|
50
|
+
openDropMenu: (request: SelectionDropMenuState) => void;
|
|
51
|
+
closeDropMenu: () => void;
|
|
52
|
+
runDropAction: (action: SelectionDropAction) => Promise<void>;
|
|
53
|
+
};
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=use-selection-drag-copy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-selection-drag-copy.d.ts","sourceRoot":"","sources":["../../../hooks/use-selection-drag-copy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACd,MAAM,oBAAoB,CAAC;AAU5B,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACpB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAEhE,KAAK,SAAS,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC;AAEpD,kFAAkF;AAClF,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE7D;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAC3B,MAAM,GACN,MAAM,GACN,aAAa,GACb,cAAc,GACd,MAAM,GACN,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,CAAC;AAEvB,MAAM,MAAM,sBAAsB,GAAG,wBAAwB,CAAC,mBAAmB,CAAC,CAAC;AAEnF,qIAAqI;AACrI,eAAO,MAAM,kBAAkB,GAC7B,MAAM,SAAS,EACf,IAAI,SAAS,KACZ,MAAM,GAAG,OACgD,CAAC;AAwD7D;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,SAAS,KAAG,MAAM,EAAE,EAazD,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAClC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACpC,aAAa,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;IAChD,eAAe,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;IACpD,gBAAgB,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACtD,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAC5D,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,QAAQ,EAAE,CACR,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/B,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IACvD,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACpE,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAOF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,gMAclC,yBAAyB;0BAoBjB,SAAS,MAAM,SAAS,SAAQ,iBAAiB;8BAsBjD,SAAS,MAAM,SAAS,UAAU,MAAM,GAAG,OAAO;;;4BAkD/C,sBAAsB;;4BAcjB,mBAAmB;CAmFrC,CAAC"}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useSelectionDragCopy = exports.linkFormulasFor = exports.insertShiftForDrop = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var grid_1 = require("@rowsncolumns/grid");
|
|
6
|
+
var utils_1 = require("@rowsncolumns/utils");
|
|
7
|
+
var react_1 = require("react");
|
|
8
|
+
var move_overwrite_1 = require("../api/move-overwrite");
|
|
9
|
+
/** Shift direction of an Insert Cut Cells move (`planInsertCutCells`' rule): right only when the drop stays on the source's rows. */
|
|
10
|
+
var insertShiftForDrop = function (from, to) {
|
|
11
|
+
return to.startRowIndex === from.startRowIndex ? "right" : "down";
|
|
12
|
+
};
|
|
13
|
+
exports.insertShiftForDrop = insertShiftForDrop;
|
|
14
|
+
/** A key/value clipboard for a synthetic copy: a real `DataTransfer` where the DOM has one. */
|
|
15
|
+
var createClipboardData = function () {
|
|
16
|
+
if (typeof DataTransfer === "function") {
|
|
17
|
+
try {
|
|
18
|
+
return new DataTransfer();
|
|
19
|
+
}
|
|
20
|
+
catch (_a) {
|
|
21
|
+
/* fall through */
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
var store = new Map();
|
|
25
|
+
return {
|
|
26
|
+
setData: function (type, value) { return void store.set(type, String(value)); },
|
|
27
|
+
getData: function (type) { var _a; return (_a = store.get(type)) !== null && _a !== void 0 ? _a : ""; },
|
|
28
|
+
clearData: function () { return store.clear(); },
|
|
29
|
+
get types() {
|
|
30
|
+
return tslib_1.__spreadArray([], tslib_1.__read(store.keys()), false);
|
|
31
|
+
},
|
|
32
|
+
get items() {
|
|
33
|
+
return tslib_1.__spreadArray([], tslib_1.__read(store.keys()), false).map(function (type) { return ({ kind: "string", type: type }); });
|
|
34
|
+
},
|
|
35
|
+
files: [],
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
var createClipboardEvent = function (type, clipboardData) {
|
|
39
|
+
if (typeof ClipboardEvent === "function") {
|
|
40
|
+
try {
|
|
41
|
+
var event_1 = new ClipboardEvent(type, {
|
|
42
|
+
clipboardData: clipboardData,
|
|
43
|
+
bubbles: false,
|
|
44
|
+
cancelable: true,
|
|
45
|
+
});
|
|
46
|
+
if (event_1.clipboardData === clipboardData)
|
|
47
|
+
return event_1;
|
|
48
|
+
}
|
|
49
|
+
catch (_a) {
|
|
50
|
+
/* fall through */
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
var defaultPrevented = false;
|
|
54
|
+
return {
|
|
55
|
+
type: type,
|
|
56
|
+
clipboardData: clipboardData,
|
|
57
|
+
preventDefault: function () {
|
|
58
|
+
defaultPrevented = true;
|
|
59
|
+
},
|
|
60
|
+
get defaultPrevented() {
|
|
61
|
+
return defaultPrevented;
|
|
62
|
+
},
|
|
63
|
+
stopPropagation: function () { },
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Excel "Link Here": each destination cell reads its source cell. A single cell links
|
|
68
|
+
* absolutely (`=$A$1`), a range relatively (`=A1`), as Paste Link writes them.
|
|
69
|
+
*/
|
|
70
|
+
var linkFormulasFor = function (from) {
|
|
71
|
+
var single = from.startRowIndex === from.endRowIndex &&
|
|
72
|
+
from.startColumnIndex === from.endColumnIndex;
|
|
73
|
+
var rows = [];
|
|
74
|
+
for (var r = from.startRowIndex; r <= from.endRowIndex; r++) {
|
|
75
|
+
var row = [];
|
|
76
|
+
for (var c = from.startColumnIndex; c <= from.endColumnIndex; c++) {
|
|
77
|
+
row.push("=".concat((0, utils_1.cellToAddress)({ rowIndex: r, columnIndex: c }, single, single)));
|
|
78
|
+
}
|
|
79
|
+
rows.push(row);
|
|
80
|
+
}
|
|
81
|
+
return rows;
|
|
82
|
+
};
|
|
83
|
+
exports.linkFormulasFor = linkFormulasFor;
|
|
84
|
+
var defaultConfirm = function (message) {
|
|
85
|
+
return typeof window === "undefined" || typeof window.confirm !== "function"
|
|
86
|
+
? true
|
|
87
|
+
: window.confirm(message);
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Copy gestures of the selection border (Excel): Ctrl/⌥+drag copies, Ctrl+Shift/⌥⇧+drag
|
|
91
|
+
* inserts a copy, and a right-button drag opens the drop menu. A copy runs through the
|
|
92
|
+
* host's own `onCopy` → `onPaste` into a private clipboard — the system clipboard and the
|
|
93
|
+
* copied-range marquee are untouched — so the host's paste gates (protection, locked
|
|
94
|
+
* ranges, readonly) refuse a drop exactly as they refuse a paste.
|
|
95
|
+
*/
|
|
96
|
+
var useSelectionDragCopy = function (_a) {
|
|
97
|
+
var sheetId = _a.sheetId, _b = _a.readonly, readonly = _b === void 0 ? false : _b, onCopy = _a.onCopy, onPaste = _a.onPaste, onChangeBatch = _a.onChangeBatch, onMoveSelection = _a.onMoveSelection, onInsertCutCells = _a.onInsertCutCells, onInsertCopiedCells = _a.onInsertCopiedCells, _c = _a.confirmOverwrite, confirmOverwrite = _c === void 0 ? defaultConfirm : _c, getValue = _a.getValue, onChangeSelections = _a.onChangeSelections, onChangeActiveCell = _a.onChangeActiveCell, focusSheet = _a.focusSheet;
|
|
98
|
+
var _d = tslib_1.__read((0, react_1.useState)(null), 2), dropMenu = _d[0], setDropMenu = _d[1];
|
|
99
|
+
/** Serialize `from` through the host's copy; `null` when the host refused or wrote nothing. */
|
|
100
|
+
var copyToPrivateClipboard = (0, react_1.useCallback)(function (from) {
|
|
101
|
+
if (!onCopy)
|
|
102
|
+
return null;
|
|
103
|
+
var clipboardData = createClipboardData();
|
|
104
|
+
var copyEvent = createClipboardEvent("copy", clipboardData);
|
|
105
|
+
if (onCopy(copyEvent, sheetId, [from], false) === false)
|
|
106
|
+
return null;
|
|
107
|
+
// A host that defers its copy (e.g. to load cells first) leaves the clipboard empty —
|
|
108
|
+
// write nothing rather than an empty block.
|
|
109
|
+
return clipboardData.types.length ? clipboardData : null;
|
|
110
|
+
}, [onCopy, sheetId]);
|
|
111
|
+
var copySelection = (0, react_1.useCallback)(function (from, to, kind) {
|
|
112
|
+
if (kind === void 0) { kind = "all"; }
|
|
113
|
+
if (readonly || !onPaste)
|
|
114
|
+
return false;
|
|
115
|
+
var clipboardData = copyToPrivateClipboard(from);
|
|
116
|
+
if (!clipboardData)
|
|
117
|
+
return false;
|
|
118
|
+
if (kind !== "all") {
|
|
119
|
+
var options = {
|
|
120
|
+
paste: kind === "values" ? "values" : "formats",
|
|
121
|
+
};
|
|
122
|
+
clipboardData.setData("pasteSpecialOptions", JSON.stringify(options));
|
|
123
|
+
}
|
|
124
|
+
var pasteEvent = createClipboardEvent("paste", clipboardData);
|
|
125
|
+
var target = {
|
|
126
|
+
rowIndex: to.range.startRowIndex,
|
|
127
|
+
columnIndex: to.range.startColumnIndex,
|
|
128
|
+
};
|
|
129
|
+
void onPaste(pasteEvent, sheetId, sheetId, [from], target, [to], [to], false);
|
|
130
|
+
return true;
|
|
131
|
+
}, [readonly, onPaste, copyToPrivateClipboard, sheetId]);
|
|
132
|
+
var insertCopiedCells = (0, react_1.useCallback)(function (from, to, shift) {
|
|
133
|
+
if (readonly || !onInsertCopiedCells)
|
|
134
|
+
return false;
|
|
135
|
+
var clipboardData = copyToPrivateClipboard(from);
|
|
136
|
+
if (!clipboardData)
|
|
137
|
+
return false;
|
|
138
|
+
void onInsertCopiedCells(createClipboardEvent("paste", clipboardData), sheetId, from, to, shift !== null && shift !== void 0 ? shift : (0, exports.insertShiftForDrop)(from.range, to.range));
|
|
139
|
+
return true;
|
|
140
|
+
}, [readonly, onInsertCopiedCells, copyToPrivateClipboard, sheetId]);
|
|
141
|
+
var linkSelection = (0, react_1.useCallback)(function (from, to) {
|
|
142
|
+
if (readonly || !onChangeBatch)
|
|
143
|
+
return false;
|
|
144
|
+
onChangeBatch(sheetId, to.range, (0, exports.linkFormulasFor)(from.range));
|
|
145
|
+
return true;
|
|
146
|
+
}, [readonly, onChangeBatch, sheetId]);
|
|
147
|
+
/** Drop-menu entries the host can run for this drop (Excel lists them in this order). */
|
|
148
|
+
var getDropActions = (0, react_1.useCallback)(function (menu) {
|
|
149
|
+
var actions = [];
|
|
150
|
+
if (onMoveSelection)
|
|
151
|
+
actions.push("move");
|
|
152
|
+
if (onPaste && onCopy)
|
|
153
|
+
actions.push("copy", "copy-values", "copy-formats");
|
|
154
|
+
if (onChangeBatch)
|
|
155
|
+
actions.push("link");
|
|
156
|
+
if (onInsertCopiedCells && onCopy) {
|
|
157
|
+
actions.push("shift-down-copy", "shift-right-copy");
|
|
158
|
+
}
|
|
159
|
+
if (onInsertCutCells) {
|
|
160
|
+
// The engine's insert-move opens the band along the drop's own axis, so only the
|
|
161
|
+
// entry matching it can run.
|
|
162
|
+
actions.push((0, exports.insertShiftForDrop)(menu.from.range, menu.to.range) === "down"
|
|
163
|
+
? "shift-down-move"
|
|
164
|
+
: "shift-right-move");
|
|
165
|
+
}
|
|
166
|
+
return actions;
|
|
167
|
+
}, [onMoveSelection, onPaste, onCopy, onChangeBatch, onInsertCopiedCells, onInsertCutCells]);
|
|
168
|
+
var openDropMenu = (0, react_1.useCallback)(function (request) {
|
|
169
|
+
if (readonly)
|
|
170
|
+
return;
|
|
171
|
+
setDropMenu(request);
|
|
172
|
+
}, [readonly]);
|
|
173
|
+
/** Cancel / Esc / click-away: nothing changes, the selection stays on the source. */
|
|
174
|
+
var closeDropMenu = (0, react_1.useCallback)(function () {
|
|
175
|
+
setDropMenu(null);
|
|
176
|
+
focusSheet === null || focusSheet === void 0 ? void 0 : focusSheet();
|
|
177
|
+
}, [focusSheet]);
|
|
178
|
+
var runDropAction = (0, react_1.useCallback)(function (action) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
179
|
+
var menu, from, to, hasValue, replaces, _a, done;
|
|
180
|
+
return tslib_1.__generator(this, function (_b) {
|
|
181
|
+
switch (_b.label) {
|
|
182
|
+
case 0:
|
|
183
|
+
menu = dropMenu;
|
|
184
|
+
setDropMenu(null);
|
|
185
|
+
if (!menu || readonly)
|
|
186
|
+
return [2 /*return*/];
|
|
187
|
+
from = menu.from, to = menu.to;
|
|
188
|
+
hasValue = function (rowIndex, columnIndex) {
|
|
189
|
+
return !(0, grid_1.isNull)(getValue(sheetId, rowIndex, columnIndex));
|
|
190
|
+
};
|
|
191
|
+
replaces = action === "move"
|
|
192
|
+
? (0, move_overwrite_1.needsOverwritePrompt)(from.range, to.range, hasValue)
|
|
193
|
+
: action === "copy" || action === "copy-values" || action === "link"
|
|
194
|
+
? (0, move_overwrite_1.needsCopyOverwritePrompt)(to.range, hasValue)
|
|
195
|
+
: false;
|
|
196
|
+
_a = replaces;
|
|
197
|
+
if (!_a) return [3 /*break*/, 2];
|
|
198
|
+
return [4 /*yield*/, confirmOverwrite(move_overwrite_1.MOVE_OVERWRITE_PROMPT)];
|
|
199
|
+
case 1:
|
|
200
|
+
_a = !(_b.sent());
|
|
201
|
+
_b.label = 2;
|
|
202
|
+
case 2:
|
|
203
|
+
if (_a) {
|
|
204
|
+
focusSheet === null || focusSheet === void 0 ? void 0 : focusSheet();
|
|
205
|
+
return [2 /*return*/];
|
|
206
|
+
}
|
|
207
|
+
done = false;
|
|
208
|
+
switch (action) {
|
|
209
|
+
case "move":
|
|
210
|
+
onMoveSelection === null || onMoveSelection === void 0 ? void 0 : onMoveSelection(sheetId, from, to);
|
|
211
|
+
done = !!onMoveSelection;
|
|
212
|
+
break;
|
|
213
|
+
case "copy":
|
|
214
|
+
done = copySelection(from, to, "all");
|
|
215
|
+
break;
|
|
216
|
+
case "copy-values":
|
|
217
|
+
done = copySelection(from, to, "values");
|
|
218
|
+
break;
|
|
219
|
+
case "copy-formats":
|
|
220
|
+
done = copySelection(from, to, "formats");
|
|
221
|
+
break;
|
|
222
|
+
case "link":
|
|
223
|
+
done = linkSelection(from, to);
|
|
224
|
+
break;
|
|
225
|
+
case "shift-down-copy":
|
|
226
|
+
done = insertCopiedCells(from, to, "down");
|
|
227
|
+
break;
|
|
228
|
+
case "shift-right-copy":
|
|
229
|
+
done = insertCopiedCells(from, to, "right");
|
|
230
|
+
break;
|
|
231
|
+
case "shift-down-move":
|
|
232
|
+
case "shift-right-move":
|
|
233
|
+
onInsertCutCells === null || onInsertCutCells === void 0 ? void 0 : onInsertCutCells(sheetId, from, to);
|
|
234
|
+
done = !!onInsertCutCells;
|
|
235
|
+
break;
|
|
236
|
+
}
|
|
237
|
+
if (done) {
|
|
238
|
+
// Excel selects the destination block after the drop.
|
|
239
|
+
onChangeActiveCell === null || onChangeActiveCell === void 0 ? void 0 : onChangeActiveCell(sheetId, {
|
|
240
|
+
rowIndex: to.range.startRowIndex,
|
|
241
|
+
columnIndex: to.range.startColumnIndex,
|
|
242
|
+
});
|
|
243
|
+
onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections([to]);
|
|
244
|
+
}
|
|
245
|
+
focusSheet === null || focusSheet === void 0 ? void 0 : focusSheet();
|
|
246
|
+
return [2 /*return*/];
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
}); }, [
|
|
250
|
+
dropMenu,
|
|
251
|
+
readonly,
|
|
252
|
+
getValue,
|
|
253
|
+
sheetId,
|
|
254
|
+
confirmOverwrite,
|
|
255
|
+
onMoveSelection,
|
|
256
|
+
copySelection,
|
|
257
|
+
linkSelection,
|
|
258
|
+
insertCopiedCells,
|
|
259
|
+
onInsertCutCells,
|
|
260
|
+
onChangeActiveCell,
|
|
261
|
+
onChangeSelections,
|
|
262
|
+
focusSheet,
|
|
263
|
+
]);
|
|
264
|
+
return {
|
|
265
|
+
copySelection: copySelection,
|
|
266
|
+
insertCopiedCells: insertCopiedCells,
|
|
267
|
+
dropMenu: dropMenu,
|
|
268
|
+
dropActions: dropMenu ? getDropActions(dropMenu) : [],
|
|
269
|
+
openDropMenu: openDropMenu,
|
|
270
|
+
closeDropMenu: closeDropMenu,
|
|
271
|
+
runDropAction: runDropAction,
|
|
272
|
+
};
|
|
273
|
+
};
|
|
274
|
+
exports.useSelectionDragCopy = useSelectionDragCopy;
|
|
@@ -66,7 +66,14 @@ export type UseSelectionRendererProps = {
|
|
|
66
66
|
calculatedColumnFill?: CalculatedColumnFill | null;
|
|
67
67
|
canStopAutoCalculatedColumns?: boolean;
|
|
68
68
|
onChooseCalculatedColumnOption?(option: CalculatedColumnOption): void;
|
|
69
|
+
/** The active cell's error-checking flag, when it carries the green ◤ (smart tag beside it). */
|
|
70
|
+
errorCheck?: SelectionNewProps["errorCheck"];
|
|
71
|
+
errorCheckMenuOpen?: boolean;
|
|
72
|
+
onErrorCheckMenuOpenChange?: SelectionNewProps["onErrorCheckMenuOpenChange"];
|
|
73
|
+
onChooseErrorCheckOption?: SelectionNewProps["onChooseErrorCheckOption"];
|
|
69
74
|
onSplitTextToColumns: CanvasGridProps["onSplitTextToColumns"];
|
|
75
|
+
/** Paste Options gallery choice (re-applies the last paste). */
|
|
76
|
+
onChoosePasteOption?: SelectionNewProps["onChoosePasteOption"];
|
|
70
77
|
hoveredCell?: CellInterface | null;
|
|
71
78
|
onRemoveQuickEdit(range: SheetRange): void;
|
|
72
79
|
onAddQuickEdit(range: SheetRange): void;
|
|
@@ -77,5 +84,5 @@ export type UseSelectionRendererProps = {
|
|
|
77
84
|
*/
|
|
78
85
|
isFillShrink?: boolean;
|
|
79
86
|
};
|
|
80
|
-
export declare const useSelectionRenderer: ({ sheetId, selectionCount, selectionBackgroundColor, selectionBorderColor, selectionStrokeWidth, showActiveCellBorderInSelection, onSelectionMouseDown, onChangeActiveCell, onChangeSelections, onRequestEditTable, onRequestEditPivotTable, onMouseDownResizeHandle, onMouseDownChartSourceResizeHandle, onMouseDownMoveSelection, isDraggingMoveSelection, onFlashEnd, getSheetName, resizeHandleSize, showSelectionResizeHandles, resizeHandleBorderColor, SelectionTitleComponent, isResizingTable, fillHandleSize, showFillHandle, enableMagicFill, MagicFillComponent, MagicFillContent, readonly, showPasteMenu, fillOptions, onChooseFillType, onOpenFillSeriesDialog, onCloseFillOptions, insertOptions, onChooseInsertOption, tableAutoExpansion, canStopAutoExpandingTables, onChooseTableAutoExpansionOption, calculatedColumnFill, canStopAutoCalculatedColumns, onChooseCalculatedColumnOption, hoveredCell, onSplitTextToColumns, onRemoveQuickEdit, onAddQuickEdit, QuickEdit, PasteMenu, SuggestionAction, cachedHoveredSelectionIds, isFillShrink, }: UseSelectionRendererProps) => (props: SelectionProps<SelectionAttributes>) => React.JSX.Element | null;
|
|
87
|
+
export declare const useSelectionRenderer: ({ sheetId, selectionCount, selectionBackgroundColor, selectionBorderColor, selectionStrokeWidth, showActiveCellBorderInSelection, onSelectionMouseDown, onChangeActiveCell, onChangeSelections, onRequestEditTable, onRequestEditPivotTable, onMouseDownResizeHandle, onMouseDownChartSourceResizeHandle, onMouseDownMoveSelection, isDraggingMoveSelection, onFlashEnd, getSheetName, resizeHandleSize, showSelectionResizeHandles, resizeHandleBorderColor, SelectionTitleComponent, isResizingTable, fillHandleSize, showFillHandle, enableMagicFill, MagicFillComponent, MagicFillContent, readonly, showPasteMenu, fillOptions, onChooseFillType, onOpenFillSeriesDialog, onCloseFillOptions, insertOptions, onChooseInsertOption, tableAutoExpansion, canStopAutoExpandingTables, onChooseTableAutoExpansionOption, calculatedColumnFill, canStopAutoCalculatedColumns, onChooseCalculatedColumnOption, errorCheck, errorCheckMenuOpen, onErrorCheckMenuOpenChange, onChooseErrorCheckOption, hoveredCell, onSplitTextToColumns, onChoosePasteOption, onRemoveQuickEdit, onAddQuickEdit, QuickEdit, PasteMenu, SuggestionAction, cachedHoveredSelectionIds, isFillShrink, }: UseSelectionRendererProps) => (props: SelectionProps<SelectionAttributes>) => React.JSX.Element | null;
|
|
81
88
|
//# sourceMappingURL=use-selection-renderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-selection-renderer.d.ts","sourceRoot":"","sources":["../../../hooks/use-selection-renderer.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"use-selection-renderer.d.ts","sourceRoot":"","sources":["../../../hooks/use-selection-renderer.tsx"],"names":[],"mappings":"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"}
|