(node, multiple, propValue, setDefaultSelected)
| 13834 | } |
| 13835 | |
| 13836 | function updateOptions(node, multiple, propValue, setDefaultSelected) { |
| 13837 | var options = node.options; |
| 13838 | |
| 13839 | if (multiple) { |
| 13840 | var selectedValues = propValue; |
| 13841 | var selectedValue = {}; |
| 13842 | for (var i = 0; i < selectedValues.length; i++) { |
| 13843 | // Prefix to avoid chaos with special keys. |
| 13844 | selectedValue['$' + selectedValues[i]] = true; |
| 13845 | } |
| 13846 | for (var _i = 0; _i < options.length; _i++) { |
| 13847 | var selected = selectedValue.hasOwnProperty('$' + options[_i].value); |
| 13848 | if (options[_i].selected !== selected) { |
| 13849 | options[_i].selected = selected; |
| 13850 | } |
| 13851 | if (selected && setDefaultSelected) { |
| 13852 | options[_i].defaultSelected = true; |
| 13853 | } |
| 13854 | } |
| 13855 | } else { |
| 13856 | // Do not set `select.value` as exact behavior isn't consistent across all |
| 13857 | // browsers for all cases. |
| 13858 | var _selectedValue = '' + propValue; |
| 13859 | var defaultSelected = null; |
| 13860 | for (var _i2 = 0; _i2 < options.length; _i2++) { |
| 13861 | if (options[_i2].value === _selectedValue) { |
| 13862 | options[_i2].selected = true; |
| 13863 | if (setDefaultSelected) { |
| 13864 | options[_i2].defaultSelected = true; |
| 13865 | } |
| 13866 | return; |
| 13867 | } |
| 13868 | if (defaultSelected === null && !options[_i2].disabled) { |
| 13869 | defaultSelected = options[_i2]; |
| 13870 | } |
| 13871 | } |
| 13872 | if (defaultSelected !== null) { |
| 13873 | defaultSelected.selected = true; |
| 13874 | } |
| 13875 | } |
| 13876 | } |
| 13877 | |
| 13878 | /** |
| 13879 | * Implements a <select> host component that allows optionally setting the |
no outgoing calls
no test coverage detected