{"version":3,"file":"index.DF4H8mL_.js","sources":["../../../../../../../node_modules/@babylon/ui-kit-forms/components/inputs/calendar/calendar-input/index.js","../../../../../../../node_modules/@babylon/ui-kit-forms/components/inputs/calendar/components/skeleton/index.js","../../../../../../../node_modules/@babylon/ui-kit-forms/components/inputs/calendar/views/desktop/hooks/useAppendTo.js","../../../../../../../node_modules/@babylon/ui-kit-forms/components/inputs/calendar/views/desktop/index.js"],"sourcesContent":["import { jsxs, Fragment, jsx } from 'react/jsx-runtime';\nimport ErrorTooltip from '../../../others/error-tooltip/index.js';\nimport { forwardRef, useRef, useCallback, useEffect } from 'react';\nimport { CalendarInput } from './styled.js';\n\nconst CustomFlatpickrCalendarInput = /*#__PURE__*/ forwardRef(({ value: _value, defaultValue, inputRef, onFocus, error, hasError = false, disabled = false, isFocused = false, ...rest }, ref)=>{\n const inputNode = useRef(null);\n const handleInputRef = useCallback((node)=>{\n if (!node) return;\n inputNode.current = node;\n if (inputRef) {\n if (typeof inputRef === 'function') inputRef(node);\n else if (node) inputRef.current = node;\n }\n if (ref) {\n if (typeof ref === 'function') ref(node);\n else ref.current = node;\n }\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n useEffect(()=>{\n if (document.activeElement === inputNode.current && !isFocused) {\n inputNode.current?.blur();\n }\n }, [\n isFocused\n ]);\n return /*#__PURE__*/ jsxs(Fragment, {\n children: [\n /*#__PURE__*/ jsx(CalendarInput, {\n className: \"calendar-input\",\n defaultValue: defaultValue,\n ref: handleInputRef,\n onFocus: onFocus,\n disabled: disabled,\n $hasError: hasError,\n $isFocused: isFocused,\n ...rest\n }),\n inputNode.current && /*#__PURE__*/ jsx(ErrorTooltip, {\n referenceElement: inputNode.current,\n error: error,\n isVisible: !isFocused && !!hasError\n })\n ]\n });\n});\nCustomFlatpickrCalendarInput.displayName = 'CustomFlatpickrCalendarInput';\n\nexport { CustomFlatpickrCalendarInput as default };\n","import { jsx } from 'react/jsx-runtime';\nimport InputSkeleton from '../../../input/components/skeleton/index.js';\n\nconst CalendarSkeleton = (props)=>/*#__PURE__*/ jsx(InputSkeleton, {\n id: props.id,\n icon: props.icon,\n label: props.label\n });\n\nexport { CalendarSkeleton as default };\n","import { getWebComponentRoot } from '@babylon/ui-kit-helpers/document';\nimport { useRef, useState, useEffect } from 'react';\n\nconst useAppendTo = ()=>{\n const wrapperRef = useRef(null);\n const [appendTo, setAppendTo] = useState(undefined);\n useEffect(()=>{\n if (wrapperRef.current) {\n const webComponentRoot = getWebComponentRoot(wrapperRef.current);\n if (webComponentRoot) setAppendTo(webComponentRoot);\n }\n }, []);\n return {\n wrapperRef,\n appendTo\n };\n};\n\nexport { useAppendTo as default };\n","import { jsxs, jsx } from 'react/jsx-runtime';\nimport Icon from '@babylon/ui-kit-base/components/icons/icon';\nimport FlatpickrCalendar from '../../../../lib/flatpickr-calendar/index.js';\nimport { isInShadowDOM } from '@babylon/ui-kit-helpers/document';\nimport { KEY_CODE } from '@babylon/ui-kit-types/key-code';\nimport { forwardRef, useId, useMemo, useCallback } from 'react';\nimport { useBoolean } from 'usehooks-ts';\nimport CustomFlatpickrCalendarInput from '../../calendar-input/index.js';\nimport CalendarSkeleton from '../../components/skeleton/index.js';\nimport useCalendartDates from '../../hooks/useCalendarDates.js';\nimport useFormCalendar from '../../hooks/useFormCalendar.js';\nimport { CalendarWrapper, CalendarInputIcon, CalendarLabel } from '../../styled.js';\nimport useAppendTo from './hooks/useAppendTo.js';\n\nconst CalendarDesktop = /*#__PURE__*/ forwardRef((props, ref)=>{\n const { label, disabled = false, value = [\n new Date()\n ], onChange, onBlur, error, hasError, locale, mode = 'single', showMonths = 1, enableTime = false, monthSelectorType = 'static', dateFormat, minuteIncrement = 30, noCalendar = false, disableMobile = true, time24h = true, minTime = '00:00', maxTime = '23:59', className = '', events, options, releaseDays, icon = 'calendar', eventDay, inputRef } = props;\n const { value: internalFocused, setTrue: onOpen, setFalse: onClose } = useBoolean();\n const uniqueId = useId();\n const inputId = useMemo(()=>`${uniqueId}-input-calendar-${label}`, [\n label,\n uniqueId\n ]);\n const { wrapperRef, appendTo } = useAppendTo();\n const handleCloseCalendar = useCallback(()=>{\n onClose();\n onBlur?.();\n }, [\n onBlur,\n onClose\n ]);\n const { finalEnableDates, firstDayEnabled } = useCalendartDates(props);\n const calendarOptions = useMemo(()=>({\n appendTo,\n altInputClass: '',\n wrap: false,\n defaultDate: value,\n defaultMinute: 0,\n time_24hr: time24h,\n minDate: firstDayEnabled,\n // maxDate,\n mode,\n showMonths,\n dateFormat: dateFormat ?? (enableTime ? 'D, j M Y H:i' : 'D, j M Y'),\n disableMobile,\n monthSelectorType,\n noCalendar,\n enableTime,\n minuteIncrement,\n minTime,\n maxTime,\n static: isInShadowDOM(appendTo),\n ...options\n }), [\n appendTo,\n value,\n time24h,\n firstDayEnabled,\n mode,\n showMonths,\n dateFormat,\n enableTime,\n disableMobile,\n monthSelectorType,\n noCalendar,\n minuteIncrement,\n minTime,\n maxTime,\n options\n ]);\n const renderInput = useCallback((props, ref)=>/*#__PURE__*/ jsxs(CalendarWrapper, {\n \"data-testid\": \"Calendar\",\n children: [\n /*#__PURE__*/ jsx(CalendarInputIcon, {\n children: /*#__PURE__*/ jsx(Icon, {\n className: `nico-${icon}`\n })\n }),\n /*#__PURE__*/ jsx(CalendarLabel, {\n htmlFor: inputId,\n $focused: internalFocused || !!value,\n children: label\n }),\n /*#__PURE__*/ jsx(CustomFlatpickrCalendarInput, {\n id: inputId,\n disabled: disabled,\n value: props.value,\n defaultValue: props.defaultValue,\n inputRef: inputRef,\n ref: ref,\n error: error,\n hasError: hasError,\n isFocused: internalFocused\n })\n ]\n }), [\n icon,\n inputId,\n internalFocused,\n value,\n label,\n disabled,\n inputRef,\n error,\n hasError\n ]);\n const finalValue = useMemo(()=>mode === 'single' ? [\n value[0]\n ] : value, [\n value,\n mode\n ]);\n const pressHandlerCalendar = useCallback((event)=>{\n switch(event.key){\n case KEY_CODE.ENTER:\n event.preventDefault();\n break;\n case KEY_CODE.ESC:\n break;\n }\n }, []);\n const CalendarDesktopSkeleton = useCallback(()=>/*#__PURE__*/ jsx(CalendarSkeleton, {\n id: props.id,\n label: label\n }), [\n label,\n props.id\n ]);\n return /*#__PURE__*/ jsx(\"div\", {\n onKeyDown: (e)=>pressHandlerCalendar(e),\n ref: wrapperRef,\n children: /*#__PURE__*/ jsx(FlatpickrCalendar, {\n locale: locale,\n render: renderInput,\n value: finalValue,\n options: calendarOptions,\n onChange: onChange,\n className: className,\n ref: ref,\n events: events,\n enableDates: finalEnableDates,\n onOpen: onOpen,\n onClose: handleCloseCalendar,\n disabled: disabled,\n releaseDays: releaseDays,\n SkeletonComponent: CalendarDesktopSkeleton,\n eventDay: eventDay\n })\n });\n});\nCalendarDesktop.displayName = 'CalendarDesktop';\nconst FormCalendarDesktop = (props)=>{\n const finalProps = useFormCalendar(props);\n return /*#__PURE__*/ jsx(CalendarDesktop, {\n ...finalProps\n });\n};\n\nexport { FormCalendarDesktop, CalendarDesktop as default };\n"],"names":["CustomFlatpickrCalendarInput","forwardRef","_value","defaultValue","inputRef","onFocus","error","hasError","disabled","isFocused","rest","ref","inputNode","useRef","handleInputRef","useCallback","node","useEffect","_a","jsxs","Fragment","jsx","CalendarInput","ErrorTooltip","CalendarSkeleton","props","InputSkeleton","useAppendTo","wrapperRef","appendTo","setAppendTo","useState","webComponentRoot","getWebComponentRoot","CalendarDesktop","label","value","onChange","onBlur","locale","mode","showMonths","enableTime","monthSelectorType","dateFormat","minuteIncrement","noCalendar","disableMobile","time24h","minTime","maxTime","className","events","options","releaseDays","icon","eventDay","internalFocused","onOpen","onClose","useBoolean","uniqueId","useId","inputId","useMemo","handleCloseCalendar","finalEnableDates","firstDayEnabled","useCalendartDates","calendarOptions","isInShadowDOM","renderInput","CalendarWrapper","CalendarInputIcon","Icon","CalendarLabel","finalValue","pressHandlerCalendar","event","KEY_CODE","CalendarDesktopSkeleton","e","FlatpickrCalendar","FormCalendarDesktop","finalProps","useFormCalendar"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}