@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 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
- // console.log('CHANGE STEPS AT THIS POINT:')
1217
- // console.log(JSON.parse(JSON.stringify(changeSteps)))
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: textWasDeleted ? fromB : toA,
1255
- to: textWasDeleted ? toB - 1 : toA,
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
- // console.log('CHANGE STEPS AT THIS POINT:')
1209
- // console.log(JSON.parse(JSON.stringify(changeSteps)))
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: textWasDeleted ? fromB : toA,
1247
- to: textWasDeleted ? toB - 1 : toA,
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.4.1-LEAN-2431",
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.1",
29
- "@manuscripts/transform": "^1.2.3",
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",