UNPKG

@atlaskit/editor-plugin-selection-toolbar

Version:

@atlaskit/editor-plugin-selection-toolbar for @atlaskit/editor-core

74 lines (72 loc) 3.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.updateToolbarDocking = exports.toggleToolbar = exports.setToolbarDocking = exports.forceToolbarDockingWithoutAnalytics = void 0; var _analytics = require("@atlaskit/editor-common/analytics"); var _state = require("@atlaskit/editor-prosemirror/state"); var _pluginKey = require("./plugin-key"); var toggleToolbar = exports.toggleToolbar = function toggleToolbar(_ref) { var hide = _ref.hide; return function (_ref2) { var tr = _ref2.tr; tr.setMeta(_pluginKey.selectionToolbarPluginKey, { hide: hide }); return tr; }; }; var updateToolbarDocking = exports.updateToolbarDocking = function updateToolbarDocking(_ref3) { var toolbarDocking = _ref3.toolbarDocking; return function (_ref4) { var tr = _ref4.tr; tr.setMeta(_pluginKey.selectionToolbarPluginKey, { toolbarDocking: toolbarDocking }); return tr; }; }; var setToolbarDocking = exports.setToolbarDocking = function setToolbarDocking(_ref5) { var toolbarDocking = _ref5.toolbarDocking, userPreferencesProvider = _ref5.userPreferencesProvider, editorAnalyticsApi = _ref5.editorAnalyticsApi; return function (_ref6) { var tr = _ref6.tr; // We currently ignore any update failures, need to confirm this is the desired behaviour userPreferencesProvider === null || userPreferencesProvider === void 0 || userPreferencesProvider.updatePreference('toolbarDockingInitialPosition', toolbarDocking); tr.setMeta(_pluginKey.selectionToolbarPluginKey, { toolbarDocking: toolbarDocking }); if (toolbarDocking === 'top') { // Remove the selection if the toolbar is docked to the top tr.setSelection(_state.TextSelection.create(tr.doc, tr.selection.head)); } editorAnalyticsApi === null || editorAnalyticsApi === void 0 || editorAnalyticsApi.attachAnalyticsEvent({ action: _analytics.ACTION.UPDATED, actionSubject: _analytics.ACTION_SUBJECT.USER_PREFERENCES, actionSubjectId: _analytics.ACTION_SUBJECT_ID.SELECTION_TOOLBAR_PREFERENCES, attributes: { toolbarDocking: toolbarDocking }, eventType: _analytics.EVENT_TYPE.TRACK })(tr); return tr; }; }; // Performs similarly to `setToolbarDocking` with a couple of differences. // 1) It does not fire any analytics. // 2) It does not make any changes to the selection. // This was required due to issues with the Confluence Legacy Content Extension which needs to manipulate the scrollbar position when editor controls are enabled // but relies on the selection remaining stable. var forceToolbarDockingWithoutAnalytics = exports.forceToolbarDockingWithoutAnalytics = function forceToolbarDockingWithoutAnalytics(_ref7) { var toolbarDocking = _ref7.toolbarDocking, userPreferencesProvider = _ref7.userPreferencesProvider; return function (_ref8) { var tr = _ref8.tr; userPreferencesProvider === null || userPreferencesProvider === void 0 || userPreferencesProvider.updatePreference('toolbarDockingInitialPosition', toolbarDocking); tr.setMeta(_pluginKey.selectionToolbarPluginKey, { toolbarDocking: toolbarDocking }); return tr; }; };