UNPKG

ng-daterangepicker-ext

Version:
55 lines (48 loc) 1.74 kB
import { Injectable } from '@angular/core'; import { NgDateRangePickerOptions } from './ng-daterangepicker-options'; import * as dateFns from 'date-fns'; export interface DateObj { dateFrom: Date; dateTo: Date; } @Injectable() export class NgDateRangePickerHelper { selectRange(options: NgDateRangePickerOptions, range?: 'tm' | 'lm' | 'lw' | 'tw' | 'ty' | 'ly'): DateObj { let today = dateFns.startOfDay(new Date()); let dateFrom: Date; let dateTo: Date; switch (range || options.range) { case 'tm': dateFrom = dateFns.startOfMonth(today); dateTo = dateFns.endOfMonth(today); break; case 'lm': today = dateFns.subMonths(today, 1); dateFrom = dateFns.startOfMonth(today); dateTo = dateFns.endOfMonth(today); break; case 'lw': today = dateFns.subWeeks(today, 1); dateFrom = dateFns.startOfWeek(today, {weekStartsOn: options.startOfWeek}); dateTo = dateFns.endOfWeek(today, {weekStartsOn: options.startOfWeek}); break; case 'tw': dateFrom = dateFns.startOfWeek(today, {weekStartsOn: options.startOfWeek}); dateTo = dateFns.endOfWeek(today, {weekStartsOn: options.startOfWeek}); break; case 'ty': dateFrom = dateFns.startOfYear(today); dateTo = dateFns.endOfYear(today); break; case 'ly': today = dateFns.subYears(today, 1); dateFrom = dateFns.startOfYear(today); dateTo = dateFns.endOfYear(today); break; } return { dateFrom: dateFrom, dateTo: dateTo }; } }