in src/valueSelectionManager.ts [128:150]
private selectInternal(values: T[], multiSelect: boolean): void {
let resultValues: T[];
if (this.isSelected(values)) {
resultValues = multiSelect
? this.selectedValues.filter((selectedValue: T) => {
return !values.some((value: T) => value === selectedValue);
})
: this.selectedValues.length === values.length ? [] : values;
} else {
resultValues = multiSelect
? values.filter((value: T) => {
return !this.isSelected(value);
}).concat(this.selectedValues)
: values;
}
this.selectedValues.length = 0;
resultValues.forEach((value: T) => {
this.selectedValues.push(value);
});
}