UNPKG

@atlaskit/editor-plugin-highlight

Version:

Highlight plugin for @atlaskit/editor-core

57 lines (56 loc) 2.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.togglePalette = exports.setPalette = void 0; var _analytics = require("@atlaskit/editor-common/analytics"); var _main = require("../pm-plugins/main"); var togglePalette = exports.togglePalette = function togglePalette(api) { return function (_ref) { var inputMethod = _ref.inputMethod; return function (state, dispatch) { var _highlightPluginKey$g; var isPaletteOpen = (_highlightPluginKey$g = _main.highlightPluginKey.getState(state)) === null || _highlightPluginKey$g === void 0 ? void 0 : _highlightPluginKey$g.isPaletteOpen; return setPalette(api)({ isPaletteOpen: !isPaletteOpen, inputMethod: inputMethod })(state, dispatch); }; }; }; var setPalette = exports.setPalette = function setPalette(api) { return function (_ref2) { var isPaletteOpen = _ref2.isPaletteOpen, inputMethod = _ref2.inputMethod; return function (state, dispatch) { var _highlightPluginKey$g2; var isDisabled = (_highlightPluginKey$g2 = _main.highlightPluginKey.getState(state)) === null || _highlightPluginKey$g2 === void 0 ? void 0 : _highlightPluginKey$g2.disabled; if (!isDisabled) { var _api$analytics; var tr = state.tr; tr.setMeta(_main.highlightPluginKey, { type: _main.HighlightPluginAction.SET_PALETTE, isPaletteOpen: isPaletteOpen }); (_api$analytics = api.analytics) === null || _api$analytics === void 0 || _api$analytics.actions.attachAnalyticsEvent(createAnalyticsEvent(isPaletteOpen, inputMethod))(tr); tr.setMeta('addToHistory', false); if (dispatch) { dispatch(tr); } return true; } return false; }; }; }; var createAnalyticsEvent = function createAnalyticsEvent(isPaletteOpen, inputMethod) { return { action: isPaletteOpen ? _analytics.ACTION.OPENED : _analytics.ACTION.CLOSED, actionSubject: _analytics.ACTION_SUBJECT.TOOLBAR, actionSubjectId: _analytics.ACTION_SUBJECT_ID.FORMAT_BACKGROUND_COLOR, eventType: _analytics.EVENT_TYPE.TRACK, attributes: { inputMethod: inputMethod } }; };