@atlaskit/editor-plugin-block-menu 5.1.2 → 5.1.3

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-block-menu
2
2
 
3
+ ## 5.1.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [`8ae5288a74a40`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/8ae5288a74a40) -
8
+ Update traversal logic in selection
9
+ - Updated dependencies
10
+
3
11
  ## 5.1.2
4
12
 
5
13
  ### Patch Changes
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.transformNode = void 0;
7
7
  var _model = require("@atlaskit/editor-prosemirror/model");
8
8
  var _transform = require("./transform-node-utils/transform");
9
+ var _utils = require("./transforms/utils");
9
10
  var transformNode = exports.transformNode = function transformNode(api) {
10
11
  return (
11
12
  // eslint-disable-next-line no-unused-vars
@@ -22,28 +23,19 @@ var transformNode = exports.transformNode = function transformNode(api) {
22
23
  $from = preservedSelection.$from;
23
24
  var selectedParent = $from.parent;
24
25
  var fragment = _model.Fragment.empty;
25
- // top level selections can safely be transformed without checking for depth
26
- var isWithinSelectedRange = $from.depth === 0;
27
- tr.doc.nodesBetween(from, to, function (node) {
28
- // need to only transform selected content, for nested selections nodesBetween includes the path to the selected parent
29
- if (!isWithinSelectedRange && node.eq(selectedParent)) {
30
- isWithinSelectedRange = true;
31
- return true;
26
+ var isList = (0, _utils.isListNode)(selectedParent);
27
+ var slice = tr.doc.slice(isList ? from - 1 : from, isList ? to + 1 : to);
28
+ slice.content.forEach(function (node) {
29
+ var outputNode = (0, _transform.getOutputNodes)({
30
+ sourceNode: node,
31
+ targetNodeType: targetType,
32
+ schema: tr.doc.type.schema
33
+ });
34
+ if (outputNode) {
35
+ fragment = fragment.append(_model.Fragment.fromArray(outputNode));
32
36
  }
33
- if (isWithinSelectedRange) {
34
- var outputNode = (0, _transform.getOutputNodes)({
35
- sourceNode: node,
36
- targetNodeType: targetType,
37
- schema: tr.doc.type.schema
38
- });
39
- if (outputNode) {
40
- fragment = fragment.append(_model.Fragment.fromArray(outputNode));
41
- }
42
- return false;
43
- }
44
- return true;
45
37
  });
46
- tr.replaceWith(preservedSelection.from, preservedSelection.to, fragment);
38
+ tr.replaceWith(isList ? preservedSelection.from - 1 : preservedSelection.from, preservedSelection.to, fragment);
47
39
  return tr;
48
40
  };
49
41
  }
@@ -1,5 +1,6 @@
1
1
  import { Fragment } from '@atlaskit/editor-prosemirror/model';
2
2
  import { getOutputNodes } from './transform-node-utils/transform';
3
+ import { isListNode } from './transforms/utils';
3
4
  export const transformNode = api =>
4
5
  // eslint-disable-next-line no-unused-vars
5
6
  (targetType, analyticsAttrs) => {
@@ -18,28 +19,19 @@ export const transformNode = api =>
18
19
  } = preservedSelection;
19
20
  const selectedParent = $from.parent;
20
21
  let fragment = Fragment.empty;
21
- // top level selections can safely be transformed without checking for depth
22
- let isWithinSelectedRange = $from.depth === 0;
23
- tr.doc.nodesBetween(from, to, node => {
24
- // need to only transform selected content, for nested selections nodesBetween includes the path to the selected parent
25
- if (!isWithinSelectedRange && node.eq(selectedParent)) {
26
- isWithinSelectedRange = true;
27
- return true;
22
+ const isList = isListNode(selectedParent);
23
+ const slice = tr.doc.slice(isList ? from - 1 : from, isList ? to + 1 : to);
24
+ slice.content.forEach(node => {
25
+ const outputNode = getOutputNodes({
26
+ sourceNode: node,
27
+ targetNodeType: targetType,
28
+ schema: tr.doc.type.schema
29
+ });
30
+ if (outputNode) {
31
+ fragment = fragment.append(Fragment.fromArray(outputNode));
28
32
  }
29
- if (isWithinSelectedRange) {
30
- const outputNode = getOutputNodes({
31
- sourceNode: node,
32
- targetNodeType: targetType,
33
- schema: tr.doc.type.schema
34
- });
35
- if (outputNode) {
36
- fragment = fragment.append(Fragment.fromArray(outputNode));
37
- }
38
- return false;
39
- }
40
- return true;
41
33
  });
42
- tr.replaceWith(preservedSelection.from, preservedSelection.to, fragment);
34
+ tr.replaceWith(isList ? preservedSelection.from - 1 : preservedSelection.from, preservedSelection.to, fragment);
43
35
  return tr;
44
36
  };
45
37
  };
@@ -1,5 +1,6 @@
1
1
  import { Fragment } from '@atlaskit/editor-prosemirror/model';
2
2
  import { getOutputNodes } from './transform-node-utils/transform';
3
+ import { isListNode } from './transforms/utils';
3
4
  export var transformNode = function transformNode(api) {
4
5
  return (
5
6
  // eslint-disable-next-line no-unused-vars
@@ -16,28 +17,19 @@ export var transformNode = function transformNode(api) {
16
17
  $from = preservedSelection.$from;
17
18
  var selectedParent = $from.parent;
18
19
  var fragment = Fragment.empty;
19
- // top level selections can safely be transformed without checking for depth
20
- var isWithinSelectedRange = $from.depth === 0;
21
- tr.doc.nodesBetween(from, to, function (node) {
22
- // need to only transform selected content, for nested selections nodesBetween includes the path to the selected parent
23
- if (!isWithinSelectedRange && node.eq(selectedParent)) {
24
- isWithinSelectedRange = true;
25
- return true;
20
+ var isList = isListNode(selectedParent);
21
+ var slice = tr.doc.slice(isList ? from - 1 : from, isList ? to + 1 : to);
22
+ slice.content.forEach(function (node) {
23
+ var outputNode = getOutputNodes({
24
+ sourceNode: node,
25
+ targetNodeType: targetType,
26
+ schema: tr.doc.type.schema
27
+ });
28
+ if (outputNode) {
29
+ fragment = fragment.append(Fragment.fromArray(outputNode));
26
30
  }
27
- if (isWithinSelectedRange) {
28
- var outputNode = getOutputNodes({
29
- sourceNode: node,
30
- targetNodeType: targetType,
31
- schema: tr.doc.type.schema
32
- });
33
- if (outputNode) {
34
- fragment = fragment.append(Fragment.fromArray(outputNode));
35
- }
36
- return false;
37
- }
38
- return true;
39
31
  });
40
- tr.replaceWith(preservedSelection.from, preservedSelection.to, fragment);
32
+ tr.replaceWith(isList ? preservedSelection.from - 1 : preservedSelection.from, preservedSelection.to, fragment);
41
33
  return tr;
42
34
  };
43
35
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-block-menu",
3
- "version": "5.1.2",
3
+ "version": "5.1.3",
4
4
  "description": "BlockMenu plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -49,7 +49,7 @@
49
49
  "@babel/runtime": "^7.0.0"
50
50
  },
51
51
  "peerDependencies": {
52
- "@atlaskit/editor-common": "^110.36.0",
52
+ "@atlaskit/editor-common": "^110.37.0",
53
53
  "react": "^18.2.0",
54
54
  "react-intl-next": "npm:react-intl@^5.18.1"
55
55
  },