UNPKG

@atlaskit/editor-plugin-paste-options-toolbar

Version:

Paste options toolbar for @atlaskit/editor-core

165 lines (164 loc) 7.25 kB
"use strict"; 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); } };