UNPKG

first-npm-package-nicule

Version:

This isi first npm package

56 lines (42 loc) 1.65 kB
import { BaseInputComponent } from 'first-npm-package-nicule/forms'; import { ControlContainer, NgForm } from '@angular/forms'; import { Component, Inject, Injectable, Optional, ViewChild } from '@angular/core'; import { DateAdapter, MAT_DATE_FORMATS, NativeDateAdapter } from '@angular/material/core'; import { MatDatepicker } from '@angular/material/datepicker'; import { Observable } from 'rxjs'; @Injectable() export class MyDateAdapter extends NativeDateAdapter { getFirstDayOfWeek(): number { return 1; } } @Component({ templateUrl: 'date-field.component.html', styleUrls: ['../mat-field.scss', 'date-field.component.scss'], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }) export class DateFieldComponent extends BaseInputComponent { @ViewChild('picker', { static: false }) picker: MatDatepicker<any>; public dateLabel: Observable<string>; public dateValue; onSettingsChanged(): void { this.dateValue = this.getDateAsObject(this.field.value); } getDateAsObject(data): any { let result = data; if (typeof data === 'string' && data) { result = new Date(data); } else if (!data) { result = null; } return result; } setDateValue(date: Date): void { if (date) { if (!(date instanceof Date)) { date = this.getDateAsObject(date); } this.dateValue = new Date(date.getTime() - date.getTimezoneOffset() * 60000); return; } this.dateValue = undefined; } }