@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
|
@@ -7,6 +7,9 @@ import { scheduleImmediatePriorityCallback, scheduleNormalPriorityCallback, } fr
|
|
|
7
7
|
import { DEFAULT_ARRAY } from "../config";
|
|
8
8
|
import { isMac } from "../helpers";
|
|
9
9
|
import { useCallbackRef } from "./use-callback-ref";
|
|
10
|
+
/** Ctrl on every platform; Cmd is accepted as an alias on macOS (Excel for Mac uses Ctrl). */
|
|
11
|
+
const isFillToggleModifier = (e) => e.ctrlKey || e.metaKey;
|
|
12
|
+
const fillGestureOptions = (e) => e.ctrlKey || e.metaKey ? { modifier: "toggle" } : undefined;
|
|
10
13
|
const defaultIsHidden = () => false;
|
|
11
14
|
const defaultSelectionSpan = () => true;
|
|
12
15
|
const getPossibleActiveCellFromSelections = (selections) => {
|
|
@@ -41,16 +44,81 @@ const boundsSubsetOfSelection = (range, selection) => {
|
|
|
41
44
|
range.startColumnIndex >= selection.startColumnIndex &&
|
|
42
45
|
range.endColumnIndex <= selection.endColumnIndex);
|
|
43
46
|
};
|
|
47
|
+
const cellInRange = (cell, range) => cell.rowIndex >= range.startRowIndex &&
|
|
48
|
+
cell.rowIndex <= range.endRowIndex &&
|
|
49
|
+
cell.columnIndex >= range.startColumnIndex &&
|
|
50
|
+
cell.columnIndex <= range.endColumnIndex;
|
|
51
|
+
/**
|
|
52
|
+
* Resolve a fill-handle drag to a shrink of `selection` (Excel "drag back inside the selection").
|
|
53
|
+
* `coords` is the cell under the pointer. A shrink needs a multi-cell selection and a pointer that
|
|
54
|
+
* is inside it but short of its bottom-right corner along at least one axis; the axis with the
|
|
55
|
+
* larger travel wins (rows first on a tie), mirroring how a fill picks its direction. Returns
|
|
56
|
+
* `undefined` when the drag is not a shrink (outside the selection, single cell, or still at the
|
|
57
|
+
* corner) — the caller then treats it as a regular fill.
|
|
58
|
+
*/
|
|
59
|
+
const fillShrinkFor = (selection, coords) => {
|
|
60
|
+
const isSingleCell = selection.startRowIndex === selection.endRowIndex &&
|
|
61
|
+
selection.startColumnIndex === selection.endColumnIndex;
|
|
62
|
+
if (isSingleCell || !cellInRange(coords, selection))
|
|
63
|
+
return undefined;
|
|
64
|
+
const rowsExcluded = selection.endRowIndex - coords.rowIndex;
|
|
65
|
+
const colsExcluded = selection.endColumnIndex - coords.columnIndex;
|
|
66
|
+
if (rowsExcluded <= 0 && colsExcluded <= 0)
|
|
67
|
+
return undefined;
|
|
68
|
+
if (rowsExcluded >= colsExcluded) {
|
|
69
|
+
return {
|
|
70
|
+
clearRange: { ...selection, startRowIndex: coords.rowIndex + 1 },
|
|
71
|
+
remaining: { ...selection, endRowIndex: coords.rowIndex },
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
clearRange: { ...selection, startColumnIndex: coords.columnIndex + 1 },
|
|
76
|
+
remaining: { ...selection, endColumnIndex: coords.columnIndex },
|
|
77
|
+
};
|
|
78
|
+
};
|
|
44
79
|
/**
|
|
45
80
|
* Hook to enable selection in datagrid
|
|
46
81
|
* @param initialSelection
|
|
47
82
|
*/
|
|
48
|
-
export const useSelection = ({ sheetId, activeCell, onChangeActiveCell, selections, onChangeSelections, columnCount = 0, rowCount = 0, selectionPolicy = "multiple", newSelectionMode = "clear", allowDeselectSelection = true, onFill, isHiddenRow = defaultIsHidden, isHiddenColumn = defaultIsHidden, alwaysScrollToActiveCell = true, selectionTopBound = 0, selectionBottomBound = rowCount, selectionLeftBound = 0, selectionRightBound = columnCount, mouseDownInterceptor, mouseMoveInterceptor, mergedCells = DEFAULT_ARRAY, canSelectionSpanMergedCells = defaultSelectionSpan, getValue, onMoveSelection, getCellCoordsFromOffset, getCellBounds, getViewPort, focus, scrollToCell, isMergedCell, enableSelectOnEnterKey, formulaMode, isTouchDevice, getDataRowCount, isRowHeader, isColumnHeader, enableDataBoundaryNavigation = false, }) => {
|
|
83
|
+
export const useSelection = ({ sheetId, activeCell, onChangeActiveCell, selections, onChangeSelections, columnCount = 0, rowCount = 0, selectionPolicy = "multiple", newSelectionMode = "clear", allowDeselectSelection = true, onFill, onFillHandleRelease, onFillShrink, isHiddenRow = defaultIsHidden, isHiddenColumn = defaultIsHidden, alwaysScrollToActiveCell = true, selectionTopBound = 0, selectionBottomBound = rowCount, selectionLeftBound = 0, selectionRightBound = columnCount, mouseDownInterceptor, mouseMoveInterceptor, mergedCells = DEFAULT_ARRAY, canSelectionSpanMergedCells = defaultSelectionSpan, getValue, onMoveSelection, getCellCoordsFromOffset, getCellBounds, getViewPort, focus, scrollToCell, isMergedCell, enableSelectOnEnterKey, formulaMode, isTouchDevice, getDataRowCount, isRowHeader, isColumnHeader, enableDataBoundaryNavigation = false, }) => {
|
|
49
84
|
const [fillSelection, setFillSelection] = useState();
|
|
85
|
+
const [fillShrink, setFillShrink] = useState();
|
|
86
|
+
const fillShrinkRef = useRef(undefined);
|
|
87
|
+
// Ctrl/Cmd state of the fill-handle drag, sampled on every mousemove (mouseup carries the
|
|
88
|
+
// modifier too, but a key released mid-drag should still count — Excel reads it at drop time,
|
|
89
|
+
// and the last move before the drop is the closest we get to that without a keyup listener).
|
|
90
|
+
const fillModifierRef = useRef(undefined);
|
|
50
91
|
const selectionStart = useRef(null);
|
|
51
92
|
const selectionEnd = useRef(null);
|
|
52
93
|
const isSelecting = useRef(false);
|
|
53
94
|
const isFilling = useRef(false);
|
|
95
|
+
/** Mouse button that grabbed the fill handle (a right-button drag opens the fill menu). */
|
|
96
|
+
const fillButtonRef = useRef("left");
|
|
97
|
+
/**
|
|
98
|
+
* One-shot, capture-phase `contextmenu` suppressor for a fill-handle
|
|
99
|
+
* gesture. Ctrl+click is the macOS context-menu gesture and a right-button
|
|
100
|
+
* release always fires `contextmenu`; neither may reach the grid's cell
|
|
101
|
+
* context menu while the user is dragging the fill handle.
|
|
102
|
+
*/
|
|
103
|
+
const contextMenuSuppressorRef = useRef(null);
|
|
104
|
+
const releaseContextMenuSuppressor = useCallback(() => {
|
|
105
|
+
const handler = contextMenuSuppressorRef.current;
|
|
106
|
+
if (!handler)
|
|
107
|
+
return;
|
|
108
|
+
contextMenuSuppressorRef.current = null;
|
|
109
|
+
document.removeEventListener("contextmenu", handler, true);
|
|
110
|
+
}, []);
|
|
111
|
+
const suppressNextContextMenu = useCallback(() => {
|
|
112
|
+
if (contextMenuSuppressorRef.current)
|
|
113
|
+
return;
|
|
114
|
+
const handler = (e) => {
|
|
115
|
+
e.preventDefault();
|
|
116
|
+
e.stopPropagation();
|
|
117
|
+
releaseContextMenuSuppressor();
|
|
118
|
+
};
|
|
119
|
+
contextMenuSuppressorRef.current = handler;
|
|
120
|
+
document.addEventListener("contextmenu", handler, true);
|
|
121
|
+
}, [releaseContextMenuSuppressor]);
|
|
54
122
|
const selectionsRef = useRef([]);
|
|
55
123
|
const fillSelectionRef = useRef(undefined);
|
|
56
124
|
const onChangeSelectionsRef = useCallbackRef(onChangeSelections);
|
|
@@ -81,6 +149,9 @@ export const useSelection = ({ sheetId, activeCell, onChangeActiveCell, selectio
|
|
|
81
149
|
useIsomorphicLayoutEffect(() => {
|
|
82
150
|
fillSelectionRef.current = fillSelection;
|
|
83
151
|
}, [fillSelection]);
|
|
152
|
+
useIsomorphicLayoutEffect(() => {
|
|
153
|
+
fillShrinkRef.current = fillShrink;
|
|
154
|
+
}, [fillShrink]);
|
|
84
155
|
/* Check if cell is out of bounds */
|
|
85
156
|
const isCellOutOfBounds = useCallback((cell) => {
|
|
86
157
|
return cell.rowIndex < 0 || cell.columnIndex < 0;
|
|
@@ -1083,6 +1154,7 @@ export const useSelection = ({ sheetId, activeCell, onChangeActiveCell, selectio
|
|
|
1083
1154
|
const coords = getCellCoordsFromOffset(e.clientX, e.clientY, false);
|
|
1084
1155
|
if (!coords)
|
|
1085
1156
|
return;
|
|
1157
|
+
fillModifierRef.current = fillGestureOptions(e);
|
|
1086
1158
|
const selections = selectionsRef.current;
|
|
1087
1159
|
let range = selectionFromStartEnd(activeCellRef.current, coords);
|
|
1088
1160
|
const hasSelections = selections.length > 0;
|
|
@@ -1091,6 +1163,22 @@ export const useSelection = ({ sheetId, activeCell, onChangeActiveCell, selectio
|
|
|
1091
1163
|
: getCellBounds(activeCellRef.current);
|
|
1092
1164
|
if (!range)
|
|
1093
1165
|
return;
|
|
1166
|
+
/**
|
|
1167
|
+
* Drag-back shrink (Excel): the handle sits at the selection's bottom-right corner; dragging
|
|
1168
|
+
* it up or left while staying INSIDE a multi-cell selection excludes the dragged-over rows
|
|
1169
|
+
* (or columns). Those cells are greyed now and cleared on release; the selection shrinks to
|
|
1170
|
+
* the rest. Dragging PAST the first row/column is an ordinary fill in that direction.
|
|
1171
|
+
*/
|
|
1172
|
+
const shrink = hasSelections
|
|
1173
|
+
? fillShrinkFor(activeCellBounds, coords)
|
|
1174
|
+
: undefined;
|
|
1175
|
+
if (shrink) {
|
|
1176
|
+
setFillSelection(undefined);
|
|
1177
|
+
setFillShrink(shrink);
|
|
1178
|
+
scrollToCell(coords);
|
|
1179
|
+
return;
|
|
1180
|
+
}
|
|
1181
|
+
setFillShrink(undefined);
|
|
1094
1182
|
const direction = range.startRowIndex < activeCellBounds.startRowIndex
|
|
1095
1183
|
? Direction.Up
|
|
1096
1184
|
: range.endRowIndex > activeCellBounds.endRowIndex
|
|
@@ -1144,24 +1232,56 @@ export const useSelection = ({ sheetId, activeCell, onChangeActiveCell, selectio
|
|
|
1144
1232
|
selectionTopBound,
|
|
1145
1233
|
]);
|
|
1146
1234
|
/**
|
|
1147
|
-
* When user releases mouse on the fill handle
|
|
1235
|
+
* When user releases mouse on the fill handle. Excel reads the Ctrl toggle
|
|
1236
|
+
* at RELEASE (the user can press/let go of Ctrl mid-drag), so the modifier
|
|
1237
|
+
* comes from the mouseup event, not the mousedown.
|
|
1148
1238
|
*/
|
|
1149
|
-
const handleFillMouseUp = useCallback(() => {
|
|
1239
|
+
const handleFillMouseUp = useCallback((e) => {
|
|
1150
1240
|
isFilling.current = false;
|
|
1241
|
+
const toggle = isFillToggleModifier(e);
|
|
1242
|
+
const button = fillButtonRef.current;
|
|
1151
1243
|
/* Remove listener */
|
|
1152
1244
|
document.removeEventListener("mousemove", handleFillMouseMove);
|
|
1153
1245
|
document.removeEventListener("mouseup", handleFillMouseUp);
|
|
1246
|
+
// The right-button (or macOS Ctrl+click) `contextmenu` event follows this
|
|
1247
|
+
// mouseup; keep swallowing it for one tick, then drop the suppressor so a
|
|
1248
|
+
// later, unrelated right-click still opens the cell context menu.
|
|
1249
|
+
setTimeout(releaseContextMenuSuppressor, 0);
|
|
1154
1250
|
/* Exit early */
|
|
1155
1251
|
if (!activeCellRef.current) {
|
|
1156
1252
|
return;
|
|
1157
1253
|
}
|
|
1158
1254
|
// Active fill selection
|
|
1159
1255
|
const fillSelection = fillSelectionRef.current;
|
|
1256
|
+
const shrink = fillShrinkRef.current;
|
|
1257
|
+
// Modifier for a drag-back shrink: the last move's state, else the release's.
|
|
1258
|
+
const gestureOptions = fillModifierRef.current ?? (toggle ? { modifier: "toggle" } : undefined);
|
|
1259
|
+
fillModifierRef.current = undefined;
|
|
1160
1260
|
/* Update last selection */
|
|
1161
1261
|
setFillSelection(undefined);
|
|
1262
|
+
setFillShrink(undefined);
|
|
1162
1263
|
/* Use ref, as we are binding to document */
|
|
1163
1264
|
const selections = selectionsRef.current;
|
|
1164
1265
|
const activeCell = activeCellRef.current;
|
|
1266
|
+
/* Drag-back inside the selection: clear the excluded cells, keep the rest selected */
|
|
1267
|
+
if (activeCell && shrink) {
|
|
1268
|
+
focus();
|
|
1269
|
+
onFillShrink?.(sheetId, activeCell, shrink.clearRange, gestureOptions);
|
|
1270
|
+
const len = selections.length;
|
|
1271
|
+
const shrunkSelections = len
|
|
1272
|
+
? selections.map((sel, i) => len - 1 === i ? { ...sel, range: shrink.remaining } : sel)
|
|
1273
|
+
: [{ range: shrink.remaining }];
|
|
1274
|
+
onChangeSelections?.(shrunkSelections);
|
|
1275
|
+
// The active cell normally anchors the surviving corner; if it fell in the cleared band,
|
|
1276
|
+
// move it to the remaining range's top-left so it never points at a deselected cell.
|
|
1277
|
+
if (!cellInRange(activeCell, shrink.remaining)) {
|
|
1278
|
+
onChangeActiveCell?.(sheetId, {
|
|
1279
|
+
rowIndex: shrink.remaining.startRowIndex,
|
|
1280
|
+
columnIndex: shrink.remaining.startColumnIndex,
|
|
1281
|
+
});
|
|
1282
|
+
}
|
|
1283
|
+
return;
|
|
1284
|
+
}
|
|
1165
1285
|
if (!activeCell || !fillSelection) {
|
|
1166
1286
|
return;
|
|
1167
1287
|
}
|
|
@@ -1174,8 +1294,11 @@ export const useSelection = ({ sheetId, activeCell, onChangeActiveCell, selectio
|
|
|
1174
1294
|
}
|
|
1175
1295
|
/* Focus on the grid */
|
|
1176
1296
|
focus();
|
|
1177
|
-
/* Callback
|
|
1178
|
-
|
|
1297
|
+
/* Callback — a right-button drag fills nothing yet: the grid opens the
|
|
1298
|
+
* fill menu and issues `onFill` with the entry the user picks. */
|
|
1299
|
+
if (button === "left") {
|
|
1300
|
+
onFill?.(sheetId, activeCell, fillSelection, selections, undefined, undefined, toggle ? { modifier: "toggle" } : undefined);
|
|
1301
|
+
}
|
|
1179
1302
|
/* Modify last selection */
|
|
1180
1303
|
const curSelections = selectionsRef.current;
|
|
1181
1304
|
const len = curSelections.length;
|
|
@@ -1191,14 +1314,40 @@ export const useSelection = ({ sheetId, activeCell, onChangeActiveCell, selectio
|
|
|
1191
1314
|
})
|
|
1192
1315
|
: [{ range: newBounds }];
|
|
1193
1316
|
onChangeSelections?.(newSelections);
|
|
1194
|
-
|
|
1317
|
+
onFillHandleRelease?.({
|
|
1318
|
+
sheetId,
|
|
1319
|
+
activeCell,
|
|
1320
|
+
fillSelection,
|
|
1321
|
+
selections,
|
|
1322
|
+
toggle,
|
|
1323
|
+
button,
|
|
1324
|
+
});
|
|
1325
|
+
}, [
|
|
1326
|
+
focus,
|
|
1327
|
+
handleFillMouseMove,
|
|
1328
|
+
onChangeSelections,
|
|
1329
|
+
onChangeActiveCell,
|
|
1330
|
+
onFill,
|
|
1331
|
+
onFillHandleRelease,
|
|
1332
|
+
onFillShrink,
|
|
1333
|
+
releaseContextMenuSuppressor,
|
|
1334
|
+
sheetId,
|
|
1335
|
+
]);
|
|
1195
1336
|
const handleFillMouseDown = useCallback((e) => {
|
|
1196
1337
|
e.stopPropagation();
|
|
1197
1338
|
e.preventDefault();
|
|
1339
|
+
const isRightButton = e.button === MouseButtonCodes.right;
|
|
1340
|
+
fillButtonRef.current = isRightButton ? "right" : "left";
|
|
1341
|
+
// Ctrl+drag on the handle must never become the macOS Ctrl+click
|
|
1342
|
+
// context-menu gesture, and a right-button drag must not open the cell
|
|
1343
|
+
// context menu on release — swallow that gesture's `contextmenu`.
|
|
1344
|
+
if (isRightButton || isFillToggleModifier(e)) {
|
|
1345
|
+
suppressNextContextMenu();
|
|
1346
|
+
}
|
|
1198
1347
|
isFilling.current = true;
|
|
1199
1348
|
document.addEventListener("mousemove", handleFillMouseMove);
|
|
1200
1349
|
document.addEventListener("mouseup", handleFillMouseUp);
|
|
1201
|
-
}, [handleFillMouseMove, handleFillMouseUp]);
|
|
1350
|
+
}, [handleFillMouseMove, handleFillMouseUp, suppressNextContextMenu]);
|
|
1202
1351
|
/**
|
|
1203
1352
|
* Remove the last selection from state
|
|
1204
1353
|
*/
|
|
@@ -1444,10 +1593,17 @@ export const useSelection = ({ sheetId, activeCell, onChangeActiveCell, selectio
|
|
|
1444
1593
|
// Add a ref. makeEditable renders way too often
|
|
1445
1594
|
const handleKeyDownRef = useCallbackRef(handleKeyDown);
|
|
1446
1595
|
/**
|
|
1447
|
-
* Double-click fill handle
|
|
1448
|
-
* 1.
|
|
1449
|
-
*
|
|
1450
|
-
*
|
|
1596
|
+
* Double-click fill handle — Excel's AutoFill rules:
|
|
1597
|
+
* 1. Pick the adjacent column: the one LEFT of the selection when its cell on the selection's top
|
|
1598
|
+
* row is non-blank, else the one on the RIGHT; neither → nothing happens.
|
|
1599
|
+
* 2. Extent = that column's contiguous data block below the selection (End+Down semantics: a
|
|
1600
|
+
* blank ends the block; only a blank in the very first row below the selection is skipped,
|
|
1601
|
+
* and only when the row after it is non-blank).
|
|
1602
|
+
* 3. Never overwrite: the fill halts before the first pre-existing non-blank cell in the fill
|
|
1603
|
+
* column(s) themselves.
|
|
1604
|
+
* 4. Ctrl (Cmd on Mac) held → the same copy↔series inversion as a Ctrl+drag (`options.modifier`).
|
|
1605
|
+
* Scans are row-by-row through `getValue` and bounded by the sheet's data extent, so the cost is
|
|
1606
|
+
* O(rows of the adjacent block), never O(sheet).
|
|
1451
1607
|
*/
|
|
1452
1608
|
const handleFillDoubleClick = useCallback((e) => {
|
|
1453
1609
|
e.stopPropagation();
|
|
@@ -1465,33 +1621,58 @@ export const useSelection = ({ sheetId, activeCell, onChangeActiveCell, selectio
|
|
|
1465
1621
|
const endRow = currentBounds.endRowIndex;
|
|
1466
1622
|
const leftCol = currentBounds.startColumnIndex;
|
|
1467
1623
|
const rightCol = currentBounds.endColumnIndex;
|
|
1468
|
-
|
|
1469
|
-
// 1.
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
if (leftCol > selectionLeftBound) {
|
|
1474
|
-
const leftValue = getValue(sheetId, startRow, leftCol - 1);
|
|
1475
|
-
if (!isNull(leftValue)) {
|
|
1476
|
-
hasAdjacentData = true;
|
|
1477
|
-
}
|
|
1624
|
+
const hasValue = (rowIndex, columnIndex) => !isNull(getValue(sheetId, rowIndex, columnIndex));
|
|
1625
|
+
// 1. Adjacent column: left first, then right — judged on the selection's top row.
|
|
1626
|
+
let adjacentColumn;
|
|
1627
|
+
if (leftCol > selectionLeftBound && hasValue(startRow, leftCol - 1)) {
|
|
1628
|
+
adjacentColumn = leftCol - 1;
|
|
1478
1629
|
}
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
if (!isNull(rightValue)) {
|
|
1483
|
-
hasAdjacentData = true;
|
|
1484
|
-
}
|
|
1630
|
+
else if (rightCol < selectionRightBound &&
|
|
1631
|
+
hasValue(startRow, rightCol + 1)) {
|
|
1632
|
+
adjacentColumn = rightCol + 1;
|
|
1485
1633
|
}
|
|
1486
|
-
|
|
1487
|
-
if (!hasAdjacentData)
|
|
1634
|
+
if (adjacentColumn === undefined)
|
|
1488
1635
|
return;
|
|
1489
|
-
//
|
|
1490
|
-
//
|
|
1636
|
+
// The last row that can hold data — bounds every scan below. `getDataRowCount` is the legacy
|
|
1637
|
+
// `sheetData.length` contract (rows are 1-based, so the count is lastDataRow + 1); the rnc
|
|
1638
|
+
// engine's windowed path answers with the same shape (its 1-based `sheet_extents` max_row + 1).
|
|
1491
1639
|
const dataRowCount = getDataRowCount?.(sheetId);
|
|
1492
|
-
const
|
|
1493
|
-
|
|
1494
|
-
|
|
1640
|
+
const lastDataRow = Math.min(selectionBottomBound, dataRowCount !== undefined ? dataRowCount - 1 : selectionBottomBound);
|
|
1641
|
+
if (lastDataRow <= endRow)
|
|
1642
|
+
return;
|
|
1643
|
+
// 2. Walk the adjacent column's contiguous block below the selection.
|
|
1644
|
+
let adjacentEnd = endRow;
|
|
1645
|
+
let row = endRow + 1;
|
|
1646
|
+
if (!hasValue(row, adjacentColumn)) {
|
|
1647
|
+
// End+Down: skip exactly one blank directly below the selection when data resumes after it.
|
|
1648
|
+
if (row + 1 <= lastDataRow && hasValue(row + 1, adjacentColumn)) {
|
|
1649
|
+
row += 1;
|
|
1650
|
+
}
|
|
1651
|
+
else {
|
|
1652
|
+
return;
|
|
1653
|
+
}
|
|
1654
|
+
}
|
|
1655
|
+
while (row <= lastDataRow && hasValue(row, adjacentColumn)) {
|
|
1656
|
+
adjacentEnd = row;
|
|
1657
|
+
row += 1;
|
|
1658
|
+
}
|
|
1659
|
+
if (adjacentEnd <= endRow)
|
|
1660
|
+
return;
|
|
1661
|
+
// 3. Stop before the first pre-existing value in the fill column(s) — existing data is kept.
|
|
1662
|
+
let targetRow = adjacentEnd;
|
|
1663
|
+
for (let r = endRow + 1; r <= adjacentEnd; r++) {
|
|
1664
|
+
let occupied = false;
|
|
1665
|
+
for (let c = leftCol; c <= rightCol; c++) {
|
|
1666
|
+
if (hasValue(r, c)) {
|
|
1667
|
+
occupied = true;
|
|
1668
|
+
break;
|
|
1669
|
+
}
|
|
1670
|
+
}
|
|
1671
|
+
if (occupied) {
|
|
1672
|
+
targetRow = r - 1;
|
|
1673
|
+
break;
|
|
1674
|
+
}
|
|
1675
|
+
}
|
|
1495
1676
|
// No additional rows to fill
|
|
1496
1677
|
if (targetRow <= endRow)
|
|
1497
1678
|
return;
|
|
@@ -1505,8 +1686,10 @@ export const useSelection = ({ sheetId, activeCell, onChangeActiveCell, selectio
|
|
|
1505
1686
|
const newFillSelection = { range: fillRange };
|
|
1506
1687
|
// Focus on the grid
|
|
1507
1688
|
focus();
|
|
1508
|
-
// Callback to perform the fill
|
|
1509
|
-
|
|
1689
|
+
// 4. Callback to perform the fill (Ctrl/Cmd on the double-click toggles
|
|
1690
|
+
// copy↔series exactly like a Ctrl+drag)
|
|
1691
|
+
const toggle = isFillToggleModifier(e);
|
|
1692
|
+
onFill?.(sheetId, activeCell, newFillSelection, selections, undefined, undefined, toggle ? { modifier: "toggle" } : undefined);
|
|
1510
1693
|
// Update selection to the new range
|
|
1511
1694
|
const curSelections = selectionsRef.current;
|
|
1512
1695
|
const len = curSelections.length;
|
|
@@ -1548,6 +1731,7 @@ export const useSelection = ({ sheetId, activeCell, onChangeActiveCell, selectio
|
|
|
1548
1731
|
onFillHandleMouseDown: handleFillMouseDown,
|
|
1549
1732
|
onFillHandleDoubleClick: handleFillDoubleClick,
|
|
1550
1733
|
fillSelection,
|
|
1734
|
+
fillShrink,
|
|
1551
1735
|
clearLastSelection: handleClearLastSelection,
|
|
1552
1736
|
modifySelection,
|
|
1553
1737
|
selectAll,
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -8,11 +8,23 @@ export * from "./components/sheet-status";
|
|
|
8
8
|
export * from "./components/cell-tooltip";
|
|
9
9
|
export * from "./components/insert-function-dialog";
|
|
10
10
|
export * from "./components/sort-range-dialog";
|
|
11
|
+
export * from "./components/fill-series-dialog";
|
|
12
|
+
export * from "./components/selection/fill-options-menu";
|
|
13
|
+
export * from "./api/fill-series";
|
|
14
|
+
export { type FillHandleRelease } from "./hooks/use-selection";
|
|
11
15
|
export * from "./components/paste-special-dialog";
|
|
12
16
|
export * from "./components/go-to-dialog";
|
|
13
17
|
export * from "./components/evaluate-formula-dialog";
|
|
18
|
+
export * from "./components/watch-window";
|
|
19
|
+
export * from "./components/calculation-options-dialog";
|
|
14
20
|
export { resolveGoToReference, type GoToResolverContext } from "./api/go-to";
|
|
21
|
+
export * from "./api/go-to-special";
|
|
22
|
+
export * from "./api/excel-validation-kinds";
|
|
15
23
|
export * from "./components/remove-duplicates-dialog";
|
|
24
|
+
export * from "./components/text-to-columns-dialog";
|
|
25
|
+
export * from "./components/subtotal-dialog";
|
|
26
|
+
export * from "./components/goal-seek-dialog";
|
|
27
|
+
export * from "./components/advanced-filter-dialog";
|
|
16
28
|
export * from "./components/validation-alert-dialog";
|
|
17
29
|
export * from "./components/cell-input";
|
|
18
30
|
export * from "./components/formula-bar";
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.tsx"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AAEjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7E,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AAEnD,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,cAAc,SAAS,CAAC;AACxB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,6BAA6B,CAAC;AAC5C,YAAY,EACV,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAGlD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AAGnD,cAAc,8BAA8B,CAAC;AAG7C,cAAc,mCAAmC,CAAC;AAGlD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,6BAA6B,CAAC;AAG5C,cAAc,8BAA8B,CAAC;AAG7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sCAAsC,CAAC;AAGrD,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.tsx"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AAEjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,0CAA0C,CAAC;AACzD,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7E,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AAEnD,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,cAAc,SAAS,CAAC;AACxB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,6BAA6B,CAAC;AAC5C,YAAY,EACV,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAGlD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AAGnD,cAAc,8BAA8B,CAAC;AAG7C,cAAc,mCAAmC,CAAC;AAGlD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,6BAA6B,CAAC;AAG5C,cAAc,8BAA8B,CAAC;AAG7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sCAAsC,CAAC;AAGrD,cAAc,sBAAsB,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -8,11 +8,22 @@ export * from "./components/sheet-status";
|
|
|
8
8
|
export * from "./components/cell-tooltip";
|
|
9
9
|
export * from "./components/insert-function-dialog";
|
|
10
10
|
export * from "./components/sort-range-dialog";
|
|
11
|
+
export * from "./components/fill-series-dialog";
|
|
12
|
+
export * from "./components/selection/fill-options-menu";
|
|
13
|
+
export * from "./api/fill-series";
|
|
11
14
|
export * from "./components/paste-special-dialog";
|
|
12
15
|
export * from "./components/go-to-dialog";
|
|
13
16
|
export * from "./components/evaluate-formula-dialog";
|
|
17
|
+
export * from "./components/watch-window";
|
|
18
|
+
export * from "./components/calculation-options-dialog";
|
|
14
19
|
export { resolveGoToReference } from "./api/go-to";
|
|
20
|
+
export * from "./api/go-to-special";
|
|
21
|
+
export * from "./api/excel-validation-kinds";
|
|
15
22
|
export * from "./components/remove-duplicates-dialog";
|
|
23
|
+
export * from "./components/text-to-columns-dialog";
|
|
24
|
+
export * from "./components/subtotal-dialog";
|
|
25
|
+
export * from "./components/goal-seek-dialog";
|
|
26
|
+
export * from "./components/advanced-filter-dialog";
|
|
16
27
|
export * from "./components/validation-alert-dialog";
|
|
17
28
|
export * from "./components/cell-input";
|
|
18
29
|
export * from "./components/formula-bar";
|
package/dist/esm/release-date.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../../config.ts","../../helpers.ts","../../index.tsx","../../release-date.ts","../../test-setup.ts","../../themes.ts","../../types.ts","../../vitest.config.ts","../../api/animate.ts","../../api/banded-ranges.ts","../../api/cf-engine.ts","../../api/cf-overlays.ts","../../api/cf-window.ts","../../api/colors.ts","../../api/copy-paste.ts","../../api/evaluate-formula.ts","../../api/fill-patterns.ts","../../api/font-loader.ts","../../api/go-to.ts","../../api/heatmap.ts","../../api/scheduler.ts","../../api/scroller.ts","../../api/selections.ts","../../api/spreadsheet-api.ts","../../api/table.ts","../../api/validation.ts","../../atoms/active-editor.atom.ts","../../atoms/cell-input-context.atom.ts","../../atoms/editing-cell.atom.ts","../../atoms/evaluate-formula-dialog.atom.ts","../../atoms/formula-bar-editor-value.atom.ts","../../atoms/formula-mode.atom.ts","../../atoms/formula-selection-state.atom.ts","../../atoms/formula-selections.atom.ts","../../atoms/go-to-dialog.atom.ts","../../atoms/index.ts","../../atoms/loading-indicator.atom.ts","../../atoms/magic-fill-state.atom.ts","../../atoms/paste-menu.atom.ts","../../atoms/paste-special-dialog.atom.ts","../../atoms/persistent-tooltip.atom.ts","../../atoms/popover.atom.ts","../../atoms/range-selector.atom.ts","../../atoms/remove-duplicates-dialog.atom.ts","../../atoms/selected-chart-embed.atom.ts","../../atoms/sheet-context.atom.ts","../../atoms/sheet-status-display.atom.ts","../../atoms/show-formula-help.atom.ts","../../atoms/sort-dialog.atom.ts","../../atoms/spreadsheet-api.atom.ts","../../atoms/validation-alert.atom.ts","../../components/bottom-bar/index.tsx","../../components/canvas-grid/helpers.ts","../../components/canvas-grid/index.tsx","../../components/canvas-grid/typings.ts","../../components/cell/alignment.ts","../../components/cell/cell-background.tsx","../../components/cell/cell-text-runs.tsx","../../components/cell/helpers.ts","../../components/cell/index.tsx","../../components/cell/rich-text.ts","../../components/cell/typings.ts","../../components/cell-arrow/index.tsx","../../components/cell-calculated/index.tsx","../../components/cell-checkbox/index.tsx","../../components/cell-diff/index.tsx","../../components/cell-editor/calendar-popup.tsx","../../components/cell-editor/formula-result-preview.tsx","../../components/cell-editor/helpers.spec.ts","../../components/cell-editor/helpers.ts","../../components/cell-editor/index.tsx","../../components/cell-editor/style.tsx","../../components/cell-error/index.tsx","../../components/cell-expand/index.tsx","../../components/cell-filter/index.tsx","../../components/cell-group/index.tsx","../../components/cell-input/cell-input.tsx","../../components/cell-input/formula-bar-cell-input.tsx","../../components/cell-input/index.tsx","../../components/cell-input/style.tsx","../../components/cell-overlay/index.tsx","../../components/cell-structured/index.tsx","../../components/cell-structured/sparkline-math.ts","../../components/cell-structured/sparkline.tsx","../../components/cell-structured/types.ts","../../components/cell-tooltip/index.tsx","../../components/cell-tooltip/note-editor.tsx","../../components/cell-tooltip/style.tsx","../../components/context-menu/index.tsx","../../components/context-menu/menu.tsx","../../components/context-menu/style.tsx","../../components/context-menu/total-row-functions.ts","../../components/embeds/chart-component.tsx","../../components/embeds/embed-component.tsx","../../components/embeds/embed-draggable.tsx","../../components/embeds/index.tsx","../../components/embeds/shape-geometry.ts","../../components/embeds/shape-svg.tsx","../../components/embeds/slicer-component.tsx","../../components/evaluate-formula-dialog/index.tsx","../../components/fill-handle/index.tsx","../../components/filter-box/filter-by-color.tsx","../../components/filter-box/filter-by-condition.tsx","../../components/filter-box/filter-by-value.tsx","../../components/filter-box/index.tsx","../../components/floating-cell-editor/index.tsx","../../components/formula-bar/index.tsx","../../components/formula-bar/style.tsx","../../components/formula-input/index.tsx","../../components/go-to-dialog/index.tsx","../../components/grid-footer/index.tsx","../../components/header-cell/index.tsx","../../components/header-menu/index.tsx","../../components/header-move/index.tsx","../../components/header-resizer/index.tsx","../../components/hidden-markers/index.tsx","../../components/hidden-markers/style.tsx","../../components/insert-function-dialog/index.tsx","../../components/loading-indicator/index.tsx","../../components/outline-gutter/index.tsx","../../components/paste-special-dialog/index.tsx","../../components/pivot-placeholder/index.tsx","../../components/print-preview/cell-styles.ts","../../components/print-preview/index.ts","../../components/print-preview/page-block.tsx","../../components/print-preview/print-preview-dialog.tsx","../../components/print-preview/run-print.ts","../../components/print-preview/settings.ts","../../components/print-preview/use-page-layout.ts","../../components/range-selector/index.tsx","../../components/remove-duplicates-dialog/index.tsx","../../components/resizer/index.tsx","../../components/selection/avatar.tsx","../../components/selection/index.tsx","../../components/selection/magic-fill.tsx","../../components/selection/paste-menu.tsx","../../components/selection/quick-edit.tsx","../../components/selection/style.tsx","../../components/selection/suggestion-action.tsx","../../components/selection/title.tsx","../../components/selection/types.ts","../../components/selection-input/index.tsx","../../components/selection-input/style.tsx","../../components/sheet-search/index.tsx","../../components/sheet-status/index.tsx","../../components/sheet-status/style.tsx","../../components/sheet-switcher/index.tsx","../../components/sheet-switcher/new-sheet-button.tsx","../../components/sheet-tabs/context-menu.tsx","../../components/sheet-tabs/index.tsx","../../components/sheet-tabs/sheet-tab.tsx","../../components/sheet-tabs/style.tsx","../../components/sheet-tabs/types.ts","../../components/sort-range-dialog/index.tsx","../../components/toolbar/background-color-selector.tsx","../../components/toolbar/border-color-selector.tsx","../../components/toolbar/border-line-style-options.tsx","../../components/toolbar/border-line-style-selector.tsx","../../components/toolbar/border-location-options.tsx","../../components/toolbar/border-selector.tsx","../../components/toolbar/buttons.tsx","../../components/toolbar/cell-style-selector.tsx","../../components/toolbar/color-selector.tsx","../../components/toolbar/font-family-selector.tsx","../../components/toolbar/font-size-selector.tsx","../../components/toolbar/index.tsx","../../components/toolbar/insert-menu.tsx","../../components/toolbar/merge-cells-selector.tsx","../../components/toolbar/scale-selector.tsx","../../components/toolbar/style.tsx","../../components/toolbar/table-actions.tsx","../../components/toolbar/table-style-selector.tsx","../../components/toolbar/text-color-selector.tsx","../../components/toolbar/text-format-selector.tsx","../../components/toolbar/text-horizontal-align-selector.tsx","../../components/toolbar/text-rotation-selector.tsx","../../components/toolbar/text-vertical-align-selector.tsx","../../components/toolbar/text-wrap-selector.tsx","../../components/toolbar/theme-selector.tsx","../../components/toolbar/toolbar.tsx","../../components/toolbar/types.ts","../../components/toolbar/view-menu.tsx","../../components/validation-alert-dialog/index.tsx","../../helpers/merged-cell-borders.ts","../../hooks/index.ts","../../hooks/show-zeros.ts","../../hooks/use-async.ts","../../hooks/use-border-styles.ts","../../hooks/use-callback-ref.ts","../../hooks/use-cell-diff-highlight.ts","../../hooks/use-cell-popover.tsx","../../hooks/use-cell-renderer.tsx","../../hooks/use-column-color-icons.ts","../../hooks/use-conditional-formatting.ts","../../hooks/use-context-menu.tsx","../../hooks/use-context-setter.ts","../../hooks/use-copy-paste-cut.tsx","../../hooks/use-create-address-from-selection.ts","../../hooks/use-create-formula-tokenizer.ts","../../hooks/use-delayed-value.ts","../../hooks/use-editable.tsx","../../hooks/use-editor-cancel.ts","../../hooks/use-editor-change.ts","../../hooks/use-editor-keydown.ts","../../hooks/use-editor-submit.ts","../../hooks/use-embeds-charts.tsx","../../hooks/use-expand-cell.tsx","../../hooks/use-export-range.ts","../../hooks/use-filter.ts","../../hooks/use-flash.ts","../../hooks/use-fonts.ts","../../hooks/use-formula-range-helpers.ts","../../hooks/use-get-tooltip.tsx","../../hooks/use-get-values-from-range.ts","../../hooks/use-grid-children.tsx","../../hooks/use-header-actions.tsx","../../hooks/use-hidden-dimension-markers.tsx","../../hooks/use-hidden-dimensions.ts","../../hooks/use-hovered-selection-ids.ts","../../hooks/use-isomorphic-layout-effect.ts","../../hooks/use-keyboard-handler.tsx","../../hooks/use-licensekey-validator.tsx","../../hooks/use-memo-compare.ts","../../hooks/use-merge.refs.ts","../../hooks/use-move-columns-rows.tsx","../../hooks/use-navigate-sheet-range.ts","../../hooks/use-previous.ts","../../hooks/use-raf.ts","../../hooks/use-resize-observer.ts","../../hooks/use-scale-listener.ts","../../hooks/use-selected-rows-columns.ts","../../hooks/use-selection-aware-formatting.ts","../../hooks/use-selection-change.ts","../../hooks/use-selection-interceptors.ts","../../hooks/use-selection-move.ts","../../hooks/use-selection-renderer.tsx","../../hooks/use-selection-resize.ts","../../hooks/use-selection.ts","../../hooks/use-sheet-change-handler.ts","../../hooks/use-sizer.ts","../../hooks/use-spreadsheet-theme.ts","../../hooks/use-stable-ref.ts","../../hooks/use-structured-reference-selection.ts","../../hooks/use-table-resizer.tsx","../../hooks/use-text-dimensions.ts","../../hooks/use-tooltip.ts","../../hooks/use-touch.ts","../../providers/spreadsheet-provider.tsx","../../signals/scroll-subscriber.ts","../../utils/maybe.ts"],"version":"5.8.3"}
|
|
1
|
+
{"root":["../../config.ts","../../helpers.ts","../../index.tsx","../../release-date.ts","../../test-setup.ts","../../themes.ts","../../types.ts","../../vitest.config.ts","../../api/animate.ts","../../api/banded-ranges.ts","../../api/cf-engine.ts","../../api/cf-overlays.ts","../../api/cf-window.ts","../../api/colors.ts","../../api/copy-paste.ts","../../api/evaluate-formula.ts","../../api/excel-validation-kinds.ts","../../api/fill-patterns.ts","../../api/fill-series.ts","../../api/font-loader.ts","../../api/go-to-special.ts","../../api/go-to.ts","../../api/heatmap.ts","../../api/scheduler.ts","../../api/scroller.ts","../../api/selections.ts","../../api/spreadsheet-api.ts","../../api/table.ts","../../api/validation-tooltip.tsx","../../api/validation.ts","../../atoms/active-editor.atom.ts","../../atoms/advanced-filter-dialog.atom.ts","../../atoms/cell-input-context.atom.ts","../../atoms/editing-cell.atom.ts","../../atoms/evaluate-formula-dialog.atom.ts","../../atoms/fill-options.atom.ts","../../atoms/fill-series-dialog.atom.ts","../../atoms/formula-bar-editor-value.atom.ts","../../atoms/formula-mode.atom.ts","../../atoms/formula-selection-state.atom.ts","../../atoms/formula-selections.atom.ts","../../atoms/go-to-dialog.atom.ts","../../atoms/goal-seek-dialog.atom.ts","../../atoms/index.ts","../../atoms/loading-indicator.atom.ts","../../atoms/magic-fill-state.atom.ts","../../atoms/paste-menu.atom.ts","../../atoms/paste-special-dialog.atom.ts","../../atoms/persistent-tooltip.atom.ts","../../atoms/popover.atom.ts","../../atoms/range-selector.atom.ts","../../atoms/remove-duplicates-dialog.atom.ts","../../atoms/selected-chart-embed.atom.ts","../../atoms/sheet-context.atom.ts","../../atoms/sheet-status-display.atom.ts","../../atoms/show-formula-help.atom.ts","../../atoms/sort-dialog.atom.ts","../../atoms/spreadsheet-api.atom.ts","../../atoms/subtotal-dialog.atom.ts","../../atoms/text-to-columns-dialog.atom.ts","../../atoms/validation-alert.atom.ts","../../atoms/watch-window.atom.ts","../../components/advanced-filter-dialog/index.tsx","../../components/bottom-bar/index.tsx","../../components/calculation-options-dialog/index.tsx","../../components/canvas-grid/helpers.ts","../../components/canvas-grid/index.tsx","../../components/canvas-grid/typings.ts","../../components/cell/alignment.ts","../../components/cell/cell-background.tsx","../../components/cell/cell-text-runs.tsx","../../components/cell/helpers.ts","../../components/cell/index.tsx","../../components/cell/rich-text.ts","../../components/cell/typings.ts","../../components/cell-arrow/index.tsx","../../components/cell-calculated/index.tsx","../../components/cell-checkbox/index.tsx","../../components/cell-diff/index.tsx","../../components/cell-editor/calendar-popup.tsx","../../components/cell-editor/formula-result-preview.tsx","../../components/cell-editor/helpers.spec.ts","../../components/cell-editor/helpers.ts","../../components/cell-editor/index.tsx","../../components/cell-editor/style.tsx","../../components/cell-error/index.tsx","../../components/cell-expand/index.tsx","../../components/cell-filter/index.tsx","../../components/cell-group/index.tsx","../../components/cell-input/cell-input.tsx","../../components/cell-input/formula-bar-cell-input.tsx","../../components/cell-input/index.tsx","../../components/cell-input/style.tsx","../../components/cell-overlay/index.tsx","../../components/cell-structured/index.tsx","../../components/cell-structured/sparkline-math.ts","../../components/cell-structured/sparkline.tsx","../../components/cell-structured/types.ts","../../components/cell-tooltip/index.tsx","../../components/cell-tooltip/note-editor.tsx","../../components/cell-tooltip/style.tsx","../../components/context-menu/index.tsx","../../components/context-menu/menu.tsx","../../components/context-menu/style.tsx","../../components/context-menu/total-row-functions.ts","../../components/embeds/chart-component.tsx","../../components/embeds/embed-component.tsx","../../components/embeds/embed-draggable.tsx","../../components/embeds/index.tsx","../../components/embeds/shape-geometry.ts","../../components/embeds/shape-svg.tsx","../../components/embeds/slicer-component.tsx","../../components/evaluate-formula-dialog/index.tsx","../../components/fill-handle/index.tsx","../../components/fill-series-dialog/index.tsx","../../components/filter-box/filter-by-color.tsx","../../components/filter-box/filter-by-condition.tsx","../../components/filter-box/filter-by-value.tsx","../../components/filter-box/index.tsx","../../components/floating-cell-editor/index.tsx","../../components/formula-bar/index.tsx","../../components/formula-bar/style.tsx","../../components/formula-input/index.tsx","../../components/go-to-dialog/index.tsx","../../components/goal-seek-dialog/index.tsx","../../components/grid-footer/index.tsx","../../components/header-cell/index.tsx","../../components/header-menu/index.tsx","../../components/header-move/index.tsx","../../components/header-resizer/index.tsx","../../components/hidden-markers/index.tsx","../../components/hidden-markers/style.tsx","../../components/insert-function-dialog/index.tsx","../../components/loading-indicator/index.tsx","../../components/outline-gutter/index.tsx","../../components/paste-special-dialog/index.tsx","../../components/pivot-placeholder/index.tsx","../../components/print-preview/cell-styles.ts","../../components/print-preview/index.ts","../../components/print-preview/page-block.tsx","../../components/print-preview/print-preview-dialog.tsx","../../components/print-preview/run-print.ts","../../components/print-preview/settings.ts","../../components/print-preview/use-page-layout.ts","../../components/range-selector/index.tsx","../../components/remove-duplicates-dialog/index.tsx","../../components/resizer/index.tsx","../../components/selection/avatar.tsx","../../components/selection/fill-options-menu.tsx","../../components/selection/index.tsx","../../components/selection/magic-fill.tsx","../../components/selection/paste-menu.tsx","../../components/selection/quick-edit.tsx","../../components/selection/style.tsx","../../components/selection/suggestion-action.tsx","../../components/selection/title.tsx","../../components/selection/types.ts","../../components/selection-input/index.tsx","../../components/selection-input/style.tsx","../../components/sheet-search/index.tsx","../../components/sheet-status/index.tsx","../../components/sheet-status/style.tsx","../../components/sheet-switcher/index.tsx","../../components/sheet-switcher/new-sheet-button.tsx","../../components/sheet-tabs/context-menu.tsx","../../components/sheet-tabs/index.tsx","../../components/sheet-tabs/sheet-tab.tsx","../../components/sheet-tabs/style.tsx","../../components/sheet-tabs/types.ts","../../components/sort-range-dialog/index.tsx","../../components/subtotal-dialog/index.tsx","../../components/text-to-columns-dialog/index.tsx","../../components/toolbar/background-color-selector.tsx","../../components/toolbar/border-color-selector.tsx","../../components/toolbar/border-line-style-options.tsx","../../components/toolbar/border-line-style-selector.tsx","../../components/toolbar/border-location-options.tsx","../../components/toolbar/border-selector.tsx","../../components/toolbar/buttons.tsx","../../components/toolbar/cell-style-selector.tsx","../../components/toolbar/color-selector.tsx","../../components/toolbar/fill-selectors.tsx","../../components/toolbar/font-family-selector.tsx","../../components/toolbar/font-size-selector.tsx","../../components/toolbar/index.tsx","../../components/toolbar/insert-menu.tsx","../../components/toolbar/merge-cells-selector.tsx","../../components/toolbar/scale-selector.tsx","../../components/toolbar/style.tsx","../../components/toolbar/table-actions.tsx","../../components/toolbar/table-style-selector.tsx","../../components/toolbar/text-color-selector.tsx","../../components/toolbar/text-format-selector.tsx","../../components/toolbar/text-horizontal-align-selector.tsx","../../components/toolbar/text-rotation-selector.tsx","../../components/toolbar/text-vertical-align-selector.tsx","../../components/toolbar/text-wrap-selector.tsx","../../components/toolbar/theme-selector.tsx","../../components/toolbar/toolbar.tsx","../../components/toolbar/types.ts","../../components/toolbar/view-menu.tsx","../../components/validation-alert-dialog/index.tsx","../../components/watch-window/index.tsx","../../helpers/merged-cell-borders.ts","../../hooks/index.ts","../../hooks/show-zeros.ts","../../hooks/use-async.ts","../../hooks/use-border-styles.ts","../../hooks/use-callback-ref.ts","../../hooks/use-cell-diff-highlight.ts","../../hooks/use-cell-popover.tsx","../../hooks/use-cell-renderer.tsx","../../hooks/use-column-color-icons.ts","../../hooks/use-conditional-formatting.ts","../../hooks/use-context-menu.tsx","../../hooks/use-context-setter.ts","../../hooks/use-copy-paste-cut.tsx","../../hooks/use-create-address-from-selection.ts","../../hooks/use-create-formula-tokenizer.ts","../../hooks/use-delayed-value.ts","../../hooks/use-editable.tsx","../../hooks/use-editor-cancel.ts","../../hooks/use-editor-change.ts","../../hooks/use-editor-keydown.ts","../../hooks/use-editor-submit.ts","../../hooks/use-embeds-charts.tsx","../../hooks/use-expand-cell.tsx","../../hooks/use-export-range.ts","../../hooks/use-filter.ts","../../hooks/use-flash.ts","../../hooks/use-fonts.ts","../../hooks/use-formula-range-helpers.ts","../../hooks/use-get-tooltip.tsx","../../hooks/use-get-values-from-range.ts","../../hooks/use-grid-children.tsx","../../hooks/use-header-actions.tsx","../../hooks/use-hidden-dimension-markers.tsx","../../hooks/use-hidden-dimensions.ts","../../hooks/use-hovered-selection-ids.ts","../../hooks/use-isomorphic-layout-effect.ts","../../hooks/use-keyboard-handler.tsx","../../hooks/use-licensekey-validator.tsx","../../hooks/use-memo-compare.ts","../../hooks/use-merge.refs.ts","../../hooks/use-move-columns-rows.tsx","../../hooks/use-navigate-sheet-range.ts","../../hooks/use-previous.ts","../../hooks/use-raf.ts","../../hooks/use-resize-observer.ts","../../hooks/use-scale-listener.ts","../../hooks/use-selected-rows-columns.ts","../../hooks/use-selection-aware-formatting.ts","../../hooks/use-selection-change.ts","../../hooks/use-selection-interceptors.ts","../../hooks/use-selection-move.ts","../../hooks/use-selection-renderer.tsx","../../hooks/use-selection-resize.ts","../../hooks/use-selection.ts","../../hooks/use-sheet-change-handler.ts","../../hooks/use-sizer.ts","../../hooks/use-spreadsheet-theme.ts","../../hooks/use-stable-ref.ts","../../hooks/use-structured-reference-selection.ts","../../hooks/use-table-resizer.tsx","../../hooks/use-text-dimensions.ts","../../hooks/use-tooltip.ts","../../hooks/use-touch.ts","../../providers/spreadsheet-provider.tsx","../../signals/scroll-subscriber.ts","../../utils/maybe.ts"],"version":"5.8.3"}
|