major update
This commit is contained in:
@@ -86,7 +86,24 @@ export const initMultiSelect = async (target = '[data-multi-select]') => {
|
||||
syncInput.dispatchEvent(new Event('change', { bubbles: true }));
|
||||
isSyncing = false;
|
||||
};
|
||||
instance.element.addEventListener('multi-select:change', syncValues);
|
||||
let boundElement = null;
|
||||
const bindSyncListener = () => {
|
||||
if (!instance?.element || instance.element === boundElement) {
|
||||
return;
|
||||
}
|
||||
instance.element.addEventListener('multi-select:change', syncValues);
|
||||
boundElement = instance.element;
|
||||
};
|
||||
bindSyncListener();
|
||||
if (typeof instance.refresh === 'function' && instance._syncRefreshWrapped !== true) {
|
||||
const originalRefresh = instance.refresh.bind(instance);
|
||||
instance.refresh = (...args) => {
|
||||
const result = originalRefresh(...args);
|
||||
bindSyncListener();
|
||||
return result;
|
||||
};
|
||||
instance._syncRefreshWrapped = true;
|
||||
}
|
||||
const values = instance.selectedValues || [];
|
||||
syncInput.value = Array.isArray(values) ? values.join(',') : '';
|
||||
syncInput.addEventListener('change', () => {
|
||||
|
||||
Reference in New Issue
Block a user