3.0.2 • Published 2 years ago

@lakea/gravity-date-adapter-date-fns v3.0.2

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

@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,
    }
  ]
2.0.0-next.4

3 years ago

3.0.0-next.0

3 years ago

2.0.2

3 years ago

2.0.0-next.2

3 years ago

2.0.0-next.3

3 years ago

2.0.0-next.1

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

3.0.2

2 years ago

3.0.0

3 years ago

1.1.0

3 years ago

2.0.0-next.0

3 years ago

1.1.0-next.10

3 years ago

1.1.0-next.9

3 years ago

1.1.0-next.8

3 years ago

1.1.0-next.7

3 years ago

1.1.0-next.6

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.10-next.1

3 years ago

1.0.10-next.0

3 years ago

1.1.0-next.5

3 years ago

1.0.10-next.3

3 years ago

1.1.0-next.4

3 years ago

1.0.10-next.2

3 years ago

1.1.0-next.3

3 years ago

1.1.0-next.2

3 years ago

1.1.0-next.1

3 years ago

1.1.0-next.0

3 years ago

1.0.10

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago