emulate-key-in-browser
Version:
emulate browsers reactions on special keys
28 lines (27 loc) • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.emulateWriteText = void 0;
var emulate_key_events_1 = require("./emulate-key-events");
var text_input_element_type_1 = require("./text-input-element.type");
function emulateWriteText(keys) {
keys.split('').forEach(writeKey);
}
exports.emulateWriteText = emulateWriteText;
;
function writeKey(key) {
return emulate_key_events_1.emulateKeyEvents(key, function (target) {
var value = target.value || '';
var valueLength = value.length;
var selectionStart = text_input_element_type_1.findSelectionStart(target, valueLength);
if (selectionStart !== valueLength) {
var selectionEnd = text_input_element_type_1.findSelectionEnd(target, valueLength);
target.value = value.substr(0, selectionStart) + key + value.substr(selectionEnd);
target.selectionStart = target.selectionEnd = selectionStart + 1;
target.selectionDirection = 'none';
}
else {
target.value += key;
}
return target.dispatchEvent(new InputEvent('input', { bubbles: true, }));
}, undefined, { keypressBubbles: true });
}