@rowsncolumns/spreadsheet 10.6.4 → 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/alignment.d.ts +25 -0
- package/dist/cjs/components/cell/alignment.d.ts.map +1 -1
- package/dist/cjs/components/cell/alignment.js +39 -1
- package/dist/cjs/components/cell/cell-background.d.ts +16 -0
- package/dist/cjs/components/cell/cell-background.d.ts.map +1 -1
- package/dist/cjs/components/cell/cell-background.js +141 -54
- package/dist/cjs/components/cell/cell-text-runs.d.ts +12 -5
- package/dist/cjs/components/cell/cell-text-runs.d.ts.map +1 -1
- package/dist/cjs/components/cell/cell-text-runs.js +18 -20
- package/dist/cjs/components/cell/index.d.ts.map +1 -1
- package/dist/cjs/components/cell/index.js +26 -21
- 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/helpers.d.ts +5 -0
- package/dist/cjs/helpers.d.ts.map +1 -1
- package/dist/cjs/helpers.js +8 -4
- 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/alignment.d.ts +25 -0
- package/dist/esm/components/cell/alignment.d.ts.map +1 -1
- package/dist/esm/components/cell/alignment.js +33 -0
- package/dist/esm/components/cell/cell-background.d.ts +16 -0
- package/dist/esm/components/cell/cell-background.d.ts.map +1 -1
- package/dist/esm/components/cell/cell-background.js +106 -36
- package/dist/esm/components/cell/cell-text-runs.d.ts +12 -5
- package/dist/esm/components/cell/cell-text-runs.d.ts.map +1 -1
- package/dist/esm/components/cell/cell-text-runs.js +17 -22
- package/dist/esm/components/cell/index.d.ts.map +1 -1
- package/dist/esm/components/cell/index.js +25 -20
- 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/helpers.d.ts +5 -0
- package/dist/esm/helpers.d.ts.map +1 -1
- package/dist/esm/helpers.js +8 -4
- 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
|
@@ -15,6 +15,8 @@ var merge_1 = tslib_1.__importDefault(require("lodash/merge"));
|
|
|
15
15
|
var throttle_1 = tslib_1.__importDefault(require("lodash/throttle"));
|
|
16
16
|
var react_1 = tslib_1.__importStar(require("react"));
|
|
17
17
|
var banded_ranges_1 = require("../../api/banded-ranges");
|
|
18
|
+
var error_checking_1 = require("../../api/error-checking");
|
|
19
|
+
var formula_bar_editor_value_atom_1 = require("../../atoms/formula-bar-editor-value.atom");
|
|
18
20
|
var insert_options_1 = require("../../api/insert-options");
|
|
19
21
|
var calculated_column_fill_1 = require("../../api/calculated-column-fill");
|
|
20
22
|
var table_auto_expansion_1 = require("../../api/table-auto-expansion");
|
|
@@ -31,7 +33,8 @@ var atoms_1 = require("../../atoms");
|
|
|
31
33
|
var active_editor_atom_1 = require("../../atoms/active-editor.atom");
|
|
32
34
|
var watch_window_atom_1 = require("../../atoms/watch-window.atom");
|
|
33
35
|
var editing_cell_atom_1 = require("../../atoms/editing-cell.atom");
|
|
34
|
-
var
|
|
36
|
+
var enter_key_direction_atom_1 = require("../../atoms/enter-key-direction.atom");
|
|
37
|
+
var formula_bar_editor_value_atom_2 = require("../../atoms/formula-bar-editor-value.atom");
|
|
35
38
|
var formula_selection_state_atom_1 = require("../../atoms/formula-selection-state.atom");
|
|
36
39
|
var formula_selections_atom_1 = require("../../atoms/formula-selections.atom");
|
|
37
40
|
var magic_fill_state_atom_1 = require("../../atoms/magic-fill-state.atom");
|
|
@@ -84,6 +87,8 @@ var use_scale_listener_1 = require("../../hooks/use-scale-listener");
|
|
|
84
87
|
var use_selected_rows_columns_1 = require("../../hooks/use-selected-rows-columns");
|
|
85
88
|
var use_selection_1 = require("../../hooks/use-selection");
|
|
86
89
|
var use_selection_change_1 = require("../../hooks/use-selection-change");
|
|
90
|
+
var use_selection_drag_copy_1 = require("../../hooks/use-selection-drag-copy");
|
|
91
|
+
var selection_drop_menu_1 = require("../selection-drop-menu");
|
|
87
92
|
var use_selection_interceptors_1 = require("../../hooks/use-selection-interceptors");
|
|
88
93
|
var use_selection_move_1 = require("../../hooks/use-selection-move");
|
|
89
94
|
var use_selection_renderer_1 = require("../../hooks/use-selection-renderer");
|
|
@@ -102,6 +107,7 @@ var scroll_subscriber_1 = require("../../signals/scroll-subscriber");
|
|
|
102
107
|
var themes_1 = require("../../themes");
|
|
103
108
|
var fill_series_1 = require("../../api/fill-series");
|
|
104
109
|
var cell_1 = require("../cell");
|
|
110
|
+
var autocomplete_1 = require("../../api/autocomplete");
|
|
105
111
|
var cell_editor_1 = require("../cell-editor");
|
|
106
112
|
var context_menu_1 = require("../context-menu");
|
|
107
113
|
var menu_1 = require("../context-menu/menu");
|
|
@@ -135,8 +141,8 @@ function isDetachedEditor(editor) {
|
|
|
135
141
|
return element != null && !element.isConnected;
|
|
136
142
|
}
|
|
137
143
|
function CanvasGridComponent(props, forwardedRef) {
|
|
138
|
-
var _a, _b, _c, _d;
|
|
139
|
-
var licenseKey = props.licenseKey, sheetId = props.sheetId, sheetType = props.sheetType, _e = props.ChartSheetView, ChartSheetViewComponent = _e === void 0 ? chart_sheet_view_1.ChartSheetView : _e, instanceId = props.instanceId, _f = props.activeCell, activeCell = _f === void 0 ? config_1.DEFAULT_ACTIVE_CELL : _f, _g = props.selections, selections = _g === void 0 ? config_1.DEFAULT_ARRAY : _g, _h = props.frozenColumnCount, frozenColumnCount = _h === void 0 ? 0 : _h, _j = props.frozenRowCount, frozenRowCount = _j === void 0 ? 0 : _j, _k = props.rowCount, rowCount = _k === void 0 ? config_1.DEFAULT_ROW_COUNT : _k, _l = props.columnCount, columnCount = _l === void 0 ? config_1.DEFAULT_COLUMN_COUNT : _l, autoFocus = props.autoFocus, basicFilter = props.basicFilter, tables = props.tables, namedRanges = props.namedRanges, _m = props.bandedRanges, bandedRanges = _m === void 0 ? config_1.DEFAULT_ARRAY : _m, _o = props.tableBorderColor, tableBorderColor = _o === void 0 ? "#008000" : _o, _p = props.filterIconColor, filterIconColor = _p === void 0 ? config_1.FILTER_BUTTON_GLYPH_COLOR : _p, conditionalFormats = props.conditionalFormats, _q = props.showFilterIcon, showFilterIcon = _q === void 0 ? true : _q, _r = props.showCalculatedColumnIcon, showCalculatedColumnIcon = _r === void 0 ? true : _r, _s = props.showHeaders, showHeaders = _s === void 0 ? true : _s, _t = props.defaultColumnWidth, defaultColumnWidth = _t === void 0 ? config_1.DEFAULT_COLUMN_WIDTH : _t, _u = props.defaultRowHeight, defaultRowHeight = _u === void 0 ? config_1.DEFAULT_ROW_HEIGHT : _u, _v = props.lineHeightMode, lineHeightMode = _v === void 0 ? "fontMetrics" : _v, _w = props.columnHeaderHeight, columnHeaderHeight = _w === void 0 ? config_1.COLUMN_HEADER_HEIGHT : _w, _x = props.rowHeaderWidth, rowHeaderWidth = _x === void 0 ? config_1.ROW_HEADER_WIDTH : _x, _y = props.gridLineColor, gridLineColor = _y === void 0 ? config_1.GRIDLINE_COLOR : _y, _z = props.cellBackgroundColor, cellBackgroundColor = _z === void 0 ? config_1.DEFAULT_CELL_BACKGROUND_COLOR : _z, _0 = props.cellColor, cellColor = _0 === void 0 ? config_1.DEFAULT_CELL_COLOR : _0, _1 = props.headerBorderColor, headerBorderColor = _1 === void 0 ? config_1.DEFAULT_HEADER_BORDER_COLOR : _1, _2 = props.headerBackgroundColor, headerBackgroundColor = _2 === void 0 ? config_1.DEFAULT_HEADER_BG : _2, _3 = props.headerColor, headerColor = _3 === void 0 ? config_1.DEFAULT_HEADER_COLOR : _3, _4 = props.headerActiveBackgroundColor, headerActiveBackgroundColor = _4 === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_BG : _4, _5 = props.headerSelectedBackgroundColor, headerSelectedBackgroundColor = _5 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_BG : _5, _6 = props.headerSelectedColor, headerSelectedColor = _6 === void 0 ? "white" : _6, _7 = props.headerTableBackgroundColor, headerTableBackgroundColor = _7 === void 0 ? config_1.DEFAULT_HEADER_TABLE_BG : _7, _8 = props.headerTableActiveBackgroundColor, headerTableActiveBackgroundColor = _8 === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_TABLE_BG : _8, _9 = props.headerTableSelectedBackgroundColor, headerTableSelectedBackgroundColor = _9 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_TABLE_BG : _9, _10 = props.frozenShadowColor, frozenShadowColor = _10 === void 0 ? headerBorderColor : _10, _11 = props.frozenShadowThickness, frozenShadowThickness = _11 === void 0 ? 1 : _11, _12 = props.selectionBackgroundColor, selectionBackgroundColor = _12 === void 0 ? config_1.SELECTION_BG : _12, _13 = props.selectionBorderColor, selectionBorderColor = _13 === void 0 ? config_1.SELECTION_BORDER : _13, selectionStrokeWidth = props.selectionStrokeWidth, showActiveCellBorderInSelection = props.showActiveCellBorderInSelection, _14 = props.selectionDragBorderColor, selectionDragBorderColor = _14 === void 0 ? config_1.SELECTION_BORDER : _14, chartSelectedColor = props.chartSelectedColor, _15 = props.chipBackgroundColor, chipBackgroundColor = _15 === void 0 ? config_1.CHIP_COLOR : _15, _16 = props.merges, merges = _16 === void 0 ? config_1.DEFAULT_ARRAY : _16, borderStyles = props.borderStyles, protectedRanges = props.protectedRanges, _17 = props.isWorkbookProtected, isWorkbookProtectedProp = _17 === void 0 ? false : _17, getSheetProtection = props.getSheetProtection, pivotTables = props.pivotTables, charts = props.charts, onUpdateChart = props.onUpdateChart, onChangeZOrder = props.onChangeZOrder, embeds = props.embeds, slicers = props.slicers, _18 = props.rowMetadata, rowMetadata = _18 === void 0 ? config_1.DEFAULT_ARRAY : _18, _19 = props.columnMetadata, columnMetadata = _19 === void 0 ? config_1.DEFAULT_ARRAY : _19, _20 = props.scale, scale = _20 === void 0 ? 1 : _20, _21 = props.zoomSpeed, zoomSpeed = _21 === void 0 ? 1 : _21, _22 = props.overscanCount, overscanCount = _22 === void 0 ? 3 : _22, enableEditOnEnterKeyProp = props.enableEditOnEnterKey, shouldHandleKeyDown = props.shouldHandleKeyDown, _23 = props.enableTextOverflow, enableTextOverflow = _23 === void 0 ? true : _23, _showGridLines = props.showGridLines, showZeros = props.showZeros, pageBreaks = props.pageBreaks, _24 = props.showFormulas, showFormulas = _24 === void 0 ? false : _24, _25 = props.protectFormulas, protectFormulas = _25 === void 0 ? false : _25, _26 = props.showFrozenSeparator, showFrozenSeparator = _26 === void 0 ? true : _26, _27 = props.HeaderCell, HeaderCell = _27 === void 0 ? header_cell_1.HeaderCell : _27, _28 = props.Cell, Cell = _28 === void 0 ? cell_1.Cell : _28, _29 = props.SelectionTitleComponent, SelectionTitleComponent = _29 === void 0 ? title_1.SelectionTitle : _29, _30 = props.CellEditor, CellEditor = _30 === void 0 ? cell_editor_1.CellEditor : _30, CellTooltip = props.CellTooltip, _31 = props.ContextMenu, ContextMenu = _31 === void 0 ? context_menu_1.ContextMenu : _31, _32 = props.ContextMenuWrapper, ContextMenuWrapper = _32 === void 0 ? use_context_menu_1.DefaultContextMenuWrapper : _32, _33 = props.FilterBox, FilterBox = _33 === void 0 ? filter_box_1.FilterBox : _33, _34 = props.HeaderMoveDragComponent, HeaderMoveDragComponent = _34 === void 0 ? header_move_1.HeaderMoveDragComponent : _34, SuggestionsDropdown = props.SuggestionsDropdown, _35 = props.stickyEditor, stickyEditor = _35 === void 0 ? true : _35, _36 = props.scrollSnap, scrollSnap = _36 === void 0 ? false : _36, scrollThrottleTimeout = props.scrollThrottleTimeout, preventBrowserDefaultScroll = props.preventBrowserDefaultScroll, _37 = props.mouseMoveThrottleTimeout, mouseMoveThrottleTimeout = _37 === void 0 ? 60 : _37, _38 = props.tooltipIntentInterval, tooltipIntentInterval = _38 === void 0 ? 60 : _38, selectionPolicy = props.selectionPolicy, users = props.users, userId = props.userId, renderCollaboratorCursor = props.renderCollaboratorCursor, functionDescriptions = props.functionDescriptions, _39 = props.showHeaderMenuButton, showHeaderMenuButton = _39 === void 0 ? true : _39, _40 = props.scrollbarSize, scrollbarSize = _40 === void 0 ? config_1.SCROLLBAR_SIZE : _40, _41 = props.theme, theme = _41 === void 0 ? config_1.defaultSpreadsheetTheme : _41, _42 = props.showNotes, showNotes = _42 === void 0 ? true : _42, _43 = props.showComments, showComments = _43 === void 0 ? true : _43, locale = props.locale, formulaLocaleProp = props.formulaLocale, agentSuggestions = props.agentSuggestions, onReviewSuggestion = props.onReviewSuggestion, onShowFormulas = props.onShowFormulas, getDataRowCount = props.getDataRowCount, getDataRegion = props.getDataRegion, getChartComponent = props.getChartComponent, getEmbedComponent = props.getEmbedComponent, getSlicerComponent = props.getSlicerComponent, onChange = props.onChange, onChangeBatch = props.onChangeBatch, onExpandCollapse = props.onExpandCollapse, onPivotDrillDown = props.onPivotDrillDown, onDelete = props.onDelete, onChangeEditorValue = props.onChangeEditorValue, onFill = props.onFill, onRequestCalculate = props.onRequestCalculate, onChangeActiveCell = props.onChangeActiveCell, onChangeActiveSheet = props.onChangeActiveSheet, onChangeSelections = props.onChangeSelections, getSheetName = props.getSheetName, getSheetId = props.getSheetId, getCellData = props.getCellData, getNoteProp = props.getNote, getTextFormatRuns = props.getTextFormatRuns, getDataValidation = props.getDataValidation, getEffectiveFormat = props.getEffectiveFormat, getFormattedValueProp = props.getFormattedValue, getTooltipContent = props.getTooltipContent, errorResolutionComponent = props.errorResolutionComponent, getEffectiveValueProp = props.getEffectiveValue, getSparklineGroup = props.getSparklineGroup, getUserEnteredExtendedValue = props.getUserEnteredExtendedValue, getEffectiveExtendedValue = props.getEffectiveExtendedValue, getSheetRowCount = props.getSheetRowCount, getSheetColumnCount = props.getSheetColumnCount, getCellPopoverContent = props.getCellPopoverContent, onScroll = props.onScroll, onViewPortChange = props.onViewPortChange, _44 = props.windowConditionalFormats, windowConditionalFormats = _44 === void 0 ? false : _44, _45 = props.engineConditionalFormatResults, engineConditionalFormatResults = _45 === void 0 ? false : _45, getConditionalFormatRuleStats = props.getConditionalFormatRuleStats, onResize = props.onResize, onAutoResize = props.onAutoResize, onHideColumn = props.onHideColumn, onHideRow = props.onHideRow, onShowColumn = props.onShowColumn, onShowRow = props.onShowRow, onGroupRows = props.onGroupRows, onUngroupRows = props.onUngroupRows, onCollapseRowGroup = props.onCollapseRowGroup, onExpandRowGroup = props.onExpandRowGroup, onGroupColumns = props.onGroupColumns, onUngroupColumns = props.onUngroupColumns, onCollapseColumnGroup = props.onCollapseColumnGroup, onExpandColumnGroup = props.onExpandColumnGroup, onSetOutlineDepth = props.onSetOutlineDepth, onDeleteRow = props.onDeleteRow, onDeleteColumn = props.onDeleteColumn, onInsertRow = props.onInsertRow, onInsertColumn = props.onInsertColumn, onChangeAutoExpandTables = props.onChangeAutoExpandTables, onChangeAutoCalculatedColumns = props.onChangeAutoCalculatedColumns, onInsertCellsShiftDown = props.onInsertCellsShiftDown, onInsertCellsShiftRight = props.onInsertCellsShiftRight, onDeleteCellsShiftLeft = props.onDeleteCellsShiftLeft, onDeleteCellsShiftUp = props.onDeleteCellsShiftUp, onClearContents = props.onClearContents, onMoveColumns = props.onMoveColumns, onMoveRows = props.onMoveRows, onSelectNextSheet = props.onSelectNextSheet, onSelectPreviousSheet = props.onSelectPreviousSheet, onCreateNewSheet = props.onCreateNewSheet, onKeyDown = props.onKeyDown, onChangeFormatting = props.onChangeFormatting, onRepeatFormatting = props.onRepeatFormatting, onClearFormatting = props.onClearFormatting, onRequestEditProtectedRange = props.onRequestEditProtectedRange, onMoveChart = props.onMoveChart, onResizeChart = props.onResizeChart, onDeleteChart = props.onDeleteChart, onCutChart = props.onCutChart, onCopyChart = props.onCopyChart, onMoveEmbed = props.onMoveEmbed, onResizeEmbed = props.onResizeEmbed, onDeleteEmbed = props.onDeleteEmbed, onRequestEditEmbed = props.onRequestEditEmbed, onMoveSlicer = props.onMoveSlicer, onResizeSlicer = props.onResizeSlicer, onDeleteSlicer = props.onDeleteSlicer, onRequestEditSlicer = props.onRequestEditSlicer, onFillRange = props.onFillRange, disableFillRightShortcut = props.disableFillRightShortcut, keymap = props.keymap, onCalculateNow = props.onCalculateNow, onRequestGoTo = props.onRequestGoTo, onMoveSelection = props.onMoveSelection, onInsertCutCells = props.onInsertCutCells, onInsertTime = props.onInsertTime, onInsertDate = props.onInsertDate, onInsertDateTime = props.onInsertDateTime, onInsertAutoSum = props.onInsertAutoSum, onUndo = props.onUndo, onRedo = props.onRedo, batchHistory = props.batchHistory, onPaste = props.onPaste, onCopy = props.onCopy, onCut = props.onCut, onSortColumn = props.onSortColumn, onSortTable = props.onSortTable, onFilterTable = props.onFilterTable, onFilterPivot = props.onFilterPivot, onResizeTable = props.onResizeTable, onUndoTableAutoExpansion = props.onUndoTableAutoExpansion, onUndoCalculatedColumn = props.onUndoCalculatedColumn, onOverwriteCalculatedColumn = props.onOverwriteCalculatedColumn, onRequestEditTable = props.onRequestEditTable, onRequestEditPivotTable = props.onRequestEditPivotTable, onRequestDeletePivotTable = props.onRequestDeletePivotTable, onRequestCreatePivotChart = props.onRequestCreatePivotChart, onRemoveTable = props.onRemoveTable, onCreateTable = props.onCreateTable, onRequestCreateTable = props.onRequestCreateTable, onInsertTableColumn = props.onInsertTableColumn, onDeleteTableColumn = props.onDeleteTableColumn, onInsertTableRow = props.onInsertTableRow, onDeleteTableRow = props.onDeleteTableRow, onUpdateTable = props.onUpdateTable, onRequestResizeTable = props.onRequestResizeTable, onRequestInsertSlicer = props.onRequestInsertSlicer, onCreateBasicFilter = props.onCreateBasicFilter, onRequestDefineNamedRange = props.onRequestDefineNamedRange, onRequestFormatCells = props.onRequestFormatCells, onRequestConditionalFormat = props.onRequestConditionalFormat, onRequestDataValidation = props.onRequestDataValidation, onRequestInsertComment = props.onRequestInsertComment, onRequestInsertLink = props.onRequestInsertLink, onFreezeColumn = props.onFreezeColumn, onFreezeRow = props.onFreezeRow, onUpdateNote = props.onUpdateNote, onProtectRange = props.onProtectRange, onUnProtectRange = props.onUnProtectRange, onSortRange = props.onSortRange, onRequestSearch = props.onRequestSearch, onRequestReplace = props.onRequestReplace, onRequestResize = props.onRequestResize, _46 = props.getRowHeaderText, getRowHeaderText = _46 === void 0 ? helpers_1.getDefaultRowHeader : _46, _47 = props.getColumnHeaderText, getColumnHeaderText = _47 === void 0 ? helpers_1.getDefaultColumnHeader : _47, getAdditionalCellSpacing = props.getAdditionalCellSpacing, _48 = props.tokenizer, defaultTokenizer = _48 === void 0 ? calculator_1.tokenize : _48, onChangeScale = props.onChangeScale, onRemoveLink = props.onRemoveLink, onSelectLink = props.onSelectLink, onSplitTextToColumns = props.onSplitTextToColumns, onRemoveDuplicates = props.onRemoveDuplicates, onGoalSeek = props.onGoalSeek, onSubtotal = props.onSubtotal, onAdvancedFilter = props.onAdvancedFilter, onRequestExpand = props.onRequestExpand, cellExpandPredicate = props.cellExpandPredicate, _49 = props.StructuredResult, StructuredResult = _49 === void 0 ? cell_structured_1.StructuredResultRenderer : _49, getMentions = props.getMentions, getStructuredPropertiesProp = props.getStructuredProperties, getFunctionParameterSuggestions = props.getFunctionParameterSuggestions, shouldFetchFunctionParameters = props.shouldFetchFunctionParameters, MentionTagComponent = props.MentionTagComponent, MentionDropdownItemComponent = props.MentionDropdownItemComponent, _50 = props.showSelectionResizeHandles, showSelectionResizeHandles = _50 === void 0 ? true : _50, enableMagicFill = props.enableMagicFill, _51 = props.enableQuickEdit, enableQuickEdit = _51 === void 0 ? true : _51, MagicFillComponent = props.MagicFillComponent, MagicFillContent = props.MagicFillContent, QuickEdit = props.QuickEdit, PasteMenu = props.PasteMenu, SuggestionAction = props.SuggestionAction, HiddenRowMarkers = props.HiddenRowMarkers, HiddenColumnMarkers = props.HiddenColumnMarkers, enableResizerOverflow = props.enableResizerOverflow, className = props.className, _52 = props.defaultFontSizePoint, defaultFontSizePoint = _52 === void 0 ? config_1.DEFAULT_FONT_SIZE_PT : _52, defaultCellFormat = props.defaultCellFormat, readonly = props.readonly, _53 = props.isComparing, isComparing = _53 === void 0 ? false : _53, getCellDiff = props.getCellDiff, enableDataBoundaryNavigation = props.enableDataBoundaryNavigation, footerHeight = props.footerHeight, footerComponent = props.footerComponent, arrowComponents = props.arrowComponents,
|
|
144
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
145
|
+
var licenseKey = props.licenseKey, sheetId = props.sheetId, sheetType = props.sheetType, _l = props.ChartSheetView, ChartSheetViewComponent = _l === void 0 ? chart_sheet_view_1.ChartSheetView : _l, instanceId = props.instanceId, _m = props.activeCell, activeCell = _m === void 0 ? config_1.DEFAULT_ACTIVE_CELL : _m, _o = props.selections, selections = _o === void 0 ? config_1.DEFAULT_ARRAY : _o, _p = props.frozenColumnCount, frozenColumnCount = _p === void 0 ? 0 : _p, _q = props.frozenRowCount, frozenRowCount = _q === void 0 ? 0 : _q, _r = props.rowCount, rowCount = _r === void 0 ? config_1.DEFAULT_ROW_COUNT : _r, _s = props.columnCount, columnCount = _s === void 0 ? config_1.DEFAULT_COLUMN_COUNT : _s, autoFocus = props.autoFocus, basicFilter = props.basicFilter, tables = props.tables, namedRanges = props.namedRanges, _t = props.bandedRanges, bandedRanges = _t === void 0 ? config_1.DEFAULT_ARRAY : _t, _u = props.tableBorderColor, tableBorderColor = _u === void 0 ? "#008000" : _u, _v = props.filterIconColor, filterIconColor = _v === void 0 ? config_1.FILTER_BUTTON_GLYPH_COLOR : _v, conditionalFormats = props.conditionalFormats, _w = props.showFilterIcon, showFilterIcon = _w === void 0 ? true : _w, _x = props.showCalculatedColumnIcon, showCalculatedColumnIcon = _x === void 0 ? true : _x, _y = props.showHeaders, showHeaders = _y === void 0 ? true : _y, _z = props.defaultColumnWidth, defaultColumnWidth = _z === void 0 ? config_1.DEFAULT_COLUMN_WIDTH : _z, _0 = props.defaultRowHeight, defaultRowHeight = _0 === void 0 ? config_1.DEFAULT_ROW_HEIGHT : _0, _1 = props.lineHeightMode, lineHeightMode = _1 === void 0 ? "fontMetrics" : _1, _2 = props.columnHeaderHeight, columnHeaderHeight = _2 === void 0 ? config_1.COLUMN_HEADER_HEIGHT : _2, _3 = props.rowHeaderWidth, rowHeaderWidth = _3 === void 0 ? config_1.ROW_HEADER_WIDTH : _3, _4 = props.gridLineColor, gridLineColor = _4 === void 0 ? config_1.GRIDLINE_COLOR : _4, _5 = props.cellBackgroundColor, cellBackgroundColor = _5 === void 0 ? config_1.DEFAULT_CELL_BACKGROUND_COLOR : _5, _6 = props.cellColor, cellColor = _6 === void 0 ? config_1.DEFAULT_CELL_COLOR : _6, _7 = props.headerBorderColor, headerBorderColor = _7 === void 0 ? config_1.DEFAULT_HEADER_BORDER_COLOR : _7, _8 = props.headerBackgroundColor, headerBackgroundColor = _8 === void 0 ? config_1.DEFAULT_HEADER_BG : _8, _9 = props.headerColor, headerColor = _9 === void 0 ? config_1.DEFAULT_HEADER_COLOR : _9, _10 = props.headerActiveBackgroundColor, headerActiveBackgroundColor = _10 === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_BG : _10, _11 = props.headerSelectedBackgroundColor, headerSelectedBackgroundColor = _11 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_BG : _11, _12 = props.headerSelectedColor, headerSelectedColor = _12 === void 0 ? "white" : _12, _13 = props.headerTableBackgroundColor, headerTableBackgroundColor = _13 === void 0 ? config_1.DEFAULT_HEADER_TABLE_BG : _13, _14 = props.headerTableActiveBackgroundColor, headerTableActiveBackgroundColor = _14 === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_TABLE_BG : _14, _15 = props.headerTableSelectedBackgroundColor, headerTableSelectedBackgroundColor = _15 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_TABLE_BG : _15, _16 = props.frozenShadowColor, frozenShadowColor = _16 === void 0 ? headerBorderColor : _16, _17 = props.frozenShadowThickness, frozenShadowThickness = _17 === void 0 ? 1 : _17, _18 = props.selectionBackgroundColor, selectionBackgroundColor = _18 === void 0 ? config_1.SELECTION_BG : _18, _19 = props.selectionBorderColor, selectionBorderColor = _19 === void 0 ? config_1.SELECTION_BORDER : _19, selectionStrokeWidth = props.selectionStrokeWidth, showActiveCellBorderInSelection = props.showActiveCellBorderInSelection, _20 = props.selectionDragBorderColor, selectionDragBorderColor = _20 === void 0 ? config_1.SELECTION_BORDER : _20, chartSelectedColor = props.chartSelectedColor, _21 = props.chipBackgroundColor, chipBackgroundColor = _21 === void 0 ? config_1.CHIP_COLOR : _21, _22 = props.merges, merges = _22 === void 0 ? config_1.DEFAULT_ARRAY : _22, borderStyles = props.borderStyles, protectedRanges = props.protectedRanges, allowEditRanges = props.allowEditRanges, _23 = props.isWorkbookProtected, isWorkbookProtectedProp = _23 === void 0 ? false : _23, getSheetProtection = props.getSheetProtection, pivotTables = props.pivotTables, charts = props.charts, onUpdateChart = props.onUpdateChart, onChangeZOrder = props.onChangeZOrder, embeds = props.embeds, slicers = props.slicers, _24 = props.rowMetadata, rowMetadata = _24 === void 0 ? config_1.DEFAULT_ARRAY : _24, _25 = props.columnMetadata, columnMetadata = _25 === void 0 ? config_1.DEFAULT_ARRAY : _25, _26 = props.scale, scale = _26 === void 0 ? 1 : _26, _27 = props.zoomSpeed, zoomSpeed = _27 === void 0 ? 1 : _27, _28 = props.overscanCount, overscanCount = _28 === void 0 ? 3 : _28, enableEditOnEnterKeyProp = props.enableEditOnEnterKey, _29 = props.enterKeyDirection, enterKeyDirection = _29 === void 0 ? "down" : _29, enableAutoCorrect = props.enableAutoCorrect, shouldHandleKeyDown = props.shouldHandleKeyDown, _30 = props.enableTextOverflow, enableTextOverflow = _30 === void 0 ? true : _30, _showGridLines = props.showGridLines, showZeros = props.showZeros, pageBreaks = props.pageBreaks, _31 = props.showFormulas, showFormulas = _31 === void 0 ? false : _31, _32 = props.protectFormulas, protectFormulas = _32 === void 0 ? false : _32, _33 = props.showFrozenSeparator, showFrozenSeparator = _33 === void 0 ? true : _33, _34 = props.HeaderCell, HeaderCell = _34 === void 0 ? header_cell_1.HeaderCell : _34, _35 = props.Cell, Cell = _35 === void 0 ? cell_1.Cell : _35, _36 = props.SelectionTitleComponent, SelectionTitleComponent = _36 === void 0 ? title_1.SelectionTitle : _36, _37 = props.CellEditor, CellEditor = _37 === void 0 ? cell_editor_1.CellEditor : _37, CellTooltip = props.CellTooltip, _38 = props.ContextMenu, ContextMenu = _38 === void 0 ? context_menu_1.ContextMenu : _38, _39 = props.ContextMenuWrapper, ContextMenuWrapper = _39 === void 0 ? use_context_menu_1.DefaultContextMenuWrapper : _39, _40 = props.FilterBox, FilterBox = _40 === void 0 ? filter_box_1.FilterBox : _40, _41 = props.HeaderMoveDragComponent, HeaderMoveDragComponent = _41 === void 0 ? header_move_1.HeaderMoveDragComponent : _41, SuggestionsDropdown = props.SuggestionsDropdown, _42 = props.stickyEditor, stickyEditor = _42 === void 0 ? true : _42, _43 = props.scrollSnap, scrollSnap = _43 === void 0 ? false : _43, scrollThrottleTimeout = props.scrollThrottleTimeout, preventBrowserDefaultScroll = props.preventBrowserDefaultScroll, _44 = props.mouseMoveThrottleTimeout, mouseMoveThrottleTimeout = _44 === void 0 ? 60 : _44, _45 = props.tooltipIntentInterval, tooltipIntentInterval = _45 === void 0 ? 60 : _45, selectionPolicy = props.selectionPolicy, users = props.users, userId = props.userId, renderCollaboratorCursor = props.renderCollaboratorCursor, functionDescriptions = props.functionDescriptions, _46 = props.showHeaderMenuButton, showHeaderMenuButton = _46 === void 0 ? true : _46, _47 = props.scrollbarSize, scrollbarSize = _47 === void 0 ? config_1.SCROLLBAR_SIZE : _47, _48 = props.theme, theme = _48 === void 0 ? config_1.defaultSpreadsheetTheme : _48, _49 = props.showNotes, showNotes = _49 === void 0 ? true : _49, _50 = props.showComments, showComments = _50 === void 0 ? true : _50, _51 = props.circleInvalidData, circleInvalidData = _51 === void 0 ? false : _51, getIgnoredErrors = props.getIgnoredErrors, locale = props.locale, formulaLocaleProp = props.formulaLocale, agentSuggestions = props.agentSuggestions, onReviewSuggestion = props.onReviewSuggestion, onShowFormulas = props.onShowFormulas, getDataRowCount = props.getDataRowCount, getDataRegion = props.getDataRegion, getArrayFormula = props.getArrayFormula, getChartComponent = props.getChartComponent, getEmbedComponent = props.getEmbedComponent, getSlicerComponent = props.getSlicerComponent, onChange = props.onChange, onChangeBatch = props.onChangeBatch, onChangeArrayFormula = props.onChangeArrayFormula, onExpandCollapse = props.onExpandCollapse, onPivotDrillDown = props.onPivotDrillDown, onDelete = props.onDelete, onChangeEditorValue = props.onChangeEditorValue, onFill = props.onFill, onRequestCalculate = props.onRequestCalculate, onChangeActiveCell = props.onChangeActiveCell, onChangeActiveSheet = props.onChangeActiveSheet, onChangeSelections = props.onChangeSelections, getSheetName = props.getSheetName, getSheetId = props.getSheetId, getCellData = props.getCellData, getNoteProp = props.getNote, getTextFormatRuns = props.getTextFormatRuns, getDataValidation = props.getDataValidation, getEffectiveFormat = props.getEffectiveFormat, getFormattedValueProp = props.getFormattedValue, getTooltipContent = props.getTooltipContent, errorResolutionComponent = props.errorResolutionComponent, getEffectiveValueProp = props.getEffectiveValue, getSparklineGroup = props.getSparklineGroup, getUserEnteredExtendedValue = props.getUserEnteredExtendedValue, getEffectiveExtendedValue = props.getEffectiveExtendedValue, getSheetRowCount = props.getSheetRowCount, getSheetColumnCount = props.getSheetColumnCount, getCellPopoverContent = props.getCellPopoverContent, onScroll = props.onScroll, onViewPortChange = props.onViewPortChange, _52 = props.windowConditionalFormats, windowConditionalFormats = _52 === void 0 ? false : _52, _53 = props.engineConditionalFormatResults, engineConditionalFormatResults = _53 === void 0 ? false : _53, getConditionalFormatRuleStats = props.getConditionalFormatRuleStats, onResize = props.onResize, onAutoResize = props.onAutoResize, onHideColumn = props.onHideColumn, onHideRow = props.onHideRow, onShowColumn = props.onShowColumn, onShowRow = props.onShowRow, onGroupRows = props.onGroupRows, onUngroupRows = props.onUngroupRows, onCollapseRowGroup = props.onCollapseRowGroup, onExpandRowGroup = props.onExpandRowGroup, onGroupColumns = props.onGroupColumns, onUngroupColumns = props.onUngroupColumns, onCollapseColumnGroup = props.onCollapseColumnGroup, onExpandColumnGroup = props.onExpandColumnGroup, onSetOutlineDepth = props.onSetOutlineDepth, onDeleteRow = props.onDeleteRow, onDeleteColumn = props.onDeleteColumn, onInsertRow = props.onInsertRow, onInsertColumn = props.onInsertColumn, onChangeAutoExpandTables = props.onChangeAutoExpandTables, onChangeAutoCalculatedColumns = props.onChangeAutoCalculatedColumns, onInsertCellsShiftDown = props.onInsertCellsShiftDown, onInsertCellsShiftRight = props.onInsertCellsShiftRight, onDeleteCellsShiftLeft = props.onDeleteCellsShiftLeft, onDeleteCellsShiftUp = props.onDeleteCellsShiftUp, onClearContents = props.onClearContents, onMoveColumns = props.onMoveColumns, onMoveRows = props.onMoveRows, onSelectNextSheet = props.onSelectNextSheet, onSelectPreviousSheet = props.onSelectPreviousSheet, onCreateNewSheet = props.onCreateNewSheet, onKeyDown = props.onKeyDown, onChangeFormatting = props.onChangeFormatting, onRepeatFormatting = props.onRepeatFormatting, onClearFormatting = props.onClearFormatting, onRequestEditProtectedRange = props.onRequestEditProtectedRange, onRequestUnlockAllowEditRange = props.onRequestUnlockAllowEditRange, onMoveChart = props.onMoveChart, onResizeChart = props.onResizeChart, onDeleteChart = props.onDeleteChart, onCutChart = props.onCutChart, onCopyChart = props.onCopyChart, onMoveEmbed = props.onMoveEmbed, onResizeEmbed = props.onResizeEmbed, onDeleteEmbed = props.onDeleteEmbed, onRequestEditEmbed = props.onRequestEditEmbed, onMoveSlicer = props.onMoveSlicer, onResizeSlicer = props.onResizeSlicer, onDeleteSlicer = props.onDeleteSlicer, onRequestEditSlicer = props.onRequestEditSlicer, onFillRange = props.onFillRange, disableFillRightShortcut = props.disableFillRightShortcut, keymap = props.keymap, _54 = props.enableAutoComplete, enableAutoComplete = _54 === void 0 ? true : _54, onCalculateNow = props.onCalculateNow, onRequestGoTo = props.onRequestGoTo, onMoveSelection = props.onMoveSelection, onInsertCutCells = props.onInsertCutCells, onInsertCopiedCells = props.onInsertCopiedCells, onInsertTime = props.onInsertTime, onInsertDate = props.onInsertDate, onInsertDateTime = props.onInsertDateTime, onInsertAutoSum = props.onInsertAutoSum, onUndo = props.onUndo, onRedo = props.onRedo, batchHistory = props.batchHistory, onPaste = props.onPaste, onReapplyPaste = props.onReapplyPaste, onCopy = props.onCopy, onCut = props.onCut, onSortColumn = props.onSortColumn, onSortTable = props.onSortTable, onFilterTable = props.onFilterTable, onFilterPivot = props.onFilterPivot, onResizeTable = props.onResizeTable, onUndoTableAutoExpansion = props.onUndoTableAutoExpansion, onUndoCalculatedColumn = props.onUndoCalculatedColumn, onOverwriteCalculatedColumn = props.onOverwriteCalculatedColumn, onRequestEditTable = props.onRequestEditTable, onRequestEditPivotTable = props.onRequestEditPivotTable, onRequestDeletePivotTable = props.onRequestDeletePivotTable, onRequestCreatePivotChart = props.onRequestCreatePivotChart, onRemoveTable = props.onRemoveTable, onCreateTable = props.onCreateTable, onRequestCreateTable = props.onRequestCreateTable, onInsertTableColumn = props.onInsertTableColumn, onDeleteTableColumn = props.onDeleteTableColumn, onInsertTableRow = props.onInsertTableRow, onDeleteTableRow = props.onDeleteTableRow, onUpdateTable = props.onUpdateTable, onRequestResizeTable = props.onRequestResizeTable, onRequestInsertSlicer = props.onRequestInsertSlicer, onCreateBasicFilter = props.onCreateBasicFilter, onRequestDefineNamedRange = props.onRequestDefineNamedRange, onRequestFormatCells = props.onRequestFormatCells, onRequestConditionalFormat = props.onRequestConditionalFormat, onRequestDataValidation = props.onRequestDataValidation, onRequestInsertComment = props.onRequestInsertComment, onRequestInsertLink = props.onRequestInsertLink, onFreezeColumn = props.onFreezeColumn, onFreezeRow = props.onFreezeRow, onUpdateNote = props.onUpdateNote, onProtectRange = props.onProtectRange, onUnProtectRange = props.onUnProtectRange, onSortRange = props.onSortRange, onRequestSearch = props.onRequestSearch, onRequestReplace = props.onRequestReplace, onRequestResize = props.onRequestResize, _55 = props.getRowHeaderText, getRowHeaderText = _55 === void 0 ? helpers_1.getDefaultRowHeader : _55, _56 = props.getColumnHeaderText, getColumnHeaderText = _56 === void 0 ? helpers_1.getDefaultColumnHeader : _56, getAdditionalCellSpacing = props.getAdditionalCellSpacing, _57 = props.tokenizer, defaultTokenizer = _57 === void 0 ? calculator_1.tokenize : _57, onChangeScale = props.onChangeScale, onRemoveLink = props.onRemoveLink, onSelectLink = props.onSelectLink, onSplitTextToColumns = props.onSplitTextToColumns, onRemoveDuplicates = props.onRemoveDuplicates, onGoalSeek = props.onGoalSeek, onSubtotal = props.onSubtotal, onAdvancedFilter = props.onAdvancedFilter, onRequestExpand = props.onRequestExpand, cellExpandPredicate = props.cellExpandPredicate, _58 = props.StructuredResult, StructuredResult = _58 === void 0 ? cell_structured_1.StructuredResultRenderer : _58, getMentions = props.getMentions, getStructuredPropertiesProp = props.getStructuredProperties, getFunctionParameterSuggestions = props.getFunctionParameterSuggestions, shouldFetchFunctionParameters = props.shouldFetchFunctionParameters, MentionTagComponent = props.MentionTagComponent, MentionDropdownItemComponent = props.MentionDropdownItemComponent, _59 = props.showSelectionResizeHandles, showSelectionResizeHandles = _59 === void 0 ? true : _59, enableMagicFill = props.enableMagicFill, _60 = props.enableQuickEdit, enableQuickEdit = _60 === void 0 ? true : _60, MagicFillComponent = props.MagicFillComponent, MagicFillContent = props.MagicFillContent, QuickEdit = props.QuickEdit, PasteMenu = props.PasteMenu, SuggestionAction = props.SuggestionAction, HiddenRowMarkers = props.HiddenRowMarkers, HiddenColumnMarkers = props.HiddenColumnMarkers, enableResizerOverflow = props.enableResizerOverflow, className = props.className, _61 = props.defaultFontSizePoint, defaultFontSizePoint = _61 === void 0 ? config_1.DEFAULT_FONT_SIZE_PT : _61, defaultCellFormat = props.defaultCellFormat, readonly = props.readonly, _62 = props.isComparing, isComparing = _62 === void 0 ? false : _62, getCellDiff = props.getCellDiff, enableDataBoundaryNavigation = props.enableDataBoundaryNavigation, footerHeight = props.footerHeight, footerComponent = props.footerComponent, arrowComponents = props.arrowComponents,
|
|
140
146
|
// Host-driven filter props. `hostHiddenRowRanges`
|
|
141
147
|
// supplies compact [start, end] hidden-row tuples; `getFilterValues` supplies a
|
|
142
148
|
// column's distinct values. Both let a million-row filter render without scanning
|
|
@@ -151,10 +157,21 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
151
157
|
// (formula-valued names, structured references, OFFSET/INDIRECT/FILTER/UNIQUE).
|
|
152
158
|
resolveValidationSourceValues = props.resolveValidationSourceValues,
|
|
153
159
|
// Unused props only for api
|
|
154
|
-
getDataColumnCount = props.getDataColumnCount, onDeleteNamedRange = props.onDeleteNamedRange, onChangeBorder = props.onChangeBorder, onDuplicateSheet = props.onDuplicateSheet, onCreateConditionalFormattingRule = props.onCreateConditionalFormattingRule, onDeleteConditionalFormattingRule = props.onDeleteConditionalFormattingRule, onUpdateConditionalFormattingRule = props.onUpdateConditionalFormattingRule, onCreateDataValidationRule = props.onCreateDataValidationRule, onUpdateDataValidationRule = props.onUpdateDataValidationRule, onDeleteDataValidationRule = props.onDeleteDataValidationRule, onCreateChart = props.onCreateChart, onDeleteSheet = props.onDeleteSheet, onCreateEmbed = props.onCreateEmbed, onDecreaseIndent = props.onDecreaseIndent, onIncreaseIndent = props.onIncreaseIndent, onChangeTheme = props.onChangeTheme, onChangeDecimals = props.onChangeDecimals, onUpdateSheet = props.onUpdateSheet, onChangeBatchStream = props.onChangeBatchStream, onBlur = props.onBlur, rest = tslib_1.__rest(props, ["licenseKey", "sheetId", "sheetType", "ChartSheetView", "instanceId", "activeCell", "selections", "frozenColumnCount", "frozenRowCount", "rowCount", "columnCount", "autoFocus", "basicFilter", "tables", "namedRanges", "bandedRanges", "tableBorderColor", "filterIconColor", "conditionalFormats", "showFilterIcon", "showCalculatedColumnIcon", "showHeaders", "defaultColumnWidth", "defaultRowHeight", "lineHeightMode", "columnHeaderHeight", "rowHeaderWidth", "gridLineColor", "cellBackgroundColor", "cellColor", "headerBorderColor", "headerBackgroundColor", "headerColor", "headerActiveBackgroundColor", "headerSelectedBackgroundColor", "headerSelectedColor", "headerTableBackgroundColor", "headerTableActiveBackgroundColor", "headerTableSelectedBackgroundColor", "frozenShadowColor", "frozenShadowThickness", "selectionBackgroundColor", "selectionBorderColor", "selectionStrokeWidth", "showActiveCellBorderInSelection", "selectionDragBorderColor", "chartSelectedColor", "chipBackgroundColor", "merges", "borderStyles", "protectedRanges", "isWorkbookProtected", "getSheetProtection", "pivotTables", "charts", "onUpdateChart", "onChangeZOrder", "embeds", "slicers", "rowMetadata", "columnMetadata", "scale", "zoomSpeed", "overscanCount", "enableEditOnEnterKey", "shouldHandleKeyDown", "enableTextOverflow", "showGridLines", "showZeros", "pageBreaks", "showFormulas", "protectFormulas", "showFrozenSeparator", "HeaderCell", "Cell", "SelectionTitleComponent", "CellEditor", "CellTooltip", "ContextMenu", "ContextMenuWrapper", "FilterBox", "HeaderMoveDragComponent", "SuggestionsDropdown", "stickyEditor", "scrollSnap", "scrollThrottleTimeout", "preventBrowserDefaultScroll", "mouseMoveThrottleTimeout", "tooltipIntentInterval", "selectionPolicy", "users", "userId", "renderCollaboratorCursor", "functionDescriptions", "showHeaderMenuButton", "scrollbarSize", "theme", "showNotes", "showComments", "locale", "formulaLocale", "agentSuggestions", "onReviewSuggestion", "onShowFormulas", "getDataRowCount", "getDataRegion", "getChartComponent", "getEmbedComponent", "getSlicerComponent", "onChange", "onChangeBatch", "onExpandCollapse", "onPivotDrillDown", "onDelete", "onChangeEditorValue", "onFill", "onRequestCalculate", "onChangeActiveCell", "onChangeActiveSheet", "onChangeSelections", "getSheetName", "getSheetId", "getCellData", "getNote", "getTextFormatRuns", "getDataValidation", "getEffectiveFormat", "getFormattedValue", "getTooltipContent", "errorResolutionComponent", "getEffectiveValue", "getSparklineGroup", "getUserEnteredExtendedValue", "getEffectiveExtendedValue", "getSheetRowCount", "getSheetColumnCount", "getCellPopoverContent", "onScroll", "onViewPortChange", "windowConditionalFormats", "engineConditionalFormatResults", "getConditionalFormatRuleStats", "onResize", "onAutoResize", "onHideColumn", "onHideRow", "onShowColumn", "onShowRow", "onGroupRows", "onUngroupRows", "onCollapseRowGroup", "onExpandRowGroup", "onGroupColumns", "onUngroupColumns", "onCollapseColumnGroup", "onExpandColumnGroup", "onSetOutlineDepth", "onDeleteRow", "onDeleteColumn", "onInsertRow", "onInsertColumn", "onChangeAutoExpandTables", "onChangeAutoCalculatedColumns", "onInsertCellsShiftDown", "onInsertCellsShiftRight", "onDeleteCellsShiftLeft", "onDeleteCellsShiftUp", "onClearContents", "onMoveColumns", "onMoveRows", "onSelectNextSheet", "onSelectPreviousSheet", "onCreateNewSheet", "onKeyDown", "onChangeFormatting", "onRepeatFormatting", "onClearFormatting", "onRequestEditProtectedRange", "onMoveChart", "onResizeChart", "onDeleteChart", "onCutChart", "onCopyChart", "onMoveEmbed", "onResizeEmbed", "onDeleteEmbed", "onRequestEditEmbed", "onMoveSlicer", "onResizeSlicer", "onDeleteSlicer", "onRequestEditSlicer", "onFillRange", "disableFillRightShortcut", "keymap", "onCalculateNow", "onRequestGoTo", "onMoveSelection", "onInsertCutCells", "onInsertTime", "onInsertDate", "onInsertDateTime", "onInsertAutoSum", "onUndo", "onRedo", "batchHistory", "onPaste", "onCopy", "onCut", "onSortColumn", "onSortTable", "onFilterTable", "onFilterPivot", "onResizeTable", "onUndoTableAutoExpansion", "onUndoCalculatedColumn", "onOverwriteCalculatedColumn", "onRequestEditTable", "onRequestEditPivotTable", "onRequestDeletePivotTable", "onRequestCreatePivotChart", "onRemoveTable", "onCreateTable", "onRequestCreateTable", "onInsertTableColumn", "onDeleteTableColumn", "onInsertTableRow", "onDeleteTableRow", "onUpdateTable", "onRequestResizeTable", "onRequestInsertSlicer", "onCreateBasicFilter", "onRequestDefineNamedRange", "onRequestFormatCells", "onRequestConditionalFormat", "onRequestDataValidation", "onRequestInsertComment", "onRequestInsertLink", "onFreezeColumn", "onFreezeRow", "onUpdateNote", "onProtectRange", "onUnProtectRange", "onSortRange", "onRequestSearch", "onRequestReplace", "onRequestResize", "getRowHeaderText", "getColumnHeaderText", "getAdditionalCellSpacing", "tokenizer", "onChangeScale", "onRemoveLink", "onSelectLink", "onSplitTextToColumns", "onRemoveDuplicates", "onGoalSeek", "onSubtotal", "onAdvancedFilter", "onRequestExpand", "cellExpandPredicate", "StructuredResult", "getMentions", "getStructuredProperties", "getFunctionParameterSuggestions", "shouldFetchFunctionParameters", "MentionTagComponent", "MentionDropdownItemComponent", "showSelectionResizeHandles", "enableMagicFill", "enableQuickEdit", "MagicFillComponent", "MagicFillContent", "QuickEdit", "PasteMenu", "SuggestionAction", "HiddenRowMarkers", "HiddenColumnMarkers", "enableResizerOverflow", "className", "defaultFontSizePoint", "defaultCellFormat", "readonly", "isComparing", "getCellDiff", "enableDataBoundaryNavigation", "footerHeight", "footerComponent", "arrowComponents", "hostHiddenRowRanges", "getFilterValues", "getFilterColors", "getValidationSourceValue", "resolveValidationSourceValues", "getDataColumnCount", "onDeleteNamedRange", "onChangeBorder", "onDuplicateSheet", "onCreateConditionalFormattingRule", "onDeleteConditionalFormattingRule", "onUpdateConditionalFormattingRule", "onCreateDataValidationRule", "onUpdateDataValidationRule", "onDeleteDataValidationRule", "onCreateChart", "onDeleteSheet", "onCreateEmbed", "onDecreaseIndent", "onIncreaseIndent", "onChangeTheme", "onChangeDecimals", "onUpdateSheet", "onChangeBatchStream", "onBlur"]);
|
|
160
|
+
getDataColumnCount = props.getDataColumnCount, onDeleteNamedRange = props.onDeleteNamedRange, onChangeBorder = props.onChangeBorder, onDuplicateSheet = props.onDuplicateSheet, onCreateConditionalFormattingRule = props.onCreateConditionalFormattingRule, onDeleteConditionalFormattingRule = props.onDeleteConditionalFormattingRule, onUpdateConditionalFormattingRule = props.onUpdateConditionalFormattingRule, onCreateDataValidationRule = props.onCreateDataValidationRule, onUpdateDataValidationRule = props.onUpdateDataValidationRule, onDeleteDataValidationRule = props.onDeleteDataValidationRule, onCreateChart = props.onCreateChart, onDeleteSheet = props.onDeleteSheet, onCreateEmbed = props.onCreateEmbed, onDecreaseIndent = props.onDecreaseIndent, onIncreaseIndent = props.onIncreaseIndent, onChangeTheme = props.onChangeTheme, onChangeDecimals = props.onChangeDecimals, onUpdateSheet = props.onUpdateSheet, onChangeBatchStream = props.onChangeBatchStream, onBlur = props.onBlur, rest = tslib_1.__rest(props, ["licenseKey", "sheetId", "sheetType", "ChartSheetView", "instanceId", "activeCell", "selections", "frozenColumnCount", "frozenRowCount", "rowCount", "columnCount", "autoFocus", "basicFilter", "tables", "namedRanges", "bandedRanges", "tableBorderColor", "filterIconColor", "conditionalFormats", "showFilterIcon", "showCalculatedColumnIcon", "showHeaders", "defaultColumnWidth", "defaultRowHeight", "lineHeightMode", "columnHeaderHeight", "rowHeaderWidth", "gridLineColor", "cellBackgroundColor", "cellColor", "headerBorderColor", "headerBackgroundColor", "headerColor", "headerActiveBackgroundColor", "headerSelectedBackgroundColor", "headerSelectedColor", "headerTableBackgroundColor", "headerTableActiveBackgroundColor", "headerTableSelectedBackgroundColor", "frozenShadowColor", "frozenShadowThickness", "selectionBackgroundColor", "selectionBorderColor", "selectionStrokeWidth", "showActiveCellBorderInSelection", "selectionDragBorderColor", "chartSelectedColor", "chipBackgroundColor", "merges", "borderStyles", "protectedRanges", "allowEditRanges", "isWorkbookProtected", "getSheetProtection", "pivotTables", "charts", "onUpdateChart", "onChangeZOrder", "embeds", "slicers", "rowMetadata", "columnMetadata", "scale", "zoomSpeed", "overscanCount", "enableEditOnEnterKey", "enterKeyDirection", "enableAutoCorrect", "shouldHandleKeyDown", "enableTextOverflow", "showGridLines", "showZeros", "pageBreaks", "showFormulas", "protectFormulas", "showFrozenSeparator", "HeaderCell", "Cell", "SelectionTitleComponent", "CellEditor", "CellTooltip", "ContextMenu", "ContextMenuWrapper", "FilterBox", "HeaderMoveDragComponent", "SuggestionsDropdown", "stickyEditor", "scrollSnap", "scrollThrottleTimeout", "preventBrowserDefaultScroll", "mouseMoveThrottleTimeout", "tooltipIntentInterval", "selectionPolicy", "users", "userId", "renderCollaboratorCursor", "functionDescriptions", "showHeaderMenuButton", "scrollbarSize", "theme", "showNotes", "showComments", "circleInvalidData", "getIgnoredErrors", "locale", "formulaLocale", "agentSuggestions", "onReviewSuggestion", "onShowFormulas", "getDataRowCount", "getDataRegion", "getArrayFormula", "getChartComponent", "getEmbedComponent", "getSlicerComponent", "onChange", "onChangeBatch", "onChangeArrayFormula", "onExpandCollapse", "onPivotDrillDown", "onDelete", "onChangeEditorValue", "onFill", "onRequestCalculate", "onChangeActiveCell", "onChangeActiveSheet", "onChangeSelections", "getSheetName", "getSheetId", "getCellData", "getNote", "getTextFormatRuns", "getDataValidation", "getEffectiveFormat", "getFormattedValue", "getTooltipContent", "errorResolutionComponent", "getEffectiveValue", "getSparklineGroup", "getUserEnteredExtendedValue", "getEffectiveExtendedValue", "getSheetRowCount", "getSheetColumnCount", "getCellPopoverContent", "onScroll", "onViewPortChange", "windowConditionalFormats", "engineConditionalFormatResults", "getConditionalFormatRuleStats", "onResize", "onAutoResize", "onHideColumn", "onHideRow", "onShowColumn", "onShowRow", "onGroupRows", "onUngroupRows", "onCollapseRowGroup", "onExpandRowGroup", "onGroupColumns", "onUngroupColumns", "onCollapseColumnGroup", "onExpandColumnGroup", "onSetOutlineDepth", "onDeleteRow", "onDeleteColumn", "onInsertRow", "onInsertColumn", "onChangeAutoExpandTables", "onChangeAutoCalculatedColumns", "onInsertCellsShiftDown", "onInsertCellsShiftRight", "onDeleteCellsShiftLeft", "onDeleteCellsShiftUp", "onClearContents", "onMoveColumns", "onMoveRows", "onSelectNextSheet", "onSelectPreviousSheet", "onCreateNewSheet", "onKeyDown", "onChangeFormatting", "onRepeatFormatting", "onClearFormatting", "onRequestEditProtectedRange", "onRequestUnlockAllowEditRange", "onMoveChart", "onResizeChart", "onDeleteChart", "onCutChart", "onCopyChart", "onMoveEmbed", "onResizeEmbed", "onDeleteEmbed", "onRequestEditEmbed", "onMoveSlicer", "onResizeSlicer", "onDeleteSlicer", "onRequestEditSlicer", "onFillRange", "disableFillRightShortcut", "keymap", "enableAutoComplete", "onCalculateNow", "onRequestGoTo", "onMoveSelection", "onInsertCutCells", "onInsertCopiedCells", "onInsertTime", "onInsertDate", "onInsertDateTime", "onInsertAutoSum", "onUndo", "onRedo", "batchHistory", "onPaste", "onReapplyPaste", "onCopy", "onCut", "onSortColumn", "onSortTable", "onFilterTable", "onFilterPivot", "onResizeTable", "onUndoTableAutoExpansion", "onUndoCalculatedColumn", "onOverwriteCalculatedColumn", "onRequestEditTable", "onRequestEditPivotTable", "onRequestDeletePivotTable", "onRequestCreatePivotChart", "onRemoveTable", "onCreateTable", "onRequestCreateTable", "onInsertTableColumn", "onDeleteTableColumn", "onInsertTableRow", "onDeleteTableRow", "onUpdateTable", "onRequestResizeTable", "onRequestInsertSlicer", "onCreateBasicFilter", "onRequestDefineNamedRange", "onRequestFormatCells", "onRequestConditionalFormat", "onRequestDataValidation", "onRequestInsertComment", "onRequestInsertLink", "onFreezeColumn", "onFreezeRow", "onUpdateNote", "onProtectRange", "onUnProtectRange", "onSortRange", "onRequestSearch", "onRequestReplace", "onRequestResize", "getRowHeaderText", "getColumnHeaderText", "getAdditionalCellSpacing", "tokenizer", "onChangeScale", "onRemoveLink", "onSelectLink", "onSplitTextToColumns", "onRemoveDuplicates", "onGoalSeek", "onSubtotal", "onAdvancedFilter", "onRequestExpand", "cellExpandPredicate", "StructuredResult", "getMentions", "getStructuredProperties", "getFunctionParameterSuggestions", "shouldFetchFunctionParameters", "MentionTagComponent", "MentionDropdownItemComponent", "showSelectionResizeHandles", "enableMagicFill", "enableQuickEdit", "MagicFillComponent", "MagicFillContent", "QuickEdit", "PasteMenu", "SuggestionAction", "HiddenRowMarkers", "HiddenColumnMarkers", "enableResizerOverflow", "className", "defaultFontSizePoint", "defaultCellFormat", "readonly", "isComparing", "getCellDiff", "enableDataBoundaryNavigation", "footerHeight", "footerComponent", "arrowComponents", "hostHiddenRowRanges", "getFilterValues", "getFilterColors", "getValidationSourceValue", "resolveValidationSourceValues", "getDataColumnCount", "onDeleteNamedRange", "onChangeBorder", "onDuplicateSheet", "onCreateConditionalFormattingRule", "onDeleteConditionalFormattingRule", "onUpdateConditionalFormattingRule", "onCreateDataValidationRule", "onUpdateDataValidationRule", "onDeleteDataValidationRule", "onCreateChart", "onDeleteSheet", "onCreateEmbed", "onDecreaseIndent", "onIncreaseIndent", "onChangeTheme", "onChangeDecimals", "onUpdateSheet", "onChangeBatchStream", "onBlur"]);
|
|
155
161
|
// Enter on a cell opens the editor in Google Sheets and moves down in
|
|
156
162
|
// Excel; a host's explicit value wins under either keymap.
|
|
157
163
|
var enableEditOnEnterKey = enableEditOnEnterKeyProp !== null && enableEditOnEnterKeyProp !== void 0 ? enableEditOnEnterKeyProp : keymap !== "excel";
|
|
164
|
+
// The editors that commit on Enter outside these props (the host's in-cell editor, the formula
|
|
165
|
+
// bar) read the direction from the provider.
|
|
166
|
+
var setEnterKeyDirection = (0, enter_key_direction_atom_1.useSetEnterKeyDirection)();
|
|
167
|
+
(0, use_isomorphic_layout_effect_1.useIsomorphicLayoutEffect)(function () {
|
|
168
|
+
setEnterKeyDirection(enterKeyDirection);
|
|
169
|
+
}, [enterKeyDirection, setEnterKeyDirection]);
|
|
170
|
+
var autoCorrect = (0, react_1.useMemo)(function () {
|
|
171
|
+
return enableAutoCorrect === true
|
|
172
|
+
? utils_1.DEFAULT_AUTOCORRECT_OPTIONS
|
|
173
|
+
: enableAutoCorrect || undefined;
|
|
174
|
+
}, [enableAutoCorrect]);
|
|
158
175
|
/**
|
|
159
176
|
* Fire onBlur only when the cell editor blurs to an element outside the
|
|
160
177
|
* spreadsheet. Routed through `useEditable` so we hook the always-focused
|
|
@@ -170,7 +187,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
170
187
|
var showGridLines = _showGridLines !== null && _showGridLines !== void 0 ? _showGridLines : true;
|
|
171
188
|
var gridRef = (0, react_1.useRef)(null);
|
|
172
189
|
// Hovered cell state (immediate, updated on mousemove)
|
|
173
|
-
var
|
|
190
|
+
var _63 = tslib_1.__read((0, react_1.useState)(), 2), hoveredCell = _63[0], setHoveredCell = _63[1];
|
|
174
191
|
// Delayed hovered cell for tooltips and selection titles
|
|
175
192
|
var delayedHoveredCell = (0, use_delayed_value_1.useDelayedValue)(hoveredCell, tooltipIntentInterval);
|
|
176
193
|
// Text overflow functionality
|
|
@@ -260,20 +277,21 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
260
277
|
var onHideFormulaHelp = (0, show_formula_help_atom_1.useOnHideFormulaHelp)();
|
|
261
278
|
var onShowFormulaHelp = (0, show_formula_help_atom_1.useOnShowFormulaHelp)();
|
|
262
279
|
// Cell editor
|
|
263
|
-
var cellEditorInstance = (0,
|
|
280
|
+
var cellEditorInstance = (0, formula_bar_editor_value_atom_2.useCellEditorInstance)();
|
|
264
281
|
// Paste menu
|
|
265
|
-
var
|
|
282
|
+
var _64 = tslib_1.__read((0, atoms_1.useShowPasteMenu)(), 2), showPasteMenu = _64[0], setShowPasteMenu = _64[1];
|
|
283
|
+
var _65 = tslib_1.__read((0, atoms_1.usePickList)(), 2), setPickList = _65[1];
|
|
266
284
|
// Auto Fill Options smart tag / right-drag fill menu + Series dialog
|
|
267
|
-
var
|
|
268
|
-
var
|
|
269
|
-
var
|
|
270
|
-
var
|
|
285
|
+
var _66 = tslib_1.__read((0, atoms_1.useFillOptionsState)(), 2), fillOptions = _66[0], setFillOptions = _66[1];
|
|
286
|
+
var _67 = tslib_1.__read((0, atoms_1.useInsertOptionsState)(), 2), insertOptions = _67[0], setInsertOptions = _67[1];
|
|
287
|
+
var _68 = tslib_1.__read((0, atoms_1.useTableAutoExpansionState)(), 2), tableAutoExpansion = _68[0], setTableAutoExpansion = _68[1];
|
|
288
|
+
var _69 = tslib_1.__read((0, atoms_1.useCalculatedColumnFillState)(), 2), calculatedColumnFill = _69[0], setCalculatedColumnFill = _69[1];
|
|
271
289
|
var openFillSeriesDialog = (0, atoms_1.useOpenFillSeriesDialog)();
|
|
272
290
|
// Shared state
|
|
273
291
|
var formulaMode = (0, atoms_1.useFormulaModeValue)();
|
|
274
292
|
var formulaSelections = (0, formula_selections_atom_1.useFormulaSelections)();
|
|
275
|
-
var
|
|
276
|
-
var setFormulabarEditorValue = (0,
|
|
293
|
+
var _70 = tslib_1.__read((0, editing_cell_atom_1.useEditingCell)(), 2), editingCellCoordinate = _70[0], setEditingCellCoordinate = _70[1];
|
|
294
|
+
var setFormulabarEditorValue = (0, formula_bar_editor_value_atom_2.useSetFormulabarEditorValue)();
|
|
277
295
|
/**
|
|
278
296
|
* The formula SYNTAX the editor / formula bar speak (rowsncolumns/spreadsheet#655): Excel follows
|
|
279
297
|
* the user's language, so it defaults to `locale`. Everything that crosses the grid boundary stays
|
|
@@ -284,13 +302,13 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
284
302
|
var localizedFunctionDescriptions = (0, react_1.useMemo)(function () {
|
|
285
303
|
return (0, utils_1.localizeFunctionDescriptions)(functionDescriptions !== null && functionDescriptions !== void 0 ? functionDescriptions : undefined, formulaLocale);
|
|
286
304
|
}, [functionDescriptions, formulaLocale]);
|
|
287
|
-
var setFormulaBarTextFormatRuns = (0,
|
|
305
|
+
var setFormulaBarTextFormatRuns = (0, formula_bar_editor_value_atom_2.useSetFormulaBarTextFormatRuns)();
|
|
288
306
|
var canSelectCells = (0, formula_selection_state_atom_1.useFormulaCanSelectCells)();
|
|
289
307
|
var selectionMode = (0, formula_selection_state_atom_1.useFormulaSelectionMode)();
|
|
290
308
|
var setFormulaState = (0, formula_selection_state_atom_1.useSetFormulaSelectionState)();
|
|
291
309
|
var activeEditor = (0, active_editor_atom_1.useActiveEditor)();
|
|
292
310
|
// Magic fill state
|
|
293
|
-
var
|
|
311
|
+
var _71 = tslib_1.__read((0, magic_fill_state_atom_1.useQuickEditState)(), 2), quickEditValues = _71[0], setQuickEditState = _71[1];
|
|
294
312
|
var setNoteEditorCell = (0, atoms_1.useSetNoteEditorCell)();
|
|
295
313
|
var setPinnedTooltip = (0, atoms_1.useSetPinnedTooltip)();
|
|
296
314
|
var setSpreadsheetApi = (0, spreadsheet_api_atom_1.useSetSpreadsheetApi)();
|
|
@@ -301,7 +319,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
301
319
|
var instanceStore = (0, jotai_1.useStore)({ store: spreadsheet_provider_1.multiInstanceStore });
|
|
302
320
|
// To access closures
|
|
303
321
|
var hoveredCellRef = (0, use_stable_ref_1.useStableRef)(hoveredCell);
|
|
304
|
-
var
|
|
322
|
+
var _72 = tslib_1.__read((0, use_resize_observer_1.useResizeObserver)(), 2), gridContainerRef = _72[0], _73 = _72[1], width = _73.width, height = _73.height;
|
|
305
323
|
// Row 0 / column 0 are the heading slots and exist whether or not headings are
|
|
306
324
|
// shown (hidden headings are zero-sized, not removed), so the sheet's frozen
|
|
307
325
|
// counts always sit one past them.
|
|
@@ -315,9 +333,9 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
315
333
|
var sheetRowCount = Math.min(config_1.MAX_ROW_COUNT + 1, rowCount + 1);
|
|
316
334
|
var sheetColumnCount = Math.min(config_1.MAX_COLUMN_COUNT + 1, columnCount + 1);
|
|
317
335
|
// License key validator
|
|
318
|
-
var
|
|
336
|
+
var _74 = tslib_1.__read((0, use_licensekey_validator_1.useLicenseKeyValidator)({
|
|
319
337
|
licenseKey: licenseKey,
|
|
320
|
-
}), 3), _ =
|
|
338
|
+
}), 3), _ = _74[0], licenseType = _74[1], validatorResult = _74[2];
|
|
321
339
|
var isRestricted = licenseType === "solo";
|
|
322
340
|
// Grid line width
|
|
323
341
|
var gridLineWidth = 1 * scale;
|
|
@@ -564,6 +582,13 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
564
582
|
* context without churning it on re-renders.
|
|
565
583
|
*/
|
|
566
584
|
var getSheetProtectionStable = (0, use_callback_ref_1.useCallbackRef)(getSheetProtection);
|
|
585
|
+
/**
|
|
586
|
+
* Excel's "Select locked cells" / "Select unlocked cells" on a protected
|
|
587
|
+
* sheet: the selection hook refuses any range this rejects.
|
|
588
|
+
*/
|
|
589
|
+
var isRangeSelectable = (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function (range) {
|
|
590
|
+
return (0, validation_1.isRangeSelectableUnderProtection)(getSheetProtection === null || getSheetProtection === void 0 ? void 0 : getSheetProtection(sheetId), range, function (rowIndex, columnIndex) { var _a; return (_a = getCellData === null || getCellData === void 0 ? void 0 : getCellData(sheetId, rowIndex, columnIndex)) === null || _a === void 0 ? void 0 : _a.protection; });
|
|
591
|
+
}, [getSheetProtection, getCellData, sheetId]));
|
|
567
592
|
/**
|
|
568
593
|
* Check if the cell can be edited
|
|
569
594
|
*/
|
|
@@ -587,7 +612,25 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
587
612
|
// active, LOCKED cells refuse edits — a cell is locked unless its
|
|
588
613
|
// `protection.locked` is `false` (Excel's default) — and unlocked
|
|
589
614
|
// cells stay editable.
|
|
590
|
-
|
|
615
|
+
// An Excel Allow Edit Range opens its locked cells; one behind a
|
|
616
|
+
// password asks for it first (Excel's Unlock Range prompt).
|
|
617
|
+
var protectedEdit = (0, validation_1.resolveProtectedCellEdit)({
|
|
618
|
+
sheetId: sheetId,
|
|
619
|
+
cell: cell,
|
|
620
|
+
sheetProtection: getSheetProtection === null || getSheetProtection === void 0 ? void 0 : getSheetProtection(sheetId),
|
|
621
|
+
cellProtection: (_a = getCellData === null || getCellData === void 0 ? void 0 : getCellData(sheetId, rowIndex, columnIndex)) === null || _a === void 0 ? void 0 : _a.protection,
|
|
622
|
+
allowEditRanges: allowEditRanges,
|
|
623
|
+
});
|
|
624
|
+
if (typeof protectedEdit === "object") {
|
|
625
|
+
if (onRequestUnlockAllowEditRange) {
|
|
626
|
+
onRequestUnlockAllowEditRange(sheetId, protectedEdit.unlock, cell);
|
|
627
|
+
}
|
|
628
|
+
else {
|
|
629
|
+
onRequestEditProtectedRange === null || onRequestEditProtectedRange === void 0 ? void 0 : onRequestEditProtectedRange(sheetId, cell);
|
|
630
|
+
}
|
|
631
|
+
return false;
|
|
632
|
+
}
|
|
633
|
+
var lockedBySheetProtection = protectedEdit === "locked";
|
|
591
634
|
var canEdit = !lockedBySheetProtection &&
|
|
592
635
|
(protectedRanges
|
|
593
636
|
? !(0, validation_1.isProtectedCell)(sheetId, cell, protectedRanges)
|
|
@@ -600,11 +643,13 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
600
643
|
}, [
|
|
601
644
|
readonly,
|
|
602
645
|
protectedRanges,
|
|
646
|
+
allowEditRanges,
|
|
603
647
|
getSheetProtection,
|
|
604
648
|
getCellData,
|
|
605
649
|
isRowHeader,
|
|
606
650
|
isColumnHeader,
|
|
607
651
|
onRequestEditProtectedRange,
|
|
652
|
+
onRequestUnlockAllowEditRange,
|
|
608
653
|
getPivotTableAtCell,
|
|
609
654
|
]));
|
|
610
655
|
/**
|
|
@@ -1051,6 +1096,49 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1051
1096
|
var getErrorValue = (0, react_1.useCallback)(function (sheetId, rowIndex, columnIndex) {
|
|
1052
1097
|
return (0, helpers_1.getExtendedValueError)(getEffectiveValue === null || getEffectiveValue === void 0 ? void 0 : getEffectiveValue(sheetId, rowIndex, columnIndex));
|
|
1053
1098
|
}, [getEffectiveValue]);
|
|
1099
|
+
/**
|
|
1100
|
+
* Excel's background error checking: the rule (formula error, number stored as text) that puts
|
|
1101
|
+
* the green ◤ on a cell.
|
|
1102
|
+
*/
|
|
1103
|
+
// Keyed on the active sheet's list CONTENT: an inline host lookup must not repaint every cell
|
|
1104
|
+
// per render, while Ignore Error (a new list) must repaint the flags.
|
|
1105
|
+
var getIgnoredErrorsStable = (0, use_callback_ref_1.useCallbackRef)(function (targetSheetId) { return getIgnoredErrors === null || getIgnoredErrors === void 0 ? void 0 : getIgnoredErrors(targetSheetId); });
|
|
1106
|
+
var activeIgnoredErrors = getIgnoredErrors === null || getIgnoredErrors === void 0 ? void 0 : getIgnoredErrors(sheetId);
|
|
1107
|
+
var activeIgnoredErrorsKey = JSON.stringify(activeIgnoredErrors !== null && activeIgnoredErrors !== void 0 ? activeIgnoredErrors : null);
|
|
1108
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
1109
|
+
var stableIgnoredErrors = (0, react_1.useMemo)(function () { return activeIgnoredErrors; }, [activeIgnoredErrorsKey]);
|
|
1110
|
+
var getErrorCheck = (0, react_1.useCallback)(function (targetSheetId, rowIndex, columnIndex) {
|
|
1111
|
+
var kind = (0, error_checking_1.getErrorCheckKind)({
|
|
1112
|
+
userEnteredValue: getUserEnteredValue(targetSheetId, rowIndex, columnIndex),
|
|
1113
|
+
errorValue: getErrorValue(targetSheetId, rowIndex, columnIndex),
|
|
1114
|
+
});
|
|
1115
|
+
if (kind &&
|
|
1116
|
+
(0, error_checking_1.isErrorIgnored)(targetSheetId === sheetId
|
|
1117
|
+
? stableIgnoredErrors
|
|
1118
|
+
: getIgnoredErrorsStable(targetSheetId), rowIndex, columnIndex, kind)) {
|
|
1119
|
+
return undefined;
|
|
1120
|
+
}
|
|
1121
|
+
return kind;
|
|
1122
|
+
}, [
|
|
1123
|
+
getUserEnteredValue,
|
|
1124
|
+
getErrorValue,
|
|
1125
|
+
getIgnoredErrorsStable,
|
|
1126
|
+
stableIgnoredErrors,
|
|
1127
|
+
sheetId,
|
|
1128
|
+
]);
|
|
1129
|
+
// Excel's error-checking smart tag: open from its button or Alt+Shift+F10, closed when the
|
|
1130
|
+
// active cell moves.
|
|
1131
|
+
var _75 = tslib_1.__read((0, react_1.useState)(false), 2), errorCheckMenuOpen = _75[0], setErrorCheckMenuOpen = _75[1];
|
|
1132
|
+
(0, react_1.useEffect)(function () {
|
|
1133
|
+
setErrorCheckMenuOpen(false);
|
|
1134
|
+
}, [activeCell.rowIndex, activeCell.columnIndex, sheetId]);
|
|
1135
|
+
var showErrorCheckMenu = (0, use_callback_ref_1.useCallbackRef)(function (targetSheetId, cell) {
|
|
1136
|
+
if (readonly || !getErrorCheck(targetSheetId, cell.rowIndex, cell.columnIndex)) {
|
|
1137
|
+
return false;
|
|
1138
|
+
}
|
|
1139
|
+
setErrorCheckMenuOpen(true);
|
|
1140
|
+
return true;
|
|
1141
|
+
});
|
|
1054
1142
|
/**
|
|
1055
1143
|
* Get notes. The host's `getNote` wins when provided — engines that keep
|
|
1056
1144
|
* notes off the cell data (rnc serves notes over their own channel) have
|
|
@@ -1166,9 +1254,11 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1166
1254
|
* as `#ЗНАЧ!`. `useEditorSubmit` canonicalizes the text again on commit.
|
|
1167
1255
|
*/
|
|
1168
1256
|
var getEditorDisplayValue = (0, react_1.useCallback)(function (sheetId, rowIndex, columnIndex) {
|
|
1169
|
-
var
|
|
1257
|
+
var _a, _b;
|
|
1258
|
+
// Every cell of a CSE array edits as the array's formula (Excel), not only its anchor.
|
|
1259
|
+
var value = (_b = (_a = getArrayFormula === null || getArrayFormula === void 0 ? void 0 : getArrayFormula(sheetId, rowIndex, columnIndex)) === null || _a === void 0 ? void 0 : _a.formula) !== null && _b !== void 0 ? _b : getUserEnteredStringValue(sheetId, rowIndex, columnIndex);
|
|
1170
1260
|
return (0, utils_1.isNil)(value) ? value : (0, utils_1.localizeCellInput)(value, formulaLocale);
|
|
1171
|
-
}, [getUserEnteredStringValue, formulaLocale]);
|
|
1261
|
+
}, [getUserEnteredStringValue, getArrayFormula, formulaLocale]);
|
|
1172
1262
|
/**
|
|
1173
1263
|
* Get cell value used for validations
|
|
1174
1264
|
*/
|
|
@@ -1189,11 +1279,11 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1189
1279
|
* Touch support
|
|
1190
1280
|
* Mainly for scrolling
|
|
1191
1281
|
*/
|
|
1192
|
-
var
|
|
1282
|
+
var _76 = (0, use_touch_1.useTouch)({
|
|
1193
1283
|
scrollTo: scrollTo,
|
|
1194
1284
|
scale: scale,
|
|
1195
1285
|
onChangeScale: onChangeScale,
|
|
1196
|
-
}), onTouchStart =
|
|
1286
|
+
}), onTouchStart = _76.onTouchStart, onDimensionsChange = _76.onDimensionsChange, scrollToTouchDevice = _76.scrollToTouchDevice, onAfterScrollToCell = _76.onAfterScrollToCell;
|
|
1197
1287
|
/**
|
|
1198
1288
|
* Conditional-formatting evaluation window: the padded, tile-quantized
|
|
1199
1289
|
* viewport. The raw viewport lives in a ref (no render per scroll frame);
|
|
@@ -1201,7 +1291,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1201
1291
|
* `startTransition` so the CF recompute is low-priority and interruptible —
|
|
1202
1292
|
* scrolling never blocks on it.
|
|
1203
1293
|
*/
|
|
1204
|
-
var
|
|
1294
|
+
var _77 = tslib_1.__read((0, react_1.useState)(cf_window_1.CF_INITIAL_WINDOW), 2), cfWindow = _77[0], setCfWindow = _77[1];
|
|
1205
1295
|
var cfWindowRef = (0, react_1.useRef)(null);
|
|
1206
1296
|
var handleViewPortChange = (0, react_1.useCallback)(function (viewport) {
|
|
1207
1297
|
onViewPortChange === null || onViewPortChange === void 0 ? void 0 : onViewPortChange(viewport);
|
|
@@ -1496,14 +1586,14 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1496
1586
|
: localeTokenizerBase,
|
|
1497
1587
|
});
|
|
1498
1588
|
// Helper function to convert a selection to readable selection address
|
|
1499
|
-
var
|
|
1589
|
+
var _78 = tslib_1.__read((0, use_create_address_from_selection_1.useCreateAddressFromSelection)({
|
|
1500
1590
|
sheetId: sheetId,
|
|
1501
1591
|
rowCount: rowCount,
|
|
1502
1592
|
columnCount: columnCount,
|
|
1503
1593
|
tables: tables !== null && tables !== void 0 ? tables : undefined,
|
|
1504
1594
|
namedRanges: namedRanges !== null && namedRanges !== void 0 ? namedRanges : undefined,
|
|
1505
1595
|
merges: merges,
|
|
1506
|
-
}), 2), getAddressFromSelection =
|
|
1596
|
+
}), 2), getAddressFromSelection = _78[0], getR1C1AddressFromSelection = _78[1];
|
|
1507
1597
|
/**
|
|
1508
1598
|
* Exports a data region as image
|
|
1509
1599
|
*/
|
|
@@ -1549,7 +1639,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1549
1639
|
* Get user entered value from a range
|
|
1550
1640
|
* of cells
|
|
1551
1641
|
*/
|
|
1552
|
-
var
|
|
1642
|
+
var _79 = tslib_1.__read((0, use_get_values_from_range_1.useGetValuesFromRange)({
|
|
1553
1643
|
sheetId: sheetId,
|
|
1554
1644
|
getSelectionsFromFormula: getSelectionsFromFormula,
|
|
1555
1645
|
getFormattedValue: getFormattedValue,
|
|
@@ -1558,7 +1648,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1558
1648
|
onRequestCalculate: onRequestCalculate,
|
|
1559
1649
|
getValidationSourceValue: getValidationSourceValue,
|
|
1560
1650
|
resolveValidationSourceValues: resolveValidationSourceValues,
|
|
1561
|
-
}), 3), getFormattedValuesFromAddress =
|
|
1651
|
+
}), 3), getFormattedValuesFromAddress = _79[0], getEffectiveValuesFromRange = _79[1], getFormattedValuesFromAddressAsync = _79[2];
|
|
1562
1652
|
/**
|
|
1563
1653
|
* The cell editor's dropdown options: same resolver, editor argument order.
|
|
1564
1654
|
*/
|
|
@@ -1909,7 +1999,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1909
1999
|
* O(n)
|
|
1910
2000
|
* Reduces Space Complexity by using `all`
|
|
1911
2001
|
*/
|
|
1912
|
-
var
|
|
2002
|
+
var _80 = tslib_1.__read((0, use_selected_rows_columns_1.useSelectedRowsColumns)({
|
|
1913
2003
|
activeCell: activeCell,
|
|
1914
2004
|
selections: selections,
|
|
1915
2005
|
selectionLeftBound: selectionLeftBound,
|
|
@@ -1917,7 +2007,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1917
2007
|
rowCount: rowCount,
|
|
1918
2008
|
columnCount: columnCount,
|
|
1919
2009
|
getCellBounds: getCellBounds,
|
|
1920
|
-
}), 6), selectedRows =
|
|
2010
|
+
}), 6), selectedRows = _80[0], selectedColumns = _80[1], selectedRowHeaders = _80[2], selectedColumnHeaders = _80[3], selectedRowHeadersIds = _80[4], selectedColumnHeadersIds = _80[5];
|
|
1921
2011
|
// Named ranges for editor dropdown
|
|
1922
2012
|
var getNamedRanges = (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function () {
|
|
1923
2013
|
return namedRanges === null || namedRanges === void 0 ? void 0 : namedRanges.map(function (range) { return ({
|
|
@@ -1987,7 +2077,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1987
2077
|
* user can select entire column or row when selecting
|
|
1988
2078
|
* header cells
|
|
1989
2079
|
*/
|
|
1990
|
-
var
|
|
2080
|
+
var _81 = (0, use_selection_interceptors_1.useSelectionInterceptors)({
|
|
1991
2081
|
sheetId: sheetId,
|
|
1992
2082
|
rowCount: rowCount,
|
|
1993
2083
|
columnCount: columnCount,
|
|
@@ -2003,7 +2093,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2003
2093
|
onChangeActiveCell: onChangeActiveCell,
|
|
2004
2094
|
scrollToCell: scrollToCell,
|
|
2005
2095
|
isMergedCell: isMergedCell,
|
|
2006
|
-
}), onMouseDownInterceptor =
|
|
2096
|
+
}), onMouseDownInterceptor = _81.onMouseDownInterceptor, onMouseMoveInterceptor = _81.onMouseMoveInterceptor;
|
|
2007
2097
|
/**
|
|
2008
2098
|
* When user selections full rows
|
|
2009
2099
|
* or columns, we have to ignore
|
|
@@ -2093,7 +2183,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2093
2183
|
* Enables auto resizing
|
|
2094
2184
|
* rows and columns
|
|
2095
2185
|
*/
|
|
2096
|
-
var
|
|
2186
|
+
var _82 = (0, use_sizer_1.useSizer)({
|
|
2097
2187
|
frozenRows: frozenRows,
|
|
2098
2188
|
frozenColumns: frozenColumns,
|
|
2099
2189
|
scale: scale,
|
|
@@ -2120,7 +2210,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2120
2210
|
fontSize: defaultFontSize,
|
|
2121
2211
|
lineHeightMode: lineHeightMode,
|
|
2122
2212
|
resizeStrategy: "full",
|
|
2123
|
-
}), getColumnWidth =
|
|
2213
|
+
}), getColumnWidth = _82.getColumnWidth, getRowHeight = _82.getRowHeight, getCellDimensions = _82.getCellDimensions, getCellDimensionsStable = _82.getCellDimensionsStable, getTextDimension = _82.getTextDimension;
|
|
2124
2214
|
/**
|
|
2125
2215
|
* Called when user tries to
|
|
2126
2216
|
* autofit a column or row
|
|
@@ -2147,6 +2237,20 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2147
2237
|
}
|
|
2148
2238
|
return ((_a = (0, grid_2.getOwnerDocument)(editorElement)) === null || _a === void 0 ? void 0 : _a.activeElement) === editorElement;
|
|
2149
2239
|
}, [cellEditorInstance]);
|
|
2240
|
+
/**
|
|
2241
|
+
* The text entries of `cell`'s column block, for AutoComplete and Pick From
|
|
2242
|
+
* Drop-down List.
|
|
2243
|
+
*/
|
|
2244
|
+
var getColumnEntries = (0, use_callback_ref_1.useCallbackRef)(function (targetSheetId, cell) {
|
|
2245
|
+
var _a;
|
|
2246
|
+
return (0, autocomplete_1.getColumnAutoCompleteEntries)({
|
|
2247
|
+
rowIndex: cell.rowIndex,
|
|
2248
|
+
maxRowIndex: (_a = getSheetRowCount === null || getSheetRowCount === void 0 ? void 0 : getSheetRowCount(targetSheetId)) !== null && _a !== void 0 ? _a : rowCount,
|
|
2249
|
+
getCell: function (r) {
|
|
2250
|
+
return (0, autocomplete_1.toAutoCompleteCell)(getUserEnteredValue(targetSheetId, r, cell.columnIndex));
|
|
2251
|
+
},
|
|
2252
|
+
});
|
|
2253
|
+
});
|
|
2150
2254
|
/**
|
|
2151
2255
|
* Get Cell Editor
|
|
2152
2256
|
*/
|
|
@@ -2162,8 +2266,12 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2162
2266
|
var editingSheetName = getSheetName === null || getSheetName === void 0 ? void 0 : getSheetName(editingSheetId);
|
|
2163
2267
|
var effectiveValue = getEffectiveValue(editingSheetId, rowIndex, columnIndex);
|
|
2164
2268
|
var horizontalAlignment = getEditorHorizontalAlignment(editingSheetId, rowIndex, columnIndex);
|
|
2165
|
-
return (react_1.default.createElement(CellEditor, tslib_1.__assign({}, props, { locale: locale, effectiveValue: effectiveValue, format: cellFormat, dataValidation: dataValidation, getRangeValues: getFormattedValuesFromAddress, getRangeValuesAsync: getEditorRangeValuesAsync, scale: scale, sheetName: sheetName, editingSheetId: editingSheetId, sheetId: sheetId, editingSheetName: editingSheetName, address: address, theme: theme, tokenizer: localeTokenizer, formulaLocale: formulaLocale, horizontalAlignment: horizontalAlignment, defaultBackgroundColor: cellBackgroundColor, defaultTextColor: (0, themes_1.getStringifiedColor)(cellColor, theme), functionDescriptions: localizedFunctionDescriptions, getNamedRanges: getNamedRanges, getTableNames: getTableNames, getStructuredProperties: getStructuredProperties, getTableColumnNames: getTableColumnNames, showFormulaHelp: showFormulaHelp, onHideFormulaHelp: onHideFormulaHelp, onShowFormulaHelp: onShowFormulaHelp, onRequestCalculate: onRequestCalculate, SuggestionsDropdown: SuggestionsDropdown, stickyEditor: stickyEditor, defaultFontSizePoint: defaultFontSize, getMentions: getMentions, getFunctionParameterSuggestions: getFunctionParameterSuggestions, shouldFetchFunctionParameters: shouldFetchFunctionParameters, MentionTagComponent: MentionTagComponent, MentionDropdownItemComponent: MentionDropdownItemComponent
|
|
2269
|
+
return (react_1.default.createElement(CellEditor, tslib_1.__assign({}, props, { locale: locale, effectiveValue: effectiveValue, format: cellFormat, dataValidation: dataValidation, getRangeValues: getFormattedValuesFromAddress, getRangeValuesAsync: getEditorRangeValuesAsync, scale: scale, sheetName: sheetName, editingSheetId: editingSheetId, sheetId: sheetId, editingSheetName: editingSheetName, address: address, theme: theme, tokenizer: localeTokenizer, formulaLocale: formulaLocale, horizontalAlignment: horizontalAlignment, defaultBackgroundColor: cellBackgroundColor, defaultTextColor: (0, themes_1.getStringifiedColor)(cellColor, theme), functionDescriptions: localizedFunctionDescriptions, getNamedRanges: getNamedRanges, getTableNames: getTableNames, getStructuredProperties: getStructuredProperties, getTableColumnNames: getTableColumnNames, showFormulaHelp: showFormulaHelp, onHideFormulaHelp: onHideFormulaHelp, onShowFormulaHelp: onShowFormulaHelp, onRequestCalculate: onRequestCalculate, SuggestionsDropdown: SuggestionsDropdown, stickyEditor: stickyEditor, defaultFontSizePoint: defaultFontSize, getMentions: getMentions, getFunctionParameterSuggestions: getFunctionParameterSuggestions, shouldFetchFunctionParameters: shouldFetchFunctionParameters, MentionTagComponent: MentionTagComponent, MentionDropdownItemComponent: MentionDropdownItemComponent, getAutoCompleteEntries: enableAutoComplete
|
|
2270
|
+
? function () { return getColumnEntries(editingSheetId, cell); }
|
|
2271
|
+
: undefined })));
|
|
2166
2272
|
}, [
|
|
2273
|
+
enableAutoComplete,
|
|
2274
|
+
getColumnEntries,
|
|
2167
2275
|
scale,
|
|
2168
2276
|
getEffectiveCellFormat,
|
|
2169
2277
|
getDataValidationRule,
|
|
@@ -2200,7 +2308,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2200
2308
|
/**
|
|
2201
2309
|
* Popover cell
|
|
2202
2310
|
*/
|
|
2203
|
-
var
|
|
2311
|
+
var _83 = (0, use_cell_popover_1.useCellPopover)({
|
|
2204
2312
|
sheetId: sheetId,
|
|
2205
2313
|
getCellPopoverContent: getCellPopoverContent !== null && getCellPopoverContent !== void 0 ? getCellPopoverContent : getFormattedValue,
|
|
2206
2314
|
getCellOffsetFromCoords: getCellOffsetFromCoords,
|
|
@@ -2208,7 +2316,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2208
2316
|
isFrozenColumn: isFrozenColumn,
|
|
2209
2317
|
isFrozenRow: isFrozenRow,
|
|
2210
2318
|
onChangeActiveSheet: onChangeActiveSheet,
|
|
2211
|
-
}), popoverComponent =
|
|
2319
|
+
}), popoverComponent = _83.popoverComponent, popoverRange = _83.popoverRange, showCellPopover = _83.showCellPopover, hideCellPopover = _83.hideCellPopover;
|
|
2212
2320
|
/**
|
|
2213
2321
|
* Get tooltip component of a cell
|
|
2214
2322
|
* Only error, invalid values are
|
|
@@ -2632,10 +2740,32 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2632
2740
|
var handleFillShrink = (0, react_1.useCallback)(function (sheetId, activeCell, clearRange, options) {
|
|
2633
2741
|
onDelete === null || onDelete === void 0 ? void 0 : onDelete(sheetId, activeCell, [{ range: clearRange }], (options === null || options === void 0 ? void 0 : options.modifier) === "toggle" ? "all" : "contents");
|
|
2634
2742
|
}, [onDelete]);
|
|
2743
|
+
/**
|
|
2744
|
+
* Copy gestures of the selection border (Ctrl/⌥+drag, Ctrl+Shift/⌥⇧+drag, right-drag menu),
|
|
2745
|
+
* through the host's own copy → paste on a private clipboard.
|
|
2746
|
+
*/
|
|
2747
|
+
var selectionDragCopy = (0, use_selection_drag_copy_1.useSelectionDragCopy)({
|
|
2748
|
+
sheetId: sheetId,
|
|
2749
|
+
readonly: readonly,
|
|
2750
|
+
onCopy: onCopy,
|
|
2751
|
+
onPaste: onPaste,
|
|
2752
|
+
onChangeBatch: onChangeBatch,
|
|
2753
|
+
onMoveSelection: onMoveSelection,
|
|
2754
|
+
onInsertCutCells: onInsertCutCells,
|
|
2755
|
+
onInsertCopiedCells: onInsertCopiedCells,
|
|
2756
|
+
confirmOverwrite: confirmMoveOverwrite,
|
|
2757
|
+
getValue: getUserEnteredStringValue,
|
|
2758
|
+
onChangeSelections: onSelectionChange,
|
|
2759
|
+
onChangeActiveCell: onChangeActiveCell,
|
|
2760
|
+
focusSheet: focusSheet,
|
|
2761
|
+
});
|
|
2762
|
+
var copySelectionDrop = selectionDragCopy.copySelection, insertCopyDrop = selectionDragCopy.insertCopiedCells;
|
|
2763
|
+
var handleCopySelectionDrop = (0, react_1.useCallback)(function (_sheetId, from, to) { return copySelectionDrop(from, to); }, [copySelectionDrop]);
|
|
2764
|
+
var handleInsertCopyDrop = (0, react_1.useCallback)(function (_sheetId, from, to) { return insertCopyDrop(from, to); }, [insertCopyDrop]);
|
|
2635
2765
|
/**
|
|
2636
2766
|
* Handle grid selections
|
|
2637
2767
|
*/
|
|
2638
|
-
var
|
|
2768
|
+
var _84 = (0, use_selection_1.useSelection)({
|
|
2639
2769
|
sheetId: sheetId,
|
|
2640
2770
|
getDataRowCount: getDataRowCount,
|
|
2641
2771
|
getDataRegion: getDataRegion,
|
|
@@ -2643,6 +2773,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2643
2773
|
allowDeselectSelection: false,
|
|
2644
2774
|
formulaMode: formulaMode,
|
|
2645
2775
|
enableSelectOnEnterKey: !enableEditOnEnterKey,
|
|
2776
|
+
enterKeyDirection: enterKeyDirection,
|
|
2646
2777
|
newSelectionMode: formulaMode && canSelectCells ? selectionMode : "clear",
|
|
2647
2778
|
activeCell: activeCell,
|
|
2648
2779
|
selections: selections,
|
|
@@ -2670,6 +2801,9 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2670
2801
|
onFillShrink: readonly ? undefined : handleFillShrink,
|
|
2671
2802
|
onMoveSelection: readonly ? undefined : onMoveSelection,
|
|
2672
2803
|
onInsertCutCells: onInsertCutCells,
|
|
2804
|
+
onCopySelection: readonly ? undefined : handleCopySelectionDrop,
|
|
2805
|
+
onInsertCopiedCells: readonly || !onInsertCopiedCells ? undefined : handleInsertCopyDrop,
|
|
2806
|
+
onSelectionDragMenu: readonly ? undefined : selectionDragCopy.openDropMenu,
|
|
2673
2807
|
confirmMoveOverwrite: confirmMoveOverwrite,
|
|
2674
2808
|
isHiddenColumn: isHiddenColumn,
|
|
2675
2809
|
isHiddenRow: isHiddenRow,
|
|
@@ -2679,11 +2813,12 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2679
2813
|
dataRegionBoundaries: dataRegionBoundaries,
|
|
2680
2814
|
tables: tables,
|
|
2681
2815
|
onInsertTableRow: onInsertTableRow,
|
|
2682
|
-
|
|
2816
|
+
isRangeSelectable: getSheetProtection ? isRangeSelectable : undefined,
|
|
2817
|
+
}), onMouseDownSelection = _84.onMouseDown, onPointerDownSelection = _84.onPointerDown, onKeyDownSelection = _84.onKeyDown, fillSelection = _84.fillSelection, fillShrink = _84.fillShrink, onFillHandleMouseDown = _84.onFillHandleMouseDown, onFillHandleDoubleClick = _84.onFillHandleDoubleClick, isDragging = _84.isDragging, isDragCopy = _84.isDragCopy, isFilling = _84.isFilling, isSelectionInProgress = _84.isSelectionInProgress, draggedSelection = _84.draggedSelection, onSelectionMouseDown = _84.onSelectionMouseDown, setActiveCell = _84.setActiveCell, initialDraggedSelection = _84.initialDraggedSelection, updateSelectionStartEndReference = _84.updateSelectionStartEndReference, selectColumn = _84.selectColumn, getContentfulGridRangeAroundCell = _84.getContentfulGridRangeAroundCell, newSelection = _84.newSelection, modifySelection = _84.modifySelection, clearSelections = _84.clearSelections;
|
|
2683
2818
|
/**
|
|
2684
2819
|
* Copy, Paste and Cut hook
|
|
2685
2820
|
*/
|
|
2686
|
-
var
|
|
2821
|
+
var _85 = (0, use_copy_paste_cut_1.useCopyPasteCut)({
|
|
2687
2822
|
activeCell: activeCell,
|
|
2688
2823
|
selections: selections,
|
|
2689
2824
|
sheetId: sheetId,
|
|
@@ -2692,7 +2827,8 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2692
2827
|
onPaste: onPaste,
|
|
2693
2828
|
onCopy: onCopy,
|
|
2694
2829
|
onCut: onCut,
|
|
2695
|
-
|
|
2830
|
+
onReapplyPaste: onReapplyPaste,
|
|
2831
|
+
}), copiedSelections = _85.copiedSelections, isCutPending = _85.isCutPending, copiedSheetId = _85.copiedSheetId, cancelCut = _85.cancelCut, clearCopiedSelections = _85.clearCopiedSelections, copy = _85.copy, cut = _85.cut, paste = _85.paste, onInternalCopy = _85.onInternalCopy, onInternalCut = _85.onInternalCut, onInternalPaste = _85.onInternalPaste, choosePasteOption = _85.choosePasteOption;
|
|
2696
2832
|
/**
|
|
2697
2833
|
* Ctrl+C / Ctrl+X / Ctrl+V / Ctrl+D on a selected chart. The focused chart is
|
|
2698
2834
|
* the target of those events (see `EmbedDraggable`); a paste that lands in the
|
|
@@ -2937,6 +3073,11 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2937
3073
|
onChangeBatch: onChangeBatch,
|
|
2938
3074
|
batchHistory: batchHistory,
|
|
2939
3075
|
formulaLocale: formulaLocale,
|
|
3076
|
+
onChangeArrayFormula: onChangeArrayFormula,
|
|
3077
|
+
getArrayFormula: getArrayFormula,
|
|
3078
|
+
getEffectiveFormat: getEffectiveFormat,
|
|
3079
|
+
onChangeFormatting: onChangeFormatting,
|
|
3080
|
+
autoCorrect: autoCorrect,
|
|
2940
3081
|
});
|
|
2941
3082
|
/**
|
|
2942
3083
|
* User cancels editing the cell
|
|
@@ -3036,9 +3177,19 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3036
3177
|
return true;
|
|
3037
3178
|
}
|
|
3038
3179
|
var type = (_b = (_a = getDataValidationRule(targetSheetId, cell.rowIndex, cell.columnIndex)) === null || _a === void 0 ? void 0 : _a.condition) === null || _b === void 0 ? void 0 : _b.type;
|
|
3039
|
-
if (type
|
|
3180
|
+
if (type === "ONE_OF_LIST" || type === "ONE_OF_RANGE") {
|
|
3181
|
+
editCell(targetSheetId, cell);
|
|
3182
|
+
return true;
|
|
3183
|
+
}
|
|
3184
|
+
// Excel's Pick From Drop-down List: the column block's text entries.
|
|
3185
|
+
if (readonly || !canEditCell(targetSheetId, cell)) {
|
|
3186
|
+
return false;
|
|
3187
|
+
}
|
|
3188
|
+
var entries = (0, autocomplete_1.getPickListEntries)(getColumnEntries(targetSheetId, cell));
|
|
3189
|
+
if (!entries.length) {
|
|
3040
3190
|
return false;
|
|
3041
3191
|
}
|
|
3192
|
+
setPickList({ sheetId: targetSheetId, cell: cell, entries: entries });
|
|
3042
3193
|
editCell(targetSheetId, cell);
|
|
3043
3194
|
return true;
|
|
3044
3195
|
});
|
|
@@ -3051,7 +3202,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3051
3202
|
onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(targetSheetId, [{ range: range }]);
|
|
3052
3203
|
}, [setActiveCell, onChangeSelections]);
|
|
3053
3204
|
// Excel's table hit zones (header top edge / corner / row left edge).
|
|
3054
|
-
var
|
|
3205
|
+
var _86 = (0, use_table_hit_zones_1.useTableHitZones)({
|
|
3055
3206
|
sheetId: sheetId,
|
|
3056
3207
|
tables: activeTables,
|
|
3057
3208
|
selections: selections,
|
|
@@ -3062,7 +3213,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3062
3213
|
getCellOffsetFromCoords: getCellOffsetFromCoords,
|
|
3063
3214
|
getScrollPosition: getScrollPosition,
|
|
3064
3215
|
onSelectRange: selectRangeFromMenu,
|
|
3065
|
-
}), tableHitCursor =
|
|
3216
|
+
}), tableHitCursor = _86.cursor, onMouseMoveTableHitZones = _86.onMouseMove, onMouseDownTableHitZones = _86.onMouseDown, clearTableHitZone = _86.clearHitZone;
|
|
3066
3217
|
/**
|
|
3067
3218
|
* Get context Menu component
|
|
3068
3219
|
*/
|
|
@@ -3164,7 +3315,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3164
3315
|
* Displays Context menu when user right clicks
|
|
3165
3316
|
* the grid
|
|
3166
3317
|
*/
|
|
3167
|
-
var
|
|
3318
|
+
var _87 = (0, use_context_menu_1.useContextMenu)({
|
|
3168
3319
|
getCellCoordsFromOffset: getCellCoordsFromOffset,
|
|
3169
3320
|
getRelativePositionFromOffset: getRelativePositionFromOffset,
|
|
3170
3321
|
isRowHeader: isRowHeader,
|
|
@@ -3173,7 +3324,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3173
3324
|
getCellOffsetFromCoords: getCellOffsetFromCoords,
|
|
3174
3325
|
getScrollPosition: getScrollPosition,
|
|
3175
3326
|
ContextMenuWrapper: ContextMenuWrapper,
|
|
3176
|
-
}), onContextMenu =
|
|
3327
|
+
}), onContextMenu = _87.onContextMenu, contextMenuComponent = _87.contextMenuComponent, onRequestCloseContextMenu = _87.onRequestClose, showContextMenu = _87.showContextMenu;
|
|
3177
3328
|
/**
|
|
3178
3329
|
* Shortcut handlers for formatting
|
|
3179
3330
|
* TODO: Decide on the output
|
|
@@ -3206,6 +3357,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3206
3357
|
onRequestPasteSpecial: requestPasteSpecial,
|
|
3207
3358
|
onRequestEditCell: requestEditCell,
|
|
3208
3359
|
onShowCellList: showCellList,
|
|
3360
|
+
onShowErrorCheckMenu: showErrorCheckMenu,
|
|
3209
3361
|
onChangeBatch: onChangeBatch,
|
|
3210
3362
|
getUserEnteredValue: getUserEnteredStringValue,
|
|
3211
3363
|
getEffectiveValue: getEffectiveValue,
|
|
@@ -3256,7 +3408,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3256
3408
|
/**
|
|
3257
3409
|
* Allow grid to be ediable
|
|
3258
3410
|
*/
|
|
3259
|
-
var
|
|
3411
|
+
var _88 = (0, use_editable_1.useEditable)({
|
|
3260
3412
|
sheetId: sheetId,
|
|
3261
3413
|
enableEditOnEnterKey: enableEditOnEnterKey,
|
|
3262
3414
|
keymap: keymap,
|
|
@@ -3312,11 +3464,71 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3312
3464
|
onCut: handleEditorCut,
|
|
3313
3465
|
tables: tables,
|
|
3314
3466
|
onInsertTableRow: onInsertTableRow,
|
|
3315
|
-
}), onMouseDownEditable =
|
|
3467
|
+
}), onMouseDownEditable = _88.onMouseDown, onDoubleClickEditable = _88.onDoubleClick, editorComponent = _88.editorComponent, isEditInProgress = _88.isEditInProgress, makeEditable = _88.makeEditable, editCell = _88.editCell, setEditorValue = _88.setEditorValue, hideEditor = _88.hideEditor, getNextFocusableCell = _88.getNextFocusableCell, submitEditor = _88.submitEditor, cancelEditor = _88.cancelEditor, commit = _88.commit, onKeyDownEditable = _88.onKeyDown;
|
|
3468
|
+
/**
|
|
3469
|
+
* Excel's error-checking smart tag on the active cell. Convert to Number and Ignore Error act on
|
|
3470
|
+
* every selected cell, as in Excel: Convert to Number rewrites each number stored as text as its
|
|
3471
|
+
* number in ONE undo step; Ignore Error records the selection in the sheet's `ignoredErrors`
|
|
3472
|
+
* (xlsx `<ignoredErrors>`), so the flag stays off after a save and reopen.
|
|
3473
|
+
*/
|
|
3474
|
+
var formulaBarEditor = (0, jotai_1.useAtomValue)(formula_bar_editor_value_atom_1.formulaBarEditorInstanceAtom);
|
|
3475
|
+
var activeErrorCheck = !readonly
|
|
3476
|
+
? getErrorCheck(sheetId, activeCell.rowIndex, activeCell.columnIndex)
|
|
3477
|
+
: undefined;
|
|
3478
|
+
var activeErrorName = activeErrorCheck === "evalError"
|
|
3479
|
+
? (_f = (_e = getErrorValue(sheetId, activeCell.rowIndex, activeCell.columnIndex)) === null || _e === void 0 ? void 0 : _e.name) !== null && _f !== void 0 ? _f : getFormattedValue(sheetId, activeCell.rowIndex, activeCell.columnIndex)
|
|
3480
|
+
: undefined;
|
|
3481
|
+
var activeErrorCheckTag = (0, react_1.useMemo)(function () {
|
|
3482
|
+
return activeErrorCheck
|
|
3483
|
+
? { kind: activeErrorCheck, errorName: activeErrorName }
|
|
3484
|
+
: undefined;
|
|
3485
|
+
}, [activeErrorCheck, activeErrorName]);
|
|
3486
|
+
var handleChooseErrorCheckOption = (0, use_callback_ref_1.useCallbackRef)(function (option) {
|
|
3487
|
+
var _a, _b;
|
|
3488
|
+
setErrorCheckMenuOpen(false);
|
|
3489
|
+
var kind = activeErrorCheck;
|
|
3490
|
+
if (!kind)
|
|
3491
|
+
return;
|
|
3492
|
+
var ranges = selections.length
|
|
3493
|
+
? selections.map(function (selection) { return selection.range; })
|
|
3494
|
+
: [
|
|
3495
|
+
{
|
|
3496
|
+
startRowIndex: activeCell.rowIndex,
|
|
3497
|
+
endRowIndex: activeCell.rowIndex,
|
|
3498
|
+
startColumnIndex: activeCell.columnIndex,
|
|
3499
|
+
endColumnIndex: activeCell.columnIndex,
|
|
3500
|
+
},
|
|
3501
|
+
];
|
|
3502
|
+
(0, error_checking_1.runErrorCheckOption)(option, {
|
|
3503
|
+
sheetId: sheetId,
|
|
3504
|
+
kind: kind,
|
|
3505
|
+
errorName: activeErrorName,
|
|
3506
|
+
ranges: ranges,
|
|
3507
|
+
getUserEnteredValue: function (rowIndex, columnIndex) {
|
|
3508
|
+
return getUserEnteredValue(sheetId, rowIndex, columnIndex);
|
|
3509
|
+
},
|
|
3510
|
+
maxRow: (_a = getDataRowCount === null || getDataRowCount === void 0 ? void 0 : getDataRowCount(sheetId)) !== null && _a !== void 0 ? _a : Number.MAX_SAFE_INTEGER,
|
|
3511
|
+
maxColumn: (_b = getDataColumnCount === null || getDataColumnCount === void 0 ? void 0 : getDataColumnCount(sheetId)) !== null && _b !== void 0 ? _b : Number.MAX_SAFE_INTEGER,
|
|
3512
|
+
getIgnoredErrors: getIgnoredErrors,
|
|
3513
|
+
onChangeBatch: onChangeBatch,
|
|
3514
|
+
batchHistory: batchHistory,
|
|
3515
|
+
onUpdateSheet: onUpdateSheet,
|
|
3516
|
+
editInFormulaBar: function () {
|
|
3517
|
+
if (formulaBarEditor)
|
|
3518
|
+
formulaBarEditor.focus();
|
|
3519
|
+
else
|
|
3520
|
+
makeEditable(sheetId, activeCell);
|
|
3521
|
+
},
|
|
3522
|
+
openUrl: function (url) { return window.open(url, "_blank", "noopener"); },
|
|
3523
|
+
});
|
|
3524
|
+
if (option === "editInFormulaBar")
|
|
3525
|
+
return;
|
|
3526
|
+
focusSheet();
|
|
3527
|
+
});
|
|
3316
3528
|
/**
|
|
3317
3529
|
* Move rows and columns
|
|
3318
3530
|
*/
|
|
3319
|
-
var
|
|
3531
|
+
var _89 = (0, use_move_columns_rows_1.useMoveColumnsAndRows)({
|
|
3320
3532
|
getCellOffsetFromCoords: getCellOffsetFromCoords,
|
|
3321
3533
|
getCellCoordsFromOffset: getCellCoordsFromOffset,
|
|
3322
3534
|
getRelativePositionFromOffset: getRelativePositionFromOffset,
|
|
@@ -3339,11 +3551,11 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3339
3551
|
sheetId: sheetId,
|
|
3340
3552
|
disabled: isRestricted,
|
|
3341
3553
|
HeaderMoveDragComponent: HeaderMoveDragComponent,
|
|
3342
|
-
}), draggableColumns =
|
|
3554
|
+
}), draggableColumns = _89.draggableColumns, draggableRows = _89.draggableRows, isDraggingRowsAndColumns = _89.isDragging;
|
|
3343
3555
|
/**
|
|
3344
3556
|
* Header actions
|
|
3345
3557
|
*/
|
|
3346
|
-
var
|
|
3558
|
+
var _90 = (0, use_header_actions_1.useHeaderActions)({
|
|
3347
3559
|
activeCell: isSelectionInProgress || isFilling || isDragging ? null : hoveredCell,
|
|
3348
3560
|
getScrollPosition: getScrollPosition,
|
|
3349
3561
|
getCellOffsetFromCoords: getCellOffsetFromCoords,
|
|
@@ -3371,7 +3583,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3371
3583
|
selectedRowHeadersIds: selectedRowHeadersIds,
|
|
3372
3584
|
selectedColumnHeadersIds: selectedColumnHeadersIds,
|
|
3373
3585
|
enableResizerOverflow: enableResizerOverflow,
|
|
3374
|
-
}), headerMenuComponent =
|
|
3586
|
+
}), headerMenuComponent = _90.headerMenuComponent, isHeaderMenuInFrozenColumn = _90.isHeaderMenuInFrozenColumn, headerResizer = _90.headerResizer, isDraggingHeader = _90.isDragging;
|
|
3375
3587
|
/**
|
|
3376
3588
|
* Close tooltip
|
|
3377
3589
|
*/
|
|
@@ -3413,7 +3625,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3413
3625
|
/**
|
|
3414
3626
|
* Show basicFilter panels
|
|
3415
3627
|
*/
|
|
3416
|
-
var
|
|
3628
|
+
var _91 = (0, use_filter_1.useFilter)({
|
|
3417
3629
|
sheetId: sheetId,
|
|
3418
3630
|
scale: scale,
|
|
3419
3631
|
theme: theme,
|
|
@@ -3438,9 +3650,9 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3438
3650
|
// Live filter state so the open popup tracks Auto-apply spec changes.
|
|
3439
3651
|
basicFilter: basicFilter,
|
|
3440
3652
|
tables: activeTables,
|
|
3441
|
-
}), showFilter =
|
|
3653
|
+
}), showFilter = _91.showFilter, hideFilter = _91.hideFilter, filterComponent = _91.filterComponent;
|
|
3442
3654
|
// Table resize
|
|
3443
|
-
var
|
|
3655
|
+
var _92 = (0, use_table_resizer_1.useTableResizer)({
|
|
3444
3656
|
sheetId: sheetId,
|
|
3445
3657
|
tables: tables !== null && tables !== void 0 ? tables : undefined,
|
|
3446
3658
|
theme: theme,
|
|
@@ -3451,11 +3663,11 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3451
3663
|
scrollToCell: scrollToCell,
|
|
3452
3664
|
onResizeTable: onResizeTable,
|
|
3453
3665
|
focusSheet: focusSheet,
|
|
3454
|
-
}), tableResizers =
|
|
3666
|
+
}), tableResizers = _92.tableResizers, isResizingTable = _92.isResizingTable;
|
|
3455
3667
|
/**
|
|
3456
3668
|
* Displays resizable/draggable charts
|
|
3457
3669
|
*/
|
|
3458
|
-
var
|
|
3670
|
+
var _93 = (0, use_embeds_charts_1.useEmbedsCharts)({
|
|
3459
3671
|
charts: charts,
|
|
3460
3672
|
embeds: embeds,
|
|
3461
3673
|
slicers: slicers,
|
|
@@ -3499,7 +3711,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3499
3711
|
backgroundColor: cellBackgroundColor,
|
|
3500
3712
|
disabled: isRestricted,
|
|
3501
3713
|
readonly: readonly,
|
|
3502
|
-
}), chartComponents =
|
|
3714
|
+
}), chartComponents = _93.chartComponents, embedComponents = _93.embedComponents, slicerComponents = _93.slicerComponents, embedContextMenuComponent = _93.contextMenuComponent, onMouseDownCharts = _93.onMouseDown, requestChartContextMenu = _93.requestChartContextMenu;
|
|
3503
3715
|
/**
|
|
3504
3716
|
* The basic filter or table whose range holds a cell
|
|
3505
3717
|
*/
|
|
@@ -3574,7 +3786,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3574
3786
|
* The totals-function picker a totals cell's in-cell arrow opens (Excel):
|
|
3575
3787
|
* anchored at the cell's bottom-right corner like the filter dropdown.
|
|
3576
3788
|
*/
|
|
3577
|
-
var
|
|
3789
|
+
var _94 = tslib_1.__read((0, react_1.useState)(null), 2), totalsPicker = _94[0], setTotalsPicker = _94[1];
|
|
3578
3790
|
var closeTotalsPicker = (0, react_1.useCallback)(function () { return setTotalsPicker(null); }, []);
|
|
3579
3791
|
var handleTotalsArrowClick = (0, react_1.useCallback)(function (cell) {
|
|
3580
3792
|
var table = activeTables === null || activeTables === void 0 ? void 0 : activeTables.find(function (candidate) {
|
|
@@ -3968,7 +4180,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3968
4180
|
/**
|
|
3969
4181
|
* Render Cells in the grid
|
|
3970
4182
|
*/
|
|
3971
|
-
var
|
|
4183
|
+
var _95 = tslib_1.__read((0, use_cell_renderer_1.useCellRenderer)({
|
|
3972
4184
|
sheetId: sheetId,
|
|
3973
4185
|
isTableTotalsCell: isTableTotalsCell,
|
|
3974
4186
|
onTotalsArrowClick: handleTotalsArrowClick,
|
|
@@ -4038,12 +4250,14 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
4038
4250
|
gridLineWidth: gridLineWidth,
|
|
4039
4251
|
showNotes: showNotes,
|
|
4040
4252
|
showComments: showComments,
|
|
4253
|
+
getErrorCheck: getErrorCheck,
|
|
4254
|
+
circleInvalidData: circleInvalidData,
|
|
4041
4255
|
StructuredResult: StructuredResult,
|
|
4042
4256
|
readonly: readonly,
|
|
4043
4257
|
onOverflow: handleOverflow,
|
|
4044
4258
|
isComparing: isComparing,
|
|
4045
4259
|
getCellDiff: getCellDiff,
|
|
4046
|
-
}), 5), cellBackgroundRenderer =
|
|
4260
|
+
}), 5), cellBackgroundRenderer = _95[0], cellRenderer = _95[1], cellOverlayRenderer = _95[2], headerCellRenderer = _95[3], cellBackgroundsRenderer = _95[4];
|
|
4047
4261
|
/**
|
|
4048
4262
|
* When user selects a selection for moving
|
|
4049
4263
|
* If its a table, we select the entire column
|
|
@@ -4079,16 +4293,16 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
4079
4293
|
tokenizer: localeTokenizer,
|
|
4080
4294
|
});
|
|
4081
4295
|
// Selection move: drag a formula reference via its border covers
|
|
4082
|
-
var
|
|
4296
|
+
var _96 = (0, use_selection_move_1.useSelectionMove)({
|
|
4083
4297
|
getCellCoordsFromOffset: getCellCoordsFromOffset,
|
|
4084
4298
|
scrollToCell: scrollToCell,
|
|
4085
4299
|
tokenizer: localeTokenizer,
|
|
4086
|
-
}), onMouseDownMoveSelection =
|
|
4300
|
+
}), onMouseDownMoveSelection = _96.onMouseDownMoveSelection, isDraggingMoveSelection = _96.isDragging;
|
|
4087
4301
|
/**
|
|
4088
4302
|
* Selected chart: outline its source ranges on this sheet and re-bind
|
|
4089
4303
|
* them when a corner handle is dragged (Excel's chart data highlight).
|
|
4090
4304
|
*/
|
|
4091
|
-
var
|
|
4305
|
+
var _97 = (0, use_chart_source_ranges_1.useChartSourceRanges)({
|
|
4092
4306
|
charts: charts,
|
|
4093
4307
|
sheetId: sheetId,
|
|
4094
4308
|
getSheetName: getSheetName,
|
|
@@ -4097,7 +4311,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
4097
4311
|
getCellBounds: getCellBounds,
|
|
4098
4312
|
getCellCoordsFromOffset: getCellCoordsFromOffset,
|
|
4099
4313
|
scrollToCell: scrollToCell,
|
|
4100
|
-
}), chartSourceBorderStyles =
|
|
4314
|
+
}), chartSourceBorderStyles = _97.chartSourceBorderStyles, onMouseDownChartSourceResizeHandle = _97.onMouseDownChartSourceResizeHandle;
|
|
4101
4315
|
/**
|
|
4102
4316
|
* Hide fill handle
|
|
4103
4317
|
* 1. When user is in edit mode
|
|
@@ -4112,9 +4326,9 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
4112
4326
|
/**
|
|
4113
4327
|
* Flashing
|
|
4114
4328
|
*/
|
|
4115
|
-
var
|
|
4329
|
+
var _98 = (0, use_flash_1.useFlash)({
|
|
4116
4330
|
theme: theme,
|
|
4117
|
-
}), flash =
|
|
4331
|
+
}), flash = _98.flash, mark = _98.mark, unmark = _98.unmark, onFlashEnd = _98.onFlashEnd, flashingBorders = _98.flashingBorders;
|
|
4118
4332
|
// Cache hover ids
|
|
4119
4333
|
var cachedHoveredSelectionIds = (0, use_hovered_selection_ids_1.useHoveredSelectionIds)({
|
|
4120
4334
|
selections: selections,
|
|
@@ -4160,6 +4374,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
4160
4374
|
SuggestionAction: SuggestionAction,
|
|
4161
4375
|
readonly: readonly,
|
|
4162
4376
|
onSplitTextToColumns: onSplitTextToColumns,
|
|
4377
|
+
onChoosePasteOption: onReapplyPaste ? choosePasteOption : undefined,
|
|
4163
4378
|
showPasteMenu: showPasteMenu,
|
|
4164
4379
|
fillOptions: fillOptions,
|
|
4165
4380
|
onChooseFillType: handleChooseFillType,
|
|
@@ -4173,6 +4388,10 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
4173
4388
|
calculatedColumnFill: calculatedColumnFill,
|
|
4174
4389
|
canStopAutoCalculatedColumns: !!onChangeAutoCalculatedColumns,
|
|
4175
4390
|
onChooseCalculatedColumnOption: handleChooseCalculatedColumnOption,
|
|
4391
|
+
errorCheck: activeErrorCheckTag,
|
|
4392
|
+
errorCheckMenuOpen: errorCheckMenuOpen,
|
|
4393
|
+
onErrorCheckMenuOpenChange: setErrorCheckMenuOpen,
|
|
4394
|
+
onChooseErrorCheckOption: handleChooseErrorCheckOption,
|
|
4176
4395
|
hoveredCell: delayedHoveredCell,
|
|
4177
4396
|
onRemoveQuickEdit: onRemoveQuickEdit,
|
|
4178
4397
|
onAddQuickEdit: onAddQuickEdit,
|
|
@@ -4216,7 +4435,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
4216
4435
|
? tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(pageBreakBorderStyles), false), tslib_1.__read(finalBorderStyles), false), tslib_1.__read(chartSourceBorderStyles), false) : finalBorderStyles;
|
|
4217
4436
|
}, [finalBorderStyles, chartSourceBorderStyles, pageBreakBorderStyles]);
|
|
4218
4437
|
// Hidden column markers
|
|
4219
|
-
var
|
|
4438
|
+
var _99 = tslib_1.__read((0, use_hidden_dimension_markers_1.useHiddenDimensionMarkers)({
|
|
4220
4439
|
sheetId: sheetId,
|
|
4221
4440
|
columnMetadata: columnMetadata,
|
|
4222
4441
|
rowMetadata: rowMetadata,
|
|
@@ -4229,7 +4448,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
4229
4448
|
columnCount: columnCount,
|
|
4230
4449
|
HiddenRowMarkers: HiddenRowMarkers,
|
|
4231
4450
|
HiddenColumnMarkers: HiddenColumnMarkers,
|
|
4232
|
-
}), 4), hiddenColumnMarkers =
|
|
4451
|
+
}), 4), hiddenColumnMarkers = _99[0], frozenHiddenColumnMarkers = _99[1], hiddenRowMarkers = _99[2], frozenHiddenRowMarkers = _99[3];
|
|
4233
4452
|
// Zoom lister
|
|
4234
4453
|
var onMouseWheel = (0, use_scale_listener_1.useScaleListener)({
|
|
4235
4454
|
zoomSpeed: zoomSpeed,
|
|
@@ -4547,6 +4766,14 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
4547
4766
|
setFormulaBarTextFormatRuns(undefined);
|
|
4548
4767
|
return;
|
|
4549
4768
|
}
|
|
4769
|
+
// Excel shows a legacy CSE array's formula in braces for every cell of the array
|
|
4770
|
+
// (`{=SUM(A1:A3*B1:B3)}`); the braces leave once the edit starts (`getEditorDisplayValue`).
|
|
4771
|
+
var arrayFormula = getArrayFormula === null || getArrayFormula === void 0 ? void 0 : getArrayFormula(sheetId, rowIndex, columnIndex);
|
|
4772
|
+
if (arrayFormula) {
|
|
4773
|
+
setFormulabarEditorValue("{".concat((0, utils_1.localizeCellInput)(arrayFormula.formula, formulaLocale), "}"));
|
|
4774
|
+
setFormulaBarTextFormatRuns(undefined);
|
|
4775
|
+
return;
|
|
4776
|
+
}
|
|
4550
4777
|
var value = getUserEnteredStringValue(sheetId, rowIndex, columnIndex);
|
|
4551
4778
|
var textFormatRuns = getTextFormatRuns === null || getTextFormatRuns === void 0 ? void 0 : getTextFormatRuns(sheetId, rowIndex, columnIndex);
|
|
4552
4779
|
// Update formula bar input (in the grid's formula locale, like the cell editor)
|
|
@@ -4559,6 +4786,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
4559
4786
|
editingCellCoordinate,
|
|
4560
4787
|
getSheetProtection,
|
|
4561
4788
|
getCellData,
|
|
4789
|
+
getArrayFormula,
|
|
4562
4790
|
getUserEnteredStringValue,
|
|
4563
4791
|
formulaLocale,
|
|
4564
4792
|
setFormulabarEditorValue,
|
|
@@ -4621,7 +4849,11 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
4621
4849
|
// Bind to outer container, so it always takes
|
|
4622
4850
|
// priority over other components
|
|
4623
4851
|
// generated by hooks
|
|
4624
|
-
onMouseMove: mouseMoveThrottler, onWheel: onMouseWheel }, rest, { style:
|
|
4852
|
+
onMouseMove: mouseMoveThrottler, onWheel: onMouseWheel }, rest, { style:
|
|
4853
|
+
// Ctrl / ⌥ held over a selection-border drag: Excel's copy (+) pointer.
|
|
4854
|
+
isDragging && isDragCopy
|
|
4855
|
+
? tslib_1.__assign(tslib_1.__assign({}, rest.style), { cursor: "copy" }) : tableHitCursor
|
|
4856
|
+
? tslib_1.__assign(tslib_1.__assign({}, rest.style), { cursor: tableHitCursor }) : rest.style }),
|
|
4625
4857
|
width === 0 || height === 0 ? (react_1.default.createElement("div", { className: "flex border-solid border-rnc-border border border-t border-b flex-1 justify-center items-center" },
|
|
4626
4858
|
react_1.default.createElement("div", { className: "space-y-2" },
|
|
4627
4859
|
react_1.default.createElement(ui_1.Skeleton, { className: "h-4 w-[250px]" }),
|
|
@@ -4633,6 +4865,9 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
4633
4865
|
draggableColumns,
|
|
4634
4866
|
draggableRows,
|
|
4635
4867
|
contextMenuComponent,
|
|
4868
|
+
selectionDragCopy.dropMenu ? (react_1.default.createElement(selection_drop_menu_1.SelectionDropMenu, { key: "".concat(selectionDragCopy.dropMenu.clientX, ":").concat(selectionDragCopy.dropMenu.clientY), x: selectionDragCopy.dropMenu.clientX -
|
|
4869
|
+
((_h = (_g = gridContainerRef.current) === null || _g === void 0 ? void 0 : _g.getBoundingClientRect().left) !== null && _h !== void 0 ? _h : 0), y: selectionDragCopy.dropMenu.clientY -
|
|
4870
|
+
((_k = (_j = gridContainerRef.current) === null || _j === void 0 ? void 0 : _j.getBoundingClientRect().top) !== null && _k !== void 0 ? _k : 0), actions: selectionDragCopy.dropActions, onSelectAction: selectionDragCopy.runDropAction, onCancel: selectionDragCopy.closeDropMenu })) : null,
|
|
4636
4871
|
embedContextMenuComponent,
|
|
4637
4872
|
filterComponent,
|
|
4638
4873
|
totalsPickerComponent,
|