@manuscripts/track-changes-plugin 1.7.15-LEAN-3731.0 → 1.7.15

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.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.skipTracking = exports.setAction = exports.getAction = exports.TrackChangesAction = void 0;
3
+ exports.skipTracking = exports.setAction = exports.getAction = exports.hasAction = exports.TrackChangesAction = void 0;
4
4
  var TrackChangesAction;
5
5
  (function (TrackChangesAction) {
6
6
  TrackChangesAction["skipTrack"] = "track-changes-skip-tracking";
@@ -11,6 +11,10 @@ var TrackChangesAction;
11
11
  TrackChangesAction["applyAndRemoveChanges"] = "track-changes-apply-remove-changes";
12
12
  TrackChangesAction["updateMetaNode"] = "track-changes-update-meta-node";
13
13
  })(TrackChangesAction = exports.TrackChangesAction || (exports.TrackChangesAction = {}));
14
+ function hasAction(tr) {
15
+ return Object.values(TrackChangesAction).some((action) => !!tr.getMeta(action));
16
+ }
17
+ exports.hasAction = hasAction;
14
18
  function getAction(tr, action) {
15
19
  return tr.getMeta(action);
16
20
  }
@@ -121,9 +121,9 @@ function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema) {
121
121
  const sourceAttrs = (oldUpdate === null || oldUpdate === void 0 ? void 0 : oldUpdate.oldAttrs) || c.node.attrs;
122
122
  const { dataTracked } = sourceAttrs, restAttrs = __rest(sourceAttrs, ["dataTracked"]);
123
123
  const oldAttrs = lastChangeRejected ? oldUpdate.oldAttrs : restAttrs;
124
- const newDataTracked = [
125
- ...oldDataTracked.filter((d) => !oldUpdate || d.id !== oldUpdate.id || lastChangeRejected),
126
- ];
124
+ const newDataTracked = c.node.type != c.node.type.schema.nodes.list
125
+ ? [...oldDataTracked.filter((d) => !oldUpdate || d.id !== oldUpdate.id || lastChangeRejected)]
126
+ : [];
127
127
  const newUpdate = oldUpdate && oldUpdate.status !== change_1.CHANGE_STATUS.rejected
128
128
  ? Object.assign(Object.assign({}, oldUpdate), { updatedAt: emptyAttrs.updatedAt }) : (0, nodeHelpers_1.addTrackIdIfDoesntExist)(trackUtils.createNewUpdateAttrs(emptyAttrs, lastChangeRejected ? oldAttrs : c.node.attrs));
129
129
  if ((JSON.stringify(oldAttrs) !== JSON.stringify(c.newAttrs) ||
@@ -46,6 +46,9 @@ const trackChangesPlugin = (opts = { userID: 'anonymous:Anonymous', initialStatu
46
46
  };
47
47
  },
48
48
  apply(tr, pluginState, _oldState, newState) {
49
+ if (!tr.docChanged && !(0, actions_1.hasAction)(tr)) {
50
+ return pluginState;
51
+ }
49
52
  const setUserID = (0, actions_1.getAction)(tr, actions_1.TrackChangesAction.setUserID);
50
53
  const setStatus = (0, actions_1.getAction)(tr, actions_1.TrackChangesAction.setPluginStatus);
51
54
  if (setUserID) {
@@ -8,6 +8,9 @@ export var TrackChangesAction;
8
8
  TrackChangesAction["applyAndRemoveChanges"] = "track-changes-apply-remove-changes";
9
9
  TrackChangesAction["updateMetaNode"] = "track-changes-update-meta-node";
10
10
  })(TrackChangesAction || (TrackChangesAction = {}));
11
+ export function hasAction(tr) {
12
+ return Object.values(TrackChangesAction).some((action) => !!tr.getMeta(action));
13
+ }
11
14
  export function getAction(tr, action) {
12
15
  return tr.getMeta(action);
13
16
  }
@@ -95,9 +95,9 @@ export function processChangeSteps(changes, startPos, newTr, emptyAttrs, schema)
95
95
  const sourceAttrs = (oldUpdate === null || oldUpdate === void 0 ? void 0 : oldUpdate.oldAttrs) || c.node.attrs;
96
96
  const { dataTracked } = sourceAttrs, restAttrs = __rest(sourceAttrs, ["dataTracked"]);
97
97
  const oldAttrs = lastChangeRejected ? oldUpdate.oldAttrs : restAttrs;
98
- const newDataTracked = [
99
- ...oldDataTracked.filter((d) => !oldUpdate || d.id !== oldUpdate.id || lastChangeRejected),
100
- ];
98
+ const newDataTracked = c.node.type != c.node.type.schema.nodes.list
99
+ ? [...oldDataTracked.filter((d) => !oldUpdate || d.id !== oldUpdate.id || lastChangeRejected)]
100
+ : [];
101
101
  const newUpdate = oldUpdate && oldUpdate.status !== CHANGE_STATUS.rejected
102
102
  ? Object.assign(Object.assign({}, oldUpdate), { updatedAt: emptyAttrs.updatedAt }) : addTrackIdIfDoesntExist(trackUtils.createNewUpdateAttrs(emptyAttrs, lastChangeRejected ? oldAttrs : c.node.attrs));
103
103
  if ((JSON.stringify(oldAttrs) !== JSON.stringify(c.newAttrs) ||
package/dist/es/plugin.js CHANGED
@@ -10,7 +10,7 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import { Plugin, PluginKey } from 'prosemirror-state';
13
- import { getAction, setAction, TrackChangesAction } from './actions';
13
+ import { getAction, hasAction, setAction, TrackChangesAction } from './actions';
14
14
  import { applyAcceptedRejectedChanges } from './changes/applyChanges';
15
15
  import { findChanges } from './changes/findChanges';
16
16
  import { fixInconsistentChanges } from './changes/fixInconsistentChanges';
@@ -43,6 +43,9 @@ export const trackChangesPlugin = (opts = { userID: 'anonymous:Anonymous', initi
43
43
  };
44
44
  },
45
45
  apply(tr, pluginState, _oldState, newState) {
46
+ if (!tr.docChanged && !hasAction(tr)) {
47
+ return pluginState;
48
+ }
46
49
  const setUserID = getAction(tr, TrackChangesAction.setUserID);
47
50
  const setStatus = getAction(tr, TrackChangesAction.setPluginStatus);
48
51
  if (setUserID) {
@@ -22,6 +22,7 @@ export type TrackChangesActionParams = {
22
22
  [TrackChangesAction.applyAndRemoveChanges]: boolean;
23
23
  [TrackChangesAction.updateMetaNode]: boolean;
24
24
  };
25
+ export declare function hasAction(tr: Transaction): boolean;
25
26
  export declare function getAction<K extends keyof TrackChangesActionParams>(tr: Transaction, action: K): TrackChangesActionParams[K] | undefined;
26
27
  export declare function setAction<K extends keyof TrackChangesActionParams>(tr: Transaction, action: K, payload: TrackChangesActionParams[K]): Transaction;
27
28
  export declare const skipTracking: (tr: Transaction) => Transaction;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manuscripts/track-changes-plugin",
3
- "version": "1.7.15-LEAN-3731.0",
3
+ "version": "1.7.15",
4
4
  "author": "Atypon Systems LLC",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/Atypon-OpenSource/manuscripts-track-changes-plugin",
@@ -69,4 +69,4 @@
69
69
  "resolutions": {
70
70
  "eslint-mdx": "2.0.5"
71
71
  }
72
- }
72
+ }