1
- import { Directive , ElementRef , forwardRef , AfterViewInit , HostListener } from "@angular/core" ;
1
+ import { Directive , ElementRef , forwardRef , AfterViewInit } from "@angular/core" ;
2
2
import { NG_VALUE_ACCESSOR } from "@angular/forms" ;
3
3
import { BaseValueAccessor } from "./base-value-accessor" ;
4
4
import { View } from "tns-core-modules/ui/core/view" ;
5
5
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
+ } ;
8
11
9
12
export type SelectableView = { selectedIndex : number } & View ;
10
13
@@ -18,18 +21,28 @@ export type SelectableView = {selectedIndex: number} & View;
18
21
* ```
19
22
*/
20
23
@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
- } )
25
- export 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
- }
24
+ selector :
25
+ "SegmentedBar[ngModel],SegmentedBar[formControlName]," +
26
+ "segmentedBar[ngModel],segmentedBar[formControlName]," +
27
+ "segmentedbar[ngModel],segmentedbar[formControlName]," +
28
+ "segmented-bar[ngModel],segmented-bar[formControlName]," +
30
29
31
- onTouched = ( ) => { } ;
30
+ "ListPicker[ngModel],ListPicker[formControlName]," +
31
+ "listPicker[ngModel],listPicker[formControlName]," +
32
+ "listpicker[ngModel],listpicker[formControlName]," +
33
+ "list-picker[ngModel],list-picker[formControlName]," +
32
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
+ } ,
44
+ } )
45
+ export class SelectedIndexValueAccessor extends BaseValueAccessor < SelectableView > implements AfterViewInit { // tslint:disable-line:max-line-length directive-class-suffix
33
46
constructor ( elementRef : ElementRef ) {
34
47
super ( elementRef . nativeElement ) ;
35
48
}
@@ -39,6 +52,7 @@ export class SelectedIndexValueAccessor extends BaseValueAccessor<SelectableView
39
52
40
53
writeValue ( value : any ) : void {
41
54
this . value = value ;
55
+
42
56
if ( this . viewInitialized ) {
43
57
this . view . selectedIndex = this . value ;
44
58
}
@@ -48,6 +62,4 @@ export class SelectedIndexValueAccessor extends BaseValueAccessor<SelectableView
48
62
this . viewInitialized = true ;
49
63
this . view . selectedIndex = this . value ;
50
64
}
51
-
52
- registerOnTouched ( fn : ( ) => void ) : void { this . onTouched = fn ; }
53
65
}
0 commit comments