22 lines
669 B
JavaScript
22 lines
669 B
JavaScript
/**
|
|
* @typedef {HTMLSelectElement|HTMLElement & {modelValue:string}} DropdownElement
|
|
*/
|
|
|
|
/**
|
|
* @param {DropdownElement} dropdownEl
|
|
* @param {string} value
|
|
*/
|
|
export function mimicUserChangingDropdown(dropdownEl, value) {
|
|
if ('modelValue' in dropdownEl) {
|
|
// eslint-disable-next-line no-param-reassign
|
|
dropdownEl.modelValue = value;
|
|
dropdownEl.dispatchEvent(
|
|
new CustomEvent('model-value-changed', { detail: { isTriggeredByUser: true } }),
|
|
);
|
|
} else {
|
|
// eslint-disable-next-line no-param-reassign
|
|
dropdownEl.value = value;
|
|
dropdownEl.dispatchEvent(new Event('change'));
|
|
dropdownEl.dispatchEvent(new Event('input'));
|
|
}
|
|
}
|