(node, multiple, propValue, setDefaultSelected)
| 14383 | } |
| 14384 | |
| 14385 | function updateOptions(node, multiple, propValue, setDefaultSelected) { |
| 14386 | var options = node.options; |
| 14387 | |
| 14388 | if (multiple) { |
| 14389 | var selectedValues = propValue; |
| 14390 | var selectedValue = {}; |
| 14391 | for (var i = 0; i < selectedValues.length; i++) { |
| 14392 | // Prefix to avoid chaos with special keys. |
| 14393 | selectedValue['$' + selectedValues[i]] = true; |
| 14394 | } |
| 14395 | for (var _i = 0; _i < options.length; _i++) { |
| 14396 | var selected = selectedValue.hasOwnProperty('$' + options[_i].value); |
| 14397 | if (options[_i].selected !== selected) { |
| 14398 | options[_i].selected = selected; |
| 14399 | } |
| 14400 | if (selected && setDefaultSelected) { |
| 14401 | options[_i].defaultSelected = true; |
| 14402 | } |
| 14403 | } |
| 14404 | } else { |
| 14405 | // Do not set `select.value` as exact behavior isn't consistent across all |
| 14406 | // browsers for all cases. |
| 14407 | var _selectedValue = '' + propValue; |
| 14408 | var defaultSelected = null; |
| 14409 | for (var _i2 = 0; _i2 < options.length; _i2++) { |
| 14410 | if (options[_i2].value === _selectedValue) { |
| 14411 | options[_i2].selected = true; |
| 14412 | if (setDefaultSelected) { |
| 14413 | options[_i2].defaultSelected = true; |
| 14414 | } |
| 14415 | return; |
| 14416 | } |
| 14417 | if (defaultSelected === null && !options[_i2].disabled) { |
| 14418 | defaultSelected = options[_i2]; |
| 14419 | } |
| 14420 | } |
| 14421 | if (defaultSelected !== null) { |
| 14422 | defaultSelected.selected = true; |
| 14423 | } |
| 14424 | } |
| 14425 | } |
| 14426 | |
| 14427 | /** |
| 14428 | * Implements a <select> host component that allows optionally setting the |
no outgoing calls
no test coverage detected