@manuscripts/track-changes-plugin 2.0.0 → 2.0.1
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.
|
@@ -53,7 +53,7 @@ function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema, delete
|
|
|
53
53
|
changes.forEach((c) => {
|
|
54
54
|
let step = newTr.steps[newTr.steps.length - 1];
|
|
55
55
|
switch (c.type) {
|
|
56
|
-
case 'delete-node':
|
|
56
|
+
case 'delete-node': {
|
|
57
57
|
deletesCounter++;
|
|
58
58
|
const prevDeletedNodeInserted = isInserted;
|
|
59
59
|
const trackedData = (0, nodeHelpers_1.getBlockInlineTrackedData)(c.node);
|
|
@@ -85,7 +85,8 @@ function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema, delete
|
|
|
85
85
|
}
|
|
86
86
|
(0, mergeTrackedMarks_1.mergeTrackedMarks)(mapping.map(c.pos), newTr.doc, newTr, schema);
|
|
87
87
|
break;
|
|
88
|
-
|
|
88
|
+
}
|
|
89
|
+
case 'delete-text': {
|
|
89
90
|
const node = newTr.doc.nodeAt(mapping.map(c.pos));
|
|
90
91
|
if (!node) {
|
|
91
92
|
logger_1.log.error(`processChangeSteps: no text node found for text-change`, c);
|
|
@@ -102,7 +103,8 @@ function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema, delete
|
|
|
102
103
|
}
|
|
103
104
|
(0, mergeTrackedMarks_1.mergeTrackedMarks)(where, newTr.doc, newTr, schema);
|
|
104
105
|
break;
|
|
105
|
-
|
|
106
|
+
}
|
|
107
|
+
case 'merge-fragment': {
|
|
106
108
|
let insertPos = mapping.map(c.mergePos);
|
|
107
109
|
if (c.node.isText) {
|
|
108
110
|
insertPos = (0, deleteText_1.deleteTextIfInserted)(c.node, mapping.map(c.pos), newTr, schema, deleteAttrs, mapping.map(c.from), mapping.map(c.to));
|
|
@@ -119,7 +121,8 @@ function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema, delete
|
|
|
119
121
|
newTr.insert(insertPos, c.fragment);
|
|
120
122
|
}
|
|
121
123
|
break;
|
|
122
|
-
|
|
124
|
+
}
|
|
125
|
+
case 'insert-slice': {
|
|
123
126
|
const newStep = new prosemirror_transform_1.ReplaceStep(mapping.map(c.from), mapping.map(c.to), c.slice, false);
|
|
124
127
|
const stepResult = newTr.maybeStep(newStep);
|
|
125
128
|
if (stepResult.failed) {
|
|
@@ -131,7 +134,8 @@ function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema, delete
|
|
|
131
134
|
(0, mergeTrackedMarks_1.mergeTrackedMarks)(mapping.map(c.to) + (to < newTr.doc.nodeSize ? c.slice.size : 0), newTr.doc, newTr, schema);
|
|
132
135
|
selectionPos = mapping.map(c.to) + c.slice.size;
|
|
133
136
|
break;
|
|
134
|
-
|
|
137
|
+
}
|
|
138
|
+
case 'update-node-attrs': {
|
|
135
139
|
const oldDataTracked = (0, nodeHelpers_1.getBlockInlineTrackedData)(c.node) || [];
|
|
136
140
|
const oldUpdate = oldDataTracked.reverse().find((d) => {
|
|
137
141
|
if (d.operation === change_1.CHANGE_OPERATION.set_node_attributes && d.status === change_1.CHANGE_STATUS.pending) {
|
|
@@ -153,6 +157,7 @@ function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema, delete
|
|
|
153
157
|
const finalDataTracked = newDataTracked.length > 0 ? newDataTracked : oldDataTracked;
|
|
154
158
|
newTr.setNodeMarkup(mapping.map(c.pos), undefined, Object.assign(Object.assign({}, c.newAttrs), { dataTracked: finalDataTracked.length > 0 ? finalDataTracked : null }), c.node.marks);
|
|
155
159
|
break;
|
|
160
|
+
}
|
|
156
161
|
default:
|
|
157
162
|
logger_1.log.error(`processChangeSteps: unknown change type`, c);
|
|
158
163
|
return;
|
|
@@ -102,15 +102,19 @@ const HasMoveOperations = (tr) => {
|
|
|
102
102
|
}
|
|
103
103
|
const step = tr.steps[i];
|
|
104
104
|
const doc = tr.docs[i];
|
|
105
|
+
if (!step.slice) {
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
105
108
|
const stepDeletesContent = step.from !== step.to && step.slice.size === 0;
|
|
106
109
|
const stepInsertsContent = step.slice.size && step.slice.content.firstChild ? true : false;
|
|
107
|
-
console.log('stepDeletesContent', stepDeletesContent);
|
|
108
|
-
console.log('stepInsertsContent', stepInsertsContent);
|
|
109
110
|
for (let g = 0; g < tr.steps.length; g++) {
|
|
110
111
|
if (g === i || matched.includes(g)) {
|
|
111
112
|
continue;
|
|
112
113
|
}
|
|
113
114
|
const peerStep = tr.steps[g];
|
|
115
|
+
if (!peerStep.slice) {
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
114
118
|
const peerStepInsertsContent = peerStep.slice.size && peerStep.slice.content.firstChild;
|
|
115
119
|
const peerStepDeletesContent = peerStep.from !== peerStep.to && peerStep.slice.size === 0;
|
|
116
120
|
if (stepDeletesContent) {
|
|
@@ -27,7 +27,7 @@ export function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema,
|
|
|
27
27
|
changes.forEach((c) => {
|
|
28
28
|
let step = newTr.steps[newTr.steps.length - 1];
|
|
29
29
|
switch (c.type) {
|
|
30
|
-
case 'delete-node':
|
|
30
|
+
case 'delete-node': {
|
|
31
31
|
deletesCounter++;
|
|
32
32
|
const prevDeletedNodeInserted = isInserted;
|
|
33
33
|
const trackedData = getBlockInlineTrackedData(c.node);
|
|
@@ -59,7 +59,8 @@ export function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema,
|
|
|
59
59
|
}
|
|
60
60
|
mergeTrackedMarks(mapping.map(c.pos), newTr.doc, newTr, schema);
|
|
61
61
|
break;
|
|
62
|
-
|
|
62
|
+
}
|
|
63
|
+
case 'delete-text': {
|
|
63
64
|
const node = newTr.doc.nodeAt(mapping.map(c.pos));
|
|
64
65
|
if (!node) {
|
|
65
66
|
log.error(`processChangeSteps: no text node found for text-change`, c);
|
|
@@ -76,7 +77,8 @@ export function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema,
|
|
|
76
77
|
}
|
|
77
78
|
mergeTrackedMarks(where, newTr.doc, newTr, schema);
|
|
78
79
|
break;
|
|
79
|
-
|
|
80
|
+
}
|
|
81
|
+
case 'merge-fragment': {
|
|
80
82
|
let insertPos = mapping.map(c.mergePos);
|
|
81
83
|
if (c.node.isText) {
|
|
82
84
|
insertPos = deleteTextIfInserted(c.node, mapping.map(c.pos), newTr, schema, deleteAttrs, mapping.map(c.from), mapping.map(c.to));
|
|
@@ -93,7 +95,8 @@ export function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema,
|
|
|
93
95
|
newTr.insert(insertPos, c.fragment);
|
|
94
96
|
}
|
|
95
97
|
break;
|
|
96
|
-
|
|
98
|
+
}
|
|
99
|
+
case 'insert-slice': {
|
|
97
100
|
const newStep = new ReplaceStep(mapping.map(c.from), mapping.map(c.to), c.slice, false);
|
|
98
101
|
const stepResult = newTr.maybeStep(newStep);
|
|
99
102
|
if (stepResult.failed) {
|
|
@@ -105,7 +108,8 @@ export function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema,
|
|
|
105
108
|
mergeTrackedMarks(mapping.map(c.to) + (to < newTr.doc.nodeSize ? c.slice.size : 0), newTr.doc, newTr, schema);
|
|
106
109
|
selectionPos = mapping.map(c.to) + c.slice.size;
|
|
107
110
|
break;
|
|
108
|
-
|
|
111
|
+
}
|
|
112
|
+
case 'update-node-attrs': {
|
|
109
113
|
const oldDataTracked = getBlockInlineTrackedData(c.node) || [];
|
|
110
114
|
const oldUpdate = oldDataTracked.reverse().find((d) => {
|
|
111
115
|
if (d.operation === CHANGE_OPERATION.set_node_attributes && d.status === CHANGE_STATUS.pending) {
|
|
@@ -127,6 +131,7 @@ export function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema,
|
|
|
127
131
|
const finalDataTracked = newDataTracked.length > 0 ? newDataTracked : oldDataTracked;
|
|
128
132
|
newTr.setNodeMarkup(mapping.map(c.pos), undefined, Object.assign(Object.assign({}, c.newAttrs), { dataTracked: finalDataTracked.length > 0 ? finalDataTracked : null }), c.node.marks);
|
|
129
133
|
break;
|
|
134
|
+
}
|
|
130
135
|
default:
|
|
131
136
|
log.error(`processChangeSteps: unknown change type`, c);
|
|
132
137
|
return;
|
|
@@ -87,15 +87,19 @@ export const HasMoveOperations = (tr) => {
|
|
|
87
87
|
}
|
|
88
88
|
const step = tr.steps[i];
|
|
89
89
|
const doc = tr.docs[i];
|
|
90
|
+
if (!step.slice) {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
90
93
|
const stepDeletesContent = step.from !== step.to && step.slice.size === 0;
|
|
91
94
|
const stepInsertsContent = step.slice.size && step.slice.content.firstChild ? true : false;
|
|
92
|
-
console.log('stepDeletesContent', stepDeletesContent);
|
|
93
|
-
console.log('stepInsertsContent', stepInsertsContent);
|
|
94
95
|
for (let g = 0; g < tr.steps.length; g++) {
|
|
95
96
|
if (g === i || matched.includes(g)) {
|
|
96
97
|
continue;
|
|
97
98
|
}
|
|
98
99
|
const peerStep = tr.steps[g];
|
|
100
|
+
if (!peerStep.slice) {
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
99
103
|
const peerStepInsertsContent = peerStep.slice.size && peerStep.slice.content.firstChild;
|
|
100
104
|
const peerStepDeletesContent = peerStep.from !== peerStep.to && peerStep.slice.size === 0;
|
|
101
105
|
if (stepDeletesContent) {
|
package/package.json
CHANGED