UNPKG

@atlaskit/editor-plugin-text-formatting

Version:

Text-formatting plugin for @atlaskit/editor-core

100 lines (99 loc) 6.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = keymapPlugin; var _analytics = require("@atlaskit/editor-common/analytics"); var _keymaps = require("@atlaskit/editor-common/keymaps"); var _safePlugin = require("@atlaskit/editor-common/safe-plugin"); var _keymap = require("@atlaskit/editor-prosemirror/keymap"); var _experiments = require("@atlaskit/tmp-editor-statsig/experiments"); var _toggleMark = require("../editor-commands/toggle-mark"); var _pluginKey = require("./plugin-key"); function keymapPlugin(schema, editorAnalyticsAPI) { var list = {}; if (schema.marks.strong) { (0, _keymaps.bindKeymapWithEditorCommand)( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion (0, _keymaps.findShortcutByKeymap)(_keymaps.toggleBold), (0, _toggleMark.toggleStrongWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.SHORTCUT), list); } if (schema.marks.em) { (0, _keymaps.bindKeymapWithEditorCommand)( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion (0, _keymaps.findShortcutByKeymap)(_keymaps.toggleItalic), (0, _toggleMark.toggleEmWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.SHORTCUT), list); } if (schema.marks.code) { (0, _keymaps.bindKeymapWithEditorCommand)( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion (0, _keymaps.findShortcutByKeymap)(_keymaps.toggleCode), (0, _toggleMark.toggleCodeWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.SHORTCUT), list); } if (schema.marks.strike) { (0, _keymaps.bindKeymapWithEditorCommand)( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion (0, _keymaps.findShortcutByKeymap)(_keymaps.toggleStrikethrough), (0, _toggleMark.toggleStrikeWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.SHORTCUT), list); } if (schema.marks.subsup) { (0, _keymaps.bindKeymapWithEditorCommand)( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion (0, _keymaps.findShortcutByKeymap)(_keymaps.toggleSubscript), (0, _toggleMark.toggleSubscriptWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.SHORTCUT), list); } if (schema.marks.subsup) { (0, _keymaps.bindKeymapWithEditorCommand)( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion (0, _keymaps.findShortcutByKeymap)(_keymaps.toggleSuperscript), (0, _toggleMark.toggleSuperscriptWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.SHORTCUT), list); } if (schema.marks.underline) { (0, _keymaps.bindKeymapWithEditorCommand)( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion (0, _keymaps.findShortcutByKeymap)(_keymaps.toggleUnderline), (0, _toggleMark.toggleUnderlineWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.SHORTCUT), list); } var getEnabledKeylist = function getEnabledKeylist(view) { var textFormattingState = _pluginKey.pluginKey.getState(view.state); var list = {}; if (schema.marks.strong && !(textFormattingState !== null && textFormattingState !== void 0 && textFormattingState.strongDisabled)) { (0, _keymaps.bindKeymapWithEditorCommand)( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion (0, _keymaps.findShortcutByKeymap)(_keymaps.toggleBold), (0, _toggleMark.toggleStrongWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.SHORTCUT), list); } if (schema.marks.em && !(textFormattingState !== null && textFormattingState !== void 0 && textFormattingState.emDisabled)) { (0, _keymaps.bindKeymapWithEditorCommand)( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion (0, _keymaps.findShortcutByKeymap)(_keymaps.toggleItalic), (0, _toggleMark.toggleEmWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.SHORTCUT), list); } if (schema.marks.code && !(textFormattingState !== null && textFormattingState !== void 0 && textFormattingState.codeDisabled)) { (0, _keymaps.bindKeymapWithEditorCommand)( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion (0, _keymaps.findShortcutByKeymap)(_keymaps.toggleCode), (0, _toggleMark.toggleCodeWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.SHORTCUT), list); } if (schema.marks.strike && !(textFormattingState !== null && textFormattingState !== void 0 && textFormattingState.strikeDisabled)) { (0, _keymaps.bindKeymapWithEditorCommand)( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion (0, _keymaps.findShortcutByKeymap)(_keymaps.toggleStrikethrough), (0, _toggleMark.toggleStrikeWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.SHORTCUT), list); } if (schema.marks.subsup && !(textFormattingState !== null && textFormattingState !== void 0 && textFormattingState.subscriptDisabled)) { (0, _keymaps.bindKeymapWithEditorCommand)( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion (0, _keymaps.findShortcutByKeymap)(_keymaps.toggleSubscript), (0, _toggleMark.toggleSubscriptWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.SHORTCUT), list); } if (schema.marks.subsup && !(textFormattingState !== null && textFormattingState !== void 0 && textFormattingState.superscriptDisabled)) { (0, _keymaps.bindKeymapWithEditorCommand)( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion (0, _keymaps.findShortcutByKeymap)(_keymaps.toggleSuperscript), (0, _toggleMark.toggleSuperscriptWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.SHORTCUT), list); } if (schema.marks.underline && !(textFormattingState !== null && textFormattingState !== void 0 && textFormattingState.underlineDisabled)) { (0, _keymaps.bindKeymapWithEditorCommand)( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion (0, _keymaps.findShortcutByKeymap)(_keymaps.toggleUnderline), (0, _toggleMark.toggleUnderlineWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.SHORTCUT), list); } return list; }; return new _safePlugin.SafePlugin({ props: { handleKeyDown: function handleKeyDown(view, event) { var keyboardEvent = (0, _keymaps.isCapsLockOnAndModifyKeyboardEvent)(event); var keymapList = (0, _experiments.editorExperiment)('platform_editor_controls', 'variant1') ? getEnabledKeylist(view) : list; return (0, _keymap.keydownHandler)(keymapList)(view, keyboardEvent); } } }); }