@atlaskit/editor-plugin-collab-edit 3.1.0 → 3.1.1

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
+ ## 3.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#120905](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/120905)
8
+ [`4194ea903d7d6`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/4194ea903d7d6) -
9
+ Refactor step merging while offline.
10
+
3
11
  ## 3.1.0
4
12
 
5
13
  ### 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,9 @@ 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
+ 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 && !isLocked(lastStep) && !isLocked(rebaseable)) {
70
40
  var mergedStep = lastStep.step.merge(rebaseable.step);
71
41
  var _inverted = rebaseable.inverted.merge(lastStep.inverted);
72
42
  // Always take the origin of the new step.
@@ -75,11 +45,11 @@ function mergeUnconfirmedSteps(steps, api) {
75
45
  // As we want to wait until all the transactions have been pushed through
76
46
  var _origin = lastStep.origin;
77
47
  if (mergedStep && _inverted) {
78
- acc[acc.length - 1] = new LockableRebaseable(createLockableProseMirrorStep(mergedStep), _inverted, _origin);
48
+ acc[acc.length - 1] = new LockableRebaseable(mergedStep, _inverted, _origin);
79
49
  return acc;
80
50
  }
81
51
  }
82
- return acc.concat(new LockableRebaseable(createLockableProseMirrorStep(rebaseable.step), rebaseable.inverted, rebaseable.origin));
52
+ return acc.concat(new LockableRebaseable(rebaseable.step, rebaseable.inverted, rebaseable.origin));
83
53
  }, []);
84
54
  return mergedSteps;
85
55
  }
@@ -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,9 @@ 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
+ 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 && !isLocked(lastStep) && !isLocked(rebaseable)) {
51
32
  const mergedStep = lastStep.step.merge(rebaseable.step);
52
33
  const inverted = rebaseable.inverted.merge(lastStep.inverted);
53
34
  // Always take the origin of the new step.
@@ -56,11 +37,11 @@ export function mergeUnconfirmedSteps(steps, api) {
56
37
  // As we want to wait until all the transactions have been pushed through
57
38
  const origin = lastStep.origin;
58
39
  if (mergedStep && inverted) {
59
- acc[acc.length - 1] = new LockableRebaseable(createLockableProseMirrorStep(mergedStep), inverted, origin);
40
+ acc[acc.length - 1] = new LockableRebaseable(mergedStep, inverted, origin);
60
41
  return acc;
61
42
  }
62
43
  }
63
- return acc.concat(new LockableRebaseable(createLockableProseMirrorStep(rebaseable.step), rebaseable.inverted, rebaseable.origin));
44
+ return acc.concat(new LockableRebaseable(rebaseable.step, rebaseable.inverted, rebaseable.origin));
64
45
  }, []);
65
46
  return mergedSteps;
66
47
  }
@@ -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,9 @@ 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
+ 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 && !isLocked(lastStep) && !isLocked(rebaseable)) {
63
33
  var mergedStep = lastStep.step.merge(rebaseable.step);
64
34
  var _inverted = rebaseable.inverted.merge(lastStep.inverted);
65
35
  // Always take the origin of the new step.
@@ -68,11 +38,11 @@ export function mergeUnconfirmedSteps(steps, api) {
68
38
  // As we want to wait until all the transactions have been pushed through
69
39
  var _origin = lastStep.origin;
70
40
  if (mergedStep && _inverted) {
71
- acc[acc.length - 1] = new LockableRebaseable(createLockableProseMirrorStep(mergedStep), _inverted, _origin);
41
+ acc[acc.length - 1] = new LockableRebaseable(mergedStep, _inverted, _origin);
72
42
  return acc;
73
43
  }
74
44
  }
75
- return acc.concat(new LockableRebaseable(createLockableProseMirrorStep(rebaseable.step), rebaseable.inverted, rebaseable.origin));
45
+ return acc.concat(new LockableRebaseable(rebaseable.step, rebaseable.inverted, rebaseable.origin));
76
46
  }, []);
77
47
  return mergedSteps;
78
48
  }
@@ -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.1.1",
4
4
  "description": "Collab Edit plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",