@atlaskit/editor-common 109.13.0 → 109.14.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,18 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 109.14.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`b8555904ec1cc`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/b8555904ec1cc) -
8
+ Add new util for comparing nodes ignoring attributes.
9
+
10
+ ### Patch Changes
11
+
12
+ - [`f7bc2f60e0fc6`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/f7bc2f60e0fc6) -
13
+ [ux] Updates copy text for drag handle, copy block, copy link and updates order of items in Turn
14
+ into menu.
15
+
3
16
  ## 109.13.0
4
17
 
5
18
  ### Minor Changes
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.messages = void 0;
7
7
  var _reactIntlNext = require("react-intl-next");
8
+ // Do not add messages to this file
9
+ // Add them here platform/packages/editor/editor-common/src/messages/block-menu.ts instead
8
10
  var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
9
11
  copyBlock: {
10
12
  id: 'fabric.editor.block.menu.copy.block',
@@ -9,7 +9,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
9
9
  var _key = require("./key");
10
10
  var _FORMAT_NESTED_MENU_R, _FORMAT_NESTED_MENU_R2;
11
11
  var FORMAT_NESTED_MENU_RANK = exports.FORMAT_NESTED_MENU_RANK = (_FORMAT_NESTED_MENU_R = {}, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)(_FORMAT_NESTED_MENU_R, _key.FORMAT_HEADING_1_MENU_ITEM.key, 50), _key.FORMAT_HEADING_2_MENU_ITEM.key, 100), _key.FORMAT_HEADING_3_MENU_ITEM.key, 150), _key.FORMAT_PARAGRAPH_MENU_ITEM.key, 200), _key.FORMAT_QUOTE_MENU_ITEM.key, 250), _key.FORMAT_EXPAND_MENU_ITEM.key, 300), _key.FORMAT_LAYOUT_MENU_ITEM.key, 350), _key.FORMAT_PANEL_MENU_ITEM.key, 400), _key.FORMAT_CODE_BLOCK_MENU_ITEM.key, 450), _key.FORMAT_BULLETED_LIST_MENU_ITEM.key, 500), (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)(_FORMAT_NESTED_MENU_R, _key.FORMAT_NUMBERED_LIST_MENU_ITEM.key, 550), _key.FORMAT_TASK_LIST_MENU_ITEM.key, 600), _key.FORMAT_HEADING_4_MENU_ITEM.key, 650), _key.FORMAT_HEADING_5_MENU_ITEM.key, 700), _key.FORMAT_HEADING_6_MENU_ITEM.key, 750));
12
- var FORMAT_NESTED_MENU_RANK_REVISED = exports.FORMAT_NESTED_MENU_RANK_REVISED = (_FORMAT_NESTED_MENU_R2 = {}, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)(_FORMAT_NESTED_MENU_R2, _key.FORMAT_HEADING_1_MENU_ITEM.key, 50), _key.FORMAT_HEADING_2_MENU_ITEM.key, 100), _key.FORMAT_HEADING_3_MENU_ITEM.key, 150), _key.FORMAT_HEADING_4_MENU_ITEM.key, 200), _key.FORMAT_HEADING_5_MENU_ITEM.key, 250), _key.FORMAT_HEADING_6_MENU_ITEM.key, 300), _key.FORMAT_PARAGRAPH_MENU_ITEM.key, 350), _key.FORMAT_QUOTE_MENU_ITEM.key, 400), _key.FORMAT_EXPAND_MENU_ITEM.key, 450), _key.FORMAT_LAYOUT_MENU_ITEM.key, 500), (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)(_FORMAT_NESTED_MENU_R2, _key.FORMAT_PANEL_MENU_ITEM.key, 550), _key.FORMAT_CODE_BLOCK_MENU_ITEM.key, 600), _key.FORMAT_BULLETED_LIST_MENU_ITEM.key, 650), _key.FORMAT_NUMBERED_LIST_MENU_ITEM.key, 700), _key.FORMAT_TASK_LIST_MENU_ITEM.key, 750));
12
+ var FORMAT_NESTED_MENU_RANK_REVISED = exports.FORMAT_NESTED_MENU_RANK_REVISED = (_FORMAT_NESTED_MENU_R2 = {}, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)(_FORMAT_NESTED_MENU_R2, _key.FORMAT_PARAGRAPH_MENU_ITEM.key, 50), _key.FORMAT_QUOTE_MENU_ITEM.key, 100), _key.FORMAT_EXPAND_MENU_ITEM.key, 150), _key.FORMAT_LAYOUT_MENU_ITEM.key, 200), _key.FORMAT_PANEL_MENU_ITEM.key, 250), _key.FORMAT_CODE_BLOCK_MENU_ITEM.key, 300), _key.FORMAT_BULLETED_LIST_MENU_ITEM.key, 350), _key.FORMAT_NUMBERED_LIST_MENU_ITEM.key, 400), _key.FORMAT_TASK_LIST_MENU_ITEM.key, 450), _key.FORMAT_HEADING_1_MENU_ITEM.key, 500), (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)(_FORMAT_NESTED_MENU_R2, _key.FORMAT_HEADING_2_MENU_ITEM.key, 550), _key.FORMAT_HEADING_3_MENU_ITEM.key, 600), _key.FORMAT_HEADING_4_MENU_ITEM.key, 650), _key.FORMAT_HEADING_5_MENU_ITEM.key, 700), _key.FORMAT_HEADING_6_MENU_ITEM.key, 750));
13
13
  var BLOCK_MENU_SECTION_RANK = exports.BLOCK_MENU_SECTION_RANK = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _key.PRIMARY_MENU_SECTION.key, 100), _key.COPY_MENU_SECTION.key, 300), _key.MOVE_UP_DOWN_MENU_SECTION.key, 400), _key.DELETE_MENU_SECTION.key, 500);
14
14
  var PRIMARY_MENU_SECTION_RANK = exports.PRIMARY_MENU_SECTION_RANK = (0, _defineProperty2.default)({}, _key.FORMAT_MENU_ITEM.key, 50);
15
15
  var COPY_MENU_SECTION_RANK = exports.COPY_MENU_SECTION_RANK = (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _key.COPY_LINK_MENU_ITEM.key, 50), _key.COPY_BLOCK_MENU_ITEM.key, 100);
@@ -11,6 +11,11 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
11
11
  defaultMessage: 'Drag to move',
12
12
  description: 'Use drag handle to move content'
13
13
  },
14
+ dragToMoveClickToOpen: {
15
+ id: 'fabric.editor.blockControlDragHandleMoveOrOpen',
16
+ defaultMessage: 'Drag to move {br} Click to open menu',
17
+ description: 'Use drag handle to move content or click to open the menu'
18
+ },
14
19
  dragToRearrange: {
15
20
  id: 'fabric.editor.blockControlDragHandleRearrange',
16
21
  defaultMessage: 'Drag to rearrange',
@@ -11,6 +11,11 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
11
11
  defaultMessage: 'Copy block',
12
12
  description: 'Copy the selected block to the clipboard'
13
13
  },
14
+ copyContent: {
15
+ id: 'fabric.editor.block.menu.copy.content',
16
+ defaultMessage: 'Copy content',
17
+ description: 'Copy the selected content to the clipboard'
18
+ },
14
19
  moveUpBlock: {
15
20
  id: 'fabric.editor.block.menu.move.up',
16
21
  defaultMessage: 'Move up',
@@ -26,6 +31,11 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
26
31
  defaultMessage: 'Copy link',
27
32
  description: 'Copy link to the selected block'
28
33
  },
34
+ copyLinkToBlock: {
35
+ id: 'fabric.editor.block.menu.copy.link.to.block',
36
+ defaultMessage: 'Copy link to block',
37
+ description: 'Copy link to the selected block'
38
+ },
29
39
  paragraph: {
30
40
  id: 'fabric.editor.block.menu.paragraph',
31
41
  defaultMessage: 'Paragraph',
@@ -40,5 +50,15 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
40
50
  id: 'fabric.editor.block.menu.layout',
41
51
  defaultMessage: 'Layout',
42
52
  description: 'Convert to a layout node'
53
+ },
54
+ deleteBlock: {
55
+ id: 'fabric.editor.block.menu.delete.block',
56
+ defaultMessage: 'Delete',
57
+ description: 'Delete the selected block'
58
+ },
59
+ turnInto: {
60
+ id: 'fabric.editor.block.menu.turn.into',
61
+ defaultMessage: 'Turn into',
62
+ description: 'Turn the selected block into another type'
43
63
  }
44
64
  });
@@ -16,7 +16,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
16
16
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
17
17
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
18
18
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
19
- var packageVersion = "109.12.0";
19
+ var packageVersion = "109.13.0";
20
20
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
21
21
  // Remove URL as it has UGC
22
22
  // Ignored via go/ees007
@@ -24,7 +24,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
24
24
  * @jsx jsx
25
25
  */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
26
26
  var packageName = "@atlaskit/editor-common";
27
- var packageVersion = "109.12.0";
27
+ var packageVersion = "109.13.0";
28
28
  var halfFocusRing = 1;
29
29
  var dropOffset = '0, 8';
30
30
  var fadeIn = (0, _react2.keyframes)({
@@ -4,6 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
+ exports.areNodesEqualIgnoreAttrs = areNodesEqualIgnoreAttrs;
7
8
  exports.bracketTyped = bracketTyped;
8
9
  exports.getChangedNodes = getChangedNodes;
9
10
  exports.getStepRange = void 0;
@@ -157,4 +158,35 @@ var isReplaceDocOperation = exports.isReplaceDocOperation = function isReplaceDo
157
158
  });
158
159
  return hasStepReplacingEntireDocument;
159
160
  });
160
- };
161
+ };
162
+
163
+ /**
164
+ * Compares two ProseMirror documents for equality, ignoring attributes
165
+ * which don't affect the document structure.
166
+ *
167
+ * This is almost a copy of the .eq() PM function - tweaked to ignore attrs
168
+ *
169
+ * @param doc1 PMNode
170
+ * @param doc2 PMNode
171
+ * @returns boolean
172
+ */
173
+ function areNodesEqualIgnoreAttrs(node1, node2) {
174
+ if (node1.isText) {
175
+ return node1.eq(node2);
176
+ }
177
+ return node1 === node2 || node1.hasMarkup(node2.type, node1.attrs, node2.marks) && areFragmentsEqual(node1.content, node2.content);
178
+ }
179
+ function areFragmentsEqual(frag1, frag2) {
180
+ if (frag1.content.length !== frag2.content.length) {
181
+ return false;
182
+ }
183
+ var childrenEqual = true;
184
+ frag1.content.forEach(function (child, i) {
185
+ var otherChild = frag2.child(i);
186
+ if (child === otherChild || otherChild && areNodesEqualIgnoreAttrs(child, otherChild)) {
187
+ return;
188
+ }
189
+ childrenEqual = false;
190
+ });
191
+ return childrenEqual;
192
+ }
@@ -1,4 +1,7 @@
1
1
  import { defineMessages } from 'react-intl-next';
2
+
3
+ // Do not add messages to this file
4
+ // Add them here platform/packages/editor/editor-common/src/messages/block-menu.ts instead
2
5
  export const messages = defineMessages({
3
6
  copyBlock: {
4
7
  id: 'fabric.editor.block.menu.copy.block',
@@ -17,21 +17,21 @@ export const FORMAT_NESTED_MENU_RANK = {
17
17
  [FORMAT_HEADING_6_MENU_ITEM.key]: 750
18
18
  };
19
19
  export const FORMAT_NESTED_MENU_RANK_REVISED = {
20
- [FORMAT_HEADING_1_MENU_ITEM.key]: 50,
21
- [FORMAT_HEADING_2_MENU_ITEM.key]: 100,
22
- [FORMAT_HEADING_3_MENU_ITEM.key]: 150,
23
- [FORMAT_HEADING_4_MENU_ITEM.key]: 200,
24
- [FORMAT_HEADING_5_MENU_ITEM.key]: 250,
25
- [FORMAT_HEADING_6_MENU_ITEM.key]: 300,
26
- [FORMAT_PARAGRAPH_MENU_ITEM.key]: 350,
27
- [FORMAT_QUOTE_MENU_ITEM.key]: 400,
28
- [FORMAT_EXPAND_MENU_ITEM.key]: 450,
29
- [FORMAT_LAYOUT_MENU_ITEM.key]: 500,
30
- [FORMAT_PANEL_MENU_ITEM.key]: 550,
31
- [FORMAT_CODE_BLOCK_MENU_ITEM.key]: 600,
32
- [FORMAT_BULLETED_LIST_MENU_ITEM.key]: 650,
33
- [FORMAT_NUMBERED_LIST_MENU_ITEM.key]: 700,
34
- [FORMAT_TASK_LIST_MENU_ITEM.key]: 750
20
+ [FORMAT_PARAGRAPH_MENU_ITEM.key]: 50,
21
+ [FORMAT_QUOTE_MENU_ITEM.key]: 100,
22
+ [FORMAT_EXPAND_MENU_ITEM.key]: 150,
23
+ [FORMAT_LAYOUT_MENU_ITEM.key]: 200,
24
+ [FORMAT_PANEL_MENU_ITEM.key]: 250,
25
+ [FORMAT_CODE_BLOCK_MENU_ITEM.key]: 300,
26
+ [FORMAT_BULLETED_LIST_MENU_ITEM.key]: 350,
27
+ [FORMAT_NUMBERED_LIST_MENU_ITEM.key]: 400,
28
+ [FORMAT_TASK_LIST_MENU_ITEM.key]: 450,
29
+ [FORMAT_HEADING_1_MENU_ITEM.key]: 500,
30
+ [FORMAT_HEADING_2_MENU_ITEM.key]: 550,
31
+ [FORMAT_HEADING_3_MENU_ITEM.key]: 600,
32
+ [FORMAT_HEADING_4_MENU_ITEM.key]: 650,
33
+ [FORMAT_HEADING_5_MENU_ITEM.key]: 700,
34
+ [FORMAT_HEADING_6_MENU_ITEM.key]: 750
35
35
  };
36
36
  export const BLOCK_MENU_SECTION_RANK = {
37
37
  [PRIMARY_MENU_SECTION.key]: 100,
@@ -5,6 +5,11 @@ export const messages = defineMessages({
5
5
  defaultMessage: 'Drag to move',
6
6
  description: 'Use drag handle to move content'
7
7
  },
8
+ dragToMoveClickToOpen: {
9
+ id: 'fabric.editor.blockControlDragHandleMoveOrOpen',
10
+ defaultMessage: 'Drag to move {br} Click to open menu',
11
+ description: 'Use drag handle to move content or click to open the menu'
12
+ },
8
13
  dragToRearrange: {
9
14
  id: 'fabric.editor.blockControlDragHandleRearrange',
10
15
  defaultMessage: 'Drag to rearrange',
@@ -5,6 +5,11 @@ export const messages = defineMessages({
5
5
  defaultMessage: 'Copy block',
6
6
  description: 'Copy the selected block to the clipboard'
7
7
  },
8
+ copyContent: {
9
+ id: 'fabric.editor.block.menu.copy.content',
10
+ defaultMessage: 'Copy content',
11
+ description: 'Copy the selected content to the clipboard'
12
+ },
8
13
  moveUpBlock: {
9
14
  id: 'fabric.editor.block.menu.move.up',
10
15
  defaultMessage: 'Move up',
@@ -20,6 +25,11 @@ export const messages = defineMessages({
20
25
  defaultMessage: 'Copy link',
21
26
  description: 'Copy link to the selected block'
22
27
  },
28
+ copyLinkToBlock: {
29
+ id: 'fabric.editor.block.menu.copy.link.to.block',
30
+ defaultMessage: 'Copy link to block',
31
+ description: 'Copy link to the selected block'
32
+ },
23
33
  paragraph: {
24
34
  id: 'fabric.editor.block.menu.paragraph',
25
35
  defaultMessage: 'Paragraph',
@@ -34,5 +44,15 @@ export const messages = defineMessages({
34
44
  id: 'fabric.editor.block.menu.layout',
35
45
  defaultMessage: 'Layout',
36
46
  description: 'Convert to a layout node'
47
+ },
48
+ deleteBlock: {
49
+ id: 'fabric.editor.block.menu.delete.block',
50
+ defaultMessage: 'Delete',
51
+ description: 'Delete the selected block'
52
+ },
53
+ turnInto: {
54
+ id: 'fabric.editor.block.menu.turn.into',
55
+ defaultMessage: 'Turn into',
56
+ description: 'Turn the selected block into another type'
37
57
  }
38
58
  });
@@ -1,7 +1,7 @@
1
1
  import { isFedRamp } from './environment';
2
2
  const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
3
3
  const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
4
- const packageVersion = "109.12.0";
4
+ const packageVersion = "109.13.0";
5
5
  const sanitiseSentryEvents = (data, _hint) => {
6
6
  // Remove URL as it has UGC
7
7
  // Ignored via go/ees007
@@ -14,7 +14,7 @@ import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
14
14
  import { fg } from '@atlaskit/platform-feature-flags';
15
15
  import Layer from '../Layer';
16
16
  const packageName = "@atlaskit/editor-common";
17
- const packageVersion = "109.12.0";
17
+ const packageVersion = "109.13.0";
18
18
  const halfFocusRing = 1;
19
19
  const dropOffset = '0, 8';
20
20
  const fadeIn = keyframes({
@@ -145,4 +145,35 @@ export const isReplaceDocOperation = (transactions, oldState) => {
145
145
  });
146
146
  return hasStepReplacingEntireDocument;
147
147
  });
148
- };
148
+ };
149
+
150
+ /**
151
+ * Compares two ProseMirror documents for equality, ignoring attributes
152
+ * which don't affect the document structure.
153
+ *
154
+ * This is almost a copy of the .eq() PM function - tweaked to ignore attrs
155
+ *
156
+ * @param doc1 PMNode
157
+ * @param doc2 PMNode
158
+ * @returns boolean
159
+ */
160
+ export function areNodesEqualIgnoreAttrs(node1, node2) {
161
+ if (node1.isText) {
162
+ return node1.eq(node2);
163
+ }
164
+ return node1 === node2 || node1.hasMarkup(node2.type, node1.attrs, node2.marks) && areFragmentsEqual(node1.content, node2.content);
165
+ }
166
+ function areFragmentsEqual(frag1, frag2) {
167
+ if (frag1.content.length !== frag2.content.length) {
168
+ return false;
169
+ }
170
+ let childrenEqual = true;
171
+ frag1.content.forEach((child, i) => {
172
+ const otherChild = frag2.child(i);
173
+ if (child === otherChild || otherChild && areNodesEqualIgnoreAttrs(child, otherChild)) {
174
+ return;
175
+ }
176
+ childrenEqual = false;
177
+ });
178
+ return childrenEqual;
179
+ }
@@ -1,4 +1,7 @@
1
1
  import { defineMessages } from 'react-intl-next';
2
+
3
+ // Do not add messages to this file
4
+ // Add them here platform/packages/editor/editor-common/src/messages/block-menu.ts instead
2
5
  export var messages = defineMessages({
3
6
  copyBlock: {
4
7
  id: 'fabric.editor.block.menu.copy.block',
@@ -2,7 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  var _FORMAT_NESTED_MENU_R, _FORMAT_NESTED_MENU_R2;
3
3
  import { FORMAT_HEADING_1_MENU_ITEM, FORMAT_HEADING_2_MENU_ITEM, FORMAT_HEADING_3_MENU_ITEM, FORMAT_HEADING_4_MENU_ITEM, FORMAT_HEADING_5_MENU_ITEM, FORMAT_HEADING_6_MENU_ITEM, FORMAT_PARAGRAPH_MENU_ITEM, FORMAT_QUOTE_MENU_ITEM, FORMAT_EXPAND_MENU_ITEM, FORMAT_LAYOUT_MENU_ITEM, FORMAT_PANEL_MENU_ITEM, FORMAT_CODE_BLOCK_MENU_ITEM, FORMAT_BULLETED_LIST_MENU_ITEM, FORMAT_NUMBERED_LIST_MENU_ITEM, FORMAT_TASK_LIST_MENU_ITEM, FORMAT_MENU_ITEM, COPY_BLOCK_MENU_ITEM, COPY_LINK_MENU_ITEM, MOVE_UP_MENU_ITEM, MOVE_DOWN_MENU_ITEM, DELETE_MENU_ITEM, PRIMARY_MENU_SECTION, COPY_MENU_SECTION, DELETE_MENU_SECTION, MOVE_UP_DOWN_MENU_SECTION } from './key';
4
4
  export var FORMAT_NESTED_MENU_RANK = (_FORMAT_NESTED_MENU_R = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_FORMAT_NESTED_MENU_R, FORMAT_HEADING_1_MENU_ITEM.key, 50), FORMAT_HEADING_2_MENU_ITEM.key, 100), FORMAT_HEADING_3_MENU_ITEM.key, 150), FORMAT_PARAGRAPH_MENU_ITEM.key, 200), FORMAT_QUOTE_MENU_ITEM.key, 250), FORMAT_EXPAND_MENU_ITEM.key, 300), FORMAT_LAYOUT_MENU_ITEM.key, 350), FORMAT_PANEL_MENU_ITEM.key, 400), FORMAT_CODE_BLOCK_MENU_ITEM.key, 450), FORMAT_BULLETED_LIST_MENU_ITEM.key, 500), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_FORMAT_NESTED_MENU_R, FORMAT_NUMBERED_LIST_MENU_ITEM.key, 550), FORMAT_TASK_LIST_MENU_ITEM.key, 600), FORMAT_HEADING_4_MENU_ITEM.key, 650), FORMAT_HEADING_5_MENU_ITEM.key, 700), FORMAT_HEADING_6_MENU_ITEM.key, 750));
5
- export var FORMAT_NESTED_MENU_RANK_REVISED = (_FORMAT_NESTED_MENU_R2 = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_FORMAT_NESTED_MENU_R2, FORMAT_HEADING_1_MENU_ITEM.key, 50), FORMAT_HEADING_2_MENU_ITEM.key, 100), FORMAT_HEADING_3_MENU_ITEM.key, 150), FORMAT_HEADING_4_MENU_ITEM.key, 200), FORMAT_HEADING_5_MENU_ITEM.key, 250), FORMAT_HEADING_6_MENU_ITEM.key, 300), FORMAT_PARAGRAPH_MENU_ITEM.key, 350), FORMAT_QUOTE_MENU_ITEM.key, 400), FORMAT_EXPAND_MENU_ITEM.key, 450), FORMAT_LAYOUT_MENU_ITEM.key, 500), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_FORMAT_NESTED_MENU_R2, FORMAT_PANEL_MENU_ITEM.key, 550), FORMAT_CODE_BLOCK_MENU_ITEM.key, 600), FORMAT_BULLETED_LIST_MENU_ITEM.key, 650), FORMAT_NUMBERED_LIST_MENU_ITEM.key, 700), FORMAT_TASK_LIST_MENU_ITEM.key, 750));
5
+ export var FORMAT_NESTED_MENU_RANK_REVISED = (_FORMAT_NESTED_MENU_R2 = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_FORMAT_NESTED_MENU_R2, FORMAT_PARAGRAPH_MENU_ITEM.key, 50), FORMAT_QUOTE_MENU_ITEM.key, 100), FORMAT_EXPAND_MENU_ITEM.key, 150), FORMAT_LAYOUT_MENU_ITEM.key, 200), FORMAT_PANEL_MENU_ITEM.key, 250), FORMAT_CODE_BLOCK_MENU_ITEM.key, 300), FORMAT_BULLETED_LIST_MENU_ITEM.key, 350), FORMAT_NUMBERED_LIST_MENU_ITEM.key, 400), FORMAT_TASK_LIST_MENU_ITEM.key, 450), FORMAT_HEADING_1_MENU_ITEM.key, 500), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_FORMAT_NESTED_MENU_R2, FORMAT_HEADING_2_MENU_ITEM.key, 550), FORMAT_HEADING_3_MENU_ITEM.key, 600), FORMAT_HEADING_4_MENU_ITEM.key, 650), FORMAT_HEADING_5_MENU_ITEM.key, 700), FORMAT_HEADING_6_MENU_ITEM.key, 750));
6
6
  export var BLOCK_MENU_SECTION_RANK = _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, PRIMARY_MENU_SECTION.key, 100), COPY_MENU_SECTION.key, 300), MOVE_UP_DOWN_MENU_SECTION.key, 400), DELETE_MENU_SECTION.key, 500);
7
7
  export var PRIMARY_MENU_SECTION_RANK = _defineProperty({}, FORMAT_MENU_ITEM.key, 50);
8
8
  export var COPY_MENU_SECTION_RANK = _defineProperty(_defineProperty({}, COPY_LINK_MENU_ITEM.key, 50), COPY_BLOCK_MENU_ITEM.key, 100);
@@ -5,6 +5,11 @@ export var messages = defineMessages({
5
5
  defaultMessage: 'Drag to move',
6
6
  description: 'Use drag handle to move content'
7
7
  },
8
+ dragToMoveClickToOpen: {
9
+ id: 'fabric.editor.blockControlDragHandleMoveOrOpen',
10
+ defaultMessage: 'Drag to move {br} Click to open menu',
11
+ description: 'Use drag handle to move content or click to open the menu'
12
+ },
8
13
  dragToRearrange: {
9
14
  id: 'fabric.editor.blockControlDragHandleRearrange',
10
15
  defaultMessage: 'Drag to rearrange',
@@ -5,6 +5,11 @@ export var messages = defineMessages({
5
5
  defaultMessage: 'Copy block',
6
6
  description: 'Copy the selected block to the clipboard'
7
7
  },
8
+ copyContent: {
9
+ id: 'fabric.editor.block.menu.copy.content',
10
+ defaultMessage: 'Copy content',
11
+ description: 'Copy the selected content to the clipboard'
12
+ },
8
13
  moveUpBlock: {
9
14
  id: 'fabric.editor.block.menu.move.up',
10
15
  defaultMessage: 'Move up',
@@ -20,6 +25,11 @@ export var messages = defineMessages({
20
25
  defaultMessage: 'Copy link',
21
26
  description: 'Copy link to the selected block'
22
27
  },
28
+ copyLinkToBlock: {
29
+ id: 'fabric.editor.block.menu.copy.link.to.block',
30
+ defaultMessage: 'Copy link to block',
31
+ description: 'Copy link to the selected block'
32
+ },
23
33
  paragraph: {
24
34
  id: 'fabric.editor.block.menu.paragraph',
25
35
  defaultMessage: 'Paragraph',
@@ -34,5 +44,15 @@ export var messages = defineMessages({
34
44
  id: 'fabric.editor.block.menu.layout',
35
45
  defaultMessage: 'Layout',
36
46
  description: 'Convert to a layout node'
47
+ },
48
+ deleteBlock: {
49
+ id: 'fabric.editor.block.menu.delete.block',
50
+ defaultMessage: 'Delete',
51
+ description: 'Delete the selected block'
52
+ },
53
+ turnInto: {
54
+ id: 'fabric.editor.block.menu.turn.into',
55
+ defaultMessage: 'Turn into',
56
+ description: 'Turn the selected block into another type'
37
57
  }
38
58
  });
@@ -7,7 +7,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
7
7
  import { isFedRamp } from './environment';
8
8
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
9
9
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
10
- var packageVersion = "109.12.0";
10
+ var packageVersion = "109.13.0";
11
11
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
12
12
  // Remove URL as it has UGC
13
13
  // Ignored via go/ees007
@@ -21,7 +21,7 @@ import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
21
21
  import { fg } from '@atlaskit/platform-feature-flags';
22
22
  import Layer from '../Layer';
23
23
  var packageName = "@atlaskit/editor-common";
24
- var packageVersion = "109.12.0";
24
+ var packageVersion = "109.13.0";
25
25
  var halfFocusRing = 1;
26
26
  var dropOffset = '0, 8';
27
27
  var fadeIn = keyframes({
@@ -143,4 +143,35 @@ export var isReplaceDocOperation = function isReplaceDocOperation(transactions,
143
143
  });
144
144
  return hasStepReplacingEntireDocument;
145
145
  });
146
- };
146
+ };
147
+
148
+ /**
149
+ * Compares two ProseMirror documents for equality, ignoring attributes
150
+ * which don't affect the document structure.
151
+ *
152
+ * This is almost a copy of the .eq() PM function - tweaked to ignore attrs
153
+ *
154
+ * @param doc1 PMNode
155
+ * @param doc2 PMNode
156
+ * @returns boolean
157
+ */
158
+ export function areNodesEqualIgnoreAttrs(node1, node2) {
159
+ if (node1.isText) {
160
+ return node1.eq(node2);
161
+ }
162
+ return node1 === node2 || node1.hasMarkup(node2.type, node1.attrs, node2.marks) && areFragmentsEqual(node1.content, node2.content);
163
+ }
164
+ function areFragmentsEqual(frag1, frag2) {
165
+ if (frag1.content.length !== frag2.content.length) {
166
+ return false;
167
+ }
168
+ var childrenEqual = true;
169
+ frag1.content.forEach(function (child, i) {
170
+ var otherChild = frag2.child(i);
171
+ if (child === otherChild || otherChild && areNodesEqualIgnoreAttrs(child, otherChild)) {
172
+ return;
173
+ }
174
+ childrenEqual = false;
175
+ });
176
+ return childrenEqual;
177
+ }
@@ -17,12 +17,6 @@ export declare const FORMAT_NESTED_MENU_RANK: {
17
17
  [FORMAT_HEADING_6_MENU_ITEM.key]: number;
18
18
  };
19
19
  export declare const FORMAT_NESTED_MENU_RANK_REVISED: {
20
- [FORMAT_HEADING_1_MENU_ITEM.key]: number;
21
- [FORMAT_HEADING_2_MENU_ITEM.key]: number;
22
- [FORMAT_HEADING_3_MENU_ITEM.key]: number;
23
- [FORMAT_HEADING_4_MENU_ITEM.key]: number;
24
- [FORMAT_HEADING_5_MENU_ITEM.key]: number;
25
- [FORMAT_HEADING_6_MENU_ITEM.key]: number;
26
20
  [FORMAT_PARAGRAPH_MENU_ITEM.key]: number;
27
21
  [FORMAT_QUOTE_MENU_ITEM.key]: number;
28
22
  [FORMAT_EXPAND_MENU_ITEM.key]: number;
@@ -32,6 +26,12 @@ export declare const FORMAT_NESTED_MENU_RANK_REVISED: {
32
26
  [FORMAT_BULLETED_LIST_MENU_ITEM.key]: number;
33
27
  [FORMAT_NUMBERED_LIST_MENU_ITEM.key]: number;
34
28
  [FORMAT_TASK_LIST_MENU_ITEM.key]: number;
29
+ [FORMAT_HEADING_1_MENU_ITEM.key]: number;
30
+ [FORMAT_HEADING_2_MENU_ITEM.key]: number;
31
+ [FORMAT_HEADING_3_MENU_ITEM.key]: number;
32
+ [FORMAT_HEADING_4_MENU_ITEM.key]: number;
33
+ [FORMAT_HEADING_5_MENU_ITEM.key]: number;
34
+ [FORMAT_HEADING_6_MENU_ITEM.key]: number;
35
35
  };
36
36
  export declare const BLOCK_MENU_SECTION_RANK: {
37
37
  [PRIMARY_MENU_SECTION.key]: number;
@@ -4,6 +4,11 @@ export declare const messages: {
4
4
  defaultMessage: string;
5
5
  description: string;
6
6
  };
7
+ dragToMoveClickToOpen: {
8
+ id: string;
9
+ defaultMessage: string;
10
+ description: string;
11
+ };
7
12
  dragToRearrange: {
8
13
  id: string;
9
14
  defaultMessage: string;
@@ -4,6 +4,11 @@ export declare const messages: {
4
4
  defaultMessage: string;
5
5
  description: string;
6
6
  };
7
+ copyContent: {
8
+ id: string;
9
+ defaultMessage: string;
10
+ description: string;
11
+ };
7
12
  moveUpBlock: {
8
13
  id: string;
9
14
  defaultMessage: string;
@@ -19,6 +24,11 @@ export declare const messages: {
19
24
  defaultMessage: string;
20
25
  description: string;
21
26
  };
27
+ copyLinkToBlock: {
28
+ id: string;
29
+ defaultMessage: string;
30
+ description: string;
31
+ };
22
32
  paragraph: {
23
33
  id: string;
24
34
  defaultMessage: string;
@@ -34,4 +44,14 @@ export declare const messages: {
34
44
  defaultMessage: string;
35
45
  description: string;
36
46
  };
47
+ deleteBlock: {
48
+ id: string;
49
+ defaultMessage: string;
50
+ description: string;
51
+ };
52
+ turnInto: {
53
+ id: string;
54
+ defaultMessage: string;
55
+ description: string;
56
+ };
37
57
  };
@@ -22,4 +22,15 @@ export declare function getChangedNodes(tr: ReadonlyTransaction | Transaction):
22
22
  pos: number;
23
23
  }[];
24
24
  export declare const isReplaceDocOperation: (transactions: readonly Transaction[], oldState: EditorState) => boolean;
25
+ /**
26
+ * Compares two ProseMirror documents for equality, ignoring attributes
27
+ * which don't affect the document structure.
28
+ *
29
+ * This is almost a copy of the .eq() PM function - tweaked to ignore attrs
30
+ *
31
+ * @param doc1 PMNode
32
+ * @param doc2 PMNode
33
+ * @returns boolean
34
+ */
35
+ export declare function areNodesEqualIgnoreAttrs(node1: Node, node2: Node): boolean;
25
36
  export {};
@@ -17,12 +17,6 @@ export declare const FORMAT_NESTED_MENU_RANK: {
17
17
  [FORMAT_HEADING_6_MENU_ITEM.key]: number;
18
18
  };
19
19
  export declare const FORMAT_NESTED_MENU_RANK_REVISED: {
20
- [FORMAT_HEADING_1_MENU_ITEM.key]: number;
21
- [FORMAT_HEADING_2_MENU_ITEM.key]: number;
22
- [FORMAT_HEADING_3_MENU_ITEM.key]: number;
23
- [FORMAT_HEADING_4_MENU_ITEM.key]: number;
24
- [FORMAT_HEADING_5_MENU_ITEM.key]: number;
25
- [FORMAT_HEADING_6_MENU_ITEM.key]: number;
26
20
  [FORMAT_PARAGRAPH_MENU_ITEM.key]: number;
27
21
  [FORMAT_QUOTE_MENU_ITEM.key]: number;
28
22
  [FORMAT_EXPAND_MENU_ITEM.key]: number;
@@ -32,6 +26,12 @@ export declare const FORMAT_NESTED_MENU_RANK_REVISED: {
32
26
  [FORMAT_BULLETED_LIST_MENU_ITEM.key]: number;
33
27
  [FORMAT_NUMBERED_LIST_MENU_ITEM.key]: number;
34
28
  [FORMAT_TASK_LIST_MENU_ITEM.key]: number;
29
+ [FORMAT_HEADING_1_MENU_ITEM.key]: number;
30
+ [FORMAT_HEADING_2_MENU_ITEM.key]: number;
31
+ [FORMAT_HEADING_3_MENU_ITEM.key]: number;
32
+ [FORMAT_HEADING_4_MENU_ITEM.key]: number;
33
+ [FORMAT_HEADING_5_MENU_ITEM.key]: number;
34
+ [FORMAT_HEADING_6_MENU_ITEM.key]: number;
35
35
  };
36
36
  export declare const BLOCK_MENU_SECTION_RANK: {
37
37
  [PRIMARY_MENU_SECTION.key]: number;
@@ -4,6 +4,11 @@ export declare const messages: {
4
4
  defaultMessage: string;
5
5
  description: string;
6
6
  };
7
+ dragToMoveClickToOpen: {
8
+ id: string;
9
+ defaultMessage: string;
10
+ description: string;
11
+ };
7
12
  dragToRearrange: {
8
13
  id: string;
9
14
  defaultMessage: string;
@@ -4,6 +4,11 @@ export declare const messages: {
4
4
  defaultMessage: string;
5
5
  description: string;
6
6
  };
7
+ copyContent: {
8
+ id: string;
9
+ defaultMessage: string;
10
+ description: string;
11
+ };
7
12
  moveUpBlock: {
8
13
  id: string;
9
14
  defaultMessage: string;
@@ -19,6 +24,11 @@ export declare const messages: {
19
24
  defaultMessage: string;
20
25
  description: string;
21
26
  };
27
+ copyLinkToBlock: {
28
+ id: string;
29
+ defaultMessage: string;
30
+ description: string;
31
+ };
22
32
  paragraph: {
23
33
  id: string;
24
34
  defaultMessage: string;
@@ -34,4 +44,14 @@ export declare const messages: {
34
44
  defaultMessage: string;
35
45
  description: string;
36
46
  };
47
+ deleteBlock: {
48
+ id: string;
49
+ defaultMessage: string;
50
+ description: string;
51
+ };
52
+ turnInto: {
53
+ id: string;
54
+ defaultMessage: string;
55
+ description: string;
56
+ };
37
57
  };
@@ -22,4 +22,15 @@ export declare function getChangedNodes(tr: ReadonlyTransaction | Transaction):
22
22
  pos: number;
23
23
  }[];
24
24
  export declare const isReplaceDocOperation: (transactions: readonly Transaction[], oldState: EditorState) => boolean;
25
+ /**
26
+ * Compares two ProseMirror documents for equality, ignoring attributes
27
+ * which don't affect the document structure.
28
+ *
29
+ * This is almost a copy of the .eq() PM function - tweaked to ignore attrs
30
+ *
31
+ * @param doc1 PMNode
32
+ * @param doc2 PMNode
33
+ * @returns boolean
34
+ */
35
+ export declare function areNodesEqualIgnoreAttrs(node1: Node, node2: Node): boolean;
25
36
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "109.13.0",
3
+ "version": "109.14.0",
4
4
  "description": "A package that contains common classes and components for editor and renderer",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -72,7 +72,7 @@
72
72
  "@atlaskit/popper": "^7.1.0",
73
73
  "@atlaskit/primitives": "^14.15.0",
74
74
  "@atlaskit/profilecard": "^24.13.0",
75
- "@atlaskit/react-ufo": "^4.9.0",
75
+ "@atlaskit/react-ufo": "^4.10.0",
76
76
  "@atlaskit/section-message": "^8.7.0",
77
77
  "@atlaskit/smart-card": "^42.2.0",
78
78
  "@atlaskit/smart-user-picker": "^8.2.0",