@manuscripts/article-editor 3.9.1-LEAN-4533.1 → 3.9.2-LEAN-2023.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/dist/cjs/EditorApp.js +1 -8
- package/dist/cjs/EditorApp.js.map +1 -1
- package/dist/cjs/Main.js +3 -3
- package/dist/cjs/Main.js.map +1 -1
- package/dist/{types/lib/comparison/rebuild-nodes-tree.d.ts → cjs/__mocks__/fileMock.js} +5 -4
- package/dist/cjs/__mocks__/fileMock.js.map +1 -0
- package/dist/{types/lib/comparison/create-dataTracked-attrs.d.ts → cjs/__mocks__/styleMock.js} +5 -5
- package/dist/cjs/__mocks__/styleMock.js.map +1 -0
- package/dist/cjs/components/inspector/SnapshotsList.js +2 -14
- package/dist/cjs/components/inspector/SnapshotsList.js.map +1 -1
- package/dist/cjs/components/projects/EditorElement.js +4 -5
- package/dist/cjs/components/projects/EditorElement.js.map +1 -1
- package/dist/cjs/components/projects/Inspector.js +1 -7
- package/dist/cjs/components/projects/Inspector.js.map +1 -1
- package/dist/cjs/components/projects/ManuscriptPageContainer.js +3 -4
- package/dist/cjs/components/projects/ManuscriptPageContainer.js.map +1 -1
- package/dist/cjs/components/track-changes/TrackChangesPanel.js +3 -16
- package/dist/cjs/components/track-changes/TrackChangesPanel.js.map +1 -1
- package/dist/cjs/components/track-changes/suggestion-list/Suggestion.js +3 -7
- package/dist/cjs/components/track-changes/suggestion-list/Suggestion.js.map +1 -1
- package/dist/cjs/components/track-changes/suggestion-list/SuggestionList.js +2 -6
- package/dist/cjs/components/track-changes/suggestion-list/SuggestionList.js.map +1 -1
- package/dist/cjs/components/track-changes/utils.js +1 -2
- package/dist/cjs/components/track-changes/utils.js.map +1 -1
- package/dist/cjs/hooks/use-create-editor.js +13 -30
- package/dist/cjs/hooks/use-create-editor.js.map +1 -1
- package/dist/cjs/index.js +3 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/{tracking.js → __tests__/layout.test.js} +25 -38
- package/dist/cjs/lib/__tests__/layout.test.js.map +1 -0
- package/dist/cjs/lib/__tests__/preferences.test.js +50 -0
- package/dist/cjs/lib/__tests__/preferences.test.js.map +1 -0
- package/dist/cjs/lib/__tests__/roles.test.js +32 -0
- package/dist/cjs/lib/__tests__/roles.test.js.map +1 -0
- package/dist/cjs/lib/change-handlers.js +28 -5
- package/dist/cjs/lib/change-handlers.js.map +1 -1
- package/dist/cjs/store/Store.js +2 -7
- package/dist/cjs/store/Store.js.map +1 -1
- package/dist/es/EditorApp.js +1 -8
- package/dist/es/EditorApp.js.map +1 -1
- package/dist/es/Main.js +3 -3
- package/dist/es/Main.js.map +1 -1
- package/dist/{types/lib/comparison/distribute-nodes.d.ts → es/__mocks__/fileMock.js} +3 -9
- package/dist/es/__mocks__/fileMock.js.map +1 -0
- package/dist/es/__mocks__/styleMock.js +13 -0
- package/dist/es/__mocks__/styleMock.js.map +1 -0
- package/dist/es/components/inspector/SnapshotsList.js +3 -15
- package/dist/es/components/inspector/SnapshotsList.js.map +1 -1
- package/dist/es/components/projects/EditorElement.js +4 -5
- package/dist/es/components/projects/EditorElement.js.map +1 -1
- package/dist/es/components/projects/Inspector.js +1 -7
- package/dist/es/components/projects/Inspector.js.map +1 -1
- package/dist/es/components/projects/ManuscriptPageContainer.js +3 -4
- package/dist/es/components/projects/ManuscriptPageContainer.js.map +1 -1
- package/dist/es/components/track-changes/TrackChangesPanel.js +3 -16
- package/dist/es/components/track-changes/TrackChangesPanel.js.map +1 -1
- package/dist/es/components/track-changes/suggestion-list/Suggestion.js +3 -7
- package/dist/es/components/track-changes/suggestion-list/Suggestion.js.map +1 -1
- package/dist/es/components/track-changes/suggestion-list/SuggestionList.js +2 -6
- package/dist/es/components/track-changes/suggestion-list/SuggestionList.js.map +1 -1
- package/dist/es/components/track-changes/utils.js +1 -2
- package/dist/es/components/track-changes/utils.js.map +1 -1
- package/dist/es/hooks/use-create-editor.js +14 -31
- package/dist/es/hooks/use-create-editor.js.map +1 -1
- package/dist/es/index.js +3 -3
- package/dist/es/index.js.map +1 -1
- package/dist/es/lib/{tracking.js → __tests__/layout.test.js} +22 -35
- package/dist/es/lib/__tests__/layout.test.js.map +1 -0
- package/dist/{types/lib/comparison/compare-table-element.d.ts → es/lib/__tests__/preferences.test.js} +15 -11
- package/dist/es/lib/__tests__/preferences.test.js.map +1 -0
- package/dist/es/lib/__tests__/roles.test.js +30 -0
- package/dist/es/lib/__tests__/roles.test.js.map +1 -0
- package/dist/es/lib/change-handlers.js +23 -1
- package/dist/es/lib/change-handlers.js.map +1 -1
- package/dist/es/store/Store.js +2 -7
- package/dist/es/store/Store.js.map +1 -1
- package/dist/types/EditorApp.d.ts +1 -2
- package/dist/types/Main.d.ts +1 -1
- package/dist/types/__mocks__/fileMock.d.ts +13 -0
- package/dist/types/__mocks__/styleMock.d.ts +13 -0
- package/dist/types/components/projects/Inspector.d.ts +1 -1
- package/dist/types/components/projects/ManuscriptPageContainer.d.ts +1 -1
- package/dist/types/components/projects/inputs.d.ts +1 -1
- package/dist/types/components/track-changes/TrackChangesPanel.d.ts +1 -1
- package/dist/types/components/track-changes/suggestion-list/Suggestion.d.ts +1 -1
- package/dist/types/components/track-changes/suggestion-list/SuggestionList.d.ts +3 -3
- package/dist/types/index.d.ts +1 -1
- package/dist/types/lib/{tracking.d.ts → __tests__/layout.test.d.ts} +0 -17
- package/dist/types/lib/__tests__/preferences.test.d.ts +12 -0
- package/dist/types/lib/__tests__/roles.test.d.ts +12 -0
- package/dist/types/lib/change-handlers.d.ts +1 -0
- package/dist/types/store/Store.d.ts +1 -3
- package/package.json +77 -84
- package/dist/cjs/components/tools/CompareDocumentsModal.js +0 -170
- package/dist/cjs/components/tools/CompareDocumentsModal.js.map +0 -1
- package/dist/cjs/hooks/use-compare-documents.js +0 -69
- package/dist/cjs/hooks/use-compare-documents.js.map +0 -1
- package/dist/cjs/lib/comparison/compare-documents.js +0 -53
- package/dist/cjs/lib/comparison/compare-documents.js.map +0 -1
- package/dist/cjs/lib/comparison/compare-paragraph-like.js +0 -388
- package/dist/cjs/lib/comparison/compare-paragraph-like.js.map +0 -1
- package/dist/cjs/lib/comparison/compare-table-element.js +0 -567
- package/dist/cjs/lib/comparison/compare-table-element.js.map +0 -1
- package/dist/cjs/lib/comparison/create-dataTracked-attrs.js +0 -60
- package/dist/cjs/lib/comparison/create-dataTracked-attrs.js.map +0 -1
- package/dist/cjs/lib/comparison/distribute-nodes.js +0 -131
- package/dist/cjs/lib/comparison/distribute-nodes.js.map +0 -1
- package/dist/cjs/lib/comparison/rebuild-nodes-tree.js +0 -76
- package/dist/cjs/lib/comparison/rebuild-nodes-tree.js.map +0 -1
- package/dist/cjs/lib/tracking.js.map +0 -1
- package/dist/es/components/tools/CompareDocumentsModal.js +0 -140
- package/dist/es/components/tools/CompareDocumentsModal.js.map +0 -1
- package/dist/es/hooks/use-compare-documents.js +0 -65
- package/dist/es/hooks/use-compare-documents.js.map +0 -1
- package/dist/es/lib/comparison/compare-documents.js +0 -48
- package/dist/es/lib/comparison/compare-documents.js.map +0 -1
- package/dist/es/lib/comparison/compare-paragraph-like.js +0 -378
- package/dist/es/lib/comparison/compare-paragraph-like.js.map +0 -1
- package/dist/es/lib/comparison/compare-table-element.js +0 -559
- package/dist/es/lib/comparison/compare-table-element.js.map +0 -1
- package/dist/es/lib/comparison/create-dataTracked-attrs.js +0 -54
- package/dist/es/lib/comparison/create-dataTracked-attrs.js.map +0 -1
- package/dist/es/lib/comparison/distribute-nodes.js +0 -127
- package/dist/es/lib/comparison/distribute-nodes.js.map +0 -1
- package/dist/es/lib/comparison/rebuild-nodes-tree.js +0 -72
- package/dist/es/lib/comparison/rebuild-nodes-tree.js.map +0 -1
- package/dist/es/lib/tracking.js.map +0 -1
- package/dist/types/components/tools/CompareDocumentsModal.d.ts +0 -11
- package/dist/types/hooks/use-compare-documents.d.ts +0 -24
- package/dist/types/lib/comparison/compare-documents.d.ts +0 -16
- package/dist/types/lib/comparison/compare-paragraph-like.d.ts +0 -23
@@ -1,388 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.compareTextLikeContent = exports.rebuildFromDiff = exports.containsOnlyTextNodes = exports.compareParagraphLike = void 0;
|
7
|
-
/*!
|
8
|
-
* The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
|
9
|
-
*
|
10
|
-
* Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
|
11
|
-
*
|
12
|
-
* The Original Code is manuscripts-frontend.
|
13
|
-
*
|
14
|
-
* The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
|
15
|
-
*
|
16
|
-
* All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
|
17
|
-
*/
|
18
|
-
const transform_1 = require("@manuscripts/transform");
|
19
|
-
const diff_match_patch_1 = __importDefault(require("diff-match-patch"));
|
20
|
-
const lodash_1 = require("lodash");
|
21
|
-
const create_dataTracked_attrs_1 = require("./create-dataTracked-attrs");
|
22
|
-
// Compares two ManuscriptNode objects that are paragraph-like
|
23
|
-
// It checks if the nodes contain only text nodes and if so, it compares the text content
|
24
|
-
// Otherwise, it flattens the nodes and compares the chunks
|
25
|
-
const compareParagraphLike = (originalNode, comparisonNode) => {
|
26
|
-
const originalHasOnlyText = (0, exports.containsOnlyTextNodes)(originalNode);
|
27
|
-
const comparisonHasOnlyText = (0, exports.containsOnlyTextNodes)(comparisonNode);
|
28
|
-
if (originalHasOnlyText && comparisonHasOnlyText) {
|
29
|
-
return (0, exports.compareTextLikeContent)(originalNode, comparisonNode, comparisonNode.type);
|
30
|
-
}
|
31
|
-
const originalChunks = flattenParagraph(Array.from({ length: originalNode.content.childCount }, (_, i) => originalNode.content.child(i)));
|
32
|
-
const comparisonChunks = flattenParagraph(Array.from({ length: comparisonNode.content.childCount }, (_, i) => comparisonNode.content.child(i)));
|
33
|
-
const originalString = stringifyChunks(originalChunks);
|
34
|
-
const comparisonString = stringifyChunks(comparisonChunks);
|
35
|
-
const dmp = new diff_match_patch_1.default();
|
36
|
-
const diffs = dmp.diff_main(originalString, comparisonString);
|
37
|
-
const content = (0, exports.rebuildFromDiff)(diffs, originalChunks, comparisonChunks);
|
38
|
-
return comparisonNode.type.create(comparisonNode.attrs, content);
|
39
|
-
};
|
40
|
-
exports.compareParagraphLike = compareParagraphLike;
|
41
|
-
// Checks if a node contains only text nodes
|
42
|
-
const containsOnlyTextNodes = (node) => {
|
43
|
-
if (!node.content || node.content.childCount === 0) {
|
44
|
-
return true;
|
45
|
-
}
|
46
|
-
for (let i = 0; i < node.content.childCount; i++) {
|
47
|
-
const child = node.content.child(i);
|
48
|
-
if (child.type.name !== 'text') {
|
49
|
-
return false;
|
50
|
-
}
|
51
|
-
}
|
52
|
-
return true;
|
53
|
-
};
|
54
|
-
exports.containsOnlyTextNodes = containsOnlyTextNodes;
|
55
|
-
// Flattens a paragraph-like node into a list of text and inline chunks
|
56
|
-
const flattenParagraph = (nodes) => {
|
57
|
-
const chunks = [];
|
58
|
-
let inlineCounter = 0;
|
59
|
-
for (const node of nodes) {
|
60
|
-
if (node.type.name === 'text') {
|
61
|
-
chunks.push({ type: 'text', key: node.text, node });
|
62
|
-
}
|
63
|
-
else {
|
64
|
-
let tag = '';
|
65
|
-
if (node.type.name === 'cross_reference' &&
|
66
|
-
node.attrs &&
|
67
|
-
node.attrs.rids) {
|
68
|
-
tag = `[CROSS_REF:${node.attrs.rids.join(',')}]`;
|
69
|
-
}
|
70
|
-
else {
|
71
|
-
tag = `[INLINE_${inlineCounter++}]`;
|
72
|
-
}
|
73
|
-
chunks.push({ type: 'inline', key: tag, node });
|
74
|
-
}
|
75
|
-
}
|
76
|
-
return chunks;
|
77
|
-
};
|
78
|
-
// Stringifies a list of chunks into a single string
|
79
|
-
const stringifyChunks = (chunks) => {
|
80
|
-
return chunks.map((c) => c.key).join('');
|
81
|
-
};
|
82
|
-
// Rebuilds a ManuscriptNode tree from a list of diffs
|
83
|
-
const rebuildFromDiff = (diffs, originalChunks, comparisonChunks) => {
|
84
|
-
const result = [];
|
85
|
-
const originalChunkMap = buildChunkPositionMap(originalChunks);
|
86
|
-
const comparisonChunkMap = buildChunkPositionMap(comparisonChunks);
|
87
|
-
const originalInlineMap = new Map();
|
88
|
-
const comparisonInlineMap = new Map();
|
89
|
-
originalChunks.forEach((chunk) => {
|
90
|
-
if (chunk.type === 'inline') {
|
91
|
-
const node = chunk.node;
|
92
|
-
if (node.attrs && node.attrs.id) {
|
93
|
-
originalInlineMap.set(node.attrs.id, node);
|
94
|
-
}
|
95
|
-
if (node.type.name === 'cross_reference' &&
|
96
|
-
node.attrs &&
|
97
|
-
node.attrs.rids) {
|
98
|
-
originalInlineMap.set(`cross_ref:${node.attrs.rids.join(',')}`, node);
|
99
|
-
}
|
100
|
-
}
|
101
|
-
});
|
102
|
-
comparisonChunks.forEach((chunk) => {
|
103
|
-
if (chunk.type === 'inline') {
|
104
|
-
const node = chunk.node;
|
105
|
-
if (node.attrs && node.attrs.id) {
|
106
|
-
comparisonInlineMap.set(node.attrs.id, node);
|
107
|
-
}
|
108
|
-
if (node.type.name === 'cross_reference' &&
|
109
|
-
node.attrs &&
|
110
|
-
node.attrs.rids) {
|
111
|
-
comparisonInlineMap.set(`cross_ref:${node.attrs.rids.join(',')}`, node);
|
112
|
-
}
|
113
|
-
}
|
114
|
-
});
|
115
|
-
let origPos = 0;
|
116
|
-
let compPos = 0;
|
117
|
-
for (const [op, str] of diffs) {
|
118
|
-
if (op === 0) {
|
119
|
-
const startCompPos = compPos;
|
120
|
-
compPos += str.length;
|
121
|
-
origPos += str.length;
|
122
|
-
const chunks = getChunksInRange(comparisonChunks, comparisonChunkMap, startCompPos, compPos);
|
123
|
-
for (const chunk of chunks) {
|
124
|
-
if (chunk.type === 'text') {
|
125
|
-
const chunkStartPos = getChunkStartPos(comparisonChunks, comparisonChunks.indexOf(chunk));
|
126
|
-
const chunkEndPos = chunkStartPos + chunk.key.length;
|
127
|
-
if (startCompPos > chunkStartPos || compPos < chunkEndPos) {
|
128
|
-
const startOffset = Math.max(0, startCompPos - chunkStartPos);
|
129
|
-
const endOffset = Math.min(chunk.key.length, compPos - chunkStartPos);
|
130
|
-
const textContent = chunk.key.substring(startOffset, endOffset);
|
131
|
-
const textNode = transform_1.schema.text(textContent);
|
132
|
-
result.push(textNode);
|
133
|
-
}
|
134
|
-
else {
|
135
|
-
result.push(chunk.node);
|
136
|
-
}
|
137
|
-
}
|
138
|
-
else {
|
139
|
-
const inlineNode = chunk.node;
|
140
|
-
if (inlineNode.type.name === 'cross_reference' &&
|
141
|
-
inlineNode.attrs &&
|
142
|
-
inlineNode.attrs.rids) {
|
143
|
-
const key = `cross_ref:${inlineNode.attrs.rids.join(',')}`;
|
144
|
-
const originalNode = originalInlineMap.get(key);
|
145
|
-
if (originalNode) {
|
146
|
-
if (!(0, lodash_1.isEqual)(originalNode.attrs, inlineNode.attrs)) {
|
147
|
-
const comparedNode = compareInlineNodeAttrs(originalNode, inlineNode, 'set');
|
148
|
-
result.push(comparedNode);
|
149
|
-
}
|
150
|
-
else {
|
151
|
-
result.push(inlineNode);
|
152
|
-
}
|
153
|
-
}
|
154
|
-
}
|
155
|
-
else if (inlineNode.attrs && inlineNode.attrs.id) {
|
156
|
-
const originalNode = originalInlineMap.get(inlineNode.attrs.id);
|
157
|
-
if (originalNode) {
|
158
|
-
if (!(0, lodash_1.isEqual)(originalNode.attrs, inlineNode.attrs)) {
|
159
|
-
const comparedNode = compareInlineNodeAttrs(originalNode, inlineNode, 'set');
|
160
|
-
result.push(comparedNode);
|
161
|
-
}
|
162
|
-
else {
|
163
|
-
result.push(inlineNode);
|
164
|
-
}
|
165
|
-
}
|
166
|
-
}
|
167
|
-
else {
|
168
|
-
result.push(inlineNode);
|
169
|
-
}
|
170
|
-
}
|
171
|
-
}
|
172
|
-
}
|
173
|
-
else if (op === 1) {
|
174
|
-
const startCompPos = compPos;
|
175
|
-
compPos += str.length;
|
176
|
-
const chunks = getChunksInRange(comparisonChunks, comparisonChunkMap, startCompPos, compPos);
|
177
|
-
for (const chunk of chunks) {
|
178
|
-
if (chunk.type === 'text') {
|
179
|
-
const chunkStartPos = getChunkStartPos(comparisonChunks, comparisonChunks.indexOf(chunk));
|
180
|
-
const chunkEndPos = chunkStartPos + chunk.key.length;
|
181
|
-
if (startCompPos > chunkStartPos || compPos < chunkEndPos) {
|
182
|
-
const startOffset = Math.max(0, startCompPos - chunkStartPos);
|
183
|
-
const endOffset = Math.min(chunk.key.length, compPos - chunkStartPos);
|
184
|
-
const textContent = chunk.key.substring(startOffset, endOffset);
|
185
|
-
const textNode = transform_1.schema.text(textContent, [
|
186
|
-
transform_1.schema.marks.tracked_insert.create({
|
187
|
-
dataTracked: (0, create_dataTracked_attrs_1.createComparisonInsertAttrsDataTracked)(''),
|
188
|
-
}),
|
189
|
-
]);
|
190
|
-
result.push(textNode);
|
191
|
-
}
|
192
|
-
else {
|
193
|
-
result.push(chunk.node.mark([
|
194
|
-
transform_1.schema.marks.tracked_insert.create({
|
195
|
-
dataTracked: (0, create_dataTracked_attrs_1.createComparisonInsertAttrsDataTracked)(''),
|
196
|
-
}),
|
197
|
-
]));
|
198
|
-
}
|
199
|
-
}
|
200
|
-
else {
|
201
|
-
const inlineNode = chunk.node;
|
202
|
-
if (inlineNode.type.name === 'cross_reference' &&
|
203
|
-
inlineNode.attrs &&
|
204
|
-
inlineNode.attrs.rids) {
|
205
|
-
const key = `cross_ref:${inlineNode.attrs.rids.join(',')}`;
|
206
|
-
const originalNode = originalInlineMap.get(key);
|
207
|
-
if (originalNode) {
|
208
|
-
if (!(0, lodash_1.isEqual)(originalNode.attrs, inlineNode.attrs)) {
|
209
|
-
const comparedNode = compareInlineNodeAttrs(originalNode, inlineNode, 'set');
|
210
|
-
result.push(comparedNode);
|
211
|
-
}
|
212
|
-
else {
|
213
|
-
result.push(inlineNode);
|
214
|
-
}
|
215
|
-
}
|
216
|
-
else {
|
217
|
-
const trackedNode = compareInlineNodeAttrs(null, inlineNode, 'insert');
|
218
|
-
result.push(trackedNode);
|
219
|
-
}
|
220
|
-
}
|
221
|
-
else if (inlineNode.attrs && inlineNode.attrs.id) {
|
222
|
-
const originalNode = originalInlineMap.get(inlineNode.attrs.id);
|
223
|
-
if (originalNode) {
|
224
|
-
if (!(0, lodash_1.isEqual)(originalNode.attrs, inlineNode.attrs)) {
|
225
|
-
const comparedNode = compareInlineNodeAttrs(originalNode, inlineNode, 'set');
|
226
|
-
result.push(comparedNode);
|
227
|
-
}
|
228
|
-
else {
|
229
|
-
result.push(inlineNode);
|
230
|
-
}
|
231
|
-
}
|
232
|
-
else {
|
233
|
-
const trackedNode = compareInlineNodeAttrs(null, inlineNode, 'insert');
|
234
|
-
result.push(trackedNode);
|
235
|
-
}
|
236
|
-
}
|
237
|
-
else {
|
238
|
-
const trackedNode = compareInlineNodeAttrs(null, inlineNode, 'insert');
|
239
|
-
result.push(trackedNode);
|
240
|
-
}
|
241
|
-
}
|
242
|
-
}
|
243
|
-
}
|
244
|
-
else if (op === -1) {
|
245
|
-
const startOrigPos = origPos;
|
246
|
-
origPos += str.length;
|
247
|
-
const chunks = getChunksInRange(originalChunks, originalChunkMap, startOrigPos, origPos);
|
248
|
-
for (const chunk of chunks) {
|
249
|
-
if (chunk.type === 'text') {
|
250
|
-
const chunkStartPos = getChunkStartPos(originalChunks, originalChunks.indexOf(chunk));
|
251
|
-
const chunkEndPos = chunkStartPos + chunk.key.length;
|
252
|
-
if (startOrigPos > chunkStartPos || origPos < chunkEndPos) {
|
253
|
-
const startOffset = Math.max(0, startOrigPos - chunkStartPos);
|
254
|
-
const endOffset = Math.min(chunk.key.length, origPos - chunkStartPos);
|
255
|
-
const textContent = chunk.key.substring(startOffset, endOffset);
|
256
|
-
const textNode = transform_1.schema.text(textContent, [
|
257
|
-
transform_1.schema.marks.tracked_delete.create({
|
258
|
-
dataTracked: (0, create_dataTracked_attrs_1.createComparisonDeleteAttrsDataTracked)(''),
|
259
|
-
}),
|
260
|
-
]);
|
261
|
-
result.push(textNode);
|
262
|
-
}
|
263
|
-
else {
|
264
|
-
result.push(chunk.node.mark([
|
265
|
-
transform_1.schema.marks.tracked_delete.create({
|
266
|
-
dataTracked: (0, create_dataTracked_attrs_1.createComparisonDeleteAttrsDataTracked)(''),
|
267
|
-
}),
|
268
|
-
]));
|
269
|
-
}
|
270
|
-
}
|
271
|
-
else {
|
272
|
-
const inlineNode = chunk.node;
|
273
|
-
if (inlineNode.type.name === 'cross_reference' &&
|
274
|
-
inlineNode.attrs &&
|
275
|
-
inlineNode.attrs.rids) {
|
276
|
-
const key = `cross_ref:${inlineNode.attrs.rids.join(',')}`;
|
277
|
-
const comparisonNode = comparisonInlineMap.get(key);
|
278
|
-
if (!comparisonNode) {
|
279
|
-
const trackedNode = compareInlineNodeAttrs(inlineNode, inlineNode, 'delete');
|
280
|
-
result.push(trackedNode);
|
281
|
-
}
|
282
|
-
}
|
283
|
-
else if (inlineNode.attrs && inlineNode.attrs.id) {
|
284
|
-
const comparisonNode = comparisonInlineMap.get(inlineNode.attrs.id);
|
285
|
-
if (!comparisonNode) {
|
286
|
-
const trackedNode = compareInlineNodeAttrs(inlineNode, inlineNode, 'delete');
|
287
|
-
result.push(trackedNode);
|
288
|
-
}
|
289
|
-
}
|
290
|
-
else {
|
291
|
-
const trackedNode = compareInlineNodeAttrs(inlineNode, inlineNode, 'delete');
|
292
|
-
result.push(trackedNode);
|
293
|
-
}
|
294
|
-
}
|
295
|
-
}
|
296
|
-
}
|
297
|
-
}
|
298
|
-
return result;
|
299
|
-
};
|
300
|
-
exports.rebuildFromDiff = rebuildFromDiff;
|
301
|
-
// Gets the start position of a chunk
|
302
|
-
const getChunkStartPos = (chunks, index) => {
|
303
|
-
let pos = 0;
|
304
|
-
for (let i = 0; i < index; i++) {
|
305
|
-
pos += chunks[i].key.length;
|
306
|
-
}
|
307
|
-
return pos;
|
308
|
-
};
|
309
|
-
// Gets the chunks in a range
|
310
|
-
const getChunksInRange = (chunks, posMap, startPos, endPos) => {
|
311
|
-
const result = [];
|
312
|
-
for (let i = 0; i < chunks.length; i++) {
|
313
|
-
const { startPos: chunkStart, endPos: chunkEnd } = posMap[i];
|
314
|
-
if (chunkEnd > startPos && chunkStart < endPos) {
|
315
|
-
result.push(chunks[i]);
|
316
|
-
}
|
317
|
-
}
|
318
|
-
return result;
|
319
|
-
};
|
320
|
-
// Builds a map of chunk positions
|
321
|
-
const buildChunkPositionMap = (chunks) => {
|
322
|
-
const posMap = [];
|
323
|
-
let currentPos = 0;
|
324
|
-
for (let i = 0; i < chunks.length; i++) {
|
325
|
-
const chunk = chunks[i];
|
326
|
-
const chunkLength = chunk.key.length;
|
327
|
-
posMap.push({
|
328
|
-
startPos: currentPos,
|
329
|
-
endPos: currentPos + chunkLength,
|
330
|
-
});
|
331
|
-
currentPos += chunkLength;
|
332
|
-
}
|
333
|
-
return posMap;
|
334
|
-
};
|
335
|
-
// Compares the attributes of two inline nodes
|
336
|
-
const compareInlineNodeAttrs = (originalNode, comparisonNode, operation = 'set') => {
|
337
|
-
if (operation === 'insert' || !originalNode) {
|
338
|
-
return comparisonNode.type.create({
|
339
|
-
...comparisonNode.attrs,
|
340
|
-
dataTracked: [(0, create_dataTracked_attrs_1.createComparisonInsertAttrsDataTracked)('')],
|
341
|
-
}, comparisonNode.content, comparisonNode.marks);
|
342
|
-
}
|
343
|
-
else if (operation === 'delete') {
|
344
|
-
return originalNode.type.create({
|
345
|
-
...originalNode.attrs,
|
346
|
-
dataTracked: [(0, create_dataTracked_attrs_1.createComparisonDeleteAttrsDataTracked)('')],
|
347
|
-
}, originalNode.content, originalNode.marks);
|
348
|
-
}
|
349
|
-
else if (!(0, lodash_1.isEqual)(originalNode.attrs, comparisonNode.attrs)) {
|
350
|
-
return comparisonNode.type.create({
|
351
|
-
...comparisonNode.attrs,
|
352
|
-
dataTracked: [
|
353
|
-
(0, create_dataTracked_attrs_1.createComparisonSetAttrsDataTracked)('', originalNode.attrs),
|
354
|
-
],
|
355
|
-
}, comparisonNode.content, comparisonNode.marks);
|
356
|
-
}
|
357
|
-
else {
|
358
|
-
return comparisonNode;
|
359
|
-
}
|
360
|
-
};
|
361
|
-
// Compares the text content of two ManuscriptNode objects
|
362
|
-
const compareTextLikeContent = (original, comparison, wrapperNodeType) => {
|
363
|
-
const dmp = new diff_match_patch_1.default();
|
364
|
-
const diffs = dmp.diff_main(original.textContent, comparison.textContent);
|
365
|
-
dmp.diff_cleanupSemantic(diffs);
|
366
|
-
const content = diffs.map(([op, text]) => {
|
367
|
-
if (op === -1) {
|
368
|
-
return transform_1.schema.text(text, [
|
369
|
-
transform_1.schema.marks.tracked_delete.create({
|
370
|
-
dataTracked: (0, create_dataTracked_attrs_1.createComparisonDeleteAttrsDataTracked)(''),
|
371
|
-
}),
|
372
|
-
]);
|
373
|
-
}
|
374
|
-
else if (op === 1) {
|
375
|
-
return transform_1.schema.text(text, [
|
376
|
-
transform_1.schema.marks.tracked_insert.create({
|
377
|
-
dataTracked: (0, create_dataTracked_attrs_1.createComparisonInsertAttrsDataTracked)(''),
|
378
|
-
}),
|
379
|
-
]);
|
380
|
-
}
|
381
|
-
else {
|
382
|
-
return transform_1.schema.text(text);
|
383
|
-
}
|
384
|
-
});
|
385
|
-
return wrapperNodeType.create(comparison.attrs, content);
|
386
|
-
};
|
387
|
-
exports.compareTextLikeContent = compareTextLikeContent;
|
388
|
-
//# sourceMappingURL=compare-paragraph-like.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"compare-paragraph-like.js","sourceRoot":"","sources":["../../../../src/lib/comparison/compare-paragraph-like.ts"],"names":[],"mappings":"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"}
|