@rowsncolumns/spreadsheet 10.2.74 → 10.2.76
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/excel-validation-kinds.d.ts +71 -0
- package/dist/cjs/api/excel-validation-kinds.d.ts.map +1 -0
- package/dist/cjs/api/excel-validation-kinds.js +304 -0
- package/dist/cjs/api/fill-series.d.ts +38 -0
- package/dist/cjs/api/fill-series.d.ts.map +1 -0
- package/dist/cjs/api/fill-series.js +89 -0
- package/dist/cjs/api/go-to-special.d.ts +32 -0
- package/dist/cjs/api/go-to-special.d.ts.map +1 -0
- package/dist/cjs/api/go-to-special.js +111 -0
- package/dist/cjs/api/spreadsheet-api.d.ts +6 -2
- package/dist/cjs/api/spreadsheet-api.d.ts.map +1 -1
- package/dist/cjs/api/spreadsheet-api.js +9 -3
- package/dist/cjs/api/validation-tooltip.d.ts +17 -0
- package/dist/cjs/api/validation-tooltip.d.ts.map +1 -0
- package/dist/cjs/api/validation-tooltip.js +42 -0
- package/dist/cjs/atoms/advanced-filter-dialog.atom.d.ts +28 -0
- package/dist/cjs/atoms/advanced-filter-dialog.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/advanced-filter-dialog.atom.js +32 -0
- package/dist/cjs/atoms/fill-options.atom.d.ts +36 -0
- package/dist/cjs/atoms/fill-options.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/fill-options.atom.js +11 -0
- package/dist/cjs/atoms/fill-series-dialog.atom.d.ts +26 -0
- package/dist/cjs/atoms/fill-series-dialog.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/fill-series-dialog.atom.js +14 -0
- package/dist/cjs/atoms/go-to-dialog.atom.d.ts +11 -1
- package/dist/cjs/atoms/go-to-dialog.atom.d.ts.map +1 -1
- package/dist/cjs/atoms/goal-seek-dialog.atom.d.ts +29 -0
- package/dist/cjs/atoms/goal-seek-dialog.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/goal-seek-dialog.atom.js +30 -0
- package/dist/cjs/atoms/index.d.ts +3 -0
- package/dist/cjs/atoms/index.d.ts.map +1 -1
- package/dist/cjs/atoms/index.js +3 -0
- package/dist/cjs/atoms/subtotal-dialog.atom.d.ts +39 -0
- package/dist/cjs/atoms/subtotal-dialog.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/subtotal-dialog.atom.js +30 -0
- package/dist/cjs/atoms/text-to-columns-dialog.atom.d.ts +34 -0
- package/dist/cjs/atoms/text-to-columns-dialog.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/text-to-columns-dialog.atom.js +36 -0
- package/dist/cjs/atoms/watch-window.atom.d.ts +37 -0
- package/dist/cjs/atoms/watch-window.atom.d.ts.map +1 -0
- package/dist/cjs/atoms/watch-window.atom.js +61 -0
- package/dist/cjs/components/advanced-filter-dialog/index.d.ts +28 -0
- package/dist/cjs/components/advanced-filter-dialog/index.d.ts.map +1 -0
- package/dist/cjs/components/advanced-filter-dialog/index.js +134 -0
- package/dist/cjs/components/calculation-options-dialog/index.d.ts +33 -0
- package/dist/cjs/components/calculation-options-dialog/index.d.ts.map +1 -0
- package/dist/cjs/components/calculation-options-dialog/index.js +69 -0
- package/dist/cjs/components/canvas-grid/index.d.ts.map +1 -1
- package/dist/cjs/components/canvas-grid/index.js +328 -71
- package/dist/cjs/components/canvas-grid/typings.d.ts +31 -5
- package/dist/cjs/components/canvas-grid/typings.d.ts.map +1 -1
- package/dist/cjs/components/cell/alignment.d.ts +30 -0
- package/dist/cjs/components/cell/alignment.d.ts.map +1 -1
- package/dist/cjs/components/cell/alignment.js +56 -1
- package/dist/cjs/components/cell/index.d.ts.map +1 -1
- package/dist/cjs/components/cell/index.js +15 -7
- package/dist/cjs/components/cell-diff/index.d.ts +3 -2
- package/dist/cjs/components/cell-diff/index.d.ts.map +1 -1
- package/dist/cjs/components/cell-editor/helpers.d.ts +9 -0
- package/dist/cjs/components/cell-editor/helpers.d.ts.map +1 -1
- package/dist/cjs/components/cell-editor/helpers.js +8 -1
- package/dist/cjs/components/cell-editor/helpers.spec.js +14 -0
- package/dist/cjs/components/cell-editor/index.d.ts.map +1 -1
- package/dist/cjs/components/cell-editor/index.js +7 -3
- package/dist/cjs/components/context-menu/index.d.ts +6 -1
- package/dist/cjs/components/context-menu/index.d.ts.map +1 -1
- package/dist/cjs/components/context-menu/index.js +146 -3
- package/dist/cjs/components/embeds/embed-component.d.ts.map +1 -1
- package/dist/cjs/components/embeds/embed-component.js +16 -1
- package/dist/cjs/components/fill-series-dialog/index.d.ts +29 -0
- package/dist/cjs/components/fill-series-dialog/index.d.ts.map +1 -0
- package/dist/cjs/components/fill-series-dialog/index.js +156 -0
- package/dist/cjs/components/go-to-dialog/index.d.ts +11 -1
- package/dist/cjs/components/go-to-dialog/index.d.ts.map +1 -1
- package/dist/cjs/components/go-to-dialog/index.js +67 -24
- package/dist/cjs/components/goal-seek-dialog/index.d.ts +32 -0
- package/dist/cjs/components/goal-seek-dialog/index.d.ts.map +1 -0
- package/dist/cjs/components/goal-seek-dialog/index.js +149 -0
- package/dist/cjs/components/selection/fill-options-menu.d.ts +32 -0
- package/dist/cjs/components/selection/fill-options-menu.d.ts.map +1 -0
- package/dist/cjs/components/selection/fill-options-menu.js +65 -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 +4 -2
- package/dist/cjs/components/selection/types.d.ts +11 -1
- package/dist/cjs/components/selection/types.d.ts.map +1 -1
- package/dist/cjs/components/subtotal-dialog/index.d.ts +30 -0
- package/dist/cjs/components/subtotal-dialog/index.d.ts.map +1 -0
- package/dist/cjs/components/subtotal-dialog/index.js +126 -0
- package/dist/cjs/components/text-to-columns-dialog/index.d.ts +37 -0
- package/dist/cjs/components/text-to-columns-dialog/index.d.ts.map +1 -0
- package/dist/cjs/components/text-to-columns-dialog/index.js +166 -0
- package/dist/cjs/components/toolbar/background-color-selector.d.ts +13 -1
- package/dist/cjs/components/toolbar/background-color-selector.d.ts.map +1 -1
- package/dist/cjs/components/toolbar/background-color-selector.js +57 -11
- package/dist/cjs/components/toolbar/cell-style-selector.d.ts +15 -2
- package/dist/cjs/components/toolbar/cell-style-selector.d.ts.map +1 -1
- package/dist/cjs/components/toolbar/cell-style-selector.js +56 -3
- package/dist/cjs/components/toolbar/fill-selectors.d.ts +49 -0
- package/dist/cjs/components/toolbar/fill-selectors.d.ts.map +1 -0
- package/dist/cjs/components/toolbar/fill-selectors.js +196 -0
- package/dist/cjs/components/toolbar/index.d.ts +1 -0
- package/dist/cjs/components/toolbar/index.d.ts.map +1 -1
- package/dist/cjs/components/toolbar/index.js +1 -0
- package/dist/cjs/components/toolbar/text-format-selector.d.ts +9 -0
- package/dist/cjs/components/toolbar/text-format-selector.d.ts.map +1 -1
- package/dist/cjs/components/toolbar/text-format-selector.js +15 -3
- package/dist/cjs/components/toolbar/text-horizontal-align-selector.d.ts +8 -0
- package/dist/cjs/components/toolbar/text-horizontal-align-selector.d.ts.map +1 -1
- package/dist/cjs/components/toolbar/text-horizontal-align-selector.js +23 -4
- package/dist/cjs/components/watch-window/index.d.ts +25 -0
- package/dist/cjs/components/watch-window/index.d.ts.map +1 -0
- package/dist/cjs/components/watch-window/index.js +63 -0
- package/dist/cjs/hooks/use-cell-renderer.d.ts.map +1 -1
- package/dist/cjs/hooks/use-cell-renderer.js +17 -6
- package/dist/cjs/hooks/use-editable.d.ts +11 -2
- package/dist/cjs/hooks/use-editable.d.ts.map +1 -1
- package/dist/cjs/hooks/use-editable.js +8 -0
- package/dist/cjs/hooks/use-editor-submit.d.ts +32 -3
- package/dist/cjs/hooks/use-editor-submit.d.ts.map +1 -1
- package/dist/cjs/hooks/use-editor-submit.js +111 -2
- package/dist/cjs/hooks/use-get-tooltip.d.ts.map +1 -1
- package/dist/cjs/hooks/use-get-tooltip.js +7 -2
- package/dist/cjs/hooks/use-keyboard-handler.d.ts.map +1 -1
- package/dist/cjs/hooks/use-keyboard-handler.js +27 -14
- package/dist/cjs/hooks/use-selection-renderer.d.ts +13 -2
- package/dist/cjs/hooks/use-selection-renderer.d.ts.map +1 -1
- package/dist/cjs/hooks/use-selection-renderer.js +21 -4
- package/dist/cjs/hooks/use-selection.d.ts +54 -4
- package/dist/cjs/hooks/use-selection.d.ts.map +1 -1
- package/dist/cjs/hooks/use-selection.js +232 -37
- package/dist/cjs/index.d.ts +12 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +11 -0
- package/dist/cjs/release-date.js +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/cjs/types.d.ts +156 -5
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js +19 -1
- package/dist/esm/api/excel-validation-kinds.d.ts +71 -0
- package/dist/esm/api/excel-validation-kinds.d.ts.map +1 -0
- package/dist/esm/api/excel-validation-kinds.js +287 -0
- package/dist/esm/api/fill-series.d.ts +38 -0
- package/dist/esm/api/fill-series.d.ts.map +1 -0
- package/dist/esm/api/fill-series.js +78 -0
- package/dist/esm/api/go-to-special.d.ts +32 -0
- package/dist/esm/api/go-to-special.d.ts.map +1 -0
- package/dist/esm/api/go-to-special.js +96 -0
- package/dist/esm/api/spreadsheet-api.d.ts +6 -2
- package/dist/esm/api/spreadsheet-api.d.ts.map +1 -1
- package/dist/esm/api/spreadsheet-api.js +8 -3
- package/dist/esm/api/validation-tooltip.d.ts +17 -0
- package/dist/esm/api/validation-tooltip.d.ts.map +1 -0
- package/dist/esm/api/validation-tooltip.js +34 -0
- package/dist/esm/atoms/advanced-filter-dialog.atom.d.ts +28 -0
- package/dist/esm/atoms/advanced-filter-dialog.atom.d.ts.map +1 -0
- package/dist/esm/atoms/advanced-filter-dialog.atom.js +21 -0
- package/dist/esm/atoms/fill-options.atom.d.ts +36 -0
- package/dist/esm/atoms/fill-options.atom.d.ts.map +1 -0
- package/dist/esm/atoms/fill-options.atom.js +5 -0
- package/dist/esm/atoms/fill-series-dialog.atom.d.ts +26 -0
- package/dist/esm/atoms/fill-series-dialog.atom.d.ts.map +1 -0
- package/dist/esm/atoms/fill-series-dialog.atom.js +9 -0
- package/dist/esm/atoms/go-to-dialog.atom.d.ts +11 -1
- package/dist/esm/atoms/go-to-dialog.atom.d.ts.map +1 -1
- package/dist/esm/atoms/goal-seek-dialog.atom.d.ts +29 -0
- package/dist/esm/atoms/goal-seek-dialog.atom.d.ts.map +1 -0
- package/dist/esm/atoms/goal-seek-dialog.atom.js +21 -0
- package/dist/esm/atoms/index.d.ts +3 -0
- package/dist/esm/atoms/index.d.ts.map +1 -1
- package/dist/esm/atoms/index.js +3 -0
- package/dist/esm/atoms/subtotal-dialog.atom.d.ts +39 -0
- package/dist/esm/atoms/subtotal-dialog.atom.d.ts.map +1 -0
- package/dist/esm/atoms/subtotal-dialog.atom.js +21 -0
- package/dist/esm/atoms/text-to-columns-dialog.atom.d.ts +34 -0
- package/dist/esm/atoms/text-to-columns-dialog.atom.d.ts.map +1 -0
- package/dist/esm/atoms/text-to-columns-dialog.atom.js +25 -0
- package/dist/esm/atoms/watch-window.atom.d.ts +37 -0
- package/dist/esm/atoms/watch-window.atom.d.ts.map +1 -0
- package/dist/esm/atoms/watch-window.atom.js +37 -0
- package/dist/esm/components/advanced-filter-dialog/index.d.ts +28 -0
- package/dist/esm/components/advanced-filter-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/advanced-filter-dialog/index.js +125 -0
- package/dist/esm/components/calculation-options-dialog/index.d.ts +33 -0
- package/dist/esm/components/calculation-options-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/calculation-options-dialog/index.js +61 -0
- package/dist/esm/components/canvas-grid/index.d.ts.map +1 -1
- package/dist/esm/components/canvas-grid/index.js +266 -26
- package/dist/esm/components/canvas-grid/typings.d.ts +31 -5
- package/dist/esm/components/canvas-grid/typings.d.ts.map +1 -1
- package/dist/esm/components/cell/alignment.d.ts +30 -0
- package/dist/esm/components/cell/alignment.d.ts.map +1 -1
- package/dist/esm/components/cell/alignment.js +51 -0
- package/dist/esm/components/cell/index.d.ts.map +1 -1
- package/dist/esm/components/cell/index.js +16 -8
- package/dist/esm/components/cell-diff/index.d.ts +3 -2
- package/dist/esm/components/cell-diff/index.d.ts.map +1 -1
- package/dist/esm/components/cell-editor/helpers.d.ts +9 -0
- package/dist/esm/components/cell-editor/helpers.d.ts.map +1 -1
- package/dist/esm/components/cell-editor/helpers.js +6 -0
- package/dist/esm/components/cell-editor/helpers.spec.js +15 -1
- package/dist/esm/components/cell-editor/index.d.ts.map +1 -1
- package/dist/esm/components/cell-editor/index.js +8 -4
- package/dist/esm/components/context-menu/index.d.ts +6 -1
- package/dist/esm/components/context-menu/index.d.ts.map +1 -1
- package/dist/esm/components/context-menu/index.js +139 -4
- package/dist/esm/components/embeds/embed-component.d.ts.map +1 -1
- package/dist/esm/components/embeds/embed-component.js +17 -1
- package/dist/esm/components/fill-series-dialog/index.d.ts +29 -0
- package/dist/esm/components/fill-series-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/fill-series-dialog/index.js +151 -0
- package/dist/esm/components/go-to-dialog/index.d.ts +11 -1
- package/dist/esm/components/go-to-dialog/index.d.ts.map +1 -1
- package/dist/esm/components/go-to-dialog/index.js +63 -23
- package/dist/esm/components/goal-seek-dialog/index.d.ts +32 -0
- package/dist/esm/components/goal-seek-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/goal-seek-dialog/index.js +125 -0
- package/dist/esm/components/selection/fill-options-menu.d.ts +32 -0
- package/dist/esm/components/selection/fill-options-menu.d.ts.map +1 -0
- package/dist/esm/components/selection/fill-options-menu.js +63 -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 +4 -2
- package/dist/esm/components/selection/types.d.ts +11 -1
- package/dist/esm/components/selection/types.d.ts.map +1 -1
- package/dist/esm/components/subtotal-dialog/index.d.ts +30 -0
- package/dist/esm/components/subtotal-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/subtotal-dialog/index.js +115 -0
- package/dist/esm/components/text-to-columns-dialog/index.d.ts +37 -0
- package/dist/esm/components/text-to-columns-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/text-to-columns-dialog/index.js +147 -0
- package/dist/esm/components/toolbar/background-color-selector.d.ts +13 -1
- package/dist/esm/components/toolbar/background-color-selector.d.ts.map +1 -1
- package/dist/esm/components/toolbar/background-color-selector.js +61 -11
- package/dist/esm/components/toolbar/cell-style-selector.d.ts +15 -2
- package/dist/esm/components/toolbar/cell-style-selector.d.ts.map +1 -1
- package/dist/esm/components/toolbar/cell-style-selector.js +46 -2
- package/dist/esm/components/toolbar/fill-selectors.d.ts +49 -0
- package/dist/esm/components/toolbar/fill-selectors.d.ts.map +1 -0
- package/dist/esm/components/toolbar/fill-selectors.js +162 -0
- package/dist/esm/components/toolbar/index.d.ts +1 -0
- package/dist/esm/components/toolbar/index.d.ts.map +1 -1
- package/dist/esm/components/toolbar/index.js +1 -0
- package/dist/esm/components/toolbar/text-format-selector.d.ts +9 -0
- package/dist/esm/components/toolbar/text-format-selector.d.ts.map +1 -1
- package/dist/esm/components/toolbar/text-format-selector.js +14 -2
- package/dist/esm/components/toolbar/text-horizontal-align-selector.d.ts +8 -0
- package/dist/esm/components/toolbar/text-horizontal-align-selector.d.ts.map +1 -1
- package/dist/esm/components/toolbar/text-horizontal-align-selector.js +21 -5
- package/dist/esm/components/watch-window/index.d.ts +25 -0
- package/dist/esm/components/watch-window/index.d.ts.map +1 -0
- package/dist/esm/components/watch-window/index.js +54 -0
- package/dist/esm/hooks/use-cell-renderer.d.ts.map +1 -1
- package/dist/esm/hooks/use-cell-renderer.js +17 -6
- package/dist/esm/hooks/use-editable.d.ts +11 -2
- package/dist/esm/hooks/use-editable.d.ts.map +1 -1
- package/dist/esm/hooks/use-editable.js +8 -0
- package/dist/esm/hooks/use-editor-submit.d.ts +32 -3
- package/dist/esm/hooks/use-editor-submit.d.ts.map +1 -1
- package/dist/esm/hooks/use-editor-submit.js +82 -3
- package/dist/esm/hooks/use-get-tooltip.d.ts.map +1 -1
- package/dist/esm/hooks/use-get-tooltip.js +7 -2
- package/dist/esm/hooks/use-keyboard-handler.d.ts.map +1 -1
- package/dist/esm/hooks/use-keyboard-handler.js +27 -14
- package/dist/esm/hooks/use-selection-renderer.d.ts +13 -2
- package/dist/esm/hooks/use-selection-renderer.d.ts.map +1 -1
- package/dist/esm/hooks/use-selection-renderer.js +22 -5
- package/dist/esm/hooks/use-selection.d.ts +54 -4
- package/dist/esm/hooks/use-selection.d.ts.map +1 -1
- package/dist/esm/hooks/use-selection.js +220 -36
- package/dist/esm/index.d.ts +12 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +11 -0
- package/dist/esm/release-date.js +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esm/types.d.ts +156 -5
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +18 -0
- package/dist/spreadsheet.min.css +1 -1
- package/package.json +7 -7
|
@@ -20,9 +20,13 @@ var cf_window_1 = require("../../api/cf-window");
|
|
|
20
20
|
var selections_1 = require("../../api/selections");
|
|
21
21
|
var spreadsheet_api_1 = require("../../api/spreadsheet-api");
|
|
22
22
|
var table_1 = require("../../api/table");
|
|
23
|
+
var validation_tooltip_1 = require("../../api/validation-tooltip");
|
|
24
|
+
var go_to_special_1 = require("../../api/go-to-special");
|
|
25
|
+
var excel_validation_kinds_1 = require("../../api/excel-validation-kinds");
|
|
23
26
|
var validation_1 = require("../../api/validation");
|
|
24
27
|
var atoms_1 = require("../../atoms");
|
|
25
28
|
var active_editor_atom_1 = require("../../atoms/active-editor.atom");
|
|
29
|
+
var watch_window_atom_1 = require("../../atoms/watch-window.atom");
|
|
26
30
|
var editing_cell_atom_1 = require("../../atoms/editing-cell.atom");
|
|
27
31
|
var formula_bar_editor_value_atom_1 = require("../../atoms/formula-bar-editor-value.atom");
|
|
28
32
|
var formula_selection_state_atom_1 = require("../../atoms/formula-selection-state.atom");
|
|
@@ -86,6 +90,7 @@ var use_touch_1 = require("../../hooks/use-touch");
|
|
|
86
90
|
var spreadsheet_provider_1 = require("../../providers/spreadsheet-provider");
|
|
87
91
|
var scroll_subscriber_1 = require("../../signals/scroll-subscriber");
|
|
88
92
|
var themes_1 = require("../../themes");
|
|
93
|
+
var fill_series_1 = require("../../api/fill-series");
|
|
89
94
|
var cell_1 = require("../cell");
|
|
90
95
|
var cell_editor_1 = require("../cell-editor");
|
|
91
96
|
var context_menu_1 = require("../context-menu");
|
|
@@ -104,7 +109,7 @@ var helpers_2 = require("./helpers");
|
|
|
104
109
|
* @returns
|
|
105
110
|
*/
|
|
106
111
|
function CanvasGridComponent(props, forwardedRef) {
|
|
107
|
-
var licenseKey = props.licenseKey, sheetId = props.sheetId, instanceId = props.instanceId, _a = props.activeCell, activeCell = _a === void 0 ? config_1.DEFAULT_ACTIVE_CELL : _a, _b = props.selections, selections = _b === void 0 ? config_1.DEFAULT_ARRAY : _b, _c = props.frozenColumnCount, frozenColumnCount = _c === void 0 ? 0 : _c, _d = props.frozenRowCount, frozenRowCount = _d === void 0 ? 0 : _d, _e = props.rowCount, rowCount = _e === void 0 ? config_1.DEFAULT_ROW_COUNT : _e, _f = props.columnCount, columnCount = _f === void 0 ? config_1.DEFAULT_COLUMN_COUNT : _f, autoFocus = props.autoFocus, basicFilter = props.basicFilter, tables = props.tables, namedRanges = props.namedRanges, _g = props.bandedRanges, bandedRanges = _g === void 0 ? config_1.DEFAULT_ARRAY : _g, _h = props.tableBorderColor, tableBorderColor = _h === void 0 ? "#008000" : _h, _j = props.filterIconColor, filterIconColor = _j === void 0 ? "#008000" : _j, conditionalFormats = props.conditionalFormats, _k = props.showFilterIcon, showFilterIcon = _k === void 0 ? true : _k, _l = props.showCalculatedColumnIcon, showCalculatedColumnIcon = _l === void 0 ? true : _l, _m = props.showHeaders, showHeaders = _m === void 0 ? true : _m, _o = props.defaultColumnWidth, defaultColumnWidth = _o === void 0 ? config_1.DEFAULT_COLUMN_WIDTH : _o, _p = props.defaultRowHeight, defaultRowHeight = _p === void 0 ? config_1.DEFAULT_ROW_HEIGHT : _p, _q = props.columnHeaderHeight, columnHeaderHeight = _q === void 0 ? config_1.COLUMN_HEADER_HEIGHT : _q, _r = props.rowHeaderWidth, rowHeaderWidth = _r === void 0 ? config_1.ROW_HEADER_WIDTH : _r, _s = props.gridLineColor, gridLineColor = _s === void 0 ? config_1.GRIDLINE_COLOR : _s, _t = props.cellBackgroundColor, cellBackgroundColor = _t === void 0 ? config_1.DEFAULT_CELL_BACKGROUND_COLOR : _t, _u = props.cellColor, cellColor = _u === void 0 ? config_1.DEFAULT_CELL_COLOR : _u, _v = props.headerBorderColor, headerBorderColor = _v === void 0 ? config_1.DEFAULT_HEADER_BORDER_COLOR : _v, _w = props.headerBackgroundColor, headerBackgroundColor = _w === void 0 ? config_1.DEFAULT_HEADER_BG : _w, _x = props.headerColor, headerColor = _x === void 0 ? config_1.DEFAULT_HEADER_COLOR : _x, _y = props.headerActiveBackgroundColor, headerActiveBackgroundColor = _y === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_BG : _y, _z = props.headerSelectedBackgroundColor, headerSelectedBackgroundColor = _z === void 0 ? config_1.DEFAULT_HEADER_SELECTED_BG : _z, _0 = props.headerSelectedColor, headerSelectedColor = _0 === void 0 ? "white" : _0, _1 = props.headerTableBackgroundColor, headerTableBackgroundColor = _1 === void 0 ? config_1.DEFAULT_HEADER_TABLE_BG : _1, _2 = props.headerTableActiveBackgroundColor, headerTableActiveBackgroundColor = _2 === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_TABLE_BG : _2, _3 = props.headerTableSelectedBackgroundColor, headerTableSelectedBackgroundColor = _3 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_TABLE_BG : _3, _4 = props.frozenShadowColor, frozenShadowColor = _4 === void 0 ? headerBorderColor : _4, _5 = props.frozenShadowThickness, frozenShadowThickness = _5 === void 0 ? 1 : _5, _6 = props.selectionBackgroundColor, selectionBackgroundColor = _6 === void 0 ? config_1.SELECTION_BG : _6, _7 = props.selectionBorderColor, selectionBorderColor = _7 === void 0 ? config_1.SELECTION_BORDER : _7, _8 = props.selectionDragBorderColor, selectionDragBorderColor = _8 === void 0 ? config_1.SELECTION_BORDER : _8, chartSelectedColor = props.chartSelectedColor, _9 = props.chipBackgroundColor, chipBackgroundColor = _9 === void 0 ? config_1.CHIP_COLOR : _9, _10 = props.merges, merges = _10 === void 0 ? config_1.DEFAULT_ARRAY : _10, borderStyles = props.borderStyles, protectedRanges = props.protectedRanges, _11 = props.isWorkbookProtected, isWorkbookProtectedProp = _11 === void 0 ? false : _11, getSheetProtection = props.getSheetProtection, pivotTables = props.pivotTables, charts = props.charts, embeds = props.embeds, slicers = props.slicers, _12 = props.rowMetadata, rowMetadata = _12 === void 0 ? config_1.DEFAULT_ARRAY : _12, _13 = props.columnMetadata, columnMetadata = _13 === void 0 ? config_1.DEFAULT_ARRAY : _13, _14 = props.scale, scale = _14 === void 0 ? 1 : _14, _15 = props.zoomSpeed, zoomSpeed = _15 === void 0 ? 1 : _15, _16 = props.overscanCount, overscanCount = _16 === void 0 ? 3 : _16, _17 = props.enableEditOnEnterKey, enableEditOnEnterKey = _17 === void 0 ? true : _17, _18 = props.enableTextOverflow, enableTextOverflow = _18 === void 0 ? true : _18, _showGridLines = props.showGridLines, _19 = props.showFormulas, showFormulas = _19 === void 0 ? false : _19, _20 = props.protectFormulas, protectFormulas = _20 === void 0 ? false : _20, _21 = props.showFrozenSeparator, showFrozenSeparator = _21 === void 0 ? true : _21, _22 = props.HeaderCell, HeaderCell = _22 === void 0 ? header_cell_1.HeaderCell : _22, _23 = props.Cell, Cell = _23 === void 0 ? cell_1.Cell : _23, _24 = props.SelectionTitleComponent, SelectionTitleComponent = _24 === void 0 ? title_1.SelectionTitle : _24, _25 = props.CellEditor, CellEditor = _25 === void 0 ? cell_editor_1.CellEditor : _25, CellTooltip = props.CellTooltip, _26 = props.ContextMenu, ContextMenu = _26 === void 0 ? context_menu_1.ContextMenu : _26, _27 = props.ContextMenuWrapper, ContextMenuWrapper = _27 === void 0 ? use_context_menu_1.DefaultContextMenuWrapper : _27, _28 = props.FilterBox, FilterBox = _28 === void 0 ? filter_box_1.FilterBox : _28, _29 = props.HeaderMoveDragComponent, HeaderMoveDragComponent = _29 === void 0 ? header_move_1.HeaderMoveDragComponent : _29, SuggestionsDropdown = props.SuggestionsDropdown, _30 = props.stickyEditor, stickyEditor = _30 === void 0 ? true : _30, _31 = props.scrollSnap, scrollSnap = _31 === void 0 ? false : _31, scrollThrottleTimeout = props.scrollThrottleTimeout, preventBrowserDefaultScroll = props.preventBrowserDefaultScroll, _32 = props.mouseMoveThrottleTimeout, mouseMoveThrottleTimeout = _32 === void 0 ? 60 : _32, _33 = props.tooltipIntentInterval, tooltipIntentInterval = _33 === void 0 ? 60 : _33, selectionPolicy = props.selectionPolicy, users = props.users, userId = props.userId, renderCollaboratorCursor = props.renderCollaboratorCursor, functionDescriptions = props.functionDescriptions, _34 = props.showHeaderMenuButton, showHeaderMenuButton = _34 === void 0 ? true : _34, _35 = props.scrollbarSize, scrollbarSize = _35 === void 0 ? config_1.SCROLLBAR_SIZE : _35, _36 = props.theme, theme = _36 === void 0 ? config_1.defaultSpreadsheetTheme : _36, _37 = props.showNotes, showNotes = _37 === void 0 ? true : _37, _38 = props.showComments, showComments = _38 === void 0 ? true : _38, locale = props.locale, agentSuggestions = props.agentSuggestions, onReviewSuggestion = props.onReviewSuggestion, onShowFormulas = props.onShowFormulas, getDataRowCount = props.getDataRowCount, 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, getUserEnteredExtendedValue = props.getUserEnteredExtendedValue, getEffectiveExtendedValue = props.getEffectiveExtendedValue, getSheetRowCount = props.getSheetRowCount, getSheetColumnCount = props.getSheetColumnCount, getCellPopoverContent = props.getCellPopoverContent, onScroll = props.onScroll, onViewPortChange = props.onViewPortChange, _39 = props.windowConditionalFormats, windowConditionalFormats = _39 === void 0 ? false : _39, _40 = props.engineConditionalFormatResults, engineConditionalFormatResults = _40 === void 0 ? false : _40, 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, 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, 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, onInsertTime = props.onInsertTime, onInsertDate = props.onInsertDate, onInsertDateTime = props.onInsertDateTime, onInsertAutoSum = props.onInsertAutoSum, onUndo = props.onUndo, onRedo = props.onRedo, onPaste = props.onPaste, onCopy = props.onCopy, onCut = props.onCut, onSortColumn = props.onSortColumn, onSortTable = props.onSortTable, onFilterTable = props.onFilterTable, onFilterPivot = props.onFilterPivot, onResizeTable = props.onResizeTable, onRequestEditTable = props.onRequestEditTable, onRequestEditPivotTable = props.onRequestEditPivotTable, onRequestDeletePivotTable = props.onRequestDeletePivotTable, onRemoveTable = props.onRemoveTable, onCreateTable = props.onCreateTable, onInsertTableColumn = props.onInsertTableColumn, onDeleteTableColumn = props.onDeleteTableColumn, onInsertTableRow = props.onInsertTableRow, onDeleteTableRow = props.onDeleteTableRow, 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, _41 = props.getRowHeaderText, getRowHeaderText = _41 === void 0 ? helpers_1.getDefaultRowHeader : _41, _42 = props.getColumnHeaderText, getColumnHeaderText = _42 === void 0 ? helpers_1.getDefaultColumnHeader : _42, getAdditionalCellSpacing = props.getAdditionalCellSpacing, _43 = props.tokenizer, defaultTokenizer = _43 === void 0 ? calculator_1.tokenize : _43, onChangeScale = props.onChangeScale, onRemoveLink = props.onRemoveLink, onSelectLink = props.onSelectLink, onSplitTextToColumns = props.onSplitTextToColumns, onRemoveDuplicates = props.onRemoveDuplicates, onRequestExpand = props.onRequestExpand, cellExpandPredicate = props.cellExpandPredicate, _44 = props.StructuredResult, StructuredResult = _44 === void 0 ? cell_structured_1.StructuredResultRenderer : _44, getMentions = props.getMentions, getStructuredPropertiesProp = props.getStructuredProperties, getFunctionParameterSuggestions = props.getFunctionParameterSuggestions, shouldFetchFunctionParameters = props.shouldFetchFunctionParameters, MentionTagComponent = props.MentionTagComponent, MentionDropdownItemComponent = props.MentionDropdownItemComponent, _45 = props.showSelectionResizeHandles, showSelectionResizeHandles = _45 === void 0 ? true : _45, enableMagicFill = props.enableMagicFill, _46 = props.enableQuickEdit, enableQuickEdit = _46 === void 0 ? true : _46, 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, _47 = props.defaultFontSizePoint, defaultFontSizePoint = _47 === void 0 ? config_1.DEFAULT_FONT_SIZE_PT : _47, readonly = props.readonly, _48 = props.isComparing, isComparing = _48 === void 0 ? false : _48, getCellDiff = props.getCellDiff, enableDataBoundaryNavigation = props.enableDataBoundaryNavigation, footerHeight = props.footerHeight, footerComponent = props.footerComponent, arrowComponents = props.arrowComponents,
|
|
112
|
+
var licenseKey = props.licenseKey, sheetId = props.sheetId, instanceId = props.instanceId, _a = props.activeCell, activeCell = _a === void 0 ? config_1.DEFAULT_ACTIVE_CELL : _a, _b = props.selections, selections = _b === void 0 ? config_1.DEFAULT_ARRAY : _b, _c = props.frozenColumnCount, frozenColumnCount = _c === void 0 ? 0 : _c, _d = props.frozenRowCount, frozenRowCount = _d === void 0 ? 0 : _d, _e = props.rowCount, rowCount = _e === void 0 ? config_1.DEFAULT_ROW_COUNT : _e, _f = props.columnCount, columnCount = _f === void 0 ? config_1.DEFAULT_COLUMN_COUNT : _f, autoFocus = props.autoFocus, basicFilter = props.basicFilter, tables = props.tables, namedRanges = props.namedRanges, _g = props.bandedRanges, bandedRanges = _g === void 0 ? config_1.DEFAULT_ARRAY : _g, _h = props.tableBorderColor, tableBorderColor = _h === void 0 ? "#008000" : _h, _j = props.filterIconColor, filterIconColor = _j === void 0 ? "#008000" : _j, conditionalFormats = props.conditionalFormats, _k = props.showFilterIcon, showFilterIcon = _k === void 0 ? true : _k, _l = props.showCalculatedColumnIcon, showCalculatedColumnIcon = _l === void 0 ? true : _l, _m = props.showHeaders, showHeaders = _m === void 0 ? true : _m, _o = props.defaultColumnWidth, defaultColumnWidth = _o === void 0 ? config_1.DEFAULT_COLUMN_WIDTH : _o, _p = props.defaultRowHeight, defaultRowHeight = _p === void 0 ? config_1.DEFAULT_ROW_HEIGHT : _p, _q = props.columnHeaderHeight, columnHeaderHeight = _q === void 0 ? config_1.COLUMN_HEADER_HEIGHT : _q, _r = props.rowHeaderWidth, rowHeaderWidth = _r === void 0 ? config_1.ROW_HEADER_WIDTH : _r, _s = props.gridLineColor, gridLineColor = _s === void 0 ? config_1.GRIDLINE_COLOR : _s, _t = props.cellBackgroundColor, cellBackgroundColor = _t === void 0 ? config_1.DEFAULT_CELL_BACKGROUND_COLOR : _t, _u = props.cellColor, cellColor = _u === void 0 ? config_1.DEFAULT_CELL_COLOR : _u, _v = props.headerBorderColor, headerBorderColor = _v === void 0 ? config_1.DEFAULT_HEADER_BORDER_COLOR : _v, _w = props.headerBackgroundColor, headerBackgroundColor = _w === void 0 ? config_1.DEFAULT_HEADER_BG : _w, _x = props.headerColor, headerColor = _x === void 0 ? config_1.DEFAULT_HEADER_COLOR : _x, _y = props.headerActiveBackgroundColor, headerActiveBackgroundColor = _y === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_BG : _y, _z = props.headerSelectedBackgroundColor, headerSelectedBackgroundColor = _z === void 0 ? config_1.DEFAULT_HEADER_SELECTED_BG : _z, _0 = props.headerSelectedColor, headerSelectedColor = _0 === void 0 ? "white" : _0, _1 = props.headerTableBackgroundColor, headerTableBackgroundColor = _1 === void 0 ? config_1.DEFAULT_HEADER_TABLE_BG : _1, _2 = props.headerTableActiveBackgroundColor, headerTableActiveBackgroundColor = _2 === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_TABLE_BG : _2, _3 = props.headerTableSelectedBackgroundColor, headerTableSelectedBackgroundColor = _3 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_TABLE_BG : _3, _4 = props.frozenShadowColor, frozenShadowColor = _4 === void 0 ? headerBorderColor : _4, _5 = props.frozenShadowThickness, frozenShadowThickness = _5 === void 0 ? 1 : _5, _6 = props.selectionBackgroundColor, selectionBackgroundColor = _6 === void 0 ? config_1.SELECTION_BG : _6, _7 = props.selectionBorderColor, selectionBorderColor = _7 === void 0 ? config_1.SELECTION_BORDER : _7, _8 = props.selectionDragBorderColor, selectionDragBorderColor = _8 === void 0 ? config_1.SELECTION_BORDER : _8, chartSelectedColor = props.chartSelectedColor, _9 = props.chipBackgroundColor, chipBackgroundColor = _9 === void 0 ? config_1.CHIP_COLOR : _9, _10 = props.merges, merges = _10 === void 0 ? config_1.DEFAULT_ARRAY : _10, borderStyles = props.borderStyles, protectedRanges = props.protectedRanges, _11 = props.isWorkbookProtected, isWorkbookProtectedProp = _11 === void 0 ? false : _11, getSheetProtection = props.getSheetProtection, pivotTables = props.pivotTables, charts = props.charts, embeds = props.embeds, slicers = props.slicers, _12 = props.rowMetadata, rowMetadata = _12 === void 0 ? config_1.DEFAULT_ARRAY : _12, _13 = props.columnMetadata, columnMetadata = _13 === void 0 ? config_1.DEFAULT_ARRAY : _13, _14 = props.scale, scale = _14 === void 0 ? 1 : _14, _15 = props.zoomSpeed, zoomSpeed = _15 === void 0 ? 1 : _15, _16 = props.overscanCount, overscanCount = _16 === void 0 ? 3 : _16, _17 = props.enableEditOnEnterKey, enableEditOnEnterKey = _17 === void 0 ? true : _17, _18 = props.enableTextOverflow, enableTextOverflow = _18 === void 0 ? true : _18, _showGridLines = props.showGridLines, _19 = props.showFormulas, showFormulas = _19 === void 0 ? false : _19, _20 = props.protectFormulas, protectFormulas = _20 === void 0 ? false : _20, _21 = props.showFrozenSeparator, showFrozenSeparator = _21 === void 0 ? true : _21, _22 = props.HeaderCell, HeaderCell = _22 === void 0 ? header_cell_1.HeaderCell : _22, _23 = props.Cell, Cell = _23 === void 0 ? cell_1.Cell : _23, _24 = props.SelectionTitleComponent, SelectionTitleComponent = _24 === void 0 ? title_1.SelectionTitle : _24, _25 = props.CellEditor, CellEditor = _25 === void 0 ? cell_editor_1.CellEditor : _25, CellTooltip = props.CellTooltip, _26 = props.ContextMenu, ContextMenu = _26 === void 0 ? context_menu_1.ContextMenu : _26, _27 = props.ContextMenuWrapper, ContextMenuWrapper = _27 === void 0 ? use_context_menu_1.DefaultContextMenuWrapper : _27, _28 = props.FilterBox, FilterBox = _28 === void 0 ? filter_box_1.FilterBox : _28, _29 = props.HeaderMoveDragComponent, HeaderMoveDragComponent = _29 === void 0 ? header_move_1.HeaderMoveDragComponent : _29, SuggestionsDropdown = props.SuggestionsDropdown, _30 = props.stickyEditor, stickyEditor = _30 === void 0 ? true : _30, _31 = props.scrollSnap, scrollSnap = _31 === void 0 ? false : _31, scrollThrottleTimeout = props.scrollThrottleTimeout, preventBrowserDefaultScroll = props.preventBrowserDefaultScroll, _32 = props.mouseMoveThrottleTimeout, mouseMoveThrottleTimeout = _32 === void 0 ? 60 : _32, _33 = props.tooltipIntentInterval, tooltipIntentInterval = _33 === void 0 ? 60 : _33, selectionPolicy = props.selectionPolicy, users = props.users, userId = props.userId, renderCollaboratorCursor = props.renderCollaboratorCursor, functionDescriptions = props.functionDescriptions, _34 = props.showHeaderMenuButton, showHeaderMenuButton = _34 === void 0 ? true : _34, _35 = props.scrollbarSize, scrollbarSize = _35 === void 0 ? config_1.SCROLLBAR_SIZE : _35, _36 = props.theme, theme = _36 === void 0 ? config_1.defaultSpreadsheetTheme : _36, _37 = props.showNotes, showNotes = _37 === void 0 ? true : _37, _38 = props.showComments, showComments = _38 === void 0 ? true : _38, locale = props.locale, agentSuggestions = props.agentSuggestions, onReviewSuggestion = props.onReviewSuggestion, onShowFormulas = props.onShowFormulas, getDataRowCount = props.getDataRowCount, 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, getUserEnteredExtendedValue = props.getUserEnteredExtendedValue, getEffectiveExtendedValue = props.getEffectiveExtendedValue, getSheetRowCount = props.getSheetRowCount, getSheetColumnCount = props.getSheetColumnCount, getCellPopoverContent = props.getCellPopoverContent, onScroll = props.onScroll, onViewPortChange = props.onViewPortChange, _39 = props.windowConditionalFormats, windowConditionalFormats = _39 === void 0 ? false : _39, _40 = props.engineConditionalFormatResults, engineConditionalFormatResults = _40 === void 0 ? false : _40, 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, 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, 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, onInsertTime = props.onInsertTime, onInsertDate = props.onInsertDate, onInsertDateTime = props.onInsertDateTime, onInsertAutoSum = props.onInsertAutoSum, onUndo = props.onUndo, onRedo = props.onRedo, onPaste = props.onPaste, onCopy = props.onCopy, onCut = props.onCut, onSortColumn = props.onSortColumn, onSortTable = props.onSortTable, onFilterTable = props.onFilterTable, onFilterPivot = props.onFilterPivot, onResizeTable = props.onResizeTable, onRequestEditTable = props.onRequestEditTable, onRequestEditPivotTable = props.onRequestEditPivotTable, onRequestDeletePivotTable = props.onRequestDeletePivotTable, onRemoveTable = props.onRemoveTable, onCreateTable = props.onCreateTable, onInsertTableColumn = props.onInsertTableColumn, onDeleteTableColumn = props.onDeleteTableColumn, onInsertTableRow = props.onInsertTableRow, onDeleteTableRow = props.onDeleteTableRow, 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, _41 = props.getRowHeaderText, getRowHeaderText = _41 === void 0 ? helpers_1.getDefaultRowHeader : _41, _42 = props.getColumnHeaderText, getColumnHeaderText = _42 === void 0 ? helpers_1.getDefaultColumnHeader : _42, getAdditionalCellSpacing = props.getAdditionalCellSpacing, _43 = props.tokenizer, defaultTokenizer = _43 === void 0 ? calculator_1.tokenize : _43, 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, _44 = props.StructuredResult, StructuredResult = _44 === void 0 ? cell_structured_1.StructuredResultRenderer : _44, getMentions = props.getMentions, getStructuredPropertiesProp = props.getStructuredProperties, getFunctionParameterSuggestions = props.getFunctionParameterSuggestions, shouldFetchFunctionParameters = props.shouldFetchFunctionParameters, MentionTagComponent = props.MentionTagComponent, MentionDropdownItemComponent = props.MentionDropdownItemComponent, _45 = props.showSelectionResizeHandles, showSelectionResizeHandles = _45 === void 0 ? true : _45, enableMagicFill = props.enableMagicFill, _46 = props.enableQuickEdit, enableQuickEdit = _46 === void 0 ? true : _46, 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, _47 = props.defaultFontSizePoint, defaultFontSizePoint = _47 === void 0 ? config_1.DEFAULT_FONT_SIZE_PT : _47, readonly = props.readonly, _48 = props.isComparing, isComparing = _48 === void 0 ? false : _48, getCellDiff = props.getCellDiff, enableDataBoundaryNavigation = props.enableDataBoundaryNavigation, footerHeight = props.footerHeight, footerComponent = props.footerComponent, arrowComponents = props.arrowComponents,
|
|
108
113
|
// Host-driven filter props. `hostHiddenRowRanges`
|
|
109
114
|
// supplies compact [start, end] hidden-row tuples; `getFilterValues` supplies a
|
|
110
115
|
// column's distinct values. Both let a million-row filter render without scanning
|
|
@@ -116,7 +121,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
116
121
|
// defaults to `getFormattedValue` inside `useGetValuesFromRange`.
|
|
117
122
|
getValidationSourceValue = props.getValidationSourceValue,
|
|
118
123
|
// Unused props only for api
|
|
119
|
-
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", "instanceId", "activeCell", "selections", "frozenColumnCount", "frozenRowCount", "rowCount", "columnCount", "autoFocus", "basicFilter", "tables", "namedRanges", "bandedRanges", "tableBorderColor", "filterIconColor", "conditionalFormats", "showFilterIcon", "showCalculatedColumnIcon", "showHeaders", "defaultColumnWidth", "defaultRowHeight", "columnHeaderHeight", "rowHeaderWidth", "gridLineColor", "cellBackgroundColor", "cellColor", "headerBorderColor", "headerBackgroundColor", "headerColor", "headerActiveBackgroundColor", "headerSelectedBackgroundColor", "headerSelectedColor", "headerTableBackgroundColor", "headerTableActiveBackgroundColor", "headerTableSelectedBackgroundColor", "frozenShadowColor", "frozenShadowThickness", "selectionBackgroundColor", "selectionBorderColor", "selectionDragBorderColor", "chartSelectedColor", "chipBackgroundColor", "merges", "borderStyles", "protectedRanges", "isWorkbookProtected", "getSheetProtection", "pivotTables", "charts", "embeds", "slicers", "rowMetadata", "columnMetadata", "scale", "zoomSpeed", "overscanCount", "enableEditOnEnterKey", "enableTextOverflow", "showGridLines", "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", "agentSuggestions", "onReviewSuggestion", "onShowFormulas", "getDataRowCount", "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", "getUserEnteredExtendedValue", "getEffectiveExtendedValue", "getSheetRowCount", "getSheetColumnCount", "getCellPopoverContent", "onScroll", "onViewPortChange", "windowConditionalFormats", "engineConditionalFormatResults", "onResize", "onAutoResize", "onHideColumn", "onHideRow", "onShowColumn", "onShowRow", "onGroupRows", "onUngroupRows", "onCollapseRowGroup", "onExpandRowGroup", "onGroupColumns", "onUngroupColumns", "onCollapseColumnGroup", "onExpandColumnGroup", "onSetOutlineDepth", "onDeleteRow", "onDeleteColumn", "onInsertRow", "onInsertColumn", "onInsertCellsShiftDown", "onInsertCellsShiftRight", "onDeleteCellsShiftLeft", "onDeleteCellsShiftUp", "onClearContents", "onMoveColumns", "onMoveRows", "onSelectNextSheet", "onSelectPreviousSheet", "onCreateNewSheet", "onKeyDown", "onChangeFormatting", "onRepeatFormatting", "onClearFormatting", "onRequestEditProtectedRange", "onMoveChart", "onResizeChart", "onDeleteChart", "onMoveEmbed", "onResizeEmbed", "onDeleteEmbed", "onRequestEditEmbed", "onMoveSlicer", "onResizeSlicer", "onDeleteSlicer", "onRequestEditSlicer", "onFillRange", "disableFillRightShortcut", "keymap", "onCalculateNow", "onRequestGoTo", "onMoveSelection", "onInsertTime", "onInsertDate", "onInsertDateTime", "onInsertAutoSum", "onUndo", "onRedo", "onPaste", "onCopy", "onCut", "onSortColumn", "onSortTable", "onFilterTable", "onFilterPivot", "onResizeTable", "onRequestEditTable", "onRequestEditPivotTable", "onRequestDeletePivotTable", "onRemoveTable", "onCreateTable", "onInsertTableColumn", "onDeleteTableColumn", "onInsertTableRow", "onDeleteTableRow", "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", "onRequestExpand", "cellExpandPredicate", "StructuredResult", "getMentions", "getStructuredProperties", "getFunctionParameterSuggestions", "shouldFetchFunctionParameters", "MentionTagComponent", "MentionDropdownItemComponent", "showSelectionResizeHandles", "enableMagicFill", "enableQuickEdit", "MagicFillComponent", "MagicFillContent", "QuickEdit", "PasteMenu", "SuggestionAction", "HiddenRowMarkers", "HiddenColumnMarkers", "enableResizerOverflow", "className", "defaultFontSizePoint", "readonly", "isComparing", "getCellDiff", "enableDataBoundaryNavigation", "footerHeight", "footerComponent", "arrowComponents", "hostHiddenRowRanges", "getFilterValues", "getFilterColors", "getValidationSourceValue", "onChangeBorder", "onDuplicateSheet", "onCreateConditionalFormattingRule", "onDeleteConditionalFormattingRule", "onUpdateConditionalFormattingRule", "onCreateDataValidationRule", "onUpdateDataValidationRule", "onDeleteDataValidationRule", "onCreateChart", "onDeleteSheet", "onCreateEmbed", "onDecreaseIndent", "onIncreaseIndent", "onChangeTheme", "onChangeDecimals", "onUpdateSheet", "onChangeBatchStream", "onBlur"]);
|
|
124
|
+
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", "instanceId", "activeCell", "selections", "frozenColumnCount", "frozenRowCount", "rowCount", "columnCount", "autoFocus", "basicFilter", "tables", "namedRanges", "bandedRanges", "tableBorderColor", "filterIconColor", "conditionalFormats", "showFilterIcon", "showCalculatedColumnIcon", "showHeaders", "defaultColumnWidth", "defaultRowHeight", "columnHeaderHeight", "rowHeaderWidth", "gridLineColor", "cellBackgroundColor", "cellColor", "headerBorderColor", "headerBackgroundColor", "headerColor", "headerActiveBackgroundColor", "headerSelectedBackgroundColor", "headerSelectedColor", "headerTableBackgroundColor", "headerTableActiveBackgroundColor", "headerTableSelectedBackgroundColor", "frozenShadowColor", "frozenShadowThickness", "selectionBackgroundColor", "selectionBorderColor", "selectionDragBorderColor", "chartSelectedColor", "chipBackgroundColor", "merges", "borderStyles", "protectedRanges", "isWorkbookProtected", "getSheetProtection", "pivotTables", "charts", "embeds", "slicers", "rowMetadata", "columnMetadata", "scale", "zoomSpeed", "overscanCount", "enableEditOnEnterKey", "enableTextOverflow", "showGridLines", "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", "agentSuggestions", "onReviewSuggestion", "onShowFormulas", "getDataRowCount", "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", "getUserEnteredExtendedValue", "getEffectiveExtendedValue", "getSheetRowCount", "getSheetColumnCount", "getCellPopoverContent", "onScroll", "onViewPortChange", "windowConditionalFormats", "engineConditionalFormatResults", "onResize", "onAutoResize", "onHideColumn", "onHideRow", "onShowColumn", "onShowRow", "onGroupRows", "onUngroupRows", "onCollapseRowGroup", "onExpandRowGroup", "onGroupColumns", "onUngroupColumns", "onCollapseColumnGroup", "onExpandColumnGroup", "onSetOutlineDepth", "onDeleteRow", "onDeleteColumn", "onInsertRow", "onInsertColumn", "onInsertCellsShiftDown", "onInsertCellsShiftRight", "onDeleteCellsShiftLeft", "onDeleteCellsShiftUp", "onClearContents", "onMoveColumns", "onMoveRows", "onSelectNextSheet", "onSelectPreviousSheet", "onCreateNewSheet", "onKeyDown", "onChangeFormatting", "onRepeatFormatting", "onClearFormatting", "onRequestEditProtectedRange", "onMoveChart", "onResizeChart", "onDeleteChart", "onMoveEmbed", "onResizeEmbed", "onDeleteEmbed", "onRequestEditEmbed", "onMoveSlicer", "onResizeSlicer", "onDeleteSlicer", "onRequestEditSlicer", "onFillRange", "disableFillRightShortcut", "keymap", "onCalculateNow", "onRequestGoTo", "onMoveSelection", "onInsertTime", "onInsertDate", "onInsertDateTime", "onInsertAutoSum", "onUndo", "onRedo", "onPaste", "onCopy", "onCut", "onSortColumn", "onSortTable", "onFilterTable", "onFilterPivot", "onResizeTable", "onRequestEditTable", "onRequestEditPivotTable", "onRequestDeletePivotTable", "onRemoveTable", "onCreateTable", "onInsertTableColumn", "onDeleteTableColumn", "onInsertTableRow", "onDeleteTableRow", "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", "readonly", "isComparing", "getCellDiff", "enableDataBoundaryNavigation", "footerHeight", "footerComponent", "arrowComponents", "hostHiddenRowRanges", "getFilterValues", "getFilterColors", "getValidationSourceValue", "onChangeBorder", "onDuplicateSheet", "onCreateConditionalFormattingRule", "onDeleteConditionalFormattingRule", "onUpdateConditionalFormattingRule", "onCreateDataValidationRule", "onUpdateDataValidationRule", "onDeleteDataValidationRule", "onCreateChart", "onDeleteSheet", "onCreateEmbed", "onDecreaseIndent", "onIncreaseIndent", "onChangeTheme", "onChangeDecimals", "onUpdateSheet", "onChangeBatchStream", "onBlur"]);
|
|
120
125
|
/**
|
|
121
126
|
* Fire onBlur only when the cell editor blurs to an element outside the
|
|
122
127
|
* spreadsheet. Routed through `useEditable` so we hook the always-focused
|
|
@@ -225,10 +230,13 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
225
230
|
var cellEditorInstance = (0, formula_bar_editor_value_atom_1.useCellEditorInstance)();
|
|
226
231
|
// Paste menu
|
|
227
232
|
var _50 = tslib_1.__read((0, atoms_1.useShowPasteMenu)(), 2), showPasteMenu = _50[0], setShowPasteMenu = _50[1];
|
|
233
|
+
// Auto Fill Options smart tag / right-drag fill menu + Series dialog
|
|
234
|
+
var _51 = tslib_1.__read((0, atoms_1.useFillOptionsState)(), 2), fillOptions = _51[0], setFillOptions = _51[1];
|
|
235
|
+
var openFillSeriesDialog = (0, atoms_1.useOpenFillSeriesDialog)();
|
|
228
236
|
// Shared state
|
|
229
237
|
var formulaMode = (0, atoms_1.useFormulaModeValue)();
|
|
230
238
|
var formulaSelections = (0, formula_selections_atom_1.useFormulaSelections)();
|
|
231
|
-
var
|
|
239
|
+
var _52 = tslib_1.__read((0, editing_cell_atom_1.useEditingCell)(), 2), editingCellCoordinate = _52[0], setEditingCellCoordinate = _52[1];
|
|
232
240
|
var setFormulabarEditorValue = (0, formula_bar_editor_value_atom_1.useSetFormulabarEditorValue)();
|
|
233
241
|
var setFormulaBarTextFormatRuns = (0, formula_bar_editor_value_atom_1.useSetFormulaBarTextFormatRuns)();
|
|
234
242
|
var canSelectCells = (0, formula_selection_state_atom_1.useFormulaCanSelectCells)();
|
|
@@ -236,7 +244,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
236
244
|
var setFormulaState = (0, formula_selection_state_atom_1.useSetFormulaSelectionState)();
|
|
237
245
|
var activeEditor = (0, active_editor_atom_1.useActiveEditor)();
|
|
238
246
|
// Magic fill state
|
|
239
|
-
var
|
|
247
|
+
var _53 = tslib_1.__read((0, magic_fill_state_atom_1.useQuickEditState)(), 2), quickEditValues = _53[0], setQuickEditState = _53[1];
|
|
240
248
|
var setNoteEditorCell = (0, atoms_1.useSetNoteEditorCell)();
|
|
241
249
|
var setPinnedTooltip = (0, atoms_1.useSetPinnedTooltip)();
|
|
242
250
|
var setSpreadsheetApi = (0, spreadsheet_api_atom_1.useSetSpreadsheetApi)();
|
|
@@ -247,7 +255,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
247
255
|
var instanceStore = (0, jotai_1.useStore)({ store: spreadsheet_provider_1.multiInstanceStore });
|
|
248
256
|
// To access closures
|
|
249
257
|
var hoveredCellRef = (0, use_stable_ref_1.useStableRef)(hoveredCell);
|
|
250
|
-
var
|
|
258
|
+
var _54 = tslib_1.__read((0, use_resize_observer_1.useResizeObserver)(), 2), gridContainerRef = _54[0], _55 = _54[1], width = _55.width, height = _55.height;
|
|
251
259
|
var defaultFrozenDims = showHeaders ? 1 : 0;
|
|
252
260
|
var frozenRows = Math.max(defaultFrozenDims, (frozenRowCount !== null && frozenRowCount !== void 0 ? frozenRowCount : 0) + defaultFrozenDims);
|
|
253
261
|
var frozenColumns = Math.max(defaultFrozenDims, (frozenColumnCount !== null && frozenColumnCount !== void 0 ? frozenColumnCount : 0) + defaultFrozenDims);
|
|
@@ -259,9 +267,9 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
259
267
|
var sheetRowCount = Math.min(config_1.MAX_ROW_COUNT + 1, rowCount + 1);
|
|
260
268
|
var sheetColumnCount = Math.min(config_1.MAX_COLUMN_COUNT + 1, columnCount + 1);
|
|
261
269
|
// License key validator
|
|
262
|
-
var
|
|
270
|
+
var _56 = tslib_1.__read((0, use_licensekey_validator_1.useLicenseKeyValidator)({
|
|
263
271
|
licenseKey: licenseKey,
|
|
264
|
-
}), 3), _ =
|
|
272
|
+
}), 3), _ = _56[0], licenseType = _56[1], validatorResult = _56[2];
|
|
265
273
|
var isRestricted = licenseType === "solo";
|
|
266
274
|
// Grid line width
|
|
267
275
|
var gridLineWidth = 1 * scale;
|
|
@@ -1077,11 +1085,11 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1077
1085
|
* Touch support
|
|
1078
1086
|
* Mainly for scrolling
|
|
1079
1087
|
*/
|
|
1080
|
-
var
|
|
1088
|
+
var _57 = (0, use_touch_1.useTouch)({
|
|
1081
1089
|
scrollTo: scrollTo,
|
|
1082
1090
|
scale: scale,
|
|
1083
1091
|
onChangeScale: onChangeScale,
|
|
1084
|
-
}), onTouchStart =
|
|
1092
|
+
}), onTouchStart = _57.onTouchStart, onDimensionsChange = _57.onDimensionsChange, scrollToTouchDevice = _57.scrollToTouchDevice, onAfterScrollToCell = _57.onAfterScrollToCell;
|
|
1085
1093
|
/**
|
|
1086
1094
|
* Conditional-formatting evaluation window: the padded, tile-quantized
|
|
1087
1095
|
* viewport. The raw viewport lives in a ref (no render per scroll frame);
|
|
@@ -1089,7 +1097,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1089
1097
|
* `startTransition` so the CF recompute is low-priority and interruptible —
|
|
1090
1098
|
* scrolling never blocks on it.
|
|
1091
1099
|
*/
|
|
1092
|
-
var
|
|
1100
|
+
var _58 = tslib_1.__read((0, react_1.useState)(cf_window_1.CF_INITIAL_WINDOW), 2), cfWindow = _58[0], setCfWindow = _58[1];
|
|
1093
1101
|
var cfWindowRef = (0, react_1.useRef)(null);
|
|
1094
1102
|
var handleViewPortChange = (0, react_1.useCallback)(function (viewport) {
|
|
1095
1103
|
onViewPortChange === null || onViewPortChange === void 0 ? void 0 : onViewPortChange(viewport);
|
|
@@ -1321,14 +1329,14 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1321
1329
|
tokenizer: defaultTokenizer,
|
|
1322
1330
|
});
|
|
1323
1331
|
// Helper function to convert a selection to readable selection address
|
|
1324
|
-
var
|
|
1332
|
+
var _59 = tslib_1.__read((0, use_create_address_from_selection_1.useCreateAddressFromSelection)({
|
|
1325
1333
|
sheetId: sheetId,
|
|
1326
1334
|
rowCount: rowCount,
|
|
1327
1335
|
columnCount: columnCount,
|
|
1328
1336
|
tables: tables !== null && tables !== void 0 ? tables : undefined,
|
|
1329
1337
|
namedRanges: namedRanges !== null && namedRanges !== void 0 ? namedRanges : undefined,
|
|
1330
1338
|
merges: merges,
|
|
1331
|
-
}), 2), getAddressFromSelection =
|
|
1339
|
+
}), 2), getAddressFromSelection = _59[0], getR1C1AddressFromSelection = _59[1];
|
|
1332
1340
|
/**
|
|
1333
1341
|
* Exports a data region as image
|
|
1334
1342
|
*/
|
|
@@ -1374,7 +1382,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1374
1382
|
* Get user entered value from a range
|
|
1375
1383
|
* of cells
|
|
1376
1384
|
*/
|
|
1377
|
-
var
|
|
1385
|
+
var _60 = tslib_1.__read((0, use_get_values_from_range_1.useGetValuesFromRange)({
|
|
1378
1386
|
sheetId: sheetId,
|
|
1379
1387
|
getSelectionsFromFormula: getSelectionsFromFormula,
|
|
1380
1388
|
getFormattedValue: getFormattedValue,
|
|
@@ -1382,7 +1390,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1382
1390
|
getSheetId: getSheetId,
|
|
1383
1391
|
onRequestCalculate: onRequestCalculate,
|
|
1384
1392
|
getValidationSourceValue: getValidationSourceValue,
|
|
1385
|
-
}), 3), getFormattedValuesFromAddress =
|
|
1393
|
+
}), 3), getFormattedValuesFromAddress = _60[0], getEffectiveValuesFromRange = _60[1], getFormattedValuesFromAddressAsync = _60[2];
|
|
1386
1394
|
/**
|
|
1387
1395
|
* Get all formatted values from range as a single 1d array
|
|
1388
1396
|
*/
|
|
@@ -1439,6 +1447,23 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1439
1447
|
if (rule.allowBlank && isBlank) {
|
|
1440
1448
|
return undefined;
|
|
1441
1449
|
}
|
|
1450
|
+
// A typed formula is validated on its RESULT once the calculator has
|
|
1451
|
+
// run (Excel enters `=5` into a whole-number cell and checks the 5) —
|
|
1452
|
+
// its text can never be decided here, so it stays flag-only.
|
|
1453
|
+
if ((0, excel_validation_kinds_1.isFormulaEntry)(value)) {
|
|
1454
|
+
return undefined;
|
|
1455
|
+
}
|
|
1456
|
+
// Excel's Whole number / Time / Text length kinds (authored or imported
|
|
1457
|
+
// with `xlsxSource`) are decided synchronously from the typed text when
|
|
1458
|
+
// their bounds are literals — Excel blocks a decimal in a whole-number
|
|
1459
|
+
// cell at entry, not after a recalc.
|
|
1460
|
+
var excelKindVerdict = (0, excel_validation_kinds_1.checkExcelValidationValue)(rule, value);
|
|
1461
|
+
if (excelKindVerdict !== undefined) {
|
|
1462
|
+
var excelDecision = (0, validation_1.decideValidationCommit)(alert, excelKindVerdict);
|
|
1463
|
+
return excelDecision === "proceed"
|
|
1464
|
+
? undefined
|
|
1465
|
+
: { decision: excelDecision, alert: alert };
|
|
1466
|
+
}
|
|
1442
1467
|
if ((0, utils_1.isDataValidationFormulaRule)(rule)) {
|
|
1443
1468
|
// Enforce synchronously only where `checkBooleanRule` can decide the typed
|
|
1444
1469
|
// value without the calculator: CUSTOM_FORMULA's sync branch is a stub, the
|
|
@@ -1702,7 +1727,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1702
1727
|
* O(n)
|
|
1703
1728
|
* Reduces Space Complexity by using `all`
|
|
1704
1729
|
*/
|
|
1705
|
-
var
|
|
1730
|
+
var _61 = tslib_1.__read((0, use_selected_rows_columns_1.useSelectedRowsColumns)({
|
|
1706
1731
|
activeCell: activeCell,
|
|
1707
1732
|
selections: selections,
|
|
1708
1733
|
selectionLeftBound: selectionLeftBound,
|
|
@@ -1710,7 +1735,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1710
1735
|
rowCount: rowCount,
|
|
1711
1736
|
columnCount: columnCount,
|
|
1712
1737
|
getCellBounds: getCellBounds,
|
|
1713
|
-
}), 6), selectedRows =
|
|
1738
|
+
}), 6), selectedRows = _61[0], selectedColumns = _61[1], selectedRowHeaders = _61[2], selectedColumnHeaders = _61[3], selectedRowHeadersIds = _61[4], selectedColumnHeadersIds = _61[5];
|
|
1714
1739
|
// Named ranges for editor dropdown
|
|
1715
1740
|
var getNamedRanges = (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function () {
|
|
1716
1741
|
return namedRanges === null || namedRanges === void 0 ? void 0 : namedRanges.map(function (range) { return ({
|
|
@@ -1780,7 +1805,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1780
1805
|
* user can select entire column or row when selecting
|
|
1781
1806
|
* header cells
|
|
1782
1807
|
*/
|
|
1783
|
-
var
|
|
1808
|
+
var _62 = (0, use_selection_interceptors_1.useSelectionInterceptors)({
|
|
1784
1809
|
sheetId: sheetId,
|
|
1785
1810
|
rowCount: rowCount,
|
|
1786
1811
|
columnCount: columnCount,
|
|
@@ -1796,7 +1821,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1796
1821
|
onChangeActiveCell: onChangeActiveCell,
|
|
1797
1822
|
scrollToCell: scrollToCell,
|
|
1798
1823
|
isMergedCell: isMergedCell,
|
|
1799
|
-
}), onMouseDownInterceptor =
|
|
1824
|
+
}), onMouseDownInterceptor = _62.onMouseDownInterceptor, onMouseMoveInterceptor = _62.onMouseMoveInterceptor;
|
|
1800
1825
|
/**
|
|
1801
1826
|
* When user selections full rows
|
|
1802
1827
|
* or columns, we have to ignore
|
|
@@ -1884,7 +1909,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1884
1909
|
* Enables auto resizing
|
|
1885
1910
|
* rows and columns
|
|
1886
1911
|
*/
|
|
1887
|
-
var
|
|
1912
|
+
var _63 = (0, use_sizer_1.useSizer)({
|
|
1888
1913
|
frozenRows: frozenRows,
|
|
1889
1914
|
frozenColumns: frozenColumns,
|
|
1890
1915
|
scale: scale,
|
|
@@ -1907,7 +1932,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1907
1932
|
getDataRowCount: getDataRowCount,
|
|
1908
1933
|
fontSize: defaultFontSizePoint,
|
|
1909
1934
|
resizeStrategy: "full",
|
|
1910
|
-
}), getColumnWidth =
|
|
1935
|
+
}), getColumnWidth = _63.getColumnWidth, getRowHeight = _63.getRowHeight, getCellDimensions = _63.getCellDimensions, getCellDimensionsStable = _63.getCellDimensionsStable, getTextDimension = _63.getTextDimension;
|
|
1911
1936
|
/**
|
|
1912
1937
|
* Called when user tries to
|
|
1913
1938
|
* autofit a column or row
|
|
@@ -1980,7 +2005,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1980
2005
|
/**
|
|
1981
2006
|
* Popover cell
|
|
1982
2007
|
*/
|
|
1983
|
-
var
|
|
2008
|
+
var _64 = (0, use_cell_popover_1.useCellPopover)({
|
|
1984
2009
|
sheetId: sheetId,
|
|
1985
2010
|
getCellPopoverContent: getCellPopoverContent !== null && getCellPopoverContent !== void 0 ? getCellPopoverContent : getFormattedValue,
|
|
1986
2011
|
getCellOffsetFromCoords: getCellOffsetFromCoords,
|
|
@@ -1988,35 +2013,24 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1988
2013
|
isFrozenColumn: isFrozenColumn,
|
|
1989
2014
|
isFrozenRow: isFrozenRow,
|
|
1990
2015
|
onChangeActiveSheet: onChangeActiveSheet,
|
|
1991
|
-
}), popoverComponent =
|
|
2016
|
+
}), popoverComponent = _64.popoverComponent, popoverRange = _64.popoverRange, showCellPopover = _64.showCellPopover, hideCellPopover = _64.hideCellPopover;
|
|
1992
2017
|
/**
|
|
1993
2018
|
* Get tooltip component of a cell
|
|
1994
2019
|
* Only error, invalid values are
|
|
1995
2020
|
* shown in tooltip
|
|
1996
2021
|
*/
|
|
1997
2022
|
/**
|
|
1998
|
-
* Compose host tooltip content with the data-validation
|
|
1999
|
-
*
|
|
2000
|
-
*
|
|
2001
|
-
*
|
|
2023
|
+
* Compose host tooltip content with the data-validation messages. Host-
|
|
2024
|
+
* provided content wins; otherwise the rule's input message (Excel's "show
|
|
2025
|
+
* input message when cell is selected") or, on an Invalid cell, the rule's
|
|
2026
|
+
* custom error alert text — see `getDataValidationTooltipContent`.
|
|
2002
2027
|
*/
|
|
2003
2028
|
var getTooltipContentWithValidation = (0, react_1.useCallback)(function (tooltipSheetId, rowIndex, columnIndex) {
|
|
2004
2029
|
var hostContent = getTooltipContent === null || getTooltipContent === void 0 ? void 0 : getTooltipContent(tooltipSheetId, rowIndex, columnIndex);
|
|
2005
2030
|
if (hostContent != null) {
|
|
2006
2031
|
return hostContent;
|
|
2007
2032
|
}
|
|
2008
|
-
|
|
2009
|
-
if ((error === null || error === void 0 ? void 0 : error.type) === "Error" || (error === null || error === void 0 ? void 0 : error.type) === "Invalid") {
|
|
2010
|
-
return undefined;
|
|
2011
|
-
}
|
|
2012
|
-
var rule = getDataValidationRule(tooltipSheetId, rowIndex, columnIndex);
|
|
2013
|
-
var inputMessage = rule === null || rule === void 0 ? void 0 : rule.inputMessage;
|
|
2014
|
-
if (!inputMessage || (!inputMessage.title && !inputMessage.message)) {
|
|
2015
|
-
return undefined;
|
|
2016
|
-
}
|
|
2017
|
-
return (react_1.default.createElement("div", { className: "bg-rnc-background text-rnc-foreground p-2 shadow-md rounded-md border-l-4 border-solid border-l-blue-700 max-w-[300px] flex flex-col gap-0.5" },
|
|
2018
|
-
inputMessage.title ? (react_1.default.createElement("div", { className: "font-bold font-system text-sm" }, inputMessage.title)) : null,
|
|
2019
|
-
inputMessage.message ? (react_1.default.createElement("div", { className: "text-xs font-system whitespace-pre-wrap" }, inputMessage.message)) : null));
|
|
2033
|
+
return (0, validation_tooltip_1.getDataValidationTooltipContent)(getDataValidationRule(tooltipSheetId, rowIndex, columnIndex), getErrorValue(tooltipSheetId, rowIndex, columnIndex));
|
|
2020
2034
|
}, [getTooltipContent, getErrorValue, getDataValidationRule]);
|
|
2021
2035
|
var getTooltip = (0, use_get_tooltip_1.useGetTooltip)({
|
|
2022
2036
|
sheetId: sheetId,
|
|
@@ -2041,10 +2055,164 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2041
2055
|
var dataRegionBoundaries = (0, react_1.useMemo)(function () {
|
|
2042
2056
|
return tables === null || tables === void 0 ? void 0 : tables.filter(function (table) { return table.sheetId === sheetId; }).map(function (table) { return table.range; });
|
|
2043
2057
|
}, [tables, sheetId]);
|
|
2058
|
+
/**
|
|
2059
|
+
* True when a source cell of a fill is date-formatted — the fill menu then
|
|
2060
|
+
* adds Fill Days / Weekdays / Months / Years (Excel shows them only for
|
|
2061
|
+
* date sources). Reads the cell's own format first, then the effective
|
|
2062
|
+
* (style-plane) format so rnc-backed cells count too.
|
|
2063
|
+
*/
|
|
2064
|
+
var sourceHasDates = (0, react_1.useCallback)(function (fillSheetId, sources) {
|
|
2065
|
+
var e_11, _a;
|
|
2066
|
+
var _b, _c, _d, _e, _f;
|
|
2067
|
+
var visited = 0;
|
|
2068
|
+
try {
|
|
2069
|
+
for (var sources_1 = tslib_1.__values(sources), sources_1_1 = sources_1.next(); !sources_1_1.done; sources_1_1 = sources_1.next()) {
|
|
2070
|
+
var range = sources_1_1.value.range;
|
|
2071
|
+
for (var r = range.startRowIndex; r <= range.endRowIndex; r++) {
|
|
2072
|
+
for (var c = range.startColumnIndex; c <= range.endColumnIndex; c++) {
|
|
2073
|
+
// Bounded scan: a whole-column source would otherwise cost a full walk.
|
|
2074
|
+
if (++visited > 256)
|
|
2075
|
+
return false;
|
|
2076
|
+
var uf = (_b = getCellData === null || getCellData === void 0 ? void 0 : getCellData(fillSheetId, r, c)) === null || _b === void 0 ? void 0 : _b.userEnteredFormat;
|
|
2077
|
+
var type = (_d = (uf && "numberFormat" in uf ? (_c = uf.numberFormat) === null || _c === void 0 ? void 0 : _c.type : undefined)) !== null && _d !== void 0 ? _d : (_f = (_e = getEffectiveFormat === null || getEffectiveFormat === void 0 ? void 0 : getEffectiveFormat(fillSheetId, r, c)) === null || _e === void 0 ? void 0 : _e.numberFormat) === null || _f === void 0 ? void 0 : _f.type;
|
|
2078
|
+
if (type === "DATE" || type === "DATE_TIME")
|
|
2079
|
+
return true;
|
|
2080
|
+
}
|
|
2081
|
+
}
|
|
2082
|
+
}
|
|
2083
|
+
}
|
|
2084
|
+
catch (e_11_1) { e_11 = { error: e_11_1 }; }
|
|
2085
|
+
finally {
|
|
2086
|
+
try {
|
|
2087
|
+
if (sources_1_1 && !sources_1_1.done && (_a = sources_1.return)) _a.call(sources_1);
|
|
2088
|
+
}
|
|
2089
|
+
finally { if (e_11) throw e_11.error; }
|
|
2090
|
+
}
|
|
2091
|
+
return false;
|
|
2092
|
+
}, [getCellData, getEffectiveFormat]);
|
|
2093
|
+
/**
|
|
2094
|
+
* A fill-handle drag ended: park the gesture so the Auto Fill Options smart
|
|
2095
|
+
* tag (left drag — already filled) or the right-drag fill menu (nothing
|
|
2096
|
+
* filled yet) can re-choose the fill type.
|
|
2097
|
+
*/
|
|
2098
|
+
var handleFillHandleRelease = (0, react_1.useCallback)(function (release) {
|
|
2099
|
+
if (readonly)
|
|
2100
|
+
return;
|
|
2101
|
+
setFillOptions({
|
|
2102
|
+
sheetId: release.sheetId,
|
|
2103
|
+
activeCell: release.activeCell,
|
|
2104
|
+
fillSelection: release.fillSelection,
|
|
2105
|
+
selections: release.selections,
|
|
2106
|
+
fillType: undefined,
|
|
2107
|
+
hasDates: sourceHasDates(release.sheetId, release.selections.length
|
|
2108
|
+
? release.selections
|
|
2109
|
+
: [{ range: (0, grid_1.cellToArea)(release.activeCell) }]),
|
|
2110
|
+
mode: release.button === "right" ? "menu" : "smart-tag",
|
|
2111
|
+
});
|
|
2112
|
+
}, [readonly, setFillOptions, sourceHasDates]);
|
|
2113
|
+
/**
|
|
2114
|
+
* An entry of the fill menu was picked: re-issue the fill from the (still
|
|
2115
|
+
* intact) source with the explicit type. The target is simply overwritten
|
|
2116
|
+
* with the new result — no undo round-trip needed because the source
|
|
2117
|
+
* selection is never touched by a fill.
|
|
2118
|
+
*/
|
|
2119
|
+
var handleChooseFillType = (0, react_1.useCallback)(function (fillType) {
|
|
2120
|
+
if (!fillOptions)
|
|
2121
|
+
return;
|
|
2122
|
+
onFill === null || onFill === void 0 ? void 0 : onFill(fillOptions.sheetId, fillOptions.activeCell, fillOptions.fillSelection, fillOptions.selections, undefined, fillType);
|
|
2123
|
+
setFillOptions(tslib_1.__assign(tslib_1.__assign({}, fillOptions), { fillType: fillType, mode: "smart-tag" }));
|
|
2124
|
+
focusSheet();
|
|
2125
|
+
}, [fillOptions, onFill, setFillOptions, focusSheet]);
|
|
2126
|
+
var handleCloseFillOptions = (0, react_1.useCallback)(function () {
|
|
2127
|
+
// Only the right-drag menu is "cancel on close"; the smart tag stays.
|
|
2128
|
+
if ((fillOptions === null || fillOptions === void 0 ? void 0 : fillOptions.mode) === "menu")
|
|
2129
|
+
setFillOptions(null);
|
|
2130
|
+
}, [fillOptions, setFillOptions]);
|
|
2131
|
+
/**
|
|
2132
|
+
* Run Excel's Series dialog result: the target range's first row (Series
|
|
2133
|
+
* in Columns) / first column (Rows) is the seed line; `stop` may shrink or
|
|
2134
|
+
* extend the target along the axis from the seed's last value.
|
|
2135
|
+
*/
|
|
2136
|
+
var applyFillSeriesSpec = (0, react_1.useCallback)(function (fillSheetId, cell, target, spec) {
|
|
2137
|
+
var seed = (0, fill_series_1.seedRangeForSeriesSpec)(target.range, spec);
|
|
2138
|
+
var fillRange = (0, fill_series_1.fillRangeForSeriesSpec)({
|
|
2139
|
+
target: target.range,
|
|
2140
|
+
seed: seed,
|
|
2141
|
+
spec: spec,
|
|
2142
|
+
getSeedValue: function (r, c) {
|
|
2143
|
+
var value = getEffectiveValue(fillSheetId, r, c);
|
|
2144
|
+
return typeof value === "number" ? value : undefined;
|
|
2145
|
+
},
|
|
2146
|
+
rowCount: rowCount,
|
|
2147
|
+
columnCount: columnCount,
|
|
2148
|
+
});
|
|
2149
|
+
if (!fillRange)
|
|
2150
|
+
return;
|
|
2151
|
+
var fillType = spec.type === "linear"
|
|
2152
|
+
? spec.trend
|
|
2153
|
+
? "LinearTrend"
|
|
2154
|
+
: "FillSeries"
|
|
2155
|
+
: spec.type === "growth"
|
|
2156
|
+
? "GrowthTrend"
|
|
2157
|
+
: spec.type === "date"
|
|
2158
|
+
? spec.dateUnit === "weekday"
|
|
2159
|
+
? "FillWeekdays"
|
|
2160
|
+
: spec.dateUnit === "month"
|
|
2161
|
+
? "FillMonths"
|
|
2162
|
+
: spec.dateUnit === "year"
|
|
2163
|
+
? "FillYears"
|
|
2164
|
+
: "FillDays"
|
|
2165
|
+
: undefined;
|
|
2166
|
+
onFill === null || onFill === void 0 ? void 0 : onFill(fillSheetId, cell, { range: fillRange }, [tslib_1.__assign(tslib_1.__assign({}, target), { range: seed })], undefined, fillType, { series: spec });
|
|
2167
|
+
onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(fillSheetId, [tslib_1.__assign(tslib_1.__assign({}, target), { range: fillRange })]);
|
|
2168
|
+
}, [getEffectiveValue, onFill, onChangeSelections, rowCount, columnCount]);
|
|
2169
|
+
/** Open the Series dialog for a range (the current selection by default). */
|
|
2170
|
+
var openFillSeriesDialogFor = (0, react_1.useCallback)(function (target, initialIn) {
|
|
2171
|
+
var _a;
|
|
2172
|
+
var selection = (_a = target !== null && target !== void 0 ? target : selections[selections.length - 1]) !== null && _a !== void 0 ? _a : { range: (0, grid_1.cellToArea)(activeCell) };
|
|
2173
|
+
openFillSeriesDialog({
|
|
2174
|
+
sheetId: sheetId,
|
|
2175
|
+
activeCell: activeCell,
|
|
2176
|
+
selection: selection,
|
|
2177
|
+
initialIn: initialIn,
|
|
2178
|
+
onApply: function (spec) {
|
|
2179
|
+
return applyFillSeriesSpec(sheetId, activeCell, selection, spec);
|
|
2180
|
+
},
|
|
2181
|
+
});
|
|
2182
|
+
}, [selections, activeCell, sheetId, openFillSeriesDialog, applyFillSeriesSpec]);
|
|
2183
|
+
/** "Series…" on the right-drag fill menu: the drag's target is the range, its axis the default. */
|
|
2184
|
+
var handleOpenFillSeriesDialog = (0, react_1.useCallback)(function () {
|
|
2185
|
+
var _a;
|
|
2186
|
+
if (!fillOptions)
|
|
2187
|
+
return;
|
|
2188
|
+
var range = fillOptions.fillSelection.range;
|
|
2189
|
+
var source = (_a = fillOptions.selections[0]) === null || _a === void 0 ? void 0 : _a.range;
|
|
2190
|
+
var initialIn = source &&
|
|
2191
|
+
(range.endRowIndex > source.endRowIndex ||
|
|
2192
|
+
range.startRowIndex < source.startRowIndex)
|
|
2193
|
+
? "columns"
|
|
2194
|
+
: "rows";
|
|
2195
|
+
setFillOptions(null);
|
|
2196
|
+
openFillSeriesDialogFor({ range: range }, initialIn);
|
|
2197
|
+
}, [fillOptions, setFillOptions, openFillSeriesDialogFor]);
|
|
2198
|
+
// The smart tag belongs to one fill; moving on (a new active cell) drops it.
|
|
2199
|
+
// Keyed on the cell's coordinates, not the object — a re-created `activeCell`
|
|
2200
|
+
// with the same coordinates must not dismiss it.
|
|
2201
|
+
(0, react_1.useEffect)(function () {
|
|
2202
|
+
setFillOptions(null);
|
|
2203
|
+
}, [activeCell.rowIndex, activeCell.columnIndex, sheetId, setFillOptions]);
|
|
2204
|
+
/**
|
|
2205
|
+
* Fill handle dragged BACK inside the selection (Excel): the dragged-over cells lose their
|
|
2206
|
+
* contents — formats stay unless Ctrl/Cmd was held — through the same `onDelete` path as the
|
|
2207
|
+
* Delete key, so both engines (legacy `useOnDelete`, rnc `delete-cells`) clear identically.
|
|
2208
|
+
*/
|
|
2209
|
+
var handleFillShrink = (0, react_1.useCallback)(function (sheetId, activeCell, clearRange, options) {
|
|
2210
|
+
onDelete === null || onDelete === void 0 ? void 0 : onDelete(sheetId, activeCell, [{ range: clearRange }], (options === null || options === void 0 ? void 0 : options.modifier) === "toggle" ? "all" : "contents");
|
|
2211
|
+
}, [onDelete]);
|
|
2044
2212
|
/**
|
|
2045
2213
|
* Handle grid selections
|
|
2046
2214
|
*/
|
|
2047
|
-
var
|
|
2215
|
+
var _65 = (0, use_selection_1.useSelection)({
|
|
2048
2216
|
sheetId: sheetId,
|
|
2049
2217
|
getDataRowCount: getDataRowCount,
|
|
2050
2218
|
enableDataBoundaryNavigation: enableDataBoundaryNavigation,
|
|
@@ -2072,6 +2240,8 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2072
2240
|
scrollToCell: scrollToCell,
|
|
2073
2241
|
isMergedCell: isMergedCell,
|
|
2074
2242
|
onFill: onFill,
|
|
2243
|
+
onFillHandleRelease: handleFillHandleRelease,
|
|
2244
|
+
onFillShrink: handleFillShrink,
|
|
2075
2245
|
onMoveSelection: onMoveSelection,
|
|
2076
2246
|
isHiddenColumn: isHiddenColumn,
|
|
2077
2247
|
isHiddenRow: isHiddenRow,
|
|
@@ -2079,11 +2249,11 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2079
2249
|
isColumnHeader: isColumnHeader,
|
|
2080
2250
|
isTouchDevice: helpers_1.isTouchDevice,
|
|
2081
2251
|
dataRegionBoundaries: dataRegionBoundaries,
|
|
2082
|
-
}), onMouseDownSelection =
|
|
2252
|
+
}), onMouseDownSelection = _65.onMouseDown, onPointerDownSelection = _65.onPointerDown, onKeyDownSelection = _65.onKeyDown, fillSelection = _65.fillSelection, fillShrink = _65.fillShrink, onFillHandleMouseDown = _65.onFillHandleMouseDown, onFillHandleDoubleClick = _65.onFillHandleDoubleClick, isDragging = _65.isDragging, isFilling = _65.isFilling, isSelectionInProgress = _65.isSelectionInProgress, draggedSelection = _65.draggedSelection, onSelectionMouseDown = _65.onSelectionMouseDown, setActiveCell = _65.setActiveCell, initialDraggedSelection = _65.initialDraggedSelection, updateSelectionStartEndReference = _65.updateSelectionStartEndReference, selectColumn = _65.selectColumn, getContentfulGridRangeAroundCell = _65.getContentfulGridRangeAroundCell, newSelection = _65.newSelection, modifySelection = _65.modifySelection, clearSelections = _65.clearSelections;
|
|
2083
2253
|
/**
|
|
2084
2254
|
* Copy, Paste and Cut hook
|
|
2085
2255
|
*/
|
|
2086
|
-
var
|
|
2256
|
+
var _66 = (0, use_copy_paste_cut_1.useCopyPasteCut)({
|
|
2087
2257
|
activeCell: activeCell,
|
|
2088
2258
|
selections: selections,
|
|
2089
2259
|
sheetId: sheetId,
|
|
@@ -2091,7 +2261,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2091
2261
|
onPaste: onPaste,
|
|
2092
2262
|
onCopy: onCopy,
|
|
2093
2263
|
onCut: onCut,
|
|
2094
|
-
}), copiedSelections =
|
|
2264
|
+
}), copiedSelections = _66.copiedSelections, clearCopiedSelections = _66.clearCopiedSelections, copy = _66.copy, cut = _66.cut, paste = _66.paste, onInternalCopy = _66.onInternalCopy, onInternalCut = _66.onInternalCut, onInternalPaste = _66.onInternalPaste;
|
|
2095
2265
|
/**
|
|
2096
2266
|
* Paste Special dialog (context menu → Paste special…, Ctrl+Alt+V). The
|
|
2097
2267
|
* dialog is host-mounted (`PasteSpecialDialogHost`); its request routes
|
|
@@ -2145,6 +2315,21 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2145
2315
|
getSheetName,
|
|
2146
2316
|
onRequestCalculate,
|
|
2147
2317
|
]);
|
|
2318
|
+
/**
|
|
2319
|
+
* Watch Window: "Add to Watch Window" is offered only while a
|
|
2320
|
+
* `WatchWindowHost` is mounted; the live getters are published below once
|
|
2321
|
+
* `navigateToSheetRange` exists.
|
|
2322
|
+
*/
|
|
2323
|
+
var addWatch = (0, watch_window_atom_1.useAddWatch)();
|
|
2324
|
+
var isWatchWindowMounted = (0, watch_window_atom_1.useIsWatchWindowMounted)();
|
|
2325
|
+
var setWatchWindowContext = (0, watch_window_atom_1.useSetWatchWindowContext)();
|
|
2326
|
+
var requestAddWatch = (0, react_1.useMemo)(function () {
|
|
2327
|
+
if (!isWatchWindowMounted)
|
|
2328
|
+
return undefined;
|
|
2329
|
+
return function (watchSheetId, cell) {
|
|
2330
|
+
return addWatch(tslib_1.__assign({ sheetId: watchSheetId }, cell));
|
|
2331
|
+
};
|
|
2332
|
+
}, [isWatchWindowMounted, addWatch]);
|
|
2148
2333
|
/**
|
|
2149
2334
|
* Go To (Ctrl+G / F5). A host `onRequestGoTo` wins; otherwise the built-in
|
|
2150
2335
|
* dialog opens — but only while a `GoToDialogHost` is mounted, so a host
|
|
@@ -2234,6 +2419,8 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2234
2419
|
onChange: onChange,
|
|
2235
2420
|
getCommitValidation: getCommitValidation,
|
|
2236
2421
|
showValidationAlert: showValidationAlert,
|
|
2422
|
+
selections: selections,
|
|
2423
|
+
onChangeBatch: onChangeBatch,
|
|
2237
2424
|
});
|
|
2238
2425
|
/**
|
|
2239
2426
|
* User cancels editing the cell
|
|
@@ -2313,7 +2500,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2313
2500
|
* Get context Menu component
|
|
2314
2501
|
*/
|
|
2315
2502
|
var getContextMenu = (0, react_1.useCallback)(function (cell) {
|
|
2316
|
-
return (react_1.default.createElement(ContextMenu, { activeCell: activeCell, selections: selections, sheetId: sheetId, frozenRows: frozenRows, frozenColumns: frozenColumns, onHideColumn: isRestricted ? undefined : onHideColumn, onShowColumn: isRestricted ? undefined : onShowColumn, onShowRow: isRestricted ? undefined : onShowRow, onHideRow: isRestricted ? undefined : onHideRow, onGroupRows: isRestricted ? undefined : onGroupRows, onUngroupRows: isRestricted ? undefined : onUngroupRows, onGroupColumns: isRestricted ? undefined : onGroupColumns, onUngroupColumns: isRestricted ? undefined : onUngroupColumns, isHiddenColumn: isHiddenColumn, isHiddenRow: isHiddenRow, onDeleteColumn: onDeleteColumn, onDeleteRow: onDeleteRow, onInsertRow: onInsertRow, onInsertColumn: onInsertColumn, onInsertCellsShiftDown: onInsertCellsShiftDown, onInsertCellsShiftRight: onInsertCellsShiftRight, onDeleteCellsShiftLeft: onDeleteCellsShiftLeft, onDeleteCellsShiftUp: onDeleteCellsShiftUp, onClearContents: onClearContents, onFreezeColumn: onFreezeColumn, onFreezeRow: onFreezeRow, focusSheet: focusSheet, onSortColumn: onSortColumn, onInsertNote: onInsertNote, onProtectRange: onProtectRange, onUnProtectRange: onUnProtectRange, onSortRange: onSortRange, onRequestDefineNamedRange: onRequestDefineNamedRange, protectedRanges: protectedRanges, isRowHeader: isRowHeader(cell.columnIndex), isColumnHeader: isColumnHeader(cell.rowIndex), selectedRowHeadersIds: selectedRowHeadersIds, selectedColumnHeadersIds: selectedColumnHeadersIds, onCopy: copy, onCut: cut, onPaste: paste, onRequestPasteSpecial: requestPasteSpecial, onRequestEvaluateFormula: requestEvaluateFormula, isActiveCellFormula: Boolean(getFormulaValue(sheetId, activeCell.rowIndex, activeCell.columnIndex)), onRequestResize: onRequestResize, isSheetFocused: isSheetFocused, tables: activeTables, pivotTables: pivotTables, basicFilter: basicFilter, onRequestEditTable: onRequestEditTable, onRequestEditPivotTable: onRequestEditPivotTable, onRemoveTable: onRemoveTable, onRequestDeletePivotTable: onRequestDeletePivotTable, onPivotDrillDown: onPivotDrillDown, onRequestFormatCells: onRequestFormatCells, onRequestConditionalFormat: onRequestConditionalFormat, onRequestDataValidation: onRequestDataValidation, onClearFormatting: onClearFormatting, onCreateTable: onCreateTable, onCreateBasicFilter: onCreateBasicFilter, onInsertTableColumn: onInsertTableColumn, onDeleteTableColumn: onDeleteTableColumn, onInsertTableRow: onInsertTableRow, onDeleteTableRow: onDeleteTableRow, onFilterTable: onFilterTable, onSortTable: onSortTable, getFormattedValue: getFormattedValue, getFormattedValuesFromRange: getFormattedValuesFromRange, isTableHeader: isTableHeader, readonly: readonly, onSplitTextToColumns: onSplitTextToColumns, onRemoveDuplicates: onRemoveDuplicates, onChange: onChange, getCellData: getCellData, onAddQuickEdit: onAddQuickEdit, enableMagicFill: enableMagicFill }));
|
|
2503
|
+
return (react_1.default.createElement(ContextMenu, { activeCell: activeCell, selections: selections, sheetId: sheetId, frozenRows: frozenRows, frozenColumns: frozenColumns, onHideColumn: isRestricted ? undefined : onHideColumn, onShowColumn: isRestricted ? undefined : onShowColumn, onShowRow: isRestricted ? undefined : onShowRow, onHideRow: isRestricted ? undefined : onHideRow, onGroupRows: isRestricted ? undefined : onGroupRows, onUngroupRows: isRestricted ? undefined : onUngroupRows, onGroupColumns: isRestricted ? undefined : onGroupColumns, onUngroupColumns: isRestricted ? undefined : onUngroupColumns, isHiddenColumn: isHiddenColumn, isHiddenRow: isHiddenRow, onDeleteColumn: onDeleteColumn, onDeleteRow: onDeleteRow, onInsertRow: onInsertRow, onInsertColumn: onInsertColumn, onInsertCellsShiftDown: onInsertCellsShiftDown, onInsertCellsShiftRight: onInsertCellsShiftRight, onDeleteCellsShiftLeft: onDeleteCellsShiftLeft, onDeleteCellsShiftUp: onDeleteCellsShiftUp, onClearContents: onClearContents, onFreezeColumn: onFreezeColumn, onFreezeRow: onFreezeRow, focusSheet: focusSheet, onSortColumn: onSortColumn, onInsertNote: onInsertNote, onProtectRange: onProtectRange, onUnProtectRange: onUnProtectRange, onSortRange: onSortRange, onRequestDefineNamedRange: onRequestDefineNamedRange, protectedRanges: protectedRanges, isRowHeader: isRowHeader(cell.columnIndex), isColumnHeader: isColumnHeader(cell.rowIndex), selectedRowHeadersIds: selectedRowHeadersIds, selectedColumnHeadersIds: selectedColumnHeadersIds, onCopy: copy, onCut: cut, onPaste: paste, onRequestPasteSpecial: requestPasteSpecial, onRequestEvaluateFormula: requestEvaluateFormula, onRequestAddWatch: requestAddWatch, isActiveCellFormula: Boolean(getFormulaValue(sheetId, activeCell.rowIndex, activeCell.columnIndex)), onRequestResize: onRequestResize, isSheetFocused: isSheetFocused, tables: activeTables, pivotTables: pivotTables, basicFilter: basicFilter, onRequestEditTable: onRequestEditTable, onRequestEditPivotTable: onRequestEditPivotTable, onRemoveTable: onRemoveTable, onRequestDeletePivotTable: onRequestDeletePivotTable, onPivotDrillDown: onPivotDrillDown, onRequestFormatCells: onRequestFormatCells, onRequestConditionalFormat: onRequestConditionalFormat, onRequestDataValidation: onRequestDataValidation, onClearFormatting: onClearFormatting, onCreateTable: onCreateTable, onCreateBasicFilter: onCreateBasicFilter, onInsertTableColumn: onInsertTableColumn, onDeleteTableColumn: onDeleteTableColumn, onInsertTableRow: onInsertTableRow, onDeleteTableRow: onDeleteTableRow, onFilterTable: onFilterTable, onSortTable: onSortTable, getFormattedValue: getFormattedValue, getFormattedValuesFromRange: getFormattedValuesFromRange, isTableHeader: isTableHeader, readonly: readonly, onSplitTextToColumns: onSplitTextToColumns, onRemoveDuplicates: onRemoveDuplicates, onGoalSeek: onGoalSeek, onSubtotal: onSubtotal, onAdvancedFilter: onAdvancedFilter, onChange: onChange, getCellData: getCellData, onAddQuickEdit: onAddQuickEdit, enableMagicFill: enableMagicFill }));
|
|
2317
2504
|
}, [
|
|
2318
2505
|
isRestricted,
|
|
2319
2506
|
activeCell,
|
|
@@ -2381,6 +2568,9 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2381
2568
|
enableMagicFill,
|
|
2382
2569
|
onSplitTextToColumns,
|
|
2383
2570
|
onRemoveDuplicates,
|
|
2571
|
+
onGoalSeek,
|
|
2572
|
+
onSubtotal,
|
|
2573
|
+
onAdvancedFilter,
|
|
2384
2574
|
onChange,
|
|
2385
2575
|
getCellData,
|
|
2386
2576
|
onRequestDeletePivotTable,
|
|
@@ -2398,7 +2588,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2398
2588
|
* Displays Context menu when user right clicks
|
|
2399
2589
|
* the grid
|
|
2400
2590
|
*/
|
|
2401
|
-
var
|
|
2591
|
+
var _67 = (0, use_context_menu_1.useContextMenu)({
|
|
2402
2592
|
getCellCoordsFromOffset: getCellCoordsFromOffset,
|
|
2403
2593
|
getRelativePositionFromOffset: getRelativePositionFromOffset,
|
|
2404
2594
|
isRowHeader: isRowHeader,
|
|
@@ -2407,7 +2597,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2407
2597
|
getCellOffsetFromCoords: getCellOffsetFromCoords,
|
|
2408
2598
|
getScrollPosition: getScrollPosition,
|
|
2409
2599
|
ContextMenuWrapper: ContextMenuWrapper,
|
|
2410
|
-
}), onContextMenu =
|
|
2600
|
+
}), onContextMenu = _67.onContextMenu, contextMenuComponent = _67.contextMenuComponent, onRequestCloseContextMenu = _67.onRequestClose, showContextMenu = _67.showContextMenu;
|
|
2411
2601
|
/**
|
|
2412
2602
|
* Shortcut handlers for formatting
|
|
2413
2603
|
* TODO: Decide on the output
|
|
@@ -2487,7 +2677,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2487
2677
|
/**
|
|
2488
2678
|
* Allow grid to be ediable
|
|
2489
2679
|
*/
|
|
2490
|
-
var
|
|
2680
|
+
var _68 = (0, use_editable_1.useEditable)({
|
|
2491
2681
|
sheetId: sheetId,
|
|
2492
2682
|
enableEditOnEnterKey: enableEditOnEnterKey,
|
|
2493
2683
|
canEdit: canEditCell,
|
|
@@ -2536,11 +2726,11 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2536
2726
|
onCopy: onInternalCopy,
|
|
2537
2727
|
onPaste: onInternalPaste,
|
|
2538
2728
|
onCut: onInternalCut,
|
|
2539
|
-
}), onMouseDownEditable =
|
|
2729
|
+
}), onMouseDownEditable = _68.onMouseDown, onDoubleClickEditable = _68.onDoubleClick, editorComponent = _68.editorComponent, isEditInProgress = _68.isEditInProgress, makeEditable = _68.makeEditable, editCell = _68.editCell, setEditorValue = _68.setEditorValue, hideEditor = _68.hideEditor, getNextFocusableCell = _68.getNextFocusableCell, submitEditor = _68.submitEditor, cancelEditor = _68.cancelEditor, commit = _68.commit;
|
|
2540
2730
|
/**
|
|
2541
2731
|
* Move rows and columns
|
|
2542
2732
|
*/
|
|
2543
|
-
var
|
|
2733
|
+
var _69 = (0, use_move_columns_rows_1.useMoveColumnsAndRows)({
|
|
2544
2734
|
getCellOffsetFromCoords: getCellOffsetFromCoords,
|
|
2545
2735
|
getCellCoordsFromOffset: getCellCoordsFromOffset,
|
|
2546
2736
|
getRelativePositionFromOffset: getRelativePositionFromOffset,
|
|
@@ -2563,11 +2753,11 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2563
2753
|
sheetId: sheetId,
|
|
2564
2754
|
disabled: isRestricted,
|
|
2565
2755
|
HeaderMoveDragComponent: HeaderMoveDragComponent,
|
|
2566
|
-
}), draggableColumns =
|
|
2756
|
+
}), draggableColumns = _69.draggableColumns, draggableRows = _69.draggableRows, isDraggingRowsAndColumns = _69.isDragging;
|
|
2567
2757
|
/**
|
|
2568
2758
|
* Header actions
|
|
2569
2759
|
*/
|
|
2570
|
-
var
|
|
2760
|
+
var _70 = (0, use_header_actions_1.useHeaderActions)({
|
|
2571
2761
|
activeCell: isSelectionInProgress || isFilling || isDragging ? null : hoveredCell,
|
|
2572
2762
|
getScrollPosition: getScrollPosition,
|
|
2573
2763
|
getCellOffsetFromCoords: getCellOffsetFromCoords,
|
|
@@ -2594,7 +2784,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2594
2784
|
selectedRowHeadersIds: selectedRowHeadersIds,
|
|
2595
2785
|
selectedColumnHeadersIds: selectedColumnHeadersIds,
|
|
2596
2786
|
enableResizerOverflow: enableResizerOverflow,
|
|
2597
|
-
}), headerMenuComponent =
|
|
2787
|
+
}), headerMenuComponent = _70.headerMenuComponent, isHeaderMenuInFrozenColumn = _70.isHeaderMenuInFrozenColumn, headerResizer = _70.headerResizer, isDraggingHeader = _70.isDragging;
|
|
2598
2788
|
/**
|
|
2599
2789
|
* Close tooltip
|
|
2600
2790
|
*/
|
|
@@ -2636,7 +2826,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2636
2826
|
/**
|
|
2637
2827
|
* Show basicFilter panels
|
|
2638
2828
|
*/
|
|
2639
|
-
var
|
|
2829
|
+
var _71 = (0, use_filter_1.useFilter)({
|
|
2640
2830
|
sheetId: sheetId,
|
|
2641
2831
|
scale: scale,
|
|
2642
2832
|
theme: theme,
|
|
@@ -2661,9 +2851,9 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2661
2851
|
// Live filter state so the open popup tracks Auto-apply spec changes.
|
|
2662
2852
|
basicFilter: basicFilter,
|
|
2663
2853
|
tables: activeTables,
|
|
2664
|
-
}), showFilter =
|
|
2854
|
+
}), showFilter = _71.showFilter, hideFilter = _71.hideFilter, filterComponent = _71.filterComponent;
|
|
2665
2855
|
// Table resize
|
|
2666
|
-
var
|
|
2856
|
+
var _72 = (0, use_table_resizer_1.useTableResizer)({
|
|
2667
2857
|
sheetId: sheetId,
|
|
2668
2858
|
tables: tables !== null && tables !== void 0 ? tables : undefined,
|
|
2669
2859
|
theme: theme,
|
|
@@ -2674,11 +2864,11 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2674
2864
|
scrollToCell: scrollToCell,
|
|
2675
2865
|
onResizeTable: onResizeTable,
|
|
2676
2866
|
focusSheet: focusSheet,
|
|
2677
|
-
}), tableResizers =
|
|
2867
|
+
}), tableResizers = _72.tableResizers, isResizingTable = _72.isResizingTable;
|
|
2678
2868
|
/**
|
|
2679
2869
|
* Displays resizable/draggable charts
|
|
2680
2870
|
*/
|
|
2681
|
-
var
|
|
2871
|
+
var _73 = (0, use_embeds_charts_1.useEmbedsCharts)({
|
|
2682
2872
|
charts: charts,
|
|
2683
2873
|
embeds: embeds,
|
|
2684
2874
|
slicers: slicers,
|
|
@@ -2715,7 +2905,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2715
2905
|
backgroundColor: cellBackgroundColor,
|
|
2716
2906
|
disabled: isRestricted,
|
|
2717
2907
|
readonly: readonly,
|
|
2718
|
-
}), chartComponents =
|
|
2908
|
+
}), chartComponents = _73.chartComponents, embedComponents = _73.embedComponents, slicerComponents = _73.slicerComponents, onMouseDownCharts = _73.onMouseDown;
|
|
2719
2909
|
/**
|
|
2720
2910
|
* Callback when user clicks Filter icon
|
|
2721
2911
|
* Show Filter dropdown here
|
|
@@ -2845,6 +3035,8 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2845
3035
|
hideCellPopover();
|
|
2846
3036
|
// Hide paste mnenu
|
|
2847
3037
|
setShowPasteMenu(false);
|
|
3038
|
+
// Hide the Auto Fill Options smart tag (its own mousedown never reaches here)
|
|
3039
|
+
setFillOptions(null);
|
|
2848
3040
|
// Remove pinned tooltip
|
|
2849
3041
|
onUnpinTooltip();
|
|
2850
3042
|
}, [
|
|
@@ -2856,6 +3048,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2856
3048
|
setFormulaState,
|
|
2857
3049
|
hideCellPopover,
|
|
2858
3050
|
setShowPasteMenu,
|
|
3051
|
+
setFillOptions,
|
|
2859
3052
|
onUnpinTooltip,
|
|
2860
3053
|
focusSheet,
|
|
2861
3054
|
]);
|
|
@@ -2970,7 +3163,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2970
3163
|
/**
|
|
2971
3164
|
* Render Cells in the grid
|
|
2972
3165
|
*/
|
|
2973
|
-
var
|
|
3166
|
+
var _74 = tslib_1.__read((0, use_cell_renderer_1.useCellRenderer)({
|
|
2974
3167
|
sheetId: sheetId,
|
|
2975
3168
|
showGridLines: showGridLines,
|
|
2976
3169
|
scale: scale,
|
|
@@ -3036,7 +3229,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3036
3229
|
onOverflow: handleOverflow,
|
|
3037
3230
|
isComparing: isComparing,
|
|
3038
3231
|
getCellDiff: getCellDiff,
|
|
3039
|
-
}), 4), cellBackgroundRenderer =
|
|
3232
|
+
}), 4), cellBackgroundRenderer = _74[0], cellRenderer = _74[1], cellOverlayRenderer = _74[2], headerCellRenderer = _74[3];
|
|
3040
3233
|
/**
|
|
3041
3234
|
* When user selects a selection for moving
|
|
3042
3235
|
* If its a table, we select the entire column
|
|
@@ -3072,11 +3265,11 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3072
3265
|
tokenizer: tokenizer,
|
|
3073
3266
|
});
|
|
3074
3267
|
// Selection move: drag a formula reference via its border covers
|
|
3075
|
-
var
|
|
3268
|
+
var _75 = (0, use_selection_move_1.useSelectionMove)({
|
|
3076
3269
|
getCellCoordsFromOffset: getCellCoordsFromOffset,
|
|
3077
3270
|
scrollToCell: scrollToCell,
|
|
3078
3271
|
tokenizer: tokenizer,
|
|
3079
|
-
}), onMouseDownMoveSelection =
|
|
3272
|
+
}), onMouseDownMoveSelection = _75.onMouseDownMoveSelection, isDraggingMoveSelection = _75.isDragging;
|
|
3080
3273
|
/**
|
|
3081
3274
|
* Hide fill handle
|
|
3082
3275
|
* 1. When user is in edit mode
|
|
@@ -3089,9 +3282,9 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3089
3282
|
/**
|
|
3090
3283
|
* Flashing
|
|
3091
3284
|
*/
|
|
3092
|
-
var
|
|
3285
|
+
var _76 = (0, use_flash_1.useFlash)({
|
|
3093
3286
|
theme: theme,
|
|
3094
|
-
}), flash =
|
|
3287
|
+
}), flash = _76.flash, mark = _76.mark, unmark = _76.unmark, onFlashEnd = _76.onFlashEnd, flashingBorders = _76.flashingBorders;
|
|
3095
3288
|
// Cache hover ids
|
|
3096
3289
|
var cachedHoveredSelectionIds = (0, use_hovered_selection_ids_1.useHoveredSelectionIds)({
|
|
3097
3290
|
selections: selections,
|
|
@@ -3101,9 +3294,12 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3101
3294
|
/**
|
|
3102
3295
|
* Selection Renderer
|
|
3103
3296
|
*/
|
|
3297
|
+
// The drag-back preview reuses the fill overlay geometry but greys the cells about to be cleared.
|
|
3298
|
+
var fillShrinkOverlay = (0, react_1.useMemo)(function () { return (fillShrink ? { range: fillShrink.clearRange } : undefined); }, [fillShrink]);
|
|
3104
3299
|
var selectionRenderer = (0, use_selection_renderer_1.useSelectionRenderer)({
|
|
3105
3300
|
sheetId: sheetId,
|
|
3106
3301
|
scale: scale,
|
|
3302
|
+
isFillShrink: fillShrink !== undefined,
|
|
3107
3303
|
onSelectionMouseDown: onSelectionElementMouseDown,
|
|
3108
3304
|
onMouseDownResizeHandle: onMouseDownResizeHandle,
|
|
3109
3305
|
onMouseDownMoveSelection: onMouseDownMoveSelection,
|
|
@@ -3132,6 +3328,10 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3132
3328
|
readonly: readonly,
|
|
3133
3329
|
onSplitTextToColumns: onSplitTextToColumns,
|
|
3134
3330
|
showPasteMenu: showPasteMenu,
|
|
3331
|
+
fillOptions: fillOptions,
|
|
3332
|
+
onChooseFillType: handleChooseFillType,
|
|
3333
|
+
onOpenFillSeriesDialog: handleOpenFillSeriesDialog,
|
|
3334
|
+
onCloseFillOptions: handleCloseFillOptions,
|
|
3135
3335
|
hoveredCell: delayedHoveredCell,
|
|
3136
3336
|
onRemoveQuickEdit: onRemoveQuickEdit,
|
|
3137
3337
|
onAddQuickEdit: onAddQuickEdit,
|
|
@@ -3167,7 +3367,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3167
3367
|
quickEditValues: quickEditValues,
|
|
3168
3368
|
});
|
|
3169
3369
|
// Hidden column markers
|
|
3170
|
-
var
|
|
3370
|
+
var _77 = tslib_1.__read((0, use_hidden_dimension_markers_1.useHiddenDimensionMarkers)({
|
|
3171
3371
|
sheetId: sheetId,
|
|
3172
3372
|
columnMetadata: columnMetadata,
|
|
3173
3373
|
rowMetadata: rowMetadata,
|
|
@@ -3180,7 +3380,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3180
3380
|
columnCount: columnCount,
|
|
3181
3381
|
HiddenRowMarkers: HiddenRowMarkers,
|
|
3182
3382
|
HiddenColumnMarkers: HiddenColumnMarkers,
|
|
3183
|
-
}), 4), hiddenColumnMarkers =
|
|
3383
|
+
}), 4), hiddenColumnMarkers = _77[0], frozenHiddenColumnMarkers = _77[1], hiddenRowMarkers = _77[2], frozenHiddenRowMarkers = _77[3];
|
|
3184
3384
|
// Zoom lister
|
|
3185
3385
|
var onMouseWheel = (0, use_scale_listener_1.useScaleListener)({
|
|
3186
3386
|
zoomSpeed: zoomSpeed,
|
|
@@ -3205,9 +3405,19 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3205
3405
|
setActiveCell: setActiveCell,
|
|
3206
3406
|
flash: flash,
|
|
3207
3407
|
});
|
|
3208
|
-
// Built-in Go To: resolve against the workbook, then select + scroll.
|
|
3408
|
+
// Built-in Go To: resolve against the workbook, then select + scroll. Go
|
|
3409
|
+
// To Special scans the current selection (the whole sheet for a single
|
|
3410
|
+
// cell) through the host's `getCellData`.
|
|
3209
3411
|
(0, use_isomorphic_layout_effect_1.useIsomorphicLayoutEffect)(function () {
|
|
3210
|
-
builtInGoToRef.current = function (goToSheetId, goToActiveCell) {
|
|
3412
|
+
builtInGoToRef.current = function (goToSheetId, goToActiveCell, goToSelections) {
|
|
3413
|
+
var scanRange = (goToSelections === null || goToSelections === void 0 ? void 0 : goToSelections.length) && goToSelections[0]
|
|
3414
|
+
? goToSelections[0].range
|
|
3415
|
+
: {
|
|
3416
|
+
startRowIndex: 1,
|
|
3417
|
+
endRowIndex: Math.max(1, sheetRowCount - 1),
|
|
3418
|
+
startColumnIndex: 1,
|
|
3419
|
+
endColumnIndex: Math.max(1, sheetColumnCount - 1),
|
|
3420
|
+
};
|
|
3211
3421
|
openGoToDialog({
|
|
3212
3422
|
sheetId: goToSheetId,
|
|
3213
3423
|
activeCell: goToActiveCell,
|
|
@@ -3220,9 +3430,54 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3220
3430
|
navigateToSheetRange(range, { enableFlash: false });
|
|
3221
3431
|
focusSheet();
|
|
3222
3432
|
},
|
|
3433
|
+
special: getCellData
|
|
3434
|
+
? {
|
|
3435
|
+
resolve: function (kind) {
|
|
3436
|
+
return (0, go_to_special_1.resolveGoToSpecial)(kind, {
|
|
3437
|
+
sheetId: goToSheetId,
|
|
3438
|
+
range: scanRange,
|
|
3439
|
+
getCellData: getCellData,
|
|
3440
|
+
isRowHidden: isHiddenRow,
|
|
3441
|
+
isColumnHidden: isHiddenColumn,
|
|
3442
|
+
});
|
|
3443
|
+
},
|
|
3444
|
+
onSelectRanges: function (ranges) {
|
|
3445
|
+
var first = ranges[0];
|
|
3446
|
+
if (!first)
|
|
3447
|
+
return;
|
|
3448
|
+
setActiveCell(goToSheetId, {
|
|
3449
|
+
rowIndex: first.startRowIndex,
|
|
3450
|
+
columnIndex: first.startColumnIndex,
|
|
3451
|
+
});
|
|
3452
|
+
onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(goToSheetId, ranges.map(function (range) { return ({ range: range }); }));
|
|
3453
|
+
focusSheet();
|
|
3454
|
+
},
|
|
3455
|
+
}
|
|
3456
|
+
: undefined,
|
|
3223
3457
|
});
|
|
3224
3458
|
};
|
|
3225
3459
|
});
|
|
3460
|
+
// Watch Window live getters — republished per render while a host is
|
|
3461
|
+
// mounted so the panel tracks recalculation.
|
|
3462
|
+
(0, use_isomorphic_layout_effect_1.useIsomorphicLayoutEffect)(function () {
|
|
3463
|
+
if (!isWatchWindowMounted)
|
|
3464
|
+
return;
|
|
3465
|
+
setWatchWindowContext({
|
|
3466
|
+
getSheetName: getSheetName,
|
|
3467
|
+
getFormattedValue: getFormattedValue,
|
|
3468
|
+
getFormula: getFormulaValue,
|
|
3469
|
+
onNavigate: function (cell) {
|
|
3470
|
+
navigateToSheetRange({
|
|
3471
|
+
sheetId: cell.sheetId,
|
|
3472
|
+
startRowIndex: cell.rowIndex,
|
|
3473
|
+
endRowIndex: cell.rowIndex,
|
|
3474
|
+
startColumnIndex: cell.columnIndex,
|
|
3475
|
+
endColumnIndex: cell.columnIndex,
|
|
3476
|
+
}, { enableFlash: false });
|
|
3477
|
+
focusSheet();
|
|
3478
|
+
},
|
|
3479
|
+
});
|
|
3480
|
+
});
|
|
3226
3481
|
// Dispatch keyboard event
|
|
3227
3482
|
var dispatchEvent = (0, react_1.useCallback)(function (event) {
|
|
3228
3483
|
var _a, _b;
|
|
@@ -3305,7 +3560,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3305
3560
|
});
|
|
3306
3561
|
// Pivot placeholders
|
|
3307
3562
|
var pivotPlaceholders = (0, react_1.useMemo)(function () {
|
|
3308
|
-
var
|
|
3563
|
+
var e_12, _a;
|
|
3309
3564
|
var _b, _c;
|
|
3310
3565
|
var placeholders = [];
|
|
3311
3566
|
var displayIdx = 0;
|
|
@@ -3321,12 +3576,12 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3321
3576
|
}
|
|
3322
3577
|
}
|
|
3323
3578
|
}
|
|
3324
|
-
catch (
|
|
3579
|
+
catch (e_12_1) { e_12 = { error: e_12_1 }; }
|
|
3325
3580
|
finally {
|
|
3326
3581
|
try {
|
|
3327
3582
|
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
3328
3583
|
}
|
|
3329
|
-
finally { if (
|
|
3584
|
+
finally { if (e_12) throw e_12.error; }
|
|
3330
3585
|
}
|
|
3331
3586
|
return placeholders;
|
|
3332
3587
|
}, [pivotTables, sheetId, onRequestEditPivotTable, getCellOffsetFromCoords]);
|
|
@@ -3403,12 +3658,14 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3403
3658
|
});
|
|
3404
3659
|
// props reference for spreadsheet api
|
|
3405
3660
|
propsReferenceRef.current = props;
|
|
3661
|
+
var openFillSeriesDialogForRef = (0, use_stable_ref_1.useStableRef)(openFillSeriesDialogFor);
|
|
3406
3662
|
// Expose a spreadsheet API
|
|
3407
3663
|
(0, use_isomorphic_layout_effect_1.useIsomorphicLayoutEffect)(function () {
|
|
3408
3664
|
var stableMethods = {
|
|
3409
3665
|
getUserEnteredValue: getUserEnteredStringValueStable,
|
|
3410
3666
|
scrollToCell: scrollToCell,
|
|
3411
3667
|
commit: commit,
|
|
3668
|
+
openFillSeriesDialog: function () { var _a; return (_a = openFillSeriesDialogForRef.current) === null || _a === void 0 ? void 0 : _a.call(openFillSeriesDialogForRef); },
|
|
3412
3669
|
};
|
|
3413
3670
|
setSpreadsheetApi(new spreadsheet_api_1.SpreadsheetApi(propsReferenceRef, stableMethods, store, instanceStore, instanceId));
|
|
3414
3671
|
}, []);
|
|
@@ -3490,7 +3747,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3490
3747
|
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" },
|
|
3491
3748
|
react_1.default.createElement("div", { className: "space-y-2" },
|
|
3492
3749
|
react_1.default.createElement(ui_1.Skeleton, { className: "h-4 w-[250px]" }),
|
|
3493
|
-
react_1.default.createElement(ui_1.Skeleton, { className: "h-4 w-[250px]" })))) : (react_1.default.createElement(grid_5.Grid, { ref: gridRef, overscanCount: overscanCount, rowCount: sheetRowCount, columnCount: sheetColumnCount, rowHeight: rowHeight, columnWidth: columnWidth, itemRenderer: cellRenderer, headerRenderer: headerCellRenderer, selectionRenderer: selectionRenderer, gridLineColor: gridLineColor, gridLineWidth: gridLineWidth, borderStyles: finalBorderStyles, mergedCells: merges, scale: scale, width: width, height: height, frozenColumns: frozenColumns, frozenRows: frozenRows, activeCell: activeCell, selections: formulaMode ? formulaSelections : selections, FillHandle: fill_handle_1.FillHandle, showFillHandle: showFillHandle, fillHandleSize: fillHandleSize, showGridLines: showGridLines, enableCellOverlay: true, enableCellBackground: true, enableSelectionDrag: enableSelectionDrag, showFrozenColumnShadow: showFrozenSeparator, showFrozenRowShadow: showFrozenSeparator, selectionBorderColor: selectionBorderColor, selectionBackgroundColor: selectionBackgroundColor, fillhandleBorderColor: cellBackgroundColor, isDraggingSelection: isDragging, fillSelection: fillSelection, onPointerDown: handlePointerDown, onPointerUp: handlePointerUp, onMouseDown: handleMouseDown, onDoubleClick: handleDoubleClick, onFillHandleMouseDown: onFillHandleMouseDown, onFillHandleDoubleClick: onFillHandleDoubleClick,
|
|
3750
|
+
react_1.default.createElement(ui_1.Skeleton, { className: "h-4 w-[250px]" })))) : (react_1.default.createElement(grid_5.Grid, { ref: gridRef, overscanCount: overscanCount, rowCount: sheetRowCount, columnCount: sheetColumnCount, rowHeight: rowHeight, columnWidth: columnWidth, itemRenderer: cellRenderer, headerRenderer: headerCellRenderer, selectionRenderer: selectionRenderer, gridLineColor: gridLineColor, gridLineWidth: gridLineWidth, borderStyles: finalBorderStyles, mergedCells: merges, scale: scale, width: width, height: height, frozenColumns: frozenColumns, frozenRows: frozenRows, activeCell: activeCell, selections: formulaMode ? formulaSelections : selections, FillHandle: fill_handle_1.FillHandle, showFillHandle: showFillHandle, fillHandleSize: fillHandleSize, showGridLines: showGridLines, enableCellOverlay: true, enableCellBackground: true, enableSelectionDrag: enableSelectionDrag, showFrozenColumnShadow: showFrozenSeparator, showFrozenRowShadow: showFrozenSeparator, selectionBorderColor: selectionBorderColor, selectionBackgroundColor: selectionBackgroundColor, fillhandleBorderColor: cellBackgroundColor, isDraggingSelection: isDragging, fillSelection: fillShrinkOverlay !== null && fillShrinkOverlay !== void 0 ? fillShrinkOverlay : fillSelection, onPointerDown: handlePointerDown, onPointerUp: handlePointerUp, onMouseDown: handleMouseDown, onDoubleClick: handleDoubleClick, onFillHandleMouseDown: onFillHandleMouseDown, onFillHandleDoubleClick: onFillHandleDoubleClick,
|
|
3494
3751
|
// Dimension of fill handle
|
|
3495
3752
|
scrollToCellOffset: 4, scrollbarSize: scrollbarSize, isHiddenCell: isHiddenCell, isHiddenColumn: isHiddenColumn, isHiddenRow: isHiddenRow, visibleRowRanges: visibleRowRanges, isHiddenOverlay: isHiddenOverlay, isHiddenBackground: isHiddenBackground, overlayRenderer: cellOverlayRenderer, backgroundRenderer: cellBackgroundRenderer, shadowSettings: shadowSettings, onScroll: handleScroll, onViewPortChange: handleViewPortChange, autoFocus: autoFocus, snap: scrollSnap, scrollThrottleTimeout: scrollThrottleTimeout, preventBrowserDefaultScroll: preventBrowserDefaultScroll, showHeaders: showHeaders, gridChildren: gridChildren, onTouchStart: onTouchStart, onDimensionsChange: onDimensionsChange, extendScrollSize: helpers_1.isTouchDevice || helpers_1.isFirefox, isTouchDevice: helpers_1.isTouchDevice, frozenShadowThickness: frozenShadowThickness, onAfterScrollToCell: onAfterScrollToCell, estimatedRowHeight: defaultRowHeight, estimatedColumnWidth: defaultColumnWidth, footerHeight: footerHeight, footerComponent: footerComponent, getOverflowBuffer: getOverflowBuffer, getFrozenColumnOverflowCells: getFrozenColumnOverflowCells })),
|
|
3496
3753
|
tooltipComponent,
|