(node, multiple, propValue, setDefaultSelected)
| 14648 | } |
| 14649 | |
| 14650 | function updateOptions(node, multiple, propValue, setDefaultSelected) { |
| 14651 | var options = node.options; |
| 14652 | |
| 14653 | if (multiple) { |
| 14654 | var selectedValues = propValue; |
| 14655 | var selectedValue = {}; |
| 14656 | for (var i = 0; i < selectedValues.length; i++) { |
| 14657 | // Prefix to avoid chaos with special keys. |
| 14658 | selectedValue['$' + selectedValues[i]] = true; |
| 14659 | } |
| 14660 | for (var _i = 0; _i < options.length; _i++) { |
| 14661 | var selected = selectedValue.hasOwnProperty('$' + options[_i].value); |
| 14662 | if (options[_i].selected !== selected) { |
| 14663 | options[_i].selected = selected; |
| 14664 | } |
| 14665 | if (selected && setDefaultSelected) { |
| 14666 | options[_i].defaultSelected = true; |
| 14667 | } |
| 14668 | } |
| 14669 | } else { |
| 14670 | // Do not set `select.value` as exact behavior isn't consistent across all |
| 14671 | // browsers for all cases. |
| 14672 | var _selectedValue = '' + propValue; |
| 14673 | var defaultSelected = null; |
| 14674 | for (var _i2 = 0; _i2 < options.length; _i2++) { |
| 14675 | if (options[_i2].value === _selectedValue) { |
| 14676 | options[_i2].selected = true; |
| 14677 | if (setDefaultSelected) { |
| 14678 | options[_i2].defaultSelected = true; |
| 14679 | } |
| 14680 | return; |
| 14681 | } |
| 14682 | if (defaultSelected === null && !options[_i2].disabled) { |
| 14683 | defaultSelected = options[_i2]; |
| 14684 | } |
| 14685 | } |
| 14686 | if (defaultSelected !== null) { |
| 14687 | defaultSelected.selected = true; |
| 14688 | } |
| 14689 | } |
| 14690 | } |
| 14691 | |
| 14692 | /** |
| 14693 | * Implements a <select> host component that allows optionally setting the |
no outgoing calls
no test coverage detected