@ai-matrx/office 0.8.44 → 0.8.45
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/CHANGELOG.md +17 -2
- package/dist/collab-sheets-transform.cjs +12 -0
- package/dist/collab-sheets-transform.cjs.map +1 -1
- package/dist/collab-sheets-transform.js +12 -0
- package/dist/collab-sheets-transform.js.map +1 -1
- package/dist/docs.cjs +85 -24
- package/dist/docs.cjs.map +1 -1
- package/dist/docs.d.cts +15 -1
- package/dist/docs.d.ts +15 -1
- package/dist/docs.js +65 -4
- package/dist/docs.js.map +1 -1
- package/dist/univer-collab.cjs +196 -15
- package/dist/univer-collab.cjs.map +1 -1
- package/dist/univer-collab.d.cts +68 -7
- package/dist/univer-collab.d.ts +68 -7
- package/dist/univer-collab.js +196 -15
- package/dist/univer-collab.js.map +1 -1
- package/package.json +6 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.8.45
|
|
4
|
+
|
|
5
|
+
- Sheets co-editing, typing into a cell a collaborator writes at the same moment (live attack F1, "$1,234.50" vs "$7" became 507): Univer rewrote an open cell editor's text whenever any write landed on its cell, caret back at 0, and Enter committed the splice. `univerSheetsOtPort` takes `cellEditor` (`editorBridgeCell(IEditorBridgeService)`); while it is open, a remote op touching its cell or sheet is held (`SheetsOtPort.defers`), with every op after it, and the person's commit is rebased over them when the editor closes. A held op never feeds a quiet hash. Consumer action: lend `cellEditor: editorBridgeCell(injector.get(IEditorBridgeService))`.
|
|
6
|
+
- Sheets transform: a value and its number format are one unit. Whoever wins a cell's content slot wins its `n` too (the winner clears the loser's `n`, the loser drops its own). Consumer action: none.
|
|
7
|
+
- Sheets co-editing, filters (live attack hash_mismatch at rev 90): `filterServiceRange(() => SheetsFilterService)` is the one `filterRange` every host lends; it keeps the stored range's `rangeType`, so a restored or traveling filter range saves the same on every seat. The fold lends it too. Consumer action: lend `filterRange: filterServiceRange(() => injector.get(SheetsFilterService))`.
|
|
8
|
+
- Sheets co-editing: a new notice `{ kind: "resynced", reason }` when a disagreement (quiet hash, save hash, ack) reloaded the seat and what the person sees changed. One per heal. Consumer action: show it.
|
|
9
|
+
- Sheets co-editing, a removed sheet (live attack F4): after this seat removes a sheet, every formula still naming it becomes #REF! here and travels in the same group; a lone mutation's group reads sheet names from before it. Consumer action: none.
|
|
10
|
+
- Docs co-editing, undo and redo (walk 2 F1): an undo item's other side is now rewritten from the real document each time the item runs, and stack items below the top meet a collaborator's edit carried past the items above. An undo or redo around an Enter, a paragraph join or a format no longer deletes a collaborator's letters or leaves its own text behind. Consumer action: none.
|
|
11
|
+
- Docs, a restore or a reload onto the room's document (walk 2 F3): `DocumentModel` carries each view's caret through every whole-document load (`mapOffsetThroughReplace`), and a guard before each local rich-text mutation (`keepInsideTheBody`) never lets an edit insert after the body's closing mark. Letters typed after a restore land at the end of the restored text, never inside its words or past its end. Consumer action: none (a view port with `selection` gets it; the frontend's does).
|
|
12
|
+
|
|
3
13
|
## 0.8.44
|
|
4
14
|
|
|
5
|
-
|
|
6
|
-
|
|
15
|
+
SOURCE CHANGED WITH NO RELEASE NOTE. This release shipped source changes that nobody described in an Unreleased entry,
|
|
16
|
+
so they may include breaking API changes. Consumer action is UNKNOWN: read the diff before upgrading.
|
|
17
|
+
Diff: `git diff b1d814b5c9 8607ef52a9 -- apps/shared/office/src`
|
|
18
|
+
|
|
19
|
+
Changed shipped source files (2):
|
|
20
|
+
- `apps/shared/office/src/docs/document-ot-room.ts`
|
|
21
|
+
- `apps/shared/office/src/sheets/workbook-ot-room.ts`
|
|
7
22
|
|
|
8
23
|
## 0.8.43
|
|
9
24
|
|
|
@@ -1099,6 +1099,18 @@ function transformCell(X, Y, side) {
|
|
|
1099
1099
|
if (styleKeys(xs).length !== styleKeys(kept ?? {}).length) xLost = true;
|
|
1100
1100
|
}
|
|
1101
1101
|
}
|
|
1102
|
+
if (hasContent(X) && hasContent(Y)) {
|
|
1103
|
+
const has = (s) => !!s && typeof s === "object" && "n" in s;
|
|
1104
|
+
const outS = out.s;
|
|
1105
|
+
if (side === "left" && !has(X.s) && has(Y.s) && X.s !== null) {
|
|
1106
|
+
out.s = { ...outS && typeof outS === "object" ? outS : {}, n: null };
|
|
1107
|
+
} else if (side === "right" && outS && typeof outS === "object" && "n" in outS) {
|
|
1108
|
+
const rest = withoutStyleKeys(outS, /* @__PURE__ */ new Set(["n"]));
|
|
1109
|
+
if (rest) out.s = rest;
|
|
1110
|
+
else delete out.s;
|
|
1111
|
+
xLost = true;
|
|
1112
|
+
}
|
|
1113
|
+
}
|
|
1102
1114
|
return { entries: Object.keys(out).length ? [out, ...tail] : tail, xLost, yLost };
|
|
1103
1115
|
}
|
|
1104
1116
|
function transformCellsOverCells(x, y, side) {
|