@atlaskit/editor-plugin-text-formatting
Version:
Text-formatting plugin for @atlaskit/editor-core
100 lines (99 loc) • 6.56 kB
JavaScript
;
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);
}
}
});
}