@manuscripts/track-changes-plugin 2.0.9 → 2.0.11
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/actions.js +6 -5
- package/dist/cjs/change-steps/diffChangeSteps.js +1 -2
- package/dist/cjs/change-steps/matchInserted.js +1 -2
- package/dist/cjs/change-steps/processChangeSteps.js +22 -10
- package/dist/cjs/changes/applyChanges.js +53 -12
- package/dist/cjs/changes/findChanges.js +1 -2
- package/dist/cjs/changes/fixInconsistentChanges.js +1 -2
- package/dist/cjs/changes/revertChange.js +2 -3
- package/dist/cjs/changes/updateChangeAttrs.js +9 -3
- package/dist/cjs/changes/updateChangesStatus.js +1 -2
- package/dist/cjs/compute/nodeHelpers.js +7 -8
- package/dist/cjs/compute/setFragmentAsInserted.js +23 -14
- package/dist/cjs/compute/splitSliceIntoMergedParts.js +1 -2
- package/dist/cjs/index.js +20 -8
- package/dist/cjs/mutate/deleteAndMergeSplitNodes.js +18 -9
- package/dist/cjs/mutate/deleteNode.js +4 -4
- package/dist/cjs/mutate/deleteText.js +1 -2
- package/dist/cjs/mutate/mergeNode.js +1 -2
- package/dist/cjs/mutate/mergeTrackedMarks.js +1 -2
- package/dist/cjs/steps/trackReplaceAroundStep.js +18 -9
- package/dist/cjs/steps/trackReplaceStep.js +25 -14
- package/dist/cjs/steps/trackTransaction.js +17 -7
- package/dist/cjs/types/change.js +2 -2
- package/dist/cjs/types/track.js +1 -1
- package/dist/cjs/utils/mapChangeStep.js +1 -2
- package/dist/cjs/utils/track-utils.js +11 -11
- package/dist/cjs/utils/uuidv4.js +1 -2
- package/dist/es/actions.js +1 -0
- package/dist/es/change-steps/processChangeSteps.js +4 -1
- package/dist/es/changes/applyChanges.js +52 -10
- package/dist/es/changes/updateChangeAttrs.js +6 -0
- package/dist/es/compute/setFragmentAsInserted.js +2 -2
- package/dist/es/index.js +1 -1
- package/dist/es/mutate/deleteNode.js +2 -1
- package/dist/es/steps/trackReplaceStep.js +7 -5
- package/dist/es/steps/trackTransaction.js +16 -5
- package/dist/es/utils/track-utils.js +2 -2
- package/dist/types/ChangeSet.d.ts +4 -4
- package/dist/types/actions.d.ts +5 -1
- package/dist/types/changes/updateChangeAttrs.d.ts +1 -0
- package/dist/types/compute/setFragmentAsInserted.d.ts +2 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/types/change.d.ts +1 -0
- package/dist/types/types/track.d.ts +6 -2
- package/dist/types/utils/track-utils.d.ts +2 -2
- package/package.json +8 -8
package/dist/cjs/actions.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.skipTracking = exports.
|
|
3
|
+
exports.skipTracking = exports.TrackChangesAction = void 0;
|
|
4
|
+
exports.hasAction = hasAction;
|
|
5
|
+
exports.getAction = getAction;
|
|
6
|
+
exports.setAction = setAction;
|
|
4
7
|
var TrackChangesAction;
|
|
5
8
|
(function (TrackChangesAction) {
|
|
6
9
|
TrackChangesAction["skipTrack"] = "track-changes-skip-tracking";
|
|
@@ -9,18 +12,16 @@ var TrackChangesAction;
|
|
|
9
12
|
TrackChangesAction["setChangeStatuses"] = "track-changes-set-change-statuses";
|
|
10
13
|
TrackChangesAction["refreshChanges"] = "track-changes-refresh-changes";
|
|
11
14
|
TrackChangesAction["updateMetaNode"] = "track-changes-update-meta-node";
|
|
12
|
-
|
|
15
|
+
TrackChangesAction["indentationAction"] = "track-changes-indentation-action";
|
|
16
|
+
})(TrackChangesAction || (exports.TrackChangesAction = TrackChangesAction = {}));
|
|
13
17
|
function hasAction(tr) {
|
|
14
18
|
return Object.values(TrackChangesAction).some((action) => !!tr.getMeta(action));
|
|
15
19
|
}
|
|
16
|
-
exports.hasAction = hasAction;
|
|
17
20
|
function getAction(tr, action) {
|
|
18
21
|
return tr.getMeta(action);
|
|
19
22
|
}
|
|
20
|
-
exports.getAction = getAction;
|
|
21
23
|
function setAction(tr, action, payload) {
|
|
22
24
|
return tr.setMeta(action, payload);
|
|
23
25
|
}
|
|
24
|
-
exports.setAction = setAction;
|
|
25
26
|
const skipTracking = (tr) => setAction(tr, TrackChangesAction.skipTrack, true);
|
|
26
27
|
exports.skipTracking = skipTracking;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.diffChangeSteps =
|
|
3
|
+
exports.diffChangeSteps = diffChangeSteps;
|
|
4
4
|
const prosemirror_model_1 = require("prosemirror-model");
|
|
5
5
|
const logger_1 = require("../utils/logger");
|
|
6
6
|
const matchInserted_1 = require("./matchInserted");
|
|
@@ -60,4 +60,3 @@ function diffChangeSteps(deleted, inserted) {
|
|
|
60
60
|
logger_1.log.info('FINISH DIFF: ', [...updatedDeleted, ...updated]);
|
|
61
61
|
return [...updatedDeleted, ...updated];
|
|
62
62
|
}
|
|
63
|
-
exports.diffChangeSteps = diffChangeSteps;
|
|
@@ -11,7 +11,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
return t;
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.matchInserted =
|
|
14
|
+
exports.matchInserted = matchInserted;
|
|
15
15
|
function matchText(adjDeleted, insNode, offset, matchedDeleted, deleted) {
|
|
16
16
|
const { pos, from, to, node: delNode } = adjDeleted;
|
|
17
17
|
let j = offset, d = from - pos, maxSteps = to - Math.max(pos, from);
|
|
@@ -66,4 +66,3 @@ function matchInserted(matchedDeleted, deleted, inserted) {
|
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
exports.matchInserted = matchInserted;
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __rest = (this && this.__rest) || function (s, e) {
|
|
26
36
|
var t = {};
|
|
27
37
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
@@ -34,7 +44,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
34
44
|
return t;
|
|
35
45
|
};
|
|
36
46
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
-
exports.processChangeSteps =
|
|
47
|
+
exports.processChangeSteps = processChangeSteps;
|
|
38
48
|
const prosemirror_transform_1 = require("prosemirror-transform");
|
|
39
49
|
const nodeHelpers_1 = require("../compute/nodeHelpers");
|
|
40
50
|
const deleteNode_1 = require("../mutate/deleteNode");
|
|
@@ -72,7 +82,10 @@ function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema, delete
|
|
|
72
82
|
}
|
|
73
83
|
const nodeAtMappedPos = newTr.doc.nodeAt(mapping.map(c.pos));
|
|
74
84
|
const nodeWasAlreadyDeleted = !nodeAtMappedPos || nodeAtMappedPos !== c.node;
|
|
75
|
-
|
|
85
|
+
const isMoveOperation = !!emptyAttrs.moveNodeId;
|
|
86
|
+
if ((isInserted && deletesCounter > 1 && !isMoveOperation) ||
|
|
87
|
+
(childOfDeleted && prevDeletedNodeInserted) ||
|
|
88
|
+
nodeWasAlreadyDeleted) {
|
|
76
89
|
return false;
|
|
77
90
|
}
|
|
78
91
|
(0, deleteNode_1.deleteOrSetNodeDeleted)(c.node, mapping.map(c.pos), newTr, deleteAttrs);
|
|
@@ -171,4 +184,3 @@ function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema, delete
|
|
|
171
184
|
});
|
|
172
185
|
return [mapping, selectionPos];
|
|
173
186
|
}
|
|
174
|
-
exports.processChangeSteps = processChangeSteps;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getUpdatedDataTracked = getUpdatedDataTracked;
|
|
4
|
+
exports.applyAcceptedRejectedChanges = applyAcceptedRejectedChanges;
|
|
4
5
|
const prosemirror_transform_1 = require("prosemirror-transform");
|
|
5
6
|
const ChangeSet_1 = require("../ChangeSet");
|
|
6
7
|
const deleteNode_1 = require("../mutate/deleteNode");
|
|
@@ -9,6 +10,21 @@ const change_1 = require("../types/change");
|
|
|
9
10
|
const logger_1 = require("../utils/logger");
|
|
10
11
|
const revertChange_1 = require("./revertChange");
|
|
11
12
|
const updateChangeAttrs_1 = require("./updateChangeAttrs");
|
|
13
|
+
function collectMoveNodeIds(containerNode, primaryMoveNodeId) {
|
|
14
|
+
const moveNodeIds = new Set();
|
|
15
|
+
moveNodeIds.add(primaryMoveNodeId);
|
|
16
|
+
containerNode.descendants((childNode) => {
|
|
17
|
+
const dataTracked = childNode.attrs.dataTracked;
|
|
18
|
+
if (Array.isArray(dataTracked)) {
|
|
19
|
+
dataTracked.forEach((trackingData) => {
|
|
20
|
+
if (trackingData.moveNodeId) {
|
|
21
|
+
moveNodeIds.add(trackingData.moveNodeId);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
return moveNodeIds;
|
|
27
|
+
}
|
|
12
28
|
function getUpdatedDataTracked(dataTracked, changeId) {
|
|
13
29
|
if (!dataTracked) {
|
|
14
30
|
return null;
|
|
@@ -16,7 +32,6 @@ function getUpdatedDataTracked(dataTracked, changeId) {
|
|
|
16
32
|
const newDataTracked = dataTracked.filter((c) => c.id !== changeId);
|
|
17
33
|
return newDataTracked.length ? newDataTracked : null;
|
|
18
34
|
}
|
|
19
|
-
exports.getUpdatedDataTracked = getUpdatedDataTracked;
|
|
20
35
|
function applyAcceptedRejectedChanges(tr, schema, changes, changeSet, deleteMap = new prosemirror_transform_1.Mapping()) {
|
|
21
36
|
changes.sort((c1, c2) => {
|
|
22
37
|
if ((c1.type === 'node-change' && c1.node.type === schema.nodes.list) ||
|
|
@@ -29,6 +44,9 @@ function applyAcceptedRejectedChanges(tr, schema, changes, changeSet, deleteMap
|
|
|
29
44
|
if (change.dataTracked.operation === change_1.CHANGE_OPERATION.move) {
|
|
30
45
|
return;
|
|
31
46
|
}
|
|
47
|
+
if (change.dataTracked.operation === change_1.CHANGE_OPERATION.delete && change.dataTracked.moveNodeId) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
32
50
|
const { pos: from, deleted } = deleteMap.mapResult(change.from);
|
|
33
51
|
const node = tr.doc.nodeAt(from);
|
|
34
52
|
const noChangeNeeded = !ChangeSet_1.ChangeSet.shouldDeleteChange(change);
|
|
@@ -94,27 +112,50 @@ function applyAcceptedRejectedChanges(tr, schema, changes, changeSet, deleteMap
|
|
|
94
112
|
return;
|
|
95
113
|
}
|
|
96
114
|
if (change.dataTracked.status === change_1.CHANGE_STATUS.accepted) {
|
|
97
|
-
const
|
|
115
|
+
const attrs = Object.assign(Object.assign({}, node.attrs), { dataTracked: getUpdatedDataTracked(node.attrs.dataTracked, change.id) });
|
|
116
|
+
tr.setNodeMarkup(from, undefined, attrs, node.marks);
|
|
117
|
+
const originalChanges = changeSet.changes.filter((c) => c.dataTracked.moveNodeId === change.dataTracked.moveNodeId &&
|
|
98
118
|
c.dataTracked.operation === change_1.CHANGE_OPERATION.delete);
|
|
99
|
-
if (
|
|
100
|
-
|
|
119
|
+
if (originalChanges.length === 0) {
|
|
120
|
+
logger_1.log.warn('No original change found for move operation', { change });
|
|
121
|
+
}
|
|
122
|
+
originalChanges.forEach((originalChange) => {
|
|
123
|
+
const { pos: originalFrom, deleted } = deleteMap.mapResult(originalChange.from);
|
|
124
|
+
if (deleted) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
101
127
|
const originalNode = tr.doc.nodeAt(originalFrom);
|
|
102
|
-
const attrs = Object.assign(Object.assign({}, node.attrs), { dataTracked: getUpdatedDataTracked(node.attrs.dataTracked, change.id) });
|
|
103
|
-
tr.setNodeMarkup(from, undefined, attrs, node.marks);
|
|
104
128
|
if (originalNode) {
|
|
105
129
|
tr.delete(originalFrom, originalFrom + originalNode.nodeSize);
|
|
106
130
|
deleteMap.appendMap(tr.steps[tr.steps.length - 1].getMap());
|
|
107
131
|
}
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
logger_1.log.warn('No original change found for move operation', { change });
|
|
111
|
-
}
|
|
132
|
+
});
|
|
112
133
|
}
|
|
113
134
|
else if (change.dataTracked.status === change_1.CHANGE_STATUS.rejected) {
|
|
135
|
+
const moveNodeIdsToRestore = collectMoveNodeIds(node, change.dataTracked.moveNodeId);
|
|
114
136
|
tr.delete(from, from + node.nodeSize);
|
|
115
137
|
deleteMap.appendMap(tr.steps[tr.steps.length - 1].getMap());
|
|
138
|
+
changeSet.changes
|
|
139
|
+
.filter((c) => c.dataTracked.operation === change_1.CHANGE_OPERATION.delete &&
|
|
140
|
+
c.dataTracked.moveNodeId &&
|
|
141
|
+
moveNodeIdsToRestore.has(c.dataTracked.moveNodeId) &&
|
|
142
|
+
ChangeSet_1.ChangeSet.isNodeChange(c))
|
|
143
|
+
.forEach((orig) => {
|
|
144
|
+
const { pos } = deleteMap.mapResult(orig.from);
|
|
145
|
+
const node = tr.doc.nodeAt(pos);
|
|
146
|
+
if (!node) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
const dataTracked = node.attrs.dataTracked || [];
|
|
150
|
+
const hasMoved = dataTracked.some((d) => d.operation === change_1.CHANGE_OPERATION.move && d.status === change_1.CHANGE_STATUS.pending);
|
|
151
|
+
if (hasMoved) {
|
|
152
|
+
tr.delete(pos, pos + node.nodeSize);
|
|
153
|
+
deleteMap.appendMap(tr.steps[tr.steps.length - 1].getMap());
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
(0, updateChangeAttrs_1.restoreNode)(tr, node, pos, schema);
|
|
157
|
+
});
|
|
116
158
|
}
|
|
117
159
|
});
|
|
118
160
|
return deleteMap;
|
|
119
161
|
}
|
|
120
|
-
exports.applyAcceptedRejectedChanges = applyAcceptedRejectedChanges;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.findChanges =
|
|
3
|
+
exports.findChanges = findChanges;
|
|
4
4
|
const ChangeSet_1 = require("../ChangeSet");
|
|
5
5
|
const nodeHelpers_1 = require("../compute/nodeHelpers");
|
|
6
6
|
const change_1 = require("../types/change");
|
|
@@ -76,4 +76,3 @@ function findChanges(state) {
|
|
|
76
76
|
current && changes.push(current.change);
|
|
77
77
|
return new ChangeSet_1.ChangeSet(changes);
|
|
78
78
|
}
|
|
79
|
-
exports.findChanges = findChanges;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fixInconsistentChanges =
|
|
3
|
+
exports.fixInconsistentChanges = fixInconsistentChanges;
|
|
4
4
|
const change_1 = require("../types/change");
|
|
5
5
|
const uuidv4_1 = require("../utils/uuidv4");
|
|
6
6
|
const updateChangeAttrs_1 = require("./updateChangeAttrs");
|
|
@@ -19,4 +19,3 @@ function fixInconsistentChanges(changeSet, currentUserID, newTr, schema) {
|
|
|
19
19
|
});
|
|
20
20
|
return changed;
|
|
21
21
|
}
|
|
22
|
-
exports.fixInconsistentChanges = fixInconsistentChanges;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.revertSplitNodeChange = revertSplitNodeChange;
|
|
4
|
+
exports.revertWrapNodeChange = revertWrapNodeChange;
|
|
4
5
|
const prosemirror_model_1 = require("prosemirror-model");
|
|
5
6
|
const prosemirror_transform_1 = require("prosemirror-transform");
|
|
6
7
|
const nodeHelpers_1 = require("../compute/nodeHelpers");
|
|
@@ -26,7 +27,6 @@ function revertSplitNodeChange(tr, change, changeSet) {
|
|
|
26
27
|
tr.setNodeMarkup(tr.mapping.map(deleteChange.from), undefined, (0, applyChanges_1.getUpdatedDataTracked)(node.attrs.dataTracked, deleteChange.id));
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
|
-
exports.revertSplitNodeChange = revertSplitNodeChange;
|
|
30
30
|
function revertWrapNodeChange(tr, change, deleteMap) {
|
|
31
31
|
const from = tr.mapping.map(change.from);
|
|
32
32
|
const to = tr.mapping.map(change.to);
|
|
@@ -51,4 +51,3 @@ function revertWrapNodeChange(tr, change, deleteMap) {
|
|
|
51
51
|
});
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
exports.revertWrapNodeChange = revertWrapNodeChange;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.updateChangeAttrs = updateChangeAttrs;
|
|
4
|
+
exports.updateChangeChildrenAttributes = updateChangeChildrenAttributes;
|
|
5
|
+
exports.restoreNode = restoreNode;
|
|
4
6
|
const ChangeSet_1 = require("../ChangeSet");
|
|
5
7
|
const nodeHelpers_1 = require("../compute/nodeHelpers");
|
|
6
8
|
const change_1 = require("../types/change");
|
|
@@ -69,7 +71,6 @@ function updateChangeAttrs(tr, change, trackedAttrs, schema) {
|
|
|
69
71
|
}
|
|
70
72
|
return tr;
|
|
71
73
|
}
|
|
72
|
-
exports.updateChangeAttrs = updateChangeAttrs;
|
|
73
74
|
function updateChangeChildrenAttributes(changes, tr, mapping) {
|
|
74
75
|
changes.forEach((c) => {
|
|
75
76
|
if (c.type === 'node-change' && !ChangeSet_1.ChangeSet.shouldDeleteChange(c)) {
|
|
@@ -83,4 +84,9 @@ function updateChangeChildrenAttributes(changes, tr, mapping) {
|
|
|
83
84
|
}
|
|
84
85
|
});
|
|
85
86
|
}
|
|
86
|
-
|
|
87
|
+
function restoreNode(tr, node, pos, schema) {
|
|
88
|
+
const updatedAttrs = Object.assign(Object.assign({}, node.attrs), { dataTracked: null });
|
|
89
|
+
tr.setNodeMarkup(pos, undefined, updatedAttrs, node.marks);
|
|
90
|
+
tr.removeMark(pos, pos + node.nodeSize, schema.marks.tracked_insert);
|
|
91
|
+
tr.removeMark(pos, pos + node.nodeSize, schema.marks.tracked_delete);
|
|
92
|
+
}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.updateChangesStatus =
|
|
18
|
+
exports.updateChangesStatus = updateChangesStatus;
|
|
19
19
|
const prosemirror_history_1 = require("prosemirror-history");
|
|
20
20
|
const ChangeSet_1 = require("../ChangeSet");
|
|
21
21
|
const change_1 = require("../types/change");
|
|
@@ -75,4 +75,3 @@ function updateChangesStatus(createdTr, changeSet, ids, status, userID, oldState
|
|
|
75
75
|
}
|
|
76
76
|
(0, prosemirror_history_1.closeHistory)(createdTr);
|
|
77
77
|
}
|
|
78
|
-
exports.updateChangesStatus = updateChangesStatus;
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.addTrackIdIfDoesntExist = addTrackIdIfDoesntExist;
|
|
4
|
+
exports.getTextNodeTrackedMarkData = getTextNodeTrackedMarkData;
|
|
5
|
+
exports.getBlockInlineTrackedData = getBlockInlineTrackedData;
|
|
6
|
+
exports.getNodeTrackedData = getNodeTrackedData;
|
|
7
|
+
exports.equalMarks = equalMarks;
|
|
8
|
+
exports.shouldMergeTrackedAttributes = shouldMergeTrackedAttributes;
|
|
9
|
+
exports.getMergeableMarkTrackedAttrs = getMergeableMarkTrackedAttrs;
|
|
4
10
|
const change_1 = require("../types/change");
|
|
5
11
|
const logger_1 = require("../utils/logger");
|
|
6
12
|
const uuidv4_1 = require("../utils/uuidv4");
|
|
@@ -10,7 +16,6 @@ function addTrackIdIfDoesntExist(attrs) {
|
|
|
10
16
|
}
|
|
11
17
|
return attrs;
|
|
12
18
|
}
|
|
13
|
-
exports.addTrackIdIfDoesntExist = addTrackIdIfDoesntExist;
|
|
14
19
|
function getTextNodeTrackedMarkData(node, schema) {
|
|
15
20
|
if (!node || !node.isText) {
|
|
16
21
|
return undefined;
|
|
@@ -27,7 +32,6 @@ function getTextNodeTrackedMarkData(node, schema) {
|
|
|
27
32
|
}
|
|
28
33
|
return marksTrackedData[0] || undefined;
|
|
29
34
|
}
|
|
30
|
-
exports.getTextNodeTrackedMarkData = getTextNodeTrackedMarkData;
|
|
31
35
|
function getBlockInlineTrackedData(node) {
|
|
32
36
|
const { dataTracked } = node.attrs;
|
|
33
37
|
if (dataTracked && !Array.isArray(dataTracked)) {
|
|
@@ -35,7 +39,6 @@ function getBlockInlineTrackedData(node) {
|
|
|
35
39
|
}
|
|
36
40
|
return dataTracked || [];
|
|
37
41
|
}
|
|
38
|
-
exports.getBlockInlineTrackedData = getBlockInlineTrackedData;
|
|
39
42
|
function getNodeTrackedData(node, schema) {
|
|
40
43
|
let tracked;
|
|
41
44
|
if (node && !node.isText) {
|
|
@@ -49,12 +52,10 @@ function getNodeTrackedData(node, schema) {
|
|
|
49
52
|
}
|
|
50
53
|
return tracked;
|
|
51
54
|
}
|
|
52
|
-
exports.getNodeTrackedData = getNodeTrackedData;
|
|
53
55
|
function equalMarks(n1, n2) {
|
|
54
56
|
return (n1.marks.length === n2.marks.length &&
|
|
55
57
|
n1.marks.every((mark) => n1.marks.find((m) => m.type === mark.type)));
|
|
56
58
|
}
|
|
57
|
-
exports.equalMarks = equalMarks;
|
|
58
59
|
function shouldMergeTrackedAttributes(left, right) {
|
|
59
60
|
if (!left || !right) {
|
|
60
61
|
logger_1.log.warn('passed undefined dataTracked attributes to shouldMergeTrackedAttributes', {
|
|
@@ -65,9 +66,7 @@ function shouldMergeTrackedAttributes(left, right) {
|
|
|
65
66
|
}
|
|
66
67
|
return (left.status === right.status && left.operation === right.operation && left.authorID === right.authorID);
|
|
67
68
|
}
|
|
68
|
-
exports.shouldMergeTrackedAttributes = shouldMergeTrackedAttributes;
|
|
69
69
|
function getMergeableMarkTrackedAttrs(node, attrs, schema) {
|
|
70
70
|
const nodeAttrs = getTextNodeTrackedMarkData(node, schema);
|
|
71
71
|
return nodeAttrs && shouldMergeTrackedAttributes(nodeAttrs, attrs) ? nodeAttrs : null;
|
|
72
72
|
}
|
|
73
|
-
exports.getMergeableMarkTrackedAttrs = getMergeableMarkTrackedAttrs;
|
|
@@ -15,15 +15,28 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
36
|
+
exports.setFragmentAsInserted = setFragmentAsInserted;
|
|
37
|
+
exports.setFragmentAsWrapChange = setFragmentAsWrapChange;
|
|
38
|
+
exports.setFragmentAsMoveChange = setFragmentAsMoveChange;
|
|
39
|
+
exports.setFragmentAsNodeSplit = setFragmentAsNodeSplit;
|
|
27
40
|
const prosemirror_model_1 = require("prosemirror-model");
|
|
28
41
|
const change_1 = require("../types/change");
|
|
29
42
|
const logger_1 = require("../utils/logger");
|
|
@@ -75,7 +88,6 @@ function setFragmentAsInserted(inserted, insertAttrs, schema) {
|
|
|
75
88
|
const updatedInserted = loopContentAndMergeText(inserted, insertAttrs, schema);
|
|
76
89
|
return updatedInserted.length === 0 ? prosemirror_model_1.Fragment.empty : prosemirror_model_1.Fragment.fromArray(updatedInserted);
|
|
77
90
|
}
|
|
78
|
-
exports.setFragmentAsInserted = setFragmentAsInserted;
|
|
79
91
|
function setFragmentAsWrapChange(inserted, attrs, schema) {
|
|
80
92
|
const content = [];
|
|
81
93
|
inserted.forEach((node) => {
|
|
@@ -83,15 +95,13 @@ function setFragmentAsWrapChange(inserted, attrs, schema) {
|
|
|
83
95
|
});
|
|
84
96
|
return prosemirror_model_1.Fragment.from(content);
|
|
85
97
|
}
|
|
86
|
-
|
|
87
|
-
function setFragmentAsMoveChange(fragment, attrs) {
|
|
98
|
+
function setFragmentAsMoveChange(fragment, moveAttrs) {
|
|
88
99
|
const content = [];
|
|
89
100
|
fragment.forEach((node) => {
|
|
90
|
-
content.push(node.type.create(Object.assign(Object.assign({}, node.attrs), { dataTracked: [(0, nodeHelpers_1.addTrackIdIfDoesntExist)(
|
|
101
|
+
content.push(node.type.create(Object.assign(Object.assign({}, node.attrs), { dataTracked: [(0, nodeHelpers_1.addTrackIdIfDoesntExist)(moveAttrs)] }), node.content, node.marks));
|
|
91
102
|
});
|
|
92
103
|
return prosemirror_model_1.Fragment.from(content);
|
|
93
104
|
}
|
|
94
|
-
exports.setFragmentAsMoveChange = setFragmentAsMoveChange;
|
|
95
105
|
function setFragmentAsNodeSplit($pos, newTr, inserted, attrs) {
|
|
96
106
|
const lastChild = inserted.lastChild;
|
|
97
107
|
const referenceId = (0, uuidv4_1.uuidv4)();
|
|
@@ -114,4 +124,3 @@ function setFragmentAsNodeSplit($pos, newTr, inserted, attrs) {
|
|
|
114
124
|
}
|
|
115
125
|
return inserted;
|
|
116
126
|
}
|
|
117
|
-
exports.setFragmentAsNodeSplit = setFragmentAsNodeSplit;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.splitSliceIntoMergedParts =
|
|
3
|
+
exports.splitSliceIntoMergedParts = splitSliceIntoMergedParts;
|
|
4
4
|
const prosemirror_model_1 = require("prosemirror-model");
|
|
5
5
|
function getMergedNode(node, currentDepth, depth, first) {
|
|
6
6
|
if (currentDepth === depth) {
|
|
@@ -52,4 +52,3 @@ function splitSliceIntoMergedParts(insertSlice, mergeEqualSides = false) {
|
|
|
52
52
|
lastMergedNode,
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
|
-
exports.splitSliceIntoMergedParts = splitSliceIntoMergedParts;
|
package/dist/cjs/index.js
CHANGED
|
@@ -15,23 +15,35 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
26
36
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
27
37
|
};
|
|
28
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.ChangeSet = exports.enableDebug = exports.trackCommands = exports.skipTracking = exports.trackChangesPlugin = exports.trackChangesPluginKey = void 0;
|
|
39
|
+
exports.ChangeSet = exports.enableDebug = exports.trackCommands = exports.TrackChangesAction = exports.setAction = exports.skipTracking = exports.trackChangesPlugin = exports.trackChangesPluginKey = void 0;
|
|
30
40
|
var plugin_1 = require("./plugin");
|
|
31
41
|
Object.defineProperty(exports, "trackChangesPluginKey", { enumerable: true, get: function () { return plugin_1.trackChangesPluginKey; } });
|
|
32
42
|
Object.defineProperty(exports, "trackChangesPlugin", { enumerable: true, get: function () { return plugin_1.trackChangesPlugin; } });
|
|
33
43
|
var actions_1 = require("./actions");
|
|
34
44
|
Object.defineProperty(exports, "skipTracking", { enumerable: true, get: function () { return actions_1.skipTracking; } });
|
|
45
|
+
Object.defineProperty(exports, "setAction", { enumerable: true, get: function () { return actions_1.setAction; } });
|
|
46
|
+
Object.defineProperty(exports, "TrackChangesAction", { enumerable: true, get: function () { return actions_1.TrackChangesAction; } });
|
|
35
47
|
exports.trackCommands = __importStar(require("./commands"));
|
|
36
48
|
var logger_1 = require("./utils/logger");
|
|
37
49
|
Object.defineProperty(exports, "enableDebug", { enumerable: true, get: function () { return logger_1.enableDebug; } });
|
|
@@ -15,15 +15,25 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.deleteAndMergeSplitNodes =
|
|
36
|
+
exports.deleteAndMergeSplitNodes = deleteAndMergeSplitNodes;
|
|
27
37
|
const prosemirror_model_1 = require("prosemirror-model");
|
|
28
38
|
const setFragmentAsInserted_1 = require("../compute/setFragmentAsInserted");
|
|
29
39
|
const splitSliceIntoMergedParts_1 = require("../compute/splitSliceIntoMergedParts");
|
|
@@ -109,4 +119,3 @@ function deleteAndMergeSplitNodes(from, to, gap, startDoc, newTr, schema, trackA
|
|
|
109
119
|
steps,
|
|
110
120
|
};
|
|
111
121
|
}
|
|
112
|
-
exports.deleteAndMergeSplitNodes = deleteAndMergeSplitNodes;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.deleteNode = deleteNode;
|
|
4
|
+
exports.deleteOrSetNodeDeleted = deleteOrSetNodeDeleted;
|
|
4
5
|
const prosemirror_model_1 = require("prosemirror-model");
|
|
5
6
|
const nodeHelpers_1 = require("../compute/nodeHelpers");
|
|
6
7
|
const change_1 = require("../types/change");
|
|
@@ -17,12 +18,12 @@ function deleteNode(node, pos, tr) {
|
|
|
17
18
|
return tr.delete(pos, pos + node.nodeSize);
|
|
18
19
|
}
|
|
19
20
|
}
|
|
20
|
-
exports.deleteNode = deleteNode;
|
|
21
21
|
function deleteOrSetNodeDeleted(node, pos, newTr, deleteAttrs) {
|
|
22
22
|
const dataTracked = (0, nodeHelpers_1.getBlockInlineTrackedData)(node);
|
|
23
23
|
const inserted = dataTracked === null || dataTracked === void 0 ? void 0 : dataTracked.find((d) => (d.operation === change_1.CHANGE_OPERATION.insert || d.operation === change_1.CHANGE_OPERATION.wrap_with_node) &&
|
|
24
24
|
(d.status === change_1.CHANGE_STATUS.pending || d.status === change_1.CHANGE_STATUS.accepted));
|
|
25
25
|
const updated = dataTracked === null || dataTracked === void 0 ? void 0 : dataTracked.find((d) => d.operation === change_1.CHANGE_OPERATION.set_node_attributes || d.operation === change_1.CHANGE_OPERATION.reference);
|
|
26
|
+
const moved = dataTracked === null || dataTracked === void 0 ? void 0 : dataTracked.find((d) => d.operation === change_1.CHANGE_OPERATION.move && d.status === change_1.CHANGE_STATUS.pending);
|
|
26
27
|
if (inserted) {
|
|
27
28
|
return deleteNode(node, pos, newTr);
|
|
28
29
|
}
|
|
@@ -35,6 +36,5 @@ function deleteOrSetNodeDeleted(node, pos, newTr, deleteAttrs) {
|
|
|
35
36
|
return;
|
|
36
37
|
}
|
|
37
38
|
const newDeleted = (0, nodeHelpers_1.addTrackIdIfDoesntExist)(deleteAttrs);
|
|
38
|
-
newTr.setNodeMarkup(pos, undefined, Object.assign(Object.assign({}, node.attrs), { dataTracked: updated ? [newDeleted, updated] : [newDeleted] }), node.marks);
|
|
39
|
+
newTr.setNodeMarkup(pos, undefined, Object.assign(Object.assign({}, node.attrs), { dataTracked: updated ? [newDeleted, updated] : moved ? [newDeleted, moved] : [newDeleted] }), node.marks);
|
|
39
40
|
}
|
|
40
|
-
exports.deleteOrSetNodeDeleted = deleteOrSetNodeDeleted;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deleteTextIfInserted =
|
|
3
|
+
exports.deleteTextIfInserted = deleteTextIfInserted;
|
|
4
4
|
const prosemirror_model_1 = require("prosemirror-model");
|
|
5
5
|
const nodeHelpers_1 = require("../compute/nodeHelpers");
|
|
6
6
|
function deleteTextIfInserted(node, pos, newTr, schema, deleteAttrs, from, to) {
|
|
@@ -26,4 +26,3 @@ function deleteTextIfInserted(node, pos, newTr, schema, deleteAttrs, from, to) {
|
|
|
26
26
|
return toEndOfMark;
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
exports.deleteTextIfInserted = deleteTextIfInserted;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mergeNode =
|
|
3
|
+
exports.mergeNode = mergeNode;
|
|
4
4
|
const prosemirror_model_1 = require("prosemirror-model");
|
|
5
5
|
const prosemirror_transform_1 = require("prosemirror-transform");
|
|
6
6
|
function mergeNode(node, pos, tr) {
|
|
@@ -18,4 +18,3 @@ function mergeNode(node, pos, tr) {
|
|
|
18
18
|
}
|
|
19
19
|
return undefined;
|
|
20
20
|
}
|
|
21
|
-
exports.mergeNode = mergeNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mergeTrackedMarks =
|
|
3
|
+
exports.mergeTrackedMarks = mergeTrackedMarks;
|
|
4
4
|
const nodeHelpers_1 = require("../compute/nodeHelpers");
|
|
5
5
|
const uuidv4_1 = require("../utils/uuidv4");
|
|
6
6
|
const assignId = (attrs, leftDataTracked, rightDataTracked) => {
|
|
@@ -29,4 +29,3 @@ function mergeTrackedMarks(pos, doc, newTr, schema) {
|
|
|
29
29
|
const toEndOfMark = pos + nodeAfter.nodeSize;
|
|
30
30
|
newTr.addMark(fromStartOfMark, toEndOfMark, leftMark.type.create(Object.assign(Object.assign({}, leftMark.attrs), { dataTracked: assignId(dataTracked, leftDataTracked, rightDataTracked) })));
|
|
31
31
|
}
|
|
32
|
-
exports.mergeTrackedMarks = mergeTrackedMarks;
|