{"version":3,"file":"get-date-in-tab-order.mjs","sources":["../../../../src/components/Month/get-date-in-tab-order/get-date-in-tab-order.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { DateStringValue } from '../../../types';\nimport { DayProps } from '../../Day/Day';\nimport { isAfterMinDate } from '../is-after-min-date/is-after-min-date';\nimport { isBeforeMaxDate } from '../is-before-max-date/is-before-max-date';\nimport { isSameMonth } from '../is-same-month/is-same-month';\n\ninterface GetDateInTabOrderInput {\n  dates: DateStringValue[][];\n  minDate: DateStringValue | undefined;\n  maxDate: DateStringValue | undefined;\n  getDayProps: ((date: DateStringValue) => Partial<DayProps>) | undefined;\n  excludeDate: ((date: DateStringValue) => boolean) | undefined;\n  hideOutsideDates: boolean | undefined;\n  month: DateStringValue;\n}\n\nexport function getDateInTabOrder({\n  dates,\n  minDate,\n  maxDate,\n  getDayProps,\n  excludeDate,\n  hideOutsideDates,\n  month,\n}: GetDateInTabOrderInput) {\n  const enabledDates = dates\n    .flat()\n    .filter(\n      (date) =>\n        isBeforeMaxDate(date, maxDate) &&\n        isAfterMinDate(date, minDate) &&\n        !excludeDate?.(date) &&\n        !getDayProps?.(date)?.disabled &&\n        (!hideOutsideDates || isSameMonth(date, month))\n    );\n\n  const selectedDate = enabledDates.find((date) => getDayProps?.(date)?.selected);\n\n  if (selectedDate) {\n    return selectedDate;\n  }\n\n  const currentDate = enabledDates.find((date) => dayjs().isSame(date, 'date'));\n\n  if (currentDate) {\n    return currentDate;\n  }\n\n  return enabledDates[0];\n}\n"],"names":[],"mappings":"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"}