@ai-matrx/office 0.8.8 → 0.8.10
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 +31 -2
- package/dist/{chunk-5JAZ32SX.js → chunk-2X3KR6Y4.js} +2 -2
- package/dist/{chunk-5T2M6LSI.js → chunk-455FSVQN.js} +1 -1
- package/dist/chunk-455FSVQN.js.map +1 -0
- package/dist/{chunk-47MIGBMH.js → chunk-DY5TGHBI.js} +2 -2
- package/dist/{chunk-47MIGBMH.js.map → chunk-DY5TGHBI.js.map} +1 -1
- package/dist/{chunk-556EUPET.cjs → chunk-HX5TXQIX.cjs} +7 -7
- package/dist/{chunk-556EUPET.cjs.map → chunk-HX5TXQIX.cjs.map} +1 -1
- package/dist/{chunk-MQB2ZK2F.cjs → chunk-NSU6EVJK.cjs} +6 -6
- package/dist/{chunk-MQB2ZK2F.cjs.map → chunk-NSU6EVJK.cjs.map} +1 -1
- package/dist/{chunk-QZE7HBZB.cjs → chunk-O6F2NGLW.cjs} +1 -1
- package/dist/{chunk-QZE7HBZB.cjs.map → chunk-O6F2NGLW.cjs.map} +1 -1
- package/dist/{chunk-UBLEFLES.cjs → chunk-XAIKXHHJ.cjs} +1 -1
- package/dist/{chunk-UBLEFLES.cjs.map → chunk-XAIKXHHJ.cjs.map} +1 -1
- package/dist/{chunk-Z247F527.js → chunk-Y24EYKSD.js} +1 -1
- package/dist/{chunk-Z247F527.js.map → chunk-Y24EYKSD.js.map} +1 -1
- package/dist/collab-sheets-transform.cjs.map +1 -1
- package/dist/collab-sheets-transform.d.cts +2 -2
- package/dist/collab-sheets-transform.d.ts +2 -2
- package/dist/collab-sheets-transform.js.map +1 -1
- package/dist/core-page-setup-apply.cjs.map +1 -1
- package/dist/core-page-setup-apply.d.cts +1 -1
- package/dist/core-page-setup-apply.d.ts +1 -1
- package/dist/core-page-setup-apply.js.map +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.cts +1 -1
- package/dist/core.d.ts +1 -1
- package/dist/core.js.map +1 -1
- package/dist/docs-io.cjs +9 -9
- package/dist/docs-io.js +2 -2
- package/dist/docs-tools.cjs +7 -7
- package/dist/docs-tools.cjs.map +1 -1
- package/dist/docs-tools.d.cts +2 -2
- package/dist/docs-tools.d.ts +2 -2
- package/dist/docs-tools.js +2 -2
- package/dist/docs-tools.js.map +1 -1
- package/dist/docs.cjs +47 -21
- package/dist/docs.cjs.map +1 -1
- package/dist/docs.d.cts +28 -2
- package/dist/docs.d.ts +28 -2
- package/dist/docs.js +29 -3
- package/dist/docs.js.map +1 -1
- package/dist/{document-page-style-BFLrgdLI.d.cts → document-page-style-6yKEDjHE.d.cts} +2 -2
- package/dist/{document-page-style-BFLrgdLI.d.ts → document-page-style-6yKEDjHE.d.ts} +2 -2
- package/dist/{matrxImagePorts-JDFYE4QI.cjs → matrxImagePorts-46SGQTLN.cjs} +1 -1
- package/dist/matrxImagePorts-46SGQTLN.cjs.map +1 -0
- package/dist/{matrxImagePorts-VPBBUADM.js → matrxImagePorts-P6SSF25Q.js} +1 -1
- package/dist/matrxImagePorts-P6SSF25Q.js.map +1 -0
- package/dist/sheets-xlsx.cjs +27 -27
- package/dist/sheets-xlsx.cjs.map +1 -1
- package/dist/sheets-xlsx.d.cts +3 -3
- package/dist/sheets-xlsx.d.ts +3 -3
- package/dist/sheets-xlsx.js +3 -3
- package/dist/sheets-xlsx.js.map +1 -1
- package/dist/sheets.cjs.map +1 -1
- package/dist/sheets.d.cts +1 -1
- package/dist/sheets.d.ts +1 -1
- package/dist/sheets.js.map +1 -1
- package/dist/univer-collab.cjs.map +1 -1
- package/dist/univer-collab.d.cts +2 -2
- package/dist/univer-collab.d.ts +2 -2
- package/dist/univer-collab.js.map +1 -1
- package/dist/univer-realtime.cjs.map +1 -1
- package/dist/univer-realtime.js.map +1 -1
- package/dist/univer.cjs.map +1 -1
- package/dist/univer.d.cts +6 -6
- package/dist/univer.d.ts +6 -6
- package/dist/univer.js.map +1 -1
- package/dist/xlsx-to-univer-NWCHAWJC.cjs +7 -0
- package/dist/{xlsx-to-univer-AQAXU3TC.cjs.map → xlsx-to-univer-NWCHAWJC.cjs.map} +1 -1
- package/dist/xlsx-to-univer-YEYX47EE.js +7 -0
- package/package.json +3 -3
- package/dist/chunk-5T2M6LSI.js.map +0 -1
- package/dist/matrxImagePorts-JDFYE4QI.cjs.map +0 -1
- package/dist/matrxImagePorts-VPBBUADM.js.map +0 -1
- package/dist/xlsx-to-univer-AQAXU3TC.cjs +0 -7
- package/dist/xlsx-to-univer-OPMMBWEW.js +0 -7
- /package/dist/{chunk-5JAZ32SX.js.map → chunk-2X3KR6Y4.js.map} +0 -0
- /package/dist/{xlsx-to-univer-OPMMBWEW.js.map → xlsx-to-univer-YEYX47EE.js.map} +0 -0
package/dist/docs-tools.cjs
CHANGED
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
var
|
|
19
|
-
require('./chunk-
|
|
18
|
+
var _chunkNSU6EVJKcjs = require('./chunk-NSU6EVJK.cjs');
|
|
19
|
+
require('./chunk-XAIKXHHJ.cjs');
|
|
20
20
|
|
|
21
21
|
// src/docs/doc-edit-ops.ts
|
|
22
22
|
function createDocEditOps(deps) {
|
|
@@ -33,7 +33,7 @@ function createDocEditOps(deps) {
|
|
|
33
33
|
const r = await range();
|
|
34
34
|
const stream = _optionalChain([snapshot, 'call', _18 => _18(), 'optionalAccess', _19 => _19.body, 'optionalAccess', _20 => _20.dataStream]);
|
|
35
35
|
if (!d || !r || typeof stream !== "string") return false;
|
|
36
|
-
const plan =
|
|
36
|
+
const plan = _chunkNSU6EVJKcjs.blockInsertPlan.call(void 0, stream, r.startOffset);
|
|
37
37
|
if (plan.breakAt === null) {
|
|
38
38
|
_optionalChain([d, 'access', _21 => _21.setSelection, 'optionalCall', _22 => _22(plan.at, plan.at)]);
|
|
39
39
|
return true;
|
|
@@ -51,16 +51,16 @@ function createDocEditOps(deps) {
|
|
|
51
51
|
async insertMarkdown(markdown) {
|
|
52
52
|
const d = doc();
|
|
53
53
|
if (!d || !await toBlockStart()) return false;
|
|
54
|
-
return exec("doc.command.inner-paste", { unitId: d.getId(), doc:
|
|
54
|
+
return exec("doc.command.inner-paste", { unitId: d.getId(), doc: _chunkNSU6EVJKcjs.markdownFragment.call(void 0, markdown) });
|
|
55
55
|
},
|
|
56
|
-
bookmarks: () =>
|
|
56
|
+
bookmarks: () => _chunkNSU6EVJKcjs.collectBookmarks.call(void 0, snapshot()),
|
|
57
57
|
async addBookmark(name) {
|
|
58
58
|
const d = doc();
|
|
59
59
|
const r = await range();
|
|
60
60
|
if (!d || !r) return false;
|
|
61
61
|
_optionalChain([d, 'access', _25 => _25.setSelection, 'optionalCall', _26 => _26(r.startOffset, r.startOffset)]);
|
|
62
62
|
const id = `bm_${Math.random().toString(36).slice(2, 10)}`;
|
|
63
|
-
return exec("doc.command.replace-selection", { unitId: d.getId(), body:
|
|
63
|
+
return exec("doc.command.replace-selection", { unitId: d.getId(), body: _chunkNSU6EVJKcjs.bookmarkBody.call(void 0, id, name) });
|
|
64
64
|
},
|
|
65
65
|
async deleteBookmark(b) {
|
|
66
66
|
const d = doc();
|
|
@@ -124,5 +124,5 @@ async function writeDocumentStyleKey(api, key, value) {
|
|
|
124
124
|
|
|
125
125
|
|
|
126
126
|
|
|
127
|
-
exports.BOOKMARK_ANCHOR =
|
|
127
|
+
exports.BOOKMARK_ANCHOR = _chunkNSU6EVJKcjs.BOOKMARK_ANCHOR; exports.BOOKMARK_RANGE_TYPE = _chunkNSU6EVJKcjs.BOOKMARK_RANGE_TYPE; exports.BUILDING_BLOCKS = _chunkNSU6EVJKcjs.BUILDING_BLOCKS; exports.DOCUMENT_LANGUAGES = _chunkNSU6EVJKcjs.DOCUMENT_LANGUAGES; exports.DOCUMENT_LANGUAGE_KEY = _chunkNSU6EVJKcjs.DOCUMENT_LANGUAGE_KEY; exports.blockInsertPlan = _chunkNSU6EVJKcjs.blockInsertPlan; exports.bookmarkBody = _chunkNSU6EVJKcjs.bookmarkBody; exports.bookmarkFromHash = _chunkNSU6EVJKcjs.bookmarkFromHash; exports.bookmarkHash = _chunkNSU6EVJKcjs.bookmarkHash; exports.cleanBookmarkName = _chunkNSU6EVJKcjs.cleanBookmarkName; exports.collectBookmarks = _chunkNSU6EVJKcjs.collectBookmarks; exports.createDocEditOps = createDocEditOps; exports.looksLikeMarkdown = _chunkNSU6EVJKcjs.looksLikeMarkdown; exports.markdownFragment = _chunkNSU6EVJKcjs.markdownFragment; exports.paragraphBorderParams = _chunkNSU6EVJKcjs.paragraphBorderParams; exports.readDocumentLanguage = _chunkNSU6EVJKcjs.readDocumentLanguage; exports.rulerGeometry = _chunkNSU6EVJKcjs.rulerGeometry; exports.writeDocumentStyleKey = writeDocumentStyleKey;
|
|
128
128
|
//# sourceMappingURL=docs-tools.cjs.map
|
package/dist/docs-tools.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/aidream/aidream/apps/shared/office/dist/docs-tools.cjs","../src/docs/doc-edit-ops.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACA;ACqBO,SAAS,gBAAA,CAAiB,IAAA,EAAsF;AACrH,EAAA,MAAM,IAAA,EAAM,CAAA,EAAA,oCAAM,IAAA,mBAAK,GAAA,mBAAI,CAAA,6BAAG,iBAAA,0BAAA,CAAoB,GAAA,UAAK,MAAA;AACvD,EAAA,MAAM,SAAA,EAAW,CAAA,EAAA,oCAAM,GAAA,mBAAI,CAAA,6BAAG,IAAA,0BAAA,CAAO,GAAA,UAAK,MAAA;AAC1C,EAAA,MAAM,MAAA,EAAQ,MAAA,CAAA,EAAA,GAA2C;AACvD,IAAA,MAAM,EAAE,2BAA2B,EAAA,EAAI,MAAM,4DAAA,CAAO,gBAAgB,GAAA;AACpE,IAAA,MAAM,KAAA,kBAAO,IAAA,qBAAK,QAAA,mBAAS,CAAA,+BAAG,GAAA,qBAAiE,0BAA0B,CAAA,+BAAG,kBAAA,4BAAA,CAAqB,GAAA;AACjJ,IAAA,wBAAO,IAAA,UAAQ,MAAA;AAAA,EACjB,CAAA;AACA,EAAA,MAAM,KAAA,EAAO,MAAA,CAAO,EAAA,EAAY,MAAA,EAAA,GAAoB,sBAAM,IAAA,uBAAK,GAAA,qBAAI,CAAA,+BAAG,cAAA,qBAAe,EAAA,EAAI,MAAM,IAAA,IAAO,KAAA;AACtG,EAAA,MAAM,aAAA,EAAe,MAAA,CAAA,EAAA,GAA8B;AACjD,IAAA,MAAM,EAAA,EAAI,GAAA,CAAI,CAAA;AACd,IAAA,MAAM,EAAA,EAAI,MAAM,KAAA,CAAM,CAAA;AACtB,IAAA,MAAM,OAAA,kBAAU,QAAA,qBAAS,CAAA,+BAAiD,IAAA,+BAAM,YAAA;AAChF,IAAA,GAAA,CAAI,CAAC,EAAA,GAAK,CAAC,EAAA,GAAK,OAAO,OAAA,IAAW,QAAA,EAAU,OAAO,KAAA;AACnD,IAAA,MAAM,KAAA,EAAO,+CAAA,MAAgB,EAAQ,CAAA,CAAE,WAAW,CAAA;AAClD,IAAA,GAAA,CAAI,IAAA,CAAK,QAAA,IAAY,IAAA,EAAM;AACzB,sBAAA,CAAA,uBAAE,YAAA,4BAAA,CAAe,IAAA,CAAK,EAAA,EAAI,IAAA,CAAK,EAAE,GAAA;AACjC,MAAA,OAAO,IAAA;AAAA,IACT;AACA,oBAAA,CAAA,uBAAE,YAAA,4BAAA,CAAe,IAAA,CAAK,OAAA,EAAS,IAAA,CAAK,OAAO,GAAA;AAC3C,IAAA,OAAO,IAAA,CAAK,wBAAA,EAA0B,EAAE,MAAA,EAAQ,CAAA,CAAE,KAAA,CAAM,EAAE,CAAC,CAAA;AAAA,EAC7D,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,QAAA;AAAA,IACA,MAAM,UAAA,CAAW,IAAA,EAAM;AACrB,MAAA,GAAA,CAAI,CAAC,KAAA,GAAQ,CAAE,MAAM,KAAA,CAAM,CAAA,EAAI,OAAO,KAAA;AACtC,MAAA,OAAO,IAAA,CAAK,sCAAA,EAAwC,EAAE,KAAA,EAAO,KAAK,CAAC,CAAA;AAAA,IACrE,CAAA;AAAA,IACA,YAAA;AAAA,IACA,MAAM,cAAA,CAAe,QAAA,EAAU;AAC7B,MAAA,MAAM,EAAA,EAAI,GAAA,CAAI,CAAA;AACd,MAAA,GAAA,CAAI,CAAC,EAAA,GAAK,CAAE,MAAM,YAAA,CAAa,CAAA,EAAI,OAAO,KAAA;AAC1C,MAAA,OAAO,IAAA,CAAK,yBAAA,EAA2B,EAAE,MAAA,EAAQ,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,GAAA,EAAK,gDAAA,QAAyB,EAAE,CAAC,CAAA;AAAA,IAC/F,CAAA;AAAA,IACA,SAAA,EAAW,CAAA,EAAA,GAAM,gDAAA,QAAiB,CAAS,CAAC,CAAA;AAAA,IAC5C,MAAM,WAAA,CAAY,IAAA,EAAM;AACtB,MAAA,MAAM,EAAA,EAAI,GAAA,CAAI,CAAA;AACd,MAAA,MAAM,EAAA,EAAI,MAAM,KAAA,CAAM,CAAA;AACtB,MAAA,GAAA,CAAI,CAAC,EAAA,GAAK,CAAC,CAAA,EAAG,OAAO,KAAA;AACrB,sBAAA,CAAA,uBAAE,YAAA,4BAAA,CAAe,CAAA,CAAE,WAAA,EAAa,CAAA,CAAE,WAAW,GAAA;AAC7C,MAAA,MAAM,GAAA,EAAK,CAAA,GAAA,EAAM,IAAA,CAAK,MAAA,CAAO,CAAA,CAAE,QAAA,CAAS,EAAE,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,EAAE,CAAC,CAAA,CAAA;AACC,MAAA;AAC3D,IAAA;AACwB,IAAA;AACR,MAAA;AACC,MAAA;AAC4B,sBAAA;AACc,MAAA;AAC3D,IAAA;AAC4B,IAAA;AACU,MAAA;AACzB,MAAA;AAC0B,MAAA;AACL,MAAA;AAGY,MAAA;AAC2C,sBAAA;AACzF,IAAA;AACuB,IAAA;AACiC,MAAA;AACmF,MAAA;AAC5F,MAAA;AACJ,QAAA;AACxC,MAAA;AAC6B,MAAA;AAChC,IAAA;AACuB,IAAA;AAC+B,MAAA;AACtD,IAAA;AACa,IAAA;AACyB,sBAAA;AACtC,IAAA;AACF,EAAA;AACF;AAGqG;AAC/D,EAAA;AAC1B,EAAA;AAC4J,EAAA;AACjJ,EAAA;AACF,EAAA;AAC4B,EAAA;AACf,EAAA;AACE,EAAA;AAC2B,EAAA;AAChD,EAAA;AACgD,EAAA;AAC/D;ADxB+D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/aidream/aidream/apps/shared/office/dist/docs-tools.cjs","sourcesContent":[null,"/**\n * The Univer-facing half of the Docs tools: insert text, markdown and bookmarks at the caret, move\n * the selection, read the live snapshot, set view-only. Every operation is a real Univer command.\n */\n\nimport { blockInsertPlan, bookmarkBody, collectBookmarks, markdownFragment, type Bookmark } from \"./doc-tools-core\";\n\ninterface ApiLike {\n executeCommand(id: string, params?: object): Promise<unknown> | unknown;\n getActiveDocument?(): {\n getId(): string;\n save?(): unknown;\n setSelection?(a: number, b: number): void;\n getPermission?(): { setReadOnly(): Promise<void>; setEditable(editable?: boolean): Promise<void> };\n } | null;\n}\ninterface InjectorLike {\n get<T>(token: unknown): T | undefined;\n}\ninterface TextRangeLike {\n startOffset: number;\n endOffset: number;\n}\n\nexport interface DocEditOps {\n insertText(text: string): Promise<boolean>;\n /** A block (building block) at a new paragraph, never mid-line. */\n insertMarkdown(markdown: string): Promise<boolean>;\n /** Move the caret to where a block goes (`blockInsertPlan`); false when there is no caret. */\n toBlockStart(): Promise<boolean>;\n bookmarks(): Bookmark[];\n addBookmark(name: string): Promise<boolean>;\n deleteBookmark(b: Bookmark): Promise<boolean>;\n goTo(offset: number): void;\n snapshot(): unknown;\n setViewOnly(viewOnly: boolean): Promise<void>;\n /** Calls back when Univer refuses an edit (Viewing mode); returns the unsubscribe. */\n onEditDenied(cb: () => void): Promise<() => void>;\n openImagePanel(): Promise<boolean>;\n}\n\nexport function createDocEditOps(deps: { api: () => ApiLike | null; injector: () => InjectorLike | null }): DocEditOps {\n const doc = () => deps.api()?.getActiveDocument?.() ?? null;\n const snapshot = () => doc()?.save?.() ?? null;\n const range = async (): Promise<TextRangeLike | null> => {\n const { DocSelectionManagerService } = await import(\"@univerjs/docs\");\n const live = deps.injector()?.get<{ getActiveTextRange?(): TextRangeLike | null | undefined }>(DocSelectionManagerService)?.getActiveTextRange?.();\n return live ?? null;\n };\n const exec = async (id: string, params: object) => (await deps.api()?.executeCommand(id, params)) !== false;\n const toBlockStart = async (): Promise<boolean> => {\n const d = doc();\n const r = await range();\n const stream = (snapshot() as { body?: { dataStream?: string } } | null)?.body?.dataStream;\n if (!d || !r || typeof stream !== \"string\") return false;\n const plan = blockInsertPlan(stream, r.startOffset);\n if (plan.breakAt === null) {\n d.setSelection?.(plan.at, plan.at);\n return true;\n }\n d.setSelection?.(plan.breakAt, plan.breakAt);\n return exec(\"doc.command.break-line\", { unitId: d.getId() });\n };\n\n return {\n snapshot,\n async insertText(text) {\n if (!text || !(await range())) return false;\n return exec(\"doc.command.insert-special-character\", { value: text });\n },\n toBlockStart,\n async insertMarkdown(markdown) {\n const d = doc();\n if (!d || !(await toBlockStart())) return false;\n return exec(\"doc.command.inner-paste\", { unitId: d.getId(), doc: markdownFragment(markdown) });\n },\n bookmarks: () => collectBookmarks(snapshot()),\n async addBookmark(name) {\n const d = doc();\n const r = await range();\n if (!d || !r) return false;\n d.setSelection?.(r.startOffset, r.startOffset);\n const id = `bm_${Math.random().toString(36).slice(2, 10)}`;\n return exec(\"doc.command.replace-selection\", { unitId: d.getId(), body: bookmarkBody(id, name) });\n },\n async deleteBookmark(b) {\n const d = doc();\n if (!d) return false;\n d.setSelection?.(b.offset + 1, b.offset + 1);\n return exec(\"doc.command.delete-left\", { unitId: d.getId() });\n },\n async setViewOnly(viewOnly) {\n const perm = doc()?.getPermission?.();\n if (!perm) return;\n if (viewOnly) await perm.setReadOnly();\n else await perm.setEditable(true);\n // Univer's own refusal notice (\"This content is protected…\") stays off while viewing; the\n // editor shows ours through onEditDenied.\n const { IPermissionService } = await import(\"@univerjs/core\");\n deps.injector()?.get<{ setShowComponents?(show: boolean): void }>(IPermissionService)?.setShowComponents?.(!viewOnly);\n },\n async onEditDenied(cb) {\n const { ErrorService } = await import(\"@univerjs/core\");\n const errors = deps.injector()?.get<{ error$?: { subscribe(fn: (e: { code?: string }) => void): { unsubscribe(): void } } }>(ErrorService);\n const sub = errors?.error$?.subscribe((e) => {\n if (e.code === \"PERMISSION_DENIED\") cb();\n });\n return () => sub?.unsubscribe();\n },\n async openImagePanel() {\n return exec(\"sidebar.operation.doc-image\", { value: \"doc-image\" });\n },\n goTo(offset) {\n doc()?.setSelection?.(offset, offset);\n },\n };\n}\n\n/** Write one plain key onto the document style (it rides the snapshot like the paper
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/aidream/aidream/apps/shared/office/dist/docs-tools.cjs","../src/docs/doc-edit-ops.ts"],"names":[],"mappings":"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","file":"/home/runner/work/aidream/aidream/apps/shared/office/dist/docs-tools.cjs","sourcesContent":[null,"/**\n * The Univer-facing half of the Docs tools: insert text, markdown and bookmarks at the caret, move\n * the selection, read the live snapshot, set view-only. Every operation is a real Univer command.\n */\n\nimport { blockInsertPlan, bookmarkBody, collectBookmarks, markdownFragment, type Bookmark } from \"./doc-tools-core\";\n\ninterface ApiLike {\n executeCommand(id: string, params?: object): Promise<unknown> | unknown;\n getActiveDocument?(): {\n getId(): string;\n save?(): unknown;\n setSelection?(a: number, b: number): void;\n getPermission?(): { setReadOnly(): Promise<void>; setEditable(editable?: boolean): Promise<void> };\n } | null;\n}\ninterface InjectorLike {\n get<T>(token: unknown): T | undefined;\n}\ninterface TextRangeLike {\n startOffset: number;\n endOffset: number;\n}\n\nexport interface DocEditOps {\n insertText(text: string): Promise<boolean>;\n /** A block (building block) at a new paragraph, never mid-line. */\n insertMarkdown(markdown: string): Promise<boolean>;\n /** Move the caret to where a block goes (`blockInsertPlan`); false when there is no caret. */\n toBlockStart(): Promise<boolean>;\n bookmarks(): Bookmark[];\n addBookmark(name: string): Promise<boolean>;\n deleteBookmark(b: Bookmark): Promise<boolean>;\n goTo(offset: number): void;\n snapshot(): unknown;\n setViewOnly(viewOnly: boolean): Promise<void>;\n /** Calls back when Univer refuses an edit (Viewing mode); returns the unsubscribe. */\n onEditDenied(cb: () => void): Promise<() => void>;\n openImagePanel(): Promise<boolean>;\n}\n\nexport function createDocEditOps(deps: { api: () => ApiLike | null; injector: () => InjectorLike | null }): DocEditOps {\n const doc = () => deps.api()?.getActiveDocument?.() ?? null;\n const snapshot = () => doc()?.save?.() ?? null;\n const range = async (): Promise<TextRangeLike | null> => {\n const { DocSelectionManagerService } = await import(\"@univerjs/docs\");\n const live = deps.injector()?.get<{ getActiveTextRange?(): TextRangeLike | null | undefined }>(DocSelectionManagerService)?.getActiveTextRange?.();\n return live ?? null;\n };\n const exec = async (id: string, params: object) => (await deps.api()?.executeCommand(id, params)) !== false;\n const toBlockStart = async (): Promise<boolean> => {\n const d = doc();\n const r = await range();\n const stream = (snapshot() as { body?: { dataStream?: string } } | null)?.body?.dataStream;\n if (!d || !r || typeof stream !== \"string\") return false;\n const plan = blockInsertPlan(stream, r.startOffset);\n if (plan.breakAt === null) {\n d.setSelection?.(plan.at, plan.at);\n return true;\n }\n d.setSelection?.(plan.breakAt, plan.breakAt);\n return exec(\"doc.command.break-line\", { unitId: d.getId() });\n };\n\n return {\n snapshot,\n async insertText(text) {\n if (!text || !(await range())) return false;\n return exec(\"doc.command.insert-special-character\", { value: text });\n },\n toBlockStart,\n async insertMarkdown(markdown) {\n const d = doc();\n if (!d || !(await toBlockStart())) return false;\n return exec(\"doc.command.inner-paste\", { unitId: d.getId(), doc: markdownFragment(markdown) });\n },\n bookmarks: () => collectBookmarks(snapshot()),\n async addBookmark(name) {\n const d = doc();\n const r = await range();\n if (!d || !r) return false;\n d.setSelection?.(r.startOffset, r.startOffset);\n const id = `bm_${Math.random().toString(36).slice(2, 10)}`;\n return exec(\"doc.command.replace-selection\", { unitId: d.getId(), body: bookmarkBody(id, name) });\n },\n async deleteBookmark(b) {\n const d = doc();\n if (!d) return false;\n d.setSelection?.(b.offset + 1, b.offset + 1);\n return exec(\"doc.command.delete-left\", { unitId: d.getId() });\n },\n async setViewOnly(viewOnly) {\n const perm = doc()?.getPermission?.();\n if (!perm) return;\n if (viewOnly) await perm.setReadOnly();\n else await perm.setEditable(true);\n // Univer's own refusal notice (\"This content is protected…\") stays off while viewing; the\n // editor shows ours through onEditDenied.\n const { IPermissionService } = await import(\"@univerjs/core\");\n deps.injector()?.get<{ setShowComponents?(show: boolean): void }>(IPermissionService)?.setShowComponents?.(!viewOnly);\n },\n async onEditDenied(cb) {\n const { ErrorService } = await import(\"@univerjs/core\");\n const errors = deps.injector()?.get<{ error$?: { subscribe(fn: (e: { code?: string }) => void): { unsubscribe(): void } } }>(ErrorService);\n const sub = errors?.error$?.subscribe((e) => {\n if (e.code === \"PERMISSION_DENIED\") cb();\n });\n return () => sub?.unsubscribe();\n },\n async openImagePanel() {\n return exec(\"sidebar.operation.doc-image\", { value: \"doc-image\" });\n },\n goTo(offset) {\n doc()?.setSelection?.(offset, offset);\n },\n };\n}\n\n/** Write one plain key onto the document style (it rides the snapshot like the paper color does). */\nexport async function writeDocumentStyleKey(api: ApiLike, key: string, value: string): Promise<void> {\n const doc = api.getActiveDocument?.();\n if (!doc) return;\n const style = (doc as unknown as { getDocumentDataModel?(): { getSnapshot(): { documentStyle?: Record<string, unknown> } } }).getDocumentDataModel?.()?.getSnapshot().documentStyle ?? {};\n const old = style[key];\n if (old === value) return;\n const { JSONX } = await import(\"@univerjs/core\");\n const jsonX = JSONX.getInstance();\n const path = [\"documentStyle\", key];\n const action = old === undefined ? jsonX.insertOp(path, value) : jsonX.replaceOp(path, old, value);\n if (!action) return;\n await api.executeCommand(\"doc.mutation.rich-text-editing\", { unitId: doc.getId(), actions: action, textRanges: undefined });\n}\n"]}
|
package/dist/docs-tools.d.cts
CHANGED
|
@@ -103,7 +103,7 @@ declare function rulerGeometry(a: {
|
|
|
103
103
|
marginLeftPx: number;
|
|
104
104
|
marginRightPx: number;
|
|
105
105
|
}): RulerGeometry;
|
|
106
|
-
/** The key on the document style that carries the language (the slot the paper
|
|
106
|
+
/** The key on the document style that carries the language (the slot the paper color also uses). */
|
|
107
107
|
declare const DOCUMENT_LANGUAGE_KEY = "matrxLanguage";
|
|
108
108
|
declare const DOCUMENT_LANGUAGES: Array<{
|
|
109
109
|
code: string;
|
|
@@ -151,7 +151,7 @@ declare function createDocEditOps(deps: {
|
|
|
151
151
|
api: () => ApiLike | null;
|
|
152
152
|
injector: () => InjectorLike | null;
|
|
153
153
|
}): DocEditOps;
|
|
154
|
-
/** Write one plain key onto the document style (it rides the snapshot like the paper
|
|
154
|
+
/** Write one plain key onto the document style (it rides the snapshot like the paper color does). */
|
|
155
155
|
declare function writeDocumentStyleKey(api: ApiLike, key: string, value: string): Promise<void>;
|
|
156
156
|
|
|
157
157
|
export { BOOKMARK_ANCHOR, BOOKMARK_RANGE_TYPE, BUILDING_BLOCKS, type Bookmark, type BorderChoice, type BorderDash, type BorderSide, type BuildingBlock, DOCUMENT_LANGUAGES, DOCUMENT_LANGUAGE_KEY, type DocEditOps, type MarkdownFragment, type RulerGeometry, blockInsertPlan, bookmarkBody, bookmarkFromHash, bookmarkHash, cleanBookmarkName, collectBookmarks, createDocEditOps, looksLikeMarkdown, markdownFragment, paragraphBorderParams, readDocumentLanguage, rulerGeometry, writeDocumentStyleKey };
|
package/dist/docs-tools.d.ts
CHANGED
|
@@ -103,7 +103,7 @@ declare function rulerGeometry(a: {
|
|
|
103
103
|
marginLeftPx: number;
|
|
104
104
|
marginRightPx: number;
|
|
105
105
|
}): RulerGeometry;
|
|
106
|
-
/** The key on the document style that carries the language (the slot the paper
|
|
106
|
+
/** The key on the document style that carries the language (the slot the paper color also uses). */
|
|
107
107
|
declare const DOCUMENT_LANGUAGE_KEY = "matrxLanguage";
|
|
108
108
|
declare const DOCUMENT_LANGUAGES: Array<{
|
|
109
109
|
code: string;
|
|
@@ -151,7 +151,7 @@ declare function createDocEditOps(deps: {
|
|
|
151
151
|
api: () => ApiLike | null;
|
|
152
152
|
injector: () => InjectorLike | null;
|
|
153
153
|
}): DocEditOps;
|
|
154
|
-
/** Write one plain key onto the document style (it rides the snapshot like the paper
|
|
154
|
+
/** Write one plain key onto the document style (it rides the snapshot like the paper color does). */
|
|
155
155
|
declare function writeDocumentStyleKey(api: ApiLike, key: string, value: string): Promise<void>;
|
|
156
156
|
|
|
157
157
|
export { BOOKMARK_ANCHOR, BOOKMARK_RANGE_TYPE, BUILDING_BLOCKS, type Bookmark, type BorderChoice, type BorderDash, type BorderSide, type BuildingBlock, DOCUMENT_LANGUAGES, DOCUMENT_LANGUAGE_KEY, type DocEditOps, type MarkdownFragment, type RulerGeometry, blockInsertPlan, bookmarkBody, bookmarkFromHash, bookmarkHash, cleanBookmarkName, collectBookmarks, createDocEditOps, looksLikeMarkdown, markdownFragment, paragraphBorderParams, readDocumentLanguage, rulerGeometry, writeDocumentStyleKey };
|
package/dist/docs-tools.js
CHANGED
|
@@ -15,8 +15,8 @@ import {
|
|
|
15
15
|
paragraphBorderParams,
|
|
16
16
|
readDocumentLanguage,
|
|
17
17
|
rulerGeometry
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-DY5TGHBI.js";
|
|
19
|
+
import "./chunk-Y24EYKSD.js";
|
|
20
20
|
|
|
21
21
|
// src/docs/doc-edit-ops.ts
|
|
22
22
|
function createDocEditOps(deps) {
|
package/dist/docs-tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/docs/doc-edit-ops.ts"],"sourcesContent":["/**\n * The Univer-facing half of the Docs tools: insert text, markdown and bookmarks at the caret, move\n * the selection, read the live snapshot, set view-only. Every operation is a real Univer command.\n */\n\nimport { blockInsertPlan, bookmarkBody, collectBookmarks, markdownFragment, type Bookmark } from \"./doc-tools-core\";\n\ninterface ApiLike {\n executeCommand(id: string, params?: object): Promise<unknown> | unknown;\n getActiveDocument?(): {\n getId(): string;\n save?(): unknown;\n setSelection?(a: number, b: number): void;\n getPermission?(): { setReadOnly(): Promise<void>; setEditable(editable?: boolean): Promise<void> };\n } | null;\n}\ninterface InjectorLike {\n get<T>(token: unknown): T | undefined;\n}\ninterface TextRangeLike {\n startOffset: number;\n endOffset: number;\n}\n\nexport interface DocEditOps {\n insertText(text: string): Promise<boolean>;\n /** A block (building block) at a new paragraph, never mid-line. */\n insertMarkdown(markdown: string): Promise<boolean>;\n /** Move the caret to where a block goes (`blockInsertPlan`); false when there is no caret. */\n toBlockStart(): Promise<boolean>;\n bookmarks(): Bookmark[];\n addBookmark(name: string): Promise<boolean>;\n deleteBookmark(b: Bookmark): Promise<boolean>;\n goTo(offset: number): void;\n snapshot(): unknown;\n setViewOnly(viewOnly: boolean): Promise<void>;\n /** Calls back when Univer refuses an edit (Viewing mode); returns the unsubscribe. */\n onEditDenied(cb: () => void): Promise<() => void>;\n openImagePanel(): Promise<boolean>;\n}\n\nexport function createDocEditOps(deps: { api: () => ApiLike | null; injector: () => InjectorLike | null }): DocEditOps {\n const doc = () => deps.api()?.getActiveDocument?.() ?? null;\n const snapshot = () => doc()?.save?.() ?? null;\n const range = async (): Promise<TextRangeLike | null> => {\n const { DocSelectionManagerService } = await import(\"@univerjs/docs\");\n const live = deps.injector()?.get<{ getActiveTextRange?(): TextRangeLike | null | undefined }>(DocSelectionManagerService)?.getActiveTextRange?.();\n return live ?? null;\n };\n const exec = async (id: string, params: object) => (await deps.api()?.executeCommand(id, params)) !== false;\n const toBlockStart = async (): Promise<boolean> => {\n const d = doc();\n const r = await range();\n const stream = (snapshot() as { body?: { dataStream?: string } } | null)?.body?.dataStream;\n if (!d || !r || typeof stream !== \"string\") return false;\n const plan = blockInsertPlan(stream, r.startOffset);\n if (plan.breakAt === null) {\n d.setSelection?.(plan.at, plan.at);\n return true;\n }\n d.setSelection?.(plan.breakAt, plan.breakAt);\n return exec(\"doc.command.break-line\", { unitId: d.getId() });\n };\n\n return {\n snapshot,\n async insertText(text) {\n if (!text || !(await range())) return false;\n return exec(\"doc.command.insert-special-character\", { value: text });\n },\n toBlockStart,\n async insertMarkdown(markdown) {\n const d = doc();\n if (!d || !(await toBlockStart())) return false;\n return exec(\"doc.command.inner-paste\", { unitId: d.getId(), doc: markdownFragment(markdown) });\n },\n bookmarks: () => collectBookmarks(snapshot()),\n async addBookmark(name) {\n const d = doc();\n const r = await range();\n if (!d || !r) return false;\n d.setSelection?.(r.startOffset, r.startOffset);\n const id = `bm_${Math.random().toString(36).slice(2, 10)}`;\n return exec(\"doc.command.replace-selection\", { unitId: d.getId(), body: bookmarkBody(id, name) });\n },\n async deleteBookmark(b) {\n const d = doc();\n if (!d) return false;\n d.setSelection?.(b.offset + 1, b.offset + 1);\n return exec(\"doc.command.delete-left\", { unitId: d.getId() });\n },\n async setViewOnly(viewOnly) {\n const perm = doc()?.getPermission?.();\n if (!perm) return;\n if (viewOnly) await perm.setReadOnly();\n else await perm.setEditable(true);\n // Univer's own refusal notice (\"This content is protected…\") stays off while viewing; the\n // editor shows ours through onEditDenied.\n const { IPermissionService } = await import(\"@univerjs/core\");\n deps.injector()?.get<{ setShowComponents?(show: boolean): void }>(IPermissionService)?.setShowComponents?.(!viewOnly);\n },\n async onEditDenied(cb) {\n const { ErrorService } = await import(\"@univerjs/core\");\n const errors = deps.injector()?.get<{ error$?: { subscribe(fn: (e: { code?: string }) => void): { unsubscribe(): void } } }>(ErrorService);\n const sub = errors?.error$?.subscribe((e) => {\n if (e.code === \"PERMISSION_DENIED\") cb();\n });\n return () => sub?.unsubscribe();\n },\n async openImagePanel() {\n return exec(\"sidebar.operation.doc-image\", { value: \"doc-image\" });\n },\n goTo(offset) {\n doc()?.setSelection?.(offset, offset);\n },\n };\n}\n\n/** Write one plain key onto the document style (it rides the snapshot like the paper
|
|
1
|
+
{"version":3,"sources":["../src/docs/doc-edit-ops.ts"],"sourcesContent":["/**\n * The Univer-facing half of the Docs tools: insert text, markdown and bookmarks at the caret, move\n * the selection, read the live snapshot, set view-only. Every operation is a real Univer command.\n */\n\nimport { blockInsertPlan, bookmarkBody, collectBookmarks, markdownFragment, type Bookmark } from \"./doc-tools-core\";\n\ninterface ApiLike {\n executeCommand(id: string, params?: object): Promise<unknown> | unknown;\n getActiveDocument?(): {\n getId(): string;\n save?(): unknown;\n setSelection?(a: number, b: number): void;\n getPermission?(): { setReadOnly(): Promise<void>; setEditable(editable?: boolean): Promise<void> };\n } | null;\n}\ninterface InjectorLike {\n get<T>(token: unknown): T | undefined;\n}\ninterface TextRangeLike {\n startOffset: number;\n endOffset: number;\n}\n\nexport interface DocEditOps {\n insertText(text: string): Promise<boolean>;\n /** A block (building block) at a new paragraph, never mid-line. */\n insertMarkdown(markdown: string): Promise<boolean>;\n /** Move the caret to where a block goes (`blockInsertPlan`); false when there is no caret. */\n toBlockStart(): Promise<boolean>;\n bookmarks(): Bookmark[];\n addBookmark(name: string): Promise<boolean>;\n deleteBookmark(b: Bookmark): Promise<boolean>;\n goTo(offset: number): void;\n snapshot(): unknown;\n setViewOnly(viewOnly: boolean): Promise<void>;\n /** Calls back when Univer refuses an edit (Viewing mode); returns the unsubscribe. */\n onEditDenied(cb: () => void): Promise<() => void>;\n openImagePanel(): Promise<boolean>;\n}\n\nexport function createDocEditOps(deps: { api: () => ApiLike | null; injector: () => InjectorLike | null }): DocEditOps {\n const doc = () => deps.api()?.getActiveDocument?.() ?? null;\n const snapshot = () => doc()?.save?.() ?? null;\n const range = async (): Promise<TextRangeLike | null> => {\n const { DocSelectionManagerService } = await import(\"@univerjs/docs\");\n const live = deps.injector()?.get<{ getActiveTextRange?(): TextRangeLike | null | undefined }>(DocSelectionManagerService)?.getActiveTextRange?.();\n return live ?? null;\n };\n const exec = async (id: string, params: object) => (await deps.api()?.executeCommand(id, params)) !== false;\n const toBlockStart = async (): Promise<boolean> => {\n const d = doc();\n const r = await range();\n const stream = (snapshot() as { body?: { dataStream?: string } } | null)?.body?.dataStream;\n if (!d || !r || typeof stream !== \"string\") return false;\n const plan = blockInsertPlan(stream, r.startOffset);\n if (plan.breakAt === null) {\n d.setSelection?.(plan.at, plan.at);\n return true;\n }\n d.setSelection?.(plan.breakAt, plan.breakAt);\n return exec(\"doc.command.break-line\", { unitId: d.getId() });\n };\n\n return {\n snapshot,\n async insertText(text) {\n if (!text || !(await range())) return false;\n return exec(\"doc.command.insert-special-character\", { value: text });\n },\n toBlockStart,\n async insertMarkdown(markdown) {\n const d = doc();\n if (!d || !(await toBlockStart())) return false;\n return exec(\"doc.command.inner-paste\", { unitId: d.getId(), doc: markdownFragment(markdown) });\n },\n bookmarks: () => collectBookmarks(snapshot()),\n async addBookmark(name) {\n const d = doc();\n const r = await range();\n if (!d || !r) return false;\n d.setSelection?.(r.startOffset, r.startOffset);\n const id = `bm_${Math.random().toString(36).slice(2, 10)}`;\n return exec(\"doc.command.replace-selection\", { unitId: d.getId(), body: bookmarkBody(id, name) });\n },\n async deleteBookmark(b) {\n const d = doc();\n if (!d) return false;\n d.setSelection?.(b.offset + 1, b.offset + 1);\n return exec(\"doc.command.delete-left\", { unitId: d.getId() });\n },\n async setViewOnly(viewOnly) {\n const perm = doc()?.getPermission?.();\n if (!perm) return;\n if (viewOnly) await perm.setReadOnly();\n else await perm.setEditable(true);\n // Univer's own refusal notice (\"This content is protected…\") stays off while viewing; the\n // editor shows ours through onEditDenied.\n const { IPermissionService } = await import(\"@univerjs/core\");\n deps.injector()?.get<{ setShowComponents?(show: boolean): void }>(IPermissionService)?.setShowComponents?.(!viewOnly);\n },\n async onEditDenied(cb) {\n const { ErrorService } = await import(\"@univerjs/core\");\n const errors = deps.injector()?.get<{ error$?: { subscribe(fn: (e: { code?: string }) => void): { unsubscribe(): void } } }>(ErrorService);\n const sub = errors?.error$?.subscribe((e) => {\n if (e.code === \"PERMISSION_DENIED\") cb();\n });\n return () => sub?.unsubscribe();\n },\n async openImagePanel() {\n return exec(\"sidebar.operation.doc-image\", { value: \"doc-image\" });\n },\n goTo(offset) {\n doc()?.setSelection?.(offset, offset);\n },\n };\n}\n\n/** Write one plain key onto the document style (it rides the snapshot like the paper color does). */\nexport async function writeDocumentStyleKey(api: ApiLike, key: string, value: string): Promise<void> {\n const doc = api.getActiveDocument?.();\n if (!doc) return;\n const style = (doc as unknown as { getDocumentDataModel?(): { getSnapshot(): { documentStyle?: Record<string, unknown> } } }).getDocumentDataModel?.()?.getSnapshot().documentStyle ?? {};\n const old = style[key];\n if (old === value) return;\n const { JSONX } = await import(\"@univerjs/core\");\n const jsonX = JSONX.getInstance();\n const path = [\"documentStyle\", key];\n const action = old === undefined ? jsonX.insertOp(path, value) : jsonX.replaceOp(path, old, value);\n if (!action) return;\n await api.executeCommand(\"doc.mutation.rich-text-editing\", { unitId: doc.getId(), actions: action, textRanges: undefined });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAyCO,SAAS,iBAAiB,MAAsF;AACrH,QAAM,MAAM,MAAM,KAAK,IAAI,GAAG,oBAAoB,KAAK;AACvD,QAAM,WAAW,MAAM,IAAI,GAAG,OAAO,KAAK;AAC1C,QAAM,QAAQ,YAA2C;AACvD,UAAM,EAAE,2BAA2B,IAAI,MAAM,OAAO,gBAAgB;AACpE,UAAM,OAAO,KAAK,SAAS,GAAG,IAAiE,0BAA0B,GAAG,qBAAqB;AACjJ,WAAO,QAAQ;AAAA,EACjB;AACA,QAAM,OAAO,OAAO,IAAY,WAAoB,MAAM,KAAK,IAAI,GAAG,eAAe,IAAI,MAAM,MAAO;AACtG,QAAM,eAAe,YAA8B;AACjD,UAAM,IAAI,IAAI;AACd,UAAM,IAAI,MAAM,MAAM;AACtB,UAAM,SAAU,SAAS,GAAiD,MAAM;AAChF,QAAI,CAAC,KAAK,CAAC,KAAK,OAAO,WAAW,SAAU,QAAO;AACnD,UAAM,OAAO,gBAAgB,QAAQ,EAAE,WAAW;AAClD,QAAI,KAAK,YAAY,MAAM;AACzB,QAAE,eAAe,KAAK,IAAI,KAAK,EAAE;AACjC,aAAO;AAAA,IACT;AACA,MAAE,eAAe,KAAK,SAAS,KAAK,OAAO;AAC3C,WAAO,KAAK,0BAA0B,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAAA,EAC7D;AAEA,SAAO;AAAA,IACL;AAAA,IACA,MAAM,WAAW,MAAM;AACrB,UAAI,CAAC,QAAQ,CAAE,MAAM,MAAM,EAAI,QAAO;AACtC,aAAO,KAAK,wCAAwC,EAAE,OAAO,KAAK,CAAC;AAAA,IACrE;AAAA,IACA;AAAA,IACA,MAAM,eAAe,UAAU;AAC7B,YAAM,IAAI,IAAI;AACd,UAAI,CAAC,KAAK,CAAE,MAAM,aAAa,EAAI,QAAO;AAC1C,aAAO,KAAK,2BAA2B,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,iBAAiB,QAAQ,EAAE,CAAC;AAAA,IAC/F;AAAA,IACA,WAAW,MAAM,iBAAiB,SAAS,CAAC;AAAA,IAC5C,MAAM,YAAY,MAAM;AACtB,YAAM,IAAI,IAAI;AACd,YAAM,IAAI,MAAM,MAAM;AACtB,UAAI,CAAC,KAAK,CAAC,EAAG,QAAO;AACrB,QAAE,eAAe,EAAE,aAAa,EAAE,WAAW;AAC7C,YAAM,KAAK,MAAM,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC;AACxD,aAAO,KAAK,iCAAiC,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,aAAa,IAAI,IAAI,EAAE,CAAC;AAAA,IAClG;AAAA,IACA,MAAM,eAAe,GAAG;AACtB,YAAM,IAAI,IAAI;AACd,UAAI,CAAC,EAAG,QAAO;AACf,QAAE,eAAe,EAAE,SAAS,GAAG,EAAE,SAAS,CAAC;AAC3C,aAAO,KAAK,2BAA2B,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAAA,IAC9D;AAAA,IACA,MAAM,YAAY,UAAU;AAC1B,YAAM,OAAO,IAAI,GAAG,gBAAgB;AACpC,UAAI,CAAC,KAAM;AACX,UAAI,SAAU,OAAM,KAAK,YAAY;AAAA,UAChC,OAAM,KAAK,YAAY,IAAI;AAGhC,YAAM,EAAE,mBAAmB,IAAI,MAAM,OAAO,gBAAgB;AAC5D,WAAK,SAAS,GAAG,IAAiD,kBAAkB,GAAG,oBAAoB,CAAC,QAAQ;AAAA,IACtH;AAAA,IACA,MAAM,aAAa,IAAI;AACrB,YAAM,EAAE,aAAa,IAAI,MAAM,OAAO,gBAAgB;AACtD,YAAM,SAAS,KAAK,SAAS,GAAG,IAA6F,YAAY;AACzI,YAAM,MAAM,QAAQ,QAAQ,UAAU,CAAC,MAAM;AAC3C,YAAI,EAAE,SAAS,oBAAqB,IAAG;AAAA,MACzC,CAAC;AACD,aAAO,MAAM,KAAK,YAAY;AAAA,IAChC;AAAA,IACA,MAAM,iBAAiB;AACrB,aAAO,KAAK,+BAA+B,EAAE,OAAO,YAAY,CAAC;AAAA,IACnE;AAAA,IACA,KAAK,QAAQ;AACX,UAAI,GAAG,eAAe,QAAQ,MAAM;AAAA,IACtC;AAAA,EACF;AACF;AAGA,eAAsB,sBAAsB,KAAc,KAAa,OAA8B;AACnG,QAAM,MAAM,IAAI,oBAAoB;AACpC,MAAI,CAAC,IAAK;AACV,QAAM,QAAS,IAA+G,uBAAuB,GAAG,YAAY,EAAE,iBAAiB,CAAC;AACxL,QAAM,MAAM,MAAM,GAAG;AACrB,MAAI,QAAQ,MAAO;AACnB,QAAM,EAAE,MAAM,IAAI,MAAM,OAAO,gBAAgB;AAC/C,QAAM,QAAQ,MAAM,YAAY;AAChC,QAAM,OAAO,CAAC,iBAAiB,GAAG;AAClC,QAAM,SAAS,QAAQ,SAAY,MAAM,SAAS,MAAM,KAAK,IAAI,MAAM,UAAU,MAAM,KAAK,KAAK;AACjG,MAAI,CAAC,OAAQ;AACb,QAAM,IAAI,eAAe,kCAAkC,EAAE,QAAQ,IAAI,MAAM,GAAG,SAAS,QAAQ,YAAY,OAAU,CAAC;AAC5H;","names":[]}
|
package/dist/docs.cjs
CHANGED
|
@@ -16,11 +16,14 @@
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
var
|
|
19
|
+
var _chunkHX5TXQIXcjs = require('./chunk-HX5TXQIX.cjs');
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
var
|
|
23
|
-
require('./chunk-
|
|
22
|
+
var _chunkNSU6EVJKcjs = require('./chunk-NSU6EVJK.cjs');
|
|
23
|
+
require('./chunk-XAIKXHHJ.cjs');
|
|
24
|
+
|
|
25
|
+
// src/docs/document-model.ts
|
|
26
|
+
var _core = require('@univerjs/core');
|
|
24
27
|
|
|
25
28
|
// src/univer/isSnapshotMutation.ts
|
|
26
29
|
var MUTATION = 2;
|
|
@@ -188,13 +191,13 @@ var DocumentModel = (_class = class {
|
|
|
188
191
|
return editor;
|
|
189
192
|
}
|
|
190
193
|
onViewMutation(viewId, info, options) {
|
|
191
|
-
if (this.relaying || _optionalChain([options, 'optionalAccess',
|
|
194
|
+
if (this.relaying || _optionalChain([options, 'optionalAccess', _15 => _15.fromCollab]) || _optionalChain([options, 'optionalAccess', _16 => _16.fromChangeset])) return;
|
|
192
195
|
const view = this.views.get(viewId);
|
|
193
196
|
if (!view || !view.port.editable()) return;
|
|
194
197
|
this.lastEditedView = viewId;
|
|
195
198
|
this.relay(info, viewId);
|
|
196
199
|
for (const listener of this.collabListeners) listener(info, options);
|
|
197
|
-
if (this.otListeners.size && !_optionalChain([options, 'optionalAccess',
|
|
200
|
+
if (this.otListeners.size && !_optionalChain([options, 'optionalAccess', _17 => _17.onlyLocal])) {
|
|
198
201
|
const m = {
|
|
199
202
|
id: info.id,
|
|
200
203
|
params: info.params,
|
|
@@ -223,7 +226,7 @@ var DocumentModel = (_class = class {
|
|
|
223
226
|
try {
|
|
224
227
|
const snap = view.port.snapshot();
|
|
225
228
|
view.pre = snap ? structuredClone(snap) : null;
|
|
226
|
-
} catch (
|
|
229
|
+
} catch (e4) {
|
|
227
230
|
view.pre = null;
|
|
228
231
|
}
|
|
229
232
|
}
|
|
@@ -254,8 +257,8 @@ var DocumentModel = (_class = class {
|
|
|
254
257
|
/** The unit id a view's document has (what a replayed mutation must be addressed to). */
|
|
255
258
|
unitIdOf(view) {
|
|
256
259
|
try {
|
|
257
|
-
return _nullishCoalesce(_nullishCoalesce(_optionalChain([view, 'access',
|
|
258
|
-
} catch (
|
|
260
|
+
return _nullishCoalesce(_nullishCoalesce(_optionalChain([view, 'access', _18 => _18.port, 'access', _19 => _19.unitId, 'optionalCall', _20 => _20()]), () => ( _optionalChain([view, 'access', _21 => _21.port, 'access', _22 => _22.snapshot, 'call', _23 => _23(), 'optionalAccess', _24 => _24.id]))), () => ( null));
|
|
261
|
+
} catch (e5) {
|
|
259
262
|
return null;
|
|
260
263
|
}
|
|
261
264
|
}
|
|
@@ -288,7 +291,7 @@ var DocumentModel = (_class = class {
|
|
|
288
291
|
/** A view could not follow an edit: say so, then show the saved version (unless this tab has unsaved edits of its own). */
|
|
289
292
|
applyFailed(mutationId, error) {
|
|
290
293
|
try {
|
|
291
|
-
_optionalChain([this, 'access',
|
|
294
|
+
_optionalChain([this, 'access', _25 => _25.deps, 'access', _26 => _26.onApplyFailed, 'optionalCall', _27 => _27(this.documentId, mutationId, error)]);
|
|
292
295
|
} catch (notifyError) {
|
|
293
296
|
console.warn(`[document-model] the notice for ${this.documentId}'s failed apply also failed`, notifyError);
|
|
294
297
|
}
|
|
@@ -316,7 +319,7 @@ var DocumentModel = (_class = class {
|
|
|
316
319
|
async write(reason) {
|
|
317
320
|
if (this.ot) {
|
|
318
321
|
const wrote = await this.ot.write(reason);
|
|
319
|
-
if (wrote) _optionalChain([this, 'access',
|
|
322
|
+
if (wrote) _optionalChain([this, 'access', _28 => _28.deps, 'access', _29 => _29.onSaved, 'optionalCall', _30 => _30(this.documentId, reason === "manual" ? "manual" : "autosave")]);
|
|
320
323
|
return wrote;
|
|
321
324
|
}
|
|
322
325
|
const snapshot = this.latest();
|
|
@@ -341,7 +344,7 @@ var DocumentModel = (_class = class {
|
|
|
341
344
|
this.saving = false;
|
|
342
345
|
}
|
|
343
346
|
if (this.views.size === 0) this.stored = snapshot;
|
|
344
|
-
_optionalChain([this, 'access',
|
|
347
|
+
_optionalChain([this, 'access', _31 => _31.deps, 'access', _32 => _32.onSaved, 'optionalCall', _33 => _33(this.documentId, origin)]);
|
|
345
348
|
return true;
|
|
346
349
|
}
|
|
347
350
|
hasUnsaved() {
|
|
@@ -384,7 +387,7 @@ var DocumentModel = (_class = class {
|
|
|
384
387
|
replaceContent(row) {
|
|
385
388
|
if (this.ot) return this.ot.replace(row.snapshot);
|
|
386
389
|
this.show(row);
|
|
387
|
-
_optionalChain([this, 'access',
|
|
390
|
+
_optionalChain([this, 'access', _34 => _34.collab, 'optionalAccess', _35 => _35.announceReplaced, 'call', _36 => _36(row.id)]);
|
|
388
391
|
}
|
|
389
392
|
/** A peer replaced the document: show the newest save (once). */
|
|
390
393
|
async onPeerReplaced() {
|
|
@@ -407,7 +410,7 @@ var DocumentModel = (_class = class {
|
|
|
407
410
|
this.relaying = true;
|
|
408
411
|
try {
|
|
409
412
|
for (const view of this.views.values()) view.port.remount(snapshot);
|
|
410
|
-
_optionalChain([this, 'access',
|
|
413
|
+
_optionalChain([this, 'access', _37 => _37.parked, 'optionalAccess', _38 => _38.remount, 'call', _39 => _39(snapshot)]);
|
|
411
414
|
} finally {
|
|
412
415
|
this.relaying = false;
|
|
413
416
|
}
|
|
@@ -479,10 +482,24 @@ var DocumentModel = (_class = class {
|
|
|
479
482
|
for (const view of this.views.values()) {
|
|
480
483
|
const unitId = this.unitIdOf(view);
|
|
481
484
|
const input = Array.isArray(params.actions) ? params.actions.length : 0;
|
|
485
|
+
let sel = null;
|
|
486
|
+
try {
|
|
487
|
+
sel = _nullishCoalesce(_optionalChain([view, 'access', _40 => _40.port, 'access', _41 => _41.selection, 'optionalAccess', _42 => _42.get, 'call', _43 => _43()]), () => ( null));
|
|
488
|
+
} catch (e6) {
|
|
489
|
+
sel = null;
|
|
490
|
+
}
|
|
482
491
|
const p = { ...params, ...unitId ? { unitId } : {}, textRanges: null, noNeedSetTextRange: true };
|
|
483
492
|
const ok = view.port.commandService.syncExecuteCommand(id, p, { onlyLocal: true, fromCollab: true });
|
|
484
493
|
if (ok === false) throw new Error(`"${id}" was refused by the editor`);
|
|
485
494
|
if (input > 0 && Array.isArray(p.actions) && p.actions.length === 0) throw new Error(`"${id}" was emptied by the editor`);
|
|
495
|
+
const moved = sel && sel.length && sel.every((r) => !r.segmentId) ? moveRangesThroughBodyEdit(sel, params.actions) : null;
|
|
496
|
+
if (moved) {
|
|
497
|
+
try {
|
|
498
|
+
_optionalChain([view, 'access', _44 => _44.port, 'access', _45 => _45.selection, 'optionalAccess', _46 => _46.set, 'call', _47 => _47(moved)]);
|
|
499
|
+
} catch (error) {
|
|
500
|
+
console.warn(`[document-model] could not move this view's caret past a collaborator's edit`, error);
|
|
501
|
+
}
|
|
502
|
+
}
|
|
486
503
|
}
|
|
487
504
|
} finally {
|
|
488
505
|
this.relaying = false;
|
|
@@ -497,7 +514,7 @@ var DocumentModel = (_class = class {
|
|
|
497
514
|
this.relaying = true;
|
|
498
515
|
try {
|
|
499
516
|
for (const view of this.views.values()) view.port.remount(s2);
|
|
500
|
-
_optionalChain([this, 'access',
|
|
517
|
+
_optionalChain([this, 'access', _48 => _48.parked, 'optionalAccess', _49 => _49.remount, 'call', _50 => _50(s2)]);
|
|
501
518
|
} finally {
|
|
502
519
|
this.relaying = false;
|
|
503
520
|
}
|
|
@@ -506,7 +523,7 @@ var DocumentModel = (_class = class {
|
|
|
506
523
|
const out = [];
|
|
507
524
|
for (const view of this.views.values()) {
|
|
508
525
|
const unitId = this.unitIdOf(view);
|
|
509
|
-
const service = _optionalChain([view, 'access',
|
|
526
|
+
const service = _optionalChain([view, 'access', _51 => _51.port, 'access', _52 => _52.undoRedo, 'optionalCall', _53 => _53()]);
|
|
510
527
|
if (unitId && service) out.push({ service, unitId });
|
|
511
528
|
}
|
|
512
529
|
return out;
|
|
@@ -564,9 +581,9 @@ var DocumentModel = (_class = class {
|
|
|
564
581
|
* so a collaborator's save still reaches the body a returning view boots from.
|
|
565
582
|
*/
|
|
566
583
|
rest() {
|
|
567
|
-
_optionalChain([this, 'access',
|
|
584
|
+
_optionalChain([this, 'access', _54 => _54.collab, 'optionalAccess', _55 => _55.stop, 'call', _56 => _56()]);
|
|
568
585
|
this.collab = null;
|
|
569
|
-
_optionalChain([this, 'access',
|
|
586
|
+
_optionalChain([this, 'access', _57 => _57.ot, 'optionalAccess', _58 => _58.stop, 'call', _59 => _59()]);
|
|
570
587
|
this.ot = null;
|
|
571
588
|
this.awareness = null;
|
|
572
589
|
}
|
|
@@ -582,12 +599,20 @@ var DocumentModel = (_class = class {
|
|
|
582
599
|
console.warn(`[document-model] could not dispose ${this.documentId}'s kept editor`, error);
|
|
583
600
|
}
|
|
584
601
|
}
|
|
585
|
-
_optionalChain([this, 'access',
|
|
602
|
+
_optionalChain([this, 'access', _60 => _60.realtimeClose, 'optionalCall', _61 => _61()]);
|
|
586
603
|
this.realtimeClose = null;
|
|
587
|
-
_optionalChain([this, 'access',
|
|
604
|
+
_optionalChain([this, 'access', _62 => _62.pageClose, 'optionalCall', _63 => _63()]);
|
|
588
605
|
this.pageClose = null;
|
|
589
606
|
}
|
|
590
607
|
}, _class);
|
|
608
|
+
function moveRangesThroughBodyEdit(ranges, actions) {
|
|
609
|
+
const a = actions;
|
|
610
|
+
if (!Array.isArray(a) || a[0] !== "body") return null;
|
|
611
|
+
const sub = a[1];
|
|
612
|
+
if (!sub || sub.et !== "text-x" || !Array.isArray(sub.e)) return null;
|
|
613
|
+
const e2 = sub.e;
|
|
614
|
+
return ranges.map((r) => ({ startOffset: _core.TextX.transformPosition(e2, r.startOffset, false), endOffset: _core.TextX.transformPosition(e2, r.endOffset, false) }));
|
|
615
|
+
}
|
|
591
616
|
function contentFingerprint(snapshot) {
|
|
592
617
|
const { id: _id, rev: _rev, ...content } = snapshot;
|
|
593
618
|
return JSON.stringify(content);
|
|
@@ -747,7 +772,7 @@ function planBodyEdit(current, next) {
|
|
|
747
772
|
};
|
|
748
773
|
}
|
|
749
774
|
function insertSpan(port, _current, edit) {
|
|
750
|
-
if (port.insertMarkdown &&
|
|
775
|
+
if (port.insertMarkdown && _chunkNSU6EVJKcjs.looksLikeMarkdown.call(void 0, edit.insert)) {
|
|
751
776
|
const stream = port.getDataStream();
|
|
752
777
|
let at = edit.start;
|
|
753
778
|
if (at > 0 && stream[at - 1] !== PARAGRAPH) {
|
|
@@ -860,5 +885,6 @@ function documentBodyWriteHandler(deps) {
|
|
|
860
885
|
|
|
861
886
|
|
|
862
887
|
|
|
863
|
-
|
|
888
|
+
|
|
889
|
+
exports.DOCUMENT_BODY_MAX_LENGTH = DOCUMENT_BODY_MAX_LENGTH; exports.DOCUMENT_DESCRIPTION_MAX_LENGTH = DOCUMENT_DESCRIPTION_MAX_LENGTH; exports.DOCUMENT_NAME_MAX_LENGTH = DOCUMENT_NAME_MAX_LENGTH; exports.DOCUMENT_SAVE_DELAY_MS = DOCUMENT_SAVE_DELAY_MS; exports.DocumentModel = DocumentModel; exports.EMOJI_GROUPS = EMOJI_GROUPS; exports.MIN_FIT_ZOOM = MIN_FIT_ZOOM; exports.SPECIAL_GROUPS = SPECIAL_GROUPS; exports.bodyTextOf = bodyTextOf; exports.configureDocsHost = _chunkHX5TXQIXcjs.configureDocsHost; exports.copyDocument = _chunkHX5TXQIXcjs.copyDocument; exports.createDocument = _chunkHX5TXQIXcjs.createDocument; exports.deleteDocument = _chunkHX5TXQIXcjs.deleteDocument; exports.discardFailedDocument = _chunkHX5TXQIXcjs.discardFailedDocument; exports.documentBodyWriteHandler = documentBodyWriteHandler; exports.documentSourceLabel = documentSourceLabel; exports.fitZoomRatio = fitZoomRatio; exports.getDocsHost = _chunkHX5TXQIXcjs.getDocsHost; exports.getDocument = _chunkHX5TXQIXcjs.getDocument; exports.getLatestDocumentSnapshot = _chunkHX5TXQIXcjs.getLatestDocumentSnapshot; exports.listAccessibleDocuments = _chunkHX5TXQIXcjs.listAccessibleDocuments; exports.listDocumentSnapshots = _chunkHX5TXQIXcjs.listDocumentSnapshots; exports.listTrashedDocuments = _chunkHX5TXQIXcjs.listTrashedDocuments; exports.moveDocument = _chunkHX5TXQIXcjs.moveDocument; exports.moveRangesThroughBodyEdit = moveRangesThroughBodyEdit; exports.planBodyEdit = planBodyEdit; exports.renameDocument = _chunkHX5TXQIXcjs.renameDocument; exports.restoreDocument = _chunkHX5TXQIXcjs.restoreDocument; exports.sanitizeUniverDocSnapshot = _chunkHX5TXQIXcjs.sanitizeUniverDocSnapshot; exports.saveDocumentSnapshot = _chunkHX5TXQIXcjs.saveDocumentSnapshot; exports.searchSymbols = searchSymbols; exports.updateDocumentDescription = _chunkHX5TXQIXcjs.updateDocumentDescription; exports.validateDocumentBody = validateDocumentBody; exports.validateDocumentDescription = validateDocumentDescription; exports.validateDocumentName = validateDocumentName; exports.writeBodyText = writeBodyText;
|
|
864
890
|
//# sourceMappingURL=docs.cjs.map
|