UNPKG

@atlaskit/editor-plugin-paste

Version:

Paste plugin for @atlaskit/editor-core

68 lines (67 loc) 2.81 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.pastePlugin = void 0; var _react = _interopRequireDefault(require("react")); var _experiments = require("@atlaskit/tmp-editor-statsig/experiments"); var _main = require("./pm-plugins/main"); var _plugin = require("./pm-plugins/move-analytics/plugin"); var _pluginFactory = require("./pm-plugins/plugin-factory"); var _Flag = require("./ui/Flag"); var pastePlugin = exports.pastePlugin = function pastePlugin(_ref) { var _api$featureFlags, _api$analytics; var config = _ref.config, api = _ref.api; var _ref2 = config !== null && config !== void 0 ? config : {}, cardOptions = _ref2.cardOptions, sanitizePrivateContent = _ref2.sanitizePrivateContent, isFullPage = _ref2.isFullPage, pasteWarningOptions = _ref2.pasteWarningOptions; var featureFlags = (api === null || api === void 0 || (_api$featureFlags = api.featureFlags) === null || _api$featureFlags === void 0 ? void 0 : _api$featureFlags.sharedState.currentState()) || {}; var editorAnalyticsAPI = api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions; return { name: 'paste', pmPlugins: function pmPlugins() { return [{ name: 'paste', plugin: function plugin(_ref3) { var schema = _ref3.schema, providerFactory = _ref3.providerFactory, dispatchAnalyticsEvent = _ref3.dispatchAnalyticsEvent, dispatch = _ref3.dispatch, getIntl = _ref3.getIntl; return (0, _main.createPlugin)(schema, dispatchAnalyticsEvent, dispatch, featureFlags, api, getIntl, cardOptions, sanitizePrivateContent, providerFactory, pasteWarningOptions); } }, { name: 'moveAnalyticsPlugin', plugin: function plugin(_ref4) { var dispatch = _ref4.dispatch; return isFullPage ? (0, _plugin.createPlugin)(dispatch, editorAnalyticsAPI) : undefined; } }]; }, contentComponent: !(0, _experiments.editorExperiment)('platform_synced_block', true) ? undefined : function () { if (!pasteWarningOptions) { return null; } return /*#__PURE__*/_react.default.createElement(_Flag.Flag, { api: api }); }, getSharedState: function getSharedState(editorState) { if (!editorState) { return { activeFlag: null, lastContentPasted: null }; } var pluginState = _pluginFactory.pluginKey.getState(editorState); return { activeFlag: pluginState.activeFlag, lastContentPasted: pluginState.lastContentPasted }; } }; };