UNPKG

emulate-key-in-browser

Version:
47 lines (46 loc) 2.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.emulateDelete = exports.emulateBackspace = void 0; var emulate_key_events_1 = require("./emulate-key-events"); var text_input_element_type_1 = require("./text-input-element.type"); function emulateBackspace() { return emulate_key_events_1.emulateKeyEvents('Backspace', function (target) { var value = target.value || ''; var valueLength = value.length; if (valueLength > 0) { var selectionStart = text_input_element_type_1.findSelectionStart(target, valueLength); var selectionEnd = text_input_element_type_1.findSelectionEnd(target, valueLength); if (selectionStart !== selectionEnd) { target.value = value.substr(0, selectionStart) + value.substr(selectionEnd); target.setSelectionRange(selectionStart, selectionStart, 'none'); } else if (selectionStart > 0) { var newSelectionStart = selectionStart - 1; target.value = value.substr(0, newSelectionStart) + value.substr(selectionEnd); target.setSelectionRange(newSelectionStart, newSelectionStart, 'none'); } } return target.dispatchEvent(new InputEvent('input')); }); } exports.emulateBackspace = emulateBackspace; function emulateDelete() { return emulate_key_events_1.emulateKeyEvents('Delete', function (target) { var value = target.value || ''; var valueLength = value.length; if (valueLength > 0) { var selectionStart = text_input_element_type_1.findSelectionStart(target, valueLength); var selectionEnd = text_input_element_type_1.findSelectionEnd(target, valueLength); if (selectionStart !== selectionEnd) { target.value = value.substr(0, selectionStart) + value.substr(selectionEnd); target.setSelectionRange(selectionStart, selectionStart, 'none'); } else if (selectionEnd < valueLength) { target.value = value.substr(0, selectionEnd) + value.substr(selectionEnd + 1); target.setSelectionRange(selectionEnd, selectionEnd, 'none'); } } return target.dispatchEvent(new InputEvent('input')); }); } exports.emulateDelete = emulateDelete;