UNPKG

@mantine/dates

Version:

Calendars, date and time pickers based on Mantine components

1 lines 2.09 kB
{"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"}