{"version":3,"file":"CalendarRange-BZ-rc5Ns.mjs","sources":["../../node_modules/date-fns/eachDayOfInterval.js","../../node_modules/date-fns/subDays.js","../../node_modules/date-fns/subMonths.js","../../src/components/default/base/CalendarRange.tsx"],"sourcesContent":["import { normalizeInterval } from \"./_lib/normalizeInterval.js\";\nimport { constructFrom } from \"./constructFrom.js\";\n\n/**\n * The {@link eachDayOfInterval} function options.\n */\n\n/**\n * The {@link eachDayOfInterval} function result type. It resolves the proper data type.\n * It uses the first argument date object type, starting from the date argument,\n * then the start interval date, and finally the end interval date. If\n * a context function is passed, it uses the context function return type.\n */\n\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * @typeParam IntervalType - Interval type.\n * @typeParam Options - Options type.\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of days from the day of the interval start to the day of the interval end\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n *   start: new Date(2014, 9, 6),\n *   end: new Date(2014, 9, 10)\n * })\n * //=> [\n * //   Mon Oct 06 2014 00:00:00,\n * //   Tue Oct 07 2014 00:00:00,\n * //   Wed Oct 08 2014 00:00:00,\n * //   Thu Oct 09 2014 00:00:00,\n * //   Fri Oct 10 2014 00:00:00\n * // ]\n */\nexport function eachDayOfInterval(interval, options) {\n  const { start, end } = normalizeInterval(options?.in, interval);\n\n  let reversed = +start > +end;\n  const endTime = reversed ? +start : +end;\n  const date = reversed ? end : start;\n  date.setHours(0, 0, 0, 0);\n\n  let step = options?.step ?? 1;\n  if (!step) return [];\n  if (step < 0) {\n    step = -step;\n    reversed = !reversed;\n  }\n\n  const dates = [];\n\n  while (+date <= endTime) {\n    dates.push(constructFrom(start, date));\n    date.setDate(date.getDate() + step);\n    date.setHours(0, 0, 0, 0);\n  }\n\n  return reversed ? dates.reverse() : dates;\n}\n\n// Fallback for modularized imports:\nexport default eachDayOfInterval;\n","import { addDays } from \"./addDays.js\";\n\n/**\n * The {@link subDays} function options.\n */\n\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the days subtracted\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nexport function subDays(date, amount, options) {\n  return addDays(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subDays;\n","import { addMonths } from \"./addMonths.js\";\n\n/**\n * The subMonths function options.\n */\n\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the months subtracted\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function subMonths(date, amount, options) {\n  return addMonths(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subMonths;\n","/** biome-ignore-all lint/suspicious/noExplicitAny: <any> */\n\"use client\";\n\nimport {\n\taddMonths,\n\teachDayOfInterval,\n\tendOfMonth,\n\tendOfWeek,\n\tformat,\n\tstartOfMonth,\n\tstartOfWeek,\n\tsubDays,\n\tsubMonths,\n} from \"date-fns\";\nimport { ptBR } from \"date-fns/locale\";\nimport { CalendarDaysIcon, X } from \"lucide-react\";\nimport * as React from \"react\";\nimport {\n\ttype CalendarDay,\n\ttype DateRange,\n\tdateMatchModifiers,\n\ttype Matcher,\n\ttype Modifiers,\n} from \"react-day-picker\";\nimport { Button, type ButtonProps } from \"@/components/ui/button\";\nimport { Calendar, CalendarDayButton } from \"@/components/ui/calendar\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/ui/popover\";\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"@/components/ui/tooltip\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface CalendarRangeProps\n\textends Omit<\n\t\tReact.ComponentProps<typeof Calendar>,\n\t\t\"mode\" | \"selected\" | \"onSelect\" | \"disabled\"\n\t> {\n\t/** Intervalo de datas selecionado (com `from` e `to`) */\n\tvalue: DateRange | null | undefined;\n\t/** Função chamada ao alterar o intervalo de datas selecionado */\n\tonChange: (range: DateRange | null | undefined) => void;\n\n\t/** Texto exibido quando não há intervalo selecionado */\n\tplaceholder?: string;\n\t/** ID opcional do botão */\n\tid?: string;\n\t/** Props extras para o botão */\n\tbuttonProps?: ButtonProps;\n\t/** Props extras para o popover */\n\tpopoverProps?: React.ComponentProps<typeof Popover>;\n\t/** Classe extra para o conteúdo do popover */\n\tpopoverContentClassName?: string;\n\t/** Classe extra para o botão */\n\tclassName?: string;\n\t/** Desabilita o botão e impede a seleção de datas */\n\tdisabled?: Matcher | Matcher[] | boolean;\n\t/** Função para retornar mensagem de tooltip para datas desabilitadas */\n\tdisabledDateTooltip?: (date: Date) => string | undefined;\n\t/**\n\t * Mês padrão a ser mostrado (caso nenhuma data esteja selecionada)\n\t * Por padrão, será o mês atual.\n\t */\n\tdefaultMonth?: Date;\n\t/** Exibir opções de intervalos rápidos (Hoje, Esta Semana, etc) */\n\tshowQuickRanges?: boolean;\n\t/** Opções de intervalos rápidos personalizadas (substitui as padrão se fornecidas e showQuickRanges for true) */\n\tquickRanges?: QuickRange[];\n\t/**\n\t * Define se o botão de limpar (X) o intervalo deve ser exibido.\n\t * @default true\n\t */\n\tclearable?: boolean;\n}\n\nexport interface QuickRange {\n\tlabel: string;\n\tgetRange: () => DateRange;\n}\n\nconst defaultQuickRanges: QuickRange[] = [\n\t{\n\t\tlabel: \"Hoje\",\n\t\tgetRange: () => ({ from: new Date(), to: new Date() }),\n\t},\n\t{\n\t\tlabel: \"Esta Semana\",\n\t\tgetRange: () => ({\n\t\t\tfrom: startOfWeek(new Date(), { weekStartsOn: 1 }),\n\t\t\tto: endOfWeek(new Date(), { weekStartsOn: 1 }),\n\t\t}),\n\t},\n\t{\n\t\tlabel: \"Últimos 7 dias\",\n\t\tgetRange: () => ({ from: subDays(new Date(), 6), to: new Date() }),\n\t},\n\t{\n\t\tlabel: \"Últimos 14 dias\",\n\t\tgetRange: () => ({ from: subDays(new Date(), 13), to: new Date() }),\n\t},\n\t{\n\t\tlabel: \"Últimos 30 dias\",\n\t\tgetRange: () => ({ from: subDays(new Date(), 29), to: new Date() }),\n\t},\n\t{\n\t\tlabel: \"Mês anterior\",\n\t\tgetRange: () => {\n\t\t\tconst previousMonth = subMonths(new Date(), 1);\n\t\t\treturn {\n\t\t\t\tfrom: startOfMonth(previousMonth),\n\t\t\t\tto: endOfMonth(previousMonth),\n\t\t\t};\n\t\t},\n\t},\n\t{\n\t\tlabel: \"Este ano\",\n\t\tgetRange: () => {\n\t\t\tconst currentYear = new Date().getFullYear();\n\t\t\treturn {\n\t\t\t\tfrom: new Date(currentYear, 0, 1),\n\t\t\t\tto: new Date(currentYear, 11, 31),\n\t\t\t};\n\t\t},\n\t},\n];\n\nexport function CalendarRange({\n\tvalue,\n\tonChange,\n\tplaceholder = \"Selecione uma data\",\n\tid = \"date\",\n\tbuttonProps,\n\tpopoverProps,\n\tpopoverContentClassName,\n\tclassName,\n\tdisabled,\n\tdisabledDateTooltip,\n\tshowQuickRanges = false,\n\tquickRanges = defaultQuickRanges,\n\tclearable = true,\n\t...props\n}: CalendarRangeProps) {\n\tconst [open, setOpen] = React.useState(false);\n\n\tconst [leftMonth, setLeftMonth] = React.useState<Date>(\n\t\tvalue?.from ?? props.defaultMonth ?? new Date(),\n\t);\n\tconst [rightMonth, setRightMonth] = React.useState<Date>(\n\t\tvalue?.to ?? addMonths(value?.from ?? props.defaultMonth ?? new Date(), 1),\n\t);\n\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: <useEffect>\n\tReact.useEffect(() => {\n\t\tif (open) {\n\t\t\tconst left = value?.from ?? props.defaultMonth ?? new Date();\n\t\t\tconst right = value?.to ?? addMonths(left, 1);\n\t\t\tsetLeftMonth(left);\n\t\t\tsetRightMonth(right);\n\t\t}\n\t}, [open]);\n\n\tReact.useEffect(() => {\n\t\tif (!open) {\n\t\t\tsetLeftMonth(value?.from ?? props.defaultMonth ?? new Date());\n\t\t\tsetRightMonth(value?.to ?? addMonths(value?.from ?? props.defaultMonth ?? new Date(), 1));\n\t\t}\n\t}, [value?.from, value?.to, open, props.defaultMonth]);\n\n\tconst isButtonDisabled = typeof disabled === \"boolean\" ? disabled : false;\n\tconst isRangeDisabled = (range: DateRange) => {\n\t\tif (!disabled) return false;\n\t\tif (typeof disabled === \"boolean\") return disabled;\n\t\tif (!range.from || !range.to) return false;\n\n\t\tconst days = eachDayOfInterval({ start: range.from, end: range.to });\n\t\treturn days.some((day) => dateMatchModifiers(day, disabled));\n\t};\n\n\tconst applyQuickRange = (range: DateRange) => {\n\t\tif (isRangeDisabled(range)) return;\n\t\tonChange(range);\n\t\tconst baseDate = range.from ?? new Date();\n\t\tsetLeftMonth(baseDate);\n\t\tsetRightMonth(addMonths(baseDate, 1));\n\t};\n\n\tconst DayButtonWrapper = (buttonProps: {\n\t\tday: CalendarDay;\n\t\tmodifiers: Modifiers;\n\t\t[key: string]: any;\n\t}) => {\n\t\tconst { day } = buttonProps;\n\t\tconst date = day.date;\n\t\tconst tooltip = date ? disabledDateTooltip?.(date) : undefined;\n\n\t\tif (tooltip) {\n\t\t\treturn (\n\t\t\t\t<TooltipProvider>\n\t\t\t\t\t<Tooltip delayDuration={300}>\n\t\t\t\t\t\t<TooltipTrigger asChild>\n\t\t\t\t\t\t\t<span className=\"h-full w-full\">\n\t\t\t\t\t\t\t\t<CalendarDayButton {...buttonProps} />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</TooltipTrigger>\n\t\t\t\t\t\t<TooltipContent className=\"bg-secondary text-xs\">\n\t\t\t\t\t\t\t<p>{tooltip}</p>\n\t\t\t\t\t\t</TooltipContent>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t</TooltipProvider>\n\t\t\t);\n\t\t}\n\n\t\treturn <CalendarDayButton {...buttonProps} />;\n\t};\n\n\treturn (\n\t\t<Popover {...popoverProps} open={open} onOpenChange={setOpen}>\n\t\t\t<PopoverTrigger asChild>\n\t\t\t\t<Button\n\t\t\t\t\tid={id}\n\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"hover:foreground justify-between text-left font-normal\",\n\t\t\t\t\t\t!value && \"text-muted-foreground hover:text-muted-foreground\",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\tdisabled={isButtonDisabled}\n\t\t\t\t\t{...buttonProps}\n\t\t\t\t>\n\t\t\t\t\t<div className=\"flex items-center\">\n\t\t\t\t\t\t<CalendarDaysIcon className=\"mr-2 size-4\" />\n\t\t\t\t\t\t{value?.from ? (\n\t\t\t\t\t\t\tvalue.to ? (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{format(value.from, \"P\", { locale: ptBR })} -{\" \"}\n\t\t\t\t\t\t\t\t\t{format(value.to, \"P\", { locale: ptBR })}\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\tformat(value.from, \"P\", { locale: ptBR })\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span>{placeholder}</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t\t{value?.from && !isButtonDisabled && clearable && (\n\t\t\t\t\t\t// biome-ignore lint/a11y/useKeyWithClickEvents: clear button action\n\t\t\t\t\t\t// biome-ignore lint/a11y/noStaticElementInteractions: clear button action\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\tonChange(null);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tclassName=\"cursor-pointer p-1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<X className=\"h-4 w-4 opacity-50 hover:opacity-100\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</Button>\n\t\t\t</PopoverTrigger>\n\n\t\t\t<PopoverContent className={cn(\"w-auto p-0\", popoverContentClassName)} align=\"start\">\n\t\t\t\t<div className=\"flex flex-col sm:flex-row\">\n\t\t\t\t\t{showQuickRanges && (\n\t\t\t\t\t\t<div className=\"flex flex-col gap-1 border-r p-2\">\n\t\t\t\t\t\t\t{quickRanges.map((range, index) => {\n\t\t\t\t\t\t\t\tconst dateRange = range.getRange();\n\t\t\t\t\t\t\t\tconst isDisabled = isRangeDisabled(dateRange);\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<TooltipProvider key={range.label}>\n\t\t\t\t\t\t\t\t\t\t<Tooltip delayDuration={300}>\n\t\t\t\t\t\t\t\t\t\t\t<TooltipTrigger asChild>\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"justify-start font-normal\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex % 2 === 0 && \"bg-accent/40\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => applyQuickRange(dateRange)}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{range.label}\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t</TooltipTrigger>\n\t\t\t\t\t\t\t\t\t\t\t<TooltipContent side=\"right\" className=\"bg-secondary text-xs\">\n\t\t\t\t\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{dateRange.from && format(dateRange.from, \"P\", { locale: ptBR })}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{dateRange.to &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdateRange.to !== dateRange.from &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t` - ${format(dateRange.to, \"P\", { locale: ptBR })}`}\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t\t</TooltipContent>\n\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t</TooltipProvider>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<div className=\"flex gap-4 p-3\">\n\t\t\t\t\t\t<Calendar\n\t\t\t\t\t\t\t{...props}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tautoFocus={false}\n\t\t\t\t\t\t\tcaptionLayout=\"dropdown\"\n\t\t\t\t\t\t\tselected={value ?? undefined}\n\t\t\t\t\t\t\tonSelect={(r) => {\n\t\t\t\t\t\t\t\tif (r) onChange(r);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlocale={ptBR}\n\t\t\t\t\t\t\tnumberOfMonths={1}\n\t\t\t\t\t\t\tmonth={leftMonth}\n\t\t\t\t\t\t\tonMonthChange={(m) => setLeftMonth(m)}\n\t\t\t\t\t\t\tmode=\"range\"\n\t\t\t\t\t\t\tcomponents={{\n\t\t\t\t\t\t\t\tDayButton: DayButtonWrapper,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tmodifiersClassNames={{\n\t\t\t\t\t\t\t\tdisabled: \"pointer-events-auto opacity-50 hover:bg-transparent\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<Calendar\n\t\t\t\t\t\t\t{...props}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tautoFocus={false}\n\t\t\t\t\t\t\tcaptionLayout=\"dropdown\"\n\t\t\t\t\t\t\tselected={value ?? undefined}\n\t\t\t\t\t\t\tonSelect={(r) => {\n\t\t\t\t\t\t\t\tif (r) onChange(r);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlocale={ptBR}\n\t\t\t\t\t\t\tnumberOfMonths={1}\n\t\t\t\t\t\t\tmonth={rightMonth}\n\t\t\t\t\t\t\tonMonthChange={(m) => setRightMonth(m)}\n\t\t\t\t\t\t\tmode=\"range\"\n\t\t\t\t\t\t\tcomponents={{\n\t\t\t\t\t\t\t\tDayButton: DayButtonWrapper,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tmodifiersClassNames={{\n\t\t\t\t\t\t\t\tdisabled: \"pointer-events-auto opacity-50 hover:bg-transparent\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</PopoverContent>\n\t\t</Popover>\n\t);\n}\n"],"names":["eachDayOfInterval","interval","options","start","end","normalizeInterval","in","reversed","endTime","date","setHours","step","dates","push","constructFrom","setDate","getDate","reverse","subDays","amount","addDays","subMonths","addMonths","defaultQuickRanges","label","getRange","from","Date","to","startOfWeek","weekStartsOn","endOfWeek","previousMonth","startOfMonth","endOfMonth","currentYear","getFullYear","CalendarRange","value","onChange","placeholder","id","buttonProps","popoverProps","popoverContentClassName","className","disabled","disabledDateTooltip","showQuickRanges","quickRanges","clearable","props","open","setOpen","React","useState","leftMonth","setLeftMonth","defaultMonth","rightMonth","setRightMonth","useEffect","left","right","isButtonDisabled","isRangeDisabled","range","days","some","day","dateMatchModifiers","applyQuickRange","baseDate","DayButtonWrapper","tooltip","undefined","TooltipProvider","Tooltip","delayDuration","TooltipTrigger","asChild","span","CalendarDayButton","TooltipContent","p","Popover","onOpenChange","PopoverTrigger","Button","variant","cn","div","CalendarDaysIcon","format","locale","ptBR","onClick","e","stopPropagation","X","PopoverContent","align","map","index","dateRange","isDisabled","key","size","side","Calendar","autoFocus","captionLayout","selected","onSelect","r","numberOfMonths","month","onMonthChange","m","mode","components","DayButton","modifiersClassNames"],"mappings":"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","x_google_ignoreList":[0,1,2]}