@rowsncolumns/rnc-engine 1.2.16 → 1.2.18
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/esm/index.d.ts +29 -6
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +29 -1
- package/dist/esm/use-engine-core.d.ts +30 -7
- package/dist/esm/use-engine-core.d.ts.map +1 -1
- package/dist/esm/use-engine-core.js +286 -45
- package/dist/esm/wasm/rnc_wasm.d.ts +7 -0
- package/dist/esm/wasm/rnc_wasm.js +35 -0
- package/dist/esm/wasm/rnc_wasm_bg.wasm +0 -0
- package/dist/esm/wasm/rnc_wasm_bg.wasm.d.ts +1 -0
- package/package.json +2 -2
package/dist/esm/index.d.ts
CHANGED
|
@@ -363,6 +363,11 @@ export interface SpreadsheetEngineLike {
|
|
|
363
363
|
* the JS `buildSearchRegex`. Optional: a store may omit it (the host then falls back to JS search,
|
|
364
364
|
* which only finds within loaded data). */
|
|
365
365
|
findAll?(sheetId: number, rangesJson: string, find: string, matchCase: boolean, wholeWord: boolean, useRegex: boolean): string;
|
|
366
|
+
/** `findAll` with a cap: JSON `{ matches: SheetCoordinate[], truncated: boolean }` — the first
|
|
367
|
+
* `limit` matches (row-major) and whether the scan stopped before the last one (`limit` 0 = no
|
|
368
|
+
* cap). The engine stops scanning at the cap instead of building every match for the host to
|
|
369
|
+
* drop. Optional: an older store without it is served by `findAll` + a slice. */
|
|
370
|
+
findAllBounded?(sheetId: number, rangesJson: string, find: string, matchCase: boolean, wholeWord: boolean, useRegex: boolean, limit: number): string;
|
|
366
371
|
/** Scratch-evaluate a formula at a cell — `ExtendedValue` JSON or `"null"`. Read-only (no
|
|
367
372
|
* install / commit / dirty marks); powers the cell editor's live result preview
|
|
368
373
|
* (`onRequestCalculate`). Optional: a store may omit it (the host then shows no preview). */
|
|
@@ -450,6 +455,19 @@ export interface CollabSync {
|
|
|
450
455
|
encodeDiffV1(remoteStateVector: Uint8Array): Uint8Array;
|
|
451
456
|
}
|
|
452
457
|
/** Options for {@link RncEngine.create}. */
|
|
458
|
+
/** Options of {@link RncEngine.findAll} / {@link RncEngine.findAllBounded}. */
|
|
459
|
+
export interface FindAllOptions {
|
|
460
|
+
matchCase?: boolean;
|
|
461
|
+
wholeWord?: boolean;
|
|
462
|
+
useRegex?: boolean;
|
|
463
|
+
/** Stop at this many matches (the first `limit` in row-major order); omitted or 0 = every match. */
|
|
464
|
+
limit?: number;
|
|
465
|
+
}
|
|
466
|
+
/** {@link RncEngine.findAllBounded}'s answer: the (capped) matches and whether the cap cut them short. */
|
|
467
|
+
export interface FindAllResult {
|
|
468
|
+
matches: SheetCoordinate[];
|
|
469
|
+
truncated: boolean;
|
|
470
|
+
}
|
|
453
471
|
export interface CreateEngineOptions {
|
|
454
472
|
/** Inject the backing wasm engine instead of the default single-user {@link SpreadsheetEngine}.
|
|
455
473
|
* Pass `() => new CollabSpreadsheetEngine()` for yhub/collab, or your own store. */
|
|
@@ -572,12 +590,17 @@ export declare class RncEngine {
|
|
|
572
590
|
* (the order next/prev navigation walks). The windowed UI's JS search only sees the loaded viewport,
|
|
573
591
|
* so matches OUTSIDE it must come from the engine, which holds the whole document. `ranges` restricts
|
|
574
592
|
* the scope (whole sheet when omitted). Match-case / whole-word (`\b`) / regex mirror the JS search.
|
|
575
|
-
*
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
}
|
|
593
|
+
* `options.limit` caps the result at the first `limit` matches — the engine stops scanning there
|
|
594
|
+
* rather than building every match for the caller to drop; use {@link findAllBounded} to also learn
|
|
595
|
+
* whether the cap cut the list short. Returns `[]` if the find is empty or the backing engine can't
|
|
596
|
+
* search. */
|
|
597
|
+
findAll(sheetId: number, find: string, options?: FindAllOptions, ranges?: SheetRange[]): SheetCoordinate[];
|
|
598
|
+
/** {@link findAll} with a cap: the first `options.limit` matches (row-major) and `truncated` — whether
|
|
599
|
+
* the scan stopped before the last match, so a find panel can say "10,000+" and a replace-all can
|
|
600
|
+
* refuse above its cap without counting every match. The engine stops at the cap (a bounded scan,
|
|
601
|
+
* work proportional to how far down the sheet the cap is reached); a store without `findAllBounded`
|
|
602
|
+
* is served by `findAll` + a slice. No `limit` (or 0) = no cap, `truncated` always `false`. */
|
|
603
|
+
findAllBounded(sheetId: number, find: string, options?: FindAllOptions, ranges?: SheetRange[]): FindAllResult;
|
|
581
604
|
/** Scratch-evaluate `formula` at `(rowIndex, columnIndex)` on `sheetId` — the cell editor's live
|
|
582
605
|
* result preview. Read-only: nothing is installed or committed, no dirty marks; a host
|
|
583
606
|
* custom-function call (`=AOP(...)`) evaluates to `#NAME?` with NO `customEvals` request (host
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -252,13 +252,41 @@ export class RncEngine {
|
|
|
252
252
|
* (the order next/prev navigation walks). The windowed UI's JS search only sees the loaded viewport,
|
|
253
253
|
* so matches OUTSIDE it must come from the engine, which holds the whole document. `ranges` restricts
|
|
254
254
|
* the scope (whole sheet when omitted). Match-case / whole-word (`\b`) / regex mirror the JS search.
|
|
255
|
-
*
|
|
255
|
+
* `options.limit` caps the result at the first `limit` matches — the engine stops scanning there
|
|
256
|
+
* rather than building every match for the caller to drop; use {@link findAllBounded} to also learn
|
|
257
|
+
* whether the cap cut the list short. Returns `[]` if the find is empty or the backing engine can't
|
|
258
|
+
* search. */
|
|
256
259
|
findAll(sheetId, find, options, ranges) {
|
|
260
|
+
if (options?.limit != null && options.limit > 0) {
|
|
261
|
+
return this.findAllBounded(sheetId, find, options, ranges).matches;
|
|
262
|
+
}
|
|
257
263
|
if (!find || !this.inner.findAll)
|
|
258
264
|
return [];
|
|
259
265
|
const json = this.inner.findAll(sheetId, ranges && ranges.length ? JSON.stringify(ranges) : "", find, options?.matchCase ?? false, options?.wholeWord ?? false, options?.useRegex ?? false);
|
|
260
266
|
return JSON.parse(json);
|
|
261
267
|
}
|
|
268
|
+
/** {@link findAll} with a cap: the first `options.limit` matches (row-major) and `truncated` — whether
|
|
269
|
+
* the scan stopped before the last match, so a find panel can say "10,000+" and a replace-all can
|
|
270
|
+
* refuse above its cap without counting every match. The engine stops at the cap (a bounded scan,
|
|
271
|
+
* work proportional to how far down the sheet the cap is reached); a store without `findAllBounded`
|
|
272
|
+
* is served by `findAll` + a slice. No `limit` (or 0) = no cap, `truncated` always `false`. */
|
|
273
|
+
findAllBounded(sheetId, find, options, ranges) {
|
|
274
|
+
const limit = options?.limit ?? 0;
|
|
275
|
+
if (!find)
|
|
276
|
+
return { matches: [], truncated: false };
|
|
277
|
+
const rangesJson = ranges && ranges.length ? JSON.stringify(ranges) : "";
|
|
278
|
+
if (limit > 0 && this.inner.findAllBounded) {
|
|
279
|
+
const json = this.inner.findAllBounded(sheetId, rangesJson, find, options?.matchCase ?? false, options?.wholeWord ?? false, options?.useRegex ?? false, limit);
|
|
280
|
+
return JSON.parse(json);
|
|
281
|
+
}
|
|
282
|
+
if (!this.inner.findAll)
|
|
283
|
+
return { matches: [], truncated: false };
|
|
284
|
+
const all = JSON.parse(this.inner.findAll(sheetId, rangesJson, find, options?.matchCase ?? false, options?.wholeWord ?? false, options?.useRegex ?? false));
|
|
285
|
+
if (limit > 0 && all.length > limit) {
|
|
286
|
+
return { matches: all.slice(0, limit), truncated: true };
|
|
287
|
+
}
|
|
288
|
+
return { matches: all, truncated: false };
|
|
289
|
+
}
|
|
262
290
|
/** Scratch-evaluate `formula` at `(rowIndex, columnIndex)` on `sheetId` — the cell editor's live
|
|
263
291
|
* result preview. Read-only: nothing is installed or committed, no dirty marks; a host
|
|
264
292
|
* custom-function call (`=AOP(...)`) evaluates to `#NAME?` with NO `customEvals` request (host
|
|
@@ -21,7 +21,7 @@ import { type useSpreadsheetState } from "@rowsncolumns/spreadsheet-state";
|
|
|
21
21
|
import { type FormulaLocale, type FormulaLocaleInput } from "@rowsncolumns/utils";
|
|
22
22
|
import { type EngineSpreadsheetHandlers } from "./command-handlers";
|
|
23
23
|
import { type EngineRenderState } from "./fold";
|
|
24
|
-
import { type Command, type CommitResult, type CustomCancel, type LoadDocument, RncEngine, type SpreadsheetEngineLike } from "./index";
|
|
24
|
+
import { type Command, type CommitResult, type CustomCancel, type FindAllOptions, type LoadDocument, RncEngine, type SpreadsheetEngineLike } from "./index";
|
|
25
25
|
export type { EngineSpreadsheetHandlers };
|
|
26
26
|
/** The reference hook's full return type — used to type the accessors/handlers this hook also exposes
|
|
27
27
|
* EXACTLY as `useSpreadsheetState` does (drop-in parity), with zero manual signature drift. Type-only,
|
|
@@ -178,6 +178,31 @@ export interface EngineSpreadsheet extends EngineRenderState, EngineSpreadsheetH
|
|
|
178
178
|
* decided NOT to apply the preview: the user rejected the suggestion, or the request failed. A
|
|
179
179
|
* preview the host does apply needs no call; the applying write retires it. */
|
|
180
180
|
clearStreamPreview: () => void;
|
|
181
|
+
/** HOLD cells at what the grid drew before the latest commit, so a host can reveal a batch of
|
|
182
|
+
* changes later (agent replay). Display-only: the document and engine hold the new values
|
|
183
|
+
* throughout, and only the painted accessors (`getCellData`, `getFormattedValue`,
|
|
184
|
+
* `getEffectiveValue`, `getEffectiveExtendedValue`, `getEffectiveFormat`, …) show the held copy.
|
|
185
|
+
* `getUserEnteredValue` / `getUserEnteredExtendedValue` (the editor and formula bar) ignore it.
|
|
186
|
+
* Precedence: held, then stream preview, then committed.
|
|
187
|
+
*
|
|
188
|
+
* The copy is the render state captured when the latest commit BEGAN, so call this right after
|
|
189
|
+
* `engine.applyRemoteUpdate` (synchronously is safest: a later local command or commit moves that
|
|
190
|
+
* point). A cell already held keeps its first copy. Skipped and not counted: a cell with an active
|
|
191
|
+
* stream preview (the chat preview wins), a cell outside the loaded window (windowed mode: it was
|
|
192
|
+
* never drawn), and every cell on a sheet the latest commit changed structurally. A loaded cell
|
|
193
|
+
* that was empty is held blank. Returns how many of `cells` are held after the call.
|
|
194
|
+
*
|
|
195
|
+
* Released by `releaseCells`, by any local command covering the cell (one without ranges, and
|
|
196
|
+
* undo / redo / load / import, release everything), and by a commit that moves the sheet's
|
|
197
|
+
* coordinates: `fullResyncSheets` or a changed merge set. A REMOTE row/column insert or delete is
|
|
198
|
+
* not detectable here (it arrives as a whole-document reprojection); the host calls
|
|
199
|
+
* `releaseCells(sheetId)` for it. */
|
|
200
|
+
holdCells: (sheetId: number, cells: ReadonlyArray<CellInterface>) => number;
|
|
201
|
+
/** Release held cells: no arguments releases everything, a `sheetId` alone releases that sheet,
|
|
202
|
+
* and `ranges` narrows it to the cells inside them. */
|
|
203
|
+
releaseCells: (sheetId?: number, ranges?: GridRange[]) => void;
|
|
204
|
+
/** Whether a cell is held (see `holdCells`). Reads the live hold set, not the rendered one. */
|
|
205
|
+
isCellHeld: (sheetId: number, rowIndex: number, columnIndex: number) => boolean;
|
|
181
206
|
undo: () => void;
|
|
182
207
|
redo: () => void;
|
|
183
208
|
/** Run `action` with every command it issues collected and applied afterwards as ONE `batch` —
|
|
@@ -309,13 +334,11 @@ export interface EngineSpreadsheet extends EngineRenderState, EngineSpreadsheetH
|
|
|
309
334
|
/**
|
|
310
335
|
* Off-window search: row-major coordinates of every cell on `sheetId` matching `query`. Backed by
|
|
311
336
|
* the engine (whole document), so it finds matches OUTSIDE the loaded viewport that the JS
|
|
312
|
-
* `useSearch` accessor-walk can't see. Wire as `useSearch`'s `findMatches`.
|
|
337
|
+
* `useSearch` accessor-walk can't see. Wire as `useSearch`'s `findMatches`. `options.limit` stops
|
|
338
|
+
* the engine's scan at that many matches (the first `limit` row-major); `ranges` narrows the scan
|
|
339
|
+
* (whole sheet when omitted).
|
|
313
340
|
*/
|
|
314
|
-
findAll: (sheetId: number, query: string, options?:
|
|
315
|
-
matchCase?: boolean;
|
|
316
|
-
wholeWord?: boolean;
|
|
317
|
-
useRegex?: boolean;
|
|
318
|
-
}) => SheetCoordinate[];
|
|
341
|
+
findAll: (sheetId: number, query: string, options?: FindAllOptions, ranges?: SheetRange[]) => SheetCoordinate[];
|
|
319
342
|
/** The FORMATTED display values of a range, in row-major order — chart domain (axis labels). */
|
|
320
343
|
getDomainValuesFromRange: (sheetRange: SheetRange, hiddenDimensionStrategy?: HIDDEN_DIMENSION_STRATEGY | null) => (string | undefined | null)[];
|
|
321
344
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-engine-core.d.ts","sourceRoot":"","sources":["../../src/use-engine-core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-engine-core.d.ts","sourceRoot":"","sources":["../../src/use-engine-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,7 +39,10 @@ const WINDOW_REFRESH_MARGIN_COLS = 2;
|
|
|
39
39
|
* the viewport, but every accessor answering that read (`getUserEnteredValue`, `getTextFormatRuns`,
|
|
40
40
|
* `getCellFormat`, …) resolves through the windowed `getCellData` — so an evicted active cell blanked
|
|
41
41
|
* the formula bar on scroll. A 1×1 range piggybacking on a read that's already crossing into wasm is
|
|
42
|
-
* free; skipped when the cell is inside the window or a frozen band.
|
|
42
|
+
* free; skipped when the cell is inside the window or a frozen band.
|
|
43
|
+
*
|
|
44
|
+
* Returns the ranges read beside their snapshots: they are what the render state holds, which
|
|
45
|
+
* `holdCells` needs to tell a blank cell from one that was never loaded. */
|
|
43
46
|
function readWindowWithFrozenBands(engine, w, frozenRowCount, frozenColumnCount, pinnedCell) {
|
|
44
47
|
const ranges = [w, ...frozenBandRanges(w, frozenRowCount, frozenColumnCount)];
|
|
45
48
|
if (pinnedCell) {
|
|
@@ -58,7 +61,10 @@ function readWindowWithFrozenBands(engine, w, frozenRowCount, frozenColumnCount,
|
|
|
58
61
|
});
|
|
59
62
|
}
|
|
60
63
|
}
|
|
61
|
-
return
|
|
64
|
+
return {
|
|
65
|
+
ranges,
|
|
66
|
+
snapshots: ranges.map((r) => engine.readWindow(r.sheetId, r.startRow, r.startCol, r.endRow, r.endCol)),
|
|
67
|
+
};
|
|
62
68
|
}
|
|
63
69
|
/** Display text for a cell whose custom-function eval is in flight — the same transient
|
|
64
70
|
* placeholder the JS engine's `SheetCell` shows (`LOADING_VALUE`). */
|
|
@@ -132,6 +138,81 @@ function previewFormulaCellData(engine, sheetId, rowIndex, columnIndex, text) {
|
|
|
132
138
|
return { ue: { fv: formula }, ev: { sv }, fv: sv };
|
|
133
139
|
return previewCellData(text);
|
|
134
140
|
}
|
|
141
|
+
/** Whether a cell's coordinates fall inside `range` — one rule for holds and their release. */
|
|
142
|
+
function gridRangeContains(range, rowIndex, columnIndex) {
|
|
143
|
+
return (rowIndex >= range.startRowIndex &&
|
|
144
|
+
rowIndex <= range.endRowIndex &&
|
|
145
|
+
columnIndex >= range.startColumnIndex &&
|
|
146
|
+
columnIndex <= range.endColumnIndex);
|
|
147
|
+
}
|
|
148
|
+
/** `cells` (keyed by {@link cellKey}) without the entries a LOCAL `command` covers: the retirement rule
|
|
149
|
+
* both display-only shadows share, the stream preview and held cells. A `batch` retires what each
|
|
150
|
+
* member covers, `change-theme` covers no cell, and a command without a sheet and `range`/`ranges`
|
|
151
|
+
* to scope it (a structural edit, a write at `coords`, …) retires everything. Returns `cells` itself
|
|
152
|
+
* when nothing is covered, so a caller can skip republishing. */
|
|
153
|
+
function withoutCoveredCells(cells, command) {
|
|
154
|
+
if (command.command === "batch") {
|
|
155
|
+
let next = cells;
|
|
156
|
+
for (const member of command.commands)
|
|
157
|
+
next = withoutCoveredCells(next, member);
|
|
158
|
+
return next;
|
|
159
|
+
}
|
|
160
|
+
const cmd = command;
|
|
161
|
+
if (!cells.size || cmd.command === "change-theme")
|
|
162
|
+
return cells;
|
|
163
|
+
const ranges = cmd.ranges ?? (cmd.range ? [cmd.range] : null);
|
|
164
|
+
if (!ranges?.length || cmd.sheetId == null)
|
|
165
|
+
return new Map();
|
|
166
|
+
let next = null;
|
|
167
|
+
for (const key of cells.keys()) {
|
|
168
|
+
const parsed = parseCellKey(key);
|
|
169
|
+
if (!parsed || parsed.sheetId !== cmd.sheetId)
|
|
170
|
+
continue;
|
|
171
|
+
if (ranges.some((r) => gridRangeContains(r, parsed.rowIndex, parsed.columnIndex))) {
|
|
172
|
+
next ??= new Map(cells);
|
|
173
|
+
next.delete(key);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return next ?? cells;
|
|
177
|
+
}
|
|
178
|
+
/** The effective format the grid drew for `key` in `state`: the cell's own style over its derived
|
|
179
|
+
* format, as `getEffectiveFormat` layers them. */
|
|
180
|
+
function drawnFormat(state, key) {
|
|
181
|
+
const own = state.cellStyles.get(key);
|
|
182
|
+
const derived = state.derivedFormats.get(key);
|
|
183
|
+
if (!derived)
|
|
184
|
+
return own;
|
|
185
|
+
if (!own)
|
|
186
|
+
return derived;
|
|
187
|
+
return { ...derived, ...own };
|
|
188
|
+
}
|
|
189
|
+
const mergeKey = (m) => `${m.startRowIndex}:${m.endRowIndex}:${m.startColumnIndex}:${m.endColumnIndex}`;
|
|
190
|
+
/** The sheets whose coordinates `commit` may have moved, so their held cells are no longer where they
|
|
191
|
+
* were drawn: every sheet in `fullResyncSheets` (a local row/column insert or delete, or the undo of
|
|
192
|
+
* one) and every sheet whose merge set changed against what was drawn (`drawn`). The merge check
|
|
193
|
+
* compares rather than trusting the channel, because a remote sync re-sends a sheet's WHOLE merge list
|
|
194
|
+
* on every commit; for the same reason a remote UNMERGE is not seen (the list just omits it).
|
|
195
|
+
*
|
|
196
|
+
* A remote row/column shift is not seen either: the engine answers it with a whole-document
|
|
197
|
+
* reprojection that carries neither signal, so the host releases that sheet itself. */
|
|
198
|
+
function structurallyChangedSheets(commit, drawn) {
|
|
199
|
+
const changed = new Set(commit.fullResyncSheets ?? []);
|
|
200
|
+
const drawnMerges = new Map();
|
|
201
|
+
for (const m of commit.merges ?? []) {
|
|
202
|
+
if (changed.has(m.sheetId))
|
|
203
|
+
continue;
|
|
204
|
+
let keys = drawnMerges.get(m.sheetId);
|
|
205
|
+
if (!keys) {
|
|
206
|
+
const sheet = drawn.find((s) => s.sheetId === m.sheetId);
|
|
207
|
+
keys = new Set((sheet?.merges ?? []).map(mergeKey));
|
|
208
|
+
drawnMerges.set(m.sheetId, keys);
|
|
209
|
+
}
|
|
210
|
+
const present = keys.has(mergeKey(m));
|
|
211
|
+
if (m.removed ? present : !present)
|
|
212
|
+
changed.add(m.sheetId);
|
|
213
|
+
}
|
|
214
|
+
return changed;
|
|
215
|
+
}
|
|
135
216
|
/** Seed for the parsed facets before the first commit (stable reference). */
|
|
136
217
|
const EMPTY_FACETS = {
|
|
137
218
|
conditionalFormats: [],
|
|
@@ -308,6 +389,56 @@ export function useEngineCore(options) {
|
|
|
308
389
|
// tiny top-left placeholder would leave everything past the first few columns unfetched until a
|
|
309
390
|
// manual scroll. Null until the first viewport report.
|
|
310
391
|
const lastViewportRef = useRef(null);
|
|
392
|
+
// Held cells (see `holdCells`). `loadedRangesRef` is the windowed reads the render state was built
|
|
393
|
+
// from (`null` when not windowed: every cell is resident), recorded at each read. `drawnRef` is
|
|
394
|
+
// what the last render drew, reassigned every render (a reference to the immutable state, no
|
|
395
|
+
// copy). The engine subscriber moves it into `commitBaseRef` when a commit BEGINS, so a hold
|
|
396
|
+
// copies the pre-commit cells even after the commit has rendered.
|
|
397
|
+
const loadedRangesRef = useRef(options.windowed ? [] : null);
|
|
398
|
+
const drawnRef = useRef({
|
|
399
|
+
state,
|
|
400
|
+
ranges: loadedRangesRef.current,
|
|
401
|
+
});
|
|
402
|
+
if (drawnRef.current.state !== state ||
|
|
403
|
+
drawnRef.current.ranges !== loadedRangesRef.current)
|
|
404
|
+
drawnRef.current = { state, ranges: loadedRangesRef.current };
|
|
405
|
+
const commitBaseRef = useRef(null);
|
|
406
|
+
// The held cells themselves: `null` whenever nothing is held, so the painted accessors are the
|
|
407
|
+
// plain ones (see `getCellData`). Immutable: each hold or release publishes a new map, and that
|
|
408
|
+
// identity change is what re-creates the accessors and clears the grid's cell cache.
|
|
409
|
+
const [heldCells, setHeldCells] = useState(null);
|
|
410
|
+
const heldCellsRef = useRef(null);
|
|
411
|
+
const publishHeldCells = useCallback((next) => {
|
|
412
|
+
const value = next?.size ? next : null;
|
|
413
|
+
if (value === heldCellsRef.current)
|
|
414
|
+
return;
|
|
415
|
+
heldCellsRef.current = value;
|
|
416
|
+
setHeldCells(value);
|
|
417
|
+
}, []);
|
|
418
|
+
const structuralSheetsOf = useCallback((base) => {
|
|
419
|
+
if (!base.commit)
|
|
420
|
+
return new Set();
|
|
421
|
+
base.structural ??= structurallyChangedSheets(base.commit, base.state.sheets);
|
|
422
|
+
return base.structural;
|
|
423
|
+
}, []);
|
|
424
|
+
// Release the holds on every sheet whose coordinates the commit that began from `base` moved.
|
|
425
|
+
const releaseHeldOnStructuralCommit = useCallback((base) => {
|
|
426
|
+
const held = heldCellsRef.current;
|
|
427
|
+
if (!held)
|
|
428
|
+
return;
|
|
429
|
+
const sheets = structuralSheetsOf(base);
|
|
430
|
+
if (!sheets.size)
|
|
431
|
+
return;
|
|
432
|
+
let next = null;
|
|
433
|
+
for (const [key, cell] of held) {
|
|
434
|
+
if (!sheets.has(cell.sheetId))
|
|
435
|
+
continue;
|
|
436
|
+
next ??= new Map(held);
|
|
437
|
+
next.delete(key);
|
|
438
|
+
}
|
|
439
|
+
if (next)
|
|
440
|
+
publishHeldCells(next);
|
|
441
|
+
}, [publishHeldCells, structuralSheetsOf]);
|
|
311
442
|
// Live refs for the windowed frozen-band reads (read inside stable callbacks + the mount effect).
|
|
312
443
|
// The host getter is authoritative (a collab host answers from its doc plane); the hook's own folded
|
|
313
444
|
// per-sheet counts are the fallback. Latest-ref pattern: reassigned every render.
|
|
@@ -337,7 +468,9 @@ export function useEngineCore(options) {
|
|
|
337
468
|
const readWindowedSnapshots = useCallback((engine, w) => {
|
|
338
469
|
const host = getWindowFrozenCountsRef.current?.(w.sheetId);
|
|
339
470
|
const sheet = stateSheetsRef.current.find((s) => s.sheetId === w.sheetId);
|
|
340
|
-
|
|
471
|
+
const { ranges, snapshots } = readWindowWithFrozenBands(engine, w, host?.frozenRowCount ?? sheet?.frozenRowCount ?? 0, host?.frozenColumnCount ?? sheet?.frozenColumnCount ?? 0, activeCellBySheetIdRef.current[w.sheetId] ?? DEFAULT_ACTIVE_CELL);
|
|
472
|
+
loadedRangesRef.current = ranges;
|
|
473
|
+
return snapshots;
|
|
341
474
|
}, []);
|
|
342
475
|
// Engine data extents `[sheetId, rowCount, colCount][]` → the grid's scroll extent in windowed mode
|
|
343
476
|
// (so it scrolls the full sheet while JS holds only the window). Empty until the engine reports them.
|
|
@@ -513,6 +646,16 @@ export function useEngineCore(options) {
|
|
|
513
646
|
setState((prev) => foldWindows(prev, snaps));
|
|
514
647
|
};
|
|
515
648
|
unsubscribe = engine.onChanges((commit) => {
|
|
649
|
+
// Before anything folds: what the grid drew when this commit began is what a `holdCells`
|
|
650
|
+
// right after it copies. Then release holds whose sheet this commit moved.
|
|
651
|
+
const drawn = drawnRef.current;
|
|
652
|
+
const base = {
|
|
653
|
+
state: drawn.state,
|
|
654
|
+
ranges: drawn.ranges,
|
|
655
|
+
commit,
|
|
656
|
+
};
|
|
657
|
+
commitBaseRef.current = base;
|
|
658
|
+
releaseHeldOnStructuralCommit(base);
|
|
516
659
|
// Reconcile the tab list with the engine's authoritative sheet set/order/titles after every
|
|
517
660
|
// commit — so create / rename / delete / reorder / hide / color update the tabs (and a new
|
|
518
661
|
// sheet renders). The engine owns lifecycle (it generates `create-sheet` ids), so this can't
|
|
@@ -675,6 +818,7 @@ export function useEngineCore(options) {
|
|
|
675
818
|
};
|
|
676
819
|
const w = windowRef.current;
|
|
677
820
|
const snap = engine.readWindow(w.sheetId, w.startRow, w.startCol, w.endRow, w.endCol);
|
|
821
|
+
loadedRangesRef.current = [w];
|
|
678
822
|
setState((prev) => foldWindow(prev, snap));
|
|
679
823
|
}
|
|
680
824
|
refreshExtents();
|
|
@@ -714,39 +858,11 @@ export function useEngineCore(options) {
|
|
|
714
858
|
const preview = streamPreviewRef.current;
|
|
715
859
|
if (!preview?.size)
|
|
716
860
|
return;
|
|
717
|
-
|
|
718
|
-
if (
|
|
719
|
-
for (const member of command.commands)
|
|
720
|
-
retireStreamPreviewForCommand(member);
|
|
721
|
-
return;
|
|
722
|
-
}
|
|
723
|
-
const cmd = command;
|
|
724
|
-
if (cmd.command === "change-theme")
|
|
725
|
-
return;
|
|
726
|
-
const ranges = cmd.ranges ?? (cmd.range ? [cmd.range] : null);
|
|
727
|
-
if (!ranges?.length || cmd.sheetId == null) {
|
|
728
|
-
streamPreviewRef.current = null;
|
|
729
|
-
setStreamPreview(null);
|
|
861
|
+
const next = withoutCoveredCells(preview, command);
|
|
862
|
+
if (next === preview)
|
|
730
863
|
return;
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
for (const key of Array.from(preview.keys())) {
|
|
734
|
-
const parsed = parseCellKey(key);
|
|
735
|
-
if (!parsed || parsed.sheetId !== cmd.sheetId)
|
|
736
|
-
continue;
|
|
737
|
-
const covered = ranges.some((r) => parsed.rowIndex >= r.startRowIndex &&
|
|
738
|
-
parsed.rowIndex <= r.endRowIndex &&
|
|
739
|
-
parsed.columnIndex >= r.startColumnIndex &&
|
|
740
|
-
parsed.columnIndex <= r.endColumnIndex);
|
|
741
|
-
if (covered) {
|
|
742
|
-
preview.delete(key);
|
|
743
|
-
removed = true;
|
|
744
|
-
}
|
|
745
|
-
}
|
|
746
|
-
if (!removed)
|
|
747
|
-
return;
|
|
748
|
-
streamPreviewRef.current = preview.size ? preview : null;
|
|
749
|
-
setStreamPreview(preview.size ? new Map(preview) : null);
|
|
864
|
+
streamPreviewRef.current = next.size ? next : null;
|
|
865
|
+
setStreamPreview(next.size ? new Map(next) : null);
|
|
750
866
|
}, []);
|
|
751
867
|
// The committed `fv` a preview is standing on. Read through a ref so the streaming callback
|
|
752
868
|
// (created once) always sees fresh values.
|
|
@@ -754,6 +870,89 @@ export function useEngineCore(options) {
|
|
|
754
870
|
sheetDataRef.current = state.sheetData;
|
|
755
871
|
const committedFvAt = useCallback((sheetId, rowIndex, columnIndex) => sheetDataRef.current?.[sheetId]?.[rowIndex]?.values?.[columnIndex]?.fv ??
|
|
756
872
|
undefined, []);
|
|
873
|
+
// Held cells (see `holdCells` on `EngineSpreadsheet`): a display-only copy of what the grid drew,
|
|
874
|
+
// taken from the render state captured when the latest commit began (`commitBaseRef`).
|
|
875
|
+
const holdCells = useCallback((sheetId, cells) => {
|
|
876
|
+
if (!cells.length)
|
|
877
|
+
return 0;
|
|
878
|
+
const base = commitBaseRef.current ?? drawnRef.current;
|
|
879
|
+
if (structuralSheetsOf(base).has(sheetId))
|
|
880
|
+
return 0;
|
|
881
|
+
const { state: drawn, ranges } = base;
|
|
882
|
+
const preview = streamPreviewRef.current;
|
|
883
|
+
const prev = heldCellsRef.current;
|
|
884
|
+
let next = null;
|
|
885
|
+
const counted = new Set();
|
|
886
|
+
for (const { rowIndex, columnIndex } of cells) {
|
|
887
|
+
const key = cellKey(sheetId, rowIndex, columnIndex);
|
|
888
|
+
if (counted.has(key))
|
|
889
|
+
continue;
|
|
890
|
+
// Already held: it is drawn from its held copy, so keep that one.
|
|
891
|
+
if (prev?.has(key)) {
|
|
892
|
+
counted.add(key);
|
|
893
|
+
continue;
|
|
894
|
+
}
|
|
895
|
+
// Windowed: a cell outside the reads the render state came from was never drawn.
|
|
896
|
+
if (ranges &&
|
|
897
|
+
!ranges.some((r) => r.sheetId === sheetId &&
|
|
898
|
+
rowIndex >= r.startRow &&
|
|
899
|
+
rowIndex <= r.endRow &&
|
|
900
|
+
columnIndex >= r.startCol &&
|
|
901
|
+
columnIndex <= r.endCol))
|
|
902
|
+
continue;
|
|
903
|
+
const data = drawn.sheetData?.[sheetId]?.[rowIndex]?.values?.[columnIndex] ??
|
|
904
|
+
undefined;
|
|
905
|
+
// An active stream preview (the same "until the real value lands" rule `getCellData` uses)
|
|
906
|
+
// wins: the chat preview hands straight over to the committed value.
|
|
907
|
+
const previewEntry = preview?.get(key);
|
|
908
|
+
if (previewEntry && data?.fv === previewEntry.basis)
|
|
909
|
+
continue;
|
|
910
|
+
next ??= new Map(prev ?? undefined);
|
|
911
|
+
next.set(key, {
|
|
912
|
+
sheetId,
|
|
913
|
+
rowIndex,
|
|
914
|
+
columnIndex,
|
|
915
|
+
data,
|
|
916
|
+
format: drawnFormat(drawn, key),
|
|
917
|
+
});
|
|
918
|
+
counted.add(key);
|
|
919
|
+
}
|
|
920
|
+
if (next)
|
|
921
|
+
publishHeldCells(next);
|
|
922
|
+
return counted.size;
|
|
923
|
+
}, [publishHeldCells, structuralSheetsOf]);
|
|
924
|
+
const releaseCells = useCallback((sheetId, ranges) => {
|
|
925
|
+
const held = heldCellsRef.current;
|
|
926
|
+
if (!held)
|
|
927
|
+
return;
|
|
928
|
+
if (sheetId == null) {
|
|
929
|
+
publishHeldCells(null);
|
|
930
|
+
return;
|
|
931
|
+
}
|
|
932
|
+
let next = null;
|
|
933
|
+
for (const [key, cell] of held) {
|
|
934
|
+
if (cell.sheetId !== sheetId)
|
|
935
|
+
continue;
|
|
936
|
+
if (ranges &&
|
|
937
|
+
!ranges.some((r) => gridRangeContains(r, cell.rowIndex, cell.columnIndex)))
|
|
938
|
+
continue;
|
|
939
|
+
next ??= new Map(held);
|
|
940
|
+
next.delete(key);
|
|
941
|
+
}
|
|
942
|
+
if (next)
|
|
943
|
+
publishHeldCells(next);
|
|
944
|
+
}, [publishHeldCells]);
|
|
945
|
+
const isCellHeld = useCallback((sheetId, rowIndex, columnIndex) => heldCellsRef.current?.has(cellKey(sheetId, rowIndex, columnIndex)) ??
|
|
946
|
+
false, []);
|
|
947
|
+
// A local command shows the user what they did: it releases the held cells it covers.
|
|
948
|
+
const releaseHeldForCommand = useCallback((command) => {
|
|
949
|
+
const held = heldCellsRef.current;
|
|
950
|
+
if (!held)
|
|
951
|
+
return;
|
|
952
|
+
const next = withoutCoveredCells(held, command);
|
|
953
|
+
if (next !== held)
|
|
954
|
+
publishHeldCells(next);
|
|
955
|
+
}, [publishHeldCells]);
|
|
757
956
|
// Commands issued while a `batchHistory` action runs, applied together when it returns.
|
|
758
957
|
const batchCommandsRef = useRef(null);
|
|
759
958
|
const onCommand = useCallback((command) => {
|
|
@@ -766,8 +965,9 @@ export function useEngineCore(options) {
|
|
|
766
965
|
}
|
|
767
966
|
// The host's apply (or any other local write) is the authority — retire the preview for the cells
|
|
768
967
|
// it covers in this same render, so the committed value replaces the previewed one with no blank
|
|
769
|
-
// frame in between.
|
|
968
|
+
// frame in between. Held cells it covers are released for the same reason.
|
|
770
969
|
retireStreamPreviewForCommand(command);
|
|
970
|
+
releaseHeldForCommand(command);
|
|
771
971
|
// Remember the last SINGLE formatting action so `onRepeatFormatting` can replay it onto a new
|
|
772
972
|
// target (a 2-D paint-format array is not a repeatable single action, so it's excluded).
|
|
773
973
|
if ((command.command === "change-formatting" &&
|
|
@@ -834,6 +1034,7 @@ export function useEngineCore(options) {
|
|
|
834
1034
|
return commit;
|
|
835
1035
|
}, [
|
|
836
1036
|
retireStreamPreviewForCommand,
|
|
1037
|
+
releaseHeldForCommand,
|
|
837
1038
|
showError,
|
|
838
1039
|
focusEmbedOrChart,
|
|
839
1040
|
setTableAutoExpansion,
|
|
@@ -947,6 +1148,8 @@ export function useEngineCore(options) {
|
|
|
947
1148
|
const engine = engineRef.current;
|
|
948
1149
|
if (!engine)
|
|
949
1150
|
return;
|
|
1151
|
+
// An undo rewrites cells no command range names: show them all.
|
|
1152
|
+
releaseCells();
|
|
950
1153
|
const prevDepth = engine.undoDepth();
|
|
951
1154
|
const commit = engine.undo();
|
|
952
1155
|
if (engine.undoDepth() < prevDepth) {
|
|
@@ -958,11 +1161,12 @@ export function useEngineCore(options) {
|
|
|
958
1161
|
}
|
|
959
1162
|
lastUndoDepth.current = engine.undoDepth();
|
|
960
1163
|
restoreChartSelection(commit);
|
|
961
|
-
}, [applyView, restoreChartSelection]);
|
|
1164
|
+
}, [applyView, restoreChartSelection, releaseCells]);
|
|
962
1165
|
const redo = useCallback(() => {
|
|
963
1166
|
const engine = engineRef.current;
|
|
964
1167
|
if (!engine)
|
|
965
1168
|
return;
|
|
1169
|
+
releaseCells();
|
|
966
1170
|
const prevRedoDepth = engine.redoDepth();
|
|
967
1171
|
const commit = engine.redo();
|
|
968
1172
|
if (engine.redoDepth() < prevRedoDepth) {
|
|
@@ -974,10 +1178,11 @@ export function useEngineCore(options) {
|
|
|
974
1178
|
}
|
|
975
1179
|
lastUndoDepth.current = engine.undoDepth();
|
|
976
1180
|
restoreChartSelection(commit);
|
|
977
|
-
}, [applyView, restoreChartSelection]);
|
|
1181
|
+
}, [applyView, restoreChartSelection, releaseCells]);
|
|
978
1182
|
const load = useCallback((document) => {
|
|
1183
|
+
releaseCells();
|
|
979
1184
|
engineRef.current?.load(document);
|
|
980
|
-
}, []);
|
|
1185
|
+
}, [releaseCells]);
|
|
981
1186
|
/**
|
|
982
1187
|
* Import an `.xlsx` workbook through the native Rust engine, REPLACING the current document (sheets,
|
|
983
1188
|
* cell data, facets, history) — not merging into it. Render state is cleared first so nothing from
|
|
@@ -996,6 +1201,12 @@ export function useEngineCore(options) {
|
|
|
996
1201
|
const commit = engine.importXlsx(bytes);
|
|
997
1202
|
if (!commit)
|
|
998
1203
|
return false;
|
|
1204
|
+
// A replaced document holds nothing from the old one.
|
|
1205
|
+
if (heldCellsRef.current) {
|
|
1206
|
+
heldCellsRef.current = null;
|
|
1207
|
+
setHeldCells(null);
|
|
1208
|
+
}
|
|
1209
|
+
commitBaseRef.current = null;
|
|
999
1210
|
const engineSheets = engine.sheets?.() ?? [];
|
|
1000
1211
|
const seedSheets = engineSheets.map((es) => ({
|
|
1001
1212
|
sheetId: es.sheetId,
|
|
@@ -1034,6 +1245,7 @@ export function useEngineCore(options) {
|
|
|
1034
1245
|
next = foldCommitStructuralOnly(next, commit);
|
|
1035
1246
|
if (windowRef.current) {
|
|
1036
1247
|
const w = windowRef.current;
|
|
1248
|
+
loadedRangesRef.current = [w];
|
|
1037
1249
|
next = foldWindow(next, engine.readWindow(w.sheetId, w.startRow, w.startCol, w.endRow, w.endCol));
|
|
1038
1250
|
}
|
|
1039
1251
|
}
|
|
@@ -1142,7 +1354,9 @@ export function useEngineCore(options) {
|
|
|
1142
1354
|
setSelectionsBySheetId(next);
|
|
1143
1355
|
}, []);
|
|
1144
1356
|
const { sheetData, cellStyles, derivedFormats, notes } = state;
|
|
1145
|
-
|
|
1357
|
+
// The cell beneath any hold: the stream preview, else the committed cell. What the editor and the
|
|
1358
|
+
// formula bar read (`getUserEnteredValue` / `getUserEnteredExtendedValue`).
|
|
1359
|
+
const getUnheldCellData = useCallback((sheetId, rowIndex, columnIndex) => {
|
|
1146
1360
|
const committed = sheetData?.[sheetId]?.[rowIndex]?.values?.[columnIndex] ?? undefined;
|
|
1147
1361
|
// A previewing stream shadows the committed cell — until the real value lands, which is any
|
|
1148
1362
|
// change to what was committed when the preview was painted (`basis`). That covers a local
|
|
@@ -1152,12 +1366,23 @@ export function useEngineCore(options) {
|
|
|
1152
1366
|
return preview.data;
|
|
1153
1367
|
return committed;
|
|
1154
1368
|
}, [sheetData, streamPreview]);
|
|
1369
|
+
// The painted cell: a held cell first (see `holdCells`). With nothing held this IS
|
|
1370
|
+
// `getUnheldCellData`, so the common case pays nothing; a hold or release swaps the identity, which
|
|
1371
|
+
// is what clears the grid's cell cache.
|
|
1372
|
+
const getCellData = useMemo(() => heldCells
|
|
1373
|
+
? (sheetId, rowIndex, columnIndex) => {
|
|
1374
|
+
const held = heldCells.get(cellKey(sheetId, rowIndex, columnIndex));
|
|
1375
|
+
return held
|
|
1376
|
+
? held.data
|
|
1377
|
+
: getUnheldCellData(sheetId, rowIndex, columnIndex);
|
|
1378
|
+
}
|
|
1379
|
+
: getUnheldCellData, [heldCells, getUnheldCellData]);
|
|
1155
1380
|
// Stable-identity cache for the user⊕derived merge: a 2-level `WeakMap<userFmt, WeakMap<derivedFmt,
|
|
1156
1381
|
// merged>>`, so the SAME merged object is returned across renders unless an input actually changes.
|
|
1157
1382
|
// Mirrors `use-sheet-properties`'s `getEffectiveFormat`, keeping the grid from re-rendering on
|
|
1158
1383
|
// identity churn. GC-friendly: keyed on the format objects themselves (no manual eviction).
|
|
1159
1384
|
const mergedFormatCache = useRef(new WeakMap());
|
|
1160
|
-
const
|
|
1385
|
+
const getUnheldEffectiveFormat = useCallback((sheetId, rowIndex, columnIndex) => {
|
|
1161
1386
|
const key = cellKey(sheetId, rowIndex, columnIndex);
|
|
1162
1387
|
// The cell's OWN consolidated style. Conditional formatting is NOT layered here — CanvasGrid
|
|
1163
1388
|
// computes it from the rules (`useConditionalFormatting`); CF overlays don't ride on the format.
|
|
@@ -1189,6 +1414,15 @@ export function useEngineCore(options) {
|
|
|
1189
1414
|
}
|
|
1190
1415
|
return merged;
|
|
1191
1416
|
}, [cellStyles, derivedFormats, streamPreview, sheetData]);
|
|
1417
|
+
// A held cell's drawn format first, under the same zero-cost rule as `getCellData`.
|
|
1418
|
+
const getEffectiveFormat = useMemo(() => heldCells
|
|
1419
|
+
? (sheetId, rowIndex, columnIndex) => {
|
|
1420
|
+
const held = heldCells.get(cellKey(sheetId, rowIndex, columnIndex));
|
|
1421
|
+
return held
|
|
1422
|
+
? held.format
|
|
1423
|
+
: getUnheldEffectiveFormat(sheetId, rowIndex, columnIndex);
|
|
1424
|
+
}
|
|
1425
|
+
: getUnheldEffectiveFormat, [heldCells, getUnheldEffectiveFormat]);
|
|
1192
1426
|
const getNote = useCallback((sheetId, rowIndex, columnIndex) => notes.get(cellKey(sheetId, rowIndex, columnIndex)), [notes]);
|
|
1193
1427
|
const getFormattedValue = useCallback((sheetId, rowIndex, columnIndex) => {
|
|
1194
1428
|
const cell = getCellData(sheetId, rowIndex, columnIndex);
|
|
@@ -1264,7 +1498,8 @@ export function useEngineCore(options) {
|
|
|
1264
1498
|
return ev;
|
|
1265
1499
|
}, [getCellData]);
|
|
1266
1500
|
const getUserEnteredValue = useCallback((sheetId, rowIndex, columnIndex) => {
|
|
1267
|
-
|
|
1501
|
+
// Ignores holds: the editor and formula bar open on the real value.
|
|
1502
|
+
const ue = getUnheldCellData(sheetId, rowIndex, columnIndex)?.ue;
|
|
1268
1503
|
if (!ue)
|
|
1269
1504
|
return undefined;
|
|
1270
1505
|
if (ue.fv != null)
|
|
@@ -1274,13 +1509,13 @@ export function useEngineCore(options) {
|
|
|
1274
1509
|
if (ue.bv != null)
|
|
1275
1510
|
return ue.bv ? "TRUE" : "FALSE";
|
|
1276
1511
|
return ue.sv ?? undefined;
|
|
1277
|
-
}, [
|
|
1512
|
+
}, [getUnheldCellData]);
|
|
1278
1513
|
const getHyperlink = useCallback((sheetId, rowIndex, columnIndex) => getCellData(sheetId, rowIndex, columnIndex)?.hyperlink, [getCellData]);
|
|
1279
1514
|
// ── Additional cell accessors (mirror useSheetProperties / useSpreadsheetState, typed via SS) ──
|
|
1280
1515
|
// Rich-text runs ride on the cell (`textFormatRuns`, emitted by the engine from the imported
|
|
1281
1516
|
// rich shared string). Surface them so the grid renders mixed in-cell formatting.
|
|
1282
1517
|
const getTextFormatRuns = useCallback((sheetId, rowIndex, columnIndex) => getCellData(sheetId, rowIndex, columnIndex)?.textFormatRuns, [getCellData]);
|
|
1283
|
-
const getUserEnteredExtendedValue = useCallback((sheetId, rowIndex, columnIndex) =>
|
|
1518
|
+
const getUserEnteredExtendedValue = useCallback((sheetId, rowIndex, columnIndex) => getUnheldCellData(sheetId, rowIndex, columnIndex)?.ue, [getUnheldCellData]);
|
|
1284
1519
|
const getUserEnteredFormat = useCallback((sheetId, rowIndex, columnIndex) => cellStyles.get(cellKey(sheetId, rowIndex, columnIndex)), [cellStyles]);
|
|
1285
1520
|
const getErrorValue = useCallback((sheetId, rowIndex, columnIndex) => {
|
|
1286
1521
|
const cell = getCellData(sheetId, rowIndex, columnIndex);
|
|
@@ -1412,7 +1647,7 @@ export function useEngineCore(options) {
|
|
|
1412
1647
|
* the engine (`RncEngine.findAll`), so it finds matches OUTSIDE the loaded viewport — which the JS
|
|
1413
1648
|
* `useSearch` (it only sees loaded cells) cannot. Wire this as `useSearch`'s `findMatches` so search,
|
|
1414
1649
|
* next/prev, counter, and highlighting all work over the full windowed document. */
|
|
1415
|
-
const findAll = useCallback((sheetId, query, options) => engineRef.current?.findAll(sheetId, query, options) ?? [], []);
|
|
1650
|
+
const findAll = useCallback((sheetId, query, options, ranges) => engineRef.current?.findAll(sheetId, query, options, ranges) ?? [], []);
|
|
1416
1651
|
const getSeriesValuesFromRange = useCallback((sheetRange, hiddenDimensionStrategy = "SKIP_HIDDEN_ROWS_AND_COLUMNS") => {
|
|
1417
1652
|
const engine = engineRef.current;
|
|
1418
1653
|
if (!engine)
|
|
@@ -2671,6 +2906,9 @@ export function useEngineCore(options) {
|
|
|
2671
2906
|
onRequestAddRows,
|
|
2672
2907
|
onChangeBatchStream,
|
|
2673
2908
|
clearStreamPreview,
|
|
2909
|
+
holdCells,
|
|
2910
|
+
releaseCells,
|
|
2911
|
+
isCellHeld,
|
|
2674
2912
|
onDeleteDataValidationRules,
|
|
2675
2913
|
onCopy,
|
|
2676
2914
|
onPaste,
|
|
@@ -2779,6 +3017,9 @@ export function useEngineCore(options) {
|
|
|
2779
3017
|
onUpdateSheet,
|
|
2780
3018
|
onChangeBatchStream,
|
|
2781
3019
|
clearStreamPreview,
|
|
3020
|
+
holdCells,
|
|
3021
|
+
releaseCells,
|
|
3022
|
+
isCellHeld,
|
|
2782
3023
|
onRequestAddRows,
|
|
2783
3024
|
onDeleteDataValidationRules,
|
|
2784
3025
|
onClearHistory,
|
|
@@ -191,6 +191,12 @@ export class SpreadsheetEngine {
|
|
|
191
191
|
*/
|
|
192
192
|
filterColors(sheet_id: number, col: number, start_row: number, end_row: number): string;
|
|
193
193
|
findAll(sheet_id: number, ranges_json: string, find: string, match_case: boolean, whole_word: boolean, use_regex: boolean): string;
|
|
194
|
+
/**
|
|
195
|
+
* `findAll` with a cap: JSON `{"matches": SheetCoordinate[], "truncated": bool}` — the first
|
|
196
|
+
* `limit` matches (row-major) and whether the scan stopped before the last one. `limit = 0`
|
|
197
|
+
* means no cap.
|
|
198
|
+
*/
|
|
199
|
+
findAllBounded(sheet_id: number, ranges_json: string, find: string, match_case: boolean, whole_word: boolean, use_regex: boolean, limit: number): string;
|
|
194
200
|
/**
|
|
195
201
|
* Every HOST-OWNED formula cell on a sheet — registered custom-function calls and dot
|
|
196
202
|
* accessors — as a `CellChange[]` JSON (`{sheetId,rowIndex,columnIndex,cell}`, verbatim cell),
|
|
@@ -336,6 +342,7 @@ export interface InitOutput {
|
|
|
336
342
|
readonly spreadsheetengine_exportXlsxWithOptions: (a: number, b: number, c: number) => [number, number, number, number];
|
|
337
343
|
readonly spreadsheetengine_filterColors: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
338
344
|
readonly spreadsheetengine_findAll: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number, number];
|
|
345
|
+
readonly spreadsheetengine_findAllBounded: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number, number, number];
|
|
339
346
|
readonly spreadsheetengine_hostOwnedCells: (a: number, b: number) => [number, number, number, number];
|
|
340
347
|
readonly spreadsheetengine_importXlsx: (a: number, b: number, c: number) => [number, number, number, number];
|
|
341
348
|
readonly spreadsheetengine_importXlsxWithPassword: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
@@ -816,6 +816,41 @@ export class SpreadsheetEngine {
|
|
|
816
816
|
wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
|
|
817
817
|
}
|
|
818
818
|
}
|
|
819
|
+
/**
|
|
820
|
+
* `findAll` with a cap: JSON `{"matches": SheetCoordinate[], "truncated": bool}` — the first
|
|
821
|
+
* `limit` matches (row-major) and whether the scan stopped before the last one. `limit = 0`
|
|
822
|
+
* means no cap.
|
|
823
|
+
* @param {number} sheet_id
|
|
824
|
+
* @param {string} ranges_json
|
|
825
|
+
* @param {string} find
|
|
826
|
+
* @param {boolean} match_case
|
|
827
|
+
* @param {boolean} whole_word
|
|
828
|
+
* @param {boolean} use_regex
|
|
829
|
+
* @param {number} limit
|
|
830
|
+
* @returns {string}
|
|
831
|
+
*/
|
|
832
|
+
findAllBounded(sheet_id, ranges_json, find, match_case, whole_word, use_regex, limit) {
|
|
833
|
+
let deferred4_0;
|
|
834
|
+
let deferred4_1;
|
|
835
|
+
try {
|
|
836
|
+
const ptr0 = passStringToWasm0(ranges_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
837
|
+
const len0 = WASM_VECTOR_LEN;
|
|
838
|
+
const ptr1 = passStringToWasm0(find, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
839
|
+
const len1 = WASM_VECTOR_LEN;
|
|
840
|
+
const ret = wasm.spreadsheetengine_findAllBounded(this.__wbg_ptr, sheet_id, ptr0, len0, ptr1, len1, match_case, whole_word, use_regex, limit);
|
|
841
|
+
var ptr3 = ret[0];
|
|
842
|
+
var len3 = ret[1];
|
|
843
|
+
if (ret[3]) {
|
|
844
|
+
ptr3 = 0; len3 = 0;
|
|
845
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
846
|
+
}
|
|
847
|
+
deferred4_0 = ptr3;
|
|
848
|
+
deferred4_1 = len3;
|
|
849
|
+
return getStringFromWasm0(ptr3, len3);
|
|
850
|
+
} finally {
|
|
851
|
+
wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
|
|
852
|
+
}
|
|
853
|
+
}
|
|
819
854
|
/**
|
|
820
855
|
* Every HOST-OWNED formula cell on a sheet — registered custom-function calls and dot
|
|
821
856
|
* accessors — as a `CellChange[]` JSON (`{sheetId,rowIndex,columnIndex,cell}`, verbatim cell),
|
|
Binary file
|
|
@@ -16,6 +16,7 @@ export const spreadsheetengine_exportXlsx: (a: number) => [number, number, numbe
|
|
|
16
16
|
export const spreadsheetengine_exportXlsxWithOptions: (a: number, b: number, c: number) => [number, number, number, number];
|
|
17
17
|
export const spreadsheetengine_filterColors: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
18
18
|
export const spreadsheetengine_findAll: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number, number];
|
|
19
|
+
export const spreadsheetengine_findAllBounded: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number, number, number];
|
|
19
20
|
export const spreadsheetengine_hostOwnedCells: (a: number, b: number) => [number, number, number, number];
|
|
20
21
|
export const spreadsheetengine_importXlsx: (a: number, b: number, c: number) => [number, number, number, number];
|
|
21
22
|
export const spreadsheetengine_importXlsxWithPassword: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rowsncolumns/rnc-engine",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.18",
|
|
4
4
|
"author": "Vinay M",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"description": "Typed JS/TS interop for the Rust→WASM spreadsheet calc engine (rnc-wasm). Ergonomic JSON-in/out wrapper over the wasm-bindgen surface: applyCommand(Command)→CommitResult, readWindow→WindowSnapshot, and Map<\"sheet!A1\",CellFormat> style folding. Pluggable backend — single-user `SpreadsheetEngine` (default) or collaborative `CollabSpreadsheetEngine` (Yjs sync) — plus the Option-B `useSpreadsheetEngine` React hook.",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@rowsncolumns/common-types": ">=5.3.3",
|
|
53
53
|
"@rowsncolumns/dag": ">=7.2.31",
|
|
54
54
|
"@rowsncolumns/grid": ">=13.2.35",
|
|
55
|
-
"@rowsncolumns/spreadsheet": ">=10.5.
|
|
55
|
+
"@rowsncolumns/spreadsheet": ">=10.5.2",
|
|
56
56
|
"@rowsncolumns/spreadsheet-state": ">=29.1.10",
|
|
57
57
|
"@rowsncolumns/toolkit": ">=24.5.14",
|
|
58
58
|
"@rowsncolumns/utils": ">=9.5.4",
|