@rowsncolumns/y-spreadsheet 16.0.0 → 16.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.
@@ -4,6 +4,7 @@ import type { Patch } from "immer";
4
4
  import type * as Y from "yjs";
5
5
  import type { YRowData, YSheetData } from "./use-yspreadsheet-v2";
6
6
  import type { CellKeyV3, CellDataV3, ParsedCellKeyV3, YjsRuntime } from "./types";
7
+ export * from "./helpers-v5";
7
8
  /**
8
9
  * Simplified structure to pass event data synchronously
9
10
  */
@@ -22,9 +23,9 @@ export type SheetDataEvent = {
22
23
  * @param userId
23
24
  * @param patches
24
25
  * @param source
25
- * @param sheetDataVersion - Version of sheet data format ("v2" or "v3"). Falls back to docMeta if undefined.
26
+ * @param sheetDataVersion - Version of sheet data format ("v2", "v3" or "v5"). Falls back to docMeta if undefined.
26
27
  */
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", yjsRuntime?: YjsRuntime) => void;
28
+ 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" | "v5", yjsRuntime?: YjsRuntime) => void;
28
29
  /**
29
30
  * Add sheet data to a yjs map using immer patches
30
31
  *
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../helpers.ts"],"names":[],"mappings":"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"}
@@ -9,13 +9,15 @@ var set_1 = tslib_1.__importDefault(require("lodash/set"));
9
9
  var get_1 = tslib_1.__importDefault(require("lodash/get"));
10
10
  var unset_1 = tslib_1.__importDefault(require("lodash/unset"));
11
11
  var yjs_runtime_1 = require("./yjs-runtime");
12
+ var helpers_v5_1 = require("./helpers-v5");
13
+ tslib_1.__exportStar(require("./helpers-v5"), exports);
12
14
  /**
13
15
  * Apply patches to yjs
14
16
  * @param doc
15
17
  * @param userId
16
18
  * @param patches
17
19
  * @param source
18
- * @param sheetDataVersion - Version of sheet data format ("v2" or "v3"). Falls back to docMeta if undefined.
20
+ * @param sheetDataVersion - Version of sheet data format ("v2", "v3" or "v5"). Falls back to docMeta if undefined.
19
21
  */
20
22
  var applyPatchesToYDoc = function (doc, userId, patches, source, sheetDataVersion, yjsRuntime) {
21
23
  var e_1, _a;
@@ -40,6 +42,7 @@ var applyPatchesToYDoc = function (doc, userId, patches, source, sheetDataVersio
40
42
  // Use param if provided, otherwise fall back to docMeta for backwards compatibility
41
43
  var resolvedVersion = sheetDataVersion !== null && sheetDataVersion !== void 0 ? sheetDataVersion : yDocMeta.get("sheetDataVersion");
42
44
  var isV3 = resolvedVersion === "v3";
45
+ var isV5 = resolvedVersion === "v5";
43
46
  try {
44
47
  for (var patches_1 = tslib_1.__values(patches), patches_1_1 = patches_1.next(); !patches_1_1.done; patches_1_1 = patches_1.next()) {
45
48
  var _d = tslib_1.__read(patches_1_1.value, 2), patch = _d[0], _e = _d[1], type = _e === void 0 ? "redo" : _e;
@@ -47,7 +50,10 @@ var applyPatchesToYDoc = function (doc, userId, patches, source, sheetDataVersio
47
50
  var patchKey = type === "redo" ? "patches" : "inversePatches";
48
51
  if (patch.sheetData) {
49
52
  var patches_2 = (_b = patch.sheetData) === null || _b === void 0 ? void 0 : _b[patchKey];
50
- if (isV3) {
53
+ if (isV5) {
54
+ (0, helpers_v5_1.addSheetDataPatchesV5)(doc, patches_2);
55
+ }
56
+ else if (isV3) {
51
57
  (0, exports.addSheetDataPatchesV3)(ySheetDataV3, patches_2);
52
58
  }
53
59
  else {
@@ -1 +1 @@
1
- {"root":["../../helpers.ts","../../index.ts","../../observables.ts","../../types.ts","../../use-yspreadsheet-v2.ts","../../use-yspreadsheet.ts","../../vitest.config.ts","../../yjs-runtime.ts"],"version":"5.8.3"}
1
+ {"root":["../../helpers-v5.ts","../../helpers.ts","../../index.ts","../../observables.ts","../../types.ts","../../use-yspreadsheet-v2.ts","../../use-yspreadsheet.ts","../../vitest.config.ts","../../yjs-runtime.ts"],"version":"5.8.3"}
@@ -74,11 +74,13 @@ export type UseYSpreadsheetPropsV2<T extends CellData, S extends Sheet, C extend
74
74
  */
75
75
  useV3?: boolean;
76
76
  /**
77
- * Current data version stored in the document ("v2" or "v3")
77
+ * Current data version stored in the document ("v2", "v3" or "v5")
78
78
  * If using V3 but version is "v2" or undefined, migration will occur
79
79
  * This should be provided by the backend/server
80
+ * "v5" (also when `docMeta.sheetDataVersion` says so): stable line ids, read
81
+ * from and written to `rncCells` (hot plane only, see `helpers-v5.ts`)
80
82
  */
81
- sheetDataVersion?: "v2" | "v3";
83
+ sheetDataVersion?: "v2" | "v3" | "v5";
82
84
  /**
83
85
  * Called after migration completes so backend can persist the new version
84
86
  */
@@ -1 +1 @@
1
- {"version":3,"file":"use-yspreadsheet-v2.d.ts","sourceRoot":"","sources":["../../use-yspreadsheet-v2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-yspreadsheet-v2.d.ts","sourceRoot":"","sources":["../../use-yspreadsheet-v2.ts"],"names":[],"mappings":"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"}
@@ -110,6 +110,18 @@ var useYSpreadsheetV2 = function (_a) {
110
110
  var ySheetDataV3 = (0, react_1.useMemo)(function () { return doc.getMap("sheetDataV3"); }, [doc]);
111
111
  // Doc metadata - used as fallback for version when prop is undefined
112
112
  var yDocMeta = (0, react_1.useMemo)(function () { return doc.getMap("docMeta"); }, [doc]);
113
+ // V5: the engine marks the doc in `docMeta`; read live (the marker may arrive with a sync)
114
+ var isV5Doc = (0, react_1.useCallback)(function () {
115
+ return sheetDataVersion === "v5" || yDocMeta.get("sheetDataVersion") === "v5";
116
+ }, [sheetDataVersion, yDocMeta]);
117
+ // V5: the composed style plane, folded on a full read and on a remote style
118
+ // change, updated in place by this hook's own writes
119
+ var stylesV5Ref = (0, react_1.useRef)(null);
120
+ var stylesV5 = (0, react_1.useCallback)(function () { var _a; return ((_a = stylesV5Ref.current) !== null && _a !== void 0 ? _a : (stylesV5Ref.current = (0, helpers_1.readStyleOverlayV5)(doc))); }, [doc]);
121
+ var readSheetDataV5 = (0, react_1.useCallback)(function () {
122
+ stylesV5Ref.current = (0, helpers_1.readStyleOverlayV5)(doc);
123
+ return (0, helpers_1.sheetDataV5ToV2)(doc, stylesV5Ref.current);
124
+ }, [doc]);
113
125
  var yDisableRecalc = (0, react_1.useMemo)(function () { return doc.getMap("disableRecalc"); }, [doc]);
114
126
  // Recalc cells
115
127
  var yRecalcCells = (0, react_1.useMemo)(function () { return doc.getArray("recalcCells"); }, [doc]);
@@ -261,6 +273,7 @@ var useYSpreadsheetV2 = function (_a) {
261
273
  // Trigger cell recalcs
262
274
  var syncRecalcCells = (0, react_1.useCallback)(function (recalcCells, origin) {
263
275
  var e_2, _a;
276
+ var readV5 = isV5Doc() ? (0, helpers_1.createCellReaderV5)(doc, stylesV5()) : null;
264
277
  try {
265
278
  for (var recalcCells_1 = tslib_1.__values(recalcCells), recalcCells_1_1 = recalcCells_1.next(); !recalcCells_1_1.done; recalcCells_1_1 = recalcCells_1.next()) {
266
279
  var _b = tslib_1.__read(recalcCells_1_1.value, 3), _1 = _b[0], position = _b[1], source = _b[2];
@@ -268,9 +281,11 @@ var useYSpreadsheetV2 = function (_a) {
268
281
  var isAgent = source === "agent"; // Agent already does the calculation
269
282
  // Read directly from Y.js to avoid race condition where recalcCells
270
283
  // observer fires before sheetData observer has updated React state
271
- var formulaValue = useV3
272
- ? getUserEnteredValueFromYDocV3(ySheetDataV3, position.sheetId, position.rowIndex, position.columnIndex)
273
- : getUserEnteredValueFromYDoc(ySheetDataV2, position.sheetId, position.rowIndex, position.columnIndex);
284
+ var formulaValue = readV5
285
+ ? (0, utils_1.getExtendedValueFormula)((0, utils_1.getCellUserEnteredValue)(readV5(position.sheetId, position.rowIndex, position.columnIndex)))
286
+ : useV3
287
+ ? getUserEnteredValueFromYDocV3(ySheetDataV3, position.sheetId, position.rowIndex, position.columnIndex)
288
+ : getUserEnteredValueFromYDoc(ySheetDataV2, position.sheetId, position.rowIndex, position.columnIndex);
274
289
  // Was this from a changeBatch event in the back-end?
275
290
  // To support client functions to run only
276
291
  var isChangeBatch = position.force && isAgent;
@@ -338,6 +353,9 @@ var useYSpreadsheetV2 = function (_a) {
338
353
  ySheetDataV3,
339
354
  useV3,
340
355
  reevaluateDerivationsForCells,
356
+ isV5Doc,
357
+ doc,
358
+ stylesV5,
341
359
  ]);
342
360
  // Setup initial sync
343
361
  var setupInitialSync = (0, react_1.useCallback)(function () {
@@ -394,8 +412,12 @@ var useYSpreadsheetV2 = function (_a) {
394
412
  }
395
413
  finally { if (e_3) throw e_3.error; }
396
414
  }
397
- // Load sheet data based on V2 or V3 mode
398
- if (useV3) {
415
+ // Load sheet data based on V2, V3 or V5 mode
416
+ if (isV5Doc()) {
417
+ // V5: hot plane keyed by line ids; never migrated to V3
418
+ onChangeSheetData === null || onChangeSheetData === void 0 ? void 0 : onChangeSheetData(readSheetDataV5());
419
+ }
420
+ else if (useV3) {
399
421
  // Check if we need to migrate from V2 to V3
400
422
  // Use prop if provided, otherwise fall back to yDocMeta for backwards compatibility
401
423
  var resolvedVersion = sheetDataVersion !== null && sheetDataVersion !== void 0 ? sheetDataVersion : yDocMeta.get("sheetDataVersion");
@@ -474,6 +496,8 @@ var useYSpreadsheetV2 = function (_a) {
474
496
  sheetDataVersion,
475
497
  onMigrationComplete,
476
498
  deleteV2AfterMigration,
499
+ isV5Doc,
500
+ readSheetDataV5,
477
501
  ]);
478
502
  /**
479
503
  * Replay the backend/agent recalc backlog into the local graph — and, on
@@ -616,6 +640,58 @@ var useYSpreadsheetV2 = function (_a) {
616
640
  ySheetDataV3.unobserve(callback);
617
641
  };
618
642
  }, [onChangeSheetData, ySheetDataV3, useV3]);
643
+ // Only for sheet Data (V5 docs): `rncCells`, `rncNotes`, the style planes and
644
+ // every sheet's id arrays. A change of an id array, a style plane (or of
645
+ // `docMeta`): full re-read; a cell or note change alone is applied
646
+ // incrementally. Roots are matched by name in `doc.share`, so a root a peer
647
+ // created after this effect ran is seen too.
648
+ (0, ui_1.useIsomorphicLayoutEffect)(function () {
649
+ var callback = function (transaction) {
650
+ var e_6, _a;
651
+ if (transaction.origin === "local" || !isV5Doc())
652
+ return;
653
+ var full = false;
654
+ var cellKeys = [];
655
+ try {
656
+ for (var _b = tslib_1.__values(doc.share), _c = _b.next(); !_c.done; _c = _b.next()) {
657
+ var _d = tslib_1.__read(_c.value, 2), name_1 = _d[0], type = _d[1];
658
+ var changed = transaction.changed.get(type);
659
+ if (!changed)
660
+ continue;
661
+ if (name_1 === "rncCells" || name_1 === "rncNotes") {
662
+ changed.forEach(function (key) { return key !== null && cellKeys.push(key); });
663
+ }
664
+ else if (name_1 === "docMeta" ||
665
+ name_1 === "rncCellStylesLog" ||
666
+ name_1 === "rncCellStyles" ||
667
+ name_1.startsWith("rncRowIds:") ||
668
+ name_1.startsWith("rncColIds:")) {
669
+ full = true;
670
+ }
671
+ }
672
+ }
673
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
674
+ finally {
675
+ try {
676
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
677
+ }
678
+ finally { if (e_6) throw e_6.error; }
679
+ }
680
+ if (full) {
681
+ onChangeSheetData(readSheetDataV5());
682
+ }
683
+ else if (cellKeys.length) {
684
+ onChangeSheetData(function (prevSheetData) {
685
+ var _a;
686
+ return (_a = (0, helpers_1.processSheetDataChangesV5)(cellKeys, prevSheetData, doc, stylesV5())) !== null && _a !== void 0 ? _a : prevSheetData;
687
+ });
688
+ }
689
+ };
690
+ doc.on("afterTransaction", callback);
691
+ return function () {
692
+ doc.off("afterTransaction", callback);
693
+ };
694
+ }, [doc, onChangeSheetData, isV5Doc, readSheetDataV5, stylesV5]);
619
695
  // CellXfs
620
696
  (0, ui_1.useIsomorphicLayoutEffect)(function () {
621
697
  // Subscribe to sheet data
@@ -633,16 +709,16 @@ var useYSpreadsheetV2 = function (_a) {
633
709
  }, [onChangeCellXfs, yCellXfs]);
634
710
  // All others
635
711
  (0, ui_1.useIsomorphicLayoutEffect)(function () {
636
- var e_6, _a;
712
+ var e_7, _a;
637
713
  var subs = [];
638
714
  var _loop_1 = function (mappingKey, ydoc, callback) {
639
715
  // Only observe Arrays (shared strings Map is handled separately if needed)
640
716
  if (ydoc instanceof yjs.Array) {
641
717
  var subscription = (0, observables_1.createDeepObservable)(ydoc).subscribe(function (events) {
642
- var e_7, _a;
718
+ var e_8, _a;
643
719
  var _b;
644
720
  try {
645
- for (var events_1 = (e_7 = void 0, tslib_1.__values(events)), events_1_1 = events_1.next(); !events_1_1.done; events_1_1 = events_1.next()) {
721
+ for (var events_1 = (e_8 = void 0, tslib_1.__values(events)), events_1_1 = events_1.next(); !events_1_1.done; events_1_1 = events_1.next()) {
646
722
  var event_1 = events_1_1.value;
647
723
  if (event_1.transaction.origin !== "local") {
648
724
  var json = ydoc.toJSON();
@@ -655,12 +731,12 @@ var useYSpreadsheetV2 = function (_a) {
655
731
  }
656
732
  }
657
733
  }
658
- catch (e_7_1) { e_7 = { error: e_7_1 }; }
734
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
659
735
  finally {
660
736
  try {
661
737
  if (events_1_1 && !events_1_1.done && (_a = events_1.return)) _a.call(events_1);
662
738
  }
663
- finally { if (e_7) throw e_7.error; }
739
+ finally { if (e_8) throw e_8.error; }
664
740
  }
665
741
  });
666
742
  subs.push(subscription);
@@ -686,12 +762,12 @@ var useYSpreadsheetV2 = function (_a) {
686
762
  _loop_1(mappingKey, ydoc, callback);
687
763
  }
688
764
  }
689
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
765
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
690
766
  finally {
691
767
  try {
692
768
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
693
769
  }
694
- finally { if (e_6) throw e_6.error; }
770
+ finally { if (e_7) throw e_7.error; }
695
771
  }
696
772
  return function () {
697
773
  subs.forEach(function (sub) { return sub.unsubscribe(); });
@@ -721,7 +797,7 @@ var useYSpreadsheetV2 = function (_a) {
721
797
  // Skip the first recalc cells change
722
798
  var sub = (0, observables_1.createObservable)(yRecalcCells).subscribe(onRecalcCellsChange);
723
799
  return function () {
724
- var e_8, _a;
800
+ var e_9, _a;
725
801
  sub.unsubscribe();
726
802
  try {
727
803
  for (var pending_1 = tslib_1.__values(pending), pending_1_1 = pending_1.next(); !pending_1_1.done; pending_1_1 = pending_1.next()) {
@@ -729,18 +805,18 @@ var useYSpreadsheetV2 = function (_a) {
729
805
  clearTimeout(timer);
730
806
  }
731
807
  }
732
- catch (e_8_1) { e_8 = { error: e_8_1 }; }
808
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
733
809
  finally {
734
810
  try {
735
811
  if (pending_1_1 && !pending_1_1.done && (_a = pending_1.return)) _a.call(pending_1);
736
812
  }
737
- finally { if (e_8) throw e_8.error; }
813
+ finally { if (e_9) throw e_9.error; }
738
814
  }
739
815
  };
740
816
  }, [syncRecalcCells, recalcCellsMaxEntries, synced, yRecalcCells]);
741
817
  // Broadcast patch
742
818
  var onBroadcastPatch = (0, react_1.useCallback)(function (patches) {
743
- var e_9, _a, e_10, _b;
819
+ var e_10, _a, e_11, _b;
744
820
  var _c;
745
821
  // Ignore push flag
746
822
  var disableRecalc = Boolean(patches.find(function (_a) {
@@ -776,12 +852,12 @@ var useYSpreadsheetV2 = function (_a) {
776
852
  }
777
853
  }
778
854
  }
779
- catch (e_9_1) { e_9 = { error: e_9_1 }; }
855
+ catch (e_10_1) { e_10 = { error: e_10_1 }; }
780
856
  finally {
781
857
  try {
782
858
  if (patches_1_1 && !patches_1_1.done && (_a = patches_1.return)) _a.call(patches_1);
783
859
  }
784
- finally { if (e_9) throw e_9.error; }
860
+ finally { if (e_10) throw e_10.error; }
785
861
  }
786
862
  // Containment for this non-leader write path: an error may only
787
863
  // fill a cell with no effective value (the blank-after-reload case)
@@ -792,13 +868,19 @@ var useYSpreadsheetV2 = function (_a) {
792
868
  // write merges ONLY the error effective value into the existing doc
793
869
  // cell, preserving every other persisted field.
794
870
  var persistableErrorCellPatches_1 = [];
871
+ var isV5_1 = isV5Doc();
872
+ var readV5 = isV5_1 && errorCellPatches.length
873
+ ? (0, helpers_1.createCellReaderV5)(doc, stylesV5())
874
+ : null;
795
875
  try {
796
876
  for (var errorCellPatches_1 = tslib_1.__values(errorCellPatches), errorCellPatches_1_1 = errorCellPatches_1.next(); !errorCellPatches_1_1.done; errorCellPatches_1_1 = errorCellPatches_1.next()) {
797
877
  var errorPatch = errorCellPatches_1_1.value;
798
878
  var _f = tslib_1.__read(errorPatch.path, 4), patchSheetId = _f[0], rowIndex = _f[1], columnIndex = _f[3];
799
- var currentCellData = useV3
800
- ? (_c = ySheetDataV3.get((0, helpers_1.createCellKeyV3)(Number(patchSheetId), Number(rowIndex), Number(columnIndex)))) === null || _c === void 0 ? void 0 : _c.value
801
- : (0, helpers_1.getCellDataFromYSheetData)(ySheetDataV2, patchSheetId, Number(rowIndex), Number(columnIndex));
879
+ var currentCellData = readV5
880
+ ? readV5(Number(patchSheetId), Number(rowIndex), Number(columnIndex))
881
+ : useV3
882
+ ? (_c = ySheetDataV3.get((0, helpers_1.createCellKeyV3)(Number(patchSheetId), Number(rowIndex), Number(columnIndex)))) === null || _c === void 0 ? void 0 : _c.value
883
+ : (0, helpers_1.getCellDataFromYSheetData)(ySheetDataV2, patchSheetId, Number(rowIndex), Number(columnIndex));
802
884
  var incomingCellData = errorPatch.value;
803
885
  if (!(0, helpers_1.shouldPersistErrorCellPatch)(currentCellData, incomingCellData)) {
804
886
  continue;
@@ -806,16 +888,19 @@ var useYSpreadsheetV2 = function (_a) {
806
888
  persistableErrorCellPatches_1.push(tslib_1.__assign(tslib_1.__assign({}, errorPatch), { value: (0, helpers_1.mergeErrorEffectiveValueIntoCellData)(currentCellData, incomingCellData) }));
807
889
  }
808
890
  }
809
- catch (e_10_1) { e_10 = { error: e_10_1 }; }
891
+ catch (e_11_1) { e_11 = { error: e_11_1 }; }
810
892
  finally {
811
893
  try {
812
894
  if (errorCellPatches_1_1 && !errorCellPatches_1_1.done && (_b = errorCellPatches_1.return)) _b.call(errorCellPatches_1);
813
895
  }
814
- finally { if (e_10) throw e_10.error; }
896
+ finally { if (e_11) throw e_11.error; }
815
897
  }
816
898
  if (persistableErrorCellPatches_1.length) {
817
899
  doc.transact(function () {
818
- if (useV3) {
900
+ if (isV5_1) {
901
+ (0, helpers_1.addSheetDataPatchesV5)(doc, persistableErrorCellPatches_1, origin, stylesV5());
902
+ }
903
+ else if (useV3) {
819
904
  (0, helpers_1.addSheetDataPatchesV3)(ySheetDataV3, persistableErrorCellPatches_1);
820
905
  }
821
906
  else {
@@ -825,8 +910,9 @@ var useYSpreadsheetV2 = function (_a) {
825
910
  }
826
911
  return;
827
912
  }
913
+ var isV5 = isV5Doc();
828
914
  doc.transact(function () {
829
- var e_11, _a, e_12, _b;
915
+ var e_12, _a, e_13, _b;
830
916
  var _c, _d, _e, _f;
831
917
  try {
832
918
  for (var patches_2 = tslib_1.__values(patches), patches_2_1 = patches_2.next(); !patches_2_1.done; patches_2_1 = patches_2.next()) {
@@ -841,7 +927,10 @@ var useYSpreadsheetV2 = function (_a) {
841
927
  var patchKey = type === "redo" ? "patches" : "inversePatches";
842
928
  if (patch.sheetData) {
843
929
  var patches_3 = (_c = patch.sheetData) === null || _c === void 0 ? void 0 : _c[patchKey];
844
- if (useV3) {
930
+ if (isV5) {
931
+ (0, helpers_1.addSheetDataPatchesV5)(doc, patches_3, origin, stylesV5());
932
+ }
933
+ else if (useV3) {
845
934
  (0, helpers_1.addSheetDataPatchesV3)(ySheetDataV3, patches_3);
846
935
  }
847
936
  else {
@@ -853,7 +942,7 @@ var useYSpreadsheetV2 = function (_a) {
853
942
  (0, helpers_1.applyMapPatches)(yCellXfs, patches_4);
854
943
  }
855
944
  try {
856
- for (var _j = (e_12 = void 0, tslib_1.__values(documentMap.entries())), _k = _j.next(); !_k.done; _k = _j.next()) {
945
+ for (var _j = (e_13 = void 0, tslib_1.__values(documentMap.entries())), _k = _j.next(); !_k.done; _k = _j.next()) {
857
946
  var _l = tslib_1.__read(_k.value, 2), mappingKey = _l[0], _m = tslib_1.__read(_l[1], 1), ydoc = _m[0];
858
947
  if (patch === null || patch === void 0 ? void 0 : patch[mappingKey]) {
859
948
  var patches_5 = (_e = patch[mappingKey]) === null || _e === void 0 ? void 0 : _e[patchKey];
@@ -872,12 +961,12 @@ var useYSpreadsheetV2 = function (_a) {
872
961
  }
873
962
  }
874
963
  }
875
- catch (e_12_1) { e_12 = { error: e_12_1 }; }
964
+ catch (e_13_1) { e_13 = { error: e_13_1 }; }
876
965
  finally {
877
966
  try {
878
967
  if (_k && !_k.done && (_b = _j.return)) _b.call(_j);
879
968
  }
880
- finally { if (e_12) throw e_12.error; }
969
+ finally { if (e_13) throw e_13.error; }
881
970
  }
882
971
  // Recalc cells
883
972
  if ((_f = patch.recalcCells) === null || _f === void 0 ? void 0 : _f[type]) {
@@ -894,12 +983,12 @@ var useYSpreadsheetV2 = function (_a) {
894
983
  }
895
984
  }
896
985
  }
897
- catch (e_11_1) { e_11 = { error: e_11_1 }; }
986
+ catch (e_12_1) { e_12 = { error: e_12_1 }; }
898
987
  finally {
899
988
  try {
900
989
  if (patches_2_1 && !patches_2_1.done && (_a = patches_2.return)) _a.call(patches_2);
901
990
  }
902
- finally { if (e_11) throw e_11.error; }
991
+ finally { if (e_12) throw e_12.error; }
903
992
  }
904
993
  }, origin);
905
994
  onAfterBroadcastPatch === null || onAfterBroadcastPatch === void 0 ? void 0 : onAfterBroadcastPatch(patches, doc);
@@ -916,6 +1005,8 @@ var useYSpreadsheetV2 = function (_a) {
916
1005
  isLeader,
917
1006
  recalcCellsMaxEntries,
918
1007
  useV3,
1008
+ isV5Doc,
1009
+ stylesV5,
919
1010
  ]);
920
1011
  // Listen to active cell change
921
1012
  (0, ui_1.useIsomorphicLayoutEffect)(function () {
@@ -936,7 +1027,7 @@ var useYSpreadsheetV2 = function (_a) {
936
1027
  // Awareness
937
1028
  (0, ui_1.useIsomorphicLayoutEffect)(function () {
938
1029
  var onChangeAwareness = function () {
939
- var e_13, _a;
1030
+ var e_14, _a;
940
1031
  var _b, _c, _d, _e, _f;
941
1032
  if (awareness) {
942
1033
  var collaborators = [];
@@ -976,12 +1067,12 @@ var useYSpreadsheetV2 = function (_a) {
976
1067
  });
977
1068
  }
978
1069
  }
979
- catch (e_13_1) { e_13 = { error: e_13_1 }; }
1070
+ catch (e_14_1) { e_14 = { error: e_14_1 }; }
980
1071
  finally {
981
1072
  try {
982
1073
  if (_h && !_h.done && (_a = _g.return)) _a.call(_g);
983
1074
  }
984
- finally { if (e_13) throw e_13.error; }
1075
+ finally { if (e_14) throw e_14.error; }
985
1076
  }
986
1077
  setUsers(collaborators);
987
1078
  }
@@ -0,0 +1,64 @@
1
+ import type { CellData, CellFormat } from "@rowsncolumns/spreadsheet";
2
+ import type { SheetData } from "@rowsncolumns/spreadsheet-state";
3
+ import type { Patch } from "immer";
4
+ import type * as Y from "yjs";
5
+ /** A parsed v5 cell key; line ids as decimal strings (an id can exceed 2^53). */
6
+ export type ParsedCellKeyV5 = {
7
+ sheetId: number;
8
+ rowId: string;
9
+ colId: string;
10
+ };
11
+ /** The composed style plane: cell key → format (`StyleOverlay`). */
12
+ export type StyleOverlayV5 = Map<string, CellFormat>;
13
+ /**
14
+ * A sheet's line ids in grid order (position = index + 1), as decimal strings.
15
+ * Later duplicates and non-id values are skipped, as the engine's index does.
16
+ */
17
+ export declare const readLineIds: (doc: Y.Doc, sheetId: number, axis: "row" | "column") => string[];
18
+ /** The `rncCells` / `rncNotes` key of a cell by its line ids. */
19
+ export declare const createCellKeyV5: (sheetId: number, rowId: string, colId: string) => string;
20
+ /** Parse a v5 key `"{sheetId}:{rowId}:{colId}"`; null when malformed. */
21
+ export declare const parseCellKeyV5: (key: string) => ParsedCellKeyV5 | null;
22
+ /**
23
+ * The composed style plane of a v5 doc (`refold_style_overlay`): the legacy
24
+ * `rncCellStyles` seed (`"{sheetId}!{A1}"`, the client-0 ids of that position)
25
+ * with every `rncCellStylesLog` buffer folded on in array order. Walks the log.
26
+ */
27
+ export declare const readStyleOverlayV5: (doc: Y.Doc) => StyleOverlayV5;
28
+ /**
29
+ * A v5 doc as V2 `SheetData` (same shape as `sheetDataV3ToV2`), hot plane only:
30
+ * every key of `rncCells`, `rncNotes` and the composed style plane composed as
31
+ * `composeCell` does (tombstones and orphans skipped).
32
+ */
33
+ export declare const sheetDataV5ToV2: <T extends CellData>(doc: Y.Doc, styles?: ReadonlyMap<string, CellFormat>) => SheetData<T>;
34
+ /**
35
+ * A reader of the cell at a 1-based position (`composeCell`), line ids read once
36
+ * per sheet. Undefined when nothing is there or the line is unnamed.
37
+ */
38
+ export declare const createCellReaderV5: <T extends CellData = CellData>(doc: Y.Doc, styles?: ReadonlyMap<string, CellFormat>) => (sheetId: number, rowIndex: number, columnIndex: number) => T | undefined;
39
+ /** `createCellReaderV5` for one cell (reads both id arrays: O(lines)). */
40
+ export declare const getCellV5: <T extends CellData = CellData>(doc: Y.Doc, sheetId: number, rowIndex: number, columnIndex: number, styles?: ReadonlyMap<string, CellFormat>) => T | undefined;
41
+ /**
42
+ * Apply changed `rncCells` / `rncNotes` keys to `currentSheetData` (copy-on-write,
43
+ * like `processSheetDataEventsV3`), `uf` from `styles`. Only valid while no id
44
+ * array and no style changed (those need `sheetDataV5ToV2`). Null when nothing changed.
45
+ */
46
+ export declare const processSheetDataChangesV5: <T extends CellData>(changedKeys: Iterable<string>, currentSheetData: SheetData<T>, doc: Y.Doc, styles?: ReadonlyMap<string, CellFormat>) => SheetData<T> | null;
47
+ /**
48
+ * Apply immer `SheetData` patches to a v5 doc in one transaction (`origin`, the
49
+ * caller's; nested in an open transaction it joins that one). Positional, like
50
+ * the v3 path: a row insert/delete arrives as rewritten rows and is applied as
51
+ * cell writes/removals at each position's line ids; no line is inserted or
52
+ * deleted. Writes past an axis name lines (client-0 padding, `ensure_lines`).
53
+ * `uf` changes append ONE `STYLE_LOG_V2` buffer to `rncCellStylesLog` and stay
54
+ * inline on the cell. `styles`, when given, is the caller's composed style plane
55
+ * (`readStyleOverlayV5`), used instead of folding the log and updated in place.
56
+ */
57
+ export declare const addSheetDataPatchesV5: (doc: Y.Doc, patches: Patch[] | undefined, origin?: unknown, styles?: StyleOverlayV5) => void;
58
+ /** Set one cell of a v5 doc (see `addSheetDataPatchesV5`). */
59
+ export declare const setCellV5: (doc: Y.Doc, sheetId: number, rowIndex: number, columnIndex: number, value: CellData) => void;
60
+ /** Remove one cell of a v5 doc (see `addSheetDataPatchesV5`). */
61
+ export declare const deleteCellV5: (doc: Y.Doc, sheetId: number, rowIndex: number, columnIndex: number) => void;
62
+ /** Remove every cell of a sheet of a v5 doc; its line ids and dimensions stay. */
63
+ export declare const deleteSheetV5: (doc: Y.Doc, sheetId: number) => void;
64
+ //# sourceMappingURL=helpers-v5.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers-v5.d.ts","sourceRoot":"","sources":["../../helpers-v5.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAOnC,OAAO,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC;AAE9B,iFAAiF;AACjF,MAAM,MAAM,eAAe,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,oEAAoE;AACpE,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAsDrD;;;GAGG;AACH,eAAO,MAAM,WAAW,GACtB,KAAK,CAAC,CAAC,GAAG,EACV,SAAS,MAAM,EACf,MAAM,KAAK,GAAG,QAAQ,KACrB,MAAM,EAYR,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,EACf,OAAO,MAAM,EACb,OAAO,MAAM,KACZ,MAAwC,CAAC;AAE5C,yEAAyE;AACzE,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,KAAG,eAAe,GAAG,IAc9D,CAAC;AAyHF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,KAAK,CAAC,CAAC,GAAG,KAAG,cAoB/C,CAAC;AAqFF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,QAAQ,EAChD,KAAK,CAAC,CAAC,GAAG,EACV,SAAQ,WAAW,CAAC,MAAM,EAAE,UAAU,CAA2B,KAChE,SAAS,CAAC,CAAC,CAqBb,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC9D,KAAK,CAAC,CAAC,GAAG,EACV,SAAQ,WAAW,CAAC,MAAM,EAAE,UAAU,CAA2B,MAGzD,SAAS,MAAM,EAAE,UAAU,MAAM,EAAE,aAAa,MAAM,KAAG,CAAC,GAAG,SAWtE,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,GAAG,QAAQ,EACrD,KAAK,CAAC,CAAC,GAAG,EACV,SAAS,MAAM,EACf,UAAU,MAAM,EAChB,aAAa,MAAM,EACnB,SAAS,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,KACvC,CAAC,GAAG,SAA+E,CAAC;AAEvF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,QAAQ,EAC1D,aAAa,QAAQ,CAAC,MAAM,CAAC,EAC7B,kBAAkB,SAAS,CAAC,CAAC,CAAC,EAC9B,KAAK,CAAC,CAAC,GAAG,EACV,SAAQ,WAAW,CAAC,MAAM,EAAE,UAAU,CAA2B,KAChE,SAAS,CAAC,CAAC,CAAC,GAAG,IAoCjB,CAAC;AAuSF;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,GAChC,KAAK,CAAC,CAAC,GAAG,EACV,SAAS,KAAK,EAAE,GAAG,SAAS,EAC5B,SAAQ,OAAc,EACtB,SAAS,cAAc,SA6CxB,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,SAAS,GACpB,KAAK,CAAC,CAAC,GAAG,EACV,SAAS,MAAM,EACf,UAAU,MAAM,EAChB,aAAa,MAAM,EACnB,OAAO,QAAQ,KACd,IAGC,CAAC;AAEL,iEAAiE;AACjE,eAAO,MAAM,YAAY,GACvB,KAAK,CAAC,CAAC,GAAG,EACV,SAAS,MAAM,EACf,UAAU,MAAM,EAChB,aAAa,MAAM,KAClB,IAGC,CAAC;AAEL,kFAAkF;AAClF,eAAO,MAAM,aAAa,GAAI,KAAK,CAAC,CAAC,GAAG,EAAE,SAAS,MAAM,KAAG,IACK,CAAC"}