@atlaskit/editor-plugin-paste 2.1.2 → 2.2.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 +28 -0
- package/dist/cjs/pm-plugins/analytics.js +2 -2
- package/dist/cjs/pm-plugins/main.js +9 -3
- package/dist/cjs/pm-plugins/util/handlers.js +1 -16
- package/dist/es2019/pm-plugins/analytics.js +2 -2
- package/dist/es2019/pm-plugins/main.js +10 -4
- package/dist/es2019/pm-plugins/util/handlers.js +1 -16
- package/dist/esm/pm-plugins/analytics.js +2 -2
- package/dist/esm/pm-plugins/main.js +10 -4
- package/dist/esm/pm-plugins/util/handlers.js +1 -16
- package/dist/types/pm-plugins/analytics.d.ts +1 -1
- package/dist/types/pm-plugins/util/handlers.d.ts +1 -1
- package/dist/types-ts4.5/pm-plugins/analytics.d.ts +1 -1
- package/dist/types-ts4.5/pm-plugins/util/handlers.d.ts +1 -1
- package/package.json +23 -20
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-paste
|
|
2
2
|
|
|
3
|
+
## 2.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#105322](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/105322)
|
|
8
|
+
[`8876083532adc`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/8876083532adc) -
|
|
9
|
+
Bumped editor-prosemirror version to 7.0.0
|
|
10
|
+
- [#111139](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/111139)
|
|
11
|
+
[`1e01e9f84d512`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/1e01e9f84d512) -
|
|
12
|
+
[ED-26430] Strip legacy content macro from pasted content
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Updated dependencies
|
|
17
|
+
|
|
18
|
+
## 2.1.3
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- [#107782](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/107782)
|
|
23
|
+
[`bc422d0adbbb5`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/bc422d0adbbb5) -
|
|
24
|
+
[ux] ED-26378 remove editor_nest_media_and_codeblock_in_quotes_jira
|
|
25
|
+
- [#107782](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/107782)
|
|
26
|
+
[`cccc7a8347929`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/cccc7a8347929) -
|
|
27
|
+
[ux] ED-26378 Remove editor_nest_media_and_codeblock_in_quotes_jira and
|
|
28
|
+
nestMediaAndCodeblockInQuote
|
|
29
|
+
- Updated dependencies
|
|
30
|
+
|
|
3
31
|
## 2.1.2
|
|
4
32
|
|
|
5
33
|
### Patch Changes
|
|
@@ -314,11 +314,11 @@ var handleMarkdownWithAnalytics = exports.handleMarkdownWithAnalytics = function
|
|
|
314
314
|
type: _analytics.PasteTypes.markdown
|
|
315
315
|
}))((0, _handlers.handleMarkdown)(slice, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$c3 = pluginInjectionApi.card) === null || _pluginInjectionApi$c3 === void 0 || (_pluginInjectionApi$c3 = _pluginInjectionApi$c3.actions) === null || _pluginInjectionApi$c3 === void 0 ? void 0 : _pluginInjectionApi$c3.queueCardsFromChangedTr));
|
|
316
316
|
};
|
|
317
|
-
var handleRichTextWithAnalytics = exports.handleRichTextWithAnalytics = function handleRichTextWithAnalytics(view, event, slice, pluginInjectionApi
|
|
317
|
+
var handleRichTextWithAnalytics = exports.handleRichTextWithAnalytics = function handleRichTextWithAnalytics(view, event, slice, pluginInjectionApi) {
|
|
318
318
|
var _pluginInjectionApi$a4, _pluginInjectionApi$c4;
|
|
319
319
|
return injectAnalyticsPayloadBeforeCommand(pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a4 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a4 === void 0 ? void 0 : _pluginInjectionApi$a4.actions)(createPasteAnalyticsPayloadBySelection(event, slice, {
|
|
320
320
|
type: _analytics.PasteTypes.richText
|
|
321
|
-
}, pluginInjectionApi))((0, _handlers.handleRichText)(slice, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$c4 = pluginInjectionApi.card) === null || _pluginInjectionApi$c4 === void 0 || (_pluginInjectionApi$c4 = _pluginInjectionApi$c4.actions) === null || _pluginInjectionApi$c4 === void 0 ? void 0 : _pluginInjectionApi$c4.queueCardsFromChangedTr
|
|
321
|
+
}, pluginInjectionApi))((0, _handlers.handleRichText)(slice, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$c4 = pluginInjectionApi.card) === null || _pluginInjectionApi$c4 === void 0 || (_pluginInjectionApi$c4 = _pluginInjectionApi$c4.actions) === null || _pluginInjectionApi$c4 === void 0 ? void 0 : _pluginInjectionApi$c4.queueCardsFromChangedTr));
|
|
322
322
|
};
|
|
323
323
|
var injectAnalyticsPayloadBeforeCommand = function injectAnalyticsPayloadBeforeCommand(editorAnalyticsAPI) {
|
|
324
324
|
return function (createPayloadByTransaction) {
|
|
@@ -406,7 +406,7 @@ function createPlugin(schema, dispatchAnalyticsEvent, dispatch, featureFlags, pl
|
|
|
406
406
|
|
|
407
407
|
// finally, handle rich-text copy-paste
|
|
408
408
|
if (isRichText || isNestedMarkdownTable) {
|
|
409
|
-
var _pluginInjectionApi$c2, _pluginInjectionApi$e2, _pluginInjectionApi$f, _pluginInjectionApi$l
|
|
409
|
+
var _pluginInjectionApi$c2, _pluginInjectionApi$e2, _pluginInjectionApi$f, _pluginInjectionApi$l;
|
|
410
410
|
// linkify the text where possible
|
|
411
411
|
slice = (0, _utils.linkifyContent)(state.schema)(slice);
|
|
412
412
|
if ((0, _analytics2.handlePasteLinkOnSelectedTextWithAnalytics)(editorAnalyticsAPI)(view, event, slice, _analytics.PasteTypes.richText)(state, dispatch)) {
|
|
@@ -475,8 +475,7 @@ function createPlugin(schema, dispatchAnalyticsEvent, dispatch, featureFlags, pl
|
|
|
475
475
|
if ((0, _analytics2.handlePasteNonNestableBlockNodesIntoListWithAnalytics)(editorAnalyticsAPI)(view, event, slice)(state, dispatch)) {
|
|
476
476
|
return true;
|
|
477
477
|
}
|
|
478
|
-
|
|
479
|
-
return (0, _analytics2.handleRichTextWithAnalytics)(view, event, slice, pluginInjectionApi, isNestingMediaOrCodeblockSupported)(state, dispatch);
|
|
478
|
+
return (0, _analytics2.handleRichTextWithAnalytics)(view, event, slice, pluginInjectionApi)(state, dispatch);
|
|
480
479
|
}
|
|
481
480
|
return false;
|
|
482
481
|
},
|
|
@@ -507,6 +506,13 @@ function createPlugin(schema, dispatchAnalyticsEvent, dispatch, featureFlags, pl
|
|
|
507
506
|
if ((0, _platformFeatureFlags.fg)('platform_editor_advanced_layouts_post_fix_patch_2')) {
|
|
508
507
|
slice = (0, _transforms.transformSingleColumnLayout)(slice, schema);
|
|
509
508
|
}
|
|
509
|
+
|
|
510
|
+
// Strip Legacy Content Macro (LCM) extensions on paste
|
|
511
|
+
if (
|
|
512
|
+
// eslint-disable-next-line @atlaskit/platform/no-preconditioning
|
|
513
|
+
(0, _platformFeatureFlags.fg)('platform_editor_legacy_content_macro') && !(0, _platformFeatureFlags.fg)('platform_editor_legacy_content_macro_insert')) {
|
|
514
|
+
slice = (0, _transforms.transformSliceToRemoveLegacyContentMacro)(slice, schema);
|
|
515
|
+
}
|
|
510
516
|
return slice;
|
|
511
517
|
},
|
|
512
518
|
transformPastedHTML: function transformPastedHTML(html) {
|
|
@@ -44,7 +44,6 @@ var _utils3 = require("@atlaskit/editor-tables/utils");
|
|
|
44
44
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
45
45
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
46
46
|
var _commands = require("../../editor-commands/commands");
|
|
47
|
-
var _main = require("../main");
|
|
48
47
|
var _pluginFactory = require("../plugin-factory");
|
|
49
48
|
var _edgeCases = require("./edge-cases");
|
|
50
49
|
var _lists = require("./edge-cases/lists");
|
|
@@ -971,11 +970,10 @@ function flattenNestedListInSlice(slice) {
|
|
|
971
970
|
var contentWithFlattenedList = slice.content.replaceChild(0, listToFlatten.type.createChecked(listToFlatten.attrs, leafListItems));
|
|
972
971
|
return new _model.Slice(contentWithFlattenedList, slice.openEnd, slice.openEnd);
|
|
973
972
|
}
|
|
974
|
-
function handleRichText(slice, queueCardsFromChangedTr
|
|
973
|
+
function handleRichText(slice, queueCardsFromChangedTr) {
|
|
975
974
|
return function (state, dispatch) {
|
|
976
975
|
var _slice$content, _slice$content2, _firstChildOfSlice$ty, _lastChildOfSlice$typ, _panelParentOverCurre;
|
|
977
976
|
var _state$schema$nodes4 = state.schema.nodes,
|
|
978
|
-
blockquote = _state$schema$nodes4.blockquote,
|
|
979
977
|
codeBlock = _state$schema$nodes4.codeBlock,
|
|
980
978
|
heading = _state$schema$nodes4.heading,
|
|
981
979
|
paragraph = _state$schema$nodes4.paragraph,
|
|
@@ -1010,25 +1008,12 @@ function handleRichText(slice, queueCardsFromChangedTr, isNestingMediaOrCodebloc
|
|
|
1010
1008
|
var noNeedForSafeInsert = selection.$to.node().type.validContent(slice.content) || textNodes.includes(selection.$to.node().type) && selectionParent.type.validContent(slice.content);
|
|
1011
1009
|
var panelParentOverCurrentSelection = (0, _utils2.findParentNodeOfType)(panel)(tr.selection);
|
|
1012
1010
|
var isTargetPanelEmpty = panelParentOverCurrentSelection && ((_panelParentOverCurre = panelParentOverCurrentSelection.node) === null || _panelParentOverCurre === void 0 ? void 0 : _panelParentOverCurre.content.size) === 2;
|
|
1013
|
-
var sliceContainsCodeblockOrMedia = false;
|
|
1014
|
-
var codeBlockAndMediaNodes = ['codeBlock', 'mediaSingle', 'mediaGroup'];
|
|
1015
|
-
slice.content.forEach(function (child) {
|
|
1016
|
-
if (codeBlockAndMediaNodes.includes(child.type.name)) {
|
|
1017
|
-
sliceContainsCodeblockOrMedia = true;
|
|
1018
|
-
}
|
|
1019
|
-
});
|
|
1020
|
-
var blockquoteNode = (0, _utils2.findParentNodeOfType)(blockquote)(tr.selection);
|
|
1021
1011
|
if (!isSliceContentTaskListNodes && (isSliceContentListNodes || isTargetPanelEmpty)) {
|
|
1022
1012
|
(0, _edgeCases.insertSliceForLists)({
|
|
1023
1013
|
tr: tr,
|
|
1024
1014
|
slice: slice,
|
|
1025
1015
|
schema: schema
|
|
1026
1016
|
});
|
|
1027
|
-
} else if (
|
|
1028
|
-
// If nesting media or codeblock in blockquote is not supported
|
|
1029
|
-
// we want to insert slice after the blockquote.
|
|
1030
|
-
(0, _main.isInsideBlockQuote)(state) && sliceContainsCodeblockOrMedia && !isNestingMediaOrCodeblockSupported && blockquoteNode) {
|
|
1031
|
-
tr = (0, _utils2.safeInsert)(slice.content, blockquoteNode.start + blockquoteNode.node.nodeSize - 1)(tr);
|
|
1032
1017
|
} else if (noNeedForSafeInsert) {
|
|
1033
1018
|
var _firstChildOfSlice$ty2, _firstChildOfSlice$co, _firstChildOfSlice$co2;
|
|
1034
1019
|
if ((firstChildOfSlice === null || firstChildOfSlice === void 0 || (_firstChildOfSlice$ty2 = firstChildOfSlice.type) === null || _firstChildOfSlice$ty2 === void 0 ? void 0 : _firstChildOfSlice$ty2.name) === 'blockquote' && firstChildOfSlice !== null && firstChildOfSlice !== void 0 && (_firstChildOfSlice$co = firstChildOfSlice.content.firstChild) !== null && _firstChildOfSlice$co !== void 0 && _firstChildOfSlice$co.type.name && ['bulletList', 'orderedList', 'mediaSingle'].includes(firstChildOfSlice === null || firstChildOfSlice === void 0 || (_firstChildOfSlice$co2 = firstChildOfSlice.content.firstChild) === null || _firstChildOfSlice$co2 === void 0 ? void 0 : _firstChildOfSlice$co2.type.name)) {
|
|
@@ -291,11 +291,11 @@ export const handleMarkdownWithAnalytics = (view, event, slice, pluginInjectionA
|
|
|
291
291
|
type: PasteTypes.markdown
|
|
292
292
|
}))(handleMarkdown(slice, pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$c5 = pluginInjectionApi.card) === null || _pluginInjectionApi$c5 === void 0 ? void 0 : (_pluginInjectionApi$c6 = _pluginInjectionApi$c5.actions) === null || _pluginInjectionApi$c6 === void 0 ? void 0 : _pluginInjectionApi$c6.queueCardsFromChangedTr));
|
|
293
293
|
};
|
|
294
|
-
export const handleRichTextWithAnalytics = (view, event, slice, pluginInjectionApi
|
|
294
|
+
export const handleRichTextWithAnalytics = (view, event, slice, pluginInjectionApi) => {
|
|
295
295
|
var _pluginInjectionApi$a4, _pluginInjectionApi$c7, _pluginInjectionApi$c8;
|
|
296
296
|
return injectAnalyticsPayloadBeforeCommand(pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$a4 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a4 === void 0 ? void 0 : _pluginInjectionApi$a4.actions)(createPasteAnalyticsPayloadBySelection(event, slice, {
|
|
297
297
|
type: PasteTypes.richText
|
|
298
|
-
}, pluginInjectionApi))(handleRichText(slice, pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$c7 = pluginInjectionApi.card) === null || _pluginInjectionApi$c7 === void 0 ? void 0 : (_pluginInjectionApi$c8 = _pluginInjectionApi$c7.actions) === null || _pluginInjectionApi$c8 === void 0 ? void 0 : _pluginInjectionApi$c8.queueCardsFromChangedTr
|
|
298
|
+
}, pluginInjectionApi))(handleRichText(slice, pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$c7 = pluginInjectionApi.card) === null || _pluginInjectionApi$c7 === void 0 ? void 0 : (_pluginInjectionApi$c8 = _pluginInjectionApi$c7.actions) === null || _pluginInjectionApi$c8 === void 0 ? void 0 : _pluginInjectionApi$c8.queueCardsFromChangedTr));
|
|
299
299
|
};
|
|
300
300
|
const injectAnalyticsPayloadBeforeCommand = editorAnalyticsAPI => createPayloadByTransaction => {
|
|
301
301
|
return mainCommand => {
|
|
@@ -6,7 +6,7 @@ import { getExtensionAutoConvertersFromProvider } from '@atlaskit/editor-common/
|
|
|
6
6
|
import { isPastedFile as isPastedFileFromEvent, md } from '@atlaskit/editor-common/paste';
|
|
7
7
|
import { measureRender } from '@atlaskit/editor-common/performance/measure-render';
|
|
8
8
|
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
9
|
-
import { transformSingleLineCodeBlockToCodeMark, transformSingleColumnLayout, transformSliceNestedExpandToExpand, transformSliceToDecisionList, transformSliceToJoinAdjacentCodeBlocks } from '@atlaskit/editor-common/transforms';
|
|
9
|
+
import { transformSingleLineCodeBlockToCodeMark, transformSingleColumnLayout, transformSliceNestedExpandToExpand, transformSliceToDecisionList, transformSliceToJoinAdjacentCodeBlocks, transformSliceToRemoveLegacyContentMacro } from '@atlaskit/editor-common/transforms';
|
|
10
10
|
import { containsAnyAnnotations, extractSliceFromStep, linkifyContent, mapChildren } from '@atlaskit/editor-common/utils';
|
|
11
11
|
import { MarkdownTransformer } from '@atlaskit/editor-markdown-transformer';
|
|
12
12
|
import { Fragment, Slice } from '@atlaskit/editor-prosemirror/model';
|
|
@@ -382,7 +382,7 @@ export function createPlugin(schema, dispatchAnalyticsEvent, dispatch, featureFl
|
|
|
382
382
|
|
|
383
383
|
// finally, handle rich-text copy-paste
|
|
384
384
|
if (isRichText || isNestedMarkdownTable) {
|
|
385
|
-
var _pluginInjectionApi$c3, _pluginInjectionApi$c4, _pluginInjectionApi$e3, _pluginInjectionApi$e4, _pluginInjectionApi$f, _pluginInjectionApi$f2, _pluginInjectionApi$l
|
|
385
|
+
var _pluginInjectionApi$c3, _pluginInjectionApi$c4, _pluginInjectionApi$e3, _pluginInjectionApi$e4, _pluginInjectionApi$f, _pluginInjectionApi$f2, _pluginInjectionApi$l;
|
|
386
386
|
// linkify the text where possible
|
|
387
387
|
slice = linkifyContent(state.schema)(slice);
|
|
388
388
|
if (handlePasteLinkOnSelectedTextWithAnalytics(editorAnalyticsAPI)(view, event, slice, PasteTypes.richText)(state, dispatch)) {
|
|
@@ -449,8 +449,7 @@ export function createPlugin(schema, dispatchAnalyticsEvent, dispatch, featureFl
|
|
|
449
449
|
if (handlePasteNonNestableBlockNodesIntoListWithAnalytics(editorAnalyticsAPI)(view, event, slice)(state, dispatch)) {
|
|
450
450
|
return true;
|
|
451
451
|
}
|
|
452
|
-
|
|
453
|
-
return handleRichTextWithAnalytics(view, event, slice, pluginInjectionApi, isNestingMediaOrCodeblockSupported)(state, dispatch);
|
|
452
|
+
return handleRichTextWithAnalytics(view, event, slice, pluginInjectionApi)(state, dispatch);
|
|
454
453
|
}
|
|
455
454
|
return false;
|
|
456
455
|
},
|
|
@@ -481,6 +480,13 @@ export function createPlugin(schema, dispatchAnalyticsEvent, dispatch, featureFl
|
|
|
481
480
|
if (fg('platform_editor_advanced_layouts_post_fix_patch_2')) {
|
|
482
481
|
slice = transformSingleColumnLayout(slice, schema);
|
|
483
482
|
}
|
|
483
|
+
|
|
484
|
+
// Strip Legacy Content Macro (LCM) extensions on paste
|
|
485
|
+
if (
|
|
486
|
+
// eslint-disable-next-line @atlaskit/platform/no-preconditioning
|
|
487
|
+
fg('platform_editor_legacy_content_macro') && !fg('platform_editor_legacy_content_macro_insert')) {
|
|
488
|
+
slice = transformSliceToRemoveLegacyContentMacro(slice, schema);
|
|
489
|
+
}
|
|
484
490
|
return slice;
|
|
485
491
|
},
|
|
486
492
|
transformPastedHTML(html) {
|
|
@@ -15,7 +15,6 @@ import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
|
15
15
|
// TODO: ED-20519 Needs Macro extraction
|
|
16
16
|
|
|
17
17
|
import { startTrackingPastedMacroPositions, stopTrackingPastedMacroPositions } from '../../editor-commands/commands';
|
|
18
|
-
import { isInsideBlockQuote } from '../main';
|
|
19
18
|
import { getPluginState as getPastePluginState } from '../plugin-factory';
|
|
20
19
|
import { insertSliceForLists, insertSliceForTaskInsideList, insertSliceInsideBlockquote, updateSelectionAfterReplace } from './edge-cases';
|
|
21
20
|
import { insertSliceInsideOfPanelNodeSelected } from './edge-cases/lists';
|
|
@@ -951,11 +950,10 @@ export function flattenNestedListInSlice(slice) {
|
|
|
951
950
|
const contentWithFlattenedList = slice.content.replaceChild(0, listToFlatten.type.createChecked(listToFlatten.attrs, leafListItems));
|
|
952
951
|
return new Slice(contentWithFlattenedList, slice.openEnd, slice.openEnd);
|
|
953
952
|
}
|
|
954
|
-
export function handleRichText(slice, queueCardsFromChangedTr
|
|
953
|
+
export function handleRichText(slice, queueCardsFromChangedTr) {
|
|
955
954
|
return (state, dispatch) => {
|
|
956
955
|
var _slice$content, _slice$content2, _firstChildOfSlice$ty, _lastChildOfSlice$typ, _panelParentOverCurre;
|
|
957
956
|
const {
|
|
958
|
-
blockquote,
|
|
959
957
|
codeBlock,
|
|
960
958
|
heading,
|
|
961
959
|
paragraph,
|
|
@@ -993,25 +991,12 @@ export function handleRichText(slice, queueCardsFromChangedTr, isNestingMediaOrC
|
|
|
993
991
|
const noNeedForSafeInsert = selection.$to.node().type.validContent(slice.content) || textNodes.includes(selection.$to.node().type) && selectionParent.type.validContent(slice.content);
|
|
994
992
|
const panelParentOverCurrentSelection = findParentNodeOfType(panel)(tr.selection);
|
|
995
993
|
const isTargetPanelEmpty = panelParentOverCurrentSelection && ((_panelParentOverCurre = panelParentOverCurrentSelection.node) === null || _panelParentOverCurre === void 0 ? void 0 : _panelParentOverCurre.content.size) === 2;
|
|
996
|
-
let sliceContainsCodeblockOrMedia = false;
|
|
997
|
-
const codeBlockAndMediaNodes = ['codeBlock', 'mediaSingle', 'mediaGroup'];
|
|
998
|
-
slice.content.forEach(child => {
|
|
999
|
-
if (codeBlockAndMediaNodes.includes(child.type.name)) {
|
|
1000
|
-
sliceContainsCodeblockOrMedia = true;
|
|
1001
|
-
}
|
|
1002
|
-
});
|
|
1003
|
-
const blockquoteNode = findParentNodeOfType(blockquote)(tr.selection);
|
|
1004
994
|
if (!isSliceContentTaskListNodes && (isSliceContentListNodes || isTargetPanelEmpty)) {
|
|
1005
995
|
insertSliceForLists({
|
|
1006
996
|
tr,
|
|
1007
997
|
slice,
|
|
1008
998
|
schema
|
|
1009
999
|
});
|
|
1010
|
-
} else if (
|
|
1011
|
-
// If nesting media or codeblock in blockquote is not supported
|
|
1012
|
-
// we want to insert slice after the blockquote.
|
|
1013
|
-
isInsideBlockQuote(state) && sliceContainsCodeblockOrMedia && !isNestingMediaOrCodeblockSupported && blockquoteNode) {
|
|
1014
|
-
tr = safeInsert(slice.content, blockquoteNode.start + blockquoteNode.node.nodeSize - 1)(tr);
|
|
1015
1000
|
} else if (noNeedForSafeInsert) {
|
|
1016
1001
|
var _firstChildOfSlice$ty2, _firstChildOfSlice$co, _firstChildOfSlice$co2;
|
|
1017
1002
|
if ((firstChildOfSlice === null || firstChildOfSlice === void 0 ? void 0 : (_firstChildOfSlice$ty2 = firstChildOfSlice.type) === null || _firstChildOfSlice$ty2 === void 0 ? void 0 : _firstChildOfSlice$ty2.name) === 'blockquote' && firstChildOfSlice !== null && firstChildOfSlice !== void 0 && (_firstChildOfSlice$co = firstChildOfSlice.content.firstChild) !== null && _firstChildOfSlice$co !== void 0 && _firstChildOfSlice$co.type.name && ['bulletList', 'orderedList', 'mediaSingle'].includes(firstChildOfSlice === null || firstChildOfSlice === void 0 ? void 0 : (_firstChildOfSlice$co2 = firstChildOfSlice.content.firstChild) === null || _firstChildOfSlice$co2 === void 0 ? void 0 : _firstChildOfSlice$co2.type.name)) {
|
|
@@ -302,11 +302,11 @@ export var handleMarkdownWithAnalytics = function handleMarkdownWithAnalytics(vi
|
|
|
302
302
|
type: PasteTypes.markdown
|
|
303
303
|
}))(handleMarkdown(slice, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$c3 = pluginInjectionApi.card) === null || _pluginInjectionApi$c3 === void 0 || (_pluginInjectionApi$c3 = _pluginInjectionApi$c3.actions) === null || _pluginInjectionApi$c3 === void 0 ? void 0 : _pluginInjectionApi$c3.queueCardsFromChangedTr));
|
|
304
304
|
};
|
|
305
|
-
export var handleRichTextWithAnalytics = function handleRichTextWithAnalytics(view, event, slice, pluginInjectionApi
|
|
305
|
+
export var handleRichTextWithAnalytics = function handleRichTextWithAnalytics(view, event, slice, pluginInjectionApi) {
|
|
306
306
|
var _pluginInjectionApi$a4, _pluginInjectionApi$c4;
|
|
307
307
|
return injectAnalyticsPayloadBeforeCommand(pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a4 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a4 === void 0 ? void 0 : _pluginInjectionApi$a4.actions)(createPasteAnalyticsPayloadBySelection(event, slice, {
|
|
308
308
|
type: PasteTypes.richText
|
|
309
|
-
}, pluginInjectionApi))(handleRichText(slice, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$c4 = pluginInjectionApi.card) === null || _pluginInjectionApi$c4 === void 0 || (_pluginInjectionApi$c4 = _pluginInjectionApi$c4.actions) === null || _pluginInjectionApi$c4 === void 0 ? void 0 : _pluginInjectionApi$c4.queueCardsFromChangedTr
|
|
309
|
+
}, pluginInjectionApi))(handleRichText(slice, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$c4 = pluginInjectionApi.card) === null || _pluginInjectionApi$c4 === void 0 || (_pluginInjectionApi$c4 = _pluginInjectionApi$c4.actions) === null || _pluginInjectionApi$c4 === void 0 ? void 0 : _pluginInjectionApi$c4.queueCardsFromChangedTr));
|
|
310
310
|
};
|
|
311
311
|
var injectAnalyticsPayloadBeforeCommand = function injectAnalyticsPayloadBeforeCommand(editorAnalyticsAPI) {
|
|
312
312
|
return function (createPayloadByTransaction) {
|
|
@@ -8,7 +8,7 @@ import { getExtensionAutoConvertersFromProvider } from '@atlaskit/editor-common/
|
|
|
8
8
|
import { isPastedFile as isPastedFileFromEvent, md } from '@atlaskit/editor-common/paste';
|
|
9
9
|
import { measureRender } from '@atlaskit/editor-common/performance/measure-render';
|
|
10
10
|
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
11
|
-
import { transformSingleLineCodeBlockToCodeMark, transformSingleColumnLayout, transformSliceNestedExpandToExpand, transformSliceToDecisionList, transformSliceToJoinAdjacentCodeBlocks } from '@atlaskit/editor-common/transforms';
|
|
11
|
+
import { transformSingleLineCodeBlockToCodeMark, transformSingleColumnLayout, transformSliceNestedExpandToExpand, transformSliceToDecisionList, transformSliceToJoinAdjacentCodeBlocks, transformSliceToRemoveLegacyContentMacro } from '@atlaskit/editor-common/transforms';
|
|
12
12
|
import { containsAnyAnnotations, extractSliceFromStep, linkifyContent, mapChildren } from '@atlaskit/editor-common/utils';
|
|
13
13
|
import { MarkdownTransformer } from '@atlaskit/editor-markdown-transformer';
|
|
14
14
|
import { Fragment, Slice } from '@atlaskit/editor-prosemirror/model';
|
|
@@ -398,7 +398,7 @@ export function createPlugin(schema, dispatchAnalyticsEvent, dispatch, featureFl
|
|
|
398
398
|
|
|
399
399
|
// finally, handle rich-text copy-paste
|
|
400
400
|
if (isRichText || isNestedMarkdownTable) {
|
|
401
|
-
var _pluginInjectionApi$c2, _pluginInjectionApi$e2, _pluginInjectionApi$f, _pluginInjectionApi$l
|
|
401
|
+
var _pluginInjectionApi$c2, _pluginInjectionApi$e2, _pluginInjectionApi$f, _pluginInjectionApi$l;
|
|
402
402
|
// linkify the text where possible
|
|
403
403
|
slice = linkifyContent(state.schema)(slice);
|
|
404
404
|
if (handlePasteLinkOnSelectedTextWithAnalytics(editorAnalyticsAPI)(view, event, slice, PasteTypes.richText)(state, dispatch)) {
|
|
@@ -467,8 +467,7 @@ export function createPlugin(schema, dispatchAnalyticsEvent, dispatch, featureFl
|
|
|
467
467
|
if (handlePasteNonNestableBlockNodesIntoListWithAnalytics(editorAnalyticsAPI)(view, event, slice)(state, dispatch)) {
|
|
468
468
|
return true;
|
|
469
469
|
}
|
|
470
|
-
|
|
471
|
-
return handleRichTextWithAnalytics(view, event, slice, pluginInjectionApi, isNestingMediaOrCodeblockSupported)(state, dispatch);
|
|
470
|
+
return handleRichTextWithAnalytics(view, event, slice, pluginInjectionApi)(state, dispatch);
|
|
472
471
|
}
|
|
473
472
|
return false;
|
|
474
473
|
},
|
|
@@ -499,6 +498,13 @@ export function createPlugin(schema, dispatchAnalyticsEvent, dispatch, featureFl
|
|
|
499
498
|
if (fg('platform_editor_advanced_layouts_post_fix_patch_2')) {
|
|
500
499
|
slice = transformSingleColumnLayout(slice, schema);
|
|
501
500
|
}
|
|
501
|
+
|
|
502
|
+
// Strip Legacy Content Macro (LCM) extensions on paste
|
|
503
|
+
if (
|
|
504
|
+
// eslint-disable-next-line @atlaskit/platform/no-preconditioning
|
|
505
|
+
fg('platform_editor_legacy_content_macro') && !fg('platform_editor_legacy_content_macro_insert')) {
|
|
506
|
+
slice = transformSliceToRemoveLegacyContentMacro(slice, schema);
|
|
507
|
+
}
|
|
502
508
|
return slice;
|
|
503
509
|
},
|
|
504
510
|
transformPastedHTML: function transformPastedHTML(html) {
|
|
@@ -23,7 +23,6 @@ import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
|
23
23
|
// TODO: ED-20519 Needs Macro extraction
|
|
24
24
|
|
|
25
25
|
import { startTrackingPastedMacroPositions, stopTrackingPastedMacroPositions } from '../../editor-commands/commands';
|
|
26
|
-
import { isInsideBlockQuote } from '../main';
|
|
27
26
|
import { getPluginState as getPastePluginState } from '../plugin-factory';
|
|
28
27
|
import { insertSliceForLists, insertSliceForTaskInsideList, insertSliceInsideBlockquote, updateSelectionAfterReplace } from './edge-cases';
|
|
29
28
|
import { insertSliceInsideOfPanelNodeSelected } from './edge-cases/lists';
|
|
@@ -945,11 +944,10 @@ export function flattenNestedListInSlice(slice) {
|
|
|
945
944
|
var contentWithFlattenedList = slice.content.replaceChild(0, listToFlatten.type.createChecked(listToFlatten.attrs, leafListItems));
|
|
946
945
|
return new Slice(contentWithFlattenedList, slice.openEnd, slice.openEnd);
|
|
947
946
|
}
|
|
948
|
-
export function handleRichText(slice, queueCardsFromChangedTr
|
|
947
|
+
export function handleRichText(slice, queueCardsFromChangedTr) {
|
|
949
948
|
return function (state, dispatch) {
|
|
950
949
|
var _slice$content, _slice$content2, _firstChildOfSlice$ty, _lastChildOfSlice$typ, _panelParentOverCurre;
|
|
951
950
|
var _state$schema$nodes4 = state.schema.nodes,
|
|
952
|
-
blockquote = _state$schema$nodes4.blockquote,
|
|
953
951
|
codeBlock = _state$schema$nodes4.codeBlock,
|
|
954
952
|
heading = _state$schema$nodes4.heading,
|
|
955
953
|
paragraph = _state$schema$nodes4.paragraph,
|
|
@@ -984,25 +982,12 @@ export function handleRichText(slice, queueCardsFromChangedTr, isNestingMediaOrC
|
|
|
984
982
|
var noNeedForSafeInsert = selection.$to.node().type.validContent(slice.content) || textNodes.includes(selection.$to.node().type) && selectionParent.type.validContent(slice.content);
|
|
985
983
|
var panelParentOverCurrentSelection = findParentNodeOfType(panel)(tr.selection);
|
|
986
984
|
var isTargetPanelEmpty = panelParentOverCurrentSelection && ((_panelParentOverCurre = panelParentOverCurrentSelection.node) === null || _panelParentOverCurre === void 0 ? void 0 : _panelParentOverCurre.content.size) === 2;
|
|
987
|
-
var sliceContainsCodeblockOrMedia = false;
|
|
988
|
-
var codeBlockAndMediaNodes = ['codeBlock', 'mediaSingle', 'mediaGroup'];
|
|
989
|
-
slice.content.forEach(function (child) {
|
|
990
|
-
if (codeBlockAndMediaNodes.includes(child.type.name)) {
|
|
991
|
-
sliceContainsCodeblockOrMedia = true;
|
|
992
|
-
}
|
|
993
|
-
});
|
|
994
|
-
var blockquoteNode = findParentNodeOfType(blockquote)(tr.selection);
|
|
995
985
|
if (!isSliceContentTaskListNodes && (isSliceContentListNodes || isTargetPanelEmpty)) {
|
|
996
986
|
insertSliceForLists({
|
|
997
987
|
tr: tr,
|
|
998
988
|
slice: slice,
|
|
999
989
|
schema: schema
|
|
1000
990
|
});
|
|
1001
|
-
} else if (
|
|
1002
|
-
// If nesting media or codeblock in blockquote is not supported
|
|
1003
|
-
// we want to insert slice after the blockquote.
|
|
1004
|
-
isInsideBlockQuote(state) && sliceContainsCodeblockOrMedia && !isNestingMediaOrCodeblockSupported && blockquoteNode) {
|
|
1005
|
-
tr = safeInsert(slice.content, blockquoteNode.start + blockquoteNode.node.nodeSize - 1)(tr);
|
|
1006
991
|
} else if (noNeedForSafeInsert) {
|
|
1007
992
|
var _firstChildOfSlice$ty2, _firstChildOfSlice$co, _firstChildOfSlice$co2;
|
|
1008
993
|
if ((firstChildOfSlice === null || firstChildOfSlice === void 0 || (_firstChildOfSlice$ty2 = firstChildOfSlice.type) === null || _firstChildOfSlice$ty2 === void 0 ? void 0 : _firstChildOfSlice$ty2.name) === 'blockquote' && firstChildOfSlice !== null && firstChildOfSlice !== void 0 && (_firstChildOfSlice$co = firstChildOfSlice.content.firstChild) !== null && _firstChildOfSlice$co !== void 0 && _firstChildOfSlice$co.type.name && ['bulletList', 'orderedList', 'mediaSingle'].includes(firstChildOfSlice === null || firstChildOfSlice === void 0 || (_firstChildOfSlice$co2 = firstChildOfSlice.content.firstChild) === null || _firstChildOfSlice$co2 === void 0 ? void 0 : _firstChildOfSlice$co2.type.name)) {
|
|
@@ -28,7 +28,7 @@ export declare const handleCodeBlockWithAnalytics: (editorAnalyticsAPI: EditorAn
|
|
|
28
28
|
export declare const handleMediaSingleWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => (view: EditorView, event: ClipboardEvent, slice: Slice, type: PasteType, insertMediaAsMediaSingle: InsertMediaAsMediaSingle | undefined) => Command;
|
|
29
29
|
export declare const handlePastePreservingMarksWithAnalytics: (view: EditorView, event: ClipboardEvent, slice: Slice, type: PasteType, pluginInjectionApi: ExtractInjectionAPI<PastePlugin> | undefined) => Command;
|
|
30
30
|
export declare const handleMarkdownWithAnalytics: (view: EditorView, event: ClipboardEvent, slice: Slice, pluginInjectionApi: ExtractInjectionAPI<PastePlugin> | undefined) => Command;
|
|
31
|
-
export declare const handleRichTextWithAnalytics: (view: EditorView, event: ClipboardEvent, slice: Slice, pluginInjectionApi: ExtractInjectionAPI<PastePlugin> | undefined
|
|
31
|
+
export declare const handleRichTextWithAnalytics: (view: EditorView, event: ClipboardEvent, slice: Slice, pluginInjectionApi: ExtractInjectionAPI<PastePlugin> | undefined) => Command;
|
|
32
32
|
export declare const handlePastePanelOrDecisionIntoListWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => (view: EditorView, event: ClipboardEvent, slice: Slice, findRootParentListNode: FindRootParentListNode | undefined) => Command;
|
|
33
33
|
export declare const handlePasteNonNestableBlockNodesIntoListWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => (view: EditorView, event: ClipboardEvent, slice: Slice) => Command;
|
|
34
34
|
export declare const handleExpandWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined, isNestingExpandsSupported: boolean) => (view: EditorView, event: ClipboardEvent, slice: Slice) => Command;
|
|
@@ -52,7 +52,7 @@ export declare function handleParagraphBlockMarks(state: EditorState, slice: Sli
|
|
|
52
52
|
* ┗━p -> "two"
|
|
53
53
|
*/
|
|
54
54
|
export declare function flattenNestedListInSlice(slice: Slice): Slice;
|
|
55
|
-
export declare function handleRichText(slice: Slice, queueCardsFromChangedTr: QueueCardsFromTransactionAction | undefined
|
|
55
|
+
export declare function handleRichText(slice: Slice, queueCardsFromChangedTr: QueueCardsFromTransactionAction | undefined): Command;
|
|
56
56
|
export declare function handlePasteIntoCaption(slice: Slice): Command;
|
|
57
57
|
export declare const handleSelectedTable: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => (slice: Slice) => Command;
|
|
58
58
|
export declare function checkTaskListInList(state: EditorState, slice: Slice): boolean;
|
|
@@ -28,7 +28,7 @@ export declare const handleCodeBlockWithAnalytics: (editorAnalyticsAPI: EditorAn
|
|
|
28
28
|
export declare const handleMediaSingleWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => (view: EditorView, event: ClipboardEvent, slice: Slice, type: PasteType, insertMediaAsMediaSingle: InsertMediaAsMediaSingle | undefined) => Command;
|
|
29
29
|
export declare const handlePastePreservingMarksWithAnalytics: (view: EditorView, event: ClipboardEvent, slice: Slice, type: PasteType, pluginInjectionApi: ExtractInjectionAPI<PastePlugin> | undefined) => Command;
|
|
30
30
|
export declare const handleMarkdownWithAnalytics: (view: EditorView, event: ClipboardEvent, slice: Slice, pluginInjectionApi: ExtractInjectionAPI<PastePlugin> | undefined) => Command;
|
|
31
|
-
export declare const handleRichTextWithAnalytics: (view: EditorView, event: ClipboardEvent, slice: Slice, pluginInjectionApi: ExtractInjectionAPI<PastePlugin> | undefined
|
|
31
|
+
export declare const handleRichTextWithAnalytics: (view: EditorView, event: ClipboardEvent, slice: Slice, pluginInjectionApi: ExtractInjectionAPI<PastePlugin> | undefined) => Command;
|
|
32
32
|
export declare const handlePastePanelOrDecisionIntoListWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => (view: EditorView, event: ClipboardEvent, slice: Slice, findRootParentListNode: FindRootParentListNode | undefined) => Command;
|
|
33
33
|
export declare const handlePasteNonNestableBlockNodesIntoListWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => (view: EditorView, event: ClipboardEvent, slice: Slice) => Command;
|
|
34
34
|
export declare const handleExpandWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined, isNestingExpandsSupported: boolean) => (view: EditorView, event: ClipboardEvent, slice: Slice) => Command;
|
|
@@ -52,7 +52,7 @@ export declare function handleParagraphBlockMarks(state: EditorState, slice: Sli
|
|
|
52
52
|
* ┗━p -> "two"
|
|
53
53
|
*/
|
|
54
54
|
export declare function flattenNestedListInSlice(slice: Slice): Slice;
|
|
55
|
-
export declare function handleRichText(slice: Slice, queueCardsFromChangedTr: QueueCardsFromTransactionAction | undefined
|
|
55
|
+
export declare function handleRichText(slice: Slice, queueCardsFromChangedTr: QueueCardsFromTransactionAction | undefined): Command;
|
|
56
56
|
export declare function handlePasteIntoCaption(slice: Slice): Command;
|
|
57
57
|
export declare const handleSelectedTable: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => (slice: Slice) => Command;
|
|
58
58
|
export declare function checkTaskListInList(state: EditorState, slice: Slice): boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-paste",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Paste plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -33,22 +33,22 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@atlaskit/adf-schema": "^46.1.0",
|
|
35
35
|
"@atlaskit/code": "^15.6.9",
|
|
36
|
-
"@atlaskit/editor-common": "^99.
|
|
37
|
-
"@atlaskit/editor-markdown-transformer": "^5.
|
|
38
|
-
"@atlaskit/editor-plugin-analytics": "^1.
|
|
39
|
-
"@atlaskit/editor-plugin-annotation": "^1.
|
|
40
|
-
"@atlaskit/editor-plugin-better-type-history": "^1.
|
|
41
|
-
"@atlaskit/editor-plugin-card": "^4.
|
|
42
|
-
"@atlaskit/editor-plugin-feature-flags": "^1.
|
|
43
|
-
"@atlaskit/editor-plugin-list": "^3.
|
|
44
|
-
"@atlaskit/editor-plugin-media": "^1.
|
|
45
|
-
"@atlaskit/editor-plugin-mentions": "^2.
|
|
46
|
-
"@atlaskit/editor-prosemirror": "
|
|
47
|
-
"@atlaskit/editor-tables": "^2.
|
|
36
|
+
"@atlaskit/editor-common": "^99.10.0",
|
|
37
|
+
"@atlaskit/editor-markdown-transformer": "^5.15.0",
|
|
38
|
+
"@atlaskit/editor-plugin-analytics": "^1.12.0",
|
|
39
|
+
"@atlaskit/editor-plugin-annotation": "^1.28.0",
|
|
40
|
+
"@atlaskit/editor-plugin-better-type-history": "^1.11.0",
|
|
41
|
+
"@atlaskit/editor-plugin-card": "^4.6.0",
|
|
42
|
+
"@atlaskit/editor-plugin-feature-flags": "^1.3.0",
|
|
43
|
+
"@atlaskit/editor-plugin-list": "^3.10.0",
|
|
44
|
+
"@atlaskit/editor-plugin-media": "^1.45.0",
|
|
45
|
+
"@atlaskit/editor-plugin-mentions": "^2.15.0",
|
|
46
|
+
"@atlaskit/editor-prosemirror": "7.0.0",
|
|
47
|
+
"@atlaskit/editor-tables": "^2.9.0",
|
|
48
48
|
"@atlaskit/media-client": "^31.1.0",
|
|
49
49
|
"@atlaskit/media-common": "^11.8.0",
|
|
50
50
|
"@atlaskit/platform-feature-flags": "^1.0.0",
|
|
51
|
-
"@atlaskit/tmp-editor-statsig": "^2.
|
|
51
|
+
"@atlaskit/tmp-editor-statsig": "^2.43.0",
|
|
52
52
|
"@babel/runtime": "^7.0.0",
|
|
53
53
|
"lodash": "^4.17.21",
|
|
54
54
|
"uuid": "^3.1.0"
|
|
@@ -59,9 +59,9 @@
|
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@af/visual-regression": "*",
|
|
62
|
-
"@atlaskit/editor-plugin-block-type": "^4.
|
|
63
|
-
"@atlaskit/editor-plugin-history": "^1.
|
|
64
|
-
"@atlaskit/editor-plugin-type-ahead": "^1.
|
|
62
|
+
"@atlaskit/editor-plugin-block-type": "^4.3.0",
|
|
63
|
+
"@atlaskit/editor-plugin-history": "^1.4.0",
|
|
64
|
+
"@atlaskit/editor-plugin-type-ahead": "^1.13.0",
|
|
65
65
|
"@atlaskit/ssr": "*",
|
|
66
66
|
"@atlaskit/visual-regression": "*",
|
|
67
67
|
"@testing-library/react": "^13.4.0",
|
|
@@ -114,9 +114,6 @@
|
|
|
114
114
|
"platform_editor_nest_nested_expand_in_expand_jira": {
|
|
115
115
|
"type": "boolean"
|
|
116
116
|
},
|
|
117
|
-
"editor_nest_media_and_codeblock_in_quotes_jira": {
|
|
118
|
-
"type": "boolean"
|
|
119
|
-
},
|
|
120
117
|
"platform_editor_use_nested_table_pm_nodes": {
|
|
121
118
|
"type": "boolean"
|
|
122
119
|
},
|
|
@@ -131,6 +128,12 @@
|
|
|
131
128
|
},
|
|
132
129
|
"platform_editor_fix_paste_action_item_in_list": {
|
|
133
130
|
"type": "boolean"
|
|
131
|
+
},
|
|
132
|
+
"platform_editor_legacy_content_macro": {
|
|
133
|
+
"type": "boolean"
|
|
134
|
+
},
|
|
135
|
+
"platform_editor_legacy_content_macro_insert": {
|
|
136
|
+
"type": "boolean"
|
|
134
137
|
}
|
|
135
138
|
}
|
|
136
139
|
}
|