first-npm-package-nicule
Version:
This isi first npm package
56 lines (42 loc) • 1.65 kB
text/typescript
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';
()
export class MyDateAdapter extends NativeDateAdapter {
getFirstDayOfWeek(): number { return 1; }
}
({
templateUrl: 'date-field.component.html',
styleUrls: ['../mat-field.scss', 'date-field.component.scss'],
viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]
})
export class DateFieldComponent extends BaseInputComponent {
('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;
}
}