@atlaskit/editor-plugin-block-menu 1.0.4 → 1.0.5

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.
Files changed (22) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/cjs/editor-commands/transforms/layout-transforms.js +30 -0
  3. package/dist/cjs/editor-commands/transforms/list-transforms.js +60 -3
  4. package/dist/cjs/editor-commands/transforms/transformNodeToTargetType.js +4 -0
  5. package/dist/cjs/editor-commands/transforms/utils.js +8 -1
  6. package/dist/es2019/editor-commands/transforms/layout-transforms.js +25 -0
  7. package/dist/es2019/editor-commands/transforms/list-transforms.js +62 -2
  8. package/dist/es2019/editor-commands/transforms/transformNodeToTargetType.js +5 -1
  9. package/dist/es2019/editor-commands/transforms/utils.js +7 -0
  10. package/dist/esm/editor-commands/transforms/layout-transforms.js +24 -0
  11. package/dist/esm/editor-commands/transforms/list-transforms.js +58 -2
  12. package/dist/esm/editor-commands/transforms/transformNodeToTargetType.js +5 -1
  13. package/dist/esm/editor-commands/transforms/utils.js +7 -0
  14. package/dist/types/editor-commands/transforms/layout-transforms.d.ts +2 -0
  15. package/dist/types/editor-commands/transforms/list-transforms.d.ts +4 -0
  16. package/dist/types/editor-commands/transforms/types.d.ts +1 -1
  17. package/dist/types/editor-commands/transforms/utils.d.ts +1 -0
  18. package/dist/types-ts4.5/editor-commands/transforms/layout-transforms.d.ts +2 -0
  19. package/dist/types-ts4.5/editor-commands/transforms/list-transforms.d.ts +4 -0
  20. package/dist/types-ts4.5/editor-commands/transforms/types.d.ts +1 -1
  21. package/dist/types-ts4.5/editor-commands/transforms/utils.d.ts +1 -0
  22. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @atlaskit/editor-plugin-block-menu
2
2
 
3
+ ## 1.0.5
4
+
5
+ ### Patch Changes
6
+
7
+ - [`b76a419d23d3d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/b76a419d23d3d) -
8
+ [ux] ED-29143 Transform nodes into layout
9
+ - [`0d741324d534a`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/0d741324d534a) -
10
+ [ux] Adds wrapping of list node types in container node types.
11
+ - Updated dependencies
12
+
3
13
  ## 1.0.4
4
14
 
5
15
  ### Patch Changes
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.convertToLayout = void 0;
7
+ var _styles = require("@atlaskit/editor-common/styles");
8
+ var _model = require("@atlaskit/editor-prosemirror/model");
9
+ var convertToLayout = exports.convertToLayout = function convertToLayout(context) {
10
+ var tr = context.tr,
11
+ sourceNode = context.sourceNode,
12
+ sourcePos = context.sourcePos;
13
+ var _ref = tr.doc.type.schema.nodes || {},
14
+ layoutSection = _ref.layoutSection,
15
+ layoutColumn = _ref.layoutColumn,
16
+ paragraph = _ref.paragraph;
17
+ var content = sourceNode.mark(sourceNode.marks.filter(function (mark) {
18
+ return mark.type.name !== 'breakout';
19
+ }));
20
+ var layoutContent = _model.Fragment.fromArray([layoutColumn.createChecked({
21
+ width: _styles.DEFAULT_TWO_COLUMN_LAYOUT_COLUMN_WIDTH
22
+ }, content), layoutColumn.create({
23
+ width: _styles.DEFAULT_TWO_COLUMN_LAYOUT_COLUMN_WIDTH
24
+ }, paragraph.createAndFill())]);
25
+ var layoutSectionNode = layoutSection.createChecked(undefined, layoutContent);
26
+
27
+ // Replace the original node with the new layout node
28
+ tr.replaceRangeWith(sourcePos || 0, (sourcePos || 0) + sourceNode.nodeSize, layoutSectionNode);
29
+ return tr;
30
+ };
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.transformListToBlockNodes = exports.transformListNode = exports.transformBlockToList = exports.transformBetweenListTypes = exports.liftListToBlockType = void 0;
7
+ exports.transformListToContainer = exports.transformListToBlockNodes = exports.transformListNode = exports.transformBlockToList = exports.transformBetweenListTypes = exports.liftListToBlockType = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _model = require("@atlaskit/editor-prosemirror/model");
7
10
  var _transform = require("@atlaskit/editor-prosemirror/transform");
8
11
  var _transformBetweenListTypes = require("./list/transformBetweenListTypes");
9
12
  var _transformOrderedUnorderedListToBlockNodes = require("./list/transformOrderedUnorderedListToBlockNodes");
@@ -62,6 +65,60 @@ var transformListToBlockNodes = exports.transformListToBlockNodes = function tra
62
65
  }
63
66
  };
64
67
 
68
+ /**
69
+ * Wraps bulletList, orderedList or taskList in node of container type
70
+ */
71
+ var transformListToContainer = exports.transformListToContainer = function transformListToContainer(context) {
72
+ var tr = context.tr,
73
+ sourceNode = context.sourceNode,
74
+ sourcePos = context.sourcePos,
75
+ targetNodeType = context.targetNodeType,
76
+ targetAttrs = context.targetAttrs;
77
+ if (sourcePos === null) {
78
+ return null;
79
+ }
80
+ var schema = tr.doc.type.schema;
81
+ var _schema$nodes = schema.nodes,
82
+ blockquote = _schema$nodes.blockquote,
83
+ taskList = _schema$nodes.taskList,
84
+ taskItem = _schema$nodes.taskItem,
85
+ paragraph = _schema$nodes.paragraph;
86
+
87
+ // Special case: Task list -> Blockquote
88
+ // Flattens the task list before wrapping by blockquote
89
+ if (sourceNode.type === taskList && targetNodeType === blockquote) {
90
+ var _extractParagraphsFromTaskList = function extractParagraphsFromTaskList(node) {
91
+ var paragraphs = [];
92
+ node.forEach(function (child) {
93
+ if (child.type === taskItem) {
94
+ if (child.content.size > 0) {
95
+ var paragraphNode = paragraph.createChecked({}, child.content.content);
96
+ paragraphs.push(paragraphNode);
97
+ }
98
+ } else if (child.type === taskList) {
99
+ paragraphs.push.apply(paragraphs, (0, _toConsumableArray2.default)(_extractParagraphsFromTaskList(child)));
100
+ }
101
+ });
102
+ return paragraphs;
103
+ };
104
+ var liftedParagraphs = _extractParagraphsFromTaskList(sourceNode);
105
+ var _containerNode = targetNodeType.createAndFill(targetAttrs, _model.Fragment.from(liftedParagraphs));
106
+ if (!_containerNode) {
107
+ return null;
108
+ }
109
+ tr.replaceWith(sourcePos, sourcePos + sourceNode.nodeSize, _containerNode);
110
+ return tr;
111
+ }
112
+
113
+ // Default case
114
+ var containerNode = targetNodeType.createAndFill(targetAttrs, [sourceNode]);
115
+ if (!containerNode) {
116
+ return null;
117
+ }
118
+ tr.replaceWith(sourcePos, sourcePos + sourceNode.nodeSize, containerNode);
119
+ return tr;
120
+ };
121
+
65
122
  /**
66
123
  * Transform list nodes
67
124
  */
@@ -75,8 +132,8 @@ var transformListNode = exports.transformListNode = function transformListNode(c
75
132
 
76
133
  // Transform list to container type
77
134
  if ((0, _utils.isContainerNodeType)(targetNodeType)) {
78
- // Lift list items out of the list and convert to container type
79
- return null;
135
+ // Wrap list items into container type, where possible
136
+ return transformListToContainer(context);
80
137
  }
81
138
 
82
139
  // Transform between list types
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.transformNodeToTargetType = transformNodeToTargetType;
7
7
  var _blockTransforms = require("./block-transforms");
8
8
  var _containerTransforms = require("./container-transforms");
9
+ var _layoutTransforms = require("./layout-transforms");
9
10
  var _listTransforms = require("./list-transforms");
10
11
  var _utils = require("./utils");
11
12
  function transformNodeToTargetType(tr, sourceNode, sourcePos, targetType) {
@@ -43,6 +44,9 @@ function transformNodeToTargetType(tr, sourceNode, sourcePos, targetType) {
43
44
 
44
45
  // Route to appropriate transformation strategy based on source node type
45
46
  try {
47
+ if ((0, _utils.isLayoutNodeType)(targetNodeType)) {
48
+ return (0, _layoutTransforms.convertToLayout)(transformationContext);
49
+ }
46
50
  if ((0, _utils.isBlockNode)(sourceNode)) {
47
51
  return (0, _blockTransforms.transformBlockNode)(transformationContext);
48
52
  }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.isTaskList = exports.isListNodeType = exports.isListNode = exports.isContainerNodeType = exports.isContainerNode = exports.isBulletOrOrderedList = exports.isBlockNodeType = exports.isBlockNode = exports.getTargetNodeInfo = exports.getSupportedListTypesSet = exports.getSupportedListTypes = void 0;
6
+ exports.isTaskList = exports.isListNodeType = exports.isListNode = exports.isLayoutNodeType = exports.isContainerNodeType = exports.isContainerNode = exports.isBulletOrOrderedList = exports.isBlockNodeType = exports.isBlockNode = exports.getTargetNodeInfo = exports.getSupportedListTypesSet = exports.getSupportedListTypes = void 0;
7
7
  var getTargetNodeInfo = exports.getTargetNodeInfo = function getTargetNodeInfo(targetType, nodes) {
8
8
  switch (targetType) {
9
9
  case 'heading1':
@@ -83,6 +83,10 @@ var getTargetNodeInfo = exports.getTargetNodeInfo = function getTargetNodeInfo(t
83
83
  return {
84
84
  nodeType: nodes.taskList
85
85
  };
86
+ case 'layoutSection':
87
+ return {
88
+ nodeType: nodes.layoutSection
89
+ };
86
90
  default:
87
91
  return null;
88
92
  }
@@ -120,4 +124,7 @@ var getSupportedListTypes = exports.getSupportedListTypes = function getSupporte
120
124
  };
121
125
  var getSupportedListTypesSet = exports.getSupportedListTypesSet = function getSupportedListTypesSet(nodes) {
122
126
  return new Set(getSupportedListTypes(nodes));
127
+ };
128
+ var isLayoutNodeType = exports.isLayoutNodeType = function isLayoutNodeType(nodeType) {
129
+ return nodeType.name === 'layoutSection';
123
130
  };
@@ -0,0 +1,25 @@
1
+ import { DEFAULT_TWO_COLUMN_LAYOUT_COLUMN_WIDTH } from '@atlaskit/editor-common/styles';
2
+ import { Fragment } from '@atlaskit/editor-prosemirror/model';
3
+ export const convertToLayout = context => {
4
+ const {
5
+ tr,
6
+ sourceNode,
7
+ sourcePos
8
+ } = context;
9
+ const {
10
+ layoutSection,
11
+ layoutColumn,
12
+ paragraph
13
+ } = tr.doc.type.schema.nodes || {};
14
+ const content = sourceNode.mark(sourceNode.marks.filter(mark => mark.type.name !== 'breakout'));
15
+ const layoutContent = Fragment.fromArray([layoutColumn.createChecked({
16
+ width: DEFAULT_TWO_COLUMN_LAYOUT_COLUMN_WIDTH
17
+ }, content), layoutColumn.create({
18
+ width: DEFAULT_TWO_COLUMN_LAYOUT_COLUMN_WIDTH
19
+ }, paragraph.createAndFill())]);
20
+ const layoutSectionNode = layoutSection.createChecked(undefined, layoutContent);
21
+
22
+ // Replace the original node with the new layout node
23
+ tr.replaceRangeWith(sourcePos || 0, (sourcePos || 0) + sourceNode.nodeSize, layoutSectionNode);
24
+ return tr;
25
+ };
@@ -1,3 +1,4 @@
1
+ import { Fragment } from '@atlaskit/editor-prosemirror/model';
1
2
  import { findWrapping } from '@atlaskit/editor-prosemirror/transform';
2
3
  import { transformListStructure } from './list/transformBetweenListTypes';
3
4
  import { transformOrderedUnorderedListToBlockNodes } from './list/transformOrderedUnorderedListToBlockNodes';
@@ -64,6 +65,65 @@ export const transformListToBlockNodes = context => {
64
65
  }
65
66
  };
66
67
 
68
+ /**
69
+ * Wraps bulletList, orderedList or taskList in node of container type
70
+ */
71
+ export const transformListToContainer = context => {
72
+ const {
73
+ tr,
74
+ sourceNode,
75
+ sourcePos,
76
+ targetNodeType,
77
+ targetAttrs
78
+ } = context;
79
+ if (sourcePos === null) {
80
+ return null;
81
+ }
82
+ const {
83
+ schema
84
+ } = tr.doc.type;
85
+ const {
86
+ blockquote,
87
+ taskList,
88
+ taskItem,
89
+ paragraph
90
+ } = schema.nodes;
91
+
92
+ // Special case: Task list -> Blockquote
93
+ // Flattens the task list before wrapping by blockquote
94
+ if (sourceNode.type === taskList && targetNodeType === blockquote) {
95
+ const extractParagraphsFromTaskList = node => {
96
+ const paragraphs = [];
97
+ node.forEach(child => {
98
+ if (child.type === taskItem) {
99
+ if (child.content.size > 0) {
100
+ const paragraphNode = paragraph.createChecked({}, child.content.content);
101
+ paragraphs.push(paragraphNode);
102
+ }
103
+ } else if (child.type === taskList) {
104
+ paragraphs.push(...extractParagraphsFromTaskList(child));
105
+ }
106
+ });
107
+ return paragraphs;
108
+ };
109
+ const liftedParagraphs = extractParagraphsFromTaskList(sourceNode);
110
+ const containerNode = targetNodeType.createAndFill(targetAttrs, Fragment.from(liftedParagraphs));
111
+ if (!containerNode) {
112
+ return null;
113
+ }
114
+ tr.replaceWith(sourcePos, sourcePos + sourceNode.nodeSize, containerNode);
115
+ return tr;
116
+ }
117
+
118
+ // Default case
119
+ const containerNode = targetNodeType.createAndFill(targetAttrs, [sourceNode]);
120
+ if (!containerNode) {
121
+ return null;
122
+ }
123
+ tr.replaceWith(sourcePos, sourcePos + sourceNode.nodeSize, containerNode);
124
+ return tr;
125
+ };
126
+
67
127
  /**
68
128
  * Transform list nodes
69
129
  */
@@ -79,8 +139,8 @@ export const transformListNode = context => {
79
139
 
80
140
  // Transform list to container type
81
141
  if (isContainerNodeType(targetNodeType)) {
82
- // Lift list items out of the list and convert to container type
83
- return null;
142
+ // Wrap list items into container type, where possible
143
+ return transformListToContainer(context);
84
144
  }
85
145
 
86
146
  // Transform between list types
@@ -1,7 +1,8 @@
1
1
  import { transformBlockNode } from './block-transforms';
2
2
  import { transformContainerNode } from './container-transforms';
3
+ import { convertToLayout } from './layout-transforms';
3
4
  import { transformListNode } from './list-transforms';
4
- import { getTargetNodeInfo, isBlockNode, isListNode, isContainerNode } from './utils';
5
+ import { getTargetNodeInfo, isBlockNode, isListNode, isContainerNode, isLayoutNodeType } from './utils';
5
6
  export function transformNodeToTargetType(tr, sourceNode, sourcePos, targetType) {
6
7
  const {
7
8
  nodes
@@ -41,6 +42,9 @@ export function transformNodeToTargetType(tr, sourceNode, sourcePos, targetType)
41
42
 
42
43
  // Route to appropriate transformation strategy based on source node type
43
44
  try {
45
+ if (isLayoutNodeType(targetNodeType)) {
46
+ return convertToLayout(transformationContext);
47
+ }
44
48
  if (isBlockNode(sourceNode)) {
45
49
  return transformBlockNode(transformationContext);
46
50
  }
@@ -77,6 +77,10 @@ export const getTargetNodeInfo = (targetType, nodes) => {
77
77
  return {
78
78
  nodeType: nodes.taskList
79
79
  };
80
+ case 'layoutSection':
81
+ return {
82
+ nodeType: nodes.layoutSection
83
+ };
80
84
  default:
81
85
  return null;
82
86
  }
@@ -114,4 +118,7 @@ export const getSupportedListTypes = nodes => {
114
118
  };
115
119
  export const getSupportedListTypesSet = nodes => {
116
120
  return new Set(getSupportedListTypes(nodes));
121
+ };
122
+ export const isLayoutNodeType = nodeType => {
123
+ return nodeType.name === 'layoutSection';
117
124
  };
@@ -0,0 +1,24 @@
1
+ import { DEFAULT_TWO_COLUMN_LAYOUT_COLUMN_WIDTH } from '@atlaskit/editor-common/styles';
2
+ import { Fragment } from '@atlaskit/editor-prosemirror/model';
3
+ export var convertToLayout = function convertToLayout(context) {
4
+ var tr = context.tr,
5
+ sourceNode = context.sourceNode,
6
+ sourcePos = context.sourcePos;
7
+ var _ref = tr.doc.type.schema.nodes || {},
8
+ layoutSection = _ref.layoutSection,
9
+ layoutColumn = _ref.layoutColumn,
10
+ paragraph = _ref.paragraph;
11
+ var content = sourceNode.mark(sourceNode.marks.filter(function (mark) {
12
+ return mark.type.name !== 'breakout';
13
+ }));
14
+ var layoutContent = Fragment.fromArray([layoutColumn.createChecked({
15
+ width: DEFAULT_TWO_COLUMN_LAYOUT_COLUMN_WIDTH
16
+ }, content), layoutColumn.create({
17
+ width: DEFAULT_TWO_COLUMN_LAYOUT_COLUMN_WIDTH
18
+ }, paragraph.createAndFill())]);
19
+ var layoutSectionNode = layoutSection.createChecked(undefined, layoutContent);
20
+
21
+ // Replace the original node with the new layout node
22
+ tr.replaceRangeWith(sourcePos || 0, (sourcePos || 0) + sourceNode.nodeSize, layoutSectionNode);
23
+ return tr;
24
+ };
@@ -1,3 +1,5 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import { Fragment } from '@atlaskit/editor-prosemirror/model';
1
3
  import { findWrapping } from '@atlaskit/editor-prosemirror/transform';
2
4
  import { transformListStructure } from './list/transformBetweenListTypes';
3
5
  import { transformOrderedUnorderedListToBlockNodes } from './list/transformOrderedUnorderedListToBlockNodes';
@@ -57,6 +59,60 @@ export var transformListToBlockNodes = function transformListToBlockNodes(contex
57
59
  }
58
60
  };
59
61
 
62
+ /**
63
+ * Wraps bulletList, orderedList or taskList in node of container type
64
+ */
65
+ export var transformListToContainer = function transformListToContainer(context) {
66
+ var tr = context.tr,
67
+ sourceNode = context.sourceNode,
68
+ sourcePos = context.sourcePos,
69
+ targetNodeType = context.targetNodeType,
70
+ targetAttrs = context.targetAttrs;
71
+ if (sourcePos === null) {
72
+ return null;
73
+ }
74
+ var schema = tr.doc.type.schema;
75
+ var _schema$nodes = schema.nodes,
76
+ blockquote = _schema$nodes.blockquote,
77
+ taskList = _schema$nodes.taskList,
78
+ taskItem = _schema$nodes.taskItem,
79
+ paragraph = _schema$nodes.paragraph;
80
+
81
+ // Special case: Task list -> Blockquote
82
+ // Flattens the task list before wrapping by blockquote
83
+ if (sourceNode.type === taskList && targetNodeType === blockquote) {
84
+ var _extractParagraphsFromTaskList = function extractParagraphsFromTaskList(node) {
85
+ var paragraphs = [];
86
+ node.forEach(function (child) {
87
+ if (child.type === taskItem) {
88
+ if (child.content.size > 0) {
89
+ var paragraphNode = paragraph.createChecked({}, child.content.content);
90
+ paragraphs.push(paragraphNode);
91
+ }
92
+ } else if (child.type === taskList) {
93
+ paragraphs.push.apply(paragraphs, _toConsumableArray(_extractParagraphsFromTaskList(child)));
94
+ }
95
+ });
96
+ return paragraphs;
97
+ };
98
+ var liftedParagraphs = _extractParagraphsFromTaskList(sourceNode);
99
+ var _containerNode = targetNodeType.createAndFill(targetAttrs, Fragment.from(liftedParagraphs));
100
+ if (!_containerNode) {
101
+ return null;
102
+ }
103
+ tr.replaceWith(sourcePos, sourcePos + sourceNode.nodeSize, _containerNode);
104
+ return tr;
105
+ }
106
+
107
+ // Default case
108
+ var containerNode = targetNodeType.createAndFill(targetAttrs, [sourceNode]);
109
+ if (!containerNode) {
110
+ return null;
111
+ }
112
+ tr.replaceWith(sourcePos, sourcePos + sourceNode.nodeSize, containerNode);
113
+ return tr;
114
+ };
115
+
60
116
  /**
61
117
  * Transform list nodes
62
118
  */
@@ -70,8 +126,8 @@ export var transformListNode = function transformListNode(context) {
70
126
 
71
127
  // Transform list to container type
72
128
  if (isContainerNodeType(targetNodeType)) {
73
- // Lift list items out of the list and convert to container type
74
- return null;
129
+ // Wrap list items into container type, where possible
130
+ return transformListToContainer(context);
75
131
  }
76
132
 
77
133
  // Transform between list types
@@ -1,7 +1,8 @@
1
1
  import { transformBlockNode } from './block-transforms';
2
2
  import { transformContainerNode } from './container-transforms';
3
+ import { convertToLayout } from './layout-transforms';
3
4
  import { transformListNode } from './list-transforms';
4
- import { getTargetNodeInfo, isBlockNode, isListNode, isContainerNode } from './utils';
5
+ import { getTargetNodeInfo, isBlockNode, isListNode, isContainerNode, isLayoutNodeType } from './utils';
5
6
  export function transformNodeToTargetType(tr, sourceNode, sourcePos, targetType) {
6
7
  var nodes = tr.doc.type.schema.nodes;
7
8
  var targetNodeInfo = getTargetNodeInfo(targetType, nodes);
@@ -37,6 +38,9 @@ export function transformNodeToTargetType(tr, sourceNode, sourcePos, targetType)
37
38
 
38
39
  // Route to appropriate transformation strategy based on source node type
39
40
  try {
41
+ if (isLayoutNodeType(targetNodeType)) {
42
+ return convertToLayout(transformationContext);
43
+ }
40
44
  if (isBlockNode(sourceNode)) {
41
45
  return transformBlockNode(transformationContext);
42
46
  }
@@ -77,6 +77,10 @@ export var getTargetNodeInfo = function getTargetNodeInfo(targetType, nodes) {
77
77
  return {
78
78
  nodeType: nodes.taskList
79
79
  };
80
+ case 'layoutSection':
81
+ return {
82
+ nodeType: nodes.layoutSection
83
+ };
80
84
  default:
81
85
  return null;
82
86
  }
@@ -114,4 +118,7 @@ export var getSupportedListTypes = function getSupportedListTypes(nodes) {
114
118
  };
115
119
  export var getSupportedListTypesSet = function getSupportedListTypesSet(nodes) {
116
120
  return new Set(getSupportedListTypes(nodes));
121
+ };
122
+ export var isLayoutNodeType = function isLayoutNodeType(nodeType) {
123
+ return nodeType.name === 'layoutSection';
117
124
  };
@@ -0,0 +1,2 @@
1
+ import type { TransformContext } from './types';
2
+ export declare const convertToLayout: (context: TransformContext) => import("prosemirror-state").Transaction;
@@ -8,6 +8,10 @@ export declare const transformBlockToList: (context: TransformContext) => Transa
8
8
  * Transform list to block nodes
9
9
  */
10
10
  export declare const transformListToBlockNodes: (context: TransformContext) => Transaction | null;
11
+ /**
12
+ * Wraps bulletList, orderedList or taskList in node of container type
13
+ */
14
+ export declare const transformListToContainer: (context: TransformContext) => Transaction | null;
11
15
  /**
12
16
  * Transform list nodes
13
17
  */
@@ -1,6 +1,6 @@
1
1
  import type { Node as PMNode, NodeType } from '@atlaskit/editor-prosemirror/model';
2
2
  import type { Transaction } from '@atlaskit/editor-prosemirror/state';
3
- export type FormatNodeTargetType = 'heading1' | 'heading2' | 'heading3' | 'heading4' | 'heading5' | 'heading6' | 'paragraph' | 'blockquote' | 'expand' | 'layout' | 'panel' | 'codeBlock' | 'bulletList' | 'orderedList' | 'taskList';
3
+ export type FormatNodeTargetType = 'heading1' | 'heading2' | 'heading3' | 'heading4' | 'heading5' | 'heading6' | 'paragraph' | 'blockquote' | 'expand' | 'layoutSection' | 'panel' | 'codeBlock' | 'bulletList' | 'orderedList' | 'taskList';
4
4
  export interface TransformContext {
5
5
  sourceNode: PMNode;
6
6
  sourcePos: number;
@@ -14,3 +14,4 @@ export declare const isBulletOrOrderedList: (nodeType: NodeType) => boolean;
14
14
  export declare const isTaskList: (nodeType: NodeType) => boolean;
15
15
  export declare const getSupportedListTypes: (nodes: Record<string, NodeType>) => NodeType[];
16
16
  export declare const getSupportedListTypesSet: (nodes: Record<string, NodeType>) => Set<NodeType>;
17
+ export declare const isLayoutNodeType: (nodeType: NodeType) => boolean;
@@ -0,0 +1,2 @@
1
+ import type { TransformContext } from './types';
2
+ export declare const convertToLayout: (context: TransformContext) => import("prosemirror-state").Transaction;
@@ -8,6 +8,10 @@ export declare const transformBlockToList: (context: TransformContext) => Transa
8
8
  * Transform list to block nodes
9
9
  */
10
10
  export declare const transformListToBlockNodes: (context: TransformContext) => Transaction | null;
11
+ /**
12
+ * Wraps bulletList, orderedList or taskList in node of container type
13
+ */
14
+ export declare const transformListToContainer: (context: TransformContext) => Transaction | null;
11
15
  /**
12
16
  * Transform list nodes
13
17
  */
@@ -1,6 +1,6 @@
1
1
  import type { Node as PMNode, NodeType } from '@atlaskit/editor-prosemirror/model';
2
2
  import type { Transaction } from '@atlaskit/editor-prosemirror/state';
3
- export type FormatNodeTargetType = 'heading1' | 'heading2' | 'heading3' | 'heading4' | 'heading5' | 'heading6' | 'paragraph' | 'blockquote' | 'expand' | 'layout' | 'panel' | 'codeBlock' | 'bulletList' | 'orderedList' | 'taskList';
3
+ export type FormatNodeTargetType = 'heading1' | 'heading2' | 'heading3' | 'heading4' | 'heading5' | 'heading6' | 'paragraph' | 'blockquote' | 'expand' | 'layoutSection' | 'panel' | 'codeBlock' | 'bulletList' | 'orderedList' | 'taskList';
4
4
  export interface TransformContext {
5
5
  sourceNode: PMNode;
6
6
  sourcePos: number;
@@ -14,3 +14,4 @@ export declare const isBulletOrOrderedList: (nodeType: NodeType) => boolean;
14
14
  export declare const isTaskList: (nodeType: NodeType) => boolean;
15
15
  export declare const getSupportedListTypes: (nodes: Record<string, NodeType>) => NodeType[];
16
16
  export declare const getSupportedListTypesSet: (nodes: Record<string, NodeType>) => Set<NodeType>;
17
+ export declare const isLayoutNodeType: (nodeType: NodeType) => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-block-menu",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "description": "BlockMenu plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -46,7 +46,7 @@
46
46
  "@babel/runtime": "^7.0.0"
47
47
  },
48
48
  "peerDependencies": {
49
- "@atlaskit/editor-common": "^108.2.0",
49
+ "@atlaskit/editor-common": "^108.3.0",
50
50
  "react": "^18.2.0",
51
51
  "react-intl-next": "npm:react-intl@^5.18.1"
52
52
  },