@manuscripts/track-changes-plugin 2.0.7 → 2.0.8

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.
@@ -49,7 +49,6 @@ function matchInserted(matchedDeleted, deleted, inserted) {
49
49
  return matched;
50
50
  }
51
51
  else if (insNode.isText && (adjDeleted === null || adjDeleted === void 0 ? void 0 : adjDeleted.node)) {
52
- matched = matchText(adjDeleted, insNode, 0, matched[0], matched[1]);
53
52
  continue;
54
53
  }
55
54
  else if (insNode.content.size > 0 || (adjDeleted === null || adjDeleted === void 0 ? void 0 : adjDeleted.node.content.size) > 0) {
@@ -40,7 +40,7 @@ function trackReplaceStep(step, oldState, newTr, attrsTemplate, stepResult, curr
40
40
  attrs.moveNodeId = moveID;
41
41
  }
42
42
  step.getMap().forEach((fromA, toA, fromB, toB) => {
43
- var _a, _b;
43
+ var _a, _b, _c;
44
44
  logger_1.log.info(`changed ranges: ${fromA} ${toA} ${fromB} ${toB}`);
45
45
  const { slice } = step;
46
46
  logger_1.log.info('TR: steps before applying delete', [...newTr.steps]);
@@ -73,18 +73,21 @@ function trackReplaceStep(step, oldState, newTr, attrsTemplate, stepResult, curr
73
73
  if (moveID) {
74
74
  fragment = (0, setFragmentAsInserted_1.setFragmentAsMoveChange)(newSliceContent, trackUtils.createNewMoveAttrs(attrs));
75
75
  }
76
- const isSearchReplace = tr.getMeta('searchReplace');
76
+ const openStart = slice.openStart !== slice.openEnd ? 0 : slice.openStart;
77
+ const openEnd = slice.openStart !== slice.openEnd ? 0 : slice.openEnd;
78
+ const textWasDeleted = !!changeSteps.length && !(fromA === fromB);
79
+ const isBlock = !!((_a = fragment.firstChild) === null || _a === void 0 ? void 0 : _a.isBlock);
77
80
  changeSteps.push({
78
81
  type: 'insert-slice',
79
- from: isSearchReplace ? toA : fromA,
80
- to: isSearchReplace ? toA : fromA,
82
+ from: textWasDeleted ? fromB : isBlock ? toA : fromA,
83
+ to: textWasDeleted ? fromB : isBlock ? toA : fromA,
81
84
  sliceWasSplit,
82
- slice: new prosemirror_model_1.Slice(fragment, slice.openStart, slice.openEnd),
85
+ slice: new prosemirror_model_1.Slice(fragment, openStart, openEnd),
83
86
  });
84
87
  }
85
88
  else {
86
- const isDeleteEvent = ((_a = window.event) === null || _a === void 0 ? void 0 : _a.code) === 'Delete';
87
- const isDeleteContentForward = ((_b = window.event) === null || _b === void 0 ? void 0 : _b.inputType) === 'deleteContentForward';
89
+ const isDeleteEvent = ((_b = window.event) === null || _b === void 0 ? void 0 : _b.code) === 'Delete';
90
+ const isDeleteContentForward = ((_c = window.event) === null || _c === void 0 ? void 0 : _c.inputType) === 'deleteContentForward';
88
91
  selectionPos = isDeleteEvent || isDeleteContentForward ? toA : fromA;
89
92
  }
90
93
  });
@@ -46,7 +46,6 @@ export function matchInserted(matchedDeleted, deleted, inserted) {
46
46
  return matched;
47
47
  }
48
48
  else if (insNode.isText && (adjDeleted === null || adjDeleted === void 0 ? void 0 : adjDeleted.node)) {
49
- matched = matchText(adjDeleted, insNode, 0, matched[0], matched[1]);
50
49
  continue;
51
50
  }
52
51
  else if (insNode.content.size > 0 || (adjDeleted === null || adjDeleted === void 0 ? void 0 : adjDeleted.node.content.size) > 0) {
@@ -14,7 +14,7 @@ export function trackReplaceStep(step, oldState, newTr, attrsTemplate, stepResul
14
14
  attrs.moveNodeId = moveID;
15
15
  }
16
16
  step.getMap().forEach((fromA, toA, fromB, toB) => {
17
- var _a, _b;
17
+ var _a, _b, _c;
18
18
  log.info(`changed ranges: ${fromA} ${toA} ${fromB} ${toB}`);
19
19
  const { slice } = step;
20
20
  log.info('TR: steps before applying delete', [...newTr.steps]);
@@ -47,18 +47,21 @@ export function trackReplaceStep(step, oldState, newTr, attrsTemplate, stepResul
47
47
  if (moveID) {
48
48
  fragment = setFragmentAsMoveChange(newSliceContent, trackUtils.createNewMoveAttrs(attrs));
49
49
  }
50
- const isSearchReplace = tr.getMeta('searchReplace');
50
+ const openStart = slice.openStart !== slice.openEnd ? 0 : slice.openStart;
51
+ const openEnd = slice.openStart !== slice.openEnd ? 0 : slice.openEnd;
52
+ const textWasDeleted = !!changeSteps.length && !(fromA === fromB);
53
+ const isBlock = !!((_a = fragment.firstChild) === null || _a === void 0 ? void 0 : _a.isBlock);
51
54
  changeSteps.push({
52
55
  type: 'insert-slice',
53
- from: isSearchReplace ? toA : fromA,
54
- to: isSearchReplace ? toA : fromA,
56
+ from: textWasDeleted ? fromB : isBlock ? toA : fromA,
57
+ to: textWasDeleted ? fromB : isBlock ? toA : fromA,
55
58
  sliceWasSplit,
56
- slice: new Slice(fragment, slice.openStart, slice.openEnd),
59
+ slice: new Slice(fragment, openStart, openEnd),
57
60
  });
58
61
  }
59
62
  else {
60
- const isDeleteEvent = ((_a = window.event) === null || _a === void 0 ? void 0 : _a.code) === 'Delete';
61
- const isDeleteContentForward = ((_b = window.event) === null || _b === void 0 ? void 0 : _b.inputType) === 'deleteContentForward';
63
+ const isDeleteEvent = ((_b = window.event) === null || _b === void 0 ? void 0 : _b.code) === 'Delete';
64
+ const isDeleteContentForward = ((_c = window.event) === null || _c === void 0 ? void 0 : _c.inputType) === 'deleteContentForward';
62
65
  selectionPos = isDeleteEvent || isDeleteContentForward ? toA : fromA;
63
66
  }
64
67
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manuscripts/track-changes-plugin",
3
- "version": "2.0.7",
3
+ "version": "2.0.8",
4
4
  "author": "Atypon Systems LLC",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/Atypon-OpenSource/manuscripts-track-changes-plugin",