@atlaskit/editor-plugin-paste-options-toolbar
Version:
Paste options toolbar for @atlaskit/editor-core
165 lines (164 loc) • 7.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.showToolbar = exports.highlightContent = exports.hideToolbar = exports.dropdownClickHandler = exports.checkAndHideToolbar = exports.changeToRichTextWithAnalytics = exports.changeToRichText = exports.changeToPlainTextWithAnalytics = exports.changeToPlainText = exports.changeToMarkdownWithAnalytics = exports.changeToMarkDown = void 0;
var _analytics = require("@atlaskit/editor-common/analytics");
var _editorAnalytics = require("@atlaskit/editor-common/editor-analytics");
var _actions = require("../editor-actions/actions");
var _pluginFactory = require("../pm-plugins/plugin-factory");
var _formatHandlers = require("../pm-plugins/util/format-handlers");
var _types = require("../types/types");
var showToolbar = exports.showToolbar = function showToolbar(lastContentPasted, selectedOption) {
var showLegacyOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
var pasteAncestorNodeNames = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
var commandAction = function commandAction(_editorState) {
var _lastContentPasted$te;
return {
type: _actions.PastePluginActionTypes.SHOW_PASTE_OPTIONS,
data: {
selectedOption: selectedOption,
plaintext: (_lastContentPasted$te = lastContentPasted.text) !== null && _lastContentPasted$te !== void 0 ? _lastContentPasted$te : '',
isPlainText: lastContentPasted.isPlainText,
richTextSlice: lastContentPasted.pastedSlice,
pasteStartPos: lastContentPasted.pasteStartPos,
pasteEndPos: lastContentPasted.pasteEndPos,
showLegacyOptions: showLegacyOptions,
pasteAncestorNodeNames: pasteAncestorNodeNames
}
};
};
return (0, _pluginFactory.createCommand)(commandAction);
};
var changeToPlainText = exports.changeToPlainText = function changeToPlainText() {
var plaintextTransformer = function plaintextTransformer(tr, state) {
var pluginState = _types.pasteOptionsPluginKey.getState(state);
if (pluginState.selectedOption === _types.ToolbarDropdownOption.PlainText) {
return tr;
}
return (0, _formatHandlers.formatPlainText)(tr, pluginState);
};
var commandAction = function commandAction(_editorState) {
return {
type: _actions.PastePluginActionTypes.CHANGE_FORMAT,
data: {
selectedOption: _types.ToolbarDropdownOption.PlainText
}
};
};
return (0, _pluginFactory.createCommand)(commandAction, plaintextTransformer);
};
var changeToPlainTextWithAnalytics = exports.changeToPlainTextWithAnalytics = function changeToPlainTextWithAnalytics(editorAnalyticsAPI, sliceSize, invokedFrom) {
return function () {
return (0, _editorAnalytics.withAnalytics)(editorAnalyticsAPI, {
action: _analytics.ACTION.PASTED,
actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
eventType: _analytics.EVENT_TYPE.TRACK,
attributes: {
inputMethod: _analytics.INPUT_METHOD.TOOLBAR,
type: _analytics.PasteTypes.plain,
content: _analytics.PasteContents.text,
pasteSize: sliceSize,
invokedFrom: invokedFrom
}
})(changeToPlainText());
};
};
var dropdownClickHandler = exports.dropdownClickHandler = function dropdownClickHandler() {
return highlightContent();
};
var changeToRichText = exports.changeToRichText = function changeToRichText() {
var transformer = function transformer(tr, state) {
var pluginState = _types.pasteOptionsPluginKey.getState(state);
if (pluginState.selectedOption === _types.ToolbarDropdownOption.RichText) {
return tr;
}
return (0, _formatHandlers.formatRichText)(tr, pluginState);
};
var commandAction = function commandAction(_editorState) {
return {
type: _actions.PastePluginActionTypes.CHANGE_FORMAT,
data: {
selectedOption: _types.ToolbarDropdownOption.RichText
}
};
};
return (0, _pluginFactory.createCommand)(commandAction, transformer);
};
var changeToRichTextWithAnalytics = exports.changeToRichTextWithAnalytics = function changeToRichTextWithAnalytics(editorAnalyticsAPI, invokedFrom) {
return function () {
var payloadCallback = function payloadCallback(state) {
var _pastePluginState$ric;
var pastePluginState = _types.pasteOptionsPluginKey.getState(state);
return {
action: _analytics.ACTION.PASTED,
actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
eventType: _analytics.EVENT_TYPE.TRACK,
attributes: {
inputMethod: _analytics.INPUT_METHOD.TOOLBAR,
type: _analytics.PasteTypes.richText,
content: _analytics.PasteContents.text,
pasteSize: ((_pastePluginState$ric = pastePluginState.richTextSlice) === null || _pastePluginState$ric === void 0 ? void 0 : _pastePluginState$ric.size) || 0,
invokedFrom: invokedFrom
}
};
};
return (0, _editorAnalytics.withAnalytics)(editorAnalyticsAPI, payloadCallback)(changeToRichText());
};
};
var changeToMarkDown = exports.changeToMarkDown = function changeToMarkDown() {
var markdownTransformer = function markdownTransformer(tr, state) {
var pluginState = _types.pasteOptionsPluginKey.getState(state);
if (pluginState.selectedOption === _types.ToolbarDropdownOption.Markdown) {
return tr;
}
return (0, _formatHandlers.formatMarkdown)(tr, pluginState);
};
var commandAction = function commandAction(_editorState) {
return {
type: _actions.PastePluginActionTypes.CHANGE_FORMAT,
data: {
selectedOption: _types.ToolbarDropdownOption.Markdown
}
};
};
return (0, _pluginFactory.createCommand)(commandAction, markdownTransformer);
};
var changeToMarkdownWithAnalytics = exports.changeToMarkdownWithAnalytics = function changeToMarkdownWithAnalytics(editorAnalyticsAPI, sliceSize, invokedFrom) {
return function () {
return (0, _editorAnalytics.withAnalytics)(editorAnalyticsAPI, {
action: _analytics.ACTION.PASTED,
actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
eventType: _analytics.EVENT_TYPE.TRACK,
attributes: {
inputMethod: _analytics.INPUT_METHOD.TOOLBAR,
type: _analytics.PasteTypes.markdown,
content: _analytics.PasteContents.text,
pasteSize: sliceSize,
invokedFrom: invokedFrom
}
})(changeToMarkDown());
};
};
var highlightContent = exports.highlightContent = function highlightContent() {
var commandAction = function commandAction(_editorState) {
return {
type: _actions.PastePluginActionTypes.HIGHLIGHT_CONTENT
};
};
return (0, _pluginFactory.createCommand)(commandAction);
};
var hideToolbar = exports.hideToolbar = function hideToolbar() {
var commandAction = function commandAction(_editorState) {
return {
type: _actions.PastePluginActionTypes.HIDE_PASTE_OPTIONS
};
};
return (0, _pluginFactory.createCommand)(commandAction);
};
var checkAndHideToolbar = exports.checkAndHideToolbar = function checkAndHideToolbar(view) {
var pluginState = _types.pasteOptionsPluginKey.getState(view.state);
if (pluginState.showToolbar) {
hideToolbar()(view.state, view.dispatch);
}
};