| /**
 * External dependencies
 */
import { __ } from '@wordpress/i18n';
import { add, endOfWeek, startOfMonth, startOfYear, sub } from 'date-fns';
/**
 * Internal dependencies
 */
import {
    getCurrentDate,
    getSubOrAddDaysDate,
    getFormattedDate,
} from '../../../utils/DateHelper';
export interface IDatePickerData {
    /**
     * Date Range option name.
     */
    name: string;
    /**
     * Date Range option slug.
     */
    value: string;
    /**
     * Start date of the date range.
     */
    startDate: string;
    /**
     * End date of the date range.
     */
    endDate: string;
}
export default function DatePickerData(): Array<IDatePickerData> {
    const currentDate = getCurrentDate();
    return [
        {
            name: __('Today', 'cp'),
            value: 'today',
            startDate: currentDate,
            endDate: currentDate,
        },
        {
            name: __('Yesterday', 'cp'),
            value: 'yesterday',
            startDate: getSubOrAddDaysDate('sub', 1),
            endDate: getSubOrAddDaysDate('sub', 1),
        },
        {
            name: __('This Month', 'cp'),
            value: 'thisMonth',
            startDate: getFormattedDate(startOfMonth(new Date())),
            endDate: getFormattedDate(
                sub(add(startOfMonth(new Date()), { months: 1 }), {
                    seconds: 1,
                })
            ),
        },
        {
            name: __('Last 7 Days', 'cp'),
            value: 'last7Days',
            startDate: getSubOrAddDaysDate('sub', 7),
            endDate: currentDate,
        },
        {
            name: __('Last 30 Days', 'cp'),
            value: 'last30Days',
            startDate: getSubOrAddDaysDate('sub', 30),
            endDate: currentDate,
        },
        {
            name: __('Last Week', 'cp'),
            value: 'lastWeek',
            startDate: getFormattedDate(
                sub(endOfWeek(new Date()), { days: 14 })
            ),
            endDate: getFormattedDate(sub(endOfWeek(new Date()), { days: 8 })),
        },
        {
            name: __('Last Month', 'cp'),
            value: 'lastMonth',
            startDate: getFormattedDate(
                sub(startOfMonth(new Date()), { months: 1 })
            ),
            endDate: getFormattedDate(
                sub(startOfMonth(new Date()), { days: 1 })
            ),
        },
        {
            name: __('Last Quarter', 'cp'),
            value: 'lastQuarter',
            startDate: getFormattedDate(
                sub(startOfMonth(new Date()), { months: 3 })
            ),
            endDate: getFormattedDate(
                sub(startOfMonth(new Date()), { days: 1 })
            ),
        },
        {
            name: __('Last Year', 'cp'),
            value: 'lastYear',
            startDate: getFormattedDate(
                sub(startOfYear(new Date()), { years: 1 })
            ),
            endDate: getFormattedDate(
                sub(startOfYear(new Date()), { days: 1 })
            ),
        },
        {
            name: __('Last 6 months', 'cp'),
            value: 'last6Months',
            startDate: getFormattedDate(
                sub(startOfMonth(new Date()), { months: 6 })
            ),
            endDate: getFormattedDate(
                sub(startOfMonth(new Date()), { days: 1 })
            ),
        },
        {
            name: __('Last 12 months', 'cp'),
            value: 'last12Months',
            startDate: getFormattedDate(
                sub(startOfMonth(new Date()), { months: 12 })
            ),
            endDate: getFormattedDate(
                sub(startOfMonth(new Date()), { days: 1 })
            ),
        },
        {
            name: __('All Time', 'cp'),
            value: 'allTime',
            startDate: '-1',
            endDate: '-1',
        },
        {
            name: __('Custom Range', 'cp'),
            value: 'customRange',
            startDate: '',
            endDate: '',
        },
    ];
}
 |