@atlaskit/editor-plugin-paste 17.1.7 → 17.1.8

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,15 @@
1
1
  # @atlaskit/editor-plugin-paste
2
2
 
3
+ ## 17.1.8
4
+
5
+ ### Patch Changes
6
+
7
+ - [`513f878e1df07`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/513f878e1df07) -
8
+ [ux] Behind the platform_editor_preserve_mention_on_paste experiment, stop hoisting a mention's
9
+ avatar image out of its span during paste, so pasting a mention pastes a mention instead of a
10
+ standalone image
11
+ - Updated dependencies
12
+
3
13
  ## 17.1.7
4
14
 
5
15
  ### Patch Changes
@@ -12,6 +12,7 @@ var _mediaSingle = require("@atlaskit/editor-common/media-single");
12
12
  var _utils = require("@atlaskit/editor-common/utils");
13
13
  var _utils2 = require("@atlaskit/editor-prosemirror/utils");
14
14
  var _mediaCommon = require("@atlaskit/media-common");
15
+ var _isExperimentEnabled = require("@atlaskit/platform-feature-experiments/is-experiment-enabled");
15
16
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
17
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
18
  /**
@@ -200,6 +201,14 @@ var unwrapNestedMediaElements = exports.unwrapNestedMediaElements = function unw
200
201
  return;
201
202
  }
202
203
 
204
+ // Bypass mention avatars - a mention's avatar <img> is nested only inside <span>s
205
+ // (never a valid container), so it would otherwise get hoisted out of the mention's
206
+ // DOM subtree and parsed as a standalone image instead of leaving the mention intact
207
+ // for its own parseDOM rule to match.
208
+ if ((0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_preserve_mention_on_paste') && imageTag.closest('[data-mention-id]')) {
209
+ return;
210
+ }
211
+
203
212
  // Bypass mediaInline images - don't hoist images that are inside a mediaInline wrapper
204
213
  // as this would break parseDOM matching for mediaInline nodes
205
214
  // We remove the img from the DOM since mediaInline is a leaf node with no content
@@ -2,6 +2,7 @@ import { DEFAULT_IMAGE_WIDTH } from '@atlaskit/editor-common/media-single';
2
2
  import { mapSlice, removeNestedEmptyEls, unwrap, walkUpTreeUntil } from '@atlaskit/editor-common/utils';
3
3
  import { hasParentNodeOfType } from '@atlaskit/editor-prosemirror/utils';
4
4
  import { getRandomHex } from '@atlaskit/media-common';
5
+ import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
5
6
  /**
6
7
  * Ensure correct layout in nested mode
7
8
  *
@@ -196,6 +197,14 @@ export const unwrapNestedMediaElements = html => {
196
197
  return;
197
198
  }
198
199
 
200
+ // Bypass mention avatars - a mention's avatar <img> is nested only inside <span>s
201
+ // (never a valid container), so it would otherwise get hoisted out of the mention's
202
+ // DOM subtree and parsed as a standalone image instead of leaving the mention intact
203
+ // for its own parseDOM rule to match.
204
+ if (isExperimentEnabled('platform_editor_preserve_mention_on_paste') && imageTag.closest('[data-mention-id]')) {
205
+ return;
206
+ }
207
+
199
208
  // Bypass mediaInline images - don't hoist images that are inside a mediaInline wrapper
200
209
  // as this would break parseDOM matching for mediaInline nodes
201
210
  // We remove the img from the DOM since mediaInline is a leaf node with no content
@@ -5,6 +5,7 @@ import { DEFAULT_IMAGE_WIDTH } from '@atlaskit/editor-common/media-single';
5
5
  import { mapSlice, removeNestedEmptyEls, unwrap, walkUpTreeUntil } from '@atlaskit/editor-common/utils';
6
6
  import { hasParentNodeOfType } from '@atlaskit/editor-prosemirror/utils';
7
7
  import { getRandomHex } from '@atlaskit/media-common';
8
+ import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
8
9
  /**
9
10
  * Ensure correct layout in nested mode
10
11
  *
@@ -191,6 +192,14 @@ export var unwrapNestedMediaElements = function unwrapNestedMediaElements(html)
191
192
  return;
192
193
  }
193
194
 
195
+ // Bypass mention avatars - a mention's avatar <img> is nested only inside <span>s
196
+ // (never a valid container), so it would otherwise get hoisted out of the mention's
197
+ // DOM subtree and parsed as a standalone image instead of leaving the mention intact
198
+ // for its own parseDOM rule to match.
199
+ if (isExperimentEnabled('platform_editor_preserve_mention_on_paste') && imageTag.closest('[data-mention-id]')) {
200
+ return;
201
+ }
202
+
194
203
  // Bypass mediaInline images - don't hoist images that are inside a mediaInline wrapper
195
204
  // as this would break parseDOM matching for mediaInline nodes
196
205
  // We remove the img from the DOM since mediaInline is a leaf node with no content
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-paste",
3
- "version": "17.1.7",
3
+ "version": "17.1.8",
4
4
  "description": "Paste plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -19,8 +19,8 @@
19
19
  "sideEffects": false,
20
20
  "atlaskit:src": "src/index.ts",
21
21
  "dependencies": {
22
- "@atlaskit/adf-schema": "^57.2.0",
23
- "@atlaskit/adf-utils": "^20.8.0",
22
+ "@atlaskit/adf-schema": "^57.3.0",
23
+ "@atlaskit/adf-utils": "^20.9.0",
24
24
  "@atlaskit/code": "^19.2.0",
25
25
  "@atlaskit/editor-markdown-transformer": "^6.3.0",
26
26
  "@atlaskit/editor-plugin-analytics": "^16.1.0",
@@ -39,7 +39,7 @@
39
39
  "@atlaskit/icon": "^37.6.0",
40
40
  "@atlaskit/insm": "^3.0.0",
41
41
  "@atlaskit/linking-common": "^12.1.0",
42
- "@atlaskit/media-client": "^37.6.0",
42
+ "@atlaskit/media-client": "^37.7.0",
43
43
  "@atlaskit/media-common": "^14.6.0",
44
44
  "@atlaskit/platform-feature-experiments": "^0.3.0",
45
45
  "@atlaskit/platform-feature-flags": "^2.2.0",
@@ -51,7 +51,7 @@
51
51
  "uuid": "^3.1.0"
52
52
  },
53
53
  "peerDependencies": {
54
- "@atlaskit/editor-common": "^120.12.0",
54
+ "@atlaskit/editor-common": "^120.13.0",
55
55
  "react": "^18.2.0 || ^19.2.0",
56
56
  "react-dom": "^18.2.0 || ^19.2.0",
57
57
  "react-intl": "^5.25.1 || ^6.0.0 || ^7.0.0"