@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
37 lines • 2.07 kB
JavaScript
import { keydownHandler } from '../../prosemirror';
import * as keymaps from '../../keymaps';
import { trackAndInvoke } from '../../analytics';
import * as commands from './commands';
export function keymapHandler(view, pluginState) {
var list = {};
var schema = view.state.schema;
if (schema.marks.strong) {
var eventName = analyticsEventName(schema.marks.strong);
keymaps.bindKeymapWithCommand(keymaps.toggleBold.common, trackAndInvoke(eventName, function () { return pluginState.toggleStrong(view); }), list);
}
if (schema.marks.em) {
var eventName = analyticsEventName(schema.marks.em);
keymaps.bindKeymapWithCommand(keymaps.toggleItalic.common, trackAndInvoke(eventName, function () { return pluginState.toggleEm(view); }), list);
}
if (schema.marks.code) {
var eventName = analyticsEventName(schema.marks.code);
keymaps.bindKeymapWithCommand(keymaps.toggleCode.common, trackAndInvoke(eventName, function () { return pluginState.toggleCode(view); }), list);
}
if (schema.marks.strike) {
var eventName = analyticsEventName(schema.marks.strike);
keymaps.bindKeymapWithCommand(keymaps.toggleStrikethrough.common, trackAndInvoke(eventName, function () { return pluginState.toggleStrike(view); }), list);
}
if (schema.marks.underline) {
var eventName = analyticsEventName(schema.marks.underline);
keymaps.bindKeymapWithCommand(keymaps.toggleUnderline.common, trackAndInvoke(eventName, function () { return pluginState.toggleUnderline(view); }), list);
}
keymaps.bindKeymapWithCommand(keymaps.moveRight.common, commands.moveRight(), list);
keymaps.bindKeymapWithCommand(keymaps.moveLeft.common, commands.moveLeft(view), list);
keymaps.bindKeymapWithCommand(keymaps.backspace.common, commands.removeIgnoredNodes(view), list);
return keydownHandler(list);
}
function analyticsEventName(markType) {
return "atlassian.editor.format." + markType.name + ".keyboard";
}
export default keymapHandler;
//# sourceMappingURL=keymap.js.map