@atlaskit/editor-plugin-collab-edit 1.19.9 → 1.20.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/CHANGELOG.md +13 -0
- package/dist/cjs/plugin.js +6 -2
- package/dist/cjs/pm-plugins/track-last-organic-change.js +16 -3
- package/dist/es2019/plugin.js +6 -2
- package/dist/es2019/pm-plugins/track-last-organic-change.js +16 -3
- package/dist/esm/plugin.js +6 -2
- package/dist/esm/pm-plugins/track-last-organic-change.js +16 -3
- package/dist/types/types.d.ts +2 -0
- package/dist/types-ts4.5/types.d.ts +2 -0
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-collab-edit
|
|
2
2
|
|
|
3
|
+
## 1.20.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`028de08a07c15`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/028de08a07c15) -
|
|
8
|
+
Added fields to distinguish between comment and body changes
|
|
9
|
+
|
|
10
|
+
## 1.19.10
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies
|
|
15
|
+
|
|
3
16
|
## 1.19.9
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/dist/cjs/plugin.js
CHANGED
|
@@ -114,7 +114,9 @@ var collabEditPlugin = exports.collabEditPlugin = function collabEditPlugin(_ref
|
|
|
114
114
|
firstChangeAfterInitAt: null,
|
|
115
115
|
firstContentBodyChangeAfterInitAt: null,
|
|
116
116
|
lastLocalOrganicChangeAt: null,
|
|
117
|
-
lastRemoteOrganicChangeAt: null
|
|
117
|
+
lastRemoteOrganicChangeAt: null,
|
|
118
|
+
lastLocalOrganicBodyChangeAt: null,
|
|
119
|
+
lastRemoteOrganicBodyChangeAt: null
|
|
118
120
|
},
|
|
119
121
|
activeParticipants: undefined,
|
|
120
122
|
sessionId: undefined
|
|
@@ -131,7 +133,9 @@ var collabEditPlugin = exports.collabEditPlugin = function collabEditPlugin(_ref
|
|
|
131
133
|
firstChangeAfterInitAt: (metadata === null || metadata === void 0 ? void 0 : metadata.firstChangeAfterInitAt) || null,
|
|
132
134
|
firstContentBodyChangeAfterInitAt: (metadata === null || metadata === void 0 ? void 0 : metadata.firstContentBodyChangeAfterInitAt) || null,
|
|
133
135
|
lastLocalOrganicChangeAt: (lastOrganicChangeState === null || lastOrganicChangeState === void 0 ? void 0 : lastOrganicChangeState.lastLocalOrganicChangeAt) || null,
|
|
134
|
-
lastRemoteOrganicChangeAt: (lastOrganicChangeState === null || lastOrganicChangeState === void 0 ? void 0 : lastOrganicChangeState.lastRemoteOrganicChangeAt) || null
|
|
136
|
+
lastRemoteOrganicChangeAt: (lastOrganicChangeState === null || lastOrganicChangeState === void 0 ? void 0 : lastOrganicChangeState.lastRemoteOrganicChangeAt) || null,
|
|
137
|
+
lastLocalOrganicBodyChangeAt: (lastOrganicChangeState === null || lastOrganicChangeState === void 0 ? void 0 : lastOrganicChangeState.lastLocalOrganicBodyChangeAt) || null,
|
|
138
|
+
lastRemoteOrganicBodyChangeAt: (lastOrganicChangeState === null || lastOrganicChangeState === void 0 ? void 0 : lastOrganicChangeState.lastRemoteOrganicBodyChangeAt) || null
|
|
135
139
|
}
|
|
136
140
|
};
|
|
137
141
|
},
|
|
@@ -7,6 +7,7 @@ exports.trackLastOrganicChangePluginKey = exports.createPlugin = void 0;
|
|
|
7
7
|
var _collab = require("@atlaskit/editor-common/collab");
|
|
8
8
|
var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
|
|
9
9
|
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
10
|
+
var _transform = require("@atlaskit/editor-prosemirror/transform");
|
|
10
11
|
var _utils = require("../utils");
|
|
11
12
|
var trackLastOrganicChangePluginKey = exports.trackLastOrganicChangePluginKey = new _state.PluginKey('collabTrackLastOrganicChangePlugin');
|
|
12
13
|
var createPlugin = exports.createPlugin = function createPlugin() {
|
|
@@ -16,7 +17,9 @@ var createPlugin = exports.createPlugin = function createPlugin() {
|
|
|
16
17
|
init: function init() {
|
|
17
18
|
return {
|
|
18
19
|
lastLocalOrganicChangeAt: null,
|
|
19
|
-
lastRemoteOrganicChangeAt: null
|
|
20
|
+
lastRemoteOrganicChangeAt: null,
|
|
21
|
+
lastLocalOrganicBodyChangeAt: null,
|
|
22
|
+
lastRemoteOrganicBodyChangeAt: null
|
|
20
23
|
};
|
|
21
24
|
},
|
|
22
25
|
apply: function apply(transaction, prevPluginState) {
|
|
@@ -25,6 +28,12 @@ var createPlugin = exports.createPlugin = function createPlugin() {
|
|
|
25
28
|
}
|
|
26
29
|
var isRemote = Boolean(transaction.getMeta('isRemote'));
|
|
27
30
|
var isDocumentReplaceFromRemote = isRemote && Boolean(transaction.getMeta('replaceDocument'));
|
|
31
|
+
|
|
32
|
+
// Inline comment annotations are not considered as edits to the document body
|
|
33
|
+
var isAnnotationStep = !!transaction.steps.find(function (step) {
|
|
34
|
+
var _step$mark;
|
|
35
|
+
return step instanceof _transform.AddMarkStep && ((_step$mark = step.mark) === null || _step$mark === void 0 || (_step$mark = _step$mark.type) === null || _step$mark === void 0 ? void 0 : _step$mark.name) === 'annotation';
|
|
36
|
+
});
|
|
28
37
|
if (isDocumentReplaceFromRemote) {
|
|
29
38
|
return prevPluginState;
|
|
30
39
|
}
|
|
@@ -35,12 +44,16 @@ var createPlugin = exports.createPlugin = function createPlugin() {
|
|
|
35
44
|
if (isRemote) {
|
|
36
45
|
return {
|
|
37
46
|
lastLocalOrganicChangeAt: prevPluginState.lastLocalOrganicChangeAt,
|
|
38
|
-
lastRemoteOrganicChangeAt: Date.now()
|
|
47
|
+
lastRemoteOrganicChangeAt: Date.now(),
|
|
48
|
+
lastLocalOrganicBodyChangeAt: prevPluginState.lastLocalOrganicBodyChangeAt,
|
|
49
|
+
lastRemoteOrganicBodyChangeAt: isAnnotationStep ? prevPluginState.lastRemoteOrganicBodyChangeAt : Date.now()
|
|
39
50
|
};
|
|
40
51
|
}
|
|
41
52
|
return {
|
|
42
53
|
lastLocalOrganicChangeAt: Date.now(),
|
|
43
|
-
lastRemoteOrganicChangeAt: prevPluginState.lastRemoteOrganicChangeAt
|
|
54
|
+
lastRemoteOrganicChangeAt: prevPluginState.lastRemoteOrganicChangeAt,
|
|
55
|
+
lastLocalOrganicBodyChangeAt: isAnnotationStep ? prevPluginState.lastLocalOrganicBodyChangeAt : Date.now(),
|
|
56
|
+
lastRemoteOrganicBodyChangeAt: prevPluginState.lastRemoteOrganicBodyChangeAt
|
|
44
57
|
};
|
|
45
58
|
}
|
|
46
59
|
return prevPluginState;
|
package/dist/es2019/plugin.js
CHANGED
|
@@ -75,7 +75,9 @@ export const collabEditPlugin = ({
|
|
|
75
75
|
firstChangeAfterInitAt: null,
|
|
76
76
|
firstContentBodyChangeAfterInitAt: null,
|
|
77
77
|
lastLocalOrganicChangeAt: null,
|
|
78
|
-
lastRemoteOrganicChangeAt: null
|
|
78
|
+
lastRemoteOrganicChangeAt: null,
|
|
79
|
+
lastLocalOrganicBodyChangeAt: null,
|
|
80
|
+
lastRemoteOrganicBodyChangeAt: null
|
|
79
81
|
},
|
|
80
82
|
activeParticipants: undefined,
|
|
81
83
|
sessionId: undefined
|
|
@@ -92,7 +94,9 @@ export const collabEditPlugin = ({
|
|
|
92
94
|
firstChangeAfterInitAt: (metadata === null || metadata === void 0 ? void 0 : metadata.firstChangeAfterInitAt) || null,
|
|
93
95
|
firstContentBodyChangeAfterInitAt: (metadata === null || metadata === void 0 ? void 0 : metadata.firstContentBodyChangeAfterInitAt) || null,
|
|
94
96
|
lastLocalOrganicChangeAt: (lastOrganicChangeState === null || lastOrganicChangeState === void 0 ? void 0 : lastOrganicChangeState.lastLocalOrganicChangeAt) || null,
|
|
95
|
-
lastRemoteOrganicChangeAt: (lastOrganicChangeState === null || lastOrganicChangeState === void 0 ? void 0 : lastOrganicChangeState.lastRemoteOrganicChangeAt) || null
|
|
97
|
+
lastRemoteOrganicChangeAt: (lastOrganicChangeState === null || lastOrganicChangeState === void 0 ? void 0 : lastOrganicChangeState.lastRemoteOrganicChangeAt) || null,
|
|
98
|
+
lastLocalOrganicBodyChangeAt: (lastOrganicChangeState === null || lastOrganicChangeState === void 0 ? void 0 : lastOrganicChangeState.lastLocalOrganicBodyChangeAt) || null,
|
|
99
|
+
lastRemoteOrganicBodyChangeAt: (lastOrganicChangeState === null || lastOrganicChangeState === void 0 ? void 0 : lastOrganicChangeState.lastRemoteOrganicBodyChangeAt) || null
|
|
96
100
|
}
|
|
97
101
|
};
|
|
98
102
|
},
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { isDirtyTransaction } from '@atlaskit/editor-common/collab';
|
|
2
2
|
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
3
3
|
import { PluginKey } from '@atlaskit/editor-prosemirror/state';
|
|
4
|
+
import { AddMarkStep } from '@atlaskit/editor-prosemirror/transform';
|
|
4
5
|
import { isOrganicChange } from '../utils';
|
|
5
6
|
export const trackLastOrganicChangePluginKey = new PluginKey('collabTrackLastOrganicChangePlugin');
|
|
6
7
|
export const createPlugin = () => {
|
|
@@ -10,7 +11,9 @@ export const createPlugin = () => {
|
|
|
10
11
|
init() {
|
|
11
12
|
return {
|
|
12
13
|
lastLocalOrganicChangeAt: null,
|
|
13
|
-
lastRemoteOrganicChangeAt: null
|
|
14
|
+
lastRemoteOrganicChangeAt: null,
|
|
15
|
+
lastLocalOrganicBodyChangeAt: null,
|
|
16
|
+
lastRemoteOrganicBodyChangeAt: null
|
|
14
17
|
};
|
|
15
18
|
},
|
|
16
19
|
apply(transaction, prevPluginState) {
|
|
@@ -19,6 +22,12 @@ export const createPlugin = () => {
|
|
|
19
22
|
}
|
|
20
23
|
const isRemote = Boolean(transaction.getMeta('isRemote'));
|
|
21
24
|
const isDocumentReplaceFromRemote = isRemote && Boolean(transaction.getMeta('replaceDocument'));
|
|
25
|
+
|
|
26
|
+
// Inline comment annotations are not considered as edits to the document body
|
|
27
|
+
const isAnnotationStep = !!transaction.steps.find(step => {
|
|
28
|
+
var _step$mark, _step$mark$type;
|
|
29
|
+
return step instanceof AddMarkStep && ((_step$mark = step.mark) === null || _step$mark === void 0 ? void 0 : (_step$mark$type = _step$mark.type) === null || _step$mark$type === void 0 ? void 0 : _step$mark$type.name) === 'annotation';
|
|
30
|
+
});
|
|
22
31
|
if (isDocumentReplaceFromRemote) {
|
|
23
32
|
return prevPluginState;
|
|
24
33
|
}
|
|
@@ -29,12 +38,16 @@ export const createPlugin = () => {
|
|
|
29
38
|
if (isRemote) {
|
|
30
39
|
return {
|
|
31
40
|
lastLocalOrganicChangeAt: prevPluginState.lastLocalOrganicChangeAt,
|
|
32
|
-
lastRemoteOrganicChangeAt: Date.now()
|
|
41
|
+
lastRemoteOrganicChangeAt: Date.now(),
|
|
42
|
+
lastLocalOrganicBodyChangeAt: prevPluginState.lastLocalOrganicBodyChangeAt,
|
|
43
|
+
lastRemoteOrganicBodyChangeAt: isAnnotationStep ? prevPluginState.lastRemoteOrganicBodyChangeAt : Date.now()
|
|
33
44
|
};
|
|
34
45
|
}
|
|
35
46
|
return {
|
|
36
47
|
lastLocalOrganicChangeAt: Date.now(),
|
|
37
|
-
lastRemoteOrganicChangeAt: prevPluginState.lastRemoteOrganicChangeAt
|
|
48
|
+
lastRemoteOrganicChangeAt: prevPluginState.lastRemoteOrganicChangeAt,
|
|
49
|
+
lastLocalOrganicBodyChangeAt: isAnnotationStep ? prevPluginState.lastLocalOrganicBodyChangeAt : Date.now(),
|
|
50
|
+
lastRemoteOrganicBodyChangeAt: prevPluginState.lastRemoteOrganicBodyChangeAt
|
|
38
51
|
};
|
|
39
52
|
}
|
|
40
53
|
return prevPluginState;
|
package/dist/esm/plugin.js
CHANGED
|
@@ -107,7 +107,9 @@ export var collabEditPlugin = function collabEditPlugin(_ref4) {
|
|
|
107
107
|
firstChangeAfterInitAt: null,
|
|
108
108
|
firstContentBodyChangeAfterInitAt: null,
|
|
109
109
|
lastLocalOrganicChangeAt: null,
|
|
110
|
-
lastRemoteOrganicChangeAt: null
|
|
110
|
+
lastRemoteOrganicChangeAt: null,
|
|
111
|
+
lastLocalOrganicBodyChangeAt: null,
|
|
112
|
+
lastRemoteOrganicBodyChangeAt: null
|
|
111
113
|
},
|
|
112
114
|
activeParticipants: undefined,
|
|
113
115
|
sessionId: undefined
|
|
@@ -124,7 +126,9 @@ export var collabEditPlugin = function collabEditPlugin(_ref4) {
|
|
|
124
126
|
firstChangeAfterInitAt: (metadata === null || metadata === void 0 ? void 0 : metadata.firstChangeAfterInitAt) || null,
|
|
125
127
|
firstContentBodyChangeAfterInitAt: (metadata === null || metadata === void 0 ? void 0 : metadata.firstContentBodyChangeAfterInitAt) || null,
|
|
126
128
|
lastLocalOrganicChangeAt: (lastOrganicChangeState === null || lastOrganicChangeState === void 0 ? void 0 : lastOrganicChangeState.lastLocalOrganicChangeAt) || null,
|
|
127
|
-
lastRemoteOrganicChangeAt: (lastOrganicChangeState === null || lastOrganicChangeState === void 0 ? void 0 : lastOrganicChangeState.lastRemoteOrganicChangeAt) || null
|
|
129
|
+
lastRemoteOrganicChangeAt: (lastOrganicChangeState === null || lastOrganicChangeState === void 0 ? void 0 : lastOrganicChangeState.lastRemoteOrganicChangeAt) || null,
|
|
130
|
+
lastLocalOrganicBodyChangeAt: (lastOrganicChangeState === null || lastOrganicChangeState === void 0 ? void 0 : lastOrganicChangeState.lastLocalOrganicBodyChangeAt) || null,
|
|
131
|
+
lastRemoteOrganicBodyChangeAt: (lastOrganicChangeState === null || lastOrganicChangeState === void 0 ? void 0 : lastOrganicChangeState.lastRemoteOrganicBodyChangeAt) || null
|
|
128
132
|
}
|
|
129
133
|
};
|
|
130
134
|
},
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { isDirtyTransaction } from '@atlaskit/editor-common/collab';
|
|
2
2
|
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
3
3
|
import { PluginKey } from '@atlaskit/editor-prosemirror/state';
|
|
4
|
+
import { AddMarkStep } from '@atlaskit/editor-prosemirror/transform';
|
|
4
5
|
import { isOrganicChange } from '../utils';
|
|
5
6
|
export var trackLastOrganicChangePluginKey = new PluginKey('collabTrackLastOrganicChangePlugin');
|
|
6
7
|
export var createPlugin = function createPlugin() {
|
|
@@ -10,7 +11,9 @@ export var createPlugin = function createPlugin() {
|
|
|
10
11
|
init: function init() {
|
|
11
12
|
return {
|
|
12
13
|
lastLocalOrganicChangeAt: null,
|
|
13
|
-
lastRemoteOrganicChangeAt: null
|
|
14
|
+
lastRemoteOrganicChangeAt: null,
|
|
15
|
+
lastLocalOrganicBodyChangeAt: null,
|
|
16
|
+
lastRemoteOrganicBodyChangeAt: null
|
|
14
17
|
};
|
|
15
18
|
},
|
|
16
19
|
apply: function apply(transaction, prevPluginState) {
|
|
@@ -19,6 +22,12 @@ export var createPlugin = function createPlugin() {
|
|
|
19
22
|
}
|
|
20
23
|
var isRemote = Boolean(transaction.getMeta('isRemote'));
|
|
21
24
|
var isDocumentReplaceFromRemote = isRemote && Boolean(transaction.getMeta('replaceDocument'));
|
|
25
|
+
|
|
26
|
+
// Inline comment annotations are not considered as edits to the document body
|
|
27
|
+
var isAnnotationStep = !!transaction.steps.find(function (step) {
|
|
28
|
+
var _step$mark;
|
|
29
|
+
return step instanceof AddMarkStep && ((_step$mark = step.mark) === null || _step$mark === void 0 || (_step$mark = _step$mark.type) === null || _step$mark === void 0 ? void 0 : _step$mark.name) === 'annotation';
|
|
30
|
+
});
|
|
22
31
|
if (isDocumentReplaceFromRemote) {
|
|
23
32
|
return prevPluginState;
|
|
24
33
|
}
|
|
@@ -29,12 +38,16 @@ export var createPlugin = function createPlugin() {
|
|
|
29
38
|
if (isRemote) {
|
|
30
39
|
return {
|
|
31
40
|
lastLocalOrganicChangeAt: prevPluginState.lastLocalOrganicChangeAt,
|
|
32
|
-
lastRemoteOrganicChangeAt: Date.now()
|
|
41
|
+
lastRemoteOrganicChangeAt: Date.now(),
|
|
42
|
+
lastLocalOrganicBodyChangeAt: prevPluginState.lastLocalOrganicBodyChangeAt,
|
|
43
|
+
lastRemoteOrganicBodyChangeAt: isAnnotationStep ? prevPluginState.lastRemoteOrganicBodyChangeAt : Date.now()
|
|
33
44
|
};
|
|
34
45
|
}
|
|
35
46
|
return {
|
|
36
47
|
lastLocalOrganicChangeAt: Date.now(),
|
|
37
|
-
lastRemoteOrganicChangeAt: prevPluginState.lastRemoteOrganicChangeAt
|
|
48
|
+
lastRemoteOrganicChangeAt: prevPluginState.lastRemoteOrganicChangeAt,
|
|
49
|
+
lastLocalOrganicBodyChangeAt: isAnnotationStep ? prevPluginState.lastLocalOrganicBodyChangeAt : Date.now(),
|
|
50
|
+
lastRemoteOrganicBodyChangeAt: prevPluginState.lastRemoteOrganicBodyChangeAt
|
|
38
51
|
};
|
|
39
52
|
}
|
|
40
53
|
return prevPluginState;
|
package/dist/types/types.d.ts
CHANGED
|
@@ -26,6 +26,8 @@ export type CollabInitializedMetadata = {
|
|
|
26
26
|
export type LastOrganicChangeMetadata = {
|
|
27
27
|
lastLocalOrganicChangeAt: null | number;
|
|
28
28
|
lastRemoteOrganicChangeAt: null | number;
|
|
29
|
+
lastLocalOrganicBodyChangeAt: null | number;
|
|
30
|
+
lastRemoteOrganicBodyChangeAt: null | number;
|
|
29
31
|
};
|
|
30
32
|
export type TrackSpammingStepsMetadata = {
|
|
31
33
|
recentTransactionsTimestemps: Map<string, {
|
|
@@ -26,6 +26,8 @@ export type CollabInitializedMetadata = {
|
|
|
26
26
|
export type LastOrganicChangeMetadata = {
|
|
27
27
|
lastLocalOrganicChangeAt: null | number;
|
|
28
28
|
lastRemoteOrganicChangeAt: null | number;
|
|
29
|
+
lastLocalOrganicBodyChangeAt: null | number;
|
|
30
|
+
lastRemoteOrganicBodyChangeAt: null | number;
|
|
29
31
|
};
|
|
30
32
|
export type TrackSpammingStepsMetadata = {
|
|
31
33
|
recentTransactionsTimestemps: Map<string, {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-collab-edit",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.20.0",
|
|
4
4
|
"description": "Collab Edit plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@atlaskit/adf-schema": "^40.9.0",
|
|
35
35
|
"@atlaskit/custom-steps": "^0.7.0",
|
|
36
|
-
"@atlaskit/editor-common": "^
|
|
37
|
-
"@atlaskit/editor-plugin-analytics": "1.8.
|
|
36
|
+
"@atlaskit/editor-common": "^91.0.0",
|
|
37
|
+
"@atlaskit/editor-plugin-analytics": "1.8.8",
|
|
38
38
|
"@atlaskit/editor-plugin-editor-viewmode": "^2.1.0",
|
|
39
39
|
"@atlaskit/editor-plugin-feature-flags": "^1.2.0",
|
|
40
40
|
"@atlaskit/editor-prosemirror": "6.0.0",
|