@rowsncolumns/y-spreadsheet 15.0.2 → 15.1.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/cjs/helpers.d.ts +5 -5
- package/dist/cjs/helpers.d.ts.map +1 -1
- package/dist/cjs/helpers.js +21 -17
- package/dist/cjs/types.d.ts +36 -0
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/use-yspreadsheet-v2.d.ts +21 -3
- package/dist/cjs/use-yspreadsheet-v2.d.ts.map +1 -1
- package/dist/cjs/use-yspreadsheet-v2.js +125 -63
- package/dist/cjs/use-yspreadsheet.d.ts +6 -4
- package/dist/cjs/use-yspreadsheet.d.ts.map +1 -1
- package/dist/cjs/use-yspreadsheet.js +17 -15
- package/dist/esm/helpers.d.ts +5 -5
- package/dist/esm/helpers.d.ts.map +1 -1
- package/dist/esm/helpers.js +17 -17
- package/dist/esm/types.d.ts +36 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/use-yspreadsheet-v2.d.ts +21 -3
- package/dist/esm/use-yspreadsheet-v2.d.ts.map +1 -1
- package/dist/esm/use-yspreadsheet-v2.js +84 -38
- package/dist/esm/use-yspreadsheet.d.ts +6 -4
- package/dist/esm/use-yspreadsheet.d.ts.map +1 -1
- package/dist/esm/use-yspreadsheet.js +13 -13
- package/package.json +1 -2
package/dist/cjs/helpers.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { type HistoryType, type SheetData, type SpreadsheetPatch } from "@rowsnc
|
|
|
3
3
|
import type { Patch } from "immer";
|
|
4
4
|
import * as Y from "yjs";
|
|
5
5
|
import type { YRowData, YSheetData } from "./use-yspreadsheet-v2";
|
|
6
|
-
import type { CellKeyV3, CellDataV3, ParsedCellKeyV3 } from "./types";
|
|
6
|
+
import type { CellKeyV3, CellDataV3, ParsedCellKeyV3, YjsRuntime } from "./types";
|
|
7
7
|
/**
|
|
8
8
|
* Simplified structure to pass event data synchronously
|
|
9
9
|
*/
|
|
@@ -24,7 +24,7 @@ export type SheetDataEvent = {
|
|
|
24
24
|
* @param source
|
|
25
25
|
* @param sheetDataVersion - Version of sheet data format ("v2" or "v3"). Falls back to docMeta if undefined.
|
|
26
26
|
*/
|
|
27
|
-
export declare const applyPatchesToYDoc: (doc: Y.Doc, userId: string | number, patches: [patch: SpreadsheetPatch<Patch>, type?: HistoryType | undefined | null][], source?: "agent" | "user" | "backend", sheetDataVersion?: "v2" | "v3") => void;
|
|
27
|
+
export declare const applyPatchesToYDoc: (doc: Y.Doc, userId: string | number, patches: [patch: SpreadsheetPatch<Patch>, type?: HistoryType | undefined | null][], source?: "agent" | "user" | "backend", sheetDataVersion?: "v2" | "v3", yjs?: YjsRuntime) => void;
|
|
28
28
|
/**
|
|
29
29
|
* Add sheet data to a yjs map using immer patches
|
|
30
30
|
*
|
|
@@ -33,10 +33,10 @@ export declare const applyPatchesToYDoc: (doc: Y.Doc, userId: string | number, p
|
|
|
33
33
|
* 1. Deduplicating patches targeting the same cell (later patches win)
|
|
34
34
|
* 2. Grouping updates by sheet/row for efficient batch application
|
|
35
35
|
*/
|
|
36
|
-
export declare const addSheetDataPatches: (ySheetData: Y.Map<YSheetData>, patches: Patch[]) => void;
|
|
37
|
-
export declare const getSheetFromYSheetData: (ySheetData: Y.Map<YSheetData>, sheetId: string | number) => YSheetData;
|
|
36
|
+
export declare const addSheetDataPatches: (ySheetData: Y.Map<YSheetData>, patches: Patch[], yjs?: YjsRuntime) => void;
|
|
37
|
+
export declare const getSheetFromYSheetData: (ySheetData: Y.Map<YSheetData>, sheetId: string | number, yjs?: YjsRuntime) => YSheetData;
|
|
38
38
|
export declare const deleteSheetFromYSheetData: (ySheetData: Y.Map<YSheetData>, sheetId: string | number) => void;
|
|
39
|
-
export declare const getRowDataFromSheet: (ysheet: Y.Array<YRowData | null>, rowIndex: number | string) => Y.Array<CellData | null>;
|
|
39
|
+
export declare const getRowDataFromSheet: (ysheet: Y.Array<YRowData | null>, rowIndex: number | string, yjs?: YjsRuntime) => Y.Array<CellData | null>;
|
|
40
40
|
export declare const setCellDataInRowData: (rowData: Y.Array<CellData | null>, columnIndex: number | string, cellData?: CellData | null) => void;
|
|
41
41
|
export declare const removeRowData: (ysheet: Y.Array<YRowData | null>, rowIndex: number | string) => void;
|
|
42
42
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,KAAK,EAEX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AAWzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAOzB,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAEV,SAAS,EACT,UAAU,EACV,eAAe,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/helpers.js
CHANGED
|
@@ -17,9 +17,10 @@ var unset_1 = tslib_1.__importDefault(require("lodash/unset"));
|
|
|
17
17
|
* @param source
|
|
18
18
|
* @param sheetDataVersion - Version of sheet data format ("v2" or "v3"). Falls back to docMeta if undefined.
|
|
19
19
|
*/
|
|
20
|
-
var applyPatchesToYDoc = function (doc, userId, patches, source, sheetDataVersion) {
|
|
20
|
+
var applyPatchesToYDoc = function (doc, userId, patches, source, sheetDataVersion, yjs) {
|
|
21
21
|
var e_1, _a;
|
|
22
22
|
var _b, _c;
|
|
23
|
+
if (yjs === void 0) { yjs = Y; }
|
|
23
24
|
var ySheetDataV2 = doc.getMap("sheetDataV2");
|
|
24
25
|
var ySheetDataV3 = doc.getMap("sheetDataV3");
|
|
25
26
|
var yDocMeta = doc.getMap("docMeta");
|
|
@@ -50,7 +51,7 @@ var applyPatchesToYDoc = function (doc, userId, patches, source, sheetDataVersio
|
|
|
50
51
|
(0, exports.addSheetDataPatchesV3)(ySheetDataV3, patches_2);
|
|
51
52
|
}
|
|
52
53
|
else {
|
|
53
|
-
(0, exports.addSheetDataPatches)(ySheetDataV2, patches_2);
|
|
54
|
+
(0, exports.addSheetDataPatches)(ySheetDataV2, patches_2, yjs);
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
if (patch.sheets) {
|
|
@@ -131,8 +132,9 @@ exports.applyPatchesToYDoc = applyPatchesToYDoc;
|
|
|
131
132
|
* 1. Deduplicating patches targeting the same cell (later patches win)
|
|
132
133
|
* 2. Grouping updates by sheet/row for efficient batch application
|
|
133
134
|
*/
|
|
134
|
-
var addSheetDataPatches = function (ySheetData, patches) {
|
|
135
|
+
var addSheetDataPatches = function (ySheetData, patches, yjs) {
|
|
135
136
|
var e_2, _a;
|
|
137
|
+
if (yjs === void 0) { yjs = Y; }
|
|
136
138
|
// Optimization: consecutive cell-level patches are consolidated (later
|
|
137
139
|
// patches override earlier ones for the same cell) and applied together,
|
|
138
140
|
// grouped by sheet and row so bulk operations like paste (10k+ rows) cost
|
|
@@ -169,11 +171,11 @@ var addSheetDataPatches = function (ySheetData, patches) {
|
|
|
169
171
|
try {
|
|
170
172
|
for (var sheetRowUpdates_1 = tslib_1.__values(sheetRowUpdates), sheetRowUpdates_1_1 = sheetRowUpdates_1.next(); !sheetRowUpdates_1_1.done; sheetRowUpdates_1_1 = sheetRowUpdates_1.next()) {
|
|
171
173
|
var _g = tslib_1.__read(sheetRowUpdates_1_1.value, 2), sheetIdStr = _g[0], rowUpdates = _g[1];
|
|
172
|
-
var ysheet = (0, exports.getSheetFromYSheetData)(ySheetData, sheetIdStr);
|
|
174
|
+
var ysheet = (0, exports.getSheetFromYSheetData)(ySheetData, sheetIdStr, yjs);
|
|
173
175
|
try {
|
|
174
176
|
for (var rowUpdates_1 = (e_5 = void 0, tslib_1.__values(rowUpdates)), rowUpdates_1_1 = rowUpdates_1.next(); !rowUpdates_1_1.done; rowUpdates_1_1 = rowUpdates_1.next()) {
|
|
175
177
|
var _h = tslib_1.__read(rowUpdates_1_1.value, 2), rowIdx = _h[0], colUpdates = _h[1];
|
|
176
|
-
var rowData = (0, exports.getRowDataFromSheet)(ysheet, rowIdx);
|
|
178
|
+
var rowData = (0, exports.getRowDataFromSheet)(ysheet, rowIdx, yjs);
|
|
177
179
|
try {
|
|
178
180
|
for (var colUpdates_1 = (e_6 = void 0, tslib_1.__values(colUpdates)), colUpdates_1_1 = colUpdates_1.next(); !colUpdates_1_1.done; colUpdates_1_1 = colUpdates_1.next()) {
|
|
179
181
|
var _j = tslib_1.__read(colUpdates_1_1.value, 2), colIdx = _j[0], value = _j[1];
|
|
@@ -229,12 +231,12 @@ var addSheetDataPatches = function (ySheetData, patches) {
|
|
|
229
231
|
return;
|
|
230
232
|
}
|
|
231
233
|
if (op === "replace" || op === "add") {
|
|
232
|
-
var ysheet_1 = (0, exports.getSheetFromYSheetData)(ySheetData, sheetId);
|
|
234
|
+
var ysheet_1 = (0, exports.getSheetFromYSheetData)(ySheetData, sheetId, yjs);
|
|
233
235
|
// Cell-level patches (path.length === 4) are already handled above via consolidation
|
|
234
236
|
// [sheetId, rowIndex, 'values'] - Replace values array directly
|
|
235
237
|
if (path.length === 3 && path[2] === "values") {
|
|
236
238
|
var _c = tslib_1.__read(path, 2), rowIndex = _c[1];
|
|
237
|
-
var rowData_1 = (0, exports.getRowDataFromSheet)(ysheet_1, rowIndex);
|
|
239
|
+
var rowData_1 = (0, exports.getRowDataFromSheet)(ysheet_1, rowIndex, yjs);
|
|
238
240
|
// Clear existing row data
|
|
239
241
|
rowData_1.delete(0, rowData_1.length);
|
|
240
242
|
if (Array.isArray(value)) {
|
|
@@ -257,7 +259,7 @@ var addSheetDataPatches = function (ySheetData, patches) {
|
|
|
257
259
|
var _d = tslib_1.__read(path, 2), rowIndex = _d[1];
|
|
258
260
|
if (value === null || value === void 0 ? void 0 : value.values) {
|
|
259
261
|
// Replace entire row with new values
|
|
260
|
-
var rowData_2 = (0, exports.getRowDataFromSheet)(ysheet_1, rowIndex);
|
|
262
|
+
var rowData_2 = (0, exports.getRowDataFromSheet)(ysheet_1, rowIndex, yjs);
|
|
261
263
|
// Clear existing row data
|
|
262
264
|
rowData_2.delete(0, rowData_2.length);
|
|
263
265
|
// Add new cell values
|
|
@@ -293,7 +295,7 @@ var addSheetDataPatches = function (ySheetData, patches) {
|
|
|
293
295
|
.forEach(function (_a) {
|
|
294
296
|
var _b = tslib_1.__read(_a, 2), rowIndex = _b[0], rowData = _b[1];
|
|
295
297
|
if (rowData === null || rowData === void 0 ? void 0 : rowData.values) {
|
|
296
|
-
var rowDataArray_1 = (0, exports.getRowDataFromSheet)(ysheet_1, Number(rowIndex));
|
|
298
|
+
var rowDataArray_1 = (0, exports.getRowDataFromSheet)(ysheet_1, Number(rowIndex), yjs);
|
|
297
299
|
Object.entries(rowData.values)
|
|
298
300
|
.sort(function (_a, _b) {
|
|
299
301
|
var _c = tslib_1.__read(_a, 1), a = _c[0];
|
|
@@ -314,7 +316,7 @@ var addSheetDataPatches = function (ySheetData, patches) {
|
|
|
314
316
|
// [sheetId, rowIndex] - Remove entire row
|
|
315
317
|
if (path.length === 2) {
|
|
316
318
|
var _e = tslib_1.__read(path, 2), rowIndex = _e[1];
|
|
317
|
-
var ysheet = (0, exports.getSheetFromYSheetData)(ySheetData, sheetId);
|
|
319
|
+
var ysheet = (0, exports.getSheetFromYSheetData)(ySheetData, sheetId, yjs);
|
|
318
320
|
(0, exports.removeRowData)(ysheet, rowIndex);
|
|
319
321
|
}
|
|
320
322
|
// [sheetId] - Remove entire sheet
|
|
@@ -359,11 +361,12 @@ var addSheetDataPatches = function (ySheetData, patches) {
|
|
|
359
361
|
flushPendingCellUpdates();
|
|
360
362
|
};
|
|
361
363
|
exports.addSheetDataPatches = addSheetDataPatches;
|
|
362
|
-
var getSheetFromYSheetData = function (ySheetData, sheetId) {
|
|
364
|
+
var getSheetFromYSheetData = function (ySheetData, sheetId, yjs) {
|
|
365
|
+
if (yjs === void 0) { yjs = Y; }
|
|
363
366
|
var id = String(sheetId);
|
|
364
367
|
var sheet = ySheetData.get(id);
|
|
365
368
|
if (!sheet) {
|
|
366
|
-
sheet = new
|
|
369
|
+
sheet = new yjs.Array();
|
|
367
370
|
ySheetData.set(id, sheet);
|
|
368
371
|
}
|
|
369
372
|
return sheet;
|
|
@@ -374,7 +377,8 @@ var deleteSheetFromYSheetData = function (ySheetData, sheetId) {
|
|
|
374
377
|
ySheetData.delete(id);
|
|
375
378
|
};
|
|
376
379
|
exports.deleteSheetFromYSheetData = deleteSheetFromYSheetData;
|
|
377
|
-
var getRowDataFromSheet = function (ysheet, rowIndex) {
|
|
380
|
+
var getRowDataFromSheet = function (ysheet, rowIndex, yjs) {
|
|
381
|
+
if (yjs === void 0) { yjs = Y; }
|
|
378
382
|
var index = Number(rowIndex);
|
|
379
383
|
if (index < 0) {
|
|
380
384
|
throw new Error("Row index cannot be negative");
|
|
@@ -385,8 +389,8 @@ var getRowDataFromSheet = function (ysheet, rowIndex) {
|
|
|
385
389
|
ysheet.insert(ysheet.length, padding);
|
|
386
390
|
ysheet.insert(index, [null]); // Insert null first
|
|
387
391
|
// Create new row data
|
|
388
|
-
var newRowData = new
|
|
389
|
-
newRowData.set("values", new
|
|
392
|
+
var newRowData = new yjs.Map();
|
|
393
|
+
newRowData.set("values", new yjs.Array());
|
|
390
394
|
// Replace the null
|
|
391
395
|
ysheet.insert(index, [newRowData]);
|
|
392
396
|
ysheet.delete(index + 1, 1);
|
|
@@ -404,8 +408,8 @@ var getRowDataFromSheet = function (ysheet, rowIndex) {
|
|
|
404
408
|
var rowData = ysheet.get(index);
|
|
405
409
|
if (!rowData || !rowData.get("values")) {
|
|
406
410
|
// Create new row data if it doesn't exist or is incomplete
|
|
407
|
-
var newRowData = new
|
|
408
|
-
newRowData.set("values", new
|
|
411
|
+
var newRowData = new yjs.Map();
|
|
412
|
+
newRowData.set("values", new yjs.Array());
|
|
409
413
|
// Replace the existing item
|
|
410
414
|
ysheet.insert(index, [newRowData]);
|
|
411
415
|
ysheet.delete(index + 1, 1);
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -1,6 +1,42 @@
|
|
|
1
1
|
import type { Patch } from "immer";
|
|
2
2
|
import type { RecalcCellCoordinate } from "@rowsncolumns/spreadsheet-state";
|
|
3
3
|
import type { CellData } from "@rowsncolumns/spreadsheet";
|
|
4
|
+
import type * as Y from "yjs";
|
|
5
|
+
/**
|
|
6
|
+
* The Yjs members y-spreadsheet needs as runtime values: the shared-type
|
|
7
|
+
* constructors it instantiates and `instanceof`-checks, and the update
|
|
8
|
+
* functions `useYSpreadsheet` calls on the document. Defaults to the `yjs`
|
|
9
|
+
* (13) module; pass the namespace of the Yjs implementation that created
|
|
10
|
+
* `doc` (for example a yjs-13-compatible layer over `@y/y` 14) so the types
|
|
11
|
+
* this hook creates belong to the same implementation as the document and
|
|
12
|
+
* its `instanceof` checks see that implementation's classes. The members are
|
|
13
|
+
* typed against yjs 13, so another implementation is passed with a cast.
|
|
14
|
+
*/
|
|
15
|
+
export type YjsRuntime = {
|
|
16
|
+
Map: typeof Y.Map;
|
|
17
|
+
Array: typeof Y.Array;
|
|
18
|
+
YArrayEvent: typeof Y.YArrayEvent;
|
|
19
|
+
Doc: typeof Y.Doc;
|
|
20
|
+
applyUpdate: typeof Y.applyUpdate;
|
|
21
|
+
diffUpdate: typeof Y.diffUpdate;
|
|
22
|
+
encodeStateAsUpdate: typeof Y.encodeStateAsUpdate;
|
|
23
|
+
encodeStateVector: typeof Y.encodeStateVector;
|
|
24
|
+
};
|
|
25
|
+
/** The awareness surface the hooks use (y-protocols and @y/protocols both satisfy it). */
|
|
26
|
+
export type AwarenessLike = {
|
|
27
|
+
getStates(): Map<number, Record<string, any>>;
|
|
28
|
+
on(event: "change", callback: (...args: any[]) => void): void;
|
|
29
|
+
off(event: "change", callback: (...args: any[]) => void): void;
|
|
30
|
+
setLocalState(state: Record<string, any> | null): void;
|
|
31
|
+
setLocalStateField(field: string, value: any): void;
|
|
32
|
+
};
|
|
33
|
+
/** A collaboration provider as the hooks see it: an optional awareness plus sync/status events. */
|
|
34
|
+
export type CollabProviderLike = {
|
|
35
|
+
awareness?: AwarenessLike | null;
|
|
36
|
+
synced?: boolean;
|
|
37
|
+
on?(event: string, callback: (...args: any[]) => void): void;
|
|
38
|
+
off?(event: string, callback: (...args: any[]) => void): void;
|
|
39
|
+
};
|
|
4
40
|
export type PatchDocument<T = Patch> = {
|
|
5
41
|
userId: string | number;
|
|
6
42
|
patches: T[];
|
package/dist/cjs/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../types.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@ import type { CellInterface, SelectionArea } from "@rowsncolumns/grid";
|
|
|
4
4
|
import { PivotTable, type CellData, type Collaborator, type ConditionalFormatRule, type DataValidationRuleRecord, type EmbeddedChart, type EmbeddedObject, type NamedRange, type ProtectedRange, type Sheet, type TableView } from "@rowsncolumns/spreadsheet";
|
|
5
5
|
import { type CalculateNowOptions, type CalculationOperation, type CellXfs, type HistoryType, type SheetData, type SharedStrings, type SpreadsheetPatch } from "@rowsncolumns/spreadsheet-state";
|
|
6
6
|
import type { Patch } from "immer";
|
|
7
|
-
import type { WebsocketProvider } from "y-websocket";
|
|
8
7
|
import * as Y from "yjs";
|
|
8
|
+
import type { CollabProviderLike, YjsRuntime } from "./types";
|
|
9
9
|
export type UseYSpreadsheetPropsV2<T extends CellData, S extends Sheet, C extends EmbeddedChart, O extends EmbeddedObject> = {
|
|
10
10
|
/**
|
|
11
11
|
* Scopes awareness updates to a single document.
|
|
@@ -23,6 +23,18 @@ export type UseYSpreadsheetPropsV2<T extends CellData, S extends Sheet, C extend
|
|
|
23
23
|
* convention to remain wire-compatible.
|
|
24
24
|
*/
|
|
25
25
|
awarenessScopeId?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Whether this client may persist to the shared document (the host's
|
|
28
|
+
* edit permission; `false` for view-only sessions). Published on awareness
|
|
29
|
+
* as `canWrite` and consulted by the leader election: the leader is the
|
|
30
|
+
* peer that evaluates backend/agent recalc backlogs and writes the computed
|
|
31
|
+
* values back, so a client whose writes the server refuses must never win —
|
|
32
|
+
* every value it computed would be dropped. Peers whose awareness state has
|
|
33
|
+
* no `canWrite` field (older clients, REST writers) count as writers. When
|
|
34
|
+
* no writer is present there is no leader: nothing could persist the values
|
|
35
|
+
* anyway. Default: `true`.
|
|
36
|
+
*/
|
|
37
|
+
canWrite?: boolean;
|
|
26
38
|
userId: string | number;
|
|
27
39
|
title: string;
|
|
28
40
|
sheetId: number;
|
|
@@ -44,8 +56,14 @@ export type UseYSpreadsheetPropsV2<T extends CellData, S extends Sheet, C extend
|
|
|
44
56
|
* needed so agents touching A1:E10 don't appear to be sitting on A1.
|
|
45
57
|
*/
|
|
46
58
|
selections?: SelectionArea[];
|
|
47
|
-
provider?: HocuspocusProvider |
|
|
59
|
+
provider?: HocuspocusProvider | CollabProviderLike | any;
|
|
48
60
|
doc: Y.Doc;
|
|
61
|
+
/**
|
|
62
|
+
* The Yjs implementation `doc` belongs to (its shared-type constructors and
|
|
63
|
+
* event classes). Defaults to `yjs`; pass the namespace that created `doc`
|
|
64
|
+
* when it is not the `yjs` module (see `YjsRuntime`).
|
|
65
|
+
*/
|
|
66
|
+
yjs?: YjsRuntime;
|
|
49
67
|
calculateNow(options?: CalculateNowOptions): Promise<void>;
|
|
50
68
|
initialSheets: S[];
|
|
51
69
|
/**
|
|
@@ -142,7 +160,7 @@ export type UseYSpreadsheetPropsV2<T extends CellData, S extends Sheet, C extend
|
|
|
142
160
|
};
|
|
143
161
|
export type YRowData = Y.Map<Y.Array<CellData | null>>;
|
|
144
162
|
export type YSheetData = Y.Array<YRowData | null>;
|
|
145
|
-
export declare const useYSpreadsheetV2: <T extends CellData, S extends Sheet, C extends EmbeddedChart, O extends EmbeddedObject>({ onChangeSheetData, onChangeSheets, onChangeTables, onChangeCharts, onChangeEmbeds, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onAfterBroadcastPatch, recalcCellsMaxEntries, onChangeNamedRanges, onChangeProtectedRanges, onChangePivotTables, enqueueCalculation, enqueueGraphOperation, reevaluateDerivationsForCells, onChangeCellXfs, onChangeSharedStrings, calculateNow, onChangeActiveSheet, clientOnlyFunctionPattern, initialSheets, awarenessScopeId, userId, title, sheetId, activeCell, kind, agentInitiator, selections, doc, provider, useV3, sheetDataVersion, onMigrationComplete, deleteV2AfterMigration, skipInitialSync, supportLegacySharedStringsArray, }: UseYSpreadsheetPropsV2<T, S, C, O>) => {
|
|
163
|
+
export declare const useYSpreadsheetV2: <T extends CellData, S extends Sheet, C extends EmbeddedChart, O extends EmbeddedObject>({ onChangeSheetData, onChangeSheets, onChangeTables, onChangeCharts, onChangeEmbeds, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onAfterBroadcastPatch, recalcCellsMaxEntries, onChangeNamedRanges, onChangeProtectedRanges, onChangePivotTables, enqueueCalculation, enqueueGraphOperation, reevaluateDerivationsForCells, onChangeCellXfs, onChangeSharedStrings, calculateNow, onChangeActiveSheet, clientOnlyFunctionPattern, initialSheets, awarenessScopeId, canWrite, userId, title, sheetId, activeCell, kind, agentInitiator, selections, doc, provider, yjs, useV3, sheetDataVersion, onMigrationComplete, deleteV2AfterMigration, skipInitialSync, supportLegacySharedStringsArray, }: UseYSpreadsheetPropsV2<T, S, C, O>) => {
|
|
146
164
|
synced: boolean;
|
|
147
165
|
users: Collaborator[];
|
|
148
166
|
onBroadcastPatch: (patches: [patch: SpreadsheetPatch<Patch>, type?: HistoryType | undefined | null][]) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-yspreadsheet-v2.d.ts","sourceRoot":"","sources":["../../use-yspreadsheet-v2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAEL,UAAU,EACV,KAAK,QAAQ,EAEb,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,KAAK,EACV,KAAK,SAAS,EACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AASzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAInC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"use-yspreadsheet-v2.d.ts","sourceRoot":"","sources":["../../use-yspreadsheet-v2.ts"],"names":[],"mappings":"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"}
|