@manuscripts/track-changes-plugin 1.7.9 → 1.7.10-LEAN-3136-2MB
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.
|
@@ -20,9 +20,10 @@ function deleteNode(node, pos, tr) {
|
|
|
20
20
|
exports.deleteNode = deleteNode;
|
|
21
21
|
function deleteOrSetNodeDeleted(node, pos, newTr, deleteAttrs) {
|
|
22
22
|
const dataTracked = (0, nodeHelpers_1.getBlockInlineTrackedData)(node);
|
|
23
|
-
const inserted = dataTracked === null || dataTracked === void 0 ? void 0 : dataTracked.find((d) => d.operation === change_1.CHANGE_OPERATION.insert &&
|
|
23
|
+
const inserted = dataTracked === null || dataTracked === void 0 ? void 0 : dataTracked.find((d) => d.operation === change_1.CHANGE_OPERATION.insert &&
|
|
24
|
+
(d.status === change_1.CHANGE_STATUS.pending || d.status === change_1.CHANGE_STATUS.accepted));
|
|
24
25
|
const updated = dataTracked === null || dataTracked === void 0 ? void 0 : dataTracked.find((d) => d.operation === change_1.CHANGE_OPERATION.set_node_attributes);
|
|
25
|
-
if (inserted
|
|
26
|
+
if (inserted) {
|
|
26
27
|
return deleteNode(node, pos, newTr);
|
|
27
28
|
}
|
|
28
29
|
if (!newTr.doc.nodeAt(pos)) {
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.trackTransaction = void 0;
|
|
4
4
|
const prosemirror_state_1 = require("prosemirror-state");
|
|
5
|
+
const prosemirror_state_2 = require("prosemirror-state");
|
|
5
6
|
const prosemirror_transform_1 = require("prosemirror-transform");
|
|
6
7
|
const diffChangeSteps_1 = require("../change-steps/diffChangeSteps");
|
|
7
8
|
const processChangeSteps_1 = require("../change-steps/processChangeSteps");
|
|
@@ -21,7 +22,8 @@ function trackTransaction(tr, oldState, newTr, authorID) {
|
|
|
21
22
|
statusUpdateAt: 0,
|
|
22
23
|
status: change_1.CHANGE_STATUS.pending,
|
|
23
24
|
};
|
|
24
|
-
const wasNodeSelection = tr.selection instanceof
|
|
25
|
+
const wasNodeSelection = tr.selection instanceof prosemirror_state_2.NodeSelection;
|
|
26
|
+
const setsNewSelection = tr.selectionSet;
|
|
25
27
|
let iters = 0;
|
|
26
28
|
logger_1.log.info('ORIGINAL transaction', tr);
|
|
27
29
|
for (let i = tr.steps.length - 1; i >= 0; i--) {
|
|
@@ -58,7 +60,7 @@ function trackTransaction(tr, oldState, newTr, authorID) {
|
|
|
58
60
|
steps = (0, diffChangeSteps_1.diffChangeSteps)(deleted, inserted);
|
|
59
61
|
logger_1.log.info('DIFFED STEPS: ', steps);
|
|
60
62
|
const [mapping, selectionPos] = (0, processChangeSteps_1.processChangeSteps)(steps, startPos || tr.selection.head, newTr, emptyAttrs, oldState.schema);
|
|
61
|
-
if (!wasNodeSelection) {
|
|
63
|
+
if (!wasNodeSelection && !setsNewSelection) {
|
|
62
64
|
const sel = getSelectionStaticConstructor(tr.selection);
|
|
63
65
|
const near = sel.near(newTr.doc.resolve(selectionPos), -1);
|
|
64
66
|
newTr.setSelection(near);
|
|
@@ -76,9 +78,13 @@ function trackTransaction(tr, oldState, newTr, authorID) {
|
|
|
76
78
|
tr.getMeta('inputType') && newTr.setMeta('inputType', tr.getMeta('inputType'));
|
|
77
79
|
tr.getMeta('uiEvent') && newTr.setMeta('uiEvent', tr.getMeta('uiEvent'));
|
|
78
80
|
}
|
|
81
|
+
if (setsNewSelection && tr.selection instanceof prosemirror_state_1.TextSelection) {
|
|
82
|
+
const newPos = newTr.doc.resolve(tr.selection.from);
|
|
83
|
+
newTr.setSelection(new prosemirror_state_1.TextSelection(newPos));
|
|
84
|
+
}
|
|
79
85
|
if (wasNodeSelection) {
|
|
80
86
|
console.log('%c Getting into node select! ', 'background: #222; color: #bada55');
|
|
81
|
-
const mappedPos = newTr.mapping.map(tr.selection.from
|
|
87
|
+
const mappedPos = newTr.mapping.map(tr.selection.from);
|
|
82
88
|
const sel = getSelectionStaticConstructor(tr.selection);
|
|
83
89
|
newTr.setSelection(sel.create(newTr.doc, mappedPos));
|
|
84
90
|
}
|
|
@@ -16,9 +16,10 @@ export function deleteNode(node, pos, tr) {
|
|
|
16
16
|
}
|
|
17
17
|
export function deleteOrSetNodeDeleted(node, pos, newTr, deleteAttrs) {
|
|
18
18
|
const dataTracked = getBlockInlineTrackedData(node);
|
|
19
|
-
const inserted = dataTracked === null || dataTracked === void 0 ? void 0 : dataTracked.find((d) => d.operation === CHANGE_OPERATION.insert &&
|
|
19
|
+
const inserted = dataTracked === null || dataTracked === void 0 ? void 0 : dataTracked.find((d) => d.operation === CHANGE_OPERATION.insert &&
|
|
20
|
+
(d.status === CHANGE_STATUS.pending || d.status === CHANGE_STATUS.accepted));
|
|
20
21
|
const updated = dataTracked === null || dataTracked === void 0 ? void 0 : dataTracked.find((d) => d.operation === CHANGE_OPERATION.set_node_attributes);
|
|
21
|
-
if (inserted
|
|
22
|
+
if (inserted) {
|
|
22
23
|
return deleteNode(node, pos, newTr);
|
|
23
24
|
}
|
|
24
25
|
if (!newTr.doc.nodeAt(pos)) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TextSelection } from 'prosemirror-state';
|
|
1
2
|
import { NodeSelection as NodeSelectionClass } from 'prosemirror-state';
|
|
2
3
|
import { ReplaceAroundStep, ReplaceStep } from 'prosemirror-transform';
|
|
3
4
|
import { diffChangeSteps } from '../change-steps/diffChangeSteps';
|
|
@@ -19,6 +20,7 @@ export function trackTransaction(tr, oldState, newTr, authorID) {
|
|
|
19
20
|
status: CHANGE_STATUS.pending,
|
|
20
21
|
};
|
|
21
22
|
const wasNodeSelection = tr.selection instanceof NodeSelectionClass;
|
|
23
|
+
const setsNewSelection = tr.selectionSet;
|
|
22
24
|
let iters = 0;
|
|
23
25
|
log.info('ORIGINAL transaction', tr);
|
|
24
26
|
for (let i = tr.steps.length - 1; i >= 0; i--) {
|
|
@@ -55,7 +57,7 @@ export function trackTransaction(tr, oldState, newTr, authorID) {
|
|
|
55
57
|
steps = diffChangeSteps(deleted, inserted);
|
|
56
58
|
log.info('DIFFED STEPS: ', steps);
|
|
57
59
|
const [mapping, selectionPos] = processChangeSteps(steps, startPos || tr.selection.head, newTr, emptyAttrs, oldState.schema);
|
|
58
|
-
if (!wasNodeSelection) {
|
|
60
|
+
if (!wasNodeSelection && !setsNewSelection) {
|
|
59
61
|
const sel = getSelectionStaticConstructor(tr.selection);
|
|
60
62
|
const near = sel.near(newTr.doc.resolve(selectionPos), -1);
|
|
61
63
|
newTr.setSelection(near);
|
|
@@ -73,9 +75,13 @@ export function trackTransaction(tr, oldState, newTr, authorID) {
|
|
|
73
75
|
tr.getMeta('inputType') && newTr.setMeta('inputType', tr.getMeta('inputType'));
|
|
74
76
|
tr.getMeta('uiEvent') && newTr.setMeta('uiEvent', tr.getMeta('uiEvent'));
|
|
75
77
|
}
|
|
78
|
+
if (setsNewSelection && tr.selection instanceof TextSelection) {
|
|
79
|
+
const newPos = newTr.doc.resolve(tr.selection.from);
|
|
80
|
+
newTr.setSelection(new TextSelection(newPos));
|
|
81
|
+
}
|
|
76
82
|
if (wasNodeSelection) {
|
|
77
83
|
console.log('%c Getting into node select! ', 'background: #222; color: #bada55');
|
|
78
|
-
const mappedPos = newTr.mapping.map(tr.selection.from
|
|
84
|
+
const mappedPos = newTr.mapping.map(tr.selection.from);
|
|
79
85
|
const sel = getSelectionStaticConstructor(tr.selection);
|
|
80
86
|
newTr.setSelection(sel.create(newTr.doc, mappedPos));
|
|
81
87
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { EditorState, Transaction } from 'prosemirror-state';
|
|
2
2
|
export declare function trackTransaction(tr: Transaction, oldState: EditorState, newTr: Transaction, authorID: string): Transaction;
|
package/package.json
CHANGED