@atlaskit/editor-plugin-collab-edit 3.1.0 → 3.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @atlaskit/editor-plugin-collab-edit
2
2
 
3
+ ## 3.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#120472](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/120472)
8
+ [`73c800ab5f2fc`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/73c800ab5f2fc) -
9
+ ED-26766 update adf-schema from 47.2.1 to 47.6.0 and adf-schema-json from 1.27.0 to 1.31.0
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies
14
+
15
+ ## 3.1.1
16
+
17
+ ### Patch Changes
18
+
19
+ - [#120905](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/120905)
20
+ [`4194ea903d7d6`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/4194ea903d7d6) -
21
+ Refactor step merging while offline.
22
+
3
23
  ## 3.1.0
4
24
 
5
25
  ### Minor Changes
@@ -5,38 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.mergeUnconfirmedSteps = mergeUnconfirmedSteps;
8
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
9
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
10
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
11
8
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
- var _transform = require("@atlaskit/editor-prosemirror/transform");
14
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
15
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
16
- function isLockable(step) {
17
- return (step === null || step === void 0 ? void 0 : step.lockStep) !== undefined;
18
- }
19
- var createLockableProseMirrorStep = function createLockableProseMirrorStep(step) {
20
- var stepIsLocked = false;
21
- if (isLockable(step)) {
22
- return step;
23
- }
24
- return new Proxy(step, {
25
- get: function get(target, prop, receiver) {
26
- if (prop === 'lockStep') {
27
- return function () {
28
- stepIsLocked = true;
29
- };
30
- } else if (prop === 'isLocked') {
31
- return function () {
32
- return stepIsLocked;
33
- };
34
- }
35
- return Reflect.get(target, prop, receiver);
36
- }
37
- });
38
- };
39
-
10
+ var _state = require("@atlaskit/editor-prosemirror/state");
40
11
  // Based on: `packages/editor/prosemirror-collab/src/index.ts`
41
12
  var LockableRebaseable = /*#__PURE__*/(0, _createClass2.default)(function LockableRebaseable(step, inverted, origin) {
42
13
  (0, _classCallCheck2.default)(this, LockableRebaseable);
@@ -44,14 +15,13 @@ var LockableRebaseable = /*#__PURE__*/(0, _createClass2.default)(function Lockab
44
15
  this.inverted = inverted;
45
16
  this.origin = origin;
46
17
  });
47
- var LockableProseMirrorStep = /*#__PURE__*/function (_ProseMirrorStep) {
48
- function LockableProseMirrorStep() {
49
- (0, _classCallCheck2.default)(this, LockableProseMirrorStep);
50
- return _callSuper(this, LockableProseMirrorStep, arguments);
18
+ var isLocked = function isLocked(step) {
19
+ if (step.origin instanceof _state.Transaction) {
20
+ return step.origin.getMeta('mergeIsLocked');
51
21
  }
52
- (0, _inherits2.default)(LockableProseMirrorStep, _ProseMirrorStep);
53
- return (0, _createClass2.default)(LockableProseMirrorStep);
54
- }(_transform.Step);
22
+ return false;
23
+ };
24
+
55
25
  /**
56
26
  * Merge a set of steps together to reduce the total number of steps stored in memory.
57
27
  *
@@ -64,9 +34,10 @@ var LockableProseMirrorStep = /*#__PURE__*/function (_ProseMirrorStep) {
64
34
  */
65
35
  function mergeUnconfirmedSteps(steps, api) {
66
36
  var mergedSteps = steps.reduce(function (acc, rebaseable) {
67
- var _api$connectivity, _lastStep$step$isLock, _lastStep$step, _rebaseable$step$isLo, _rebaseable$step;
37
+ var _api$connectivity;
68
38
  var lastStep = acc[acc.length - 1];
69
- if ((api === null || api === void 0 || (_api$connectivity = api.connectivity) === null || _api$connectivity === void 0 || (_api$connectivity = _api$connectivity.sharedState.currentState()) === null || _api$connectivity === void 0 ? void 0 : _api$connectivity.mode) === 'offline' && lastStep && ((_lastStep$step$isLock = (_lastStep$step = lastStep.step).isLocked) === null || _lastStep$step$isLock === void 0 ? void 0 : _lastStep$step$isLock.call(_lastStep$step)) !== true && ((_rebaseable$step$isLo = (_rebaseable$step = rebaseable.step).isLocked) === null || _rebaseable$step$isLo === void 0 ? void 0 : _rebaseable$step$isLo.call(_rebaseable$step)) !== true) {
39
+ var isOffline = (api === null || api === void 0 || (_api$connectivity = api.connectivity) === null || _api$connectivity === void 0 || (_api$connectivity = _api$connectivity.sharedState.currentState()) === null || _api$connectivity === void 0 ? void 0 : _api$connectivity.mode) === 'offline';
40
+ if (isOffline && lastStep && !isLocked(lastStep) && !isLocked(rebaseable)) {
70
41
  var mergedStep = lastStep.step.merge(rebaseable.step);
71
42
  var _inverted = rebaseable.inverted.merge(lastStep.inverted);
72
43
  // Always take the origin of the new step.
@@ -75,11 +46,11 @@ function mergeUnconfirmedSteps(steps, api) {
75
46
  // As we want to wait until all the transactions have been pushed through
76
47
  var _origin = lastStep.origin;
77
48
  if (mergedStep && _inverted) {
78
- acc[acc.length - 1] = new LockableRebaseable(createLockableProseMirrorStep(mergedStep), _inverted, _origin);
49
+ acc[acc.length - 1] = new LockableRebaseable(mergedStep, _inverted, _origin instanceof _state.Transaction ? _origin.setMeta('isOffline', isOffline) : _origin);
79
50
  return acc;
80
51
  }
81
52
  }
82
- return acc.concat(new LockableRebaseable(createLockableProseMirrorStep(rebaseable.step), rebaseable.inverted, rebaseable.origin));
53
+ return acc.concat(new LockableRebaseable(rebaseable.step, rebaseable.inverted, rebaseable.origin instanceof _state.Transaction ? rebaseable.origin.setMeta('isOffline', isOffline) : rebaseable.origin));
83
54
  }, []);
84
55
  return mergedSteps;
85
56
  }
@@ -1,28 +1,4 @@
1
- import { Step as ProseMirrorStep } from '@atlaskit/editor-prosemirror/transform';
2
- function isLockable(step) {
3
- return (step === null || step === void 0 ? void 0 : step.lockStep) !== undefined;
4
- }
5
- const createLockableProseMirrorStep = step => {
6
- let stepIsLocked = false;
7
- if (isLockable(step)) {
8
- return step;
9
- }
10
- return new Proxy(step, {
11
- get(target, prop, receiver) {
12
- if (prop === 'lockStep') {
13
- return () => {
14
- stepIsLocked = true;
15
- };
16
- } else if (prop === 'isLocked') {
17
- return () => {
18
- return stepIsLocked;
19
- };
20
- }
21
- return Reflect.get(target, prop, receiver);
22
- }
23
- });
24
- };
25
-
1
+ import { Transaction } from '@atlaskit/editor-prosemirror/state';
26
2
  // Based on: `packages/editor/prosemirror-collab/src/index.ts`
27
3
  class LockableRebaseable {
28
4
  constructor(step, inverted, origin) {
@@ -31,7 +7,12 @@ class LockableRebaseable {
31
7
  this.origin = origin;
32
8
  }
33
9
  }
34
- class LockableProseMirrorStep extends ProseMirrorStep {}
10
+ const isLocked = step => {
11
+ if (step.origin instanceof Transaction) {
12
+ return step.origin.getMeta('mergeIsLocked');
13
+ }
14
+ return false;
15
+ };
35
16
 
36
17
  /**
37
18
  * Merge a set of steps together to reduce the total number of steps stored in memory.
@@ -45,9 +26,10 @@ class LockableProseMirrorStep extends ProseMirrorStep {}
45
26
  */
46
27
  export function mergeUnconfirmedSteps(steps, api) {
47
28
  const mergedSteps = steps.reduce((acc, rebaseable) => {
48
- var _api$connectivity, _api$connectivity$sha, _lastStep$step$isLock, _lastStep$step, _rebaseable$step$isLo, _rebaseable$step;
29
+ var _api$connectivity, _api$connectivity$sha;
49
30
  const lastStep = acc[acc.length - 1];
50
- if ((api === null || api === void 0 ? void 0 : (_api$connectivity = api.connectivity) === null || _api$connectivity === void 0 ? void 0 : (_api$connectivity$sha = _api$connectivity.sharedState.currentState()) === null || _api$connectivity$sha === void 0 ? void 0 : _api$connectivity$sha.mode) === 'offline' && lastStep && ((_lastStep$step$isLock = (_lastStep$step = lastStep.step).isLocked) === null || _lastStep$step$isLock === void 0 ? void 0 : _lastStep$step$isLock.call(_lastStep$step)) !== true && ((_rebaseable$step$isLo = (_rebaseable$step = rebaseable.step).isLocked) === null || _rebaseable$step$isLo === void 0 ? void 0 : _rebaseable$step$isLo.call(_rebaseable$step)) !== true) {
31
+ const isOffline = (api === null || api === void 0 ? void 0 : (_api$connectivity = api.connectivity) === null || _api$connectivity === void 0 ? void 0 : (_api$connectivity$sha = _api$connectivity.sharedState.currentState()) === null || _api$connectivity$sha === void 0 ? void 0 : _api$connectivity$sha.mode) === 'offline';
32
+ if (isOffline && lastStep && !isLocked(lastStep) && !isLocked(rebaseable)) {
51
33
  const mergedStep = lastStep.step.merge(rebaseable.step);
52
34
  const inverted = rebaseable.inverted.merge(lastStep.inverted);
53
35
  // Always take the origin of the new step.
@@ -56,11 +38,11 @@ export function mergeUnconfirmedSteps(steps, api) {
56
38
  // As we want to wait until all the transactions have been pushed through
57
39
  const origin = lastStep.origin;
58
40
  if (mergedStep && inverted) {
59
- acc[acc.length - 1] = new LockableRebaseable(createLockableProseMirrorStep(mergedStep), inverted, origin);
41
+ acc[acc.length - 1] = new LockableRebaseable(mergedStep, inverted, origin instanceof Transaction ? origin.setMeta('isOffline', isOffline) : origin);
60
42
  return acc;
61
43
  }
62
44
  }
63
- return acc.concat(new LockableRebaseable(createLockableProseMirrorStep(rebaseable.step), rebaseable.inverted, rebaseable.origin));
45
+ return acc.concat(new LockableRebaseable(rebaseable.step, rebaseable.inverted, rebaseable.origin instanceof Transaction ? rebaseable.origin.setMeta('isOffline', isOffline) : rebaseable.origin));
64
46
  }, []);
65
47
  return mergedSteps;
66
48
  }
@@ -1,35 +1,6 @@
1
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
2
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
3
- import _inherits from "@babel/runtime/helpers/inherits";
4
1
  import _createClass from "@babel/runtime/helpers/createClass";
5
2
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
6
- function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
7
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
8
- import { Step as ProseMirrorStep } from '@atlaskit/editor-prosemirror/transform';
9
- function isLockable(step) {
10
- return (step === null || step === void 0 ? void 0 : step.lockStep) !== undefined;
11
- }
12
- var createLockableProseMirrorStep = function createLockableProseMirrorStep(step) {
13
- var stepIsLocked = false;
14
- if (isLockable(step)) {
15
- return step;
16
- }
17
- return new Proxy(step, {
18
- get: function get(target, prop, receiver) {
19
- if (prop === 'lockStep') {
20
- return function () {
21
- stepIsLocked = true;
22
- };
23
- } else if (prop === 'isLocked') {
24
- return function () {
25
- return stepIsLocked;
26
- };
27
- }
28
- return Reflect.get(target, prop, receiver);
29
- }
30
- });
31
- };
32
-
3
+ import { Transaction } from '@atlaskit/editor-prosemirror/state';
33
4
  // Based on: `packages/editor/prosemirror-collab/src/index.ts`
34
5
  var LockableRebaseable = /*#__PURE__*/_createClass(function LockableRebaseable(step, inverted, origin) {
35
6
  _classCallCheck(this, LockableRebaseable);
@@ -37,14 +8,13 @@ var LockableRebaseable = /*#__PURE__*/_createClass(function LockableRebaseable(s
37
8
  this.inverted = inverted;
38
9
  this.origin = origin;
39
10
  });
40
- var LockableProseMirrorStep = /*#__PURE__*/function (_ProseMirrorStep) {
41
- function LockableProseMirrorStep() {
42
- _classCallCheck(this, LockableProseMirrorStep);
43
- return _callSuper(this, LockableProseMirrorStep, arguments);
11
+ var isLocked = function isLocked(step) {
12
+ if (step.origin instanceof Transaction) {
13
+ return step.origin.getMeta('mergeIsLocked');
44
14
  }
45
- _inherits(LockableProseMirrorStep, _ProseMirrorStep);
46
- return _createClass(LockableProseMirrorStep);
47
- }(ProseMirrorStep);
15
+ return false;
16
+ };
17
+
48
18
  /**
49
19
  * Merge a set of steps together to reduce the total number of steps stored in memory.
50
20
  *
@@ -57,9 +27,10 @@ var LockableProseMirrorStep = /*#__PURE__*/function (_ProseMirrorStep) {
57
27
  */
58
28
  export function mergeUnconfirmedSteps(steps, api) {
59
29
  var mergedSteps = steps.reduce(function (acc, rebaseable) {
60
- var _api$connectivity, _lastStep$step$isLock, _lastStep$step, _rebaseable$step$isLo, _rebaseable$step;
30
+ var _api$connectivity;
61
31
  var lastStep = acc[acc.length - 1];
62
- if ((api === null || api === void 0 || (_api$connectivity = api.connectivity) === null || _api$connectivity === void 0 || (_api$connectivity = _api$connectivity.sharedState.currentState()) === null || _api$connectivity === void 0 ? void 0 : _api$connectivity.mode) === 'offline' && lastStep && ((_lastStep$step$isLock = (_lastStep$step = lastStep.step).isLocked) === null || _lastStep$step$isLock === void 0 ? void 0 : _lastStep$step$isLock.call(_lastStep$step)) !== true && ((_rebaseable$step$isLo = (_rebaseable$step = rebaseable.step).isLocked) === null || _rebaseable$step$isLo === void 0 ? void 0 : _rebaseable$step$isLo.call(_rebaseable$step)) !== true) {
32
+ var isOffline = (api === null || api === void 0 || (_api$connectivity = api.connectivity) === null || _api$connectivity === void 0 || (_api$connectivity = _api$connectivity.sharedState.currentState()) === null || _api$connectivity === void 0 ? void 0 : _api$connectivity.mode) === 'offline';
33
+ if (isOffline && lastStep && !isLocked(lastStep) && !isLocked(rebaseable)) {
63
34
  var mergedStep = lastStep.step.merge(rebaseable.step);
64
35
  var _inverted = rebaseable.inverted.merge(lastStep.inverted);
65
36
  // Always take the origin of the new step.
@@ -68,11 +39,11 @@ export function mergeUnconfirmedSteps(steps, api) {
68
39
  // As we want to wait until all the transactions have been pushed through
69
40
  var _origin = lastStep.origin;
70
41
  if (mergedStep && _inverted) {
71
- acc[acc.length - 1] = new LockableRebaseable(createLockableProseMirrorStep(mergedStep), _inverted, _origin);
42
+ acc[acc.length - 1] = new LockableRebaseable(mergedStep, _inverted, _origin instanceof Transaction ? _origin.setMeta('isOffline', isOffline) : _origin);
72
43
  return acc;
73
44
  }
74
45
  }
75
- return acc.concat(new LockableRebaseable(createLockableProseMirrorStep(rebaseable.step), rebaseable.inverted, rebaseable.origin));
46
+ return acc.concat(new LockableRebaseable(rebaseable.step, rebaseable.inverted, rebaseable.origin instanceof Transaction ? rebaseable.origin.setMeta('isOffline', isOffline) : rebaseable.origin));
76
47
  }, []);
77
48
  return mergedSteps;
78
49
  }
@@ -3,14 +3,10 @@ import { Step as ProseMirrorStep } from '@atlaskit/editor-prosemirror/transform'
3
3
  import type { Transform as ProseMirrorTransform } from '@atlaskit/editor-prosemirror/transform';
4
4
  import type { CollabEditPlugin } from '../collabEditPluginType';
5
5
  declare class LockableRebaseable {
6
- readonly step: LockableProseMirrorStep;
6
+ readonly step: ProseMirrorStep;
7
7
  readonly inverted: ProseMirrorStep;
8
8
  readonly origin: ProseMirrorTransform;
9
- constructor(step: LockableProseMirrorStep, inverted: ProseMirrorStep, origin: ProseMirrorTransform);
10
- }
11
- declare abstract class LockableProseMirrorStep extends ProseMirrorStep {
12
- lockStep?: () => void;
13
- isLocked?: () => boolean;
9
+ constructor(step: ProseMirrorStep, inverted: ProseMirrorStep, origin: ProseMirrorTransform);
14
10
  }
15
11
  /**
16
12
  * Merge a set of steps together to reduce the total number of steps stored in memory.
@@ -3,14 +3,10 @@ import { Step as ProseMirrorStep } from '@atlaskit/editor-prosemirror/transform'
3
3
  import type { Transform as ProseMirrorTransform } from '@atlaskit/editor-prosemirror/transform';
4
4
  import type { CollabEditPlugin } from '../collabEditPluginType';
5
5
  declare class LockableRebaseable {
6
- readonly step: LockableProseMirrorStep;
6
+ readonly step: ProseMirrorStep;
7
7
  readonly inverted: ProseMirrorStep;
8
8
  readonly origin: ProseMirrorTransform;
9
- constructor(step: LockableProseMirrorStep, inverted: ProseMirrorStep, origin: ProseMirrorTransform);
10
- }
11
- declare abstract class LockableProseMirrorStep extends ProseMirrorStep {
12
- lockStep?: () => void;
13
- isLocked?: () => boolean;
9
+ constructor(step: ProseMirrorStep, inverted: ProseMirrorStep, origin: ProseMirrorTransform);
14
10
  }
15
11
  /**
16
12
  * Merge a set of steps together to reduce the total number of steps stored in memory.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-collab-edit",
3
- "version": "3.1.0",
3
+ "version": "3.2.0",
4
4
  "description": "Collab Edit plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -31,18 +31,18 @@
31
31
  ".": "./src/index.ts"
32
32
  },
33
33
  "dependencies": {
34
- "@atlaskit/adf-schema": "^47.2.1",
35
- "@atlaskit/custom-steps": "^0.10.0",
36
- "@atlaskit/editor-common": "^100.4.0",
37
- "@atlaskit/editor-json-transformer": "^8.23.0",
38
- "@atlaskit/editor-plugin-analytics": "2.0.0",
34
+ "@atlaskit/adf-schema": "^47.6.0",
35
+ "@atlaskit/custom-steps": "^0.11.0",
36
+ "@atlaskit/editor-common": "^100.5.0",
37
+ "@atlaskit/editor-json-transformer": "^8.24.0",
38
+ "@atlaskit/editor-plugin-analytics": "2.1.0",
39
39
  "@atlaskit/editor-plugin-connectivity": "^2.0.0",
40
40
  "@atlaskit/editor-plugin-editor-viewmode": "^3.0.0",
41
41
  "@atlaskit/editor-plugin-feature-flags": "^1.3.0",
42
42
  "@atlaskit/editor-prosemirror": "7.0.0",
43
43
  "@atlaskit/editor-shared-styles": "^3.4.0",
44
44
  "@atlaskit/platform-feature-flags": "^1.1.0",
45
- "@atlaskit/prosemirror-collab": "^0.14.0",
45
+ "@atlaskit/prosemirror-collab": "^0.15.0",
46
46
  "@babel/runtime": "^7.0.0",
47
47
  "memoize-one": "^6.0.0"
48
48
  },
@@ -53,11 +53,11 @@
53
53
  "devDependencies": {
54
54
  "@af/integration-testing": "*",
55
55
  "@af/visual-regression": "*",
56
- "@atlaskit/editor-plugin-mentions": "^4.0.0",
57
- "@atlaskit/editor-plugin-text-formatting": "^2.0.0",
58
- "@atlaskit/editor-plugin-type-ahead": "^2.0.0",
59
- "@atlaskit/editor-plugin-unsupported-content": "^2.0.0",
60
- "@atlaskit/editor-test-helpers": "^22.0.0",
56
+ "@atlaskit/editor-plugin-mentions": "^4.1.0",
57
+ "@atlaskit/editor-plugin-text-formatting": "^2.1.0",
58
+ "@atlaskit/editor-plugin-type-ahead": "^2.1.0",
59
+ "@atlaskit/editor-plugin-unsupported-content": "^2.1.0",
60
+ "@atlaskit/editor-test-helpers": "^22.1.0",
61
61
  "@atlaskit/ssr": "*",
62
62
  "@atlaskit/synchrony-test-helpers": "^3.1.0",
63
63
  "@atlaskit/util-data-test": "^18.0.0",