in earlier versions it was possible to select a parent element in multiselect, and its children elemen where still selectable. The parent element was disabled and could not be selected anymore but its children were not removed from the drop down.
Now the behavior has changed and items are removed completely upon selection, so if you select a parent item you can't select any of its children anymore.
compared to http://plnkr.co/edit/a6rrYHYbLDtEB27K3j77?p=preview (version 3.2, has another issue though).
Maybe the behavior should be configurable?
pull request to make it configurable is welcome
I had a look at it and actually manage to code something. However, if we keep the current behavior (selecting parent selects - and hides - children), we probably need to add code to modify the selection. Example
If user selects Child, the item is selected and thus hidden and added to the list
If user selects Parent, the item is selected and thus hidden and added to the list
If user would have selected parent first, the value would be "Parent" only. So should the value be changed so that if the parent of a previously selected Child is added, its children are removed from the value?
What do you think?
the problem is there are many permutations of this behavior
to start with there are choices of what to do in the result list - the available choices
1.1 when parent is selected remove parent and children from the list of available choices
1.2 when parent is selected disable the parent, leave children available for further selection
then there are choices of what happens with the list of selected elements
2.1 when a parent is selected leave any selected children
2.2 when a parent is selected remove any children
2.3 when a child is selected remove any selected parents
these are just the ones that come to mind right now.
supporting the removal of children/parents can be accomplished by storing path to root along with the id of every selected choice. but the question is how to best support all these possible permutations...