@rowsncolumns/rnc-engine 1.1.8 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/command-handlers.d.ts +18 -1
- package/dist/esm/command-handlers.d.ts.map +1 -1
- package/dist/esm/command-handlers.js +65 -4
- package/dist/esm/index.d.ts +10 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +10 -0
- package/dist/esm/paste-special.d.ts +21 -4
- package/dist/esm/paste-special.d.ts.map +1 -1
- package/dist/esm/paste-special.js +54 -4
- package/dist/esm/sheet-fallback.d.ts +21 -0
- package/dist/esm/sheet-fallback.d.ts.map +1 -0
- package/dist/esm/sheet-fallback.js +33 -0
- package/dist/esm/use-engine-core.d.ts +6 -0
- package/dist/esm/use-engine-core.d.ts.map +1 -1
- package/dist/esm/use-engine-core.js +120 -46
- package/dist/esm/wasm/rnc_wasm.d.ts +53 -35
- package/dist/esm/wasm/rnc_wasm.js +64 -0
- package/dist/esm/wasm/rnc_wasm_bg.wasm +0 -0
- package/dist/esm/wasm/rnc_wasm_bg.wasm.d.ts +38 -35
- package/package.json +6 -6
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import type { CellInterface, Color, Direction, GridRange, SelectionArea, SheetRange, SortOrder } from "@rowsncolumns/common-types";
|
|
12
12
|
import type { AXIS, BandedDefinition, BandedRange, BorderLocation, BorderStyle, ColorFilterCriteria, ConditionType, ConditionValue, CreateTableOptions, EmbeddedChart, EmbeddedObject, OverlayToAnchor, ZOrderChange, FilterView, IconFilterCriteria, NamedRange, PivotTable, ProtectedRange, SelectionAttributes, Sheet, Slicer, SpreadsheetTheme, TableAutoExpansion, CalculatedColumnFill, TableTheme, TableView, TextFormatRun, BooleanCondition, FilterConditionJoin, CustomTableStyle } from "@rowsncolumns/spreadsheet";
|
|
13
|
-
import { type useSpreadsheetState } from "@rowsncolumns/spreadsheet-state";
|
|
13
|
+
import { type ImageViewport, type useSpreadsheetState } from "@rowsncolumns/spreadsheet-state";
|
|
14
14
|
import type { Command, CommandOf, CommandRejection, CommitResult } from "./index";
|
|
15
15
|
/** The reference hook's return type — used to borrow exact signatures (e.g. `onFillRange`) so the
|
|
16
16
|
* engine handlers are drop-in for what CanvasGrid passes. Type-only; erased at runtime. */
|
|
@@ -222,6 +222,23 @@ export type CreateCommandHandlersOptions = {
|
|
|
222
222
|
* column from a typed formula; `true` / `undefined` (the default) adds nothing.
|
|
223
223
|
*/
|
|
224
224
|
getAutoCalculatedColumns?: () => boolean | undefined;
|
|
225
|
+
/**
|
|
226
|
+
* Read the cursor on `sheetId` at emit time (`undefined` when the cursor is on another sheet).
|
|
227
|
+
* `sort-range` carries it as `activeCell` so the engine keys a one-click range sort on the column
|
|
228
|
+
* the user is standing in (Excel / Sheets), not the range's leftmost column.
|
|
229
|
+
*/
|
|
230
|
+
getActiveCell?: (sheetId: number) => CellInterface | undefined;
|
|
231
|
+
/**
|
|
232
|
+
* Read a floating object by id at emit time. `onInsertImage` with an `embedId` REPLACES that
|
|
233
|
+
* picture's image (`update-embed` carries the whole embed), so the handler needs the current one;
|
|
234
|
+
* absent / unknown id → a new picture is created under that id.
|
|
235
|
+
*/
|
|
236
|
+
getEmbed?: (embedId: EmbeddedObject["embedId"]) => EmbeddedObject | undefined;
|
|
237
|
+
/**
|
|
238
|
+
* The visible grid area (`CanvasGrid.getSheetDimensions()`), read at emit time: a picture
|
|
239
|
+
* inserted over the cells is fitted to it (natural size, scaled down to fit — Excel / Sheets).
|
|
240
|
+
*/
|
|
241
|
+
getSheetDimensions?: () => ImageViewport | undefined;
|
|
225
242
|
};
|
|
226
243
|
/**
|
|
227
244
|
* The error dialog `useEngineCore.onCommand` opens for a refusal — the same `useShowError` dialog
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-handlers.d.ts","sourceRoot":"","sources":["../../src/command-handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"command-handlers.d.ts","sourceRoot":"","sources":["../../src/command-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { STRUCTURAL_REFUSAL_MESSAGES, STRUCTURAL_REFUSAL_TITLE, } from "@rowsncolumns/spreadsheet-state";
|
|
2
|
-
import { error } from "@rowsncolumns/utils";
|
|
1
|
+
import { createImageEmbed, STRUCTURAL_REFUSAL_MESSAGES, STRUCTURAL_REFUSAL_TITLE, } from "@rowsncolumns/spreadsheet-state";
|
|
2
|
+
import { error, SHEET_PROTECTION_ERROR_TITLE } from "@rowsncolumns/utils";
|
|
3
3
|
/** Two-digit zero-pad for the ISO date/time literals below. */
|
|
4
4
|
const pad2 = (n) => String(n).padStart(2, "0");
|
|
5
5
|
/** The explicit "General" number format (Excel numFmtId 0). A nullish `numberFormat` patch means the
|
|
@@ -26,6 +26,16 @@ const normalizeFormatPatch = (cellFormat) => {
|
|
|
26
26
|
if ("numberFormat" in patch && patch.numberFormat == null) {
|
|
27
27
|
patch = { ...patch, numberFormat: { ...GENERAL_NUMBER_FORMAT } };
|
|
28
28
|
}
|
|
29
|
+
// No fill / Automatic font colour: the pickers send `undefined`. `""` is the engine's clear
|
|
30
|
+
// sentinel (`Color::is_clear`) — `CellFormat::merge` removes the colour instead of keeping it.
|
|
31
|
+
for (const key of ["backgroundColor", "foregroundColor"]) {
|
|
32
|
+
if (key in patch && patch[key] == null)
|
|
33
|
+
patch = { ...patch, [key]: "" };
|
|
34
|
+
}
|
|
35
|
+
const tf2 = patch.textFormat;
|
|
36
|
+
if (tf2 && "color" in tf2 && tf2.color == null) {
|
|
37
|
+
patch = { ...patch, textFormat: { ...tf2, color: "" } };
|
|
38
|
+
}
|
|
29
39
|
return patch;
|
|
30
40
|
};
|
|
31
41
|
/** Local calendar date as ISO `YYYY-MM-DD` — locale-independent, so the engine infers it as a date. */
|
|
@@ -56,6 +66,19 @@ export const rejectionDialog = (rejection) => {
|
|
|
56
66
|
case "invalid-defined-name":
|
|
57
67
|
case "duplicate-table-id":
|
|
58
68
|
return { title: "Error", message: rejection.message };
|
|
69
|
+
// A sheet rename to a title another sheet holds (case-insensitively — Excel's rule and the
|
|
70
|
+
// engine registry's), a title that breaks Excel's worksheet-name rules (`\ / ? * [ ] :`, >31
|
|
71
|
+
// characters, leading / trailing apostrophe, `History` — rowsncolumns/spreadsheet#939 U-01), or
|
|
72
|
+
// a delete that would leave no visible sheet — the legacy engine's `useOnRenameSheet` /
|
|
73
|
+
// `useOnCreateNewSheet` show the same text under "Error".
|
|
74
|
+
case "duplicate-sheet-name":
|
|
75
|
+
case "invalid-sheet-name":
|
|
76
|
+
case "last-visible-sheet":
|
|
77
|
+
return { title: "Error", message: rejection.message };
|
|
78
|
+
// Delete / Clear over a locked cell of a protected sheet (rowsncolumns/spreadsheet#939 U-35) —
|
|
79
|
+
// the legacy engine's `useOnDelete` shows Excel's text under the same protection title.
|
|
80
|
+
case "protected-sheet":
|
|
81
|
+
return { title: SHEET_PROTECTION_ERROR_TITLE, message: rejection.message };
|
|
59
82
|
default:
|
|
60
83
|
return null;
|
|
61
84
|
}
|
|
@@ -406,7 +429,16 @@ export function createCommandHandlers(sink, options = {}) {
|
|
|
406
429
|
onChangeSheetTabColor: (sheetId, color) => onCommand({ command: "change-sheet-tab-color", sheetId, color }),
|
|
407
430
|
// Sort & Filter
|
|
408
431
|
onSortColumn: (sheetId, sortedColumnIndex, sortOrder) => onCommand({ command: "sort-column", sheetId, sortedColumnIndex, sortOrder }),
|
|
409
|
-
onSortRange: (sheetId, selections, sortOrder) =>
|
|
432
|
+
onSortRange: (sheetId, selections, sortOrder) => {
|
|
433
|
+
const activeCell = options.getActiveCell?.(sheetId);
|
|
434
|
+
onCommand({
|
|
435
|
+
command: "sort-range",
|
|
436
|
+
sheetId,
|
|
437
|
+
...(activeCell ? { activeCell } : {}),
|
|
438
|
+
selections,
|
|
439
|
+
sortOrder,
|
|
440
|
+
});
|
|
441
|
+
},
|
|
410
442
|
onSortTable: ((sheetId, filter, dimensionIndexOrSpecs, sortOrder, options) => {
|
|
411
443
|
// Normalize both call forms into one ordered level list (primary first) — the same shape the
|
|
412
444
|
// legacy hook persists as `table.sortSpecs`. The engine sorts by every level and persists them.
|
|
@@ -502,7 +534,36 @@ export function createCommandHandlers(sink, options = {}) {
|
|
|
502
534
|
onUpdateNote: (sheetId, activeCell, note) => onCommand({ command: "update-note", sheetId, activeCell, note }),
|
|
503
535
|
onInsertLink: (sheetId, activeCell, selections, url, title) => onCommand({ command: "insert-link", sheetId, activeCell, selections, url, title }),
|
|
504
536
|
onRemoveLink: (sheetId, activeCell, selections) => onCommand({ command: "remove-link", sheetId, activeCell, selections }),
|
|
505
|
-
|
|
537
|
+
// "Insert image over cells" (the Excel / Sheets default) is a FLOATING picture — the lossless
|
|
538
|
+
// `create-embed` facet command, sized like the clipboard paste and the file drop
|
|
539
|
+
// (`createImageEmbed`); with an `embedId` it replaces that picture's image. Only the explicit
|
|
540
|
+
// in-cell placement reaches the engine's `insert-image` (which writes the cell's `imageUrl`).
|
|
541
|
+
onInsertImage: (sheetId, activeCell, imageUrl, width, height, insertOverCells, embedId) => {
|
|
542
|
+
if (!insertOverCells) {
|
|
543
|
+
onCommand({ command: "insert-image", sheetId, activeCell, imageUrl, width, height, insertOverCells, embedId });
|
|
544
|
+
return;
|
|
545
|
+
}
|
|
546
|
+
const existing = embedId != null ? options.getEmbed?.(embedId) : undefined;
|
|
547
|
+
if (existing) {
|
|
548
|
+
onCommand({
|
|
549
|
+
command: "update-embed",
|
|
550
|
+
embed: { ...existing, spec: { ...existing.spec, imageUrl } },
|
|
551
|
+
});
|
|
552
|
+
return;
|
|
553
|
+
}
|
|
554
|
+
onCommand({
|
|
555
|
+
command: "create-embed",
|
|
556
|
+
spec: createImageEmbed({
|
|
557
|
+
sheetId,
|
|
558
|
+
anchorCell: activeCell,
|
|
559
|
+
imageUrl,
|
|
560
|
+
width,
|
|
561
|
+
height,
|
|
562
|
+
viewport: options.getSheetDimensions?.(),
|
|
563
|
+
embedId: embedId ?? undefined,
|
|
564
|
+
}),
|
|
565
|
+
});
|
|
566
|
+
},
|
|
506
567
|
onInsertCheckbox: (sheetId, activeCell, selections) => onCommand({ command: "insert-checkbox", sheetId, activeCell, selections }),
|
|
507
568
|
// Comments (only the host-managed thread id rides on the cell; content is the host's)
|
|
508
569
|
onInsertComment: (sheetId, rowIndex, columnIndex, commentThreadId) => onCommand({ command: "insert-comment", sheetId, rowIndex, columnIndex, commentThreadId }),
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -385,6 +385,11 @@ export interface SpreadsheetEngineLike {
|
|
|
385
385
|
* the full sheet. Optional: present on the single-user + collab engines; a store may omit it (the
|
|
386
386
|
* windowed hook then falls back to the seeded sheet counts). */
|
|
387
387
|
sheetExtents?(): string;
|
|
388
|
+
/** Excel's *current region* around a 1-based cell as JSON `[top, left, bottom, right]` — the
|
|
389
|
+
* contiguous data block Ctrl/Cmd+A selects, computed over the FULL document (presence-only), so a
|
|
390
|
+
* windowed renderer gets the whole block and not just its resident rows. Optional: present on the
|
|
391
|
+
* single-user + collab engines. */
|
|
392
|
+
dataRegion?(sheetId: number, row: number, col: number): string;
|
|
388
393
|
/** Every HOST-OWNED formula cell on a sheet — the registered custom-function calls (`=AOP(…)`) and
|
|
389
394
|
* dot accessors (`=B7.field`) the store tracks as engine literals — as a `CellChange[]` JSON
|
|
390
395
|
* (`{sheetId,rowIndex,columnIndex,cell}`, verbatim cell), row-major. O(host-owned cells) via the
|
|
@@ -607,6 +612,11 @@ export declare class RncEngine {
|
|
|
607
612
|
* the grid's scroll extent to this (so it holds only the visible viewport in JS yet scrolls the
|
|
608
613
|
* full sheet). Returns `[]` if the backing engine doesn't expose extents. */
|
|
609
614
|
sheetExtents(): Array<[number, number, number]>;
|
|
615
|
+
/** Excel's *current region* around a 1-based cell — `[top, left, bottom, right]`, the contiguous
|
|
616
|
+
* data block Ctrl/Cmd+A selects — computed over the FULL document, so a windowed renderer gets the
|
|
617
|
+
* whole block rather than the part resident in JS. `undefined` if the backing engine doesn't
|
|
618
|
+
* expose it (the grid then falls back to walking its own values). */
|
|
619
|
+
dataRegion(sheetId: number, row: number, col: number): [number, number, number, number] | undefined;
|
|
610
620
|
/** Every HOST-OWNED formula cell on `sheetId` — registered custom-function calls (`=AOP(…)`) and
|
|
611
621
|
* dot accessors (`=B7.field`) — as {@link WindowCell}s (the verbatim `cell` carries the formula on
|
|
612
622
|
* `cell.ue.fv` and the persisted result on `cell.ev` / `formatted`), row-major, in ONE index-backed
|
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
|
@@ -312,6 +312,16 @@ export class RncEngine {
|
|
|
312
312
|
return [];
|
|
313
313
|
return JSON.parse(json);
|
|
314
314
|
}
|
|
315
|
+
/** Excel's *current region* around a 1-based cell — `[top, left, bottom, right]`, the contiguous
|
|
316
|
+
* data block Ctrl/Cmd+A selects — computed over the FULL document, so a windowed renderer gets the
|
|
317
|
+
* whole block rather than the part resident in JS. `undefined` if the backing engine doesn't
|
|
318
|
+
* expose it (the grid then falls back to walking its own values). */
|
|
319
|
+
dataRegion(sheetId, row, col) {
|
|
320
|
+
const json = this.inner.dataRegion?.(sheetId, row, col);
|
|
321
|
+
if (json == null)
|
|
322
|
+
return undefined;
|
|
323
|
+
return JSON.parse(json);
|
|
324
|
+
}
|
|
315
325
|
/** Every HOST-OWNED formula cell on `sheetId` — registered custom-function calls (`=AOP(…)`) and
|
|
316
326
|
* dot accessors (`=B7.field`) — as {@link WindowCell}s (the verbatim `cell` carries the formula on
|
|
317
327
|
* `cell.ue.fv` and the persisted result on `cell.ev` / `formatted`), row-major, in ONE index-backed
|
|
@@ -1,10 +1,18 @@
|
|
|
1
|
-
import type { TextFormatRun } from "@rowsncolumns/common-types";
|
|
1
|
+
import type { ExtendedValue, TextFormatRun } from "@rowsncolumns/common-types";
|
|
2
2
|
import type { CellInterface } from "@rowsncolumns/grid";
|
|
3
3
|
import type { CellData, CellFormat, StyleReference } from "@rowsncolumns/spreadsheet";
|
|
4
4
|
import { type ResolvedPasteSpecialOptions } from "@rowsncolumns/spreadsheet-state";
|
|
5
5
|
type ClipboardCell = CellData | null | undefined;
|
|
6
6
|
/** One cell of the engine's `paste` command payload (`commands.ts` → `paste.cells`). */
|
|
7
7
|
export type EnginePasteCell = {
|
|
8
|
+
/**
|
|
9
|
+
* The clipboard cell's TYPED user-entered value, one short key (`sv` / `nv` /
|
|
10
|
+
* `bv` / `fv` / `ev`). The engine lands it with that type, so a copied text
|
|
11
|
+
* `0123` / `1/2` / `TRUE` / `=x` stays text instead of being re-inferred as if
|
|
12
|
+
* typed (Excel keeps each cell's stored type on copy / cut / paste-values).
|
|
13
|
+
*/
|
|
14
|
+
ue?: ExtendedValue;
|
|
15
|
+
/** `ue` as a string — the inference fallback for an engine build predating `ue`. */
|
|
8
16
|
value: string | null;
|
|
9
17
|
format?: CellFormat;
|
|
10
18
|
hyperlink?: string;
|
|
@@ -12,9 +20,18 @@ export type EnginePasteCell = {
|
|
|
12
20
|
};
|
|
13
21
|
/**
|
|
14
22
|
* Map one parsed clipboard cell to the engine's `paste` cell: the user-entered
|
|
15
|
-
* value
|
|
16
|
-
*
|
|
17
|
-
* which owns styles inline), the
|
|
23
|
+
* value typed (`ue`, so text stays text) and as text (`value` — formula text
|
|
24
|
+
* wins, else the literal; `String(0)` / `"FALSE"` survive), the inline format
|
|
25
|
+
* (a `StyleReference` can't cross to the engine, which owns styles inline), the
|
|
26
|
+
* hyperlink target, and the rich-text runs.
|
|
27
|
+
*
|
|
28
|
+
* Every clipboard source arrives here already typed: a same-document copy keeps
|
|
29
|
+
* the source `ue` through the `application/json` clipboard, and a foreign
|
|
30
|
+
* text/plain or text/html paste was inferred like typing by
|
|
31
|
+
* `generateDataFromClipboard` (`0123` → 123 there, as in Excel). The engine
|
|
32
|
+
* must therefore not infer again — before `ue` was carried, a copied text
|
|
33
|
+
* `0123` landed as 123, `1/2` as a date, `TRUE` as a boolean and a label `=x`
|
|
34
|
+
* as a formula (rowsncolumns/spreadsheet#939 S-01).
|
|
18
35
|
*
|
|
19
36
|
* Runs ride on the clipboard cell as `tf` (the spreadsheet-state clipboard
|
|
20
37
|
* shape — a rich shared string or the HTML converter's output) or as
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paste-special.d.ts","sourceRoot":"","sources":["../../src/paste-special.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"paste-special.d.ts","sourceRoot":"","sources":["../../src/paste-special.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,cAAc,EACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAIL,KAAK,2BAA2B,EACjC,MAAM,iCAAiC,CAAC;AAYzC,KAAK,aAAa,GAAG,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;AAEjD,wFAAwF;AACxF,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;;OAKG;IACH,EAAE,CAAC,EAAE,aAAa,CAAC;IACnB,oFAAoF;IACpF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC,CAAC;AAuCF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,aAAa,KAClB,eAAe,GAAG,IAiCpB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAA;CAAE,CAAC;AAEvE,eAAO,MAAM,kBAAkB,GAC7B,MAAM,aAAa,GAAG,gBAAgB,KACrC,IAAI,IAAI,gBACqE,CAAC;AAEjF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,WAAW,CACT,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/B,oBAAoB,CAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,UAAU,GAAG,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC;CACnD,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,wBAAwB,GACnC,SAAS,aAAa,EAAE,EAAE,EAC1B,QAAQ,aAAa,EACrB,SAAS,MAAM,EACf,SAAS,2BAA2B,EACpC,QAAQ,6BAA6B,EACrC,SAAS,MAAM,KACd,CAAC,aAAa,GAAG,gBAAgB,CAAC,EAAE,EA4BtC,CAAC"}
|
|
@@ -1,10 +1,58 @@
|
|
|
1
1
|
import { applyPasteOperation, isBlankClipboardCell, isStyleReference, } from "@rowsncolumns/spreadsheet-state";
|
|
2
|
-
import { getCellUserEnteredFormat, getCellUserEnteredValue, getExtendedValueBool, getExtendedValueFormula, getExtendedValueNumber, getExtendedValueString, } from "@rowsncolumns/utils";
|
|
2
|
+
import { getCellEffectiveValue, getCellUserEnteredFormat, getCellUserEnteredValue, getExtendedValueBool, getExtendedValueError, getExtendedValueFormula, getExtendedValueNumber, getExtendedValueString, } from "@rowsncolumns/utils";
|
|
3
|
+
const isErrorValue = (e) => !!e && typeof e === "object" && typeof e.message === "string";
|
|
4
|
+
/**
|
|
5
|
+
* The clipboard cell's value as ONE typed short key, or `undefined` for a blank.
|
|
6
|
+
* A formula is always `ue.fv`. A literal's type comes from its effective value
|
|
7
|
+
* when it has one: the JS `SheetCell` keeps the entered text in `ue.sv` for every
|
|
8
|
+
* literal and the typed result in `ev` — `{ sv: "20" }` + `{ nv: 20 }` for a
|
|
9
|
+
* number (an inferred plain-text paste, a Paste Special operation result, a
|
|
10
|
+
* values-only paste of a formula), `{ bv }` for a boolean, `{ sv }` for text —
|
|
11
|
+
* while an engine-copied cell carries the same type in both. Without an `ev`
|
|
12
|
+
* the `ue` kind stands, so a text `0123` is `{ sv: "0123" }`.
|
|
13
|
+
*/
|
|
14
|
+
const typedUserEnteredValue = (ue, ev) => {
|
|
15
|
+
const formula = getExtendedValueFormula(ue);
|
|
16
|
+
if (formula != null)
|
|
17
|
+
return { fv: formula };
|
|
18
|
+
const evNum = getExtendedValueNumber(ev);
|
|
19
|
+
if (evNum != null)
|
|
20
|
+
return { nv: evNum };
|
|
21
|
+
const evBool = getExtendedValueBool(ev);
|
|
22
|
+
if (evBool != null)
|
|
23
|
+
return { bv: evBool };
|
|
24
|
+
const evError = getExtendedValueError(ev);
|
|
25
|
+
if (isErrorValue(evError))
|
|
26
|
+
return { ev: evError };
|
|
27
|
+
const str = getExtendedValueString(ue);
|
|
28
|
+
if (str != null)
|
|
29
|
+
return { sv: str };
|
|
30
|
+
const num = getExtendedValueNumber(ue);
|
|
31
|
+
if (num != null)
|
|
32
|
+
return { nv: num };
|
|
33
|
+
const bool = getExtendedValueBool(ue);
|
|
34
|
+
if (bool != null)
|
|
35
|
+
return { bv: bool };
|
|
36
|
+
const error = getExtendedValueError(ue);
|
|
37
|
+
if (isErrorValue(error))
|
|
38
|
+
return { ev: error };
|
|
39
|
+
const evStr = getExtendedValueString(ev);
|
|
40
|
+
return evStr != null ? { sv: evStr } : undefined;
|
|
41
|
+
};
|
|
3
42
|
/**
|
|
4
43
|
* Map one parsed clipboard cell to the engine's `paste` cell: the user-entered
|
|
5
|
-
* value
|
|
6
|
-
*
|
|
7
|
-
* which owns styles inline), the
|
|
44
|
+
* value typed (`ue`, so text stays text) and as text (`value` — formula text
|
|
45
|
+
* wins, else the literal; `String(0)` / `"FALSE"` survive), the inline format
|
|
46
|
+
* (a `StyleReference` can't cross to the engine, which owns styles inline), the
|
|
47
|
+
* hyperlink target, and the rich-text runs.
|
|
48
|
+
*
|
|
49
|
+
* Every clipboard source arrives here already typed: a same-document copy keeps
|
|
50
|
+
* the source `ue` through the `application/json` clipboard, and a foreign
|
|
51
|
+
* text/plain or text/html paste was inferred like typing by
|
|
52
|
+
* `generateDataFromClipboard` (`0123` → 123 there, as in Excel). The engine
|
|
53
|
+
* must therefore not infer again — before `ue` was carried, a copied text
|
|
54
|
+
* `0123` landed as 123, `1/2` as a date, `TRUE` as a boolean and a label `=x`
|
|
55
|
+
* as a formula (rowsncolumns/spreadsheet#939 S-01).
|
|
8
56
|
*
|
|
9
57
|
* Runs ride on the clipboard cell as `tf` (the spreadsheet-state clipboard
|
|
10
58
|
* shape — a rich shared string or the HTML converter's output) or as
|
|
@@ -21,6 +69,7 @@ export const clipboardCellToPasteCell = (cell) => {
|
|
|
21
69
|
const value = getExtendedValueFormula(ue) ??
|
|
22
70
|
getExtendedValueString(ue) ??
|
|
23
71
|
(num != null ? String(num) : bool != null ? (bool ? "TRUE" : "FALSE") : null);
|
|
72
|
+
const typed = typedUserEnteredValue(ue, getCellEffectiveValue(cell));
|
|
24
73
|
const fmt = getCellUserEnteredFormat(cell);
|
|
25
74
|
const format = fmt && !isStyleReference(fmt) ? fmt : undefined;
|
|
26
75
|
const hl = cell.hyperlink;
|
|
@@ -35,6 +84,7 @@ export const clipboardCellToPasteCell = (cell) => {
|
|
|
35
84
|
cell.textFormatRuns;
|
|
36
85
|
const textFormatRuns = Array.isArray(runs) && runs.length ? runs.map((run) => ({ ...run })) : undefined;
|
|
37
86
|
return {
|
|
87
|
+
...(typed ? { ue: typed } : {}),
|
|
38
88
|
value,
|
|
39
89
|
format,
|
|
40
90
|
hyperlink,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** The subset of a sheet record the active-sheet fallback reads — satisfied by both the hook's
|
|
2
|
+
* rendered `Sheet[]` and the engine's authoritative `EngineSheet[]`. */
|
|
3
|
+
export interface FallbackSheetLike {
|
|
4
|
+
sheetId: number;
|
|
5
|
+
hidden?: boolean | null;
|
|
6
|
+
/** 0-based tab order; sheets without one keep their array position. */
|
|
7
|
+
index?: number | null;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Which sheet becomes active when the active sheet is deleted — Excel / Google Sheets behavior:
|
|
11
|
+
* the visible tab to the LEFT of the deleted one, else the visible tab to its right, else the
|
|
12
|
+
* first remaining visible sheet, else whatever remains. `previous` is the tab order as it was
|
|
13
|
+
* BEFORE the delete (it still lists `deletedSheetId`); `remaining` is the engine's authoritative
|
|
14
|
+
* post-delete set. Sheets in `previous` that no longer exist (a multi-sheet delete) are skipped.
|
|
15
|
+
*/
|
|
16
|
+
export declare function fallbackSheetAfterDelete({ previous, remaining, deletedSheetId, }: {
|
|
17
|
+
previous: readonly FallbackSheetLike[];
|
|
18
|
+
remaining: readonly FallbackSheetLike[];
|
|
19
|
+
deletedSheetId: number;
|
|
20
|
+
}): number;
|
|
21
|
+
//# sourceMappingURL=sheet-fallback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sheet-fallback.d.ts","sourceRoot":"","sources":["../../src/sheet-fallback.ts"],"names":[],"mappings":"AAAA;wEACwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,QAAQ,EACR,SAAS,EACT,cAAc,GACf,EAAE;IACD,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACxC,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CAuBT"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which sheet becomes active when the active sheet is deleted — Excel / Google Sheets behavior:
|
|
3
|
+
* the visible tab to the LEFT of the deleted one, else the visible tab to its right, else the
|
|
4
|
+
* first remaining visible sheet, else whatever remains. `previous` is the tab order as it was
|
|
5
|
+
* BEFORE the delete (it still lists `deletedSheetId`); `remaining` is the engine's authoritative
|
|
6
|
+
* post-delete set. Sheets in `previous` that no longer exist (a multi-sheet delete) are skipped.
|
|
7
|
+
*/
|
|
8
|
+
export function fallbackSheetAfterDelete({ previous, remaining, deletedSheetId, }) {
|
|
9
|
+
const remainingById = new Map(remaining.map((sheet) => [sheet.sheetId, sheet]));
|
|
10
|
+
const ordered = previous
|
|
11
|
+
.map((sheet, position) => ({ sheet, order: sheet.index ?? position }))
|
|
12
|
+
.sort((a, b) => a.order - b.order)
|
|
13
|
+
.map(({ sheet }) => sheet);
|
|
14
|
+
const deletedAt = ordered.findIndex((sheet) => sheet.sheetId === deletedSheetId);
|
|
15
|
+
const visibleRemaining = (sheet) => {
|
|
16
|
+
const live = remainingById.get(sheet.sheetId);
|
|
17
|
+
return live && !live.hidden ? live.sheetId : undefined;
|
|
18
|
+
};
|
|
19
|
+
if (deletedAt !== -1) {
|
|
20
|
+
for (let i = deletedAt - 1; i >= 0; i -= 1) {
|
|
21
|
+
const id = visibleRemaining(ordered[i]);
|
|
22
|
+
if (id !== undefined)
|
|
23
|
+
return id;
|
|
24
|
+
}
|
|
25
|
+
for (let i = deletedAt + 1; i < ordered.length; i += 1) {
|
|
26
|
+
const id = visibleRemaining(ordered[i]);
|
|
27
|
+
if (id !== undefined)
|
|
28
|
+
return id;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const firstVisible = remaining.find((sheet) => !sheet.hidden);
|
|
32
|
+
return (firstVisible ?? remaining[0]).sheetId;
|
|
33
|
+
}
|
|
@@ -285,6 +285,12 @@ export interface EngineSpreadsheet extends EngineRenderState, EngineSpreadsheetH
|
|
|
285
285
|
getSheetRowCount: (sheetId: number) => number;
|
|
286
286
|
getSheetColumnCount: (sheetId: number) => number;
|
|
287
287
|
getDataRowCount: (sheetId?: number) => number | undefined;
|
|
288
|
+
/**
|
|
289
|
+
* Excel's *current region* around `cell` — the contiguous data block Ctrl/Cmd+A selects — read
|
|
290
|
+
* from the engine's FULL document (a presence-only pass), so a windowed grid selects the whole
|
|
291
|
+
* block and not just the rows resident in JS. `undefined` when the engine doesn't expose it.
|
|
292
|
+
*/
|
|
293
|
+
getDataRegion: (sheetId: number, cell: CellInterface) => GridRange | undefined;
|
|
288
294
|
/**
|
|
289
295
|
* The effective values of a range, in row-major order — for chart series. Reads the FULL document
|
|
290
296
|
* from the engine (off-window-safe), not the windowed render state. Synchronous (in-process WASM).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-engine-core.d.ts","sourceRoot":"","sources":["../../src/use-engine-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,aAAa,EACb,QAAQ,EACR,SAAS,EACT,cAAc,EACd,aAAa,EACb,eAAe,EACf,UAAU,EACX,MAAM,4BAA4B,CAAC;AAYpC,OAAO,EACL,KAAK,aAAa,EAIlB,KAAK,qBAAqB,EAI1B,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EAGnB,KAAK,yBAAyB,EAG9B,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"use-engine-core.d.ts","sourceRoot":"","sources":["../../src/use-engine-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
// Lightweight dependency-graph NODE classes (data holders — NOT the JS calculator) used to shape the
|
|
2
2
|
// real `getPrecedents`/`getDependents` results, which the engine now backs with actual graph data.
|
|
3
3
|
import { CellNode, CellRangeNode, isCellCoordinate, isCellNode, makeKey, } from "@rowsncolumns/dag";
|
|
4
|
-
import { DEFAULT_ACTIVE_CELL, DEFAULT_ARRAY, defaultSpreadsheetTheme, getBandedCells, getInitialActiveSheetId, ICON_SET_COLORS, ICON_SET_GLYPHS, useFocusEmbedOrChart, useFonts, useSetTableAutoExpansion, useSetCalculatedColumnFill, } from "@rowsncolumns/spreadsheet";
|
|
5
|
-
import { applyAdvancedFilterPlan, applySubtotalPlan, CellXfsRegistry, collectPaintMerges, generateDataFromClipboard, getBandedCellFormat, layerBandedFormat, paintSourceForActiveCell, pickFormula, pickValue, planAdvancedFilter, planSubtotals, resolvePasteSpecialOptions, SharedStringRegistry, spreadMergeAnchorFormats, tilePaintMerges, transpose, useOnCopy, previewTableStyle, useOnTraceDependentsPrecedents, useShowError, } from "@rowsncolumns/spreadsheet-state";
|
|
4
|
+
import { DEFAULT_ACTIVE_CELL, DEFAULT_ARRAY, defaultSpreadsheetTheme, getBandedCells, getInitialActiveSheetId, ICON_SET_COLORS, ICON_SET_GLYPHS, useFocusEmbedOrChart, useFonts, useGetSheetDimensions, useSetTableAutoExpansion, useSetCalculatedColumnFill, } from "@rowsncolumns/spreadsheet";
|
|
5
|
+
import { applyAdvancedFilterPlan, applySubtotalPlan, CellXfsRegistry, collectPaintMerges, generateDataFromClipboard, getBandedCellFormat, layerBandedFormat, paintSourceForActiveCell, pickFormula, pickValue, planAdvancedFilter, planSubtotals, resolvePasteSpecialOptions, SharedStringRegistry, spreadMergeAnchorFormats, tilePaintMerges, transpose, useOnCopy, previewTableStyle, useOnTraceDependentsPrecedents, useShowError, CIRCULAR_REFERENCE_WARNING_TITLE, CircularReferenceTracker, formatCircularReferenceWarning, } from "@rowsncolumns/spreadsheet-state";
|
|
6
6
|
import { getFormulaLocale, normalizeExternalUrl, resolveDefaultHorizontalAlignment, } from "@rowsncolumns/utils";
|
|
7
7
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
8
8
|
import { createCommandHandlers, rejectionDialog, } from "./command-handlers";
|
|
9
9
|
import { emptyRenderState, foldCommit, foldCommitStructuralOnly, foldWindow, foldWindows, frozenBandRanges, reconcileSheets, } from "./fold";
|
|
10
10
|
import { RncEngine, } from "./index";
|
|
11
11
|
import { cellKey, parseCellKey } from "./keys";
|
|
12
|
+
import { fallbackSheetAfterDelete } from "./sheet-fallback";
|
|
12
13
|
import { rescopeRulesAfterMove } from "./move-rescope";
|
|
13
14
|
import { applyPasteSpecialToTiles, clipboardCellToPasteCell, isSkippedPasteCell, } from "./paste-special";
|
|
14
15
|
import { tileClipboardToSelection } from "./paste-tiling";
|
|
@@ -282,7 +283,11 @@ export function useEngineCore(options) {
|
|
|
282
283
|
const onCustomEvalCancelRef = useRef(options.onCustomEvalCancel);
|
|
283
284
|
onCustomEvalCancelRef.current = options.onCustomEvalCancel;
|
|
284
285
|
const showError = useShowError();
|
|
286
|
+
// Cells already warned about as circular (see `onCommand`).
|
|
287
|
+
const circularReferencesRef = useRef(new CircularReferenceTracker());
|
|
285
288
|
const focusEmbedOrChart = useFocusEmbedOrChart();
|
|
289
|
+
// The visible grid area — a pasted picture is fitted to it (undefined outside a mounted grid).
|
|
290
|
+
const getSheetDimensions = useGetSheetDimensions();
|
|
286
291
|
// Latest-refs for the streaming batch-write observers (identities may change every render).
|
|
287
292
|
const onStreamStartRef = useRef(options.onStreamStart);
|
|
288
293
|
onStreamStartRef.current = options.onStreamStart;
|
|
@@ -418,6 +423,40 @@ export function useEngineCore(options) {
|
|
|
418
423
|
setActiveCellBySheetId(cells);
|
|
419
424
|
setSelectionsBySheetId(sels);
|
|
420
425
|
}, []);
|
|
426
|
+
/** Make `sheetId` the active sheet: restore its remembered cursor/selections and, in windowed mode,
|
|
427
|
+
* re-seed the loaded window onto it (the old window pointed at the prior sheet). Switching sheets
|
|
428
|
+
* keeps the scroll position, so CanvasGrid does NOT re-fire `onViewPortChange` — re-seed to the SAME
|
|
429
|
+
* span the user is currently viewing (the last reported viewport) so the whole visible grid loads,
|
|
430
|
+
* not just a top-left A–F placeholder; fall back to the top-left default before the first viewport
|
|
431
|
+
* report. Shared by the user-facing `onChangeActiveSheet` and the engine's own active-sheet
|
|
432
|
+
* fallback when the active sheet is deleted — the latter used to move `activeSheetId` alone and
|
|
433
|
+
* leave `windowRef` on the gone sheet, so every later commit re-read the DELETED sheet's window
|
|
434
|
+
* and the fallback sheet painted blank (its own writes included) until a manual tab switch. */
|
|
435
|
+
const activateSheetView = useCallback((sheetId) => {
|
|
436
|
+
viewRef.current = viewOfSheet(sheetId);
|
|
437
|
+
setActiveSheetId(sheetId);
|
|
438
|
+
if (windowedRef.current && engineRef.current) {
|
|
439
|
+
const vp = lastViewportRef.current;
|
|
440
|
+
const w = vp
|
|
441
|
+
? {
|
|
442
|
+
sheetId,
|
|
443
|
+
startRow: Math.max(1, vp.rowStartIndex - WINDOW_BUFFER_ROWS),
|
|
444
|
+
startCol: Math.max(1, vp.columnStartIndex - WINDOW_BUFFER_COLS),
|
|
445
|
+
endRow: Math.max(1, vp.rowStopIndex) + WINDOW_BUFFER_ROWS,
|
|
446
|
+
endCol: Math.max(1, vp.columnStopIndex) + WINDOW_BUFFER_COLS,
|
|
447
|
+
}
|
|
448
|
+
: {
|
|
449
|
+
sheetId,
|
|
450
|
+
startRow: 1,
|
|
451
|
+
startCol: 1,
|
|
452
|
+
endRow: 1 + WINDOW_BUFFER_ROWS,
|
|
453
|
+
endCol: 1 + WINDOW_BUFFER_COLS,
|
|
454
|
+
};
|
|
455
|
+
windowRef.current = w;
|
|
456
|
+
const snaps = readWindowedSnapshots(engineRef.current, w);
|
|
457
|
+
setState((prev) => foldWindows(prev, snaps));
|
|
458
|
+
}
|
|
459
|
+
}, [readWindowedSnapshots, viewOfSheet]);
|
|
421
460
|
// The initial sheets/document are creation-time inputs; capture them so the effect runs once and
|
|
422
461
|
// doesn't tear the engine down on every render.
|
|
423
462
|
const initial = useRef(options);
|
|
@@ -494,16 +533,20 @@ export function useEngineCore(options) {
|
|
|
494
533
|
return sheets === folded.sheets ? folded : { ...folded, sheets };
|
|
495
534
|
});
|
|
496
535
|
}
|
|
497
|
-
// If the active sheet was deleted (it's gone from the engine's set), fall back to
|
|
498
|
-
//
|
|
499
|
-
//
|
|
500
|
-
//
|
|
501
|
-
//
|
|
536
|
+
// If the active sheet was deleted (it's gone from the engine's set), fall back to its
|
|
537
|
+
// neighbor — the previous visible tab, else the next (Excel / Sheets) — so the renderer keeps a
|
|
538
|
+
// valid active sheet. `activateSheetView` (not a bare `setActiveSheetId`) also re-seeds the
|
|
539
|
+
// windowed read onto the fallback sheet: nothing re-fires `onViewPortChange` on a delete, so a
|
|
540
|
+
// window left on the gone sheet made every later commit re-read the deleted sheet and the
|
|
541
|
+
// fallback sheet rendered blank until a manual tab switch. The prior tab order comes from the
|
|
542
|
+
// last rendered sheet list (`stateSheetsRef`), which still holds the deleted sheet.
|
|
502
543
|
if (engineSheets.length &&
|
|
503
544
|
!engineSheets.some((s) => s.sheetId === viewRef.current.activeSheetId)) {
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
545
|
+
activateSheetView(fallbackSheetAfterDelete({
|
|
546
|
+
previous: stateSheetsRef.current,
|
|
547
|
+
remaining: engineSheets,
|
|
548
|
+
deletedSheetId: viewRef.current.activeSheetId,
|
|
549
|
+
}));
|
|
507
550
|
}
|
|
508
551
|
// ONE-SHOT post-hydration re-derivation of the initial active sheet. Collab hosts seed the
|
|
509
552
|
// engine with a placeholder sheet list (e.g. `[{sheetId: 1, title: 'Sheet1'}]`) before the
|
|
@@ -518,9 +561,13 @@ export function useEngineCore(options) {
|
|
|
518
561
|
activeSheetRederivedRef.current = true;
|
|
519
562
|
if (!userPickedSheetRef.current) {
|
|
520
563
|
const derivedId = getInitialActiveSheetId(engineSheets) ?? engineSheets[0].sheetId;
|
|
564
|
+
// Move through `activateSheetView`, never a bare `setActiveSheetId`: the tab strip
|
|
565
|
+
// reads `activeSheetId` while the windowed grid paints `windowRef`'s sheet, and a
|
|
566
|
+
// bare set moved only the former — after a peer (agent) created the first non-seed
|
|
567
|
+
// sheet, the highlighted tab was the derived sheet while the grid kept painting the
|
|
568
|
+
// old window's sheet until a manual tab switch (#37265 A5).
|
|
521
569
|
if (derivedId !== viewRef.current.activeSheetId) {
|
|
522
|
-
|
|
523
|
-
setActiveSheetId(derivedId);
|
|
570
|
+
activateSheetView(derivedId);
|
|
524
571
|
}
|
|
525
572
|
}
|
|
526
573
|
}
|
|
@@ -726,6 +773,18 @@ export function useEngineCore(options) {
|
|
|
726
773
|
// Snapshot the view BEFORE applying — that's where undo should return the user.
|
|
727
774
|
const before = viewRef.current;
|
|
728
775
|
const commit = engine.applyCommand(command);
|
|
776
|
+
// Excel's circular-reference warning: the engine reports the cells it stamped circular (they
|
|
777
|
+
// display 0 with iterative calculation off) on `circularReferences`; warn once per NEW cell,
|
|
778
|
+
// through the same dialog channel as the refusals below. `changes` lets the tracker forget a
|
|
779
|
+
// cell recomputed without the stamp, so breaking and re-creating a loop warns again.
|
|
780
|
+
const freshCircular = circularReferencesRef.current.next(commit.circularReferences, commit.changes);
|
|
781
|
+
if (freshCircular.length) {
|
|
782
|
+
const sheets = stateSheetsRef.current;
|
|
783
|
+
showError({
|
|
784
|
+
title: CIRCULAR_REFERENCE_WARNING_TITLE,
|
|
785
|
+
message: formatCircularReferenceWarning(freshCircular, (sheetId) => sheets.find((s) => s.sheetId === sheetId)?.title, sheets.length > 1),
|
|
786
|
+
});
|
|
787
|
+
}
|
|
729
788
|
// A value-writing command grew a table over the written cells: arm the AutoCorrect smart tag
|
|
730
789
|
// with the engine's record of the growth (rowsncolumns/spreadsheet#668 T-12) — "Undo Table
|
|
731
790
|
// AutoExpansion" resizes back and clears the cells the growth wrote (`writes`, T-89).
|
|
@@ -1052,37 +1111,8 @@ export function useEngineCore(options) {
|
|
|
1052
1111
|
// An explicit pick (user tab click, host navigation) permanently disables the post-hydration
|
|
1053
1112
|
// initial-active-sheet re-derivation — never yank the user off a sheet they chose.
|
|
1054
1113
|
userPickedSheetRef.current = true;
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
viewRef.current = viewOfSheet(sheetId);
|
|
1058
|
-
setActiveSheetId(sheetId);
|
|
1059
|
-
// Windowed: re-seed the window on the newly-active sheet (the old window pointed at the prior
|
|
1060
|
-
// sheet). Switching sheets keeps the scroll position, so CanvasGrid does NOT re-fire
|
|
1061
|
-
// `onViewPortChange` — re-seed to the SAME span the user is currently viewing (the last reported
|
|
1062
|
-
// viewport) so the whole visible grid loads, not just a top-left A–F placeholder. Fall back to the
|
|
1063
|
-
// top-left default only before the first viewport report.
|
|
1064
|
-
if (windowedRef.current && engineRef.current) {
|
|
1065
|
-
const vp = lastViewportRef.current;
|
|
1066
|
-
const w = vp
|
|
1067
|
-
? {
|
|
1068
|
-
sheetId,
|
|
1069
|
-
startRow: Math.max(1, vp.rowStartIndex - WINDOW_BUFFER_ROWS),
|
|
1070
|
-
startCol: Math.max(1, vp.columnStartIndex - WINDOW_BUFFER_COLS),
|
|
1071
|
-
endRow: Math.max(1, vp.rowStopIndex) + WINDOW_BUFFER_ROWS,
|
|
1072
|
-
endCol: Math.max(1, vp.columnStopIndex) + WINDOW_BUFFER_COLS,
|
|
1073
|
-
}
|
|
1074
|
-
: {
|
|
1075
|
-
sheetId,
|
|
1076
|
-
startRow: 1,
|
|
1077
|
-
startCol: 1,
|
|
1078
|
-
endRow: 1 + WINDOW_BUFFER_ROWS,
|
|
1079
|
-
endCol: 1 + WINDOW_BUFFER_COLS,
|
|
1080
|
-
};
|
|
1081
|
-
windowRef.current = w;
|
|
1082
|
-
const snaps = readWindowedSnapshots(engineRef.current, w);
|
|
1083
|
-
setState((prev) => foldWindows(prev, snaps));
|
|
1084
|
-
}
|
|
1085
|
-
}, [readWindowedSnapshots]);
|
|
1114
|
+
activateSheetView(sheetId);
|
|
1115
|
+
}, [activateSheetView]);
|
|
1086
1116
|
const onChangeActiveCell = useCallback((sheetId, c) => {
|
|
1087
1117
|
const next = { ...activeCellBySheetIdRef.current, [sheetId]: c };
|
|
1088
1118
|
activeCellBySheetIdRef.current = next;
|
|
@@ -1328,6 +1358,22 @@ export function useEngineCore(options) {
|
|
|
1328
1358
|
}
|
|
1329
1359
|
return sheetData[String(sheetId)]?.length;
|
|
1330
1360
|
}, [sheetData, extentById]);
|
|
1361
|
+
// Ctrl/Cmd+A's current region, from the engine's FULL document. The grid's own walk reads
|
|
1362
|
+
// `getCellData`, which in windowed mode sees only the folded viewport — so on a 200-row block it
|
|
1363
|
+
// stopped at the edge of the resident band (~97 rows) and Cmd+L sent a truncated table
|
|
1364
|
+
// (Athena-Intel/demo-app-monorepo#37167 UI3-5). Stable identity: reads through `engineRef`.
|
|
1365
|
+
const getDataRegion = useCallback((sheetId, cell) => {
|
|
1366
|
+
const region = engineRef.current?.dataRegion(sheetId, cell.rowIndex, cell.columnIndex);
|
|
1367
|
+
if (!region)
|
|
1368
|
+
return undefined;
|
|
1369
|
+
const [top, left, bottom, right] = region;
|
|
1370
|
+
return {
|
|
1371
|
+
startRowIndex: top,
|
|
1372
|
+
startColumnIndex: left,
|
|
1373
|
+
endRowIndex: bottom,
|
|
1374
|
+
endColumnIndex: right,
|
|
1375
|
+
};
|
|
1376
|
+
}, []);
|
|
1331
1377
|
const getDataColumnCount = useCallback((sheetId) => {
|
|
1332
1378
|
const rows = sheetData[String(sheetId)];
|
|
1333
1379
|
let max = 0;
|
|
@@ -1833,7 +1879,12 @@ export function useEngineCore(options) {
|
|
|
1833
1879
|
getCustomAutofillLists: () => customAutofillListsRef.current,
|
|
1834
1880
|
getAutoExpandTables: () => autoExpandTablesRef.current,
|
|
1835
1881
|
getAutoCalculatedColumns: () => autoCalculatedColumnsRef.current,
|
|
1836
|
-
|
|
1882
|
+
getActiveCell: (sheetId) => viewRef.current.activeSheetId === sheetId ? viewRef.current.activeCell : undefined,
|
|
1883
|
+
// `onInsertImage` replacing a floating picture needs the embed it edits (`update-embed`
|
|
1884
|
+
// carries the whole object); the engine's lossless facet is the source of truth.
|
|
1885
|
+
getEmbed: (embedId) => engineRef.current?.documentFacets().embeds.find((embed) => embed.embedId === embedId),
|
|
1886
|
+
getSheetDimensions: () => getSheetDimensions?.(),
|
|
1887
|
+
}), [onCommand, getSheetDimensions]);
|
|
1837
1888
|
// Data tools composed over the streamed commands. The planners need the WHOLE list range (a
|
|
1838
1889
|
// windowed host holds only the viewport), so they read it straight from the engine in one
|
|
1839
1890
|
// rect read; the plan then applies through the ordinary handlers, exactly as the reference hook
|
|
@@ -2308,7 +2359,19 @@ export function useEngineCore(options) {
|
|
|
2308
2359
|
// still reads `=B1*2`) and only repoints references INTO the moved block — the engine does
|
|
2309
2360
|
// that remap (`repoint_formulas_into_moved_block`), so the clipboard parse must not
|
|
2310
2361
|
// relativize cut formulas the way it does copied ones.
|
|
2311
|
-
const parsed = await generateDataFromClipboard(e, pasteActiveCell, destinationSheetId, getSheetName(destinationSheetId), true, initial.current.locale, undefined, undefined, undefined, { relocateFormulas: !isCutOperation });
|
|
2362
|
+
const parsed = await generateDataFromClipboard(e, pasteActiveCell, destinationSheetId, getSheetName(destinationSheetId), true, initial.current.locale, undefined, undefined, undefined, { relocateFormulas: !isCutOperation, imageViewport: getSheetDimensions?.() });
|
|
2363
|
+
// Pasted image FILES arrive as floating pictures anchored at the active cell (Excel /
|
|
2364
|
+
// Google Sheets Ctrl+V of a picture) — the same lossless `create-embed` the Insert → Image
|
|
2365
|
+
// dialog emits, one undo entry for all of them, the first one selected like a new chart.
|
|
2366
|
+
const pastedEmbeds = parsed?.embeds ?? [];
|
|
2367
|
+
if (pastedEmbeds.length) {
|
|
2368
|
+
batchHistory(() => {
|
|
2369
|
+
for (const spec of pastedEmbeds) {
|
|
2370
|
+
onCommand({ command: "create-embed", spec });
|
|
2371
|
+
}
|
|
2372
|
+
});
|
|
2373
|
+
focusEmbedOrChart(pastedEmbeds[0].embedId);
|
|
2374
|
+
}
|
|
2312
2375
|
let results = parsed?.results ?? [];
|
|
2313
2376
|
if (!results.length)
|
|
2314
2377
|
return;
|
|
@@ -2400,7 +2463,16 @@ export function useEngineCore(options) {
|
|
|
2400
2463
|
? { autoCalculatedColumns: false }
|
|
2401
2464
|
: {}),
|
|
2402
2465
|
});
|
|
2403
|
-
}, [
|
|
2466
|
+
}, [
|
|
2467
|
+
getSheetName,
|
|
2468
|
+
getCellData,
|
|
2469
|
+
getUserEnteredFormat,
|
|
2470
|
+
getNote,
|
|
2471
|
+
onCommand,
|
|
2472
|
+
batchHistory,
|
|
2473
|
+
focusEmbedOrChart,
|
|
2474
|
+
getSheetDimensions,
|
|
2475
|
+
]);
|
|
2404
2476
|
return useMemo(() => ({
|
|
2405
2477
|
...state,
|
|
2406
2478
|
...handlers,
|
|
@@ -2467,6 +2539,7 @@ export function useEngineCore(options) {
|
|
|
2467
2539
|
getSheetRowCount,
|
|
2468
2540
|
getSheetColumnCount,
|
|
2469
2541
|
getDataRowCount,
|
|
2542
|
+
getDataRegion,
|
|
2470
2543
|
findAll,
|
|
2471
2544
|
getSeriesValuesFromRange,
|
|
2472
2545
|
getDomainValuesFromRange,
|
|
@@ -2616,6 +2689,7 @@ export function useEngineCore(options) {
|
|
|
2616
2689
|
getSheetRowCount,
|
|
2617
2690
|
getSheetColumnCount,
|
|
2618
2691
|
getDataRowCount,
|
|
2692
|
+
getDataRegion,
|
|
2619
2693
|
findAll,
|
|
2620
2694
|
getSeriesValuesFromRange,
|
|
2621
2695
|
getDomainValuesFromRange,
|
|
@@ -20,6 +20,11 @@ export class CollabSpreadsheetEngine {
|
|
|
20
20
|
canRedo(): boolean;
|
|
21
21
|
canUndo(): boolean;
|
|
22
22
|
clearHistory(): void;
|
|
23
|
+
/**
|
|
24
|
+
* Excel's *current region* around a 1-based cell as JSON `[top, left, bottom, right]` — the
|
|
25
|
+
* contiguous data block Ctrl/Cmd+A selects, computed over the full document (presence-only).
|
|
26
|
+
*/
|
|
27
|
+
dataRegion(sheet_id: number, row: number, col: number): string;
|
|
23
28
|
dependents(sheet_id: number, row: number, col: number): string;
|
|
24
29
|
documentFacets(): string;
|
|
25
30
|
/**
|
|
@@ -135,6 +140,12 @@ export class SpreadsheetEngine {
|
|
|
135
140
|
* Drop the entire undo/redo history (the document is unchanged). Backs `onClearHistory`.
|
|
136
141
|
*/
|
|
137
142
|
clearHistory(): void;
|
|
143
|
+
/**
|
|
144
|
+
* Excel's *current region* around a 1-based cell as JSON `[top, left, bottom, right]` — the
|
|
145
|
+
* contiguous data block Ctrl/Cmd+A selects. Computed over the engine's full document (a
|
|
146
|
+
* presence-only pass), so a windowed renderer gets the whole block, not just its resident rows.
|
|
147
|
+
*/
|
|
148
|
+
dataRegion(sheet_id: number, row: number, col: number): string;
|
|
138
149
|
/**
|
|
139
150
|
* The DEPENDENTS of a cell — every formula cell that references it (directly or within a range) —
|
|
140
151
|
* as `[{sheetId,rowIndex,columnIndex}]`. Powers `getDependents`.
|
|
@@ -245,7 +256,11 @@ export class SpreadsheetEngine {
|
|
|
245
256
|
* Declare whether the host renders WINDOWED. When on, every commit serialized by this engine
|
|
246
257
|
* (`applyCommand` / `undo` / `redo` / `loadDocument`) omits the per-cell channels the windowed
|
|
247
258
|
* host re-reads via `readWindow` anyway — see [`SpreadsheetEngine::serialize_commit`]. Idempotent.
|
|
259
|
+
* Pin the evaluation timezone for `TODAY()` / `NOW()` as minutes east of UTC (`null` /
|
|
260
|
+
* `undefined` restores the default `Local` clock — the host process's zone). Returns `false`
|
|
261
|
+
* for an offset outside ±24h. demo-app-monorepo#37869 C-5.
|
|
248
262
|
*/
|
|
263
|
+
setTimezoneOffsetMinutes(minutes?: number | null): boolean;
|
|
249
264
|
setWindowed(on: boolean): void;
|
|
250
265
|
/**
|
|
251
266
|
* Per-sheet used extent as JSON `[[sheetId, rowCount, colCount], …]` (1-based data extents).
|
|
@@ -306,12 +321,49 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
|
|
|
306
321
|
|
|
307
322
|
export interface InitOutput {
|
|
308
323
|
readonly memory: WebAssembly.Memory;
|
|
324
|
+
readonly __wbg_collabspreadsheetengine_free: (a: number, b: number) => void;
|
|
325
|
+
readonly collabspreadsheetengine_addSheet: (a: number, b: number, c: number, d: number) => void;
|
|
326
|
+
readonly collabspreadsheetengine_applyCommand: (a: number, b: number, c: number) => [number, number, number, number];
|
|
327
|
+
readonly collabspreadsheetengine_applyUpdate: (a: number, b: number, c: number) => [number, number];
|
|
328
|
+
readonly collabspreadsheetengine_canRedo: (a: number) => number;
|
|
329
|
+
readonly collabspreadsheetengine_canUndo: (a: number) => number;
|
|
330
|
+
readonly collabspreadsheetengine_clearHistory: (a: number) => void;
|
|
331
|
+
readonly collabspreadsheetengine_dataRegion: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
332
|
+
readonly collabspreadsheetengine_dependents: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
333
|
+
readonly collabspreadsheetengine_documentFacets: (a: number) => [number, number];
|
|
334
|
+
readonly collabspreadsheetengine_encodeDiffV1: (a: number, b: number, c: number) => [number, number, number, number];
|
|
335
|
+
readonly collabspreadsheetengine_encodeStateAsUpdate: (a: number) => [number, number];
|
|
336
|
+
readonly collabspreadsheetengine_encodeStateVector: (a: number) => [number, number];
|
|
337
|
+
readonly collabspreadsheetengine_exportCsv: (a: number, b: number) => [number, number];
|
|
338
|
+
readonly collabspreadsheetengine_exportXlsx: (a: number) => [number, number, number, number];
|
|
339
|
+
readonly collabspreadsheetengine_hostOwnedCells: (a: number, b: number) => [number, number, number, number];
|
|
340
|
+
readonly collabspreadsheetengine_initGrid: (a: number, b: number, c: number, d: number) => void;
|
|
341
|
+
readonly collabspreadsheetengine_loadDocument: (a: number, b: number, c: number) => [number, number, number, number];
|
|
342
|
+
readonly collabspreadsheetengine_new: () => number;
|
|
343
|
+
readonly collabspreadsheetengine_newWithClientId: (a: number) => number;
|
|
344
|
+
readonly collabspreadsheetengine_precedents: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
345
|
+
readonly collabspreadsheetengine_rangeStats: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
|
|
346
|
+
readonly collabspreadsheetengine_readWindow: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
|
|
347
|
+
readonly collabspreadsheetengine_redo: (a: number) => [number, number, number, number];
|
|
348
|
+
readonly collabspreadsheetengine_redoDepth: (a: number) => number;
|
|
349
|
+
readonly collabspreadsheetengine_registerCustomFunction: (a: number, b: number, c: number) => void;
|
|
350
|
+
readonly collabspreadsheetengine_setWindowed: (a: number, b: number) => void;
|
|
351
|
+
readonly collabspreadsheetengine_sheetExtents: (a: number) => [number, number, number, number];
|
|
352
|
+
readonly collabspreadsheetengine_sheetIds: (a: number) => [number, number];
|
|
353
|
+
readonly collabspreadsheetengine_sheets: (a: number) => [number, number];
|
|
354
|
+
readonly collabspreadsheetengine_streamBegin: (a: number) => void;
|
|
355
|
+
readonly collabspreadsheetengine_streamEnd: (a: number) => void;
|
|
356
|
+
readonly collabspreadsheetengine_streamWrite: (a: number, b: number, c: number) => void;
|
|
357
|
+
readonly collabspreadsheetengine_syncRemote: (a: number) => [number, number, number, number];
|
|
358
|
+
readonly collabspreadsheetengine_undo: (a: number) => [number, number, number, number];
|
|
359
|
+
readonly collabspreadsheetengine_undoDepth: (a: number) => number;
|
|
309
360
|
readonly __wbg_spreadsheetengine_free: (a: number, b: number) => void;
|
|
310
361
|
readonly spreadsheetengine_addSheet: (a: number, b: number, c: number, d: number) => void;
|
|
311
362
|
readonly spreadsheetengine_applyCommand: (a: number, b: number, c: number) => [number, number, number, number];
|
|
312
363
|
readonly spreadsheetengine_canRedo: (a: number) => number;
|
|
313
364
|
readonly spreadsheetengine_canUndo: (a: number) => number;
|
|
314
365
|
readonly spreadsheetengine_clearHistory: (a: number) => void;
|
|
366
|
+
readonly spreadsheetengine_dataRegion: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
315
367
|
readonly spreadsheetengine_dependents: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
316
368
|
readonly spreadsheetengine_documentFacets: (a: number) => [number, number];
|
|
317
369
|
readonly spreadsheetengine_evalFormula: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
@@ -332,6 +384,7 @@ export interface InitOutput {
|
|
|
332
384
|
readonly spreadsheetengine_redo: (a: number) => [number, number, number, number];
|
|
333
385
|
readonly spreadsheetengine_redoDepth: (a: number) => number;
|
|
334
386
|
readonly spreadsheetengine_registerCustomFunction: (a: number, b: number, c: number) => void;
|
|
387
|
+
readonly spreadsheetengine_setTimezoneOffsetMinutes: (a: number, b: number) => number;
|
|
335
388
|
readonly spreadsheetengine_setWindowed: (a: number, b: number) => void;
|
|
336
389
|
readonly spreadsheetengine_sheetExtents: (a: number) => [number, number, number, number];
|
|
337
390
|
readonly spreadsheetengine_sheetIds: (a: number) => [number, number];
|
|
@@ -343,41 +396,6 @@ export interface InitOutput {
|
|
|
343
396
|
readonly spreadsheetengine_undo: (a: number) => [number, number, number, number];
|
|
344
397
|
readonly spreadsheetengine_undoDepth: (a: number) => number;
|
|
345
398
|
readonly spreadsheetengine_wasmMemoryBytes: (a: number) => number;
|
|
346
|
-
readonly __wbg_collabspreadsheetengine_free: (a: number, b: number) => void;
|
|
347
|
-
readonly collabspreadsheetengine_addSheet: (a: number, b: number, c: number, d: number) => void;
|
|
348
|
-
readonly collabspreadsheetengine_applyCommand: (a: number, b: number, c: number) => [number, number, number, number];
|
|
349
|
-
readonly collabspreadsheetengine_applyUpdate: (a: number, b: number, c: number) => [number, number];
|
|
350
|
-
readonly collabspreadsheetengine_canRedo: (a: number) => number;
|
|
351
|
-
readonly collabspreadsheetengine_canUndo: (a: number) => number;
|
|
352
|
-
readonly collabspreadsheetengine_clearHistory: (a: number) => void;
|
|
353
|
-
readonly collabspreadsheetengine_dependents: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
354
|
-
readonly collabspreadsheetengine_documentFacets: (a: number) => [number, number];
|
|
355
|
-
readonly collabspreadsheetengine_encodeDiffV1: (a: number, b: number, c: number) => [number, number, number, number];
|
|
356
|
-
readonly collabspreadsheetengine_encodeStateAsUpdate: (a: number) => [number, number];
|
|
357
|
-
readonly collabspreadsheetengine_encodeStateVector: (a: number) => [number, number];
|
|
358
|
-
readonly collabspreadsheetengine_exportCsv: (a: number, b: number) => [number, number];
|
|
359
|
-
readonly collabspreadsheetengine_exportXlsx: (a: number) => [number, number, number, number];
|
|
360
|
-
readonly collabspreadsheetengine_hostOwnedCells: (a: number, b: number) => [number, number, number, number];
|
|
361
|
-
readonly collabspreadsheetengine_initGrid: (a: number, b: number, c: number, d: number) => void;
|
|
362
|
-
readonly collabspreadsheetengine_loadDocument: (a: number, b: number, c: number) => [number, number, number, number];
|
|
363
|
-
readonly collabspreadsheetengine_new: () => number;
|
|
364
|
-
readonly collabspreadsheetengine_newWithClientId: (a: number) => number;
|
|
365
|
-
readonly collabspreadsheetengine_precedents: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
366
|
-
readonly collabspreadsheetengine_rangeStats: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
|
|
367
|
-
readonly collabspreadsheetengine_readWindow: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
|
|
368
|
-
readonly collabspreadsheetengine_redo: (a: number) => [number, number, number, number];
|
|
369
|
-
readonly collabspreadsheetengine_redoDepth: (a: number) => number;
|
|
370
|
-
readonly collabspreadsheetengine_registerCustomFunction: (a: number, b: number, c: number) => void;
|
|
371
|
-
readonly collabspreadsheetengine_setWindowed: (a: number, b: number) => void;
|
|
372
|
-
readonly collabspreadsheetengine_sheetExtents: (a: number) => [number, number, number, number];
|
|
373
|
-
readonly collabspreadsheetengine_sheetIds: (a: number) => [number, number];
|
|
374
|
-
readonly collabspreadsheetengine_sheets: (a: number) => [number, number];
|
|
375
|
-
readonly collabspreadsheetengine_streamBegin: (a: number) => void;
|
|
376
|
-
readonly collabspreadsheetengine_streamEnd: (a: number) => void;
|
|
377
|
-
readonly collabspreadsheetengine_streamWrite: (a: number, b: number, c: number) => void;
|
|
378
|
-
readonly collabspreadsheetengine_syncRemote: (a: number) => [number, number, number, number];
|
|
379
|
-
readonly collabspreadsheetengine_undo: (a: number) => [number, number, number, number];
|
|
380
|
-
readonly collabspreadsheetengine_undoDepth: (a: number) => number;
|
|
381
399
|
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
382
400
|
readonly __wbindgen_exn_store: (a: number) => void;
|
|
383
401
|
readonly __externref_table_alloc: () => number;
|
|
@@ -86,6 +86,32 @@ export class CollabSpreadsheetEngine {
|
|
|
86
86
|
clearHistory() {
|
|
87
87
|
wasm.collabspreadsheetengine_clearHistory(this.__wbg_ptr);
|
|
88
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Excel's *current region* around a 1-based cell as JSON `[top, left, bottom, right]` — the
|
|
91
|
+
* contiguous data block Ctrl/Cmd+A selects, computed over the full document (presence-only).
|
|
92
|
+
* @param {number} sheet_id
|
|
93
|
+
* @param {number} row
|
|
94
|
+
* @param {number} col
|
|
95
|
+
* @returns {string}
|
|
96
|
+
*/
|
|
97
|
+
dataRegion(sheet_id, row, col) {
|
|
98
|
+
let deferred2_0;
|
|
99
|
+
let deferred2_1;
|
|
100
|
+
try {
|
|
101
|
+
const ret = wasm.collabspreadsheetengine_dataRegion(this.__wbg_ptr, sheet_id, row, col);
|
|
102
|
+
var ptr1 = ret[0];
|
|
103
|
+
var len1 = ret[1];
|
|
104
|
+
if (ret[3]) {
|
|
105
|
+
ptr1 = 0; len1 = 0;
|
|
106
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
107
|
+
}
|
|
108
|
+
deferred2_0 = ptr1;
|
|
109
|
+
deferred2_1 = len1;
|
|
110
|
+
return getStringFromWasm0(ptr1, len1);
|
|
111
|
+
} finally {
|
|
112
|
+
wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
89
115
|
/**
|
|
90
116
|
* @param {number} sheet_id
|
|
91
117
|
* @param {number} row
|
|
@@ -587,6 +613,33 @@ export class SpreadsheetEngine {
|
|
|
587
613
|
clearHistory() {
|
|
588
614
|
wasm.spreadsheetengine_clearHistory(this.__wbg_ptr);
|
|
589
615
|
}
|
|
616
|
+
/**
|
|
617
|
+
* Excel's *current region* around a 1-based cell as JSON `[top, left, bottom, right]` — the
|
|
618
|
+
* contiguous data block Ctrl/Cmd+A selects. Computed over the engine's full document (a
|
|
619
|
+
* presence-only pass), so a windowed renderer gets the whole block, not just its resident rows.
|
|
620
|
+
* @param {number} sheet_id
|
|
621
|
+
* @param {number} row
|
|
622
|
+
* @param {number} col
|
|
623
|
+
* @returns {string}
|
|
624
|
+
*/
|
|
625
|
+
dataRegion(sheet_id, row, col) {
|
|
626
|
+
let deferred2_0;
|
|
627
|
+
let deferred2_1;
|
|
628
|
+
try {
|
|
629
|
+
const ret = wasm.spreadsheetengine_dataRegion(this.__wbg_ptr, sheet_id, row, col);
|
|
630
|
+
var ptr1 = ret[0];
|
|
631
|
+
var len1 = ret[1];
|
|
632
|
+
if (ret[3]) {
|
|
633
|
+
ptr1 = 0; len1 = 0;
|
|
634
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
635
|
+
}
|
|
636
|
+
deferred2_0 = ptr1;
|
|
637
|
+
deferred2_1 = len1;
|
|
638
|
+
return getStringFromWasm0(ptr1, len1);
|
|
639
|
+
} finally {
|
|
640
|
+
wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
|
|
641
|
+
}
|
|
642
|
+
}
|
|
590
643
|
/**
|
|
591
644
|
* The DEPENDENTS of a cell — every formula cell that references it (directly or within a range) —
|
|
592
645
|
* as `[{sheetId,rowIndex,columnIndex}]`. Powers `getDependents`.
|
|
@@ -1021,6 +1074,17 @@ export class SpreadsheetEngine {
|
|
|
1021
1074
|
* Declare whether the host renders WINDOWED. When on, every commit serialized by this engine
|
|
1022
1075
|
* (`applyCommand` / `undo` / `redo` / `loadDocument`) omits the per-cell channels the windowed
|
|
1023
1076
|
* host re-reads via `readWindow` anyway — see [`SpreadsheetEngine::serialize_commit`]. Idempotent.
|
|
1077
|
+
* Pin the evaluation timezone for `TODAY()` / `NOW()` as minutes east of UTC (`null` /
|
|
1078
|
+
* `undefined` restores the default `Local` clock — the host process's zone). Returns `false`
|
|
1079
|
+
* for an offset outside ±24h. demo-app-monorepo#37869 C-5.
|
|
1080
|
+
* @param {number | null} [minutes]
|
|
1081
|
+
* @returns {boolean}
|
|
1082
|
+
*/
|
|
1083
|
+
setTimezoneOffsetMinutes(minutes) {
|
|
1084
|
+
const ret = wasm.spreadsheetengine_setTimezoneOffsetMinutes(this.__wbg_ptr, isLikeNone(minutes) ? Number.MAX_SAFE_INTEGER : (minutes) >> 0);
|
|
1085
|
+
return ret !== 0;
|
|
1086
|
+
}
|
|
1087
|
+
/**
|
|
1024
1088
|
* @param {boolean} on
|
|
1025
1089
|
*/
|
|
1026
1090
|
setWindowed(on) {
|
|
Binary file
|
|
@@ -1,12 +1,49 @@
|
|
|
1
1
|
/* tslint:disable */
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
export const memory: WebAssembly.Memory;
|
|
4
|
+
export const __wbg_collabspreadsheetengine_free: (a: number, b: number) => void;
|
|
5
|
+
export const collabspreadsheetengine_addSheet: (a: number, b: number, c: number, d: number) => void;
|
|
6
|
+
export const collabspreadsheetengine_applyCommand: (a: number, b: number, c: number) => [number, number, number, number];
|
|
7
|
+
export const collabspreadsheetengine_applyUpdate: (a: number, b: number, c: number) => [number, number];
|
|
8
|
+
export const collabspreadsheetengine_canRedo: (a: number) => number;
|
|
9
|
+
export const collabspreadsheetengine_canUndo: (a: number) => number;
|
|
10
|
+
export const collabspreadsheetengine_clearHistory: (a: number) => void;
|
|
11
|
+
export const collabspreadsheetengine_dataRegion: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
12
|
+
export const collabspreadsheetengine_dependents: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
13
|
+
export const collabspreadsheetengine_documentFacets: (a: number) => [number, number];
|
|
14
|
+
export const collabspreadsheetengine_encodeDiffV1: (a: number, b: number, c: number) => [number, number, number, number];
|
|
15
|
+
export const collabspreadsheetengine_encodeStateAsUpdate: (a: number) => [number, number];
|
|
16
|
+
export const collabspreadsheetengine_encodeStateVector: (a: number) => [number, number];
|
|
17
|
+
export const collabspreadsheetengine_exportCsv: (a: number, b: number) => [number, number];
|
|
18
|
+
export const collabspreadsheetengine_exportXlsx: (a: number) => [number, number, number, number];
|
|
19
|
+
export const collabspreadsheetengine_hostOwnedCells: (a: number, b: number) => [number, number, number, number];
|
|
20
|
+
export const collabspreadsheetengine_initGrid: (a: number, b: number, c: number, d: number) => void;
|
|
21
|
+
export const collabspreadsheetengine_loadDocument: (a: number, b: number, c: number) => [number, number, number, number];
|
|
22
|
+
export const collabspreadsheetengine_new: () => number;
|
|
23
|
+
export const collabspreadsheetengine_newWithClientId: (a: number) => number;
|
|
24
|
+
export const collabspreadsheetengine_precedents: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
25
|
+
export const collabspreadsheetengine_rangeStats: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
|
|
26
|
+
export const collabspreadsheetengine_readWindow: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
|
|
27
|
+
export const collabspreadsheetengine_redo: (a: number) => [number, number, number, number];
|
|
28
|
+
export const collabspreadsheetengine_redoDepth: (a: number) => number;
|
|
29
|
+
export const collabspreadsheetengine_registerCustomFunction: (a: number, b: number, c: number) => void;
|
|
30
|
+
export const collabspreadsheetengine_setWindowed: (a: number, b: number) => void;
|
|
31
|
+
export const collabspreadsheetengine_sheetExtents: (a: number) => [number, number, number, number];
|
|
32
|
+
export const collabspreadsheetengine_sheetIds: (a: number) => [number, number];
|
|
33
|
+
export const collabspreadsheetengine_sheets: (a: number) => [number, number];
|
|
34
|
+
export const collabspreadsheetengine_streamBegin: (a: number) => void;
|
|
35
|
+
export const collabspreadsheetengine_streamEnd: (a: number) => void;
|
|
36
|
+
export const collabspreadsheetengine_streamWrite: (a: number, b: number, c: number) => void;
|
|
37
|
+
export const collabspreadsheetengine_syncRemote: (a: number) => [number, number, number, number];
|
|
38
|
+
export const collabspreadsheetengine_undo: (a: number) => [number, number, number, number];
|
|
39
|
+
export const collabspreadsheetengine_undoDepth: (a: number) => number;
|
|
4
40
|
export const __wbg_spreadsheetengine_free: (a: number, b: number) => void;
|
|
5
41
|
export const spreadsheetengine_addSheet: (a: number, b: number, c: number, d: number) => void;
|
|
6
42
|
export const spreadsheetengine_applyCommand: (a: number, b: number, c: number) => [number, number, number, number];
|
|
7
43
|
export const spreadsheetengine_canRedo: (a: number) => number;
|
|
8
44
|
export const spreadsheetengine_canUndo: (a: number) => number;
|
|
9
45
|
export const spreadsheetengine_clearHistory: (a: number) => void;
|
|
46
|
+
export const spreadsheetengine_dataRegion: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
10
47
|
export const spreadsheetengine_dependents: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
11
48
|
export const spreadsheetengine_documentFacets: (a: number) => [number, number];
|
|
12
49
|
export const spreadsheetengine_evalFormula: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
@@ -27,6 +64,7 @@ export const spreadsheetengine_readWindow: (a: number, b: number, c: number, d:
|
|
|
27
64
|
export const spreadsheetengine_redo: (a: number) => [number, number, number, number];
|
|
28
65
|
export const spreadsheetengine_redoDepth: (a: number) => number;
|
|
29
66
|
export const spreadsheetengine_registerCustomFunction: (a: number, b: number, c: number) => void;
|
|
67
|
+
export const spreadsheetengine_setTimezoneOffsetMinutes: (a: number, b: number) => number;
|
|
30
68
|
export const spreadsheetengine_setWindowed: (a: number, b: number) => void;
|
|
31
69
|
export const spreadsheetengine_sheetExtents: (a: number) => [number, number, number, number];
|
|
32
70
|
export const spreadsheetengine_sheetIds: (a: number) => [number, number];
|
|
@@ -38,41 +76,6 @@ export const spreadsheetengine_supportedFunctionNames: (a: number) => [number, n
|
|
|
38
76
|
export const spreadsheetengine_undo: (a: number) => [number, number, number, number];
|
|
39
77
|
export const spreadsheetengine_undoDepth: (a: number) => number;
|
|
40
78
|
export const spreadsheetengine_wasmMemoryBytes: (a: number) => number;
|
|
41
|
-
export const __wbg_collabspreadsheetengine_free: (a: number, b: number) => void;
|
|
42
|
-
export const collabspreadsheetengine_addSheet: (a: number, b: number, c: number, d: number) => void;
|
|
43
|
-
export const collabspreadsheetengine_applyCommand: (a: number, b: number, c: number) => [number, number, number, number];
|
|
44
|
-
export const collabspreadsheetengine_applyUpdate: (a: number, b: number, c: number) => [number, number];
|
|
45
|
-
export const collabspreadsheetengine_canRedo: (a: number) => number;
|
|
46
|
-
export const collabspreadsheetengine_canUndo: (a: number) => number;
|
|
47
|
-
export const collabspreadsheetengine_clearHistory: (a: number) => void;
|
|
48
|
-
export const collabspreadsheetengine_dependents: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
49
|
-
export const collabspreadsheetengine_documentFacets: (a: number) => [number, number];
|
|
50
|
-
export const collabspreadsheetengine_encodeDiffV1: (a: number, b: number, c: number) => [number, number, number, number];
|
|
51
|
-
export const collabspreadsheetengine_encodeStateAsUpdate: (a: number) => [number, number];
|
|
52
|
-
export const collabspreadsheetengine_encodeStateVector: (a: number) => [number, number];
|
|
53
|
-
export const collabspreadsheetengine_exportCsv: (a: number, b: number) => [number, number];
|
|
54
|
-
export const collabspreadsheetengine_exportXlsx: (a: number) => [number, number, number, number];
|
|
55
|
-
export const collabspreadsheetengine_hostOwnedCells: (a: number, b: number) => [number, number, number, number];
|
|
56
|
-
export const collabspreadsheetengine_initGrid: (a: number, b: number, c: number, d: number) => void;
|
|
57
|
-
export const collabspreadsheetengine_loadDocument: (a: number, b: number, c: number) => [number, number, number, number];
|
|
58
|
-
export const collabspreadsheetengine_new: () => number;
|
|
59
|
-
export const collabspreadsheetengine_newWithClientId: (a: number) => number;
|
|
60
|
-
export const collabspreadsheetengine_precedents: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
61
|
-
export const collabspreadsheetengine_rangeStats: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
|
|
62
|
-
export const collabspreadsheetengine_readWindow: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
|
|
63
|
-
export const collabspreadsheetengine_redo: (a: number) => [number, number, number, number];
|
|
64
|
-
export const collabspreadsheetengine_redoDepth: (a: number) => number;
|
|
65
|
-
export const collabspreadsheetengine_registerCustomFunction: (a: number, b: number, c: number) => void;
|
|
66
|
-
export const collabspreadsheetengine_setWindowed: (a: number, b: number) => void;
|
|
67
|
-
export const collabspreadsheetengine_sheetExtents: (a: number) => [number, number, number, number];
|
|
68
|
-
export const collabspreadsheetengine_sheetIds: (a: number) => [number, number];
|
|
69
|
-
export const collabspreadsheetengine_sheets: (a: number) => [number, number];
|
|
70
|
-
export const collabspreadsheetengine_streamBegin: (a: number) => void;
|
|
71
|
-
export const collabspreadsheetengine_streamEnd: (a: number) => void;
|
|
72
|
-
export const collabspreadsheetengine_streamWrite: (a: number, b: number, c: number) => void;
|
|
73
|
-
export const collabspreadsheetengine_syncRemote: (a: number) => [number, number, number, number];
|
|
74
|
-
export const collabspreadsheetengine_undo: (a: number) => [number, number, number, number];
|
|
75
|
-
export const collabspreadsheetengine_undoDepth: (a: number) => number;
|
|
76
79
|
export const __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
77
80
|
export const __wbindgen_exn_store: (a: number) => void;
|
|
78
81
|
export const __externref_table_alloc: () => number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rowsncolumns/rnc-engine",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
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.",
|
|
@@ -45,13 +45,13 @@
|
|
|
45
45
|
"react": ">=18"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@rowsncolumns/common-types": ">=5.3.
|
|
48
|
+
"@rowsncolumns/common-types": ">=5.3.2",
|
|
49
49
|
"@rowsncolumns/dag": ">=7.2.31",
|
|
50
50
|
"@rowsncolumns/grid": ">=13.2.35",
|
|
51
|
-
"@rowsncolumns/spreadsheet": ">=10.4.
|
|
52
|
-
"@rowsncolumns/spreadsheet-state": ">=29.1.
|
|
53
|
-
"@rowsncolumns/toolkit": ">=24.5.
|
|
54
|
-
"@rowsncolumns/utils": ">=9.5.
|
|
51
|
+
"@rowsncolumns/spreadsheet": ">=10.4.4",
|
|
52
|
+
"@rowsncolumns/spreadsheet-state": ">=29.1.6",
|
|
53
|
+
"@rowsncolumns/toolkit": ">=24.5.5",
|
|
54
|
+
"@rowsncolumns/utils": ">=9.5.3",
|
|
55
55
|
"fflate": "^0.8.2"
|
|
56
56
|
}
|
|
57
57
|
}
|