UNPKG

@atlaskit/editor-core

Version:

A package contains Atlassian editor core functionality

35 lines 1.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var prosemirror_1 = require("../prosemirror"); var keymaps_1 = require("../keymaps"); /** * Sends a key to ProseMirror content area, simulating user key press. * Accepts key descriptions similar to Keymap, i.e. 'Shift-Ctrl-L' */ function sendKeyToPm(editorView, keys) { var parts = keys.split(/-(?!'?$)/); var modKey = parts.indexOf('Mod') !== -1; var cmdKey = parts.indexOf('Cmd') !== -1; var ctrlKey = parts.indexOf('Ctrl') !== -1; var shiftKey = parts.indexOf('Shift') !== -1; var altKey = parts.indexOf('Alt') !== -1; var key = parts[parts.length - 1]; // all of the browsers are using the same keyCode for alphabetical keys // and it's the uppercased character code in real world var code = keymaps_1.keyCodes[key] ? keymaps_1.keyCodes[key] : (key.toUpperCase()).charCodeAt(0); var event = new CustomEvent('keydown', { bubbles: true, cancelable: true, }); event.key = key.replace(/Space/g, ' '); event.shiftKey = shiftKey; event.altKey = altKey; event.ctrlKey = ctrlKey || (!prosemirror_1.browser.mac && modKey); event.metaKey = cmdKey || (prosemirror_1.browser.mac && modKey); event.keyCode = code; event.which = code; event.view = window; editorView.dispatchEvent(event); } exports.default = sendKeyToPm; //# sourceMappingURL=send-key-to-pm.js.map