(node, multiple, propValue, setDefaultSelected)
| 13743 | } |
| 13744 | |
| 13745 | function updateOptions(node, multiple, propValue, setDefaultSelected) { |
| 13746 | var options = node.options; |
| 13747 | |
| 13748 | if (multiple) { |
| 13749 | var selectedValues = propValue; |
| 13750 | var selectedValue = {}; |
| 13751 | for (var i = 0; i < selectedValues.length; i++) { |
| 13752 | // Prefix to avoid chaos with special keys. |
| 13753 | selectedValue['$' + selectedValues[i]] = true; |
| 13754 | } |
| 13755 | for (var _i = 0; _i < options.length; _i++) { |
| 13756 | var selected = selectedValue.hasOwnProperty('$' + options[_i].value); |
| 13757 | if (options[_i].selected !== selected) { |
| 13758 | options[_i].selected = selected; |
| 13759 | } |
| 13760 | if (selected && setDefaultSelected) { |
| 13761 | options[_i].defaultSelected = true; |
| 13762 | } |
| 13763 | } |
| 13764 | } else { |
| 13765 | // Do not set `select.value` as exact behavior isn't consistent across all |
| 13766 | // browsers for all cases. |
| 13767 | var _selectedValue = '' + propValue; |
| 13768 | var defaultSelected = null; |
| 13769 | for (var _i2 = 0; _i2 < options.length; _i2++) { |
| 13770 | if (options[_i2].value === _selectedValue) { |
| 13771 | options[_i2].selected = true; |
| 13772 | if (setDefaultSelected) { |
| 13773 | options[_i2].defaultSelected = true; |
| 13774 | } |
| 13775 | return; |
| 13776 | } |
| 13777 | if (defaultSelected === null && !options[_i2].disabled) { |
| 13778 | defaultSelected = options[_i2]; |
| 13779 | } |
| 13780 | } |
| 13781 | if (defaultSelected !== null) { |
| 13782 | defaultSelected.selected = true; |
| 13783 | } |
| 13784 | } |
| 13785 | } |
| 13786 | |
| 13787 | /** |
| 13788 | * Implements a <select> host component that allows optionally setting the |
no outgoing calls
no test coverage detected