{"version":3,"file":"date.cjs","sources":["../../../src/utils/date.ts"],"sourcesContent":["import dayjs, { Dayjs } from \"dayjs\";\nimport durationPlugin, { type Duration } from \"dayjs/plugin/duration\";\n\ndayjs.extend(durationPlugin);\n\nexport const getUpdatedMinMaxValue = (\n    previousValue?: Date | null,\n    newValue?: Date | null,\n) => {\n    if (!newValue) return previousValue;\n    const parsedPreviousValue = dayjs(previousValue);\n    if (!parsedPreviousValue.isValid()) return newValue;\n    if (parsedPreviousValue.isSame(newValue, \"seconds\")) return previousValue;\n    return newValue;\n};\n\n// our interface for a single cell\nexport interface CalendarCell {\n    text: string;\n    value: Dayjs;\n}\n\nconst prepareCell = (date: Dayjs, dayNumber: number) => {\n    return {\n        text: String(dayNumber),\n        value: date.clone().set(\"date\", dayNumber),\n    };\n};\n\nexport const getCalendarCells = (date: Dayjs): CalendarCell[] => {\n    const daysInMonth = date.daysInMonth();\n    const calendarCells: CalendarCell[] = [];\n\n    // push current month day cells\n    for (let i = 0; i < daysInMonth; i++)\n        calendarCells.push(prepareCell(date, i + 1));\n\n    // we always aim to have a constant day-week cell array\n    // so that the first cell starts at monday and the 7th\n    // ends on sunday\n    const firstDateDayOfWeek = calendarCells[0].value.day();\n    const cellsToPrepend =\n        firstDateDayOfWeek === 0 ? 6 : firstDateDayOfWeek - 1;\n\n    // add to start from prev month\n    const lastMonth = date.subtract(1, \"month\");\n    for (let i = 0; i < cellsToPrepend; i++)\n        calendarCells.unshift(\n            prepareCell(lastMonth, lastMonth.daysInMonth() - i),\n        );\n\n    // add to end from next month\n    const nextMonth = date.add(1, \"month\");\n    const calendarCellsLength = calendarCells.length;\n    for (let i = 0; i < 42 - calendarCellsLength; i++)\n        calendarCells.push(prepareCell(nextMonth, i + 1));\n\n    return calendarCells;\n};\n\nexport const resolvedValue = (\n    value?: Date | null,\n    min?: Date | null,\n    max?: Date | null,\n) => {\n    return rectifyDate(value ? dayjs(value) : dayjs(), min, max);\n};\n\nexport const rectifyDate = (\n    value: Dayjs,\n    min?: Date | null,\n    max?: Date | null,\n) => {\n    if (!!(min && value.isBefore(min, \"seconds\"))) return dayjs(min);\n    if (!!(max && value.isAfter(max, \"seconds\"))) return dayjs(max);\n    return value;\n};\n\nexport const getDurationFromNowToUNIXTimestamp = (to: number): Duration => {\n    const now = dayjs();\n    if (to - now.unix() < 0) return dayjs.duration(0);\n    return dayjs.duration(dayjs.unix(to).diff(dayjs()));\n};\n"],"names":["dayjs","durationPlugin"],"mappings":"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"}