UNPKG

emulate-key-in-browser

Version:
28 lines (27 loc) 1.2 kB
"use strict"; 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 }); }