{"version":3,"file":"useCalendar.hook.cjs","sources":["../../../../../src/components/forms/calendar/hooks/useCalendar.hook.ts"],"sourcesContent":["import { useCallback, useState } from 'react'\r\n\r\nimport {\r\n    DEFAULT_END_YEAR,\r\n    DEFAULT_START_YEAR,\r\n} from '@components/forms/calendar/constants'\r\nimport type { CalendarView } from '@components/forms/calendar/context/calendarContext.ts'\r\nimport type { UseCalendarProps, UseCalendarResult } from '@components/forms/calendar/hooks/types'\r\n\r\nexport const useCalendar = ({\r\n    month: controlledMonth,\r\n    defaultMonth,\r\n    onMonthChange,\r\n    startMonth,\r\n    endMonth,\r\n    startYear,\r\n    endYear,\r\n}: UseCalendarProps): UseCalendarResult => {\r\n    const resolvedStartYear = startYear ?? DEFAULT_START_YEAR\r\n    const resolvedEndYear = endYear ?? DEFAULT_END_YEAR\r\n\r\n    const [view, setView] = useState<CalendarView>('day')\r\n    const [internalMonth, setInternalMonth] = useState<Date>(\r\n        controlledMonth ?? defaultMonth ?? new Date(),\r\n    )\r\n\r\n    const currentMonth = controlledMonth ?? internalMonth\r\n\r\n    const setCurrentMonth = useCallback(\r\n        (date: Date) => {\r\n            setInternalMonth(date)\r\n            onMonthChange?.(date)\r\n        },\r\n        [onMonthChange],\r\n    )\r\n\r\n    const resolvedStartMonth = startMonth ?? new Date(resolvedStartYear, 0, 1)\r\n    const resolvedEndMonth = endMonth ?? new Date(resolvedEndYear, 11, 31)\r\n\r\n    return {\r\n        view,\r\n        setView,\r\n        currentMonth,\r\n        setCurrentMonth,\r\n        resolvedStartYear,\r\n        resolvedEndYear,\r\n        resolvedStartMonth,\r\n        resolvedEndMonth,\r\n    }\r\n}\r\n"],"names":["useCalendar","controlledMonth","defaultMonth","onMonthChange","startMonth","endMonth","startYear","endYear","resolvedStartYear","DEFAULT_START_YEAR","resolvedEndYear","DEFAULT_END_YEAR","view","setView","useState","internalMonth","setInternalMonth","currentMonth","setCurrentMonth","useCallback","date","resolvedStartMonth","resolvedEndMonth"],"mappings":"6IASaA,EAAc,CAAC,CACxB,MAAOC,EACP,aAAAC,EACA,cAAAC,EACA,WAAAC,EACA,SAAAC,EACA,UAAAC,EACA,QAAAC,CACJ,IAA2C,CACvC,MAAMC,EAAoBF,GAAaG,EAAAA,mBACjCC,EAAkBH,GAAWI,EAAAA,iBAE7B,CAACC,EAAMC,CAAO,EAAIC,EAAAA,SAAuB,KAAK,EAC9C,CAACC,EAAeC,CAAgB,EAAIF,EAAAA,SACtCb,GAAmBC,GAAgB,IAAI,IAAK,EAG1Ce,EAAehB,GAAmBc,EAElCG,EAAkBC,EAAAA,YACnBC,GAAe,CACZJ,EAAiBI,CAAI,EACrBjB,IAAgBiB,CAAI,CACxB,EACA,CAACjB,CAAa,CAAA,EAGZkB,EAAqBjB,GAAc,IAAI,KAAKI,EAAmB,EAAG,CAAC,EACnEc,EAAmBjB,GAAY,IAAI,KAAKK,EAAiB,GAAI,EAAE,EAErE,MAAO,CACH,KAAAE,EACA,QAAAC,EACA,aAAAI,EACA,gBAAAC,EACA,kBAAAV,EACA,gBAAAE,EACA,mBAAAW,EACA,iBAAAC,CAAA,CAER"}