@rowsncolumns/spreadsheet 10.5.2 → 10.5.3
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/components/canvas-grid/index.d.ts.map +1 -1
- package/dist/cjs/components/canvas-grid/index.js +85 -70
- package/dist/cjs/components/canvas-grid/typings.d.ts +18 -1
- package/dist/cjs/components/canvas-grid/typings.d.ts.map +1 -1
- package/dist/cjs/components/cell/cell-text-runs.d.ts +10 -3
- package/dist/cjs/components/cell/cell-text-runs.d.ts.map +1 -1
- package/dist/cjs/components/cell/cell-text-runs.js +21 -9
- package/dist/cjs/components/cell/index.d.ts.map +1 -1
- package/dist/cjs/components/cell/index.js +9 -5
- package/dist/cjs/components/cell/line-height.d.ts +22 -0
- package/dist/cjs/components/cell/line-height.d.ts.map +1 -0
- package/dist/cjs/components/cell/line-height.js +32 -0
- package/dist/cjs/components/cell/typings.d.ts +8 -2
- package/dist/cjs/components/cell/typings.d.ts.map +1 -1
- package/dist/cjs/hooks/export-range-tiles.d.ts +81 -0
- package/dist/cjs/hooks/export-range-tiles.d.ts.map +1 -0
- package/dist/cjs/hooks/export-range-tiles.js +171 -0
- package/dist/cjs/hooks/use-cell-renderer.d.ts +6 -1
- package/dist/cjs/hooks/use-cell-renderer.d.ts.map +1 -1
- package/dist/cjs/hooks/use-cell-renderer.js +3 -2
- package/dist/cjs/hooks/use-copy-paste-cut.d.ts +5 -1
- package/dist/cjs/hooks/use-copy-paste-cut.d.ts.map +1 -1
- package/dist/cjs/hooks/use-copy-paste-cut.js +19 -5
- package/dist/cjs/hooks/use-editor-submit.d.ts +7 -1
- package/dist/cjs/hooks/use-editor-submit.d.ts.map +1 -1
- package/dist/cjs/hooks/use-editor-submit.js +36 -16
- package/dist/cjs/hooks/use-export-range.d.ts +14 -6
- package/dist/cjs/hooks/use-export-range.d.ts.map +1 -1
- package/dist/cjs/hooks/use-export-range.js +240 -158
- package/dist/cjs/hooks/use-grid-children.d.ts +4 -1
- package/dist/cjs/hooks/use-grid-children.d.ts.map +1 -1
- package/dist/cjs/hooks/use-grid-children.js +4 -2
- package/dist/cjs/hooks/use-navigate-sheet-range.d.ts.map +1 -1
- package/dist/cjs/hooks/use-navigate-sheet-range.js +5 -2
- package/dist/cjs/hooks/use-sizer.d.ts +8 -2
- package/dist/cjs/hooks/use-sizer.d.ts.map +1 -1
- package/dist/cjs/hooks/use-sizer.js +54 -33
- package/dist/cjs/providers/spreadsheet-provider.d.ts +11 -2
- package/dist/cjs/providers/spreadsheet-provider.d.ts.map +1 -1
- package/dist/cjs/providers/spreadsheet-provider.js +7 -5
- package/dist/cjs/release-date.js +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/components/canvas-grid/index.d.ts.map +1 -1
- package/dist/esm/components/canvas-grid/index.js +27 -12
- package/dist/esm/components/canvas-grid/typings.d.ts +18 -1
- package/dist/esm/components/canvas-grid/typings.d.ts.map +1 -1
- package/dist/esm/components/cell/cell-text-runs.d.ts +10 -3
- package/dist/esm/components/cell/cell-text-runs.d.ts.map +1 -1
- package/dist/esm/components/cell/cell-text-runs.js +14 -9
- package/dist/esm/components/cell/index.d.ts.map +1 -1
- package/dist/esm/components/cell/index.js +7 -3
- package/dist/esm/components/cell/line-height.d.ts +22 -0
- package/dist/esm/components/cell/line-height.d.ts.map +1 -0
- package/dist/esm/components/cell/line-height.js +25 -0
- package/dist/esm/components/cell/typings.d.ts +8 -2
- package/dist/esm/components/cell/typings.d.ts.map +1 -1
- package/dist/esm/hooks/export-range-tiles.d.ts +81 -0
- package/dist/esm/hooks/export-range-tiles.d.ts.map +1 -0
- package/dist/esm/hooks/export-range-tiles.js +126 -0
- package/dist/esm/hooks/use-cell-renderer.d.ts +6 -1
- package/dist/esm/hooks/use-cell-renderer.d.ts.map +1 -1
- package/dist/esm/hooks/use-cell-renderer.js +3 -2
- package/dist/esm/hooks/use-copy-paste-cut.d.ts +5 -1
- package/dist/esm/hooks/use-copy-paste-cut.d.ts.map +1 -1
- package/dist/esm/hooks/use-copy-paste-cut.js +17 -3
- package/dist/esm/hooks/use-editor-submit.d.ts +7 -1
- package/dist/esm/hooks/use-editor-submit.d.ts.map +1 -1
- package/dist/esm/hooks/use-editor-submit.js +24 -6
- package/dist/esm/hooks/use-export-range.d.ts +14 -6
- package/dist/esm/hooks/use-export-range.d.ts.map +1 -1
- package/dist/esm/hooks/use-export-range.js +158 -120
- package/dist/esm/hooks/use-grid-children.d.ts +4 -1
- package/dist/esm/hooks/use-grid-children.d.ts.map +1 -1
- package/dist/esm/hooks/use-grid-children.js +4 -2
- package/dist/esm/hooks/use-navigate-sheet-range.d.ts.map +1 -1
- package/dist/esm/hooks/use-navigate-sheet-range.js +5 -2
- package/dist/esm/hooks/use-sizer.d.ts +8 -2
- package/dist/esm/hooks/use-sizer.d.ts.map +1 -1
- package/dist/esm/hooks/use-sizer.js +53 -31
- package/dist/esm/providers/spreadsheet-provider.d.ts +11 -2
- package/dist/esm/providers/spreadsheet-provider.d.ts.map +1 -1
- package/dist/esm/providers/spreadsheet-provider.js +8 -6
- package/dist/esm/release-date.js +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +6 -6
|
@@ -20,29 +20,38 @@ var defaultGetText = function () { return ""; };
|
|
|
20
20
|
* Dynamically resize columns after user has scrolled down/view port changed ?
|
|
21
21
|
*/
|
|
22
22
|
var useSizer = function (_a) {
|
|
23
|
-
var getTextFormat = _a.getTextFormat, getTextFormatRuns = _a.getTextFormatRuns, _b = _a.initialVisibleRows, initialVisibleRows = _b === void 0 ? 20 : _b, _c = _a.initialVisibleColumns, initialVisibleColumns = _c === void 0 ? 20 : _c, _d = _a.cellVerticalSpacing, cellVerticalSpacing = _d === void 0 ? 0 : _d, _e = _a.cellHorizontalSpacing, cellHorizontalSpacing = _e === void 0 ? 10 : _e, _f = _a.minColumnDimension, minColumnDimension = _f === void 0 ? config_1.DEFAULT_COLUMN_WIDTH : _f, _g = _a.minRowDimension, minRowDimension = _g === void 0 ? config_1.DEFAULT_ROW_HEIGHT : _g, _h = _a.resizeStrategy, resizeStrategy = _h === void 0 ? "lazy" : _h, rowCount = _a.rowCount, columnCount = _a.columnCount, getDataRowCount = _a.getDataRowCount, _j = _a.fontFamily, fontFamily = _j === void 0 ? "Arial" : _j, _k = _a.fontSize, fontSize = _k === void 0 ? 12 : _k, _l = _a.fontWeight, fontWeight = _l === void 0 ? "" : _l, _m = _a.fontStyle, fontStyle = _m === void 0 ? "" : _m, _o = _a.
|
|
23
|
+
var getTextFormat = _a.getTextFormat, getTextFormatRuns = _a.getTextFormatRuns, _b = _a.initialVisibleRows, initialVisibleRows = _b === void 0 ? 20 : _b, _c = _a.initialVisibleColumns, initialVisibleColumns = _c === void 0 ? 20 : _c, _d = _a.cellVerticalSpacing, cellVerticalSpacing = _d === void 0 ? 0 : _d, _e = _a.cellHorizontalSpacing, cellHorizontalSpacing = _e === void 0 ? 10 : _e, _f = _a.minColumnDimension, minColumnDimension = _f === void 0 ? config_1.DEFAULT_COLUMN_WIDTH : _f, _g = _a.minRowDimension, minRowDimension = _g === void 0 ? config_1.DEFAULT_ROW_HEIGHT : _g, _h = _a.resizeStrategy, resizeStrategy = _h === void 0 ? "lazy" : _h, rowCount = _a.rowCount, columnCount = _a.columnCount, getDataRowCount = _a.getDataRowCount, _j = _a.fontFamily, fontFamily = _j === void 0 ? "Arial" : _j, _k = _a.fontSize, fontSize = _k === void 0 ? 12 : _k, _l = _a.fontWeight, fontWeight = _l === void 0 ? "" : _l, _m = _a.fontStyle, fontStyle = _m === void 0 ? "" : _m, _o = _a.lineHeightMode, lineHeightMode = _o === void 0 ? "fontMetrics" : _o, _p = _a.frozenRows, frozenRows = _p === void 0 ? 0 : _p, _q = _a.frozenColumns, frozenColumns = _q === void 0 ? 0 : _q, _r = _a.scale, scale = _r === void 0 ? 1 : _r, isHiddenRow = _a.isHiddenRow, isHiddenColumn = _a.isHiddenColumn, _s = _a.getTextValue, getTextValue = _s === void 0 ? defaultGetText : _s, getSpacing = _a.getSpacing, getViewPort = _a.getViewPort, shouldWrapCell = _a.shouldWrapCell, columnWidth = _a.columnWidth, getActualCellWidth = _a.getActualCellWidth;
|
|
24
24
|
var autoSizer = (0, react_1.useRef)(grid_1.autoSizerCanvas);
|
|
25
25
|
var scaleRef = (0, react_1.useRef)(scale);
|
|
26
26
|
// Keep scale in sync
|
|
27
27
|
scaleRef.current = scale;
|
|
28
28
|
/* Update any styles, fonts if necessary */
|
|
29
29
|
(0, use_isomorphic_layout_effect_1.useIsomorphicLayoutEffect)(function () {
|
|
30
|
-
autoSizer.current.setFont({
|
|
31
|
-
|
|
30
|
+
autoSizer.current.setFont({
|
|
31
|
+
fontFamily: fontFamily,
|
|
32
|
+
fontSize: fontSize,
|
|
33
|
+
fontWeight: fontWeight,
|
|
34
|
+
fontStyle: fontStyle,
|
|
35
|
+
lineHeightMode: lineHeightMode,
|
|
36
|
+
});
|
|
37
|
+
}, [fontFamily, fontSize, fontWeight, fontStyle, lineHeightMode]);
|
|
32
38
|
var setAutoSizerTextFormat = (0, react_1.useCallback)(function (textFormat, scale) {
|
|
33
39
|
var _a, _b;
|
|
34
40
|
var baseFontSize = (0, helpers_1.pointToPixel)((_a = textFormat.fontSize) !== null && _a !== void 0 ? _a : fontSize);
|
|
35
41
|
var textFontSize = textFormat.baselineOffset
|
|
36
42
|
? baseFontSize * BASELINE_OFFSET_FONT_SCALE
|
|
37
43
|
: baseFontSize;
|
|
44
|
+
// The sizer is a shared singleton — pin the mode on every measure so a
|
|
45
|
+
// grid in `fixed` mode cannot leak its line box into this one.
|
|
38
46
|
autoSizer.current.setFont({
|
|
39
47
|
fontWeight: textFormat.bold ? "bold" : "",
|
|
40
48
|
fontSize: textFontSize,
|
|
41
49
|
fontFamily: (_b = textFormat.fontFamily) !== null && _b !== void 0 ? _b : fontFamily,
|
|
42
50
|
fontStyle: textFormat.italic ? "italic" : "",
|
|
43
51
|
scale: scale,
|
|
52
|
+
lineHeightMode: lineHeightMode,
|
|
44
53
|
});
|
|
45
|
-
}, [fontFamily, fontSize]);
|
|
54
|
+
}, [fontFamily, fontSize, lineHeightMode]);
|
|
46
55
|
/**
|
|
47
56
|
* Measure a single atom under its segment-merged format. We can't
|
|
48
57
|
* delegate to `autoSizer.measureText` here: that runs the input
|
|
@@ -53,11 +62,12 @@ var useSizer = function (_a) {
|
|
|
53
62
|
* "Hello world" (with bold "world") produced a width as if the
|
|
54
63
|
* space didn't exist — auto-fit then sized the column too narrow
|
|
55
64
|
* and the bold run touched the right edge. Width comes from the
|
|
56
|
-
* raw 2D canvas API;
|
|
57
|
-
*
|
|
65
|
+
* raw 2D canvas API; the line box and leading are the autoSizer's
|
|
66
|
+
* for the atom's font, so a run in a taller face grows its line the
|
|
67
|
+
* way the painter's `CellTextRuns` draws it.
|
|
58
68
|
*/
|
|
59
69
|
var measureAtom = (0, react_1.useCallback)(function (atom, base, currentScale) {
|
|
60
|
-
var _a, _b, _c, _d, _e, _f
|
|
70
|
+
var _a, _b, _c, _d, _e, _f;
|
|
61
71
|
var merged = {
|
|
62
72
|
bold: (_a = atom.format.bold) !== null && _a !== void 0 ? _a : base.bold,
|
|
63
73
|
italic: (_b = atom.format.italic) !== null && _b !== void 0 ? _b : base.italic,
|
|
@@ -68,15 +78,14 @@ var useSizer = function (_a) {
|
|
|
68
78
|
setAutoSizerTextFormat(merged, currentScale);
|
|
69
79
|
var ctx = autoSizer.current.context;
|
|
70
80
|
var width = (_f = ctx === null || ctx === void 0 ? void 0 : ctx.measureText(atom.text).width) !== null && _f !== void 0 ? _f : 0;
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
return { width: width, height: height };
|
|
74
|
-
}, [fontSize, setAutoSizerTextFormat]);
|
|
81
|
+
return tslib_1.__assign({ width: width }, autoSizer.current.lineMetrics());
|
|
82
|
+
}, [setAutoSizerTextFormat]);
|
|
75
83
|
/**
|
|
76
84
|
* Measure a rich-text cell. Walks segments per line, sets the
|
|
77
85
|
* autoSizer font per atom, sums widths per line, takes the tallest
|
|
78
|
-
* atom's
|
|
79
|
-
*
|
|
86
|
+
* atom's line box as that line's box (Excel scales rows to fit the
|
|
87
|
+
* largest glyph in a mixed-format line) and stacks lines with the
|
|
88
|
+
* leading of the tallest atom, as `CellTextRuns` does. For wrapped
|
|
80
89
|
* cells it applies greedy whitespace-break wrap with per-atom font
|
|
81
90
|
* metrics, matching what `CellTextRuns` paints. Returns the raw
|
|
82
91
|
* scaled glyph box — caller adds cell-spacing padding afterwards.
|
|
@@ -85,19 +94,22 @@ var useSizer = function (_a) {
|
|
|
85
94
|
var e_1, _a;
|
|
86
95
|
var segments = (0, rich_text_1.buildRichTextSegments)(text, runs);
|
|
87
96
|
var inputLines = (0, rich_text_1.segmentsToLines)(segments);
|
|
88
|
-
//
|
|
89
|
-
|
|
90
|
-
var baseLineHeight = (function () {
|
|
91
|
-
var _a, _b;
|
|
97
|
+
// Line box for empty lines, and the floor of every other line.
|
|
98
|
+
var baseLine = (function () {
|
|
92
99
|
setAutoSizerTextFormat(base, currentScale);
|
|
93
|
-
return
|
|
100
|
+
return autoSizer.current.lineMetrics();
|
|
94
101
|
})();
|
|
95
102
|
var totalWidth = 0;
|
|
96
103
|
var totalHeight = 0;
|
|
104
|
+
var lineCount = 0;
|
|
105
|
+
var pushLine = function (box, leading) {
|
|
106
|
+
totalHeight += lineCount === 0 ? box : leading + box;
|
|
107
|
+
lineCount++;
|
|
108
|
+
};
|
|
97
109
|
var _loop_1 = function (line) {
|
|
98
110
|
var e_2, _b, e_3, _c, e_4, _d, e_5, _e;
|
|
99
111
|
if (line.length === 0) {
|
|
100
|
-
|
|
112
|
+
pushLine(baseLine.box, baseLine.leading);
|
|
101
113
|
return "continue";
|
|
102
114
|
}
|
|
103
115
|
var atoms = [];
|
|
@@ -127,16 +139,19 @@ var useSizer = function (_a) {
|
|
|
127
139
|
finally { if (e_2) throw e_2.error; }
|
|
128
140
|
}
|
|
129
141
|
if (!shouldWrap) {
|
|
130
|
-
// Single-line case: sum widths,
|
|
142
|
+
// Single-line case: sum widths, tallest atom's box = line box.
|
|
131
143
|
var lineWidth_1 = 0;
|
|
132
|
-
var
|
|
144
|
+
var lineBox_1 = baseLine.box;
|
|
145
|
+
var lineLeading_1 = baseLine.leading;
|
|
133
146
|
try {
|
|
134
147
|
for (var atoms_1 = (e_4 = void 0, tslib_1.__values(atoms)), atoms_1_1 = atoms_1.next(); !atoms_1_1.done; atoms_1_1 = atoms_1.next()) {
|
|
135
148
|
var atom = atoms_1_1.value;
|
|
136
|
-
var _h = measureAtom(atom, base, currentScale), width = _h.width,
|
|
149
|
+
var _h = measureAtom(atom, base, currentScale), width = _h.width, box = _h.box, leading = _h.leading;
|
|
137
150
|
lineWidth_1 += width;
|
|
138
|
-
if (
|
|
139
|
-
|
|
151
|
+
if (box > lineBox_1)
|
|
152
|
+
lineBox_1 = box;
|
|
153
|
+
if (leading > lineLeading_1)
|
|
154
|
+
lineLeading_1 = leading;
|
|
140
155
|
}
|
|
141
156
|
}
|
|
142
157
|
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
@@ -148,7 +163,7 @@ var useSizer = function (_a) {
|
|
|
148
163
|
}
|
|
149
164
|
if (lineWidth_1 > totalWidth)
|
|
150
165
|
totalWidth = lineWidth_1;
|
|
151
|
-
|
|
166
|
+
pushLine(lineBox_1, lineLeading_1);
|
|
152
167
|
return "continue";
|
|
153
168
|
}
|
|
154
169
|
// Wrapped case: greedy whitespace-break wrap with per-atom
|
|
@@ -156,24 +171,31 @@ var useSizer = function (_a) {
|
|
|
156
171
|
// (kept inline because we need running per-line max-height).
|
|
157
172
|
var cursorX = 0;
|
|
158
173
|
var lineWidth = 0;
|
|
159
|
-
var
|
|
174
|
+
var lineBox = baseLine.box;
|
|
175
|
+
var lineLeading = baseLine.leading;
|
|
160
176
|
var flush = function () {
|
|
161
177
|
if (lineWidth > totalWidth)
|
|
162
178
|
totalWidth = lineWidth;
|
|
163
|
-
|
|
179
|
+
pushLine(lineBox, lineLeading);
|
|
164
180
|
cursorX = 0;
|
|
165
181
|
lineWidth = 0;
|
|
166
|
-
|
|
182
|
+
lineBox = baseLine.box;
|
|
183
|
+
lineLeading = baseLine.leading;
|
|
184
|
+
};
|
|
185
|
+
var grow = function (box, leading) {
|
|
186
|
+
if (box > lineBox)
|
|
187
|
+
lineBox = box;
|
|
188
|
+
if (leading > lineLeading)
|
|
189
|
+
lineLeading = leading;
|
|
167
190
|
};
|
|
168
191
|
try {
|
|
169
192
|
for (var atoms_2 = (e_5 = void 0, tslib_1.__values(atoms)), atoms_2_1 = atoms_2.next(); !atoms_2_1.done; atoms_2_1 = atoms_2.next()) {
|
|
170
193
|
var atom = atoms_2_1.value;
|
|
171
|
-
var _j = measureAtom(atom, base, currentScale), atomWidth = _j.width,
|
|
194
|
+
var _j = measureAtom(atom, base, currentScale), atomWidth = _j.width, atomBox = _j.box, atomLeading = _j.leading;
|
|
172
195
|
if (cursorX + atomWidth <= maxGlyphWidth || cursorX === 0) {
|
|
173
196
|
cursorX += atomWidth;
|
|
174
197
|
lineWidth = cursorX;
|
|
175
|
-
|
|
176
|
-
lineMaxHeight = atomHeight;
|
|
198
|
+
grow(atomBox, atomLeading);
|
|
177
199
|
}
|
|
178
200
|
else if (atom.isWhitespace) {
|
|
179
201
|
flush();
|
|
@@ -182,8 +204,7 @@ var useSizer = function (_a) {
|
|
|
182
204
|
flush();
|
|
183
205
|
cursorX = atomWidth;
|
|
184
206
|
lineWidth = atomWidth;
|
|
185
|
-
|
|
186
|
-
lineMaxHeight = atomHeight;
|
|
207
|
+
grow(atomBox, atomLeading);
|
|
187
208
|
}
|
|
188
209
|
}
|
|
189
210
|
}
|
|
@@ -4,6 +4,15 @@ import type { SpreadsheetApi } from "../api/spreadsheet-api";
|
|
|
4
4
|
type Props = {
|
|
5
5
|
children?: ReactNode;
|
|
6
6
|
};
|
|
7
|
+
type PortalProps = Props & {
|
|
8
|
+
/**
|
|
9
|
+
* Where every dialog, menu, popover, select, tooltip and editor dropdown
|
|
10
|
+
* under this provider mounts. Defaults to the `document.body` of the
|
|
11
|
+
* window running the JS; a host that renders the grid in a second window
|
|
12
|
+
* (popout, iframe) passes that window's body so they open next to the grid.
|
|
13
|
+
*/
|
|
14
|
+
portalContainer?: HTMLElement | null;
|
|
15
|
+
};
|
|
7
16
|
export declare const multiInstanceStore: {
|
|
8
17
|
get: <Value>(atom: import("jotai").Atom<Value>) => Value;
|
|
9
18
|
set: <Value, Args extends unknown[], Result>(atom: import("jotai").WritableAtom<Value, Args, Result>, ...args: Args) => Result;
|
|
@@ -17,8 +26,8 @@ export declare const multiInstanceAtom: import("jotai").PrimitiveAtom<Map<string
|
|
|
17
26
|
init: Map<string, SpreadsheetApi<import("@rowsncolumns/common-types").CellData>>;
|
|
18
27
|
};
|
|
19
28
|
export declare const useSpreadsheetInstances: () => Map<string, SpreadsheetApi<import("@rowsncolumns/common-types").CellData>>;
|
|
20
|
-
export declare const SpreadsheetProvider: FC<
|
|
21
|
-
export declare const SpreadsheetStateProvider: FC<
|
|
29
|
+
export declare const SpreadsheetProvider: FC<PortalProps>;
|
|
30
|
+
export declare const SpreadsheetStateProvider: FC<PortalProps>;
|
|
22
31
|
export declare const SpreadsheetMultiInstanceProvider: FC<Props>;
|
|
23
32
|
export declare const SpreadsheetTooltipProvider: FC<Props>;
|
|
24
33
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spreadsheet-provider.d.ts","sourceRoot":"","sources":["../../../providers/spreadsheet-provider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spreadsheet-provider.d.ts","sourceRoot":"","sources":["../../../providers/spreadsheet-provider.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,KAAK,WAAW,GAAG,KAAK,GAAG;IACzB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;0GA+CwmD,GAAI;;;;0GAAJ,GAAI;;wDA/C5lD,CAAC;AAEhD,eAAO,MAAM,iBAAiB;;CAA+C,CAAC;AAM9E,eAAO,MAAM,uBAAuB,kFAEnC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,WAAW,CAa/C,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,EAAE,CAAC,WAAW,CAWpD,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,EAAE,CAAC,KAAK,CAEtD,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,EAAE,CAAC,KAAK,CAEhD,CAAC"}
|
|
@@ -16,16 +16,18 @@ var useSpreadsheetInstances = function () {
|
|
|
16
16
|
};
|
|
17
17
|
exports.useSpreadsheetInstances = useSpreadsheetInstances;
|
|
18
18
|
var SpreadsheetProvider = function (_a) {
|
|
19
|
-
var children = _a.children;
|
|
19
|
+
var children = _a.children, portalContainer = _a.portalContainer;
|
|
20
20
|
return (react_1.default.createElement(jotai_1.Provider, null,
|
|
21
|
-
react_1.default.createElement(ui_1.
|
|
22
|
-
react_1.default.createElement(ui_1.
|
|
21
|
+
react_1.default.createElement(ui_1.PortalContainerProvider, { container: portalContainer },
|
|
22
|
+
react_1.default.createElement(ui_1.ModalProvider, null,
|
|
23
|
+
react_1.default.createElement(ui_1.TooltipProvider, null, children)))));
|
|
23
24
|
};
|
|
24
25
|
exports.SpreadsheetProvider = SpreadsheetProvider;
|
|
25
26
|
var SpreadsheetStateProvider = function (_a) {
|
|
26
|
-
var children = _a.children;
|
|
27
|
+
var children = _a.children, portalContainer = _a.portalContainer;
|
|
27
28
|
return (react_1.default.createElement(jotai_1.Provider, null,
|
|
28
|
-
react_1.default.createElement(ui_1.
|
|
29
|
+
react_1.default.createElement(ui_1.PortalContainerProvider, { container: portalContainer },
|
|
30
|
+
react_1.default.createElement(ui_1.ModalProvider, null, children))));
|
|
29
31
|
};
|
|
30
32
|
exports.SpreadsheetStateProvider = SpreadsheetStateProvider;
|
|
31
33
|
var SpreadsheetMultiInstanceProvider = function (_a) {
|
package/dist/cjs/release-date.js
CHANGED
|
@@ -4,4 +4,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.releaseDate = void 0;
|
|
5
5
|
exports.releaseDate =
|
|
6
6
|
// @ts-ignore
|
|
7
|
-
(_a = new Date("2026-10-
|
|
7
|
+
(_a = new Date("2026-10-14")) !== null && _a !== void 0 ? _a : new Date("2025-06-18");
|
|
@@ -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/calculated-column-fill.ts","../../api/cf-engine.ts","../../api/cf-overlays.ts","../../api/cf-window.ts","../../api/chart-sheet.ts","../../api/chart-source-ranges.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/insert-options.ts","../../api/move-overwrite.ts","../../api/multi-selection.ts","../../api/scheduler.ts","../../api/scroller.ts","../../api/selections.ts","../../api/spreadsheet-api.ts","../../api/table-auto-expansion.ts","../../api/table.ts","../../api/validation-tooltip.tsx","../../api/validation.ts","../../atoms/active-editor.atom.ts","../../atoms/advanced-filter-dialog.atom.ts","../../atoms/calculated-column-fill.atom.ts","../../atoms/cell-input-context.atom.ts","../../atoms/chart-actions.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/insert-cells-dialog.atom.ts","../../atoms/insert-options.atom.ts","../../atoms/loading-indicator.atom.ts","../../atoms/magic-fill-state.atom.ts","../../atoms/move-chart-dialog.atom.ts","../../atoms/move-overwrite-confirm.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/selected-chart-series.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/sparkline-dialog.atom.ts","../../atoms/spreadsheet-api.atom.ts","../../atoms/subtotal-dialog.atom.ts","../../atoms/table-auto-expansion.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/calculated-column-smart-tag/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.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/chart-sheet-view/index.tsx","../../components/context-menu/embed-context-menu.tsx","../../components/context-menu/index.tsx","../../components/context-menu/menu.tsx","../../components/context-menu/style.tsx","../../components/context-menu/total-row-function-menu.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/date-tree.ts","../../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-cells-dialog/index.tsx","../../components/insert-function-dialog/index.tsx","../../components/insert-options-smart-tag/index.tsx","../../components/loading-indicator/index.tsx","../../components/move-chart-dialog/index.tsx","../../components/move-overwrite-confirm-dialog/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/sparkline-dialog/index.tsx","../../components/subtotal-dialog/index.tsx","../../components/table-auto-expansion-smart-tag/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/sparkline-actions.tsx","../../components/toolbar/style.tsx","../../components/toolbar/table-actions.tsx","../../components/toolbar/table-style-editor.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-chart-clipboard.ts","../../hooks/use-chart-source-ranges.ts","../../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-reveal-chart-embed.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-hit-zones.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/copy-as-picture.ts","../../utils/maybe.ts","../../utils/pivot-chart-field-buttons.ts","../../utils/z-order.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/calculated-column-fill.ts","../../api/cf-engine.ts","../../api/cf-overlays.ts","../../api/cf-window.ts","../../api/chart-sheet.ts","../../api/chart-source-ranges.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/insert-options.ts","../../api/move-overwrite.ts","../../api/multi-selection.ts","../../api/scheduler.ts","../../api/scroller.ts","../../api/selections.ts","../../api/spreadsheet-api.ts","../../api/table-auto-expansion.ts","../../api/table.ts","../../api/validation-tooltip.tsx","../../api/validation.ts","../../atoms/active-editor.atom.ts","../../atoms/advanced-filter-dialog.atom.ts","../../atoms/calculated-column-fill.atom.ts","../../atoms/cell-input-context.atom.ts","../../atoms/chart-actions.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/insert-cells-dialog.atom.ts","../../atoms/insert-options.atom.ts","../../atoms/loading-indicator.atom.ts","../../atoms/magic-fill-state.atom.ts","../../atoms/move-chart-dialog.atom.ts","../../atoms/move-overwrite-confirm.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/selected-chart-series.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/sparkline-dialog.atom.ts","../../atoms/spreadsheet-api.atom.ts","../../atoms/subtotal-dialog.atom.ts","../../atoms/table-auto-expansion.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/calculated-column-smart-tag/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/line-height.ts","../../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.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/chart-sheet-view/index.tsx","../../components/context-menu/embed-context-menu.tsx","../../components/context-menu/index.tsx","../../components/context-menu/menu.tsx","../../components/context-menu/style.tsx","../../components/context-menu/total-row-function-menu.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/date-tree.ts","../../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-cells-dialog/index.tsx","../../components/insert-function-dialog/index.tsx","../../components/insert-options-smart-tag/index.tsx","../../components/loading-indicator/index.tsx","../../components/move-chart-dialog/index.tsx","../../components/move-overwrite-confirm-dialog/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/sparkline-dialog/index.tsx","../../components/subtotal-dialog/index.tsx","../../components/table-auto-expansion-smart-tag/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/sparkline-actions.tsx","../../components/toolbar/style.tsx","../../components/toolbar/table-actions.tsx","../../components/toolbar/table-style-editor.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/export-range-tiles.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-chart-clipboard.ts","../../hooks/use-chart-source-ranges.ts","../../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-reveal-chart-embed.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-hit-zones.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/copy-as-picture.ts","../../utils/maybe.ts","../../utils/pivot-chart-field-buttons.ts","../../utils/z-order.ts"],"version":"5.8.3"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/canvas-grid/index.tsx"],"names":[],"mappings":"AAoDA,OAAO,KASN,MAAM,OAAO,CAAC;AAqNf,OAAO,KAAK,EAGV,QAAQ,EAWT,MAAM,aAAa,CAAC;AAoBrB,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EAEhB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/canvas-grid/index.tsx"],"names":[],"mappings":"AAoDA,OAAO,KASN,MAAM,OAAO,CAAC;AAqNf,OAAO,KAAK,EAGV,QAAQ,EAWT,MAAM,aAAa,CAAC;AAoBrB,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EAEhB,MAAM,WAAW,CAAC;AAw5LnB,eAAO,MAAM,UAAU,EAA4C,CACjE,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,EAEvB,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GACvB,wBAAwB,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAAE,KAChE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC"}
|
|
@@ -127,7 +127,7 @@ function isDetachedEditor(editor) {
|
|
|
127
127
|
return element != null && !element.isConnected;
|
|
128
128
|
}
|
|
129
129
|
function CanvasGridComponent(props, forwardedRef) {
|
|
130
|
-
const { licenseKey, sheetId, sheetType, ChartSheetView: ChartSheetViewComponent = ChartSheetView, instanceId, activeCell = DEFAULT_ACTIVE_CELL, selections = DEFAULT_ARRAY, frozenColumnCount = 0, frozenRowCount = 0, rowCount = DEFAULT_ROW_COUNT, columnCount = DEFAULT_COLUMN_COUNT, autoFocus, basicFilter, tables, namedRanges, bandedRanges = DEFAULT_ARRAY, tableBorderColor = "#008000", filterIconColor = "#008000", conditionalFormats, showFilterIcon = true, showCalculatedColumnIcon = true, showHeaders = true, defaultColumnWidth = DEFAULT_COLUMN_WIDTH, defaultRowHeight = DEFAULT_ROW_HEIGHT, columnHeaderHeight = COLUMN_HEADER_HEIGHT, rowHeaderWidth = ROW_HEADER_WIDTH, gridLineColor = GRIDLINE_COLOR, cellBackgroundColor = DEFAULT_CELL_BACKGROUND_COLOR, cellColor = DEFAULT_CELL_COLOR, headerBorderColor = DEFAULT_HEADER_BORDER_COLOR, headerBackgroundColor = DEFAULT_HEADER_BG, headerColor = DEFAULT_HEADER_COLOR, headerActiveBackgroundColor = DEFAULT_HEADER_ACTIVE_BG, headerSelectedBackgroundColor = DEFAULT_HEADER_SELECTED_BG, headerSelectedColor = "white", headerTableBackgroundColor = DEFAULT_HEADER_TABLE_BG, headerTableActiveBackgroundColor = DEFAULT_HEADER_ACTIVE_TABLE_BG, headerTableSelectedBackgroundColor = DEFAULT_HEADER_SELECTED_TABLE_BG, frozenShadowColor = headerBorderColor, frozenShadowThickness = 1, selectionBackgroundColor = SELECTION_BG, selectionBorderColor = SELECTION_BORDER, selectionDragBorderColor = SELECTION_BORDER, chartSelectedColor, chipBackgroundColor = CHIP_COLOR, merges = DEFAULT_ARRAY, borderStyles, protectedRanges, isWorkbookProtected: isWorkbookProtectedProp = false, getSheetProtection, pivotTables, charts, onUpdateChart, onChangeZOrder, embeds, slicers, rowMetadata = DEFAULT_ARRAY, columnMetadata = DEFAULT_ARRAY, scale = 1, zoomSpeed = 1, overscanCount = 3, enableEditOnEnterKey = true, enableTextOverflow = true, showGridLines: _showGridLines, showFormulas = false, protectFormulas = false, showFrozenSeparator = true, HeaderCell = DefaultHeaderCell, Cell = DefaultCell, SelectionTitleComponent = SelectionTitle, CellEditor = DefaultCellEditor, CellTooltip, ContextMenu = DefaultContextMenu, ContextMenuWrapper = DefaultContextMenuWrapper, FilterBox = DefaultFilterBox, HeaderMoveDragComponent = DefaultHeaderMoveDragComponent, SuggestionsDropdown, stickyEditor = true, scrollSnap = false, scrollThrottleTimeout, preventBrowserDefaultScroll, mouseMoveThrottleTimeout = 60, tooltipIntentInterval = 60, selectionPolicy, users, userId, renderCollaboratorCursor, functionDescriptions, showHeaderMenuButton = true, scrollbarSize = SCROLLBAR_SIZE, theme = defaultSpreadsheetTheme, showNotes = true, showComments = true, locale, formulaLocale: formulaLocaleProp, agentSuggestions, onReviewSuggestion, onShowFormulas, getDataRowCount, getDataRegion, getChartComponent, getEmbedComponent, getSlicerComponent, onChange, onChangeBatch, onExpandCollapse, onPivotDrillDown, onDelete, onChangeEditorValue, onFill, onRequestCalculate, onChangeActiveCell, onChangeActiveSheet, onChangeSelections, getSheetName, getSheetId, getCellData, getNote: getNoteProp, getTextFormatRuns, getDataValidation, getEffectiveFormat, getFormattedValue: getFormattedValueProp, getTooltipContent, errorResolutionComponent, getEffectiveValue: getEffectiveValueProp, getSparklineGroup, getUserEnteredExtendedValue, getEffectiveExtendedValue, getSheetRowCount, getSheetColumnCount, getCellPopoverContent, onScroll, onViewPortChange, windowConditionalFormats = false, engineConditionalFormatResults = false, onResize, onAutoResize, onHideColumn, onHideRow, onShowColumn, onShowRow, onGroupRows, onUngroupRows, onCollapseRowGroup, onExpandRowGroup, onGroupColumns, onUngroupColumns, onCollapseColumnGroup, onExpandColumnGroup, onSetOutlineDepth, onDeleteRow, onDeleteColumn, onInsertRow, onInsertColumn, onChangeAutoExpandTables, onChangeAutoCalculatedColumns, onInsertCellsShiftDown, onInsertCellsShiftRight, onDeleteCellsShiftLeft, onDeleteCellsShiftUp, onClearContents, onMoveColumns, onMoveRows, onSelectNextSheet, onSelectPreviousSheet, onCreateNewSheet, onKeyDown, onChangeFormatting, onRepeatFormatting, onClearFormatting, onRequestEditProtectedRange, onMoveChart, onResizeChart, onDeleteChart, onCutChart, onCopyChart, onMoveEmbed, onResizeEmbed, onDeleteEmbed, onRequestEditEmbed, onMoveSlicer, onResizeSlicer, onDeleteSlicer, onRequestEditSlicer, onFillRange, disableFillRightShortcut, keymap, onCalculateNow, onRequestGoTo, onMoveSelection, onInsertCutCells, onInsertTime, onInsertDate, onInsertDateTime, onInsertAutoSum, onUndo, onRedo, onPaste, onCopy, onCut, onSortColumn, onSortTable, onFilterTable, onFilterPivot, onResizeTable, onUndoTableAutoExpansion, onUndoCalculatedColumn, onOverwriteCalculatedColumn, onRequestEditTable, onRequestEditPivotTable, onRequestDeletePivotTable, onRequestCreatePivotChart, onRemoveTable, onCreateTable, onRequestCreateTable, onInsertTableColumn, onDeleteTableColumn, onInsertTableRow, onDeleteTableRow, onUpdateTable, onRequestResizeTable, onRequestInsertSlicer, onCreateBasicFilter, onRequestDefineNamedRange, onRequestFormatCells, onRequestConditionalFormat, onRequestDataValidation, onRequestInsertComment, onRequestInsertLink, onFreezeColumn, onFreezeRow, onUpdateNote, onProtectRange, onUnProtectRange, onSortRange, onRequestSearch, onRequestReplace, onRequestResize, getRowHeaderText = getDefaultRowHeader, getColumnHeaderText = getDefaultColumnHeader, getAdditionalCellSpacing, tokenizer: defaultTokenizer = defaultFormulaTokenizer, onChangeScale, onRemoveLink, onSelectLink, onSplitTextToColumns, onRemoveDuplicates, onGoalSeek, onSubtotal, onAdvancedFilter, onRequestExpand, cellExpandPredicate, StructuredResult = DefaultStructuredResult, getMentions, getStructuredProperties: getStructuredPropertiesProp, getFunctionParameterSuggestions, shouldFetchFunctionParameters, MentionTagComponent, MentionDropdownItemComponent, showSelectionResizeHandles = true, enableMagicFill, enableQuickEdit = true, MagicFillComponent, MagicFillContent, QuickEdit, PasteMenu, SuggestionAction, HiddenRowMarkers, HiddenColumnMarkers, enableResizerOverflow, className, defaultFontSizePoint = DEFAULT_FONT_SIZE_PT, defaultCellFormat, readonly, isComparing = false, getCellDiff, enableDataBoundaryNavigation, footerHeight, footerComponent, arrowComponents,
|
|
130
|
+
const { licenseKey, sheetId, sheetType, ChartSheetView: ChartSheetViewComponent = ChartSheetView, instanceId, activeCell = DEFAULT_ACTIVE_CELL, selections = DEFAULT_ARRAY, frozenColumnCount = 0, frozenRowCount = 0, rowCount = DEFAULT_ROW_COUNT, columnCount = DEFAULT_COLUMN_COUNT, autoFocus, basicFilter, tables, namedRanges, bandedRanges = DEFAULT_ARRAY, tableBorderColor = "#008000", filterIconColor = "#008000", conditionalFormats, showFilterIcon = true, showCalculatedColumnIcon = true, showHeaders = true, defaultColumnWidth = DEFAULT_COLUMN_WIDTH, defaultRowHeight = DEFAULT_ROW_HEIGHT, lineHeightMode = "fontMetrics", columnHeaderHeight = COLUMN_HEADER_HEIGHT, rowHeaderWidth = ROW_HEADER_WIDTH, gridLineColor = GRIDLINE_COLOR, cellBackgroundColor = DEFAULT_CELL_BACKGROUND_COLOR, cellColor = DEFAULT_CELL_COLOR, headerBorderColor = DEFAULT_HEADER_BORDER_COLOR, headerBackgroundColor = DEFAULT_HEADER_BG, headerColor = DEFAULT_HEADER_COLOR, headerActiveBackgroundColor = DEFAULT_HEADER_ACTIVE_BG, headerSelectedBackgroundColor = DEFAULT_HEADER_SELECTED_BG, headerSelectedColor = "white", headerTableBackgroundColor = DEFAULT_HEADER_TABLE_BG, headerTableActiveBackgroundColor = DEFAULT_HEADER_ACTIVE_TABLE_BG, headerTableSelectedBackgroundColor = DEFAULT_HEADER_SELECTED_TABLE_BG, frozenShadowColor = headerBorderColor, frozenShadowThickness = 1, selectionBackgroundColor = SELECTION_BG, selectionBorderColor = SELECTION_BORDER, selectionDragBorderColor = SELECTION_BORDER, chartSelectedColor, chipBackgroundColor = CHIP_COLOR, merges = DEFAULT_ARRAY, borderStyles, protectedRanges, isWorkbookProtected: isWorkbookProtectedProp = false, getSheetProtection, pivotTables, charts, onUpdateChart, onChangeZOrder, embeds, slicers, rowMetadata = DEFAULT_ARRAY, columnMetadata = DEFAULT_ARRAY, scale = 1, zoomSpeed = 1, overscanCount = 3, enableEditOnEnterKey = true, enableTextOverflow = true, showGridLines: _showGridLines, showFormulas = false, protectFormulas = false, showFrozenSeparator = true, HeaderCell = DefaultHeaderCell, Cell = DefaultCell, SelectionTitleComponent = SelectionTitle, CellEditor = DefaultCellEditor, CellTooltip, ContextMenu = DefaultContextMenu, ContextMenuWrapper = DefaultContextMenuWrapper, FilterBox = DefaultFilterBox, HeaderMoveDragComponent = DefaultHeaderMoveDragComponent, SuggestionsDropdown, stickyEditor = true, scrollSnap = false, scrollThrottleTimeout, preventBrowserDefaultScroll, mouseMoveThrottleTimeout = 60, tooltipIntentInterval = 60, selectionPolicy, users, userId, renderCollaboratorCursor, functionDescriptions, showHeaderMenuButton = true, scrollbarSize = SCROLLBAR_SIZE, theme = defaultSpreadsheetTheme, showNotes = true, showComments = true, locale, formulaLocale: formulaLocaleProp, agentSuggestions, onReviewSuggestion, onShowFormulas, getDataRowCount, getDataRegion, getChartComponent, getEmbedComponent, getSlicerComponent, onChange, onChangeBatch, onExpandCollapse, onPivotDrillDown, onDelete, onChangeEditorValue, onFill, onRequestCalculate, onChangeActiveCell, onChangeActiveSheet, onChangeSelections, getSheetName, getSheetId, getCellData, getNote: getNoteProp, getTextFormatRuns, getDataValidation, getEffectiveFormat, getFormattedValue: getFormattedValueProp, getTooltipContent, errorResolutionComponent, getEffectiveValue: getEffectiveValueProp, getSparklineGroup, getUserEnteredExtendedValue, getEffectiveExtendedValue, getSheetRowCount, getSheetColumnCount, getCellPopoverContent, onScroll, onViewPortChange, windowConditionalFormats = false, engineConditionalFormatResults = false, onResize, onAutoResize, onHideColumn, onHideRow, onShowColumn, onShowRow, onGroupRows, onUngroupRows, onCollapseRowGroup, onExpandRowGroup, onGroupColumns, onUngroupColumns, onCollapseColumnGroup, onExpandColumnGroup, onSetOutlineDepth, onDeleteRow, onDeleteColumn, onInsertRow, onInsertColumn, onChangeAutoExpandTables, onChangeAutoCalculatedColumns, onInsertCellsShiftDown, onInsertCellsShiftRight, onDeleteCellsShiftLeft, onDeleteCellsShiftUp, onClearContents, onMoveColumns, onMoveRows, onSelectNextSheet, onSelectPreviousSheet, onCreateNewSheet, onKeyDown, onChangeFormatting, onRepeatFormatting, onClearFormatting, onRequestEditProtectedRange, onMoveChart, onResizeChart, onDeleteChart, onCutChart, onCopyChart, onMoveEmbed, onResizeEmbed, onDeleteEmbed, onRequestEditEmbed, onMoveSlicer, onResizeSlicer, onDeleteSlicer, onRequestEditSlicer, onFillRange, disableFillRightShortcut, keymap, onCalculateNow, onRequestGoTo, onMoveSelection, onInsertCutCells, onInsertTime, onInsertDate, onInsertDateTime, onInsertAutoSum, onUndo, onRedo, batchHistory, onPaste, onCopy, onCut, onSortColumn, onSortTable, onFilterTable, onFilterPivot, onResizeTable, onUndoTableAutoExpansion, onUndoCalculatedColumn, onOverwriteCalculatedColumn, onRequestEditTable, onRequestEditPivotTable, onRequestDeletePivotTable, onRequestCreatePivotChart, onRemoveTable, onCreateTable, onRequestCreateTable, onInsertTableColumn, onDeleteTableColumn, onInsertTableRow, onDeleteTableRow, onUpdateTable, onRequestResizeTable, onRequestInsertSlicer, onCreateBasicFilter, onRequestDefineNamedRange, onRequestFormatCells, onRequestConditionalFormat, onRequestDataValidation, onRequestInsertComment, onRequestInsertLink, onFreezeColumn, onFreezeRow, onUpdateNote, onProtectRange, onUnProtectRange, onSortRange, onRequestSearch, onRequestReplace, onRequestResize, getRowHeaderText = getDefaultRowHeader, getColumnHeaderText = getDefaultColumnHeader, getAdditionalCellSpacing, tokenizer: defaultTokenizer = defaultFormulaTokenizer, onChangeScale, onRemoveLink, onSelectLink, onSplitTextToColumns, onRemoveDuplicates, onGoalSeek, onSubtotal, onAdvancedFilter, onRequestExpand, cellExpandPredicate, StructuredResult = DefaultStructuredResult, getMentions, getStructuredProperties: getStructuredPropertiesProp, getFunctionParameterSuggestions, shouldFetchFunctionParameters, MentionTagComponent, MentionDropdownItemComponent, showSelectionResizeHandles = true, enableMagicFill, enableQuickEdit = true, MagicFillComponent, MagicFillContent, QuickEdit, PasteMenu, SuggestionAction, HiddenRowMarkers, HiddenColumnMarkers, enableResizerOverflow, className, defaultFontSizePoint = DEFAULT_FONT_SIZE_PT, defaultCellFormat, readonly, isComparing = false, getCellDiff, enableDataBoundaryNavigation, footerHeight, footerComponent, arrowComponents,
|
|
131
131
|
// Host-driven filter props. `hostHiddenRowRanges`
|
|
132
132
|
// supplies compact [start, end] hidden-row tuples; `getFilterValues` supplies a
|
|
133
133
|
// column's distinct values. Both let a million-row filter render without scanning
|
|
@@ -716,6 +716,10 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
716
716
|
cellEditorInstance?.focus();
|
|
717
717
|
}
|
|
718
718
|
}, [activeEditor, cellEditorInstance]);
|
|
719
|
+
/**
|
|
720
|
+
* Container and total size of the grid, as the grid measures them
|
|
721
|
+
*/
|
|
722
|
+
const getGridDimensions = useCallback(() => gridRef.current?.getDimensions(), []);
|
|
719
723
|
/**
|
|
720
724
|
* Canvas layers
|
|
721
725
|
*/
|
|
@@ -1348,19 +1352,19 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1348
1352
|
sheetId,
|
|
1349
1353
|
cellBackgroundColor,
|
|
1350
1354
|
gridLineWidth,
|
|
1355
|
+
frozenRows,
|
|
1356
|
+
frozenColumns,
|
|
1351
1357
|
getCanvasLayers,
|
|
1352
1358
|
getRowHeaderCanvasLayer,
|
|
1353
1359
|
getColumnHeaderCanvasLayer,
|
|
1354
|
-
getCellOffsetFromCoords,
|
|
1355
1360
|
getR1C1AddressFromSelection,
|
|
1356
1361
|
getSheetName,
|
|
1357
1362
|
getScrollPosition,
|
|
1358
|
-
getViewPort,
|
|
1359
1363
|
getRowOffset,
|
|
1360
1364
|
getColumnOffset,
|
|
1361
1365
|
getSheetDimensions,
|
|
1366
|
+
getGridDimensions,
|
|
1362
1367
|
scrollTo,
|
|
1363
|
-
scrollToCell,
|
|
1364
1368
|
scale,
|
|
1365
1369
|
onChangeScale,
|
|
1366
1370
|
});
|
|
@@ -1893,6 +1897,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
1893
1897
|
// Measure with the same font the painter draws with (#1117).
|
|
1894
1898
|
fontFamily: defaultFontFamily,
|
|
1895
1899
|
fontSize: defaultFontSize,
|
|
1900
|
+
lineHeightMode,
|
|
1896
1901
|
resizeStrategy: "full",
|
|
1897
1902
|
});
|
|
1898
1903
|
/**
|
|
@@ -2416,10 +2421,12 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2416
2421
|
focus: focusSheet,
|
|
2417
2422
|
scrollToCell,
|
|
2418
2423
|
isMergedCell,
|
|
2419
|
-
|
|
2424
|
+
// A readonly grid gets no write handler: a fill-handle drag or a
|
|
2425
|
+
// selection drag-move then changes nothing, whatever started the gesture.
|
|
2426
|
+
onFill: readonly ? undefined : onFill,
|
|
2420
2427
|
onFillHandleRelease: handleFillHandleRelease,
|
|
2421
|
-
onFillShrink: handleFillShrink,
|
|
2422
|
-
onMoveSelection,
|
|
2428
|
+
onFillShrink: readonly ? undefined : handleFillShrink,
|
|
2429
|
+
onMoveSelection: readonly ? undefined : onMoveSelection,
|
|
2423
2430
|
onInsertCutCells,
|
|
2424
2431
|
confirmMoveOverwrite,
|
|
2425
2432
|
isHiddenColumn,
|
|
@@ -2438,6 +2445,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2438
2445
|
activeCell,
|
|
2439
2446
|
selections,
|
|
2440
2447
|
sheetId,
|
|
2448
|
+
readonly,
|
|
2441
2449
|
focusSheet,
|
|
2442
2450
|
onPaste,
|
|
2443
2451
|
onCopy,
|
|
@@ -2678,6 +2686,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
2678
2686
|
showValidationAlert,
|
|
2679
2687
|
selections,
|
|
2680
2688
|
onChangeBatch,
|
|
2689
|
+
batchHistory,
|
|
2681
2690
|
formulaLocale,
|
|
2682
2691
|
});
|
|
2683
2692
|
/**
|
|
@@ -3081,14 +3090,15 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3081
3090
|
selectionTopBound,
|
|
3082
3091
|
showHeaderMenuButton,
|
|
3083
3092
|
scale,
|
|
3084
|
-
|
|
3093
|
+
// Column widths and row heights are sheet writes too
|
|
3094
|
+
onResize: readonly ? undefined : onResize,
|
|
3085
3095
|
focusSheet,
|
|
3086
3096
|
isRowHeader,
|
|
3087
3097
|
isColumnHeader,
|
|
3088
3098
|
isHiddenColumn,
|
|
3089
3099
|
containerWidth: width - scrollbarSize,
|
|
3090
3100
|
containerHeight: height - scrollbarSize,
|
|
3091
|
-
onAutoFit: handleAutoFit,
|
|
3101
|
+
onAutoFit: readonly ? undefined : handleAutoFit,
|
|
3092
3102
|
backgroundColor: selectionBorderColor,
|
|
3093
3103
|
sheetId,
|
|
3094
3104
|
selectedRowHeadersIds,
|
|
@@ -3596,6 +3606,7 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3596
3606
|
onCheckboxClick: handleCheckboxClick,
|
|
3597
3607
|
onExpandCollapse: handleExpandCollapse,
|
|
3598
3608
|
defaultFontSizePoint: defaultFontSize,
|
|
3609
|
+
lineHeightMode,
|
|
3599
3610
|
Cell,
|
|
3600
3611
|
HeaderCell,
|
|
3601
3612
|
theme,
|
|
@@ -3669,8 +3680,10 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
3669
3680
|
* Hide fill handle
|
|
3670
3681
|
* 1. When user is in edit mode
|
|
3671
3682
|
* 2. When user is in formula mode and user has made selections
|
|
3683
|
+
* 3. When the grid is readonly — a fill is a write
|
|
3672
3684
|
*/
|
|
3673
|
-
const showFillHandle = !
|
|
3685
|
+
const showFillHandle = !readonly &&
|
|
3686
|
+
!isSelectionInProgress &&
|
|
3674
3687
|
!isEditInProgress &&
|
|
3675
3688
|
!isResizingTable &&
|
|
3676
3689
|
!(formulaMode && formulaSelections.length);
|
|
@@ -4124,12 +4137,14 @@ function CanvasGridComponent(props, forwardedRef) {
|
|
|
4124
4137
|
popoverComponent,
|
|
4125
4138
|
popoverRange,
|
|
4126
4139
|
cellExpandComponent,
|
|
4140
|
+
arrowComponents,
|
|
4127
4141
|
});
|
|
4128
4142
|
/**
|
|
4129
4143
|
* Only enable selection drag if user is not editing and not
|
|
4130
|
-
* in formula mode
|
|
4144
|
+
* in formula mode. A readonly grid has nothing to move, so the
|
|
4145
|
+
* gesture does not start at all (no move cursor, no selection jump).
|
|
4131
4146
|
*/
|
|
4132
|
-
const enableSelectionDrag = !isSelectionInProgress && !isEditInProgress && !formulaMode;
|
|
4147
|
+
const enableSelectionDrag = !readonly && !isSelectionInProgress && !isEditInProgress && !formulaMode;
|
|
4133
4148
|
// A chartsheet IS its chart: no grid, headers, editor or cell menus — only the chart and its
|
|
4134
4149
|
// context menu (Excel).
|
|
4135
4150
|
if (sheetType === "chartsheet") {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CalculatorFunction } from "@rowsncolumns/common-types";
|
|
2
2
|
import type { FormulaResult } from "@rowsncolumns/fast-formula-parser";
|
|
3
|
-
import type { Align, AreaStyle, CellInterface, CellPosition, Direction, GridProps, GridRange, GridRef, OptionalCellInterface, ScrollCoords, SelectionArea, Style, ViewPortProps } from "@rowsncolumns/grid";
|
|
3
|
+
import type { Align, AreaStyle, CellInterface, CellPosition, Direction, GridProps, GridRange, GridRef, LineHeightMode, OptionalCellInterface, ScrollCoords, SelectionArea, Style, ViewPortProps } from "@rowsncolumns/grid";
|
|
4
4
|
import type { Mention, MentionTagComponentProps, OptionItem, ProseMirrorEditorProps, TextFormatRun } from "@rowsncolumns/ui";
|
|
5
5
|
import type { FormulaLocale, FormulaLocaleInput } from "@rowsncolumns/utils";
|
|
6
6
|
import type { CellDiff } from "@rowsncolumns/version-comparison";
|
|
@@ -231,6 +231,14 @@ export type CanvasGridProps<T extends CellData = CellData<any, any>> = {
|
|
|
231
231
|
* Default row height
|
|
232
232
|
*/
|
|
233
233
|
defaultRowHeight?: number;
|
|
234
|
+
/**
|
|
235
|
+
* Where the height of one line of cell text comes from, for both the
|
|
236
|
+
* painter and row auto-fit. `fontMetrics` (default) measures each font's
|
|
237
|
+
* bounding box (`fontBoundingBoxAscent + fontBoundingBoxDescent`) once
|
|
238
|
+
* and stacks lines with Excel's 2px leading, so wrapped rows fit like
|
|
239
|
+
* Excel's; `fixed` keeps the pre-#1141 `fontSize * 1.2` line box.
|
|
240
|
+
*/
|
|
241
|
+
lineHeightMode?: LineHeightMode;
|
|
234
242
|
/**
|
|
235
243
|
* Default column width
|
|
236
244
|
*/
|
|
@@ -1277,6 +1285,15 @@ export type CanvasGridProps<T extends CellData = CellData<any, any>> = {
|
|
|
1277
1285
|
* User tries to redo an action
|
|
1278
1286
|
*/
|
|
1279
1287
|
onRedo?(): void;
|
|
1288
|
+
/**
|
|
1289
|
+
* Run `action` with every write it issues recorded as ONE undo entry — the `batchHistory` of
|
|
1290
|
+
* `useSpreadsheetState` / `useSpreadsheetEngine`, so a host spreading its state into the grid
|
|
1291
|
+
* passes it for free. The grid uses it for gestures that are one step in Excel but several writes
|
|
1292
|
+
* here: Ctrl+Enter commits the active cell through `onChange` and spreads the entry into the rest
|
|
1293
|
+
* of the selection through `onChangeBatch`, one call per rectangle. Without it each write is its
|
|
1294
|
+
* own undo entry.
|
|
1295
|
+
*/
|
|
1296
|
+
batchHistory?<R>(action: () => R): R;
|
|
1280
1297
|
/**
|
|
1281
1298
|
* Callback when user paste a set of cells
|
|
1282
1299
|
* @param e Browser event
|