From cfd03b9302a0496debd39e7b44f4f25f7dadaf5f Mon Sep 17 00:00:00 2001 From: Josh Johnson Date: Sun, 5 Feb 2017 09:41:59 +0000 Subject: [PATCH] Create unique group id if none passed --- assets/scripts/src/choices.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/assets/scripts/src/choices.js b/assets/scripts/src/choices.js index 224c92e..7aa811f 100644 --- a/assets/scripts/src/choices.js +++ b/assets/scripts/src/choices.js @@ -790,8 +790,7 @@ class Choices { const isSelected = result.selected ? result.selected : false; const isDisabled = result.disabled ? result.disabled : false; if (result.choices) { - if (result.id === undefined || result.id === null) throw new Error('Group id field missing'); - this._addGroup(result, result.id, value, label); + this._addGroup(result, (result.id || null), value, label); } else { this._addChoice(isSelected, isDisabled, result[value], result[label]); } @@ -1121,8 +1120,7 @@ class Choices { const isSelected = result.selected ? result.selected : false; const isDisabled = result.disabled ? result.disabled : false; if (result.choices) { - if (result.id === undefined || result.id === null) throw new Error('Group id field missing'); - this._addGroup(result, result.id, value, label); + this._addGroup(result, (result.id || null), value, label); } else { this._addChoice(isSelected, isDisabled, result[value], result[label]); } @@ -1978,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) { @@ -2175,8 +2173,7 @@ class Choices { if (passedGroups && passedGroups.length) { passedGroups.forEach((group) => { - if (group.id === undefined || group.id === null) throw new Error('Group id field missing'); - this._addGroup(group, group.id); + this._addGroup(group, (group.id || null)); }); } else { const passedOptions = Array.from(this.passedElement.options);