@ones-editor/editor 3.0.18 → 3.0.19-beta.2
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/@ones-editor/graph-embed/package.json +4 -3
- package/@ones-editor/graph-embed/src/config/index.d.ts +1 -1
- package/@ones-editor/sharedb-doc/src/index.d.ts +1 -0
- package/@ones-editor/tsconfig.tsbuildinfo +1 -1
- package/@ones-editor/versions/src/history-diff.d.ts +12 -0
- package/@ones-editor/versions/src/history-doc/history-doc.d.ts +2 -2
- package/@ones-editor/versions/src/index.d.ts +2 -0
- package/@ones-editor/versions/src/version-dialog/play-history.d.ts +1 -1
- package/dist/history-diff.d.ts +12 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +202 -40
- package/package.json +2 -2
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { OnesEditorVersionsProvider } from './types';
|
|
2
|
+
import type { DocObject, OnesEditor, OnesEditorBlockRenderer, OnesEditorDocHistoryData, OnesEditorDocServer, OnesEditorDocVersionHelper } from '../../../@ones-editor/core';
|
|
3
|
+
export interface CreateOnesEditorHistoryDiffOptions {
|
|
4
|
+
server: OnesEditorDocServer;
|
|
5
|
+
provider: OnesEditorVersionsProvider;
|
|
6
|
+
doc: DocObject;
|
|
7
|
+
historyData: OnesEditorDocHistoryData[];
|
|
8
|
+
versionHelper: Pick<OnesEditorDocVersionHelper, 'parseHistoryData'>;
|
|
9
|
+
editorOptions?: unknown;
|
|
10
|
+
textRenders?: OnesEditorBlockRenderer[];
|
|
11
|
+
}
|
|
12
|
+
export declare function createOnesEditorHistoryDiff(parent: HTMLElement, options: CreateOnesEditorHistoryDiffOptions): Promise<OnesEditor>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DocBlock, DocBlockDelta, DocBlockText, DocBlockTextActions, DocObject, EventCallbacks, OnesEditorDoc, OnesEditorDocCallbacks, OnesEditorUser, UploadResourceResult, OnesEditorDocServerMeta, OnesEditorDocServer } from '../../../../@ones-editor/core';
|
|
1
|
+
import { BuildResourceUrlOptions, DocBlock, DocBlockDelta, DocBlockText, DocBlockTextActions, DocObject, EventCallbacks, OnesEditorDoc, OnesEditorDocCallbacks, OnesEditorUser, UploadResourceResult, OnesEditorDocServerMeta, OnesEditorDocServer } from '../../../../@ones-editor/core';
|
|
2
2
|
import { HistoryUser } from '../types';
|
|
3
3
|
export default class HistoryDoc extends EventCallbacks<OnesEditorDocCallbacks> implements OnesEditorDoc {
|
|
4
4
|
private server;
|
|
@@ -21,7 +21,7 @@ export default class HistoryDoc extends EventCallbacks<OnesEditorDocCallbacks> i
|
|
|
21
21
|
uploadResource(): Promise<UploadResourceResult>;
|
|
22
22
|
addResources(resourceIds: string[]): Promise<string[]>;
|
|
23
23
|
getServerMeta(): OnesEditorDocServerMeta;
|
|
24
|
-
buildResourceUrl(src: string): string;
|
|
24
|
+
buildResourceUrl(src: string, options?: BuildResourceUrlOptions): string;
|
|
25
25
|
request<T>(): Promise<T>;
|
|
26
26
|
broadcastMessage(): void;
|
|
27
27
|
getUser(): OnesEditorUser;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import './index.scss';
|
|
2
2
|
import './locale';
|
|
3
3
|
export { OnesEditorVersionsDialog } from './version-dialog';
|
|
4
|
+
export { createOnesEditorHistoryDiff } from './history-diff';
|
|
4
5
|
export { HISTORY_TOOLTIP_IDENTIFIER } from './constant';
|
|
5
6
|
export * from './types';
|
|
7
|
+
export type { CreateOnesEditorHistoryDiffOptions } from './history-diff';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { OnesEditorDocHistoryData, OnesEditorDocVersionHelper } from '../../../../@ones-editor/core';
|
|
2
2
|
import HistoryDoc from '../history-doc';
|
|
3
|
-
export declare function playHistoryData(doc: HistoryDoc, versionHelper: OnesEditorDocVersionHelper, historyData: OnesEditorDocHistoryData[]): Promise<void>;
|
|
3
|
+
export declare function playHistoryData(doc: HistoryDoc, versionHelper: Pick<OnesEditorDocVersionHelper, 'parseHistoryData'>, historyData: OnesEditorDocHistoryData[]): Promise<void>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CreateOnesEditorOptions } from './types';
|
|
2
|
+
import type { EditorDoc } from '../@ones-editor/sharedb-doc';
|
|
3
|
+
import type { DocObject, OnesEditor, OnesEditorBlockRenderer, OnesEditorDocServer, OnesEditorDocVersionHelper } from '../@ones-editor/core';
|
|
4
|
+
export interface CreateDocHistoryDiffEditorOptions {
|
|
5
|
+
data: string | EditorDoc | DocObject;
|
|
6
|
+
ops?: unknown[];
|
|
7
|
+
editorOptions: CreateOnesEditorOptions;
|
|
8
|
+
server?: OnesEditorDocServer;
|
|
9
|
+
versionHelper?: Pick<OnesEditorDocVersionHelper, 'parseHistoryData'>;
|
|
10
|
+
textRenders?: OnesEditorBlockRenderer[];
|
|
11
|
+
}
|
|
12
|
+
export declare function createDocHistoryDiffEditor(parent: HTMLElement, options: CreateDocHistoryDiffEditorOptions): Promise<OnesEditor>;
|
package/dist/index.d.ts
CHANGED
|
@@ -49,6 +49,8 @@ export * from './helper';
|
|
|
49
49
|
export { OnesEditorComments, OnesEditorCommentsRender } from '../@ones-editor/comments';
|
|
50
50
|
export * from '../@ones-editor/cke-html';
|
|
51
51
|
export { type DocListBlock } from '../@ones-editor/list-block';
|
|
52
|
+
export { createDocHistoryDiffEditor } from './history-diff';
|
|
53
|
+
export type { CreateDocHistoryDiffEditorOptions } from './history-diff';
|
|
52
54
|
export declare function getDefaultOnesEditorOptions(options: CreateOnesEditorOptions): {
|
|
53
55
|
id: string | undefined;
|
|
54
56
|
scrollContainer: HTMLElement | undefined;
|
|
@@ -61,7 +63,7 @@ export declare function getDefaultOnesEditorOptions(options: CreateOnesEditorOpt
|
|
|
61
63
|
embeds: import("@ones-editor/core").Embed[];
|
|
62
64
|
boxes: import("@ones-editor/core").Box[];
|
|
63
65
|
commandProviders: (import("@ones-editor/core").OnesEditorCommandProvider | TableBlockCommandProvider)[];
|
|
64
|
-
decorators: (
|
|
66
|
+
decorators: (CodeTextDecorator | RemoteCaretsDecorator)[];
|
|
65
67
|
insertions: import("@ones-editor/core").Insertion[];
|
|
66
68
|
blockHooks: (import("@ones-editor/core").OnesEditorBlockHook | BlockExclusiveHook)[];
|
|
67
69
|
textRenders: OnesEditorBlockRenderer[];
|
package/dist/index.js
CHANGED
|
@@ -39402,40 +39402,41 @@ ${codeText}
|
|
|
39402
39402
|
return false;
|
|
39403
39403
|
}
|
|
39404
39404
|
const firstOp = ops[0];
|
|
39405
|
-
if (typeof firstOp !== "object") {
|
|
39405
|
+
if (!firstOp || typeof firstOp !== "object") {
|
|
39406
39406
|
return false;
|
|
39407
39407
|
}
|
|
39408
39408
|
if (!firstOp.i || Object.keys(firstOp).length !== 1) {
|
|
39409
39409
|
return false;
|
|
39410
39410
|
}
|
|
39411
|
-
for (let i = 1; i < ops.length;
|
|
39411
|
+
for (let i = 1; i < ops.length; ) {
|
|
39412
39412
|
const nextOp = ops[i];
|
|
39413
|
-
|
|
39413
|
+
const isArrayInsertOp = Array.isArray(nextOp);
|
|
39414
|
+
if (isArrayInsertOp && nextOp.length !== 2) {
|
|
39414
39415
|
return false;
|
|
39415
39416
|
}
|
|
39416
|
-
|
|
39417
|
-
return false;
|
|
39418
|
-
}
|
|
39419
|
-
const key = nextOp[0];
|
|
39417
|
+
const key = isArrayInsertOp ? nextOp[0] : nextOp;
|
|
39420
39418
|
if (typeof key !== "string") {
|
|
39421
39419
|
return false;
|
|
39422
39420
|
}
|
|
39423
|
-
const op = nextOp[1];
|
|
39424
|
-
if (typeof op !== "object") {
|
|
39421
|
+
const op = isArrayInsertOp ? nextOp[1] : ops[i + 1];
|
|
39422
|
+
if (!op || typeof op !== "object") {
|
|
39425
39423
|
return false;
|
|
39426
39424
|
}
|
|
39427
39425
|
if (op.i === void 0 || Object.keys(op).length !== 1) {
|
|
39428
39426
|
return false;
|
|
39429
39427
|
}
|
|
39428
|
+
i += isArrayInsertOp ? 1 : 2;
|
|
39430
39429
|
}
|
|
39431
39430
|
const blockData = firstOp.i;
|
|
39432
39431
|
assert(logger$2Y, blockData.id, "block id is required");
|
|
39433
39432
|
assert(logger$2Y, blockData.type, "block type is required");
|
|
39434
|
-
for (let i = 1; i < ops.length;
|
|
39433
|
+
for (let i = 1; i < ops.length; ) {
|
|
39435
39434
|
const nextOp = ops[i];
|
|
39436
|
-
const
|
|
39437
|
-
const
|
|
39435
|
+
const isArrayInsertOp = Array.isArray(nextOp);
|
|
39436
|
+
const key = isArrayInsertOp ? nextOp[0] : nextOp;
|
|
39437
|
+
const op = isArrayInsertOp ? nextOp[1] : ops[i + 1];
|
|
39438
39438
|
blockData[key] = op.i;
|
|
39439
|
+
i += isArrayInsertOp ? 1 : 2;
|
|
39439
39440
|
}
|
|
39440
39441
|
parser.onInsertBlock(containerId, blockIndex, blockData);
|
|
39441
39442
|
return true;
|
|
@@ -39577,6 +39578,19 @@ ${codeText}
|
|
|
39577
39578
|
}
|
|
39578
39579
|
}
|
|
39579
39580
|
}
|
|
39581
|
+
function parseBlockOps(containerId, ops, parseType, handler) {
|
|
39582
|
+
if (ops.length === 0) {
|
|
39583
|
+
return;
|
|
39584
|
+
}
|
|
39585
|
+
if (Array.isArray(ops[0])) {
|
|
39586
|
+
const blockOpsList = parseType === "remove" ? ops.concat().reverse() : ops;
|
|
39587
|
+
blockOpsList.forEach((op) => {
|
|
39588
|
+
parseBlockOp(containerId, op, parseType, handler);
|
|
39589
|
+
});
|
|
39590
|
+
return;
|
|
39591
|
+
}
|
|
39592
|
+
parseBlockOp(containerId, ops, parseType, handler);
|
|
39593
|
+
}
|
|
39580
39594
|
function parseOp(ops, parseType, handler) {
|
|
39581
39595
|
const firstOp = ops[0];
|
|
39582
39596
|
if (Array.isArray(firstOp)) {
|
|
@@ -39597,15 +39611,7 @@ ${codeText}
|
|
|
39597
39611
|
}
|
|
39598
39612
|
const containerId = rootKey;
|
|
39599
39613
|
if (Array.isArray(ops[1])) {
|
|
39600
|
-
|
|
39601
|
-
ops.slice(1).reverse().forEach((op) => {
|
|
39602
|
-
parseBlockOp(containerId, op, parseType, handler);
|
|
39603
|
-
});
|
|
39604
|
-
} else {
|
|
39605
|
-
ops.slice(1).forEach((op) => {
|
|
39606
|
-
parseBlockOp(containerId, op, parseType, handler);
|
|
39607
|
-
});
|
|
39608
|
-
}
|
|
39614
|
+
parseBlockOps(containerId, ops.slice(1), parseType, handler);
|
|
39609
39615
|
} else {
|
|
39610
39616
|
if (typeof ops[1] === "object") {
|
|
39611
39617
|
const action = ops[1];
|
|
@@ -39619,6 +39625,7 @@ ${codeText}
|
|
|
39619
39625
|
handler.onCreateContainer(containerId, action.i);
|
|
39620
39626
|
}
|
|
39621
39627
|
}
|
|
39628
|
+
parseBlockOps(containerId, ops.slice(2), parseType, handler);
|
|
39622
39629
|
} else {
|
|
39623
39630
|
assert(logger$2Y, typeof ops[1] === "number", `invalid ops[1], not a number: ${JSON.stringify(ops)}`);
|
|
39624
39631
|
parseBlockOp(containerId, ops.slice(1), parseType, handler);
|
|
@@ -83165,12 +83172,12 @@ ${docStr}
|
|
|
83165
83172
|
var _a, _b, _c;
|
|
83166
83173
|
return (_c = (_b = (_a = this.server).getServerMeta) == null ? void 0 : _b.call(_a)) != null ? _c : {};
|
|
83167
83174
|
}
|
|
83168
|
-
buildResourceUrl(src) {
|
|
83175
|
+
buildResourceUrl(src, options) {
|
|
83169
83176
|
var _a;
|
|
83170
83177
|
if ((_a = this.editorOptions) == null ? void 0 : _a.buildResourceUrl) {
|
|
83171
|
-
return this.editorOptions.buildResourceUrl(this, src);
|
|
83178
|
+
return this.editorOptions.buildResourceUrl(this, src, options);
|
|
83172
83179
|
}
|
|
83173
|
-
return this.server.buildResourceUrl(src);
|
|
83180
|
+
return this.server.buildResourceUrl(src, options);
|
|
83174
83181
|
}
|
|
83175
83182
|
request() {
|
|
83176
83183
|
disableLocalActions();
|
|
@@ -83942,7 +83949,7 @@ ${docStr}
|
|
|
83942
83949
|
const getReferenceClientRect2 = () => this.getReferenceClientRect(reference);
|
|
83943
83950
|
instance.setProps({
|
|
83944
83951
|
appendTo: () => {
|
|
83945
|
-
const editorContainer = document.querySelector(".version-dialog-editor");
|
|
83952
|
+
const editorContainer = document.querySelector(".version-dialog-editor") || this.editor.rootElement.parentElement || this.editor.rootElement;
|
|
83946
83953
|
return editorContainer;
|
|
83947
83954
|
},
|
|
83948
83955
|
getReferenceClientRect: getReferenceClientRect2,
|
|
@@ -83988,6 +83995,9 @@ ${docStr}
|
|
|
83988
83995
|
}
|
|
83989
83996
|
getPseudoMaskRect(reference) {
|
|
83990
83997
|
const currentRootContainer = document.getElementById("ones-editor-container-root");
|
|
83998
|
+
if (!currentRootContainer) {
|
|
83999
|
+
return null;
|
|
84000
|
+
}
|
|
83991
84001
|
const editorRootRect = currentRootContainer.getBoundingClientRect();
|
|
83992
84002
|
const safetyLeftOffset = editorRootRect.left - this.gap;
|
|
83993
84003
|
const internalProcess = (pseudoHolder) => {
|
|
@@ -84315,6 +84325,19 @@ ${docStr}
|
|
|
84315
84325
|
(_c = this.editor) == null ? void 0 : _c.destroy();
|
|
84316
84326
|
}
|
|
84317
84327
|
}
|
|
84328
|
+
async function createOnesEditorHistoryDiff(parent, options) {
|
|
84329
|
+
var _a;
|
|
84330
|
+
const historyDoc = new HistoryDoc(options.server, options.doc, options.editorOptions);
|
|
84331
|
+
const viewer = options.provider.createHistoryEditor(parent, historyDoc);
|
|
84332
|
+
viewer.editorBlockRenders.registerRender(new OnesEditorHistoryRender());
|
|
84333
|
+
viewer.editorBoxes.registerBoxClass(HistoryDeletedTextBox);
|
|
84334
|
+
(_a = options.textRenders) == null ? void 0 : _a.forEach((render) => viewer.editorBlockRenders.registerRender(render));
|
|
84335
|
+
OnesEditorHistoryTooltip.register(viewer);
|
|
84336
|
+
addClass(viewer.rootElement, HistoryClass.HISTORY);
|
|
84337
|
+
viewer.rootElement.style.setProperty("--history-mask-identifier", `"${HISTORY_MASK_IDENTIFIER}"`);
|
|
84338
|
+
await playHistoryData(historyDoc, options.versionHelper, options.historyData);
|
|
84339
|
+
return viewer;
|
|
84340
|
+
}
|
|
84318
84341
|
const zhCN$e = {
|
|
84319
84342
|
expandCollapseButton: {
|
|
84320
84343
|
expand: "\u5C55\u5F00",
|
|
@@ -86748,7 +86771,7 @@ ${docStr}
|
|
|
86748
86771
|
},
|
|
86749
86772
|
convertTo: convertTo$6
|
|
86750
86773
|
};
|
|
86751
|
-
const MERMAID_SCRIPTS = "https://cdn.jsdelivr.net/npm/mermaid@
|
|
86774
|
+
const MERMAID_SCRIPTS = "https://cdn.jsdelivr.net/npm/mermaid@9.0.1/dist/mermaid.min.js";
|
|
86752
86775
|
const FLOWCHART_SCRIPTS = ["//cdnjs.cloudflare.com/ajax/libs/raphael/2.3.0/raphael.min.js", "//cdnjs.cloudflare.com/ajax/libs/flowchart/1.15.0/flowchart.min.js"];
|
|
86753
86776
|
const PLANTUML_PRE = "https://www.plantuml.com/plantuml/svg";
|
|
86754
86777
|
const GRAPH_MIN_HEIGHT = 150;
|
|
@@ -87465,17 +87488,22 @@ ${docStr}
|
|
|
87465
87488
|
const mermaid = window.mermaid;
|
|
87466
87489
|
assert(logger$l, mermaid, "Resource load failed: Mermaid javaScript resource injection failed");
|
|
87467
87490
|
const id = genId();
|
|
87468
|
-
|
|
87469
|
-
|
|
87470
|
-
|
|
87471
|
-
|
|
87472
|
-
|
|
87473
|
-
|
|
87474
|
-
|
|
87475
|
-
|
|
87476
|
-
|
|
87477
|
-
|
|
87478
|
-
|
|
87491
|
+
const promise = new Promise((resolve, reject) => {
|
|
87492
|
+
try {
|
|
87493
|
+
mermaid.mermaidAPI.render(id, code, (svgCode2) => {
|
|
87494
|
+
setTimeout(() => {
|
|
87495
|
+
resolve(svgCode2);
|
|
87496
|
+
});
|
|
87497
|
+
});
|
|
87498
|
+
} catch (err) {
|
|
87499
|
+
err.message = err.str;
|
|
87500
|
+
const delId = `d${id}`;
|
|
87501
|
+
const el = document.getElementById(delId);
|
|
87502
|
+
el == null ? void 0 : el.remove();
|
|
87503
|
+
reject(err);
|
|
87504
|
+
}
|
|
87505
|
+
});
|
|
87506
|
+
const svgCode = await promise;
|
|
87479
87507
|
const domParser = new DOMParser();
|
|
87480
87508
|
const xml = domParser.parseFromString(svgCode, "image/svg+xml");
|
|
87481
87509
|
const xmlSvg = xml.firstChild;
|
|
@@ -97076,6 +97104,137 @@ ${JSON.stringify(error2, null, 2)}`);
|
|
|
97076
97104
|
function combineRichTextValue(value1, value2) {
|
|
97077
97105
|
return combineCkeHtml(value1, value2);
|
|
97078
97106
|
}
|
|
97107
|
+
const DefaultHistoryDiffUser = {
|
|
97108
|
+
userId: "history-diff",
|
|
97109
|
+
displayName: ""
|
|
97110
|
+
};
|
|
97111
|
+
const isRecord = (value) => {
|
|
97112
|
+
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
97113
|
+
};
|
|
97114
|
+
const isDocObject = (value) => {
|
|
97115
|
+
const blocks = value.blocks;
|
|
97116
|
+
return Boolean(blocks && typeof blocks === "object" && Array.isArray(blocks.root));
|
|
97117
|
+
};
|
|
97118
|
+
const trimTrailingSlash = (value) => {
|
|
97119
|
+
return value.replace(/\/+$/, "");
|
|
97120
|
+
};
|
|
97121
|
+
const buildDocApiServer = (editorOptions) => {
|
|
97122
|
+
const serverUrl = trimTrailingSlash(editorOptions.serverUrl);
|
|
97123
|
+
const { appId, docId } = editorOptions;
|
|
97124
|
+
if (!serverUrl || !appId || !docId) {
|
|
97125
|
+
return editorOptions.serverUrl;
|
|
97126
|
+
}
|
|
97127
|
+
const docApiServer = serverUrl + "/" + appId + "/" + docId;
|
|
97128
|
+
if (docApiServer.startsWith("ws://")) {
|
|
97129
|
+
return `http://${docApiServer.substring(5)}`;
|
|
97130
|
+
}
|
|
97131
|
+
if (docApiServer.startsWith("wss://")) {
|
|
97132
|
+
return `https://${docApiServer.substring(6)}`;
|
|
97133
|
+
}
|
|
97134
|
+
return docApiServer;
|
|
97135
|
+
};
|
|
97136
|
+
const parseDocData = (data2) => {
|
|
97137
|
+
if (typeof data2 !== "string") {
|
|
97138
|
+
return data2;
|
|
97139
|
+
}
|
|
97140
|
+
const parsed = JSON.parse(data2);
|
|
97141
|
+
if (!isRecord(parsed)) {
|
|
97142
|
+
throw new Error("invalid history diff doc data");
|
|
97143
|
+
}
|
|
97144
|
+
return parsed;
|
|
97145
|
+
};
|
|
97146
|
+
const toDocObject = (data2) => {
|
|
97147
|
+
const parsed = parseDocData(data2);
|
|
97148
|
+
if (isDocObject(parsed)) {
|
|
97149
|
+
return parsed;
|
|
97150
|
+
}
|
|
97151
|
+
return editorDoc2DocObject(parsed);
|
|
97152
|
+
};
|
|
97153
|
+
const getHistoryDiffUser = (op) => {
|
|
97154
|
+
var _a;
|
|
97155
|
+
const createdBy = (_a = op.meta) == null ? void 0 : _a.createdBy;
|
|
97156
|
+
const user = op.user || createdBy;
|
|
97157
|
+
return {
|
|
97158
|
+
userId: (user == null ? void 0 : user.userId) || DefaultHistoryDiffUser.userId,
|
|
97159
|
+
displayName: (user == null ? void 0 : user.displayName) || DefaultHistoryDiffUser.displayName
|
|
97160
|
+
};
|
|
97161
|
+
};
|
|
97162
|
+
const getHistoryDiffOp = (op) => {
|
|
97163
|
+
if (Array.isArray(op.op)) {
|
|
97164
|
+
return op.op;
|
|
97165
|
+
}
|
|
97166
|
+
if (Array.isArray(op.ops)) {
|
|
97167
|
+
return op.ops;
|
|
97168
|
+
}
|
|
97169
|
+
return [];
|
|
97170
|
+
};
|
|
97171
|
+
const toHistoryData = (ops = []) => {
|
|
97172
|
+
return ops.reduce((historyData, op) => {
|
|
97173
|
+
if (!isRecord(op)) {
|
|
97174
|
+
return historyData;
|
|
97175
|
+
}
|
|
97176
|
+
const opData = op;
|
|
97177
|
+
const user = getHistoryDiffUser(opData);
|
|
97178
|
+
const normalizedOp = getHistoryDiffOp(opData);
|
|
97179
|
+
if (normalizedOp.length === 0) {
|
|
97180
|
+
return historyData;
|
|
97181
|
+
}
|
|
97182
|
+
historyData.push({
|
|
97183
|
+
user,
|
|
97184
|
+
data: {
|
|
97185
|
+
...opData,
|
|
97186
|
+
meta: {
|
|
97187
|
+
...isRecord(opData.meta) ? opData.meta : {},
|
|
97188
|
+
createdBy: user
|
|
97189
|
+
},
|
|
97190
|
+
op: normalizedOp
|
|
97191
|
+
}
|
|
97192
|
+
});
|
|
97193
|
+
return historyData;
|
|
97194
|
+
}, []);
|
|
97195
|
+
};
|
|
97196
|
+
class HistoryDiffVersionHelper {
|
|
97197
|
+
parseHistoryData(historyData, handler) {
|
|
97198
|
+
const data2 = historyData.data;
|
|
97199
|
+
parseOps(data2.op || [], handler, true);
|
|
97200
|
+
}
|
|
97201
|
+
}
|
|
97202
|
+
class HistoryDiffDocServer {
|
|
97203
|
+
constructor(editorOptions) {
|
|
97204
|
+
__publicField(this, "remoteUsers", new RemoteUsers());
|
|
97205
|
+
this.editorOptions = editorOptions;
|
|
97206
|
+
}
|
|
97207
|
+
buildResourceUrl(resourceId, options) {
|
|
97208
|
+
return resourceId;
|
|
97209
|
+
}
|
|
97210
|
+
getRemoteUsers() {
|
|
97211
|
+
return this.remoteUsers;
|
|
97212
|
+
}
|
|
97213
|
+
getServerMeta() {
|
|
97214
|
+
return {
|
|
97215
|
+
appId: this.editorOptions.appId,
|
|
97216
|
+
docId: this.editorOptions.docId,
|
|
97217
|
+
serverId: this.editorOptions.serverUrl,
|
|
97218
|
+
apiServer: buildDocApiServer(this.editorOptions)
|
|
97219
|
+
};
|
|
97220
|
+
}
|
|
97221
|
+
}
|
|
97222
|
+
async function createDocHistoryDiffEditor(parent, options) {
|
|
97223
|
+
const doc2 = toDocObject(options.data);
|
|
97224
|
+
const historyData = toHistoryData(options.ops);
|
|
97225
|
+
const server = options.server || new HistoryDiffDocServer(options.editorOptions);
|
|
97226
|
+
const versionHelper = options.versionHelper || new HistoryDiffVersionHelper();
|
|
97227
|
+
const provider = new ShareDBDocVersionsProvider(options.editorOptions);
|
|
97228
|
+
return createOnesEditorHistoryDiff(parent, {
|
|
97229
|
+
server,
|
|
97230
|
+
provider,
|
|
97231
|
+
doc: doc2,
|
|
97232
|
+
historyData,
|
|
97233
|
+
versionHelper,
|
|
97234
|
+
editorOptions: options.editorOptions,
|
|
97235
|
+
textRenders: options.textRenders
|
|
97236
|
+
});
|
|
97237
|
+
}
|
|
97079
97238
|
const logger = getLogger("create-editor");
|
|
97080
97239
|
function getHooks(options, local) {
|
|
97081
97240
|
var _a;
|
|
@@ -97335,7 +97494,7 @@ ${JSON.stringify(error2, null, 2)}`);
|
|
|
97335
97494
|
}
|
|
97336
97495
|
}
|
|
97337
97496
|
});
|
|
97338
|
-
editor.version = "3.0.
|
|
97497
|
+
editor.version = "3.0.19-beta.2";
|
|
97339
97498
|
return editor;
|
|
97340
97499
|
}
|
|
97341
97500
|
function isDoc(doc2) {
|
|
@@ -97469,7 +97628,7 @@ ${JSON.stringify(error2, null, 2)}`);
|
|
|
97469
97628
|
OnesEditorDropTarget.register(editor);
|
|
97470
97629
|
OnesEditorTocProvider.register(editor);
|
|
97471
97630
|
OnesEditorExclusiveBlock.register(editor);
|
|
97472
|
-
editor.version = "3.0.
|
|
97631
|
+
editor.version = "3.0.19-beta.2";
|
|
97473
97632
|
return editor;
|
|
97474
97633
|
}
|
|
97475
97634
|
async function showDocVersions(editor, options, serverUrl) {
|
|
@@ -97604,7 +97763,7 @@ ${JSON.stringify(error2, null, 2)}`);
|
|
|
97604
97763
|
}
|
|
97605
97764
|
}
|
|
97606
97765
|
});
|
|
97607
|
-
editor.version = "3.0.
|
|
97766
|
+
editor.version = "3.0.19-beta.2";
|
|
97608
97767
|
return editor;
|
|
97609
97768
|
}
|
|
97610
97769
|
const emojis$1 = {
|
|
@@ -143701,6 +143860,7 @@ ${JSON.stringify(error2, null, 2)}`);
|
|
|
143701
143860
|
exports2.createContainer = createContainer$1;
|
|
143702
143861
|
exports2.createContainerElement = createContainerElement;
|
|
143703
143862
|
exports2.createDeleteOps = createDeleteOps;
|
|
143863
|
+
exports2.createDocHistoryDiffEditor = createDocHistoryDiffEditor;
|
|
143704
143864
|
exports2.createEditor = createEditor;
|
|
143705
143865
|
exports2.createEditorSelectionRange = createEditorSelectionRange;
|
|
143706
143866
|
exports2.createElement = createElement;
|
|
@@ -143720,6 +143880,7 @@ ${JSON.stringify(error2, null, 2)}`);
|
|
|
143720
143880
|
exports2.createMobileBottomMenu = createMobileBottomMenu;
|
|
143721
143881
|
exports2.createMouseEventFromTouchEvent = createMouseEventFromTouchEvent;
|
|
143722
143882
|
exports2.createOnesEditor = createOnesEditor;
|
|
143883
|
+
exports2.createOnesEditorHistoryDiff = createOnesEditorHistoryDiff;
|
|
143723
143884
|
exports2.createRange = createRange;
|
|
143724
143885
|
exports2.createRichText = createRichText;
|
|
143725
143886
|
exports2.createRootContainer = createRootContainer;
|
|
@@ -144088,6 +144249,7 @@ ${JSON.stringify(error2, null, 2)}`);
|
|
|
144088
144249
|
exports2.mergeText = mergeText;
|
|
144089
144250
|
exports2.multiSplitText = multiSplitText;
|
|
144090
144251
|
exports2.overflowText = overflowText;
|
|
144252
|
+
exports2.parseOps = parseOps;
|
|
144091
144253
|
exports2.parseShortcut = parseShortcut;
|
|
144092
144254
|
exports2.patchNode = patchNode;
|
|
144093
144255
|
exports2.pointInRect = pointInRect;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ones-editor/editor",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.19-beta.2",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"dependencies": {
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"marked-extended-latex": "^1.1.0",
|
|
49
49
|
"markmap-common": "0.15.3",
|
|
50
50
|
"markmap-view": "0.15.4",
|
|
51
|
-
"mermaid": "
|
|
51
|
+
"mermaid": "^9.1.0",
|
|
52
52
|
"mime-db": "^1.52.0",
|
|
53
53
|
"nanoid": "^3.2.0",
|
|
54
54
|
"ot-json1": "^1.0.2",
|