1- import { Directive , ElementRef , forwardRef , AfterViewInit , HostListener } from "@angular/core" ;
1+ import { Directive , ElementRef , forwardRef , AfterViewInit } from "@angular/core" ;
22import { NG_VALUE_ACCESSOR } from "@angular/forms" ;
33import { BaseValueAccessor } from "./base-value-accessor" ;
44import { View } from "tns-core-modules/ui/core/view" ;
55
6- const SELECTED_INDEX_VALUE_ACCESSOR = { provide : NG_VALUE_ACCESSOR ,
7- useExisting : forwardRef ( ( ) => SelectedIndexValueAccessor ) , multi : true } ;
6+ const SELECTED_INDEX_VALUE_ACCESSOR = {
7+ provide : NG_VALUE_ACCESSOR ,
8+ useExisting : forwardRef ( ( ) => SelectedIndexValueAccessor ) ,
9+ multi : true ,
10+ } ;
811
912export type SelectableView = { selectedIndex : number } & View ;
1013
@@ -18,17 +21,30 @@ export type SelectableView = {selectedIndex: number} & View;
1821 * ```
1922 */
2023@Directive ( {
21- // tslint:disable-next-line:max-line-length directive-selector
22- selector : "SegmentedBar[ngModel], SegmentedBar[formControlName], segmentedBar[ngModel], segmentedBar[formControlName], segmented-bar[ngModel], segmented-bar[formControlName], ListPicker[ngModel], ListPicker[formControlName], listPicker[ngModel], listPicker[formControlName], list-picker[ngModel], list-picker[formControlName], TabView[ngModel], TabView[formControlName], tabView[ngModel], tabView[formControlName], tab-view[ngModel], tab-view[formControlName]" ,
23- providers : [ SELECTED_INDEX_VALUE_ACCESSOR ]
24+ selector :
25+ "SegmentedBar[ngModel],SegmentedBar[formControlName]," +
26+ "segmentedBar[ngModel],segmentedBar[formControlName]," +
27+ "segmentedbar[ngModel],segmentedbar[formControlName]," +
28+ "segmented-bar[ngModel],segmented-bar[formControlName]," +
29+
30+ "ListPicker[ngModel],ListPicker[formControlName]," +
31+ "listPicker[ngModel],listPicker[formControlName]," +
32+ "listpicker[ngModel],listpicker[formControlName]," +
33+ "list-picker[ngModel],list-picker[formControlName]," +
34+
35+ "TabView[ngModel],TabView[formControlName]," +
36+ "tabView[ngModel],tabView[formControlName]," +
37+ "tabview[ngModel],tabview[formControlName]," +
38+ "tab-view[ngModel],tab-view[formControlName]" ,
39+ providers : [ SELECTED_INDEX_VALUE_ACCESSOR ] ,
40+ host : {
41+ "(touch)" : "onTouched()" ,
42+ "(selectedIndexChange)" : "onChange($event.value)" ,
43+ } ,
2444} )
2545export class SelectedIndexValueAccessor extends BaseValueAccessor < SelectableView > implements AfterViewInit { // tslint:disable-line:max-line-length directive-class-suffix
26- @HostListener ( "selectedIndexChange" , [ "$event" ] )
27- selectedIndexChangeListener ( event : any ) {
28- this . onChange ( event . value ) ;
29- }
30-
31- onTouched = ( ) => { } ;
46+ onChange = ( _ : any ) => { } ;
47+ onTouched = ( ) => { } ;
3248
3349 constructor ( elementRef : ElementRef ) {
3450 super ( elementRef . nativeElement ) ;
@@ -49,5 +65,6 @@ export class SelectedIndexValueAccessor extends BaseValueAccessor<SelectableView
4965 this . view . selectedIndex = this . value ;
5066 }
5167
68+ registerOnChange ( fn : ( _ : any ) => { } ) : void { this . onChange = fn ; }
5269 registerOnTouched ( fn : ( ) => void ) : void { this . onTouched = fn ; }
5370}
0 commit comments