diff --git a/assets/scripts/src/choices.js b/assets/scripts/src/choices.js index 5a763ea..7aa811f 100644 --- a/assets/scripts/src/choices.js +++ b/assets/scripts/src/choices.js @@ -790,7 +790,7 @@ class Choices { const isSelected = result.selected ? result.selected : false; const isDisabled = result.disabled ? result.disabled : false; if (result.choices) { - this._addGroup(result, index, value, label); + this._addGroup(result, (result.id || null), value, label); } else { this._addChoice(isSelected, isDisabled, result[value], result[label]); } @@ -1120,7 +1120,7 @@ class Choices { const isSelected = result.selected ? result.selected : false; const isDisabled = result.disabled ? result.disabled : false; if (result.choices) { - this._addGroup(result, index, value, label); + this._addGroup(result, (result.id || null), value, label); } else { this._addChoice(isSelected, isDisabled, result[value], result[label]); } @@ -1976,7 +1976,7 @@ class Choices { */ _addGroup(group, id, valueKey = 'value', labelKey = 'label') { const groupChoices = isType('Object', group) ? group.choices : Array.from(group.getElementsByTagName('OPTION')); - const groupId = id; + const groupId = id ? id : Math.floor(new Date().valueOf() * Math.random()); const isDisabled = group.disabled ? group.disabled : false; if (groupChoices) { @@ -2172,8 +2172,8 @@ class Choices { this.isSearching = false; if (passedGroups && passedGroups.length) { - passedGroups.forEach((group, index) => { - this._addGroup(group, index); + passedGroups.forEach((group) => { + this._addGroup(group, (group.id || null)); }); } else { const passedOptions = Array.from(this.passedElement.options);