(node, multiple, propValue, setDefaultSelected)
| 14603 | } |
| 14604 | |
| 14605 | function updateOptions(node, multiple, propValue, setDefaultSelected) { |
| 14606 | var options = node.options; |
| 14607 | |
| 14608 | if (multiple) { |
| 14609 | var selectedValues = propValue; |
| 14610 | var selectedValue = {}; |
| 14611 | for (var i = 0; i < selectedValues.length; i++) { |
| 14612 | // Prefix to avoid chaos with special keys. |
| 14613 | selectedValue['$' + selectedValues[i]] = true; |
| 14614 | } |
| 14615 | for (var _i = 0; _i < options.length; _i++) { |
| 14616 | var selected = selectedValue.hasOwnProperty('$' + options[_i].value); |
| 14617 | if (options[_i].selected !== selected) { |
| 14618 | options[_i].selected = selected; |
| 14619 | } |
| 14620 | if (selected && setDefaultSelected) { |
| 14621 | options[_i].defaultSelected = true; |
| 14622 | } |
| 14623 | } |
| 14624 | } else { |
| 14625 | // Do not set `select.value` as exact behavior isn't consistent across all |
| 14626 | // browsers for all cases. |
| 14627 | var _selectedValue = '' + propValue; |
| 14628 | var defaultSelected = null; |
| 14629 | for (var _i2 = 0; _i2 < options.length; _i2++) { |
| 14630 | if (options[_i2].value === _selectedValue) { |
| 14631 | options[_i2].selected = true; |
| 14632 | if (setDefaultSelected) { |
| 14633 | options[_i2].defaultSelected = true; |
| 14634 | } |
| 14635 | return; |
| 14636 | } |
| 14637 | if (defaultSelected === null && !options[_i2].disabled) { |
| 14638 | defaultSelected = options[_i2]; |
| 14639 | } |
| 14640 | } |
| 14641 | if (defaultSelected !== null) { |
| 14642 | defaultSelected.selected = true; |
| 14643 | } |
| 14644 | } |
| 14645 | } |
| 14646 | |
| 14647 | /** |
| 14648 | * Implements a <select> host component that allows optionally setting the |
no outgoing calls
no test coverage detected