emulate-key-in-browser
Version:
emulate browsers reactions on special keys
19 lines (18 loc) • 1.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.emulateKeyEvents = exports.findKeyTarget = void 0;
var text_input_element_type_1 = require("./text-input-element.type");
function findKeyTarget() {
return document.activeElement || document.body;
}
exports.findKeyTarget = findKeyTarget;
function emulateKeyEvents(key, textInputAction, target, options) {
if (target === void 0) { target = findKeyTarget(); }
var executeDefaultActions = target.dispatchEvent(new KeyboardEvent('keydown', { key: key, cancelable: true, bubbles: true }));
executeDefaultActions = target.dispatchEvent(new KeyboardEvent('keypress', { key: key, cancelable: true, bubbles: options === null || options === void 0 ? void 0 : options.keypressBubbles })) && executeDefaultActions;
if (executeDefaultActions && textInputAction && text_input_element_type_1.isTextInputElement(target)) {
executeDefaultActions = textInputAction(target);
}
executeDefaultActions = target.dispatchEvent(new KeyboardEvent('keyup', { key: key, cancelable: true })) && executeDefaultActions;
}
exports.emulateKeyEvents = emulateKeyEvents;