import {DateRangeType, TimeUnit} from './types'; export enum PresetDateRange { Custom = 'custom', Today = 'today', Yesterday = 'yesterday', Last96Hours = 'last_96_hours', Last30Days = 'last_30_days', Last24Weeks = 'last_24_weeks', Last12Months = 'last_12_months', } export const TIME_UNIT_DISPLAY_NAMES: {[key in TimeUnit]: string} = { [TimeUnit.Hour]: `hours`, [TimeUnit.Day]: `days`, [TimeUnit.Week]: `weeks`, [TimeUnit.Month]: `months`, [TimeUnit.Quarter]: `quarters`, [TimeUnit.Year]: `years`, }; export const DATE_RANGE_TYPE_DISPLAY_NAMES: {[key in DateRangeType]: string} = { [DateRangeType.Between]: `between`, [DateRangeType.On]: `on`, [DateRangeType.RelativeAfter]: `in the last`, [DateRangeType.RelativeBefore]: `before the last`, [DateRangeType.Since]: `since`, }; export const START_OF_YESTERDAY = `$start_of_previous_day`; export const END_OF_YESTERDAY = `$end_of_previous_day`; export const START_OF_TODAY = `$start_of_current_day`; export const PRESET_DATE_RANGE_DISPLAY_NAMES: {[key in PresetDateRange]: string} = { [PresetDateRange.Today]: `Current day`, [PresetDateRange.Yesterday]: `Previous day`, [PresetDateRange.Last96Hours]: `Last 96 hours`, [PresetDateRange.Last30Days]: `Last 30 days`, [PresetDateRange.Last24Weeks]: `Last 24 weeks`, [PresetDateRange.Last12Months]: `Last 12 months`, [PresetDateRange.Custom]: `Select a date range...`, }; export const PRESET_DATE_RANGE_OPTIONS: Array = [ PresetDateRange.Today, PresetDateRange.Yesterday, PresetDateRange.Last96Hours, PresetDateRange.Last30Days, PresetDateRange.Last24Weeks, PresetDateRange.Last12Months, PresetDateRange.Custom, ]; export const PRESET_DATE_RANGE_TO_DATE_RANGE_PARAMS = { [PresetDateRange.Today]: { from: START_OF_TODAY, type: DateRangeType.Since, }, [PresetDateRange.Yesterday]: { from: START_OF_YESTERDAY, to: END_OF_YESTERDAY, type: DateRangeType.Between, }, [PresetDateRange.Last96Hours]: { type: DateRangeType.RelativeAfter, window: { unit: TimeUnit.Hour, value: 96, }, }, [PresetDateRange.Last30Days]: { type: DateRangeType.RelativeAfter, window: { unit: TimeUnit.Day, value: 30, }, }, [PresetDateRange.Last24Weeks]: { type: DateRangeType.RelativeAfter, window: { unit: TimeUnit.Week, value: 24, }, }, [PresetDateRange.Last12Months]: { type: DateRangeType.RelativeAfter, window: { unit: TimeUnit.Month, value: 12, }, }, };