@ai-matrx/office 0.8.8 → 0.8.9
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 +10 -1
- 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 +5 -5
- package/dist/docs.cjs.map +1 -1
- package/dist/docs.d.cts +1 -1
- package/dist/docs.d.ts +1 -1
- package/dist/docs.js +3 -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 +4 -4
- 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":"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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
|
|
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":"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","names":[]}
|
package/dist/docs.cjs
CHANGED
|
@@ -16,11 +16,11 @@
|
|
|
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
24
|
|
|
25
25
|
// src/univer/isSnapshotMutation.ts
|
|
26
26
|
var MUTATION = 2;
|
|
@@ -747,7 +747,7 @@ function planBodyEdit(current, next) {
|
|
|
747
747
|
};
|
|
748
748
|
}
|
|
749
749
|
function insertSpan(port, _current, edit) {
|
|
750
|
-
if (port.insertMarkdown &&
|
|
750
|
+
if (port.insertMarkdown && _chunkNSU6EVJKcjs.looksLikeMarkdown.call(void 0, edit.insert)) {
|
|
751
751
|
const stream = port.getDataStream();
|
|
752
752
|
let at = edit.start;
|
|
753
753
|
if (at > 0 && stream[at - 1] !== PARAGRAPH) {
|
|
@@ -860,5 +860,5 @@ function documentBodyWriteHandler(deps) {
|
|
|
860
860
|
|
|
861
861
|
|
|
862
862
|
|
|
863
|
-
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 =
|
|
863
|
+
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.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
864
|
//# sourceMappingURL=docs.cjs.map
|