(viewValue)
| 26039 | } |
| 26040 | |
| 26041 | function createIsSelectedFn(viewValue) { |
| 26042 | var selectedSet; |
| 26043 | if (multiple) { |
| 26044 | if (trackFn && isArray(viewValue)) { |
| 26045 | |
| 26046 | selectedSet = new HashMap([]); |
| 26047 | for (var trackIndex = 0; trackIndex < viewValue.length; trackIndex++) { |
| 26048 | // tracking by key |
| 26049 | selectedSet.put(callExpression(trackFn, null, viewValue[trackIndex]), true); |
| 26050 | } |
| 26051 | } else { |
| 26052 | selectedSet = new HashMap(viewValue); |
| 26053 | } |
| 26054 | } else if (trackFn) { |
| 26055 | viewValue = callExpression(trackFn, null, viewValue); |
| 26056 | } |
| 26057 | |
| 26058 | return function isSelected(key, value) { |
| 26059 | var compareValueFn; |
| 26060 | if (trackFn) { |
| 26061 | compareValueFn = trackFn; |
| 26062 | } else if (selectAsFn) { |
| 26063 | compareValueFn = selectAsFn; |
| 26064 | } else { |
| 26065 | compareValueFn = valueFn; |
| 26066 | } |
| 26067 | |
| 26068 | if (multiple) { |
| 26069 | return isDefined(selectedSet.remove(callExpression(compareValueFn, key, value))); |
| 26070 | } else { |
| 26071 | return viewValue === callExpression(compareValueFn, key, value); |
| 26072 | } |
| 26073 | }; |
| 26074 | } |
| 26075 | |
| 26076 | function scheduleRendering() { |
| 26077 | if (!renderScheduled) { |
no test coverage detected