@manuscripts/track-changes-plugin 1.4.1-LEAN-2431 → 1.5.0
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/index.cjs +4 -36
- package/dist/index.js +4 -36
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -1213,49 +1213,17 @@ function trackReplaceStep(step, oldState, newTr, attrs, stepResult, currentStepD
|
|
|
1213
1213
|
changeSteps.push(...deleteSteps);
|
|
1214
1214
|
log.info('TR: steps after applying delete', [...newTr.steps]);
|
|
1215
1215
|
log.info('DELETE STEPS: ', changeSteps);
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
function sameThingBackSpaced() {
|
|
1219
|
-
/*
|
|
1220
|
-
When deleting text with backspace and getting to the point of when a space and a character before the space is deleted
|
|
1221
|
-
the prosemirror would interpret it as moving the <del> node (this is a tracked deletion) one characted behind.
|
|
1222
|
-
It normally results in [delete, delete, insert] set of ChangSteps where 1st delete is for the delete done by
|
|
1223
|
-
the backspace key, the second delete and the insert are a misinterpretation of the moved text. So these last 2 steps have to be caught
|
|
1224
|
-
and removed as they are not meaningful.
|
|
1225
|
-
*/
|
|
1226
|
-
if (changeSteps.length == 2 && newSliceContent.size > 0) {
|
|
1227
|
-
// or jus thangeSteps.length == 2
|
|
1228
|
-
const correspondingDeletion = changeSteps.find(
|
|
1229
|
-
// @ts-ignore
|
|
1230
|
-
(step) => step.node.text === newSliceContent.content[0].text // @TODO - get more precise proof of match. E.g.: position approximation
|
|
1231
|
-
);
|
|
1232
|
-
return correspondingDeletion;
|
|
1233
|
-
}
|
|
1234
|
-
return undefined;
|
|
1235
|
-
}
|
|
1236
|
-
const backSpacedText = sameThingBackSpaced();
|
|
1237
|
-
if (backSpacedText) {
|
|
1238
|
-
changeSteps.splice(changeSteps.indexOf(backSpacedText));
|
|
1239
|
-
}
|
|
1240
|
-
const textWasDeleted = !!changeSteps.length;
|
|
1241
|
-
if (!backSpacedText && newSliceContent.size > 0) {
|
|
1216
|
+
const adjustedInsertPos = toA;
|
|
1217
|
+
if (newSliceContent.size > 0) {
|
|
1242
1218
|
log.info('newSliceContent', newSliceContent);
|
|
1243
|
-
//
|
|
1244
|
-
// console.log('Sliced Content:')
|
|
1245
|
-
// console.log(newSliceContent)
|
|
1246
1219
|
// Since deleteAndMergeSplitBlockNodes modified the slice to not to contain any merged nodes,
|
|
1247
1220
|
// the sides should be equal. TODO can they be other than 0?
|
|
1248
|
-
// the sides should be equal. TODO can they be other than 0?
|
|
1249
|
-
//
|
|
1250
1221
|
const openStart = slice.openStart !== slice.openEnd ? 0 : slice.openStart;
|
|
1251
1222
|
const openEnd = slice.openStart !== slice.openEnd ? 0 : slice.openEnd;
|
|
1252
1223
|
changeSteps.push({
|
|
1253
1224
|
type: 'insert-slice',
|
|
1254
|
-
from:
|
|
1255
|
-
to:
|
|
1256
|
-
/* it's not entirely clear why using "fromB" is needed at all but in cases where there areno content deleted before
|
|
1257
|
-
- it will gointo infinite loop if toB -1 is used
|
|
1258
|
-
*/
|
|
1225
|
+
from: adjustedInsertPos,
|
|
1226
|
+
to: adjustedInsertPos,
|
|
1259
1227
|
sliceWasSplit,
|
|
1260
1228
|
slice: new prosemirrorModel.Slice(setFragmentAsInserted(newSliceContent, createNewInsertAttrs(attrs), oldState.schema), openStart, openEnd),
|
|
1261
1229
|
});
|
package/dist/index.js
CHANGED
|
@@ -1205,49 +1205,17 @@ function trackReplaceStep(step, oldState, newTr, attrs, stepResult, currentStepD
|
|
|
1205
1205
|
changeSteps.push(...deleteSteps);
|
|
1206
1206
|
log.info('TR: steps after applying delete', [...newTr.steps]);
|
|
1207
1207
|
log.info('DELETE STEPS: ', changeSteps);
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
function sameThingBackSpaced() {
|
|
1211
|
-
/*
|
|
1212
|
-
When deleting text with backspace and getting to the point of when a space and a character before the space is deleted
|
|
1213
|
-
the prosemirror would interpret it as moving the <del> node (this is a tracked deletion) one characted behind.
|
|
1214
|
-
It normally results in [delete, delete, insert] set of ChangSteps where 1st delete is for the delete done by
|
|
1215
|
-
the backspace key, the second delete and the insert are a misinterpretation of the moved text. So these last 2 steps have to be caught
|
|
1216
|
-
and removed as they are not meaningful.
|
|
1217
|
-
*/
|
|
1218
|
-
if (changeSteps.length == 2 && newSliceContent.size > 0) {
|
|
1219
|
-
// or jus thangeSteps.length == 2
|
|
1220
|
-
const correspondingDeletion = changeSteps.find(
|
|
1221
|
-
// @ts-ignore
|
|
1222
|
-
(step) => step.node.text === newSliceContent.content[0].text // @TODO - get more precise proof of match. E.g.: position approximation
|
|
1223
|
-
);
|
|
1224
|
-
return correspondingDeletion;
|
|
1225
|
-
}
|
|
1226
|
-
return undefined;
|
|
1227
|
-
}
|
|
1228
|
-
const backSpacedText = sameThingBackSpaced();
|
|
1229
|
-
if (backSpacedText) {
|
|
1230
|
-
changeSteps.splice(changeSteps.indexOf(backSpacedText));
|
|
1231
|
-
}
|
|
1232
|
-
const textWasDeleted = !!changeSteps.length;
|
|
1233
|
-
if (!backSpacedText && newSliceContent.size > 0) {
|
|
1208
|
+
const adjustedInsertPos = toA;
|
|
1209
|
+
if (newSliceContent.size > 0) {
|
|
1234
1210
|
log.info('newSliceContent', newSliceContent);
|
|
1235
|
-
//
|
|
1236
|
-
// console.log('Sliced Content:')
|
|
1237
|
-
// console.log(newSliceContent)
|
|
1238
1211
|
// Since deleteAndMergeSplitBlockNodes modified the slice to not to contain any merged nodes,
|
|
1239
1212
|
// the sides should be equal. TODO can they be other than 0?
|
|
1240
|
-
// the sides should be equal. TODO can they be other than 0?
|
|
1241
|
-
//
|
|
1242
1213
|
const openStart = slice.openStart !== slice.openEnd ? 0 : slice.openStart;
|
|
1243
1214
|
const openEnd = slice.openStart !== slice.openEnd ? 0 : slice.openEnd;
|
|
1244
1215
|
changeSteps.push({
|
|
1245
1216
|
type: 'insert-slice',
|
|
1246
|
-
from:
|
|
1247
|
-
to:
|
|
1248
|
-
/* it's not entirely clear why using "fromB" is needed at all but in cases where there areno content deleted before
|
|
1249
|
-
- it will gointo infinite loop if toB -1 is used
|
|
1250
|
-
*/
|
|
1217
|
+
from: adjustedInsertPos,
|
|
1218
|
+
to: adjustedInsertPos,
|
|
1251
1219
|
sliceWasSplit,
|
|
1252
1220
|
slice: new Slice(setFragmentAsInserted(newSliceContent, createNewInsertAttrs(attrs), oldState.schema), openStart, openEnd),
|
|
1253
1221
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@manuscripts/track-changes-plugin",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"author": "Atypon Systems LLC",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://github.com/Atypon-OpenSource/manuscripts-quarterback/tree/main/quarterback-packages/track-changes-plugin",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@manuscripts/data": "^1.0.2",
|
|
28
|
-
"@manuscripts/json-schema": "^2.0.
|
|
29
|
-
"@manuscripts/transform": "^1.2.
|
|
28
|
+
"@manuscripts/json-schema": "^2.0.2",
|
|
29
|
+
"@manuscripts/transform": "^1.2.5",
|
|
30
30
|
"@rollup/plugin-commonjs": "^22.0.2",
|
|
31
31
|
"@types/debug": "^4.1.7",
|
|
32
32
|
"@types/jest": "27.5.1",
|