@atlaskit/editor-plugin-collab-edit 3.2.5 → 3.3.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 CHANGED
@@ -1,5 +1,14 @@
1
1
  # @atlaskit/editor-plugin-collab-edit
2
2
 
3
+ ## 3.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#136936](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/136936)
8
+ [`505147cb14bae`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/505147cb14bae) -
9
+ [ux] [ED-27431] Do not transmit telecursor position on initial load of non-empty live pages when
10
+ hideTelecursorOnLoad is set.
11
+
3
12
  ## 3.2.5
4
13
 
5
14
  ### Patch Changes
@@ -10,6 +10,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
10
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
12
  var _analytics = require("@atlaskit/editor-common/analytics");
13
+ var _utils = require("@atlaskit/editor-common/utils");
13
14
  var _editorJsonTransformer = require("@atlaskit/editor-json-transformer");
14
15
  var _transform = require("@atlaskit/editor-prosemirror/transform");
15
16
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
@@ -25,7 +26,7 @@ var _trackLastOrganicChange = require("./pm-plugins/track-last-organic-change");
25
26
  var _trackNcsInitialization = require("./pm-plugins/track-ncs-initialization");
26
27
  var _trackReconnectionConflict = require("./pm-plugins/track-reconnection-conflict");
27
28
  var _trackSteps = require("./pm-plugins/track-steps");
28
- var _utils = require("./pm-plugins/utils");
29
+ var _utils2 = require("./pm-plugins/utils");
29
30
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
30
31
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
31
32
  var providerBuilder = function providerBuilder(collabEditProviderPromise) {
@@ -149,7 +150,7 @@ var collabEditPlugin = exports.collabEditPlugin = function collabEditPlugin(_ref
149
150
  };
150
151
  },
151
152
  actions: {
152
- getAvatarColor: _utils.getAvatarColor,
153
+ getAvatarColor: _utils2.getAvatarColor,
153
154
  addInlineCommentMark: createAddInlineCommentMark(collabEditProviderPromise),
154
155
  addInlineCommentNodeMark: createAddInlineCommentNodeMark(collabEditProviderPromise),
155
156
  isRemoteReplaceDocumentTransaction: function isRemoteReplaceDocumentTransaction(tr) {
@@ -260,15 +261,17 @@ var collabEditPlugin = exports.collabEditPlugin = function collabEditPlugin(_ref
260
261
  return plugins;
261
262
  },
262
263
  onEditorViewStateUpdated: function onEditorViewStateUpdated(props) {
263
- var _api$analytics2, _api$editorViewMode, _options$useNativePlu;
264
+ var _api$analytics2, _api$editorViewMode, _options$useNativePlu, _options$hideTelecurs;
264
265
  var addErrorAnalytics = (0, _analytics2.addSynchronyErrorAnalytics)(props.newEditorState, props.newEditorState.tr, featureFlags, api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions);
266
+ var isEmptyDoc = (0, _utils.isEmptyDocument)(props.newEditorState.doc);
265
267
  var viewMode = api === null || api === void 0 || (_api$editorViewMode = api.editorViewMode) === null || _api$editorViewMode === void 0 || (_api$editorViewMode = _api$editorViewMode.sharedState.currentState()) === null || _api$editorViewMode === void 0 ? void 0 : _api$editorViewMode.mode;
266
268
  executeProviderCode((0, _sendTransaction.sendTransaction)({
267
269
  originalTransaction: props.originalTransaction,
268
270
  transactions: props.transactions,
269
271
  oldEditorState: props.oldEditorState,
270
272
  newEditorState: props.newEditorState,
271
- useNativePlugin: (_options$useNativePlu = options === null || options === void 0 ? void 0 : options.useNativePlugin) !== null && _options$useNativePlu !== void 0 ? _options$useNativePlu : false,
273
+ useNativePlugin: (_options$useNativePlu = options.useNativePlugin) !== null && _options$useNativePlu !== void 0 ? _options$useNativePlu : false,
274
+ hideTelecursorOnLoad: !isEmptyDoc && ((_options$hideTelecurs = options.hideTelecursorOnLoad) !== null && _options$hideTelecurs !== void 0 ? _options$hideTelecurs : false),
272
275
  viewMode: viewMode
273
276
  }), addErrorAnalytics);
274
277
  (0, _trackSteps.track)(_objectSpread(_objectSpread({}, props), {}, {
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.sendTransaction = void 0;
7
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
7
8
  var _actions = require("../actions");
8
9
  var _pluginKey = require("../main/plugin-key");
9
10
  var sendTransaction = exports.sendTransaction = function sendTransaction(_ref) {
@@ -12,7 +13,8 @@ var sendTransaction = exports.sendTransaction = function sendTransaction(_ref) {
12
13
  oldEditorState = _ref.oldEditorState,
13
14
  newEditorState = _ref.newEditorState,
14
15
  useNativePlugin = _ref.useNativePlugin,
15
- viewMode = _ref.viewMode;
16
+ viewMode = _ref.viewMode,
17
+ hideTelecursorOnLoad = _ref.hideTelecursorOnLoad;
16
18
  return function (provider) {
17
19
  var docChangedTransaction = transactions.find(function (tr) {
18
20
  return tr.docChanged;
@@ -35,7 +37,7 @@ var sendTransaction = exports.sendTransaction = function sendTransaction(_ref) {
35
37
  sessionId = currentPluginState.sessionId;
36
38
  var selectionChanged = !oldEditorState.selection.eq(newEditorState.selection);
37
39
  var participantsChanged = prevActiveParticipants && !prevActiveParticipants.eq(activeParticipants);
38
- if (sessionId && viewMode === 'edit' && (selectionChanged && !docChangedTransaction || participantsChanged)) {
40
+ if (sessionId && viewMode === 'edit' && (selectionChanged && !docChangedTransaction || ((0, _platformFeatureFlags.fg)('platform_editor_no_telecursor_on_live_doc_init') ? participantsChanged && !hideTelecursorOnLoad : participantsChanged))) {
39
41
  var selection = (0, _actions.getSendableSelection)(newEditorState.selection);
40
42
  var message = {
41
43
  type: 'telepointer',
@@ -1,4 +1,5 @@
1
1
  import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
2
+ import { isEmptyDocument } from '@atlaskit/editor-common/utils';
2
3
  import { JSONTransformer } from '@atlaskit/editor-json-transformer';
3
4
  import { AddMarkStep, AddNodeMarkStep } from '@atlaskit/editor-prosemirror/transform';
4
5
  import { fg } from '@atlaskit/platform-feature-flags';
@@ -206,15 +207,17 @@ export const collabEditPlugin = ({
206
207
  return plugins;
207
208
  },
208
209
  onEditorViewStateUpdated(props) {
209
- var _api$analytics2, _api$editorViewMode, _api$editorViewMode$s, _options$useNativePlu;
210
+ var _api$analytics2, _api$editorViewMode, _api$editorViewMode$s, _options$useNativePlu, _options$hideTelecurs;
210
211
  const addErrorAnalytics = addSynchronyErrorAnalytics(props.newEditorState, props.newEditorState.tr, featureFlags, api === null || api === void 0 ? void 0 : (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions);
212
+ const isEmptyDoc = isEmptyDocument(props.newEditorState.doc);
211
213
  const viewMode = api === null || api === void 0 ? void 0 : (_api$editorViewMode = api.editorViewMode) === null || _api$editorViewMode === void 0 ? void 0 : (_api$editorViewMode$s = _api$editorViewMode.sharedState.currentState()) === null || _api$editorViewMode$s === void 0 ? void 0 : _api$editorViewMode$s.mode;
212
214
  executeProviderCode(sendTransaction({
213
215
  originalTransaction: props.originalTransaction,
214
216
  transactions: props.transactions,
215
217
  oldEditorState: props.oldEditorState,
216
218
  newEditorState: props.newEditorState,
217
- useNativePlugin: (_options$useNativePlu = options === null || options === void 0 ? void 0 : options.useNativePlugin) !== null && _options$useNativePlu !== void 0 ? _options$useNativePlu : false,
219
+ useNativePlugin: (_options$useNativePlu = options.useNativePlugin) !== null && _options$useNativePlu !== void 0 ? _options$useNativePlu : false,
220
+ hideTelecursorOnLoad: !isEmptyDoc && ((_options$hideTelecurs = options.hideTelecursorOnLoad) !== null && _options$hideTelecurs !== void 0 ? _options$hideTelecurs : false),
218
221
  viewMode
219
222
  }), addErrorAnalytics);
220
223
  track({
@@ -1,3 +1,4 @@
1
+ import { fg } from '@atlaskit/platform-feature-flags';
1
2
  import { getSendableSelection } from '../actions';
2
3
  import { pluginKey } from '../main/plugin-key';
3
4
  export const sendTransaction = ({
@@ -6,7 +7,8 @@ export const sendTransaction = ({
6
7
  oldEditorState,
7
8
  newEditorState,
8
9
  useNativePlugin,
9
- viewMode
10
+ viewMode,
11
+ hideTelecursorOnLoad
10
12
  }) => provider => {
11
13
  const docChangedTransaction = transactions.find(tr => tr.docChanged);
12
14
  const currentPluginState = pluginKey.getState(newEditorState);
@@ -30,7 +32,7 @@ export const sendTransaction = ({
30
32
  } = currentPluginState;
31
33
  const selectionChanged = !oldEditorState.selection.eq(newEditorState.selection);
32
34
  const participantsChanged = prevActiveParticipants && !prevActiveParticipants.eq(activeParticipants);
33
- if (sessionId && viewMode === 'edit' && (selectionChanged && !docChangedTransaction || participantsChanged)) {
35
+ if (sessionId && viewMode === 'edit' && (selectionChanged && !docChangedTransaction || (fg('platform_editor_no_telecursor_on_live_doc_init') ? participantsChanged && !hideTelecursorOnLoad : participantsChanged))) {
34
36
  const selection = getSendableSelection(newEditorState.selection);
35
37
  const message = {
36
38
  type: 'telepointer',
@@ -5,6 +5,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
5
5
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
6
  import _regeneratorRuntime from "@babel/runtime/regenerator";
7
7
  import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
8
+ import { isEmptyDocument } from '@atlaskit/editor-common/utils';
8
9
  import { JSONTransformer } from '@atlaskit/editor-json-transformer';
9
10
  import { AddMarkStep, AddNodeMarkStep } from '@atlaskit/editor-prosemirror/transform';
10
11
  import { fg } from '@atlaskit/platform-feature-flags';
@@ -253,15 +254,17 @@ export var collabEditPlugin = function collabEditPlugin(_ref4) {
253
254
  return plugins;
254
255
  },
255
256
  onEditorViewStateUpdated: function onEditorViewStateUpdated(props) {
256
- var _api$analytics2, _api$editorViewMode, _options$useNativePlu;
257
+ var _api$analytics2, _api$editorViewMode, _options$useNativePlu, _options$hideTelecurs;
257
258
  var addErrorAnalytics = addSynchronyErrorAnalytics(props.newEditorState, props.newEditorState.tr, featureFlags, api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions);
259
+ var isEmptyDoc = isEmptyDocument(props.newEditorState.doc);
258
260
  var viewMode = api === null || api === void 0 || (_api$editorViewMode = api.editorViewMode) === null || _api$editorViewMode === void 0 || (_api$editorViewMode = _api$editorViewMode.sharedState.currentState()) === null || _api$editorViewMode === void 0 ? void 0 : _api$editorViewMode.mode;
259
261
  executeProviderCode(sendTransaction({
260
262
  originalTransaction: props.originalTransaction,
261
263
  transactions: props.transactions,
262
264
  oldEditorState: props.oldEditorState,
263
265
  newEditorState: props.newEditorState,
264
- useNativePlugin: (_options$useNativePlu = options === null || options === void 0 ? void 0 : options.useNativePlugin) !== null && _options$useNativePlu !== void 0 ? _options$useNativePlu : false,
266
+ useNativePlugin: (_options$useNativePlu = options.useNativePlugin) !== null && _options$useNativePlu !== void 0 ? _options$useNativePlu : false,
267
+ hideTelecursorOnLoad: !isEmptyDoc && ((_options$hideTelecurs = options.hideTelecursorOnLoad) !== null && _options$hideTelecurs !== void 0 ? _options$hideTelecurs : false),
265
268
  viewMode: viewMode
266
269
  }), addErrorAnalytics);
267
270
  track(_objectSpread(_objectSpread({}, props), {}, {
@@ -1,3 +1,4 @@
1
+ import { fg } from '@atlaskit/platform-feature-flags';
1
2
  import { getSendableSelection } from '../actions';
2
3
  import { pluginKey } from '../main/plugin-key';
3
4
  export var sendTransaction = function sendTransaction(_ref) {
@@ -6,7 +7,8 @@ export var sendTransaction = function sendTransaction(_ref) {
6
7
  oldEditorState = _ref.oldEditorState,
7
8
  newEditorState = _ref.newEditorState,
8
9
  useNativePlugin = _ref.useNativePlugin,
9
- viewMode = _ref.viewMode;
10
+ viewMode = _ref.viewMode,
11
+ hideTelecursorOnLoad = _ref.hideTelecursorOnLoad;
10
12
  return function (provider) {
11
13
  var docChangedTransaction = transactions.find(function (tr) {
12
14
  return tr.docChanged;
@@ -29,7 +31,7 @@ export var sendTransaction = function sendTransaction(_ref) {
29
31
  sessionId = currentPluginState.sessionId;
30
32
  var selectionChanged = !oldEditorState.selection.eq(newEditorState.selection);
31
33
  var participantsChanged = prevActiveParticipants && !prevActiveParticipants.eq(activeParticipants);
32
- if (sessionId && viewMode === 'edit' && (selectionChanged && !docChangedTransaction || participantsChanged)) {
34
+ if (sessionId && viewMode === 'edit' && (selectionChanged && !docChangedTransaction || (fg('platform_editor_no_telecursor_on_live_doc_init') ? participantsChanged && !hideTelecursorOnLoad : participantsChanged))) {
33
35
  var selection = getSendableSelection(newEditorState.selection);
34
36
  var message = {
35
37
  type: 'telepointer',
@@ -1,4 +1,5 @@
1
1
  import type { CollabEditProvider } from '@atlaskit/editor-common/collab';
2
+ import { ViewMode } from '@atlaskit/editor-plugin-editor-viewmode';
2
3
  import type { EditorState, Transaction } from '@atlaskit/editor-prosemirror/state';
3
4
  type Props = {
4
5
  originalTransaction: Readonly<Transaction>;
@@ -6,7 +7,8 @@ type Props = {
6
7
  oldEditorState: EditorState;
7
8
  newEditorState: EditorState;
8
9
  useNativePlugin: boolean;
9
- viewMode?: 'view' | 'edit';
10
+ hideTelecursorOnLoad: boolean;
11
+ viewMode?: ViewMode;
10
12
  };
11
- export declare const sendTransaction: ({ originalTransaction, transactions, oldEditorState, newEditorState, useNativePlugin, viewMode, }: Props) => (provider: CollabEditProvider) => void;
13
+ export declare const sendTransaction: ({ originalTransaction, transactions, oldEditorState, newEditorState, useNativePlugin, viewMode, hideTelecursorOnLoad, }: Props) => (provider: CollabEditProvider) => void;
12
14
  export {};
@@ -4,6 +4,7 @@ import type { Transaction } from '@atlaskit/editor-prosemirror/state';
4
4
  export type PrivateCollabEditOptions = CollabEditOptions & {
5
5
  sanitizePrivateContent?: boolean;
6
6
  onSyncUpError?: SyncUpErrorFunction;
7
+ hideTelecursorOnLoad?: boolean;
7
8
  };
8
9
  export type ProviderCallback = <ReturnType>(codeToExecute: (provider: CollabEditProvider) => ReturnType | undefined, onError?: (err: Error) => void) => Promise<ReturnType | undefined> | undefined;
9
10
  export type ProviderBuilder = (collabEditProviderPromise: Promise<CollabEditProvider>) => ProviderCallback;
@@ -1,4 +1,5 @@
1
1
  import type { CollabEditProvider } from '@atlaskit/editor-common/collab';
2
+ import { ViewMode } from '@atlaskit/editor-plugin-editor-viewmode';
2
3
  import type { EditorState, Transaction } from '@atlaskit/editor-prosemirror/state';
3
4
  type Props = {
4
5
  originalTransaction: Readonly<Transaction>;
@@ -6,7 +7,8 @@ type Props = {
6
7
  oldEditorState: EditorState;
7
8
  newEditorState: EditorState;
8
9
  useNativePlugin: boolean;
9
- viewMode?: 'view' | 'edit';
10
+ hideTelecursorOnLoad: boolean;
11
+ viewMode?: ViewMode;
10
12
  };
11
- export declare const sendTransaction: ({ originalTransaction, transactions, oldEditorState, newEditorState, useNativePlugin, viewMode, }: Props) => (provider: CollabEditProvider) => void;
13
+ export declare const sendTransaction: ({ originalTransaction, transactions, oldEditorState, newEditorState, useNativePlugin, viewMode, hideTelecursorOnLoad, }: Props) => (provider: CollabEditProvider) => void;
12
14
  export {};
@@ -4,6 +4,7 @@ import type { Transaction } from '@atlaskit/editor-prosemirror/state';
4
4
  export type PrivateCollabEditOptions = CollabEditOptions & {
5
5
  sanitizePrivateContent?: boolean;
6
6
  onSyncUpError?: SyncUpErrorFunction;
7
+ hideTelecursorOnLoad?: boolean;
7
8
  };
8
9
  export type ProviderCallback = <ReturnType>(codeToExecute: (provider: CollabEditProvider) => ReturnType | undefined, onError?: (err: Error) => void) => Promise<ReturnType | undefined> | undefined;
9
10
  export type ProviderBuilder = (collabEditProviderPromise: Promise<CollabEditProvider>) => ProviderCallback;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-collab-edit",
3
- "version": "3.2.5",
3
+ "version": "3.3.0",
4
4
  "description": "Collab Edit plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -114,6 +114,9 @@
114
114
  },
115
115
  "platform_editor_selection_without_left_shift": {
116
116
  "type": "boolean"
117
+ },
118
+ "platform_editor_no_telecursor_on_live_doc_init": {
119
+ "type": "boolean"
117
120
  }
118
121
  }
119
122
  }