@atlaskit/editor-plugin-collab-edit 4.0.1 → 4.0.2

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 CHANGED
@@ -1,5 +1,13 @@
1
1
  # @atlaskit/editor-plugin-collab-edit
2
2
 
3
+ ## 4.0.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#183342](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/183342)
8
+ [`2929809030e36`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/2929809030e36) -
9
+ Ensures telepointer selection will continue to show while using AI.
10
+
3
11
  ## 4.0.1
4
12
 
5
13
  ### Patch Changes
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.sendTransaction = void 0;
7
7
  var _steps = require("@atlaskit/adf-schema/steps");
8
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
8
9
  var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
9
10
  var _actions = require("../actions");
10
11
  var _pluginKey = require("../main/plugin-key");
@@ -47,14 +48,33 @@ var sendTransaction = exports.sendTransaction = function sendTransaction(_ref) {
47
48
  sessionId = currentPluginState.sessionId;
48
49
  var selectionChanged = !oldEditorState.selection.eq(newEditorState.selection);
49
50
  var participantsChanged = prevActiveParticipants && !prevActiveParticipants.eq(activeParticipants);
50
- if (sessionId && viewMode === 'edit' && (selectionChanged && !docChangedTransaction || participantsChanged && !hideTelecursorOnLoad)) {
51
- var selection = (0, _actions.getSendableSelection)(newEditorState.selection);
52
- var message = {
53
- type: 'telepointer',
54
- selection: selection,
55
- sessionId: sessionId
56
- };
57
- provider.sendMessage(message);
51
+ if ((0, _platformFeatureFlags.fg)('platform_editor_ai_in_document_streaming')) {
52
+ // uiEvent is standard metdata (docs: https://prosemirror.net/docs/ref/#state.Transaction)
53
+ var isPaste = (docChangedTransaction === null || docChangedTransaction === void 0 ? void 0 : docChangedTransaction.getMeta('uiEvent')) === 'paste';
54
+ if (sessionId && viewMode === 'edit' && (
55
+ // Broadcast the position if the selection has changed, and the doc hasn't changed (it is mapped
56
+ // by the receiver).
57
+ // If we're pasting content though make an exception (as doc has changed)
58
+ // as on a ranged selection it results in not clearing the ranged selection after the paste
59
+ selectionChanged && (!docChangedTransaction || isPaste) || participantsChanged && !hideTelecursorOnLoad)) {
60
+ var selection = (0, _actions.getSendableSelection)(newEditorState.selection);
61
+ var message = {
62
+ type: 'telepointer',
63
+ selection: selection,
64
+ sessionId: sessionId
65
+ };
66
+ provider.sendMessage(message);
67
+ }
68
+ } else {
69
+ if (sessionId && viewMode === 'edit' && (selectionChanged && !docChangedTransaction || participantsChanged && !hideTelecursorOnLoad)) {
70
+ var _selection = (0, _actions.getSendableSelection)(newEditorState.selection);
71
+ var _message = {
72
+ type: 'telepointer',
73
+ selection: _selection,
74
+ sessionId: sessionId
75
+ };
76
+ provider.sendMessage(_message);
77
+ }
58
78
  }
59
79
  };
60
80
  };
@@ -183,25 +183,26 @@ var PluginState = exports.PluginState = /*#__PURE__*/function () {
183
183
  } catch (err) {
184
184
  this.onError(err);
185
185
  }
186
-
187
- // Remove any selection decoration within the change range,
188
- // takes care of the issue when after pasting we end up with a dead selection
189
- tr.steps.filter(_utils.isReplaceStep).forEach(function (s) {
190
- // Ignored via go/ees005
191
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
192
- var _ref2 = s,
193
- from = _ref2.from,
194
- to = _ref2.to;
195
- // Ignored via go/ees005
196
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
197
- _this.decorationSet.find(from, to).forEach(function (deco) {
198
- // `type` is private, `from` and `to` are public in latest version
199
- // `from` != `to` means it's a selection
200
- if (deco.from !== deco.to) {
201
- remove.push(deco);
202
- }
186
+ if (!(0, _platformFeatureFlags.fg)('platform_editor_ai_in_document_streaming')) {
187
+ // Remove any selection decoration within the change range,
188
+ // takes care of the issue when after pasting we end up with a dead selection
189
+ tr.steps.filter(_utils.isReplaceStep).forEach(function (s) {
190
+ // Ignored via go/ees005
191
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
192
+ var _ref2 = s,
193
+ from = _ref2.from,
194
+ to = _ref2.to;
195
+ // Ignored via go/ees005
196
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
197
+ _this.decorationSet.find(from, to).forEach(function (deco) {
198
+ // `type` is private, `from` and `to` are public in latest version
199
+ // `from` != `to` means it's a selection
200
+ if (deco.from !== deco.to) {
201
+ remove.push(deco);
202
+ }
203
+ });
203
204
  });
204
- });
205
+ }
205
206
  }
206
207
  var selection = tr.selection;
207
208
  // Ignored via go/ees005
@@ -19,18 +19,12 @@ var _view = require("@atlaskit/editor-prosemirror/view");
19
19
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
20
20
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
21
21
  var _findPointers = exports._findPointers = function _findPointers(id, decorations) {
22
- return decorations.find()
23
- // Ignored via go/ees005
24
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
25
- .reduce(function (arr, deco) {
22
+ return decorations.find().reduce(function (arr, deco) {
26
23
  return deco.spec.pointer.sessionId === id ? arr.concat(deco) : arr;
27
24
  }, []);
28
25
  };
29
26
  var findPointers = exports.findPointers = function findPointers(id, decorations) {
30
- return decorations.find().reduce(
31
- // Ignored via go/ees005
32
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
33
- function (arr, deco) {
27
+ return decorations.find().reduce(function (arr, deco) {
34
28
  return deco.spec.pointer.presenceId === id ? arr.concat(deco) : arr;
35
29
  }, []);
36
30
  };
@@ -52,10 +46,7 @@ var createTelepointers = exports.createTelepointers = function createTelepointer
52
46
  var color = avatarColor.index.toString();
53
47
  if (isSelection) {
54
48
  var className = "telepointer color-".concat(color, " telepointer-selection");
55
- decorations.push(
56
- // Ignored via go/ees005
57
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
58
- _view.Decoration.inline(from, to, {
49
+ decorations.push(_view.Decoration.inline(from, to, {
59
50
  class: className,
60
51
  'data-initial': initial
61
52
  }, {
@@ -95,28 +86,19 @@ var createTelepointers = exports.createTelepointers = function createTelepointer
95
86
  initialEl.style.backgroundColor = avatarColor.backgroundColor;
96
87
  cursor.appendChild(initialEl);
97
88
  }
98
- return decorations.concat(
99
- // Ignored via go/ees005
100
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
101
- _view.Decoration.widget(to, spaceJoinerAfter, {
89
+ return decorations.concat(_view.Decoration.widget(to, spaceJoinerAfter, {
102
90
  pointer: {
103
91
  sessionId: sessionId,
104
92
  presenceId: presenceId
105
93
  },
106
94
  key: "telepointer-".concat(sessionId, "-zero")
107
- })).concat(
108
- // Ignored via go/ees005
109
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
110
- _view.Decoration.widget(to, cursor, {
95
+ })).concat(_view.Decoration.widget(to, cursor, {
111
96
  pointer: {
112
97
  sessionId: sessionId,
113
98
  presenceId: presenceId
114
99
  },
115
100
  key: "telepointer-".concat(sessionId)
116
- })).concat(
117
- // Ignored via go/ees005
118
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
119
- _view.Decoration.widget(to, spaceJoinerBefore, {
101
+ })).concat(_view.Decoration.widget(to, spaceJoinerBefore, {
120
102
  pointer: {
121
103
  sessionId: sessionId,
122
104
  presenceId: presenceId
@@ -1,4 +1,5 @@
1
1
  import { AnalyticsStep } from '@atlaskit/adf-schema/steps';
2
+ import { fg } from '@atlaskit/platform-feature-flags';
2
3
  import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
3
4
  import { getSendableSelection } from '../actions';
4
5
  import { pluginKey } from '../main/plugin-key';
@@ -42,13 +43,32 @@ export const sendTransaction = ({
42
43
  } = currentPluginState;
43
44
  const selectionChanged = !oldEditorState.selection.eq(newEditorState.selection);
44
45
  const participantsChanged = prevActiveParticipants && !prevActiveParticipants.eq(activeParticipants);
45
- if (sessionId && viewMode === 'edit' && (selectionChanged && !docChangedTransaction || participantsChanged && !hideTelecursorOnLoad)) {
46
- const selection = getSendableSelection(newEditorState.selection);
47
- const message = {
48
- type: 'telepointer',
49
- selection,
50
- sessionId
51
- };
52
- provider.sendMessage(message);
46
+ if (fg('platform_editor_ai_in_document_streaming')) {
47
+ // uiEvent is standard metdata (docs: https://prosemirror.net/docs/ref/#state.Transaction)
48
+ const isPaste = (docChangedTransaction === null || docChangedTransaction === void 0 ? void 0 : docChangedTransaction.getMeta('uiEvent')) === 'paste';
49
+ if (sessionId && viewMode === 'edit' && (
50
+ // Broadcast the position if the selection has changed, and the doc hasn't changed (it is mapped
51
+ // by the receiver).
52
+ // If we're pasting content though make an exception (as doc has changed)
53
+ // as on a ranged selection it results in not clearing the ranged selection after the paste
54
+ selectionChanged && (!docChangedTransaction || isPaste) || participantsChanged && !hideTelecursorOnLoad)) {
55
+ const selection = getSendableSelection(newEditorState.selection);
56
+ const message = {
57
+ type: 'telepointer',
58
+ selection,
59
+ sessionId
60
+ };
61
+ provider.sendMessage(message);
62
+ }
63
+ } else {
64
+ if (sessionId && viewMode === 'edit' && (selectionChanged && !docChangedTransaction || participantsChanged && !hideTelecursorOnLoad)) {
65
+ const selection = getSendableSelection(newEditorState.selection);
66
+ const message = {
67
+ type: 'telepointer',
68
+ selection,
69
+ sessionId
70
+ };
71
+ provider.sendMessage(message);
72
+ }
53
73
  }
54
74
  };
@@ -164,26 +164,27 @@ export class PluginState {
164
164
  } catch (err) {
165
165
  this.onError(err);
166
166
  }
167
-
168
- // Remove any selection decoration within the change range,
169
- // takes care of the issue when after pasting we end up with a dead selection
170
- tr.steps.filter(isReplaceStep).forEach(s => {
171
- // Ignored via go/ees005
172
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
173
- const {
174
- from,
175
- to
176
- } = s;
177
- // Ignored via go/ees005
178
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
179
- this.decorationSet.find(from, to).forEach(deco => {
180
- // `type` is private, `from` and `to` are public in latest version
181
- // `from` != `to` means it's a selection
182
- if (deco.from !== deco.to) {
183
- remove.push(deco);
184
- }
167
+ if (!fg('platform_editor_ai_in_document_streaming')) {
168
+ // Remove any selection decoration within the change range,
169
+ // takes care of the issue when after pasting we end up with a dead selection
170
+ tr.steps.filter(isReplaceStep).forEach(s => {
171
+ // Ignored via go/ees005
172
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
173
+ const {
174
+ from,
175
+ to
176
+ } = s;
177
+ // Ignored via go/ees005
178
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
179
+ this.decorationSet.find(from, to).forEach(deco => {
180
+ // `type` is private, `from` and `to` are public in latest version
181
+ // `from` != `to` means it's a selection
182
+ if (deco.from !== deco.to) {
183
+ remove.push(deco);
184
+ }
185
+ });
185
186
  });
186
- });
187
+ }
187
188
  }
188
189
  const {
189
190
  selection
@@ -8,14 +8,8 @@ import { ReplaceStep } from '@atlaskit/editor-prosemirror/transform';
8
8
  import { Decoration } from '@atlaskit/editor-prosemirror/view';
9
9
  import { getParticipantColor } from '@atlaskit/editor-shared-styles';
10
10
  import { fg } from '@atlaskit/platform-feature-flags';
11
- export const _findPointers = (id, decorations) => decorations.find()
12
- // Ignored via go/ees005
13
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
- .reduce((arr, deco) => deco.spec.pointer.sessionId === id ? arr.concat(deco) : arr, []);
15
- export const findPointers = (id, decorations) => decorations.find().reduce(
16
- // Ignored via go/ees005
17
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
- (arr, deco) => deco.spec.pointer.presenceId === id ? arr.concat(deco) : arr, []);
11
+ export const _findPointers = (id, decorations) => decorations.find().reduce((arr, deco) => deco.spec.pointer.sessionId === id ? arr.concat(deco) : arr, []);
12
+ export const findPointers = (id, decorations) => decorations.find().reduce((arr, deco) => deco.spec.pointer.presenceId === id ? arr.concat(deco) : arr, []);
19
13
  function style(options) {
20
14
  const color = options && options.color || 'black';
21
15
  return `border-right: 2px solid ${color}; margin-right: -2px; z-index: 1`;
@@ -34,10 +28,7 @@ export const createTelepointers = (from, to, sessionId, isSelection, initial, pr
34
28
  const color = avatarColor.index.toString();
35
29
  if (isSelection) {
36
30
  const className = `telepointer color-${color} telepointer-selection`;
37
- decorations.push(
38
- // Ignored via go/ees005
39
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
40
- Decoration.inline(from, to, {
31
+ decorations.push(Decoration.inline(from, to, {
41
32
  class: className,
42
33
  'data-initial': initial
43
34
  }, {
@@ -77,28 +68,19 @@ export const createTelepointers = (from, to, sessionId, isSelection, initial, pr
77
68
  initialEl.style.backgroundColor = avatarColor.backgroundColor;
78
69
  cursor.appendChild(initialEl);
79
70
  }
80
- return decorations.concat(
81
- // Ignored via go/ees005
82
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
83
- Decoration.widget(to, spaceJoinerAfter, {
71
+ return decorations.concat(Decoration.widget(to, spaceJoinerAfter, {
84
72
  pointer: {
85
73
  sessionId,
86
74
  presenceId
87
75
  },
88
76
  key: `telepointer-${sessionId}-zero`
89
- })).concat(
90
- // Ignored via go/ees005
91
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
92
- Decoration.widget(to, cursor, {
77
+ })).concat(Decoration.widget(to, cursor, {
93
78
  pointer: {
94
79
  sessionId,
95
80
  presenceId
96
81
  },
97
82
  key: `telepointer-${sessionId}`
98
- })).concat(
99
- // Ignored via go/ees005
100
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
101
- Decoration.widget(to, spaceJoinerBefore, {
83
+ })).concat(Decoration.widget(to, spaceJoinerBefore, {
102
84
  pointer: {
103
85
  sessionId,
104
86
  presenceId
@@ -1,4 +1,5 @@
1
1
  import { AnalyticsStep } from '@atlaskit/adf-schema/steps';
2
+ import { fg } from '@atlaskit/platform-feature-flags';
2
3
  import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
3
4
  import { getSendableSelection } from '../actions';
4
5
  import { pluginKey } from '../main/plugin-key';
@@ -41,14 +42,33 @@ export var sendTransaction = function sendTransaction(_ref) {
41
42
  sessionId = currentPluginState.sessionId;
42
43
  var selectionChanged = !oldEditorState.selection.eq(newEditorState.selection);
43
44
  var participantsChanged = prevActiveParticipants && !prevActiveParticipants.eq(activeParticipants);
44
- if (sessionId && viewMode === 'edit' && (selectionChanged && !docChangedTransaction || participantsChanged && !hideTelecursorOnLoad)) {
45
- var selection = getSendableSelection(newEditorState.selection);
46
- var message = {
47
- type: 'telepointer',
48
- selection: selection,
49
- sessionId: sessionId
50
- };
51
- provider.sendMessage(message);
45
+ if (fg('platform_editor_ai_in_document_streaming')) {
46
+ // uiEvent is standard metdata (docs: https://prosemirror.net/docs/ref/#state.Transaction)
47
+ var isPaste = (docChangedTransaction === null || docChangedTransaction === void 0 ? void 0 : docChangedTransaction.getMeta('uiEvent')) === 'paste';
48
+ if (sessionId && viewMode === 'edit' && (
49
+ // Broadcast the position if the selection has changed, and the doc hasn't changed (it is mapped
50
+ // by the receiver).
51
+ // If we're pasting content though make an exception (as doc has changed)
52
+ // as on a ranged selection it results in not clearing the ranged selection after the paste
53
+ selectionChanged && (!docChangedTransaction || isPaste) || participantsChanged && !hideTelecursorOnLoad)) {
54
+ var selection = getSendableSelection(newEditorState.selection);
55
+ var message = {
56
+ type: 'telepointer',
57
+ selection: selection,
58
+ sessionId: sessionId
59
+ };
60
+ provider.sendMessage(message);
61
+ }
62
+ } else {
63
+ if (sessionId && viewMode === 'edit' && (selectionChanged && !docChangedTransaction || participantsChanged && !hideTelecursorOnLoad)) {
64
+ var _selection = getSendableSelection(newEditorState.selection);
65
+ var _message = {
66
+ type: 'telepointer',
67
+ selection: _selection,
68
+ sessionId: sessionId
69
+ };
70
+ provider.sendMessage(_message);
71
+ }
52
72
  }
53
73
  };
54
74
  };
@@ -177,25 +177,26 @@ export var PluginState = /*#__PURE__*/function () {
177
177
  } catch (err) {
178
178
  this.onError(err);
179
179
  }
180
-
181
- // Remove any selection decoration within the change range,
182
- // takes care of the issue when after pasting we end up with a dead selection
183
- tr.steps.filter(isReplaceStep).forEach(function (s) {
184
- // Ignored via go/ees005
185
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
186
- var _ref2 = s,
187
- from = _ref2.from,
188
- to = _ref2.to;
189
- // Ignored via go/ees005
190
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
191
- _this.decorationSet.find(from, to).forEach(function (deco) {
192
- // `type` is private, `from` and `to` are public in latest version
193
- // `from` != `to` means it's a selection
194
- if (deco.from !== deco.to) {
195
- remove.push(deco);
196
- }
180
+ if (!fg('platform_editor_ai_in_document_streaming')) {
181
+ // Remove any selection decoration within the change range,
182
+ // takes care of the issue when after pasting we end up with a dead selection
183
+ tr.steps.filter(isReplaceStep).forEach(function (s) {
184
+ // Ignored via go/ees005
185
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
186
+ var _ref2 = s,
187
+ from = _ref2.from,
188
+ to = _ref2.to;
189
+ // Ignored via go/ees005
190
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
191
+ _this.decorationSet.find(from, to).forEach(function (deco) {
192
+ // `type` is private, `from` and `to` are public in latest version
193
+ // `from` != `to` means it's a selection
194
+ if (deco.from !== deco.to) {
195
+ remove.push(deco);
196
+ }
197
+ });
197
198
  });
198
- });
199
+ }
199
200
  }
200
201
  var selection = tr.selection;
201
202
  // Ignored via go/ees005
@@ -10,18 +10,12 @@ import { Decoration } from '@atlaskit/editor-prosemirror/view';
10
10
  import { getParticipantColor } from '@atlaskit/editor-shared-styles';
11
11
  import { fg } from '@atlaskit/platform-feature-flags';
12
12
  export var _findPointers = function _findPointers(id, decorations) {
13
- return decorations.find()
14
- // Ignored via go/ees005
15
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
- .reduce(function (arr, deco) {
13
+ return decorations.find().reduce(function (arr, deco) {
17
14
  return deco.spec.pointer.sessionId === id ? arr.concat(deco) : arr;
18
15
  }, []);
19
16
  };
20
17
  export var findPointers = function findPointers(id, decorations) {
21
- return decorations.find().reduce(
22
- // Ignored via go/ees005
23
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
- function (arr, deco) {
18
+ return decorations.find().reduce(function (arr, deco) {
25
19
  return deco.spec.pointer.presenceId === id ? arr.concat(deco) : arr;
26
20
  }, []);
27
21
  };
@@ -43,10 +37,7 @@ export var createTelepointers = function createTelepointers(from, to, sessionId,
43
37
  var color = avatarColor.index.toString();
44
38
  if (isSelection) {
45
39
  var className = "telepointer color-".concat(color, " telepointer-selection");
46
- decorations.push(
47
- // Ignored via go/ees005
48
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
49
- Decoration.inline(from, to, {
40
+ decorations.push(Decoration.inline(from, to, {
50
41
  class: className,
51
42
  'data-initial': initial
52
43
  }, {
@@ -86,28 +77,19 @@ export var createTelepointers = function createTelepointers(from, to, sessionId,
86
77
  initialEl.style.backgroundColor = avatarColor.backgroundColor;
87
78
  cursor.appendChild(initialEl);
88
79
  }
89
- return decorations.concat(
90
- // Ignored via go/ees005
91
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
92
- Decoration.widget(to, spaceJoinerAfter, {
80
+ return decorations.concat(Decoration.widget(to, spaceJoinerAfter, {
93
81
  pointer: {
94
82
  sessionId: sessionId,
95
83
  presenceId: presenceId
96
84
  },
97
85
  key: "telepointer-".concat(sessionId, "-zero")
98
- })).concat(
99
- // Ignored via go/ees005
100
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
101
- Decoration.widget(to, cursor, {
86
+ })).concat(Decoration.widget(to, cursor, {
102
87
  pointer: {
103
88
  sessionId: sessionId,
104
89
  presenceId: presenceId
105
90
  },
106
91
  key: "telepointer-".concat(sessionId)
107
- })).concat(
108
- // Ignored via go/ees005
109
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
110
- Decoration.widget(to, spaceJoinerBefore, {
92
+ })).concat(Decoration.widget(to, spaceJoinerBefore, {
111
93
  pointer: {
112
94
  sessionId: sessionId,
113
95
  presenceId: presenceId
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-collab-edit",
3
- "version": "4.0.1",
3
+ "version": "4.0.2",
4
4
  "description": "Collab Edit plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -42,7 +42,7 @@
42
42
  "@atlaskit/frontend-utilities": "^3.1.0",
43
43
  "@atlaskit/platform-feature-flags": "^1.1.0",
44
44
  "@atlaskit/prosemirror-collab": "^0.17.0",
45
- "@atlaskit/tmp-editor-statsig": "^9.0.0",
45
+ "@atlaskit/tmp-editor-statsig": "^9.2.0",
46
46
  "@babel/runtime": "^7.0.0",
47
47
  "memoize-one": "^6.0.0"
48
48
  },
@@ -107,6 +107,9 @@
107
107
  "confluence_team_presence_scroll_to_pointer": {
108
108
  "type": "boolean"
109
109
  },
110
+ "platform_editor_ai_in_document_streaming": {
111
+ "type": "boolean"
112
+ },
110
113
  "platform_enable_ncs_step_metrics": {
111
114
  "type": "boolean"
112
115
  }