@@ -16,7 +16,7 @@ import 'package:angular_components/mixins/material_dropdown_base.dart';
1616import 'package:angular_components/model/a11y/active_item_mixin.dart' ;
1717import 'package:angular_components/model/selection/selection_container.dart' ;
1818import 'package:angular_components/model/selection/selection_model.dart' ;
19- import 'package:angular_components/model/ui/has_renderer .dart' ;
19+ import 'package:angular_components/model/ui/has_factory .dart' ;
2020import 'package:angular_components/utils/angular/properties/properties.dart' ;
2121import 'package:angular_components/utils/browser/dom_service/dom_service.dart' ;
2222import 'package:angular_components/utils/disposer/disposer.dart' ;
@@ -47,7 +47,12 @@ import 'package:angular_components/utils/disposer/disposer.dart';
4747)
4848class MaterialSelectItemComponent extends ButtonDirective
4949 with ActiveItemMixin
50- implements OnDestroy , SelectionItem , HasRenderer , HasComponentRenderer {
50+ implements
51+ OnDestroy ,
52+ SelectionItem ,
53+ HasRenderer ,
54+ HasComponentRenderer ,
55+ HasFactoryRenderer {
5156 final _disposer = new Disposer .oneShot ();
5257 final ActivationHandler _activationHandler;
5358 final ChangeDetectorRef _cdRef;
@@ -124,8 +129,14 @@ class MaterialSelectItemComponent extends ButtonDirective
124129 /// Use instead of manual label or item renderer.
125130 @Input ()
126131 @override
132+ @Deprecated ('Use factoryrenderer instead as it will produce more '
133+ 'tree-shakeable code.' )
127134 ComponentRenderer componentRenderer;
128135
136+ @Input ()
137+ @override
138+ FactoryRenderer factoryRenderer;
139+
129140 /// If true, check marks are used instead of checkboxes to indicate whether or
130141 /// not the item is selected for multi-select items.
131142 ///
@@ -202,9 +213,13 @@ class MaterialSelectItemComponent extends ButtonDirective
202213
203214 bool _closeOnActivate = true ;
204215
216+ // TODO(google): Remove after migration from ComponentRenderer is complete
205217 Type get componentType =>
206218 componentRenderer != null ? componentRenderer (value) : null ;
207219
220+ ComponentFactory get componentFactory =>
221+ factoryRenderer != null ? factoryRenderer (value) : null ;
222+
208223 /// Whether this item should be marked as selected.
209224 bool get isSelected => _isMarkedSelected || _isSelectedInSelectionModel;
210225
0 commit comments