@atlaskit/editor-plugin-paste 17.1.6 → 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 +19 -0
- package/dist/cjs/pm-plugins/main.js +1 -1
- package/dist/cjs/pm-plugins/media.js +9 -0
- package/dist/es2019/pm-plugins/main.js +1 -1
- package/dist/es2019/pm-plugins/media.js +9 -0
- package/dist/esm/pm-plugins/main.js +1 -1
- package/dist/esm/pm-plugins/media.js +9 -0
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
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
|
+
|
|
13
|
+
## 17.1.7
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- [`a6c26b16402ca`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/a6c26b16402ca) -
|
|
18
|
+
Migrate nine dogfooding editor experiments from `@atlaskit/tmp-editor-statsig` to the Platform
|
|
19
|
+
experiment API and move their tests to Platform experiment mocks.
|
|
20
|
+
- Updated dependencies
|
|
21
|
+
|
|
3
22
|
## 17.1.6
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
|
@@ -92,7 +92,7 @@ function createPlugin(schema, dispatchAnalyticsEvent, dispatch, featureFlags, pl
|
|
|
92
92
|
var editorAnalyticsAPI = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a === void 0 ? void 0 : _pluginInjectionApi$a.actions;
|
|
93
93
|
var atlassianMarkDownParser = new _editorMarkdownTransformer.MarkdownTransformer(schema, _paste.md);
|
|
94
94
|
function getMarkdownSlice(text, openStart, openEnd) {
|
|
95
|
-
if (markdownToPmConverter && (0,
|
|
95
|
+
if (markdownToPmConverter && (0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_paste_as_md_use_gfm')) {
|
|
96
96
|
return (0, _getMarkdownSlice.getMarkdownSliceViaGfm)(text, schema, openStart, openEnd, markdownToPmConverter, (0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_gfm_link_paste_fix'));
|
|
97
97
|
}
|
|
98
98
|
var escapedTextInput = (0, _util.escapeBackslashAndLinksExceptCodeBlock)(text);
|
|
@@ -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
|
|
@@ -81,7 +81,7 @@ export function createPlugin(schema, dispatchAnalyticsEvent, dispatch, featureFl
|
|
|
81
81
|
const editorAnalyticsAPI = pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$a = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a === void 0 ? void 0 : _pluginInjectionApi$a.actions;
|
|
82
82
|
const atlassianMarkDownParser = new MarkdownTransformer(schema, md);
|
|
83
83
|
function getMarkdownSlice(text, openStart, openEnd) {
|
|
84
|
-
if (markdownToPmConverter &&
|
|
84
|
+
if (markdownToPmConverter && isExperimentEnabled('platform_editor_paste_as_md_use_gfm')) {
|
|
85
85
|
return getMarkdownSliceViaGfm(text, schema, openStart, openEnd, markdownToPmConverter, isExperimentEnabled('platform_editor_gfm_link_paste_fix'));
|
|
86
86
|
}
|
|
87
87
|
const escapedTextInput = escapeBackslashAndLinksExceptCodeBlock(text);
|
|
@@ -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
|
|
@@ -84,7 +84,7 @@ export function createPlugin(schema, dispatchAnalyticsEvent, dispatch, featureFl
|
|
|
84
84
|
var editorAnalyticsAPI = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a === void 0 ? void 0 : _pluginInjectionApi$a.actions;
|
|
85
85
|
var atlassianMarkDownParser = new MarkdownTransformer(schema, md);
|
|
86
86
|
function getMarkdownSlice(text, openStart, openEnd) {
|
|
87
|
-
if (markdownToPmConverter &&
|
|
87
|
+
if (markdownToPmConverter && isExperimentEnabled('platform_editor_paste_as_md_use_gfm')) {
|
|
88
88
|
return getMarkdownSliceViaGfm(text, schema, openStart, openEnd, markdownToPmConverter, isExperimentEnabled('platform_editor_gfm_link_paste_fix'));
|
|
89
89
|
}
|
|
90
90
|
var escapedTextInput = escapeBackslashAndLinksExceptCodeBlock(text);
|
|
@@ -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.
|
|
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.
|
|
23
|
-
"@atlaskit/adf-utils": "^20.
|
|
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,19 +39,19 @@
|
|
|
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.
|
|
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",
|
|
46
46
|
"@atlaskit/prosemirror-history": "^1.2.0",
|
|
47
|
-
"@atlaskit/tmp-editor-statsig": "^
|
|
47
|
+
"@atlaskit/tmp-editor-statsig": "^174.0.0",
|
|
48
48
|
"@atlaskit/tokens": "^16.11.0",
|
|
49
49
|
"@babel/runtime": "^7.0.0",
|
|
50
50
|
"lodash": "^4.17.21",
|
|
51
51
|
"uuid": "^3.1.0"
|
|
52
52
|
},
|
|
53
53
|
"peerDependencies": {
|
|
54
|
-
"@atlaskit/editor-common": "^120.
|
|
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"
|