ng-daterangepicker-ext
Version:
Angular PayPal Datepicker
55 lines (48 loc) • 1.74 kB
text/typescript
import { Injectable } from '@angular/core';
import { NgDateRangePickerOptions } from './ng-daterangepicker-options';
import * as dateFns from 'date-fns';
export interface DateObj {
dateFrom: Date;
dateTo: Date;
}
()
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
};
}
}