(node, multiple, propValue, setDefaultSelected)
| 14761 | } |
| 14762 | |
| 14763 | function updateOptions(node, multiple, propValue, setDefaultSelected) { |
| 14764 | var options = node.options; |
| 14765 | |
| 14766 | if (multiple) { |
| 14767 | var selectedValues = propValue; |
| 14768 | var selectedValue = {}; |
| 14769 | for (var i = 0; i < selectedValues.length; i++) { |
| 14770 | // Prefix to avoid chaos with special keys. |
| 14771 | selectedValue['$' + selectedValues[i]] = true; |
| 14772 | } |
| 14773 | for (var _i = 0; _i < options.length; _i++) { |
| 14774 | var selected = selectedValue.hasOwnProperty('$' + options[_i].value); |
| 14775 | if (options[_i].selected !== selected) { |
| 14776 | options[_i].selected = selected; |
| 14777 | } |
| 14778 | if (selected && setDefaultSelected) { |
| 14779 | options[_i].defaultSelected = true; |
| 14780 | } |
| 14781 | } |
| 14782 | } else { |
| 14783 | // Do not set `select.value` as exact behavior isn't consistent across all |
| 14784 | // browsers for all cases. |
| 14785 | var _selectedValue = '' + propValue; |
| 14786 | var defaultSelected = null; |
| 14787 | for (var _i2 = 0; _i2 < options.length; _i2++) { |
| 14788 | if (options[_i2].value === _selectedValue) { |
| 14789 | options[_i2].selected = true; |
| 14790 | if (setDefaultSelected) { |
| 14791 | options[_i2].defaultSelected = true; |
| 14792 | } |
| 14793 | return; |
| 14794 | } |
| 14795 | if (defaultSelected === null && !options[_i2].disabled) { |
| 14796 | defaultSelected = options[_i2]; |
| 14797 | } |
| 14798 | } |
| 14799 | if (defaultSelected !== null) { |
| 14800 | defaultSelected.selected = true; |
| 14801 | } |
| 14802 | } |
| 14803 | } |
| 14804 | |
| 14805 | /** |
| 14806 | * Implements a <select> host component that allows optionally setting the |
no outgoing calls
no test coverage detected