-
-
Notifications
You must be signed in to change notification settings - Fork 241
/
Copy pathdate-value-accessor.ts
40 lines (37 loc) · 1.33 KB
/
date-value-accessor.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import { Directive, ElementRef, forwardRef } from "@angular/core";
import { NG_VALUE_ACCESSOR } from "@angular/forms";
import { BaseValueAccessor } from "./base-value-accessor";
import { DatePicker } from "tns-core-modules/ui/date-picker";
const DATE_VALUE_ACCESSOR = {
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => DateValueAccessor),
multi: true,
};
/**
* The accessor for setting a date and listening to changes that is used by the
* {@link NgModel} directives.
*
* ### Example
* ```
* <DatePicker [(ngModel)]="model.test">
* ```
*/
@Directive({
selector: "DatePicker[ngModel],DatePicker[formControlName],DatePicker[formControl]," +
"datepicker[ngModel],datepicker[formControlName],datepicker[formControl]," +
"datePicker[ngModel],datePicker[formControlName],datePicker[formControl]," +
"date-picker[ngModel],date-picker[formControlName],date-picker[formControl]",
providers: [DATE_VALUE_ACCESSOR],
host: {
"(touch)": "onTouched()",
"(dateChange)": "onChange($event.value)",
},
})
export class DateValueAccessor extends BaseValueAccessor<DatePicker> { // tslint:disable-line:directive-class-suffix
constructor(elementRef: ElementRef) {
super(elementRef.nativeElement);
}
writeValue(value: any): void {
this.view.date = value;
}
}