lion/packages/form-core/test-helpers/mimicUserInput.js
2022-03-16 16:28:59 +01:00

16 lines
599 B
JavaScript

// @ts-nocheck
/**
* @param {HTMLElement} formControl
* @param {?} newViewValue
* @param {{caretIndex?:number}} config
*/
export function mimicUserInput(formControl, newViewValue, { caretIndex } = {}) {
formControl.value = newViewValue; // eslint-disable-line no-param-reassign
if (caretIndex) {
// eslint-disable-next-line no-param-reassign
formControl._inputNode.selectionStart = caretIndex;
// eslint-disable-next-line no-param-reassign
formControl._inputNode.selectionEnd = caretIndex;
}
formControl._inputNode.dispatchEvent(new Event('input', { bubbles: true }));
}