@lakea/gravity-date-adapter-date-fns v3.0.2
@lakea/gravity-date-adapter-date-fns
An adapter for GrDate using date-fns as implementation.
Installation
Install the library using NPM:
npm install @lakea/gravity-date-adapter-date-fns date-fns --save
Next, create a new file, date-adapter-root.module.ts which exposes an Angular's module with a default configuration.
import {NgModule} from '@angular/core';
import {GR_DATE_FORMAT, GrDate} from '@lakea/gravity/cdk';
import {GR_DATE_FORMAT_DATE_FNS, GrDateAdapterDateFns} from '@lakea/gravity-date-adapter-date-fns';
@NgModule({
providers: [
{
provide: GrDate,
useClass: GrDateAdapterDateFns,
},
{
provide: GR_DATE_FORMAT,
useValue: GR_DATE_FORMAT_DATE_FNS,
},
],
})
export class DateAdapterRootModule {}Import DateAdapterRootModule to application root module like app.module.ts.
You should import the DateAdapterRootModule once in your root module.
The DateAdapterRootModule provide the adapter implementation for GrDate and a default date format.
GR_DATE_FORMAT_DATE_FNS pattern value is P.
To change default date format, provide a new pattern value for GR_DATE_FORMAT injector. Read the date-fns format docs to see all available patterns.
Creating your own adapter
Create your adapter implementation class extending GrDate abstraction:
import {Inject, Injectable} from '@angular/core';
import {GrDate} from '@lakea/gravity/cdk';
@Injectable()
export class GrDateAdapter extends GrDate {
constructor(@Inject(GR_DATE_FORMAT) private _dateFormat: string) {
super();
}
public add(date: Date, value: number, type: 'second' | 'minute' | 'hour' | 'day' | 'month' | 'year'): Date {
// YOUR IMPLEMENTATION
}
public subs(date: Date, value: number, type: 'second' | 'minute' | 'hour' | 'day' | 'month' | 'year'): Date {
// YOUR IMPLEMENTATION
}
public isBetween(date: Date, start: Date, end: Date): boolean {
// YOUR IMPLEMENTATION
}
public set(
date: Date,
values: {
year?: number;
month?: number;
date?: number;
hours?: number;
minutes?: number;
seconds?: number;
milliseconds?: number;
}
): Date {
// YOUR IMPLEMENTATION
}
public formatDate(date: Date, dateFormat?: string): string {
// YOUR IMPLEMENTATION
}
public toDate(value: string, fromFormat?: string): Date {
// YOUR IMPLEMENTATION
}
public toISO(date: Date): string {
// YOUR IMPLEMENTATION
}
public toUnix(date: Date): number {
// YOUR IMPLEMENTATION
}
public unixToDate(value: number): Date {
// YOUR IMPLEMENTATION
}
}So, provide it on your application root module (maybe app.module.ts), like this:
providers: [
{
provide: GrDate,
useClass: GrDateAdapter,
}
]3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago