{"version":3,"file":"get-date-in-tab-order.mjs","names":[],"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"],"mappings":";;;;;;AAiBA,SAAgB,kBAAkB,EAChC,OACA,SACA,SACA,aACA,aACA,kBACA,SACyB;CACzB,MAAM,eAAe,MAClB,KAAK,CAAC,CACN,QACE,SACC,gBAAgB,MAAM,OAAO,KAC7B,eAAe,MAAM,OAAO,KAC5B,CAAC,cAAc,IAAI,KACnB,CAAC,cAAc,IAAI,CAAC,EAAE,aACrB,CAAC,oBAAoB,YAAY,MAAM,KAAK,EACjD;CAEF,MAAM,eAAe,aAAa,MAAM,SAAS,cAAc,IAAI,CAAC,EAAE,QAAQ;CAE9E,IAAI,cACF,OAAO;CAGT,MAAM,cAAc,aAAa,MAAM,SAAS,MAAM,CAAC,CAAC,OAAO,MAAM,MAAM,CAAC;CAE5E,IAAI,aACF,OAAO;CAGT,OAAO,aAAa;AACtB"}