(viewValue)
| 25679 | } |
| 25680 | |
| 25681 | function createIsSelectedFn(viewValue) { |
| 25682 | var selectedSet; |
| 25683 | if (multiple) { |
| 25684 | if (trackFn && isArray(viewValue)) { |
| 25685 | |
| 25686 | selectedSet = new HashMap([]); |
| 25687 | for (var trackIndex = 0; trackIndex < viewValue.length; trackIndex++) { |
| 25688 | // tracking by key |
| 25689 | selectedSet.put(callExpression(trackFn, null, viewValue[trackIndex]), true); |
| 25690 | } |
| 25691 | } else { |
| 25692 | selectedSet = new HashMap(viewValue); |
| 25693 | } |
| 25694 | } else if (trackFn) { |
| 25695 | viewValue = callExpression(trackFn, null, viewValue); |
| 25696 | } |
| 25697 | |
| 25698 | return function isSelected(key, value) { |
| 25699 | var compareValueFn; |
| 25700 | if (trackFn) { |
| 25701 | compareValueFn = trackFn; |
| 25702 | } else if (selectAsFn) { |
| 25703 | compareValueFn = selectAsFn; |
| 25704 | } else { |
| 25705 | compareValueFn = valueFn; |
| 25706 | } |
| 25707 | |
| 25708 | if (multiple) { |
| 25709 | return isDefined(selectedSet.remove(callExpression(compareValueFn, key, value))); |
| 25710 | } else { |
| 25711 | return viewValue === callExpression(compareValueFn, key, value); |
| 25712 | } |
| 25713 | }; |
| 25714 | } |
| 25715 | |
| 25716 | function scheduleRendering() { |
| 25717 | if (!renderScheduled) { |
no test coverage detected