{"version":3,"file":"presets.mjs","sources":["../../../../src/components/Calendar/presets.ts"],"sourcesContent":["export interface Options {\n  title: string;\n  key: string;\n  type: string;\n  class?: string;\n}\n\nexport interface Preset extends Options {\n  eval: (range?: [Date, Date]) => [Date, Date] | Date;\n}\n\nexport interface Filter extends Options {\n  eval?: (range: [Date, Date]) => [Date, Date] | Date;\n  evalPerspective?: (range: [Date, Date]) => Date | undefined;\n  default?: boolean;\n  type: 'range' | 'filter' | 'disabled';\n  disableEdit?: boolean;\n  disablePreset?: boolean;\n  disablePerspective?: boolean;\n  disableCalendar?: boolean;\n}\n\nimport {\n  endOfMonth,\n  endOfWeek,\n  endOfYear,\n  set,\n  startOfMonth,\n  startOfWeek,\n  startOfYear,\n  subDays,\n  subYears,\n} from 'date-fns';\n\n// export const perspectiveDatePresets = [\n// ];\n\nexport default [\n  {\n    title: 'Today',\n    key: 'perspective_today',\n    type: 'perspective',\n    eval: () => {\n      const date = set(new Date(), {\n        hours: 0,\n        minutes: 0,\n        seconds: 0,\n        milliseconds: 0,\n      });\n      return date;\n    },\n  },\n  {\n    title: 'Yesterday',\n    key: 'perspective_yesterday',\n    type: 'perspective',\n    eval: () => {\n      const date = subDays(new Date(), 1);\n      return date;\n    },\n  },\n  {\n    title: '7 days ago',\n    key: 'perspective_7_days_ago',\n    type: 'perspective',\n    eval: () => {\n      const date = subDays(new Date(), 7);\n      return date;\n    },\n  },\n  {\n    title: 'Start of week',\n    key: 'perspective_start_of_week',\n    type: 'perspective',\n    eval: () => {\n      const date = startOfWeek(new Date(), {\n        weekStartsOn: 1,\n      });\n      return date;\n    },\n  },\n  {\n    title: 'Start of month',\n    key: 'perspective_start_of_month',\n    type: 'perspective',\n    eval: () => {\n      const date = startOfMonth(new Date());\n      return date;\n    },\n  },\n  {\n    title: 'Start of year',\n    key: 'perspective_start_of_year',\n    type: 'perspective',\n    eval: () => {\n      const date = startOfYear(new Date());\n      return date;\n    },\n  },\n  {\n    title: 'Today',\n    key: 'today',\n    type: 'range',\n    eval: () => {\n      const today = set(new Date(), {\n        hours: 0,\n        minutes: 0,\n        seconds: 0,\n        milliseconds: 0,\n      });\n      return [\n        today,\n        set(new Date(today), {\n          hours: 23,\n          minutes: 59,\n          seconds: 59,\n        }),\n      ];\n    },\n  },\n  {\n    title: 'Yesterday',\n    key: 'yesterday',\n    type: 'range',\n    eval: () => {\n      const yesterday = set(subDays(new Date(), 1), {\n        hours: 0,\n        minutes: 0,\n        seconds: 0,\n        milliseconds: 0,\n      });\n      return [\n        yesterday,\n        set(new Date(yesterday), {\n          hours: 23,\n          minutes: 59,\n          seconds: 59,\n        }),\n      ];\n    },\n  },\n  {\n    title: 'Last week',\n    key: 'last_week',\n    type: 'range',\n    eval: () => {\n      const startDay = startOfWeek(subDays(new Date(), 7), {\n        weekStartsOn: 1,\n      });\n      return [\n        startDay,\n        endOfWeek(new Date(startDay), {\n          weekStartsOn: 1,\n        }),\n      ];\n    },\n  },\n  {\n    title: 'This month so far',\n    key: 'this_month_so_far',\n    type: 'range',\n    eval: () => {\n      const monthStart = startOfMonth(new Date());\n      return [\n        monthStart,\n        set(new Date(), {\n          hours: 23,\n          minutes: 59,\n          seconds: 59,\n        }),\n      ];\n    },\n  },\n  {\n    title: 'This month',\n    key: 'this_moth',\n    type: 'range',\n    eval: () => {\n      return [startOfMonth(new Date()), endOfMonth(new Date())];\n    },\n  },\n  {\n    title: 'Last month',\n    key: 'last_month',\n    type: 'range',\n    eval: () => {\n      const startDay = startOfMonth(subDays(startOfMonth(new Date()), 1));\n      return [startDay, endOfMonth(startDay)];\n    },\n  },\n  {\n    title: 'This year so far',\n    key: 'this_year_so_far',\n    type: 'range',\n    eval: () => {\n      return [\n        startOfYear(new Date()),\n        set(new Date(), {\n          hours: 23,\n          minutes: 59,\n          seconds: 59,\n        }),\n      ];\n    },\n  },\n  {\n    title: 'This year',\n    key: 'this_year',\n    type: 'range',\n    eval: () => {\n      return [startOfYear(new Date()), endOfYear(new Date())];\n    },\n  },\n  {\n    title: 'Last calendar year',\n    key: 'last_calendar_year',\n    type: 'range',\n    eval: () => {\n      const startDay = startOfYear(subDays(startOfYear(new Date()), 1));\n      return [startDay, endOfYear(new Date(startDay))];\n    },\n  },\n  {\n    title: 'Past year',\n    key: 'past_year',\n    type: 'range',\n    eval: () => {\n      const now = new Date();\n      const startDay = subYears(now, 1);\n      return [startDay, now];\n    },\n  },\n] as Array<Preset>;\n"],"names":["defaultPresets","set","subDays","startOfWeek","startOfMonth","startOfYear","today","yesterday","startDay","endOfWeek","endOfMonth","endOfYear","now","subYears"],"mappings":"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"}