UNPKG

retail-calendar

Version:
108 lines (107 loc) 2.88 kB
export declare enum WeekGrouping { Group445 = 0, Group544 = 1, Group454 = 2 } export declare enum LastDayOfWeek { Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6, Sunday = 7 } export declare enum LastMonthOfYear { January = 0, February = 1, March = 2, April = 3, May = 4, June = 5, July = 6, August = 7, September = 8, October = 9, November = 10, December = 11 } export declare enum WeekCalculation { LastDayBeforeEOM = 0, LastDayBeforeEomExceptLeapYear = 1, LastDayNearestEOM = 2, FirstBOWOfFirstMonth = 3, PenultimateDayOfWeekNearestEOM = 4, CustomLeapYear = 5 } export interface RetailCalendarOptions { weekGrouping: WeekGrouping; lastDayOfWeek: LastDayOfWeek; lastMonthOfYear: LastMonthOfYear | number; weekCalculation: WeekCalculation; /** * If the value of addLeapWeekToMonth is 11, then the 11th month of the years that have 53 weeks will be extended by an additional week */ addLeapWeekToMonth?: number; beginningMonthIndex?: number; leapYear?: number; leapYearEndDate?: string; leapYearFrequency?: number; } export declare const NRFCalendarOptions: RetailCalendarOptions; export declare type RetailCalendarConstructor = { new (calendarOptions: RetailCalendarOptions, year: number): RetailCalendar; getRetailCalendar: (calendarOptions: RetailCalendarOptions, year: number) => RetailCalendar; }; export interface RetailCalendar { year: number; numberOfWeeks: number; months: RetailCalendarMonth[]; weeks: RetailCalendarWeek[]; days: RetailCalendarDay[]; addLeapWeekToMonth: number; } export interface RetailCalendarDay { weekOfYear: number; monthOfYear: number; dayOfWeek: number; dayOfMonth: number; dayOfYear: number; gregorianStartDate: Date; gregorianEndDate: Date; gregorianMonthOfYear: number; gregorianDayOfYear: number; gregorianDayOfMonth: number; } export interface RetailCalendarWeek { weekOfYear: number; weekOfMonth: number; weekOfQuarter: number; monthOfYear: number; quarterOfYear: number; gregorianStartDate: Date; gregorianEndDate: Date; } export interface RetailCalendarMonth { monthOfYear: number; quarterOfYear: number; numberOfWeeks: number; weeks: RetailCalendarWeek[]; gregorianStartDate: Date; gregorianEndDate: Date; } export interface LastDayStrategy { getLastDayForGregorianLastDay(lastDayOfGregorianYear: Date, isoLastDayOfWeek: number, retailCalendarYear: number): Date; } export declare type WeekOfCalendar = { calendar: RetailCalendar; week: RetailCalendarWeek; }; export {}; declare global { namespace jest { interface Matchers<R> { toBeTheSameWeekAs(expected: any): R; } } }