@atlaskit/editor-plugin-paste-options-toolbar 0.2.2 → 0.2.3
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 +6 -0
- package/dist/cjs/commands.js +24 -13
- package/dist/cjs/plugin.js +4 -8
- package/dist/cjs/pm-plugins/constants.js +3 -2
- package/dist/cjs/pm-plugins/plugin-factory.js +32 -2
- package/dist/cjs/toolbar.js +6 -6
- package/dist/cjs/util/format-handlers.js +15 -23
- package/dist/es2019/commands.js +24 -13
- package/dist/es2019/plugin.js +2 -7
- package/dist/es2019/pm-plugins/constants.js +2 -1
- package/dist/es2019/pm-plugins/plugin-factory.js +34 -2
- package/dist/es2019/toolbar.js +6 -6
- package/dist/es2019/util/format-handlers.js +15 -38
- package/dist/esm/commands.js +24 -13
- package/dist/esm/plugin.js +4 -8
- package/dist/esm/pm-plugins/constants.js +2 -1
- package/dist/esm/pm-plugins/plugin-factory.js +32 -2
- package/dist/esm/toolbar.js +6 -6
- package/dist/esm/util/format-handlers.js +15 -22
- package/dist/types/commands.d.ts +6 -6
- package/dist/types/pm-plugins/constants.d.ts +1 -0
- package/dist/types/toolbar.d.ts +2 -2
- package/dist/types/util/format-handlers.d.ts +5 -5
- package/dist/types-ts4.5/commands.d.ts +6 -6
- package/dist/types-ts4.5/pm-plugins/constants.d.ts +1 -0
- package/dist/types-ts4.5/toolbar.d.ts +2 -2
- package/dist/types-ts4.5/util/format-handlers.d.ts +5 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-paste-options-toolbar
|
|
2
2
|
|
|
3
|
+
## 0.2.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#42152](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/42152) [`0097171c562`](https://bitbucket.org/atlassian/atlassian-frontend/commits/0097171c562) - ED-19766-collab: Adding collab support for paste options toolbar for confluence
|
|
8
|
+
|
|
3
9
|
## 0.2.2
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
package/dist/cjs/commands.js
CHANGED
|
@@ -26,9 +26,13 @@ var showToolbar = exports.showToolbar = function showToolbar(lastContentPasted,
|
|
|
26
26
|
};
|
|
27
27
|
return (0, _pluginFactory.createCommand)(commandAction);
|
|
28
28
|
};
|
|
29
|
-
var changeToPlainText = exports.changeToPlainText = function changeToPlainText(
|
|
29
|
+
var changeToPlainText = exports.changeToPlainText = function changeToPlainText() {
|
|
30
30
|
var plaintextTransformer = function plaintextTransformer(tr, state) {
|
|
31
|
-
|
|
31
|
+
var pluginState = _types.pasteOptionsPluginKey.getState(state);
|
|
32
|
+
if (pluginState.selectedOption === _types.ToolbarDropdownOption.PlainText) {
|
|
33
|
+
return tr;
|
|
34
|
+
}
|
|
35
|
+
return (0, _formatHandlers.formatPlainText)(tr, pluginState);
|
|
32
36
|
};
|
|
33
37
|
var commandAction = function commandAction(editorState) {
|
|
34
38
|
return {
|
|
@@ -41,7 +45,7 @@ var changeToPlainText = exports.changeToPlainText = function changeToPlainText(p
|
|
|
41
45
|
return (0, _pluginFactory.createCommand)(commandAction, plaintextTransformer);
|
|
42
46
|
};
|
|
43
47
|
var changeToPlainTextWithAnalytics = exports.changeToPlainTextWithAnalytics = function changeToPlainTextWithAnalytics(editorAnalyticsAPI, sliceSize) {
|
|
44
|
-
return function (
|
|
48
|
+
return function () {
|
|
45
49
|
return (0, _editorAnalytics.withAnalytics)(editorAnalyticsAPI, {
|
|
46
50
|
action: _analytics.ACTION.PASTED,
|
|
47
51
|
actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
|
|
@@ -52,16 +56,19 @@ var changeToPlainTextWithAnalytics = exports.changeToPlainTextWithAnalytics = fu
|
|
|
52
56
|
content: _analytics.PasteContents.text,
|
|
53
57
|
pasteSize: sliceSize
|
|
54
58
|
}
|
|
55
|
-
})(changeToPlainText(
|
|
59
|
+
})(changeToPlainText());
|
|
56
60
|
};
|
|
57
61
|
};
|
|
58
62
|
var dropdownClickHandler = exports.dropdownClickHandler = function dropdownClickHandler() {
|
|
59
63
|
return highlightContent();
|
|
60
64
|
};
|
|
61
|
-
var changeToRichText = exports.changeToRichText = function changeToRichText(
|
|
65
|
+
var changeToRichText = exports.changeToRichText = function changeToRichText() {
|
|
62
66
|
var transformer = function transformer(tr, state) {
|
|
63
|
-
var
|
|
64
|
-
|
|
67
|
+
var pluginState = _types.pasteOptionsPluginKey.getState(state);
|
|
68
|
+
if (pluginState.selectedOption === _types.ToolbarDropdownOption.RichText) {
|
|
69
|
+
return tr;
|
|
70
|
+
}
|
|
71
|
+
return (0, _formatHandlers.formatRichText)(tr, pluginState);
|
|
65
72
|
};
|
|
66
73
|
var commandAction = function commandAction(editorState) {
|
|
67
74
|
return {
|
|
@@ -74,7 +81,7 @@ var changeToRichText = exports.changeToRichText = function changeToRichText(past
|
|
|
74
81
|
return (0, _pluginFactory.createCommand)(commandAction, transformer);
|
|
75
82
|
};
|
|
76
83
|
var changeToRichTextWithAnalytics = exports.changeToRichTextWithAnalytics = function changeToRichTextWithAnalytics(editorAnalyticsAPI) {
|
|
77
|
-
return function (
|
|
84
|
+
return function () {
|
|
78
85
|
var payloadCallback = function payloadCallback(state) {
|
|
79
86
|
var _pastePluginState$ric;
|
|
80
87
|
var pastePluginState = _types.pasteOptionsPluginKey.getState(state);
|
|
@@ -90,12 +97,16 @@ var changeToRichTextWithAnalytics = exports.changeToRichTextWithAnalytics = func
|
|
|
90
97
|
}
|
|
91
98
|
};
|
|
92
99
|
};
|
|
93
|
-
return (0, _editorAnalytics.withAnalytics)(editorAnalyticsAPI, payloadCallback)(changeToRichText(
|
|
100
|
+
return (0, _editorAnalytics.withAnalytics)(editorAnalyticsAPI, payloadCallback)(changeToRichText());
|
|
94
101
|
};
|
|
95
102
|
};
|
|
96
|
-
var changeToMarkDown = exports.changeToMarkDown = function changeToMarkDown(
|
|
103
|
+
var changeToMarkDown = exports.changeToMarkDown = function changeToMarkDown() {
|
|
97
104
|
var markdownTransformer = function markdownTransformer(tr, state) {
|
|
98
|
-
|
|
105
|
+
var pluginState = _types.pasteOptionsPluginKey.getState(state);
|
|
106
|
+
if (pluginState.selectedOption === _types.ToolbarDropdownOption.Markdown) {
|
|
107
|
+
return tr;
|
|
108
|
+
}
|
|
109
|
+
return (0, _formatHandlers.formatMarkdown)(tr, pluginState);
|
|
99
110
|
};
|
|
100
111
|
var commandAction = function commandAction(editorState) {
|
|
101
112
|
return {
|
|
@@ -108,7 +119,7 @@ var changeToMarkDown = exports.changeToMarkDown = function changeToMarkDown(past
|
|
|
108
119
|
return (0, _pluginFactory.createCommand)(commandAction, markdownTransformer);
|
|
109
120
|
};
|
|
110
121
|
var changeToMarkdownWithAnalytics = exports.changeToMarkdownWithAnalytics = function changeToMarkdownWithAnalytics(editorAnalyticsAPI, sliceSize) {
|
|
111
|
-
return function (
|
|
122
|
+
return function () {
|
|
112
123
|
return (0, _editorAnalytics.withAnalytics)(editorAnalyticsAPI, {
|
|
113
124
|
action: _analytics.ACTION.PASTED,
|
|
114
125
|
actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
|
|
@@ -119,7 +130,7 @@ var changeToMarkdownWithAnalytics = exports.changeToMarkdownWithAnalytics = func
|
|
|
119
130
|
content: _analytics.PasteContents.text,
|
|
120
131
|
pasteSize: sliceSize
|
|
121
132
|
}
|
|
122
|
-
})(changeToMarkDown(
|
|
133
|
+
})(changeToMarkDown());
|
|
123
134
|
};
|
|
124
135
|
};
|
|
125
136
|
var highlightContent = exports.highlightContent = function highlightContent() {
|
package/dist/cjs/plugin.js
CHANGED
|
@@ -29,18 +29,14 @@ var pasteOptionsToolbarPlugin = exports.pasteOptionsToolbarPlugin = function pas
|
|
|
29
29
|
pluginsOptions: {
|
|
30
30
|
floatingToolbar: function floatingToolbar(state, intl) {
|
|
31
31
|
var pastePluginState = _types.pasteOptionsPluginKey.getState(state);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
pasteStartPos = _ref3.pasteStartPos,
|
|
35
|
-
plaintext = _ref3.plaintext;
|
|
36
|
-
if (showToolbar) {
|
|
37
|
-
return (0, _toolbar.buildToolbar)(state, pasteStartPos, plaintext, intl, editorAnalyticsAPI);
|
|
32
|
+
if (pastePluginState.showToolbar) {
|
|
33
|
+
return (0, _toolbar.buildToolbar)(state, intl, editorAnalyticsAPI);
|
|
38
34
|
}
|
|
39
35
|
return;
|
|
40
36
|
}
|
|
41
37
|
},
|
|
42
|
-
usePluginHook: function usePluginHook(
|
|
43
|
-
var editorView =
|
|
38
|
+
usePluginHook: function usePluginHook(_ref3) {
|
|
39
|
+
var editorView = _ref3.editorView;
|
|
44
40
|
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['paste']),
|
|
45
41
|
pasteState = _useSharedPluginState.pasteState;
|
|
46
42
|
var lastContentPasted = pasteState === null || pasteState === void 0 ? void 0 : pasteState.lastContentPasted;
|
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.TEXT_HIGHLIGHT_CLASS = exports.PASTE_TOOLBAR_MENU_ID = exports.PASTE_TOOLBAR_ITEM_CLASS = exports.PASTE_TOOLBAR_CLASS = exports.PASTE_OPTIONS_TEST_ID = exports.PASTE_HIGHLIGHT_DECORATION_KEY = exports.EDITOR_WRAPPER_CLASS = void 0;
|
|
6
|
+
exports.TEXT_HIGHLIGHT_CLASS = exports.PASTE_TOOLBAR_MENU_ID = exports.PASTE_TOOLBAR_ITEM_CLASS = exports.PASTE_TOOLBAR_CLASS = exports.PASTE_OPTIONS_TEST_ID = exports.PASTE_OPTIONS_META_ID = exports.PASTE_HIGHLIGHT_DECORATION_KEY = exports.EDITOR_WRAPPER_CLASS = void 0;
|
|
7
7
|
var PASTE_TOOLBAR_CLASS = exports.PASTE_TOOLBAR_CLASS = 'ak-editor-paste-toolbar';
|
|
8
8
|
var PASTE_TOOLBAR_MENU_ID = exports.PASTE_TOOLBAR_MENU_ID = 'ak-editor-paste-toolbar-item-dropdownList';
|
|
9
9
|
var TEXT_HIGHLIGHT_CLASS = exports.TEXT_HIGHLIGHT_CLASS = 'text-highlight';
|
|
10
10
|
var PASTE_HIGHLIGHT_DECORATION_KEY = exports.PASTE_HIGHLIGHT_DECORATION_KEY = 'paste-highlight-decoration-key';
|
|
11
11
|
var PASTE_TOOLBAR_ITEM_CLASS = exports.PASTE_TOOLBAR_ITEM_CLASS = 'ak-editor-paste-toolbar-item';
|
|
12
12
|
var EDITOR_WRAPPER_CLASS = exports.EDITOR_WRAPPER_CLASS = 'akEditor';
|
|
13
|
-
var PASTE_OPTIONS_TEST_ID = exports.PASTE_OPTIONS_TEST_ID = 'paste-options-testid';
|
|
13
|
+
var PASTE_OPTIONS_TEST_ID = exports.PASTE_OPTIONS_TEST_ID = 'paste-options-testid';
|
|
14
|
+
var PASTE_OPTIONS_META_ID = exports.PASTE_OPTIONS_META_ID = 'paste-options$';
|
|
@@ -7,13 +7,36 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.getPluginState = exports.createPluginState = exports.createCommand = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _utils = require("@atlaskit/editor-common/utils");
|
|
10
|
+
var _actions = require("../actions");
|
|
10
11
|
var _reducer = require("../reducer");
|
|
11
12
|
var _types = require("../types");
|
|
13
|
+
var _constants = require("./constants");
|
|
12
14
|
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; }
|
|
13
15
|
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; }
|
|
14
16
|
var _pluginFactory = (0, _utils.pluginFactory)(_types.pasteOptionsPluginKey, _reducer.reducer, {
|
|
15
17
|
mapping: function mapping(tr, pluginState) {
|
|
16
|
-
|
|
18
|
+
if (!tr.docChanged || !pluginState.showToolbar) {
|
|
19
|
+
return pluginState;
|
|
20
|
+
}
|
|
21
|
+
var oldPasteStartPos = pluginState.pasteStartPos;
|
|
22
|
+
var oldPasteEndPos = pluginState.pasteEndPos;
|
|
23
|
+
var newPasteStartPos = tr.mapping.map(oldPasteStartPos);
|
|
24
|
+
var newPasteEndPos = tr.mapping.map(oldPasteEndPos);
|
|
25
|
+
|
|
26
|
+
//this is true when user changes format from the toolbar.
|
|
27
|
+
//only change pasteEndPos in this case
|
|
28
|
+
if (changedFormatFromToolbar(tr)) {
|
|
29
|
+
return _objectSpread(_objectSpread({}, pluginState), {}, {
|
|
30
|
+
pasteEndPos: newPasteEndPos
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
if (oldPasteStartPos === newPasteStartPos && oldPasteEndPos === newPasteEndPos) {
|
|
34
|
+
return pluginState;
|
|
35
|
+
}
|
|
36
|
+
return _objectSpread(_objectSpread({}, pluginState), {}, {
|
|
37
|
+
pasteStartPos: newPasteStartPos,
|
|
38
|
+
pasteEndPos: newPasteEndPos
|
|
39
|
+
});
|
|
17
40
|
},
|
|
18
41
|
onSelectionChanged: function onSelectionChanged(tr, pluginState) {
|
|
19
42
|
// Detect click outside the editor
|
|
@@ -28,4 +51,11 @@ var _pluginFactory = (0, _utils.pluginFactory)(_types.pasteOptionsPluginKey, _re
|
|
|
28
51
|
}),
|
|
29
52
|
createPluginState = exports.createPluginState = _pluginFactory.createPluginState,
|
|
30
53
|
createCommand = exports.createCommand = _pluginFactory.createCommand,
|
|
31
|
-
getPluginState = exports.getPluginState = _pluginFactory.getPluginState;
|
|
54
|
+
getPluginState = exports.getPluginState = _pluginFactory.getPluginState;
|
|
55
|
+
var changedFormatFromToolbar = function changedFormatFromToolbar(tr) {
|
|
56
|
+
var meta = tr.getMeta(_constants.PASTE_OPTIONS_META_ID);
|
|
57
|
+
if (meta && meta.type === _actions.PastePluginActionTypes.CHANGE_FORMAT) {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
return false;
|
|
61
|
+
};
|
package/dist/cjs/toolbar.js
CHANGED
|
@@ -37,23 +37,23 @@ var isToolbarVisible = exports.isToolbarVisible = function isToolbarVisible(stat
|
|
|
37
37
|
}
|
|
38
38
|
return false;
|
|
39
39
|
};
|
|
40
|
-
var getToolbarMenuConfig = exports.getToolbarMenuConfig = function getToolbarMenuConfig(pluginState,
|
|
40
|
+
var getToolbarMenuConfig = exports.getToolbarMenuConfig = function getToolbarMenuConfig(pluginState, intl, editorAnalyticsAPI) {
|
|
41
41
|
var options = [{
|
|
42
42
|
id: 'editor.paste.richText',
|
|
43
43
|
title: intl.formatMessage(_messages.messages.richText),
|
|
44
44
|
selected: pluginState.selectedOption === _types.ToolbarDropdownOption.RichText,
|
|
45
45
|
hidden: pluginState.isPlainText,
|
|
46
|
-
onClick: (0, _commands.changeToRichTextWithAnalytics)(editorAnalyticsAPI)(
|
|
46
|
+
onClick: (0, _commands.changeToRichTextWithAnalytics)(editorAnalyticsAPI)()
|
|
47
47
|
}, {
|
|
48
48
|
id: 'editor.paste.markdown',
|
|
49
49
|
title: intl.formatMessage(_messages.messages.markdown),
|
|
50
50
|
selected: pluginState.selectedOption === _types.ToolbarDropdownOption.Markdown,
|
|
51
|
-
onClick: (0, _commands.changeToMarkdownWithAnalytics)(editorAnalyticsAPI, plaintext.length)(
|
|
51
|
+
onClick: (0, _commands.changeToMarkdownWithAnalytics)(editorAnalyticsAPI, pluginState.plaintext.length)()
|
|
52
52
|
}, {
|
|
53
53
|
id: 'editor.paste.plainText',
|
|
54
54
|
title: intl.formatMessage(_messages.messages.plainText),
|
|
55
55
|
selected: pluginState.selectedOption === _types.ToolbarDropdownOption.PlainText,
|
|
56
|
-
onClick: (0, _commands.changeToPlainTextWithAnalytics)(editorAnalyticsAPI, plaintext.length)(
|
|
56
|
+
onClick: (0, _commands.changeToPlainTextWithAnalytics)(editorAnalyticsAPI, pluginState.plaintext.length)()
|
|
57
57
|
}];
|
|
58
58
|
return {
|
|
59
59
|
id: _constants.PASTE_TOOLBAR_ITEM_CLASS,
|
|
@@ -68,11 +68,11 @@ var getToolbarMenuConfig = exports.getToolbarMenuConfig = function getToolbarMen
|
|
|
68
68
|
var onToggleHandler = function onToggleHandler(state, dispatch) {
|
|
69
69
|
return (0, _commands.dropdownClickHandler)()(state, dispatch);
|
|
70
70
|
};
|
|
71
|
-
var buildToolbar = exports.buildToolbar = function buildToolbar(state,
|
|
71
|
+
var buildToolbar = exports.buildToolbar = function buildToolbar(state, intl, editorAnalyticsAPI) {
|
|
72
72
|
var schema = state.schema;
|
|
73
73
|
var validNodes = Object.values(schema.nodes);
|
|
74
74
|
var pluginState = _types.pasteOptionsPluginKey.getState(state);
|
|
75
|
-
var menu = getToolbarMenuConfig(pluginState,
|
|
75
|
+
var menu = getToolbarMenuConfig(pluginState, intl, editorAnalyticsAPI);
|
|
76
76
|
return {
|
|
77
77
|
title: intl.formatMessage(_messages.messages.pasteOptions),
|
|
78
78
|
nodeType: validNodes,
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.formatRichText = exports.formatPlainText = exports.formatMarkdown = void 0;
|
|
7
7
|
exports.getMarkdownSlice = getMarkdownSlice;
|
|
8
|
-
exports.getRichTextSlice = void 0;
|
|
9
8
|
var _monitoring = require("@atlaskit/editor-common/monitoring");
|
|
10
9
|
var _paste = require("@atlaskit/editor-common/paste");
|
|
11
10
|
var _editorMarkdownTransformer = require("@atlaskit/editor-markdown-transformer");
|
|
@@ -13,10 +12,10 @@ var _model = require("@atlaskit/editor-prosemirror/model");
|
|
|
13
12
|
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
14
13
|
var _transform = require("@atlaskit/editor-prosemirror/transform");
|
|
15
14
|
var _index = require("./index");
|
|
16
|
-
var formatMarkdown = exports.formatMarkdown = function formatMarkdown(
|
|
17
|
-
var
|
|
18
|
-
var
|
|
19
|
-
var
|
|
15
|
+
var formatMarkdown = exports.formatMarkdown = function formatMarkdown(tr, pluginState) {
|
|
16
|
+
var pasteStartPos = pluginState.pasteStartPos;
|
|
17
|
+
var pasteEndPos = pluginState.pasteEndPos;
|
|
18
|
+
var plaintext = pluginState.plaintext;
|
|
20
19
|
if (pasteStartPos < 0) {
|
|
21
20
|
return tr;
|
|
22
21
|
}
|
|
@@ -25,11 +24,10 @@ var formatMarkdown = exports.formatMarkdown = function formatMarkdown(state, pas
|
|
|
25
24
|
if (parentOffset === 0 && resolvedPasteStartPos.depth > 0) {
|
|
26
25
|
pasteStartPos = resolvedPasteStartPos.before();
|
|
27
26
|
}
|
|
28
|
-
var markdownSlice = getMarkdownSlice(plaintext, schema, selection);
|
|
27
|
+
var markdownSlice = getMarkdownSlice(plaintext, tr.doc.type.schema, tr.selection);
|
|
29
28
|
if (!markdownSlice) {
|
|
30
29
|
return tr;
|
|
31
30
|
}
|
|
32
|
-
var pasteEndPos = selection.$to.pos;
|
|
33
31
|
pasteSliceIntoTransactionWithSelectionAdjust({
|
|
34
32
|
tr: tr,
|
|
35
33
|
pasteStartPos: pasteStartPos,
|
|
@@ -38,22 +36,16 @@ var formatMarkdown = exports.formatMarkdown = function formatMarkdown(state, pas
|
|
|
38
36
|
});
|
|
39
37
|
return tr;
|
|
40
38
|
};
|
|
41
|
-
var
|
|
42
|
-
var
|
|
43
|
-
var
|
|
44
|
-
var
|
|
45
|
-
return state.doc.slice(pasteStartPos, pasteEndPos);
|
|
46
|
-
};
|
|
47
|
-
var formatRichText = exports.formatRichText = function formatRichText(state, pasteStartPos, richTextSlice) {
|
|
48
|
-
var tr = state.tr;
|
|
49
|
-
var selection = tr.selection;
|
|
39
|
+
var formatRichText = exports.formatRichText = function formatRichText(tr, pluginState) {
|
|
40
|
+
var pasteStartPos = pluginState.pasteStartPos;
|
|
41
|
+
var pasteEndPos = pluginState.pasteEndPos;
|
|
42
|
+
var richTextSlice = pluginState.richTextSlice;
|
|
50
43
|
if (pasteStartPos < 0) {
|
|
51
44
|
return tr;
|
|
52
45
|
}
|
|
53
|
-
if (richTextSlice ===
|
|
46
|
+
if (richTextSlice.content.size === 0) {
|
|
54
47
|
return tr;
|
|
55
48
|
}
|
|
56
|
-
var pasteEndPos = selection.$to.pos;
|
|
57
49
|
var resolvedPasteStartPos = tr.doc.resolve(pasteStartPos);
|
|
58
50
|
var parentOffset = resolvedPasteStartPos.parentOffset;
|
|
59
51
|
if (parentOffset === 0 && resolvedPasteStartPos.depth > 0) {
|
|
@@ -67,21 +59,21 @@ var formatRichText = exports.formatRichText = function formatRichText(state, pas
|
|
|
67
59
|
});
|
|
68
60
|
return tr;
|
|
69
61
|
};
|
|
70
|
-
var formatPlainText = exports.formatPlainText = function formatPlainText(
|
|
71
|
-
var
|
|
72
|
-
|
|
62
|
+
var formatPlainText = exports.formatPlainText = function formatPlainText(tr, pluginState) {
|
|
63
|
+
var pasteStartPos = pluginState.pasteStartPos;
|
|
64
|
+
var pasteEndPos = pluginState.pasteEndPos;
|
|
65
|
+
var plaintext = pluginState.plaintext;
|
|
73
66
|
|
|
74
67
|
//not possible to create plain text slice with empty string
|
|
75
68
|
if (pasteStartPos < 0 || plaintext === '') {
|
|
76
69
|
return tr;
|
|
77
70
|
}
|
|
78
|
-
var selection = tr.selection;
|
|
79
|
-
var pasteEndPos = selection.$to.pos;
|
|
80
71
|
var resolvedPasteStartPos = tr.doc.resolve(pasteStartPos);
|
|
81
72
|
var parentOffset = resolvedPasteStartPos.parentOffset;
|
|
82
73
|
if (parentOffset === 0 && resolvedPasteStartPos.depth > 0) {
|
|
83
74
|
pasteStartPos = resolvedPasteStartPos.before();
|
|
84
75
|
}
|
|
76
|
+
var schema = tr.doc.type.schema;
|
|
85
77
|
var plainTextNode = schema.text(plaintext);
|
|
86
78
|
var plainTextFragment = _model.Fragment.from(schema.nodes.paragraph.createAndFill(null, plainTextNode));
|
|
87
79
|
var plainTextSlice = new _model.Slice(plainTextFragment, resolvedPasteStartPos.depth, resolvedPasteStartPos.depth);
|
package/dist/es2019/commands.js
CHANGED
|
@@ -20,9 +20,13 @@ export const showToolbar = (lastContentPasted, selectedOption) => {
|
|
|
20
20
|
};
|
|
21
21
|
return createCommand(commandAction);
|
|
22
22
|
};
|
|
23
|
-
export const changeToPlainText = (
|
|
23
|
+
export const changeToPlainText = () => {
|
|
24
24
|
const plaintextTransformer = (tr, state) => {
|
|
25
|
-
|
|
25
|
+
const pluginState = pasteOptionsPluginKey.getState(state);
|
|
26
|
+
if (pluginState.selectedOption === ToolbarDropdownOption.PlainText) {
|
|
27
|
+
return tr;
|
|
28
|
+
}
|
|
29
|
+
return formatPlainText(tr, pluginState);
|
|
26
30
|
};
|
|
27
31
|
const commandAction = editorState => {
|
|
28
32
|
return {
|
|
@@ -34,7 +38,7 @@ export const changeToPlainText = (pasteStartPos, plaintext) => {
|
|
|
34
38
|
};
|
|
35
39
|
return createCommand(commandAction, plaintextTransformer);
|
|
36
40
|
};
|
|
37
|
-
export const changeToPlainTextWithAnalytics = (editorAnalyticsAPI, sliceSize) => (
|
|
41
|
+
export const changeToPlainTextWithAnalytics = (editorAnalyticsAPI, sliceSize) => () => {
|
|
38
42
|
return withAnalytics(editorAnalyticsAPI, {
|
|
39
43
|
action: ACTION.PASTED,
|
|
40
44
|
actionSubject: ACTION_SUBJECT.DOCUMENT,
|
|
@@ -45,15 +49,18 @@ export const changeToPlainTextWithAnalytics = (editorAnalyticsAPI, sliceSize) =>
|
|
|
45
49
|
content: PasteContents.text,
|
|
46
50
|
pasteSize: sliceSize
|
|
47
51
|
}
|
|
48
|
-
})(changeToPlainText(
|
|
52
|
+
})(changeToPlainText());
|
|
49
53
|
};
|
|
50
54
|
export const dropdownClickHandler = () => {
|
|
51
55
|
return highlightContent();
|
|
52
56
|
};
|
|
53
|
-
export const changeToRichText =
|
|
57
|
+
export const changeToRichText = () => {
|
|
54
58
|
const transformer = (tr, state) => {
|
|
55
|
-
const
|
|
56
|
-
|
|
59
|
+
const pluginState = pasteOptionsPluginKey.getState(state);
|
|
60
|
+
if (pluginState.selectedOption === ToolbarDropdownOption.RichText) {
|
|
61
|
+
return tr;
|
|
62
|
+
}
|
|
63
|
+
return formatRichText(tr, pluginState);
|
|
57
64
|
};
|
|
58
65
|
const commandAction = editorState => {
|
|
59
66
|
return {
|
|
@@ -65,7 +72,7 @@ export const changeToRichText = pasteStartPos => {
|
|
|
65
72
|
};
|
|
66
73
|
return createCommand(commandAction, transformer);
|
|
67
74
|
};
|
|
68
|
-
export const changeToRichTextWithAnalytics = editorAnalyticsAPI =>
|
|
75
|
+
export const changeToRichTextWithAnalytics = editorAnalyticsAPI => () => {
|
|
69
76
|
const payloadCallback = state => {
|
|
70
77
|
var _pastePluginState$ric;
|
|
71
78
|
const pastePluginState = pasteOptionsPluginKey.getState(state);
|
|
@@ -81,11 +88,15 @@ export const changeToRichTextWithAnalytics = editorAnalyticsAPI => pasteStartPos
|
|
|
81
88
|
}
|
|
82
89
|
};
|
|
83
90
|
};
|
|
84
|
-
return withAnalytics(editorAnalyticsAPI, payloadCallback)(changeToRichText(
|
|
91
|
+
return withAnalytics(editorAnalyticsAPI, payloadCallback)(changeToRichText());
|
|
85
92
|
};
|
|
86
|
-
export const changeToMarkDown = (
|
|
93
|
+
export const changeToMarkDown = () => {
|
|
87
94
|
const markdownTransformer = (tr, state) => {
|
|
88
|
-
|
|
95
|
+
const pluginState = pasteOptionsPluginKey.getState(state);
|
|
96
|
+
if (pluginState.selectedOption === ToolbarDropdownOption.Markdown) {
|
|
97
|
+
return tr;
|
|
98
|
+
}
|
|
99
|
+
return formatMarkdown(tr, pluginState);
|
|
89
100
|
};
|
|
90
101
|
const commandAction = editorState => {
|
|
91
102
|
return {
|
|
@@ -97,7 +108,7 @@ export const changeToMarkDown = (pasteStartPos, plaintext) => {
|
|
|
97
108
|
};
|
|
98
109
|
return createCommand(commandAction, markdownTransformer);
|
|
99
110
|
};
|
|
100
|
-
export const changeToMarkdownWithAnalytics = (editorAnalyticsAPI, sliceSize) => (
|
|
111
|
+
export const changeToMarkdownWithAnalytics = (editorAnalyticsAPI, sliceSize) => () => {
|
|
101
112
|
return withAnalytics(editorAnalyticsAPI, {
|
|
102
113
|
action: ACTION.PASTED,
|
|
103
114
|
actionSubject: ACTION_SUBJECT.DOCUMENT,
|
|
@@ -108,7 +119,7 @@ export const changeToMarkdownWithAnalytics = (editorAnalyticsAPI, sliceSize) =>
|
|
|
108
119
|
content: PasteContents.text,
|
|
109
120
|
pasteSize: sliceSize
|
|
110
121
|
}
|
|
111
|
-
})(changeToMarkDown(
|
|
122
|
+
})(changeToMarkDown());
|
|
112
123
|
};
|
|
113
124
|
export const highlightContent = () => {
|
|
114
125
|
const commandAction = editorState => {
|
package/dist/es2019/plugin.js
CHANGED
|
@@ -23,13 +23,8 @@ export const pasteOptionsToolbarPlugin = ({
|
|
|
23
23
|
pluginsOptions: {
|
|
24
24
|
floatingToolbar(state, intl) {
|
|
25
25
|
const pastePluginState = pasteOptionsPluginKey.getState(state);
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
pasteStartPos,
|
|
29
|
-
plaintext
|
|
30
|
-
} = pastePluginState || {};
|
|
31
|
-
if (showToolbar) {
|
|
32
|
-
return buildToolbar(state, pasteStartPos, plaintext, intl, editorAnalyticsAPI);
|
|
26
|
+
if (pastePluginState.showToolbar) {
|
|
27
|
+
return buildToolbar(state, intl, editorAnalyticsAPI);
|
|
33
28
|
}
|
|
34
29
|
return;
|
|
35
30
|
}
|
|
@@ -4,4 +4,5 @@ export const TEXT_HIGHLIGHT_CLASS = 'text-highlight';
|
|
|
4
4
|
export const PASTE_HIGHLIGHT_DECORATION_KEY = 'paste-highlight-decoration-key';
|
|
5
5
|
export const PASTE_TOOLBAR_ITEM_CLASS = 'ak-editor-paste-toolbar-item';
|
|
6
6
|
export const EDITOR_WRAPPER_CLASS = 'akEditor';
|
|
7
|
-
export const PASTE_OPTIONS_TEST_ID = 'paste-options-testid';
|
|
7
|
+
export const PASTE_OPTIONS_TEST_ID = 'paste-options-testid';
|
|
8
|
+
export const PASTE_OPTIONS_META_ID = 'paste-options$';
|
|
@@ -1,13 +1,38 @@
|
|
|
1
1
|
import { pluginFactory } from '@atlaskit/editor-common/utils';
|
|
2
|
+
import { PastePluginActionTypes } from '../actions';
|
|
2
3
|
import { reducer } from '../reducer';
|
|
3
4
|
import { pasteOptionsPluginKey } from '../types';
|
|
5
|
+
import { PASTE_OPTIONS_META_ID } from './constants';
|
|
4
6
|
export const {
|
|
5
7
|
createPluginState,
|
|
6
8
|
createCommand,
|
|
7
9
|
getPluginState
|
|
8
10
|
} = pluginFactory(pasteOptionsPluginKey, reducer, {
|
|
9
11
|
mapping: (tr, pluginState) => {
|
|
10
|
-
|
|
12
|
+
if (!tr.docChanged || !pluginState.showToolbar) {
|
|
13
|
+
return pluginState;
|
|
14
|
+
}
|
|
15
|
+
const oldPasteStartPos = pluginState.pasteStartPos;
|
|
16
|
+
const oldPasteEndPos = pluginState.pasteEndPos;
|
|
17
|
+
const newPasteStartPos = tr.mapping.map(oldPasteStartPos);
|
|
18
|
+
const newPasteEndPos = tr.mapping.map(oldPasteEndPos);
|
|
19
|
+
|
|
20
|
+
//this is true when user changes format from the toolbar.
|
|
21
|
+
//only change pasteEndPos in this case
|
|
22
|
+
if (changedFormatFromToolbar(tr)) {
|
|
23
|
+
return {
|
|
24
|
+
...pluginState,
|
|
25
|
+
pasteEndPos: newPasteEndPos
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (oldPasteStartPos === newPasteStartPos && oldPasteEndPos === newPasteEndPos) {
|
|
29
|
+
return pluginState;
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
...pluginState,
|
|
33
|
+
pasteStartPos: newPasteStartPos,
|
|
34
|
+
pasteEndPos: newPasteEndPos
|
|
35
|
+
};
|
|
11
36
|
},
|
|
12
37
|
onSelectionChanged: (tr, pluginState) => {
|
|
13
38
|
// Detect click outside the editor
|
|
@@ -20,4 +45,11 @@ export const {
|
|
|
20
45
|
}
|
|
21
46
|
return pluginState;
|
|
22
47
|
}
|
|
23
|
-
});
|
|
48
|
+
});
|
|
49
|
+
const changedFormatFromToolbar = tr => {
|
|
50
|
+
const meta = tr.getMeta(PASTE_OPTIONS_META_ID);
|
|
51
|
+
if (meta && meta.type === PastePluginActionTypes.CHANGE_FORMAT) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
};
|
package/dist/es2019/toolbar.js
CHANGED
|
@@ -30,23 +30,23 @@ export const isToolbarVisible = (state, lastContentPasted) => {
|
|
|
30
30
|
}
|
|
31
31
|
return false;
|
|
32
32
|
};
|
|
33
|
-
export const getToolbarMenuConfig = (pluginState,
|
|
33
|
+
export const getToolbarMenuConfig = (pluginState, intl, editorAnalyticsAPI) => {
|
|
34
34
|
const options = [{
|
|
35
35
|
id: 'editor.paste.richText',
|
|
36
36
|
title: intl.formatMessage(messages.richText),
|
|
37
37
|
selected: pluginState.selectedOption === ToolbarDropdownOption.RichText,
|
|
38
38
|
hidden: pluginState.isPlainText,
|
|
39
|
-
onClick: changeToRichTextWithAnalytics(editorAnalyticsAPI)(
|
|
39
|
+
onClick: changeToRichTextWithAnalytics(editorAnalyticsAPI)()
|
|
40
40
|
}, {
|
|
41
41
|
id: 'editor.paste.markdown',
|
|
42
42
|
title: intl.formatMessage(messages.markdown),
|
|
43
43
|
selected: pluginState.selectedOption === ToolbarDropdownOption.Markdown,
|
|
44
|
-
onClick: changeToMarkdownWithAnalytics(editorAnalyticsAPI, plaintext.length)(
|
|
44
|
+
onClick: changeToMarkdownWithAnalytics(editorAnalyticsAPI, pluginState.plaintext.length)()
|
|
45
45
|
}, {
|
|
46
46
|
id: 'editor.paste.plainText',
|
|
47
47
|
title: intl.formatMessage(messages.plainText),
|
|
48
48
|
selected: pluginState.selectedOption === ToolbarDropdownOption.PlainText,
|
|
49
|
-
onClick: changeToPlainTextWithAnalytics(editorAnalyticsAPI, plaintext.length)(
|
|
49
|
+
onClick: changeToPlainTextWithAnalytics(editorAnalyticsAPI, pluginState.plaintext.length)()
|
|
50
50
|
}];
|
|
51
51
|
return {
|
|
52
52
|
id: PASTE_TOOLBAR_ITEM_CLASS,
|
|
@@ -61,13 +61,13 @@ export const getToolbarMenuConfig = (pluginState, pasteStartPos, plaintext, intl
|
|
|
61
61
|
const onToggleHandler = (state, dispatch) => {
|
|
62
62
|
return dropdownClickHandler()(state, dispatch);
|
|
63
63
|
};
|
|
64
|
-
export const buildToolbar = (state,
|
|
64
|
+
export const buildToolbar = (state, intl, editorAnalyticsAPI) => {
|
|
65
65
|
const {
|
|
66
66
|
schema
|
|
67
67
|
} = state;
|
|
68
68
|
const validNodes = Object.values(schema.nodes);
|
|
69
69
|
const pluginState = pasteOptionsPluginKey.getState(state);
|
|
70
|
-
const menu = getToolbarMenuConfig(pluginState,
|
|
70
|
+
const menu = getToolbarMenuConfig(pluginState, intl, editorAnalyticsAPI);
|
|
71
71
|
return {
|
|
72
72
|
title: intl.formatMessage(messages.pasteOptions),
|
|
73
73
|
nodeType: validNodes,
|
|
@@ -5,14 +5,10 @@ import { Fragment, Slice } from '@atlaskit/editor-prosemirror/model';
|
|
|
5
5
|
import { Selection } from '@atlaskit/editor-prosemirror/state';
|
|
6
6
|
import { ReplaceStep } from '@atlaskit/editor-prosemirror/transform';
|
|
7
7
|
import { escapeLinks } from './index';
|
|
8
|
-
export const formatMarkdown = (
|
|
9
|
-
|
|
10
|
-
let
|
|
11
|
-
|
|
12
|
-
} = state;
|
|
13
|
-
const {
|
|
14
|
-
selection
|
|
15
|
-
} = tr;
|
|
8
|
+
export const formatMarkdown = (tr, pluginState) => {
|
|
9
|
+
let pasteStartPos = pluginState.pasteStartPos;
|
|
10
|
+
let pasteEndPos = pluginState.pasteEndPos;
|
|
11
|
+
let plaintext = pluginState.plaintext;
|
|
16
12
|
if (pasteStartPos < 0) {
|
|
17
13
|
return tr;
|
|
18
14
|
}
|
|
@@ -21,11 +17,10 @@ export const formatMarkdown = (state, pasteStartPos, plaintext) => {
|
|
|
21
17
|
if (parentOffset === 0 && resolvedPasteStartPos.depth > 0) {
|
|
22
18
|
pasteStartPos = resolvedPasteStartPos.before();
|
|
23
19
|
}
|
|
24
|
-
const markdownSlice = getMarkdownSlice(plaintext, schema, selection);
|
|
20
|
+
const markdownSlice = getMarkdownSlice(plaintext, tr.doc.type.schema, tr.selection);
|
|
25
21
|
if (!markdownSlice) {
|
|
26
22
|
return tr;
|
|
27
23
|
}
|
|
28
|
-
const pasteEndPos = selection.$to.pos;
|
|
29
24
|
pasteSliceIntoTransactionWithSelectionAdjust({
|
|
30
25
|
tr,
|
|
31
26
|
pasteStartPos,
|
|
@@ -34,30 +29,16 @@ export const formatMarkdown = (state, pasteStartPos, plaintext) => {
|
|
|
34
29
|
});
|
|
35
30
|
return tr;
|
|
36
31
|
};
|
|
37
|
-
export const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const {
|
|
42
|
-
selection
|
|
43
|
-
} = tr;
|
|
44
|
-
let pasteEndPos = selection.$to.pos;
|
|
45
|
-
return state.doc.slice(pasteStartPos, pasteEndPos);
|
|
46
|
-
};
|
|
47
|
-
export const formatRichText = (state, pasteStartPos, richTextSlice) => {
|
|
48
|
-
let {
|
|
49
|
-
tr
|
|
50
|
-
} = state;
|
|
51
|
-
const {
|
|
52
|
-
selection
|
|
53
|
-
} = tr;
|
|
32
|
+
export const formatRichText = (tr, pluginState) => {
|
|
33
|
+
let pasteStartPos = pluginState.pasteStartPos;
|
|
34
|
+
let pasteEndPos = pluginState.pasteEndPos;
|
|
35
|
+
const richTextSlice = pluginState.richTextSlice;
|
|
54
36
|
if (pasteStartPos < 0) {
|
|
55
37
|
return tr;
|
|
56
38
|
}
|
|
57
|
-
if (richTextSlice ===
|
|
39
|
+
if (richTextSlice.content.size === 0) {
|
|
58
40
|
return tr;
|
|
59
41
|
}
|
|
60
|
-
let pasteEndPos = selection.$to.pos;
|
|
61
42
|
const resolvedPasteStartPos = tr.doc.resolve(pasteStartPos);
|
|
62
43
|
const parentOffset = resolvedPasteStartPos.parentOffset;
|
|
63
44
|
if (parentOffset === 0 && resolvedPasteStartPos.depth > 0) {
|
|
@@ -71,25 +52,21 @@ export const formatRichText = (state, pasteStartPos, richTextSlice) => {
|
|
|
71
52
|
});
|
|
72
53
|
return tr;
|
|
73
54
|
};
|
|
74
|
-
export const formatPlainText = (
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
} = state;
|
|
55
|
+
export const formatPlainText = (tr, pluginState) => {
|
|
56
|
+
let pasteStartPos = pluginState.pasteStartPos;
|
|
57
|
+
let pasteEndPos = pluginState.pasteEndPos;
|
|
58
|
+
let plaintext = pluginState.plaintext;
|
|
79
59
|
|
|
80
60
|
//not possible to create plain text slice with empty string
|
|
81
61
|
if (pasteStartPos < 0 || plaintext === '') {
|
|
82
62
|
return tr;
|
|
83
63
|
}
|
|
84
|
-
const {
|
|
85
|
-
selection
|
|
86
|
-
} = tr;
|
|
87
|
-
const pasteEndPos = selection.$to.pos;
|
|
88
64
|
const resolvedPasteStartPos = tr.doc.resolve(pasteStartPos);
|
|
89
65
|
const parentOffset = resolvedPasteStartPos.parentOffset;
|
|
90
66
|
if (parentOffset === 0 && resolvedPasteStartPos.depth > 0) {
|
|
91
67
|
pasteStartPos = resolvedPasteStartPos.before();
|
|
92
68
|
}
|
|
69
|
+
const schema = tr.doc.type.schema;
|
|
93
70
|
const plainTextNode = schema.text(plaintext);
|
|
94
71
|
const plainTextFragment = Fragment.from(schema.nodes.paragraph.createAndFill(null, plainTextNode));
|
|
95
72
|
const plainTextSlice = new Slice(plainTextFragment, resolvedPasteStartPos.depth, resolvedPasteStartPos.depth);
|
package/dist/esm/commands.js
CHANGED
|
@@ -20,9 +20,13 @@ export var showToolbar = function showToolbar(lastContentPasted, selectedOption)
|
|
|
20
20
|
};
|
|
21
21
|
return createCommand(commandAction);
|
|
22
22
|
};
|
|
23
|
-
export var changeToPlainText = function changeToPlainText(
|
|
23
|
+
export var changeToPlainText = function changeToPlainText() {
|
|
24
24
|
var plaintextTransformer = function plaintextTransformer(tr, state) {
|
|
25
|
-
|
|
25
|
+
var pluginState = pasteOptionsPluginKey.getState(state);
|
|
26
|
+
if (pluginState.selectedOption === ToolbarDropdownOption.PlainText) {
|
|
27
|
+
return tr;
|
|
28
|
+
}
|
|
29
|
+
return formatPlainText(tr, pluginState);
|
|
26
30
|
};
|
|
27
31
|
var commandAction = function commandAction(editorState) {
|
|
28
32
|
return {
|
|
@@ -35,7 +39,7 @@ export var changeToPlainText = function changeToPlainText(pasteStartPos, plainte
|
|
|
35
39
|
return createCommand(commandAction, plaintextTransformer);
|
|
36
40
|
};
|
|
37
41
|
export var changeToPlainTextWithAnalytics = function changeToPlainTextWithAnalytics(editorAnalyticsAPI, sliceSize) {
|
|
38
|
-
return function (
|
|
42
|
+
return function () {
|
|
39
43
|
return withAnalytics(editorAnalyticsAPI, {
|
|
40
44
|
action: ACTION.PASTED,
|
|
41
45
|
actionSubject: ACTION_SUBJECT.DOCUMENT,
|
|
@@ -46,16 +50,19 @@ export var changeToPlainTextWithAnalytics = function changeToPlainTextWithAnalyt
|
|
|
46
50
|
content: PasteContents.text,
|
|
47
51
|
pasteSize: sliceSize
|
|
48
52
|
}
|
|
49
|
-
})(changeToPlainText(
|
|
53
|
+
})(changeToPlainText());
|
|
50
54
|
};
|
|
51
55
|
};
|
|
52
56
|
export var dropdownClickHandler = function dropdownClickHandler() {
|
|
53
57
|
return highlightContent();
|
|
54
58
|
};
|
|
55
|
-
export var changeToRichText = function changeToRichText(
|
|
59
|
+
export var changeToRichText = function changeToRichText() {
|
|
56
60
|
var transformer = function transformer(tr, state) {
|
|
57
|
-
var
|
|
58
|
-
|
|
61
|
+
var pluginState = pasteOptionsPluginKey.getState(state);
|
|
62
|
+
if (pluginState.selectedOption === ToolbarDropdownOption.RichText) {
|
|
63
|
+
return tr;
|
|
64
|
+
}
|
|
65
|
+
return formatRichText(tr, pluginState);
|
|
59
66
|
};
|
|
60
67
|
var commandAction = function commandAction(editorState) {
|
|
61
68
|
return {
|
|
@@ -68,7 +75,7 @@ export var changeToRichText = function changeToRichText(pasteStartPos) {
|
|
|
68
75
|
return createCommand(commandAction, transformer);
|
|
69
76
|
};
|
|
70
77
|
export var changeToRichTextWithAnalytics = function changeToRichTextWithAnalytics(editorAnalyticsAPI) {
|
|
71
|
-
return function (
|
|
78
|
+
return function () {
|
|
72
79
|
var payloadCallback = function payloadCallback(state) {
|
|
73
80
|
var _pastePluginState$ric;
|
|
74
81
|
var pastePluginState = pasteOptionsPluginKey.getState(state);
|
|
@@ -84,12 +91,16 @@ export var changeToRichTextWithAnalytics = function changeToRichTextWithAnalytic
|
|
|
84
91
|
}
|
|
85
92
|
};
|
|
86
93
|
};
|
|
87
|
-
return withAnalytics(editorAnalyticsAPI, payloadCallback)(changeToRichText(
|
|
94
|
+
return withAnalytics(editorAnalyticsAPI, payloadCallback)(changeToRichText());
|
|
88
95
|
};
|
|
89
96
|
};
|
|
90
|
-
export var changeToMarkDown = function changeToMarkDown(
|
|
97
|
+
export var changeToMarkDown = function changeToMarkDown() {
|
|
91
98
|
var markdownTransformer = function markdownTransformer(tr, state) {
|
|
92
|
-
|
|
99
|
+
var pluginState = pasteOptionsPluginKey.getState(state);
|
|
100
|
+
if (pluginState.selectedOption === ToolbarDropdownOption.Markdown) {
|
|
101
|
+
return tr;
|
|
102
|
+
}
|
|
103
|
+
return formatMarkdown(tr, pluginState);
|
|
93
104
|
};
|
|
94
105
|
var commandAction = function commandAction(editorState) {
|
|
95
106
|
return {
|
|
@@ -102,7 +113,7 @@ export var changeToMarkDown = function changeToMarkDown(pasteStartPos, plaintext
|
|
|
102
113
|
return createCommand(commandAction, markdownTransformer);
|
|
103
114
|
};
|
|
104
115
|
export var changeToMarkdownWithAnalytics = function changeToMarkdownWithAnalytics(editorAnalyticsAPI, sliceSize) {
|
|
105
|
-
return function (
|
|
116
|
+
return function () {
|
|
106
117
|
return withAnalytics(editorAnalyticsAPI, {
|
|
107
118
|
action: ACTION.PASTED,
|
|
108
119
|
actionSubject: ACTION_SUBJECT.DOCUMENT,
|
|
@@ -113,7 +124,7 @@ export var changeToMarkdownWithAnalytics = function changeToMarkdownWithAnalytic
|
|
|
113
124
|
content: PasteContents.text,
|
|
114
125
|
pasteSize: sliceSize
|
|
115
126
|
}
|
|
116
|
-
})(changeToMarkDown(
|
|
127
|
+
})(changeToMarkDown());
|
|
117
128
|
};
|
|
118
129
|
};
|
|
119
130
|
export var highlightContent = function highlightContent() {
|
package/dist/esm/plugin.js
CHANGED
|
@@ -23,18 +23,14 @@ export var pasteOptionsToolbarPlugin = function pasteOptionsToolbarPlugin(_ref)
|
|
|
23
23
|
pluginsOptions: {
|
|
24
24
|
floatingToolbar: function floatingToolbar(state, intl) {
|
|
25
25
|
var pastePluginState = pasteOptionsPluginKey.getState(state);
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
pasteStartPos = _ref3.pasteStartPos,
|
|
29
|
-
plaintext = _ref3.plaintext;
|
|
30
|
-
if (showToolbar) {
|
|
31
|
-
return buildToolbar(state, pasteStartPos, plaintext, intl, editorAnalyticsAPI);
|
|
26
|
+
if (pastePluginState.showToolbar) {
|
|
27
|
+
return buildToolbar(state, intl, editorAnalyticsAPI);
|
|
32
28
|
}
|
|
33
29
|
return;
|
|
34
30
|
}
|
|
35
31
|
},
|
|
36
|
-
usePluginHook: function usePluginHook(
|
|
37
|
-
var editorView =
|
|
32
|
+
usePluginHook: function usePluginHook(_ref3) {
|
|
33
|
+
var editorView = _ref3.editorView;
|
|
38
34
|
var _useSharedPluginState = useSharedPluginState(api, ['paste']),
|
|
39
35
|
pasteState = _useSharedPluginState.pasteState;
|
|
40
36
|
var lastContentPasted = pasteState === null || pasteState === void 0 ? void 0 : pasteState.lastContentPasted;
|
|
@@ -4,4 +4,5 @@ export var TEXT_HIGHLIGHT_CLASS = 'text-highlight';
|
|
|
4
4
|
export var PASTE_HIGHLIGHT_DECORATION_KEY = 'paste-highlight-decoration-key';
|
|
5
5
|
export var PASTE_TOOLBAR_ITEM_CLASS = 'ak-editor-paste-toolbar-item';
|
|
6
6
|
export var EDITOR_WRAPPER_CLASS = 'akEditor';
|
|
7
|
-
export var PASTE_OPTIONS_TEST_ID = 'paste-options-testid';
|
|
7
|
+
export var PASTE_OPTIONS_TEST_ID = 'paste-options-testid';
|
|
8
|
+
export var PASTE_OPTIONS_META_ID = 'paste-options$';
|
|
@@ -2,11 +2,34 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
2
2
|
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; }
|
|
3
3
|
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) { _defineProperty(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; }
|
|
4
4
|
import { pluginFactory } from '@atlaskit/editor-common/utils';
|
|
5
|
+
import { PastePluginActionTypes } from '../actions';
|
|
5
6
|
import { reducer } from '../reducer';
|
|
6
7
|
import { pasteOptionsPluginKey } from '../types';
|
|
8
|
+
import { PASTE_OPTIONS_META_ID } from './constants';
|
|
7
9
|
var _pluginFactory = pluginFactory(pasteOptionsPluginKey, reducer, {
|
|
8
10
|
mapping: function mapping(tr, pluginState) {
|
|
9
|
-
|
|
11
|
+
if (!tr.docChanged || !pluginState.showToolbar) {
|
|
12
|
+
return pluginState;
|
|
13
|
+
}
|
|
14
|
+
var oldPasteStartPos = pluginState.pasteStartPos;
|
|
15
|
+
var oldPasteEndPos = pluginState.pasteEndPos;
|
|
16
|
+
var newPasteStartPos = tr.mapping.map(oldPasteStartPos);
|
|
17
|
+
var newPasteEndPos = tr.mapping.map(oldPasteEndPos);
|
|
18
|
+
|
|
19
|
+
//this is true when user changes format from the toolbar.
|
|
20
|
+
//only change pasteEndPos in this case
|
|
21
|
+
if (changedFormatFromToolbar(tr)) {
|
|
22
|
+
return _objectSpread(_objectSpread({}, pluginState), {}, {
|
|
23
|
+
pasteEndPos: newPasteEndPos
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
if (oldPasteStartPos === newPasteStartPos && oldPasteEndPos === newPasteEndPos) {
|
|
27
|
+
return pluginState;
|
|
28
|
+
}
|
|
29
|
+
return _objectSpread(_objectSpread({}, pluginState), {}, {
|
|
30
|
+
pasteStartPos: newPasteStartPos,
|
|
31
|
+
pasteEndPos: newPasteEndPos
|
|
32
|
+
});
|
|
10
33
|
},
|
|
11
34
|
onSelectionChanged: function onSelectionChanged(tr, pluginState) {
|
|
12
35
|
// Detect click outside the editor
|
|
@@ -22,4 +45,11 @@ var _pluginFactory = pluginFactory(pasteOptionsPluginKey, reducer, {
|
|
|
22
45
|
createPluginState = _pluginFactory.createPluginState,
|
|
23
46
|
createCommand = _pluginFactory.createCommand,
|
|
24
47
|
getPluginState = _pluginFactory.getPluginState;
|
|
25
|
-
export { createPluginState, createCommand, getPluginState };
|
|
48
|
+
export { createPluginState, createCommand, getPluginState };
|
|
49
|
+
var changedFormatFromToolbar = function changedFormatFromToolbar(tr) {
|
|
50
|
+
var meta = tr.getMeta(PASTE_OPTIONS_META_ID);
|
|
51
|
+
if (meta && meta.type === PastePluginActionTypes.CHANGE_FORMAT) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
};
|
package/dist/esm/toolbar.js
CHANGED
|
@@ -30,23 +30,23 @@ export var isToolbarVisible = function isToolbarVisible(state, lastContentPasted
|
|
|
30
30
|
}
|
|
31
31
|
return false;
|
|
32
32
|
};
|
|
33
|
-
export var getToolbarMenuConfig = function getToolbarMenuConfig(pluginState,
|
|
33
|
+
export var getToolbarMenuConfig = function getToolbarMenuConfig(pluginState, intl, editorAnalyticsAPI) {
|
|
34
34
|
var options = [{
|
|
35
35
|
id: 'editor.paste.richText',
|
|
36
36
|
title: intl.formatMessage(messages.richText),
|
|
37
37
|
selected: pluginState.selectedOption === ToolbarDropdownOption.RichText,
|
|
38
38
|
hidden: pluginState.isPlainText,
|
|
39
|
-
onClick: changeToRichTextWithAnalytics(editorAnalyticsAPI)(
|
|
39
|
+
onClick: changeToRichTextWithAnalytics(editorAnalyticsAPI)()
|
|
40
40
|
}, {
|
|
41
41
|
id: 'editor.paste.markdown',
|
|
42
42
|
title: intl.formatMessage(messages.markdown),
|
|
43
43
|
selected: pluginState.selectedOption === ToolbarDropdownOption.Markdown,
|
|
44
|
-
onClick: changeToMarkdownWithAnalytics(editorAnalyticsAPI, plaintext.length)(
|
|
44
|
+
onClick: changeToMarkdownWithAnalytics(editorAnalyticsAPI, pluginState.plaintext.length)()
|
|
45
45
|
}, {
|
|
46
46
|
id: 'editor.paste.plainText',
|
|
47
47
|
title: intl.formatMessage(messages.plainText),
|
|
48
48
|
selected: pluginState.selectedOption === ToolbarDropdownOption.PlainText,
|
|
49
|
-
onClick: changeToPlainTextWithAnalytics(editorAnalyticsAPI, plaintext.length)(
|
|
49
|
+
onClick: changeToPlainTextWithAnalytics(editorAnalyticsAPI, pluginState.plaintext.length)()
|
|
50
50
|
}];
|
|
51
51
|
return {
|
|
52
52
|
id: PASTE_TOOLBAR_ITEM_CLASS,
|
|
@@ -61,11 +61,11 @@ export var getToolbarMenuConfig = function getToolbarMenuConfig(pluginState, pas
|
|
|
61
61
|
var onToggleHandler = function onToggleHandler(state, dispatch) {
|
|
62
62
|
return dropdownClickHandler()(state, dispatch);
|
|
63
63
|
};
|
|
64
|
-
export var buildToolbar = function buildToolbar(state,
|
|
64
|
+
export var buildToolbar = function buildToolbar(state, intl, editorAnalyticsAPI) {
|
|
65
65
|
var schema = state.schema;
|
|
66
66
|
var validNodes = Object.values(schema.nodes);
|
|
67
67
|
var pluginState = pasteOptionsPluginKey.getState(state);
|
|
68
|
-
var menu = getToolbarMenuConfig(pluginState,
|
|
68
|
+
var menu = getToolbarMenuConfig(pluginState, intl, editorAnalyticsAPI);
|
|
69
69
|
return {
|
|
70
70
|
title: intl.formatMessage(messages.pasteOptions),
|
|
71
71
|
nodeType: validNodes,
|
|
@@ -5,10 +5,10 @@ import { Fragment, Slice } from '@atlaskit/editor-prosemirror/model';
|
|
|
5
5
|
import { Selection } from '@atlaskit/editor-prosemirror/state';
|
|
6
6
|
import { ReplaceStep } from '@atlaskit/editor-prosemirror/transform';
|
|
7
7
|
import { escapeLinks } from './index';
|
|
8
|
-
export var formatMarkdown = function formatMarkdown(
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
8
|
+
export var formatMarkdown = function formatMarkdown(tr, pluginState) {
|
|
9
|
+
var pasteStartPos = pluginState.pasteStartPos;
|
|
10
|
+
var pasteEndPos = pluginState.pasteEndPos;
|
|
11
|
+
var plaintext = pluginState.plaintext;
|
|
12
12
|
if (pasteStartPos < 0) {
|
|
13
13
|
return tr;
|
|
14
14
|
}
|
|
@@ -17,11 +17,10 @@ export var formatMarkdown = function formatMarkdown(state, pasteStartPos, plaint
|
|
|
17
17
|
if (parentOffset === 0 && resolvedPasteStartPos.depth > 0) {
|
|
18
18
|
pasteStartPos = resolvedPasteStartPos.before();
|
|
19
19
|
}
|
|
20
|
-
var markdownSlice = getMarkdownSlice(plaintext, schema, selection);
|
|
20
|
+
var markdownSlice = getMarkdownSlice(plaintext, tr.doc.type.schema, tr.selection);
|
|
21
21
|
if (!markdownSlice) {
|
|
22
22
|
return tr;
|
|
23
23
|
}
|
|
24
|
-
var pasteEndPos = selection.$to.pos;
|
|
25
24
|
pasteSliceIntoTransactionWithSelectionAdjust({
|
|
26
25
|
tr: tr,
|
|
27
26
|
pasteStartPos: pasteStartPos,
|
|
@@ -30,22 +29,16 @@ export var formatMarkdown = function formatMarkdown(state, pasteStartPos, plaint
|
|
|
30
29
|
});
|
|
31
30
|
return tr;
|
|
32
31
|
};
|
|
33
|
-
export var
|
|
34
|
-
var
|
|
35
|
-
var
|
|
36
|
-
var
|
|
37
|
-
return state.doc.slice(pasteStartPos, pasteEndPos);
|
|
38
|
-
};
|
|
39
|
-
export var formatRichText = function formatRichText(state, pasteStartPos, richTextSlice) {
|
|
40
|
-
var tr = state.tr;
|
|
41
|
-
var selection = tr.selection;
|
|
32
|
+
export var formatRichText = function formatRichText(tr, pluginState) {
|
|
33
|
+
var pasteStartPos = pluginState.pasteStartPos;
|
|
34
|
+
var pasteEndPos = pluginState.pasteEndPos;
|
|
35
|
+
var richTextSlice = pluginState.richTextSlice;
|
|
42
36
|
if (pasteStartPos < 0) {
|
|
43
37
|
return tr;
|
|
44
38
|
}
|
|
45
|
-
if (richTextSlice ===
|
|
39
|
+
if (richTextSlice.content.size === 0) {
|
|
46
40
|
return tr;
|
|
47
41
|
}
|
|
48
|
-
var pasteEndPos = selection.$to.pos;
|
|
49
42
|
var resolvedPasteStartPos = tr.doc.resolve(pasteStartPos);
|
|
50
43
|
var parentOffset = resolvedPasteStartPos.parentOffset;
|
|
51
44
|
if (parentOffset === 0 && resolvedPasteStartPos.depth > 0) {
|
|
@@ -59,21 +52,21 @@ export var formatRichText = function formatRichText(state, pasteStartPos, richTe
|
|
|
59
52
|
});
|
|
60
53
|
return tr;
|
|
61
54
|
};
|
|
62
|
-
export var formatPlainText = function formatPlainText(
|
|
63
|
-
var
|
|
64
|
-
|
|
55
|
+
export var formatPlainText = function formatPlainText(tr, pluginState) {
|
|
56
|
+
var pasteStartPos = pluginState.pasteStartPos;
|
|
57
|
+
var pasteEndPos = pluginState.pasteEndPos;
|
|
58
|
+
var plaintext = pluginState.plaintext;
|
|
65
59
|
|
|
66
60
|
//not possible to create plain text slice with empty string
|
|
67
61
|
if (pasteStartPos < 0 || plaintext === '') {
|
|
68
62
|
return tr;
|
|
69
63
|
}
|
|
70
|
-
var selection = tr.selection;
|
|
71
|
-
var pasteEndPos = selection.$to.pos;
|
|
72
64
|
var resolvedPasteStartPos = tr.doc.resolve(pasteStartPos);
|
|
73
65
|
var parentOffset = resolvedPasteStartPos.parentOffset;
|
|
74
66
|
if (parentOffset === 0 && resolvedPasteStartPos.depth > 0) {
|
|
75
67
|
pasteStartPos = resolvedPasteStartPos.before();
|
|
76
68
|
}
|
|
69
|
+
var schema = tr.doc.type.schema;
|
|
77
70
|
var plainTextNode = schema.text(plaintext);
|
|
78
71
|
var plainTextFragment = Fragment.from(schema.nodes.paragraph.createAndFill(null, plainTextNode));
|
|
79
72
|
var plainTextSlice = new Slice(plainTextFragment, resolvedPasteStartPos.depth, resolvedPasteStartPos.depth);
|
package/dist/types/commands.d.ts
CHANGED
|
@@ -4,13 +4,13 @@ import type { LastContentPasted } from '@atlaskit/editor-plugin-paste';
|
|
|
4
4
|
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
5
5
|
import { ToolbarDropdownOption } from './types';
|
|
6
6
|
export declare const showToolbar: (lastContentPasted: LastContentPasted, selectedOption: ToolbarDropdownOption) => Command;
|
|
7
|
-
export declare const changeToPlainText: (
|
|
8
|
-
export declare const changeToPlainTextWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined, sliceSize: number) => (
|
|
7
|
+
export declare const changeToPlainText: () => Command;
|
|
8
|
+
export declare const changeToPlainTextWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined, sliceSize: number) => () => Command;
|
|
9
9
|
export declare const dropdownClickHandler: () => Command;
|
|
10
|
-
export declare const changeToRichText: (
|
|
11
|
-
export declare const changeToRichTextWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => (
|
|
12
|
-
export declare const changeToMarkDown: (
|
|
13
|
-
export declare const changeToMarkdownWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined, sliceSize: number) => (
|
|
10
|
+
export declare const changeToRichText: () => Command;
|
|
11
|
+
export declare const changeToRichTextWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => () => Command;
|
|
12
|
+
export declare const changeToMarkDown: () => Command;
|
|
13
|
+
export declare const changeToMarkdownWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined, sliceSize: number) => () => Command;
|
|
14
14
|
export declare const highlightContent: () => Command;
|
|
15
15
|
export declare const hideToolbar: () => Command;
|
|
16
16
|
export declare const checkAndHideToolbar: (view: EditorView) => void;
|
|
@@ -5,3 +5,4 @@ export declare const PASTE_HIGHLIGHT_DECORATION_KEY = "paste-highlight-decoratio
|
|
|
5
5
|
export declare const PASTE_TOOLBAR_ITEM_CLASS = "ak-editor-paste-toolbar-item";
|
|
6
6
|
export declare const EDITOR_WRAPPER_CLASS = "akEditor";
|
|
7
7
|
export declare const PASTE_OPTIONS_TEST_ID = "paste-options-testid";
|
|
8
|
+
export declare const PASTE_OPTIONS_META_ID = "paste-options$";
|
package/dist/types/toolbar.d.ts
CHANGED
|
@@ -5,5 +5,5 @@ import type { LastContentPasted } from '@atlaskit/editor-plugin-paste';
|
|
|
5
5
|
import type { EditorState } from '@atlaskit/editor-prosemirror/state';
|
|
6
6
|
import type { PasteOtionsPluginState } from './types';
|
|
7
7
|
export declare const isToolbarVisible: (state: EditorState, lastContentPasted: LastContentPasted) => boolean;
|
|
8
|
-
export declare const getToolbarMenuConfig: (pluginState: PasteOtionsPluginState,
|
|
9
|
-
export declare const buildToolbar: (state: EditorState,
|
|
8
|
+
export declare const getToolbarMenuConfig: (pluginState: PasteOtionsPluginState, intl: IntlShape, editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => FloatingToolbarDropdown<Command>;
|
|
9
|
+
export declare const buildToolbar: (state: EditorState, intl: IntlShape, editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => FloatingToolbarConfig | undefined;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Schema } from '@atlaskit/editor-prosemirror/model';
|
|
2
2
|
import { Slice } from '@atlaskit/editor-prosemirror/model';
|
|
3
|
-
import type {
|
|
3
|
+
import type { Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
4
4
|
import { Selection } from '@atlaskit/editor-prosemirror/state';
|
|
5
|
-
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const formatRichText: (
|
|
8
|
-
export declare const formatPlainText: (
|
|
5
|
+
import type { PasteOtionsPluginState } from '../types';
|
|
6
|
+
export declare const formatMarkdown: (tr: Transaction, pluginState: PasteOtionsPluginState) => Transaction;
|
|
7
|
+
export declare const formatRichText: (tr: Transaction, pluginState: PasteOtionsPluginState) => Transaction;
|
|
8
|
+
export declare const formatPlainText: (tr: Transaction, pluginState: PasteOtionsPluginState) => Transaction;
|
|
9
9
|
export declare function getMarkdownSlice(text: string, schema: Schema, selection: Selection): Slice | undefined;
|
|
@@ -4,13 +4,13 @@ import type { LastContentPasted } from '@atlaskit/editor-plugin-paste';
|
|
|
4
4
|
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
5
5
|
import { ToolbarDropdownOption } from './types';
|
|
6
6
|
export declare const showToolbar: (lastContentPasted: LastContentPasted, selectedOption: ToolbarDropdownOption) => Command;
|
|
7
|
-
export declare const changeToPlainText: (
|
|
8
|
-
export declare const changeToPlainTextWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined, sliceSize: number) => (
|
|
7
|
+
export declare const changeToPlainText: () => Command;
|
|
8
|
+
export declare const changeToPlainTextWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined, sliceSize: number) => () => Command;
|
|
9
9
|
export declare const dropdownClickHandler: () => Command;
|
|
10
|
-
export declare const changeToRichText: (
|
|
11
|
-
export declare const changeToRichTextWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => (
|
|
12
|
-
export declare const changeToMarkDown: (
|
|
13
|
-
export declare const changeToMarkdownWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined, sliceSize: number) => (
|
|
10
|
+
export declare const changeToRichText: () => Command;
|
|
11
|
+
export declare const changeToRichTextWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => () => Command;
|
|
12
|
+
export declare const changeToMarkDown: () => Command;
|
|
13
|
+
export declare const changeToMarkdownWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined, sliceSize: number) => () => Command;
|
|
14
14
|
export declare const highlightContent: () => Command;
|
|
15
15
|
export declare const hideToolbar: () => Command;
|
|
16
16
|
export declare const checkAndHideToolbar: (view: EditorView) => void;
|
|
@@ -5,3 +5,4 @@ export declare const PASTE_HIGHLIGHT_DECORATION_KEY = "paste-highlight-decoratio
|
|
|
5
5
|
export declare const PASTE_TOOLBAR_ITEM_CLASS = "ak-editor-paste-toolbar-item";
|
|
6
6
|
export declare const EDITOR_WRAPPER_CLASS = "akEditor";
|
|
7
7
|
export declare const PASTE_OPTIONS_TEST_ID = "paste-options-testid";
|
|
8
|
+
export declare const PASTE_OPTIONS_META_ID = "paste-options$";
|
|
@@ -5,5 +5,5 @@ import type { LastContentPasted } from '@atlaskit/editor-plugin-paste';
|
|
|
5
5
|
import type { EditorState } from '@atlaskit/editor-prosemirror/state';
|
|
6
6
|
import type { PasteOtionsPluginState } from './types';
|
|
7
7
|
export declare const isToolbarVisible: (state: EditorState, lastContentPasted: LastContentPasted) => boolean;
|
|
8
|
-
export declare const getToolbarMenuConfig: (pluginState: PasteOtionsPluginState,
|
|
9
|
-
export declare const buildToolbar: (state: EditorState,
|
|
8
|
+
export declare const getToolbarMenuConfig: (pluginState: PasteOtionsPluginState, intl: IntlShape, editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => FloatingToolbarDropdown<Command>;
|
|
9
|
+
export declare const buildToolbar: (state: EditorState, intl: IntlShape, editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => FloatingToolbarConfig | undefined;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Schema } from '@atlaskit/editor-prosemirror/model';
|
|
2
2
|
import { Slice } from '@atlaskit/editor-prosemirror/model';
|
|
3
|
-
import type {
|
|
3
|
+
import type { Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
4
4
|
import { Selection } from '@atlaskit/editor-prosemirror/state';
|
|
5
|
-
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const formatRichText: (
|
|
8
|
-
export declare const formatPlainText: (
|
|
5
|
+
import type { PasteOtionsPluginState } from '../types';
|
|
6
|
+
export declare const formatMarkdown: (tr: Transaction, pluginState: PasteOtionsPluginState) => Transaction;
|
|
7
|
+
export declare const formatRichText: (tr: Transaction, pluginState: PasteOtionsPluginState) => Transaction;
|
|
8
|
+
export declare const formatPlainText: (tr: Transaction, pluginState: PasteOtionsPluginState) => Transaction;
|
|
9
9
|
export declare function getMarkdownSlice(text: string, schema: Schema, selection: Selection): Slice | undefined;
|