@manuscripts/track-changes-plugin 2.1.1 → 2.2.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.
Files changed (122) hide show
  1. package/dist/cjs/ChangeSet.js +23 -9
  2. package/dist/cjs/actions.js +3 -1
  3. package/dist/cjs/{changes/applyChanges.js → applyChanges.js} +16 -16
  4. package/dist/cjs/{changes → changeHelpers}/revertChange.js +3 -4
  5. package/dist/cjs/{mutate/dropStructureChange.js → changeHelpers/structureChange.js} +23 -17
  6. package/dist/cjs/{changes → changeHelpers}/updateChangeAttrs.js +4 -5
  7. package/dist/cjs/{changes → changeHelpers}/updateChangesStatus.js +5 -5
  8. package/dist/cjs/{changes/findChanges.js → findChanges.js} +5 -5
  9. package/dist/cjs/helpers/attributes.js +157 -0
  10. package/dist/cjs/{compute/setFragmentAsInserted.js → helpers/fragment.js} +71 -79
  11. package/dist/cjs/helpers/mark.js +19 -0
  12. package/dist/cjs/plugin.js +13 -22
  13. package/dist/cjs/trackChanges.js +47 -0
  14. package/dist/cjs/{change-steps → tracking/change-step}/diffChangeSteps.js +23 -28
  15. package/dist/cjs/{utils/mapChangeStep.js → tracking/change-step/mapChangeSteps.js} +1 -1
  16. package/dist/cjs/{change-steps → tracking/change-step}/processChangeSteps.js +14 -48
  17. package/dist/cjs/tracking/fixAndHandleSelection.js +54 -0
  18. package/dist/cjs/{mutate → tracking/lib}/deleteAndMergeSplitNodes.js +7 -40
  19. package/dist/cjs/{mutate → tracking/lib}/deleteNode.js +8 -9
  20. package/dist/cjs/{mutate/deleteText.js → tracking/lib/deleteTextIfInserted.js} +4 -4
  21. package/dist/cjs/{change-steps → tracking/lib}/matchInserted.js +15 -23
  22. package/dist/cjs/{mutate → tracking/lib}/mergeTrackedMarks.js +3 -3
  23. package/dist/cjs/tracking/lib/processStepsBeforeTracking.js +17 -0
  24. package/dist/cjs/{steps/utils.js → tracking/steps-trackers/qualifiers.js} +37 -10
  25. package/dist/cjs/{steps/trackAttrsChange.js → tracking/steps-trackers/trackAttrsChangeStep.js} +3 -3
  26. package/dist/cjs/{steps → tracking/steps-trackers}/trackMarkSteps.js +14 -11
  27. package/dist/cjs/{steps → tracking/steps-trackers}/trackReplaceAroundStep.js +12 -46
  28. package/dist/cjs/tracking/steps-trackers/trackReplaceStep.js +85 -0
  29. package/dist/cjs/tracking/trackTransaction.js +93 -0
  30. package/dist/cjs/tracking/transactionProcessing.js +164 -0
  31. package/dist/cjs/tracking/types.js +17 -0
  32. package/dist/es/ChangeSet.js +23 -9
  33. package/dist/es/actions.js +1 -0
  34. package/dist/es/{changes/applyChanges.js → applyChanges.js} +10 -10
  35. package/dist/es/{changes → changeHelpers}/revertChange.js +1 -2
  36. package/dist/es/{mutate/dropStructureChange.js → changeHelpers/structureChange.js} +10 -5
  37. package/dist/es/{changes → changeHelpers}/updateChangeAttrs.js +2 -3
  38. package/dist/es/{changes → changeHelpers}/updateChangesStatus.js +4 -4
  39. package/dist/es/{changes/findChanges.js → findChanges.js} +3 -3
  40. package/dist/es/helpers/attributes.js +136 -0
  41. package/dist/es/{compute/setFragmentAsInserted.js → helpers/fragment.js} +66 -42
  42. package/dist/es/helpers/mark.js +15 -0
  43. package/dist/es/plugin.js +12 -21
  44. package/dist/es/trackChanges.js +44 -0
  45. package/dist/es/{change-steps → tracking/change-step}/diffChangeSteps.js +23 -28
  46. package/dist/es/{utils/mapChangeStep.js → tracking/change-step/mapChangeSteps.js} +1 -1
  47. package/dist/es/{change-steps → tracking/change-step}/processChangeSteps.js +10 -11
  48. package/dist/es/tracking/fixAndHandleSelection.js +49 -0
  49. package/dist/es/{mutate → tracking/lib}/deleteAndMergeSplitNodes.js +7 -7
  50. package/dist/es/{mutate → tracking/lib}/deleteNode.js +4 -5
  51. package/dist/es/{mutate/deleteText.js → tracking/lib/deleteTextIfInserted.js} +1 -1
  52. package/dist/es/{change-steps → tracking/lib}/matchInserted.js +15 -23
  53. package/dist/es/{mutate → tracking/lib}/mergeTrackedMarks.js +2 -2
  54. package/dist/es/tracking/lib/processStepsBeforeTracking.js +14 -0
  55. package/dist/es/{steps/utils.js → tracking/steps-trackers/qualifiers.js} +32 -7
  56. package/dist/es/{steps/trackAttrsChange.js → tracking/steps-trackers/trackAttrsChangeStep.js} +3 -3
  57. package/dist/es/{steps → tracking/steps-trackers}/trackMarkSteps.js +6 -3
  58. package/dist/es/{steps → tracking/steps-trackers}/trackReplaceAroundStep.js +9 -10
  59. package/dist/es/{steps → tracking/steps-trackers}/trackReplaceStep.js +34 -26
  60. package/dist/es/tracking/trackTransaction.js +87 -0
  61. package/dist/es/tracking/transactionProcessing.js +153 -0
  62. package/dist/es/tracking/types.js +16 -0
  63. package/dist/types/ChangeSet.d.ts +4 -1
  64. package/dist/types/actions.d.ts +1 -0
  65. package/dist/types/applyChanges.d.ts +6 -0
  66. package/dist/types/{mutate/dropStructureChange.d.ts → changeHelpers/structureChange.d.ts} +2 -1
  67. package/dist/types/{changes/findChanges.d.ts → findChanges.d.ts} +1 -1
  68. package/dist/types/helpers/attributes.d.ts +47 -0
  69. package/dist/types/{compute/setFragmentAsInserted.d.ts → helpers/fragment.d.ts} +3 -1
  70. package/dist/types/helpers/mark.d.ts +3 -0
  71. package/dist/types/trackChanges.d.ts +17 -0
  72. package/dist/types/tracking/change-step/diffChangeSteps.d.ts +17 -0
  73. package/dist/types/{utils/mapChangeStep.d.ts → tracking/change-step/mapChangeSteps.d.ts} +2 -2
  74. package/dist/types/tracking/change-step/processChangeSteps.d.ts +6 -0
  75. package/dist/types/tracking/fixAndHandleSelection.d.ts +20 -0
  76. package/dist/types/{mutate → tracking/lib}/deleteAndMergeSplitNodes.d.ts +4 -5
  77. package/dist/types/{mutate → tracking/lib}/deleteNode.d.ts +2 -2
  78. package/dist/types/{mutate/deleteText.d.ts → tracking/lib/deleteTextIfInserted.d.ts} +1 -1
  79. package/dist/types/tracking/lib/matchInserted.d.ts +18 -0
  80. package/dist/types/tracking/lib/processStepsBeforeTracking.d.ts +4 -0
  81. package/dist/types/{compute → tracking/lib}/splitSliceIntoMergedParts.d.ts +1 -1
  82. package/dist/types/{steps/utils.d.ts → tracking/steps-trackers/qualifiers.d.ts} +5 -3
  83. package/dist/types/{steps/trackAttrsChange.d.ts → tracking/steps-trackers/trackAttrsChangeStep.d.ts} +4 -4
  84. package/dist/types/{steps → tracking/steps-trackers}/trackMarkSteps.d.ts +1 -1
  85. package/dist/types/{steps → tracking/steps-trackers}/trackReplaceAroundStep.d.ts +2 -2
  86. package/dist/types/tracking/steps-trackers/trackReplaceStep.d.ts +5 -0
  87. package/dist/types/tracking/trackTransaction.d.ts +4 -0
  88. package/dist/types/tracking/transactionProcessing.d.ts +12 -0
  89. package/dist/types/tracking/types.d.ts +65 -0
  90. package/dist/types/types/change.d.ts +1 -1
  91. package/dist/types/types/track.d.ts +0 -30
  92. package/package.json +2 -2
  93. package/dist/cjs/compute/nodeHelpers.js +0 -83
  94. package/dist/cjs/steps/trackReplaceStep.js +0 -110
  95. package/dist/cjs/steps/trackTransaction.js +0 -162
  96. package/dist/cjs/types/step.js +0 -2
  97. package/dist/cjs/utils/track-utils.js +0 -239
  98. package/dist/es/compute/nodeHelpers.js +0 -73
  99. package/dist/es/steps/trackTransaction.js +0 -156
  100. package/dist/es/types/step.js +0 -1
  101. package/dist/es/utils/track-utils.js +0 -217
  102. package/dist/types/change-steps/diffChangeSteps.d.ts +0 -2
  103. package/dist/types/change-steps/matchInserted.d.ts +0 -3
  104. package/dist/types/change-steps/processChangeSteps.d.ts +0 -6
  105. package/dist/types/changes/applyChanges.d.ts +0 -6
  106. package/dist/types/compute/nodeHelpers.d.ts +0 -14
  107. package/dist/types/steps/trackReplaceStep.d.ts +0 -6
  108. package/dist/types/steps/trackTransaction.d.ts +0 -3
  109. package/dist/types/types/step.d.ts +0 -40
  110. package/dist/types/utils/track-utils.d.ts +0 -24
  111. /package/dist/cjs/{changes → changeHelpers}/fixInconsistentChanges.js +0 -0
  112. /package/dist/cjs/{mutate → tracking/lib}/mergeNode.js +0 -0
  113. /package/dist/cjs/{compute → tracking/lib}/splitSliceIntoMergedParts.js +0 -0
  114. /package/dist/es/{changes → changeHelpers}/fixInconsistentChanges.js +0 -0
  115. /package/dist/es/{mutate → tracking/lib}/mergeNode.js +0 -0
  116. /package/dist/es/{compute → tracking/lib}/splitSliceIntoMergedParts.js +0 -0
  117. /package/dist/types/{changes → changeHelpers}/fixInconsistentChanges.d.ts +0 -0
  118. /package/dist/types/{changes → changeHelpers}/revertChange.d.ts +0 -0
  119. /package/dist/types/{changes → changeHelpers}/updateChangeAttrs.d.ts +0 -0
  120. /package/dist/types/{changes → changeHelpers}/updateChangesStatus.d.ts +0 -0
  121. /package/dist/types/{mutate → tracking/lib}/mergeNode.d.ts +0 -0
  122. /package/dist/types/{mutate → tracking/lib}/mergeTrackedMarks.d.ts +0 -0
@@ -1,55 +1,87 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
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
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.setFragmentAsInserted = setFragmentAsInserted;
37
4
  exports.setFragmentAsWrapChange = setFragmentAsWrapChange;
38
5
  exports.setFragmentAsMoveChange = setFragmentAsMoveChange;
39
6
  exports.setFragmentAsNodeSplit = setFragmentAsNodeSplit;
7
+ exports.cutFragment = cutFragment;
40
8
  const prosemirror_model_1 = require("prosemirror-model");
41
9
  const change_1 = require("../types/change");
42
10
  const logger_1 = require("../utils/logger");
43
- const trackUtils = __importStar(require("../utils/track-utils"));
44
11
  const uuidv4_1 = require("../utils/uuidv4");
45
- const nodeHelpers_1 = require("./nodeHelpers");
12
+ const attributes_1 = require("./attributes");
13
+ const mark_1 = require("./mark");
14
+ function setFragmentAsInserted(inserted, insertAttrs, schema) {
15
+ const updatedInserted = loopContentAndMergeText(inserted, insertAttrs, schema);
16
+ return updatedInserted.length === 0 ? prosemirror_model_1.Fragment.empty : prosemirror_model_1.Fragment.fromArray(updatedInserted);
17
+ }
18
+ function setFragmentAsWrapChange(inserted, attrs, schema) {
19
+ const content = [];
20
+ inserted.forEach((node) => {
21
+ content.push(node.type.create(Object.assign(Object.assign({}, node.attrs), { dataTracked: [(0, attributes_1.addTrackIdIfDoesntExist)((0, attributes_1.createNewWrapAttrs)(attrs))] }), setFragmentAsInserted(node.content, (0, attributes_1.createNewInsertAttrs)(attrs), schema), node.marks));
22
+ });
23
+ return prosemirror_model_1.Fragment.from(content);
24
+ }
25
+ function setFragmentAsMoveChange(fragment, moveAttrs) {
26
+ const content = [];
27
+ fragment.forEach((node) => {
28
+ content.push(node.type.create(Object.assign(Object.assign({}, node.attrs), { dataTracked: [(0, attributes_1.addTrackIdIfDoesntExist)(moveAttrs)] }), node.content, node.marks));
29
+ });
30
+ return prosemirror_model_1.Fragment.from(content);
31
+ }
32
+ function setFragmentAsNodeSplit($pos, newTr, inserted, attrs) {
33
+ const lastChild = inserted.lastChild;
34
+ const referenceId = (0, uuidv4_1.uuidv4)();
35
+ const parentPos = $pos.before($pos.depth);
36
+ const parent = $pos.node($pos.depth);
37
+ const oldDataTracked = (0, attributes_1.getBlockInlineTrackedData)(parent) || [];
38
+ newTr.setNodeMarkup(parentPos, undefined, Object.assign(Object.assign({}, parent.attrs), { dataTracked: [
39
+ ...oldDataTracked.filter((c) => c.operation !== 'reference'),
40
+ Object.assign({}, (0, attributes_1.addTrackIdIfDoesntExist)((0, attributes_1.createNewReferenceAttrs)(Object.assign(Object.assign({}, attrs), { status: change_1.CHANGE_STATUS.pending }), referenceId))),
41
+ ] }));
42
+ const splitSource = oldDataTracked.find((c) => c.operation === 'reference');
43
+ const dataTracked = Object.assign(Object.assign({}, (0, attributes_1.createNewSplitAttrs)(Object.assign({}, attrs))), { id: referenceId });
44
+ if (lastChild.type.name === 'list_item') {
45
+ let firstChild = lastChild.content.firstChild;
46
+ firstChild = firstChild.type.create(Object.assign(Object.assign({}, lastChild.attrs), { dataTracked: splitSource ? [dataTracked, splitSource] : [dataTracked] }), firstChild.content);
47
+ inserted = inserted.replaceChild(inserted.childCount - 1, lastChild.type.create(lastChild.attrs, lastChild.content.cut(firstChild.nodeSize).addToStart(firstChild)));
48
+ }
49
+ else {
50
+ inserted = inserted.replaceChild(inserted.childCount - 1, lastChild.type.create(Object.assign(Object.assign({}, lastChild.attrs), { dataTracked: splitSource ? [dataTracked, splitSource] : [dataTracked] }), lastChild.content));
51
+ }
52
+ return inserted;
53
+ }
54
+ function cutFragment(matched, deleted, content) {
55
+ const newContent = [];
56
+ for (let i = 0; matched <= deleted && i < content.childCount; i += 1) {
57
+ const child = content.child(i);
58
+ if (!child.isText && child.content.size > 0) {
59
+ const cut = cutFragment(matched + 1, deleted, child.content);
60
+ matched = cut[0];
61
+ newContent.push(...cut[1].content);
62
+ }
63
+ else if (child.isText && matched + child.nodeSize > deleted) {
64
+ if (deleted - matched > 0) {
65
+ newContent.push(child.cut(deleted - matched));
66
+ }
67
+ else {
68
+ newContent.push(child);
69
+ }
70
+ matched = deleted + 1;
71
+ }
72
+ else {
73
+ matched += child.nodeSize;
74
+ }
75
+ }
76
+ return [matched, prosemirror_model_1.Fragment.fromArray(newContent)];
77
+ }
46
78
  function markInlineNodeChange(node, newTrackAttrs, schema) {
47
79
  const filtered = node.marks.filter((m) => m.type !== schema.marks.tracked_insert && m.type !== schema.marks.tracked_delete);
48
80
  const mark = newTrackAttrs.operation === change_1.CHANGE_OPERATION.insert
49
81
  ? schema.marks.tracked_insert
50
82
  : schema.marks.tracked_delete;
51
83
  const createdMark = mark.create({
52
- dataTracked: (0, nodeHelpers_1.addTrackIdIfDoesntExist)(newTrackAttrs),
84
+ dataTracked: (0, attributes_1.addTrackIdIfDoesntExist)(newTrackAttrs),
53
85
  });
54
86
  return node.mark(filtered.concat(createdMark));
55
87
  }
@@ -61,8 +93,8 @@ function loopContentAndMergeText(content, newTrackAttrs, schema) {
61
93
  const prev = i > 0 ? updatedChildren[i - 1] : null;
62
94
  if ((prev === null || prev === void 0 ? void 0 : prev.isText) &&
63
95
  recursed.isText &&
64
- (0, nodeHelpers_1.equalMarks)(prev, recursed) &&
65
- ((_a = (0, nodeHelpers_1.getTextNodeTrackedMarkData)(prev, schema)) === null || _a === void 0 ? void 0 : _a.operation) === change_1.CHANGE_OPERATION.insert) {
96
+ (0, mark_1.equalMarks)(prev, recursed) &&
97
+ ((_a = (0, attributes_1.getTextNodeTrackedMarkData)(prev, schema)) === null || _a === void 0 ? void 0 : _a.operation) === change_1.CHANGE_OPERATION.insert) {
66
98
  updatedChildren.splice(i - 1, 1, schema.text('' + prev.text + recursed.text, prev.marks));
67
99
  }
68
100
  else {
@@ -77,50 +109,10 @@ function recurseNodeContent(node, newTrackAttrs, schema) {
77
109
  }
78
110
  else if (node.isBlock || node.isInline) {
79
111
  const updatedChildren = loopContentAndMergeText(node.content, newTrackAttrs, schema);
80
- return node.type.create(Object.assign(Object.assign({}, node.attrs), { dataTracked: [(0, nodeHelpers_1.addTrackIdIfDoesntExist)(newTrackAttrs)] }), prosemirror_model_1.Fragment.fromArray(updatedChildren), node.marks);
112
+ return node.type.create(Object.assign(Object.assign({}, node.attrs), { dataTracked: [(0, attributes_1.addTrackIdIfDoesntExist)(newTrackAttrs)] }), prosemirror_model_1.Fragment.fromArray(updatedChildren), node.marks);
81
113
  }
82
114
  else {
83
115
  logger_1.log.error(`unhandled node type: "${node.type.name}"`, node);
84
116
  return node;
85
117
  }
86
118
  }
87
- function setFragmentAsInserted(inserted, insertAttrs, schema) {
88
- const updatedInserted = loopContentAndMergeText(inserted, insertAttrs, schema);
89
- return updatedInserted.length === 0 ? prosemirror_model_1.Fragment.empty : prosemirror_model_1.Fragment.fromArray(updatedInserted);
90
- }
91
- function setFragmentAsWrapChange(inserted, attrs, schema) {
92
- const content = [];
93
- inserted.forEach((node) => {
94
- content.push(node.type.create(Object.assign(Object.assign({}, node.attrs), { dataTracked: [(0, nodeHelpers_1.addTrackIdIfDoesntExist)(trackUtils.createNewWrapAttrs(attrs))] }), setFragmentAsInserted(node.content, trackUtils.createNewInsertAttrs(attrs), schema), node.marks));
95
- });
96
- return prosemirror_model_1.Fragment.from(content);
97
- }
98
- function setFragmentAsMoveChange(fragment, moveAttrs) {
99
- const content = [];
100
- fragment.forEach((node) => {
101
- content.push(node.type.create(Object.assign(Object.assign({}, node.attrs), { dataTracked: [(0, nodeHelpers_1.addTrackIdIfDoesntExist)(moveAttrs)] }), node.content, node.marks));
102
- });
103
- return prosemirror_model_1.Fragment.from(content);
104
- }
105
- function setFragmentAsNodeSplit($pos, newTr, inserted, attrs) {
106
- const lastChild = inserted.lastChild;
107
- const referenceId = (0, uuidv4_1.uuidv4)();
108
- const parentPos = $pos.before($pos.depth);
109
- const parent = $pos.node($pos.depth);
110
- const oldDataTracked = (0, nodeHelpers_1.getBlockInlineTrackedData)(parent) || [];
111
- newTr.setNodeMarkup(parentPos, undefined, Object.assign(Object.assign({}, parent.attrs), { dataTracked: [
112
- ...oldDataTracked.filter((c) => c.operation !== 'reference'),
113
- Object.assign({}, (0, nodeHelpers_1.addTrackIdIfDoesntExist)(trackUtils.createNewReferenceAttrs(Object.assign(Object.assign({}, attrs), { status: change_1.CHANGE_STATUS.pending }), referenceId))),
114
- ] }));
115
- const splitSource = oldDataTracked.find((c) => c.operation === 'reference');
116
- const dataTracked = Object.assign(Object.assign({}, trackUtils.createNewSplitAttrs(Object.assign({}, attrs))), { id: referenceId });
117
- if (lastChild.type.name === 'list_item') {
118
- let firstChild = lastChild.content.firstChild;
119
- firstChild = firstChild.type.create(Object.assign(Object.assign({}, lastChild.attrs), { dataTracked: splitSource ? [dataTracked, splitSource] : [dataTracked] }), firstChild.content);
120
- inserted = inserted.replaceChild(inserted.childCount - 1, lastChild.type.create(lastChild.attrs, lastChild.content.cut(firstChild.nodeSize).addToStart(firstChild)));
121
- }
122
- else {
123
- inserted = inserted.replaceChild(inserted.childCount - 1, lastChild.type.create(Object.assign(Object.assign({}, lastChild.attrs), { dataTracked: splitSource ? [dataTracked, splitSource] : [dataTracked] }), lastChild.content));
124
- }
125
- return inserted;
126
- }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isValidTrackableMark = isValidTrackableMark;
4
+ exports.equalMarks = equalMarks;
5
+ function isValidTrackableMark(mark) {
6
+ var _a, _b;
7
+ const spec = mark.type.spec;
8
+ const name = mark.type.name;
9
+ if (!name.startsWith('tracked_') &&
10
+ ((_a = spec.attrs) === null || _a === void 0 ? void 0 : _a.dataTracked) &&
11
+ typeof ((_b = spec.attrs) === null || _b === void 0 ? void 0 : _b.dataTracked) === 'object') {
12
+ return true;
13
+ }
14
+ return false;
15
+ }
16
+ function equalMarks(n1, n2) {
17
+ return (n1.marks.length === n2.marks.length &&
18
+ n1.marks.every((mark) => n1.marks.find((m) => m.type === mark.type)));
19
+ }
@@ -14,14 +14,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.trackChangesPlugin = exports.trackChangesPluginKey = void 0;
15
15
  const prosemirror_state_1 = require("prosemirror-state");
16
16
  const actions_1 = require("./actions");
17
- const findChanges_1 = require("./changes/findChanges");
18
- const fixInconsistentChanges_1 = require("./changes/fixInconsistentChanges");
19
- const updateChangesStatus_1 = require("./changes/updateChangesStatus");
17
+ const fixInconsistentChanges_1 = require("./changeHelpers/fixInconsistentChanges");
18
+ const updateChangesStatus_1 = require("./changeHelpers/updateChangesStatus");
20
19
  const ChangeSet_1 = require("./ChangeSet");
21
- const trackTransaction_1 = require("./steps/trackTransaction");
20
+ const findChanges_1 = require("./findChanges");
21
+ const trackChanges_1 = require("./trackChanges");
22
+ const transactionProcessing_1 = require("./tracking/transactionProcessing");
22
23
  const track_1 = require("./types/track");
23
24
  const logger_1 = require("./utils/logger");
24
- const track_utils_1 = require("./utils/track-utils");
25
25
  exports.trackChangesPluginKey = new prosemirror_state_1.PluginKey('track-changes');
26
26
  const trackChangesPlugin = (opts = { userID: 'anonymous:Anonymous', initialStatus: track_1.TrackChangesStatus.enabled }) => {
27
27
  const { userID, debug, skipTrsWithMetas = [] } = opts;
@@ -61,7 +61,7 @@ const trackChangesPlugin = (opts = { userID: 'anonymous:Anonymous', initialStatu
61
61
  return Object.assign(Object.assign({}, pluginState), { changeSet: new ChangeSet_1.ChangeSet() });
62
62
  }
63
63
  let { changeSet } = pluginState, rest = __rest(pluginState, ["changeSet"]);
64
- if ((0, actions_1.getAction)(tr, actions_1.TrackChangesAction.refreshChanges) || (0, track_utils_1.trFromHistory)(tr)) {
64
+ if ((0, actions_1.getAction)(tr, actions_1.TrackChangesAction.refreshChanges) || (0, transactionProcessing_1.trFromHistory)(tr)) {
65
65
  changeSet = (0, findChanges_1.findChanges)(newState);
66
66
  }
67
67
  return Object.assign({ changeSet }, rest);
@@ -83,31 +83,22 @@ const trackChangesPlugin = (opts = { userID: 'anonymous:Anonymous', initialStatu
83
83
  let createdTr = newState.tr, docChanged = false;
84
84
  logger_1.log.info('TRS', trs);
85
85
  trs.forEach((tr) => {
86
- const wasAppended = tr.getMeta('appendedTransaction');
87
- const skipMetaUsed = skipTrsWithMetas.some((m) => tr.getMeta(m) || (wasAppended === null || wasAppended === void 0 ? void 0 : wasAppended.getMeta(m)));
88
86
  const collabRebased = tr.getMeta('rebased');
89
87
  if (collabRebased !== undefined) {
90
88
  (0, actions_1.setAction)(createdTr, actions_1.TrackChangesAction.refreshChanges, true);
91
89
  docChanged = true;
92
90
  return;
93
91
  }
94
- const setChangeStatuses = (0, actions_1.getAction)(tr, actions_1.TrackChangesAction.setChangeStatuses);
95
- const skipTrackUsed = (0, actions_1.getAction)(tr, actions_1.TrackChangesAction.skipTrack) ||
96
- (wasAppended && (0, actions_1.getAction)(wasAppended, actions_1.TrackChangesAction.skipTrack));
97
- if (!setChangeStatuses &&
98
- tr.docChanged &&
99
- !skipMetaUsed &&
100
- !skipTrackUsed &&
101
- !(0, track_utils_1.trFromHistory)(tr) &&
102
- !(wasAppended && tr.getMeta('origin') === 'paragraphs')) {
103
- createdTr = (0, trackTransaction_1.trackTransaction)(tr, oldState, createdTr, userID, changeSet);
104
- }
105
- docChanged = docChanged || tr.docChanged;
106
- if (setChangeStatuses) {
107
- const { status, ids } = setChangeStatuses;
92
+ const setsChangeStatus = (0, actions_1.getAction)(tr, actions_1.TrackChangesAction.setChangeStatuses);
93
+ if (setsChangeStatus) {
94
+ const { status, ids } = setsChangeStatus;
108
95
  (0, updateChangesStatus_1.updateChangesStatus)(createdTr, changeSet, ids, status, userID, oldState);
109
96
  (0, actions_1.setAction)(createdTr, actions_1.TrackChangesAction.refreshChanges, true);
110
97
  }
98
+ else {
99
+ createdTr = (0, trackChanges_1.trackChanges)(tr, createdTr, oldState, userID, skipTrsWithMetas) || createdTr;
100
+ }
101
+ docChanged = docChanged || tr.docChanged;
111
102
  });
112
103
  const changed = pluginState.changeSet.hasInconsistentData &&
113
104
  (0, fixInconsistentChanges_1.fixInconsistentChanges)(pluginState.changeSet, userID, createdTr, oldState.schema);
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ /*!
3
+ * © 2025 Atypon Systems LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.trackChanges = trackChanges;
19
+ const actions_1 = require("./actions");
20
+ const processStepsBeforeTracking_1 = require("./tracking/lib/processStepsBeforeTracking");
21
+ const trackTransaction_1 = require("./tracking/trackTransaction");
22
+ const transactionProcessing_1 = require("./tracking/transactionProcessing");
23
+ function trackChanges(tr, createdTr, oldState, userID, skipTrsWithMetas) {
24
+ var _a;
25
+ const wasAppended = tr.getMeta('appendedTransaction');
26
+ const skipMetaUsed = skipTrsWithMetas.some((m) => tr.getMeta(m) || (wasAppended === null || wasAppended === void 0 ? void 0 : wasAppended.getMeta(m)));
27
+ const skipTrackUsed = (0, actions_1.getAction)(tr, actions_1.TrackChangesAction.skipTrack) ||
28
+ (wasAppended && (0, actions_1.getAction)(wasAppended, actions_1.TrackChangesAction.skipTrack));
29
+ if (tr.docChanged &&
30
+ !skipMetaUsed &&
31
+ !skipTrackUsed &&
32
+ !(0, transactionProcessing_1.trFromHistory)(tr) &&
33
+ !(wasAppended && tr.getMeta('origin') === 'paragraphs')) {
34
+ const action = (_a = (0, actions_1.getAction)(tr, actions_1.TrackChangesAction.indentationAction)) === null || _a === void 0 ? void 0 : _a.action;
35
+ const trContext = {
36
+ action,
37
+ stepsByGroupIDMap: new Map(),
38
+ };
39
+ const clearedSteps = (0, processStepsBeforeTracking_1.processStepsBeforeTracking)(tr, trContext, [
40
+ transactionProcessing_1.getMoveOperationsSteps,
41
+ transactionProcessing_1.getIndentationOperationSteps,
42
+ transactionProcessing_1.filterMeaninglessMoveSteps,
43
+ ]);
44
+ (0, transactionProcessing_1.changeMovedToInsertsOnSourceDeletion)(tr, createdTr, trContext);
45
+ return (0, trackTransaction_1.trackTransaction)(tr, oldState, createdTr, userID, clearedSteps, trContext);
46
+ }
47
+ }
@@ -1,34 +1,29 @@
1
1
  "use strict";
2
+ /*!
3
+ * © 2025 Atypon Systems LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
2
17
  Object.defineProperty(exports, "__esModule", { value: true });
3
18
  exports.diffChangeSteps = diffChangeSteps;
4
19
  const prosemirror_model_1 = require("prosemirror-model");
5
- const logger_1 = require("../utils/logger");
6
- const matchInserted_1 = require("./matchInserted");
7
- function cutFragment(matched, deleted, content) {
8
- const newContent = [];
9
- for (let i = 0; matched <= deleted && i < content.childCount; i += 1) {
10
- const child = content.child(i);
11
- if (!child.isText && child.content.size > 0) {
12
- const cut = cutFragment(matched + 1, deleted, child.content);
13
- matched = cut[0];
14
- newContent.push(...cut[1].content);
15
- }
16
- else if (child.isText && matched + child.nodeSize > deleted) {
17
- if (deleted - matched > 0) {
18
- newContent.push(child.cut(deleted - matched));
19
- }
20
- else {
21
- newContent.push(child);
22
- }
23
- matched = deleted + 1;
24
- }
25
- else {
26
- matched += child.nodeSize;
27
- }
28
- }
29
- return [matched, prosemirror_model_1.Fragment.fromArray(newContent)];
30
- }
31
- function diffChangeSteps(deleted, inserted) {
20
+ const fragment_1 = require("../../helpers/fragment");
21
+ const logger_1 = require("../../utils/logger");
22
+ const matchInserted_1 = require("../lib/matchInserted");
23
+ function diffChangeSteps(steps) {
24
+ const deleted = steps.filter((s) => s.type !== 'insert-slice');
25
+ const inserted = steps.filter((s) => s.type === 'insert-slice');
26
+ logger_1.log.info('INSERT STEPS: ', inserted);
32
27
  const updated = [];
33
28
  let updatedDeleted = [...deleted];
34
29
  inserted.forEach((ins) => {
@@ -52,7 +47,7 @@ function diffChangeSteps(deleted, inserted) {
52
47
  return;
53
48
  }
54
49
  updatedDeleted = updatedDel;
55
- const [_, newInserted] = cutFragment(0, matchedDeleted - deleteStart, ins.slice.content);
50
+ const [_, newInserted] = (0, fragment_1.cutFragment)(0, matchedDeleted - deleteStart, ins.slice.content);
56
51
  if (newInserted.size > 0) {
57
52
  updated.push(Object.assign(Object.assign({}, ins), { slice: new prosemirror_model_1.Slice(newInserted, ins.slice.openStart, ins.slice.openEnd) }));
58
53
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*!
3
- * © 2023 Atypon Systems LLC
3
+ * © 2025 Atypon Systems LLC
4
4
  *
5
5
  * Licensed under the Apache License, Version 2.0 (the "License");
6
6
  * you may not use this file except in compliance with the License.
@@ -1,37 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
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
- })();
35
2
  var __rest = (this && this.__rest) || function (s, e) {
36
3
  var t = {};
37
4
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -46,17 +13,16 @@ var __rest = (this && this.__rest) || function (s, e) {
46
13
  Object.defineProperty(exports, "__esModule", { value: true });
47
14
  exports.processChangeSteps = processChangeSteps;
48
15
  const prosemirror_transform_1 = require("prosemirror-transform");
49
- const nodeHelpers_1 = require("../compute/nodeHelpers");
50
- const deleteNode_1 = require("../mutate/deleteNode");
51
- const deleteText_1 = require("../mutate/deleteText");
52
- const mergeTrackedMarks_1 = require("../mutate/mergeTrackedMarks");
53
- const change_1 = require("../types/change");
54
- const logger_1 = require("../utils/logger");
55
- const trackUtils = __importStar(require("../utils/track-utils"));
56
- function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema, deletedNodeMapping) {
16
+ const attributes_1 = require("../../helpers/attributes");
17
+ const change_1 = require("../../types/change");
18
+ const logger_1 = require("../../utils/logger");
19
+ const deleteNode_1 = require("../lib/deleteNode");
20
+ const deleteTextIfInserted_1 = require("../lib/deleteTextIfInserted");
21
+ const mergeTrackedMarks_1 = require("../lib/mergeTrackedMarks");
22
+ function processChangeSteps(changes, newTr, emptyAttrs, schema, deletedNodeMapping) {
57
23
  const mapping = new prosemirror_transform_1.Mapping();
58
- const deleteAttrs = trackUtils.createNewDeleteAttrs(emptyAttrs);
59
- let selectionPos = startPos;
24
+ const deleteAttrs = (0, attributes_1.createNewDeleteAttrs)(emptyAttrs);
25
+ let selectionPos = undefined;
60
26
  let deletesCounter = 0;
61
27
  let isInserted = false;
62
28
  let prevDelete;
@@ -66,7 +32,7 @@ function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema, delete
66
32
  case 'delete-node': {
67
33
  deletesCounter++;
68
34
  const prevDeletedNodeInserted = isInserted;
69
- const trackedData = (0, nodeHelpers_1.getBlockInlineTrackedData)(c.node);
35
+ const trackedData = (0, attributes_1.getBlockInlineTrackedData)(c.node);
70
36
  const inserted = trackedData === null || trackedData === void 0 ? void 0 : trackedData.find((d) => d.operation === change_1.CHANGE_OPERATION.insert || d.operation === change_1.CHANGE_OPERATION.wrap_with_node);
71
37
  const structure = trackedData === null || trackedData === void 0 ? void 0 : trackedData.find((c) => c.operation === change_1.CHANGE_OPERATION.structure &&
72
38
  deleteAttrs.moveNodeId &&
@@ -111,7 +77,7 @@ function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema, delete
111
77
  logger_1.log.error(`processChangeSteps: no text node found for text-change`, c);
112
78
  return;
113
79
  }
114
- const where = (0, deleteText_1.deleteTextIfInserted)(node, mapping.map(c.pos), newTr, schema, deleteAttrs, mapping.map(c.from), mapping.map(c.to));
80
+ const where = (0, deleteTextIfInserted_1.deleteTextIfInserted)(node, mapping.map(c.pos), newTr, schema, deleteAttrs, mapping.map(c.from), mapping.map(c.to));
115
81
  const textNewestStep = newTr.steps[newTr.steps.length - 1];
116
82
  if (node.marks.find((m) => m.type === schema.marks.tracked_insert)) {
117
83
  deletedNodeMapping.appendMap(textNewestStep.getMap());
@@ -126,7 +92,7 @@ function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema, delete
126
92
  case 'merge-fragment': {
127
93
  let insertPos = mapping.map(c.mergePos);
128
94
  if (c.node.isText) {
129
- insertPos = (0, deleteText_1.deleteTextIfInserted)(c.node, mapping.map(c.pos), newTr, schema, deleteAttrs, mapping.map(c.from), mapping.map(c.to));
95
+ insertPos = (0, deleteTextIfInserted_1.deleteTextIfInserted)(c.node, mapping.map(c.pos), newTr, schema, deleteAttrs, mapping.map(c.from), mapping.map(c.to));
130
96
  const newestStep = newTr.steps[newTr.steps.length - 1];
131
97
  if (c.node.marks.find((m) => m.type === schema.marks.tracked_insert)) {
132
98
  deletedNodeMapping.appendMap(newestStep.getMap());
@@ -155,7 +121,7 @@ function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema, delete
155
121
  break;
156
122
  }
157
123
  case 'update-node-attrs': {
158
- const oldDataTracked = (0, nodeHelpers_1.getBlockInlineTrackedData)(c.node) || [];
124
+ const oldDataTracked = (0, attributes_1.getBlockInlineTrackedData)(c.node) || [];
159
125
  const oldUpdate = oldDataTracked.reverse().find((d) => {
160
126
  if (d.operation === change_1.CHANGE_OPERATION.set_node_attributes && d.status === change_1.CHANGE_STATUS.pending) {
161
127
  return true;
@@ -166,7 +132,7 @@ function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema, delete
166
132
  const oldAttrs = restAttrs;
167
133
  const newDataTracked = [...oldDataTracked.filter((d) => !oldUpdate || d.id !== oldUpdate.id)];
168
134
  const newUpdate = oldUpdate && oldUpdate.status !== change_1.CHANGE_STATUS.rejected
169
- ? Object.assign(Object.assign({}, oldUpdate), { updatedAt: emptyAttrs.updatedAt }) : (0, nodeHelpers_1.addTrackIdIfDoesntExist)(trackUtils.createNewUpdateAttrs(emptyAttrs, c.node.attrs));
135
+ ? Object.assign(Object.assign({}, oldUpdate), { updatedAt: emptyAttrs.updatedAt }) : (0, attributes_1.addTrackIdIfDoesntExist)((0, attributes_1.createNewUpdateAttrs)(emptyAttrs, c.node.attrs));
170
136
  if ((JSON.stringify(oldAttrs) !== JSON.stringify(c.newAttrs) ||
171
137
  c.node.type === c.node.type.schema.nodes.citation) &&
172
138
  !oldDataTracked.find((d) => (d.operation === change_1.CHANGE_OPERATION.insert || d.operation === change_1.CHANGE_OPERATION.wrap_with_node) &&
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /*!
3
+ * © 2025 Atypon Systems LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.getSelectionStaticConstructor = void 0;
19
+ exports.fixAndSetSelectionAfterTracking = fixAndSetSelectionAfterTracking;
20
+ const prosemirror_state_1 = require("prosemirror-state");
21
+ const prosemirror_transform_1 = require("prosemirror-transform");
22
+ const structureChange_1 = require("../changeHelpers/structureChange");
23
+ const getSelectionStaticConstructor = (sel) => Object.getPrototypeOf(sel).constructor;
24
+ exports.getSelectionStaticConstructor = getSelectionStaticConstructor;
25
+ function fixAndSetSelectionAfterTracking(newTr, oldTr, deletedNodeMapping, trContext) {
26
+ const wasNodeSelection = oldTr.selection instanceof prosemirror_state_1.NodeSelection;
27
+ if (!wasNodeSelection && !oldTr.selectionSet && trContext.selectionPosFromInsertion) {
28
+ const sel = (0, exports.getSelectionStaticConstructor)(oldTr.selection);
29
+ const near = sel.near(newTr.doc.resolve(trContext.selectionPosFromInsertion), -1);
30
+ newTr.setSelection(near);
31
+ }
32
+ if (oldTr.selectionSet && oldTr.selection instanceof prosemirror_state_1.TextSelection) {
33
+ let from = oldTr.selection.from;
34
+ if ((0, structureChange_1.isStructuralChange)(oldTr)) {
35
+ const selectionMapping = new prosemirror_transform_1.Mapping();
36
+ oldTr.steps.map((step) => {
37
+ const isDeleteStep = step instanceof prosemirror_transform_1.ReplaceStep && step.from !== step.to && step.slice.size === 0;
38
+ if (isDeleteStep) {
39
+ selectionMapping.appendMap(step.getMap().invert());
40
+ }
41
+ });
42
+ selectionMapping.appendMapping(deletedNodeMapping);
43
+ from = selectionMapping.map(oldTr.selection.from);
44
+ }
45
+ const newPos = newTr.doc.resolve(from);
46
+ newTr.setSelection(new prosemirror_state_1.TextSelection(newPos));
47
+ }
48
+ if (wasNodeSelection) {
49
+ const mappedPos = newTr.mapping.map(oldTr.selection.from, -1);
50
+ const sel = (0, exports.getSelectionStaticConstructor)(oldTr.selection);
51
+ newTr.setSelection(sel.create(newTr.doc, mappedPos));
52
+ }
53
+ return newTr;
54
+ }
@@ -1,45 +1,12 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
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
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.deleteAndMergeSplitNodes = deleteAndMergeSplitNodes;
37
4
  const prosemirror_model_1 = require("prosemirror-model");
38
- const setFragmentAsInserted_1 = require("../compute/setFragmentAsInserted");
39
- const splitSliceIntoMergedParts_1 = require("../compute/splitSliceIntoMergedParts");
40
- const utils_1 = require("../steps/utils");
41
- const trackUtils = __importStar(require("../utils/track-utils"));
42
- function deleteAndMergeSplitNodes(from, to, gap, startDoc, newTr, schema, trackAttrs, insertSlice) {
5
+ const attributes_1 = require("../../helpers/attributes");
6
+ const fragment_1 = require("../../helpers/fragment");
7
+ const qualifiers_1 = require("../steps-trackers/qualifiers");
8
+ const splitSliceIntoMergedParts_1 = require("./splitSliceIntoMergedParts");
9
+ function deleteAndMergeSplitNodes(from, to, gap, startDoc, schema, trackAttrs, insertSlice) {
43
10
  const steps = [];
44
11
  if (from === to) {
45
12
  return {
@@ -70,7 +37,7 @@ function deleteAndMergeSplitNodes(from, to, gap, startDoc, newTr, schema, trackA
70
37
  const mergeEndNode = startTokenDeleted && openEnd > 0 && depth === openEnd && mergeContent;
71
38
  const mergeEndNodeNotEmpty = mergeEndNode && mergeContent.size;
72
39
  if (mergeEndNode && !mergeEndNodeNotEmpty && gap) {
73
- if ((0, utils_1.stepIsLift)(gap, node, to)) {
40
+ if ((0, qualifiers_1.isLiftStepForGap)(gap, node, to)) {
74
41
  gap.slice.content.forEach((node, offset) => {
75
42
  steps.push({
76
43
  type: 'delete-node',
@@ -89,7 +56,7 @@ function deleteAndMergeSplitNodes(from, to, gap, startDoc, newTr, schema, trackA
89
56
  from,
90
57
  to,
91
58
  node,
92
- fragment: (0, setFragmentAsInserted_1.setFragmentAsInserted)(mergeContent, trackUtils.createNewInsertAttrs(trackAttrs), schema),
59
+ fragment: (0, fragment_1.setFragmentAsInserted)(mergeContent, (0, attributes_1.createNewInsertAttrs)(trackAttrs), schema),
93
60
  });
94
61
  }
95
62
  else if (node.isText) {