(node, multiple, propValue, setDefaultSelected)
| 14504 | } |
| 14505 | |
| 14506 | function updateOptions(node, multiple, propValue, setDefaultSelected) { |
| 14507 | var options = node.options; |
| 14508 | |
| 14509 | if (multiple) { |
| 14510 | var selectedValues = propValue; |
| 14511 | var selectedValue = {}; |
| 14512 | for (var i = 0; i < selectedValues.length; i++) { |
| 14513 | // Prefix to avoid chaos with special keys. |
| 14514 | selectedValue['$' + selectedValues[i]] = true; |
| 14515 | } |
| 14516 | for (var _i = 0; _i < options.length; _i++) { |
| 14517 | var selected = selectedValue.hasOwnProperty('$' + options[_i].value); |
| 14518 | if (options[_i].selected !== selected) { |
| 14519 | options[_i].selected = selected; |
| 14520 | } |
| 14521 | if (selected && setDefaultSelected) { |
| 14522 | options[_i].defaultSelected = true; |
| 14523 | } |
| 14524 | } |
| 14525 | } else { |
| 14526 | // Do not set `select.value` as exact behavior isn't consistent across all |
| 14527 | // browsers for all cases. |
| 14528 | var _selectedValue = '' + propValue; |
| 14529 | var defaultSelected = null; |
| 14530 | for (var _i2 = 0; _i2 < options.length; _i2++) { |
| 14531 | if (options[_i2].value === _selectedValue) { |
| 14532 | options[_i2].selected = true; |
| 14533 | if (setDefaultSelected) { |
| 14534 | options[_i2].defaultSelected = true; |
| 14535 | } |
| 14536 | return; |
| 14537 | } |
| 14538 | if (defaultSelected === null && !options[_i2].disabled) { |
| 14539 | defaultSelected = options[_i2]; |
| 14540 | } |
| 14541 | } |
| 14542 | if (defaultSelected !== null) { |
| 14543 | defaultSelected.selected = true; |
| 14544 | } |
| 14545 | } |
| 14546 | } |
| 14547 | |
| 14548 | /** |
| 14549 | * Implements a <select> host component that allows optionally setting the |
no outgoing calls
no test coverage detected