This repository was archived by the owner on May 20, 2023. It is now read-only.
File tree 2 files changed +12
-5
lines changed 2 files changed +12
-5
lines changed Original file line number Diff line number Diff line change @@ -35,7 +35,7 @@ class TreeSelectionOptions<T> extends SelectionOptions<T>
35
35
: _itemRenderer = itemRenderer ?? defaultItemRenderer,
36
36
_itemsOptions = new Map <T , TreeSelectionOptionData <T >>.fromIterable (
37
37
listOfOptions,
38
- key: (TreeSelectionOptionData < T > item) => item.value),
38
+ key: (item) => ( item as TreeSelectionOptionData < T >) .value),
39
39
super (const []) {
40
40
_comparator = comparator ?? _defaultComparator;
41
41
_parentToChildrenMap = _generateParentToChildrenMap (listOfOptions);
Original file line number Diff line number Diff line change @@ -12,10 +12,17 @@ import 'package:angular_components/model/ui/has_renderer.dart';
12
12
/// [itemRenderer] should return a unique string representation for each item.
13
13
List <T > sortItems <T >(ItemRenderer <T > itemRenderer, Iterable <T > items,
14
14
{bool ignoreCase: false }) {
15
+ // TODO(google): Use new SplayTreeMap<String, T>.fromIterable<T>(...) when
16
+ // generic constructors becomes available.
17
+ var itemsMap = new SplayTreeMap <String , T >();
15
18
if (ignoreCase) {
16
- return new SplayTreeMap <String , T >.fromIterable (items,
17
- key: (T item) => itemRenderer (item).toLowerCase ()).values.toList ();
19
+ for (T item in items) {
20
+ itemsMap[itemRenderer (item).toLowerCase ()] = item;
21
+ }
22
+ } else {
23
+ for (T item in items) {
24
+ itemsMap[itemRenderer (item)] = item;
25
+ }
18
26
}
19
- return new SplayTreeMap <String , T >.fromIterable (items,
20
- key: (T item) => itemRenderer (item)).values.toList ();
27
+ return itemsMap.values.toList ();
21
28
}
You can’t perform that action at this time.
0 commit comments