@alfalab/core-components-calendar-input 12.0.5 → 12.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Component.responsive.d.ts +4 -4
- package/components/calendar-input/Component.d.ts +29 -46
- package/components/calendar-input/Component.js.map +1 -1
- package/components/calendar-input/index.css +10 -10
- package/components/calendar-input/index.module.css.js +1 -1
- package/components/calendar-input/index.module.css.js.map +1 -1
- package/cssm/Component.responsive.d.ts +4 -4
- package/cssm/components/calendar-input/Component.d.ts +29 -46
- package/cssm/components/calendar-input/Component.js.map +1 -1
- package/cssm/desktop/Component.desktop.d.ts +1 -1
- package/cssm/mobile/Component.mobile.d.ts +1 -1
- package/desktop/Component.desktop.d.ts +1 -1
- package/esm/Component.responsive.d.ts +4 -4
- package/esm/components/calendar-input/Component.d.ts +29 -46
- package/esm/components/calendar-input/Component.js.map +1 -1
- package/esm/components/calendar-input/index.css +10 -10
- package/esm/components/calendar-input/index.module.css.js +1 -1
- package/esm/components/calendar-input/index.module.css.js.map +1 -1
- package/esm/desktop/Component.desktop.d.ts +1 -1
- package/esm/mobile/Component.mobile.d.ts +1 -1
- package/mobile/Component.mobile.d.ts +1 -1
- package/modern/Component.responsive.d.ts +4 -4
- package/modern/components/calendar-input/Component.d.ts +29 -46
- package/modern/components/calendar-input/Component.js.map +1 -1
- package/modern/components/calendar-input/index.css +10 -10
- package/modern/components/calendar-input/index.module.css.js +1 -1
- package/modern/components/calendar-input/index.module.css.js.map +1 -1
- package/modern/desktop/Component.desktop.d.ts +1 -1
- package/modern/mobile/Component.mobile.d.ts +1 -1
- package/moderncssm/Component.responsive.d.ts +4 -4
- package/moderncssm/components/calendar-input/Component.d.ts +29 -46
- package/moderncssm/components/calendar-input/Component.js.map +1 -1
- package/moderncssm/desktop/Component.desktop.d.ts +1 -1
- package/moderncssm/mobile/Component.mobile.d.ts +1 -1
- package/package.json +6 -6
- package/src/components/calendar-input/index.module.css +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","sources":["../../../src/components/calendar-input/Component.tsx"],"sourcesContent":["import React, {\n type ChangeEvent,\n type ElementType,\n type FocusEvent,\n forwardRef,\n type KeyboardEvent,\n type MouseEvent,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { type CalendarDesktopProps } from '@alfalab/core-components-calendar/desktop';\nimport { type CalendarMobileProps } from '@alfalab/core-components-calendar/mobile';\nimport { dateInLimits } from '@alfalab/core-components-calendar/shared';\nimport {\n DateInput,\n type DateInputProps,\n formatDate,\n isCompleteDateInput,\n parseDateString,\n} from '@alfalab/core-components-date-input';\nimport { Popover, type PopoverProps } from '@alfalab/core-components-popover';\nimport { CalendarMIcon } from '@alfalab/icons-glyph/CalendarMIcon';\n\nimport { SUPPORTS_INPUT_TYPE_DATE } from '../../utils';\n\nimport styles from './index.module.css';\n\nexport type CalendarInputProps = Omit<DateInputProps, 'onChange' | 'mobileMode'> & {\n /**\n * Дополнительный класс\n */\n className?: string;\n\n /**\n * Дополнительный класс для инпута\n */\n inputClassName?: string;\n\n /**\n * Дополнительный класс для поповера\n */\n popoverClassName?: string;\n\n /**\n * Доп. пропсы для календаря\n */\n calendarProps?:\n | (CalendarDesktopProps & Record<string, unknown>)\n | (CalendarMobileProps & Record<string, unknown>);\n\n /**\n * Значение инпута (используется и для календаря)\n */\n value?: string;\n\n /**\n * Начальное значение инпута\n */\n defaultValue?: string;\n\n /**\n * Состояние открытия по умолчанию\n */\n defaultOpen?: boolean;\n\n /**\n * Месяц в календаре по умолчанию (timestamp)\n */\n defaultMonth?: number;\n\n /**\n * Минимальная дата, доступная для выбора (timestamp)\n */\n minDate?: number;\n\n /**\n * Максимальная дата, доступная для выбора (timestamp)\n */\n maxDate?: number;\n\n /**\n * Список событий\n */\n events?: Array<Date | number>;\n\n /**\n * Список выходных\n */\n offDays?: Array<Date | number>;\n\n /**\n * Определяет, как рендерить календарь — в поповере или снизу инпута\n */\n calendarPosition?: 'static' | 'popover';\n\n /**\n * Запрещает поповеру менять свою позицию.\n * Например, если места снизу недостаточно,то он все равно будет показан снизу\n */\n preventFlip?: boolean;\n\n /**\n * Управление нативным режимом на мобильных устройствах\n */\n mobileMode?: 'native' | 'popover' | 'input';\n\n /**\n * Компонент календаря\n */\n Calendar?: ElementType;\n\n /**\n * Обработчик изменения значения\n */\n onChange?: (\n event: ChangeEvent<HTMLInputElement> | MouseEvent<HTMLButtonElement> | null,\n payload: { date: Date; value: string },\n ) => void;\n\n /**\n * Обработчик ввода в инпут\n */\n onInputChange?: (\n event: ChangeEvent<HTMLInputElement>,\n payload: { value: string; date: Date },\n ) => void;\n\n /**\n * Обработчик изменения календаря\n */\n onCalendarChange?: CalendarDesktopProps['onChange'];\n\n /**\n * Обработчик открытия календаря\n */\n onCalendarOpen?: () => void;\n\n /**\n * Обработчик закрытия календаря\n */\n onCalendarClose?: () => void;\n\n /**\n * Позиционирование поповера с календарем\n */\n popoverPosition?: PopoverProps['position'];\n\n /**\n * z-index Popover\n */\n zIndexPopover?: PopoverProps['zIndex'];\n\n /**\n * Календарь будет принимать ширину инпута\n */\n useAnchorWidth?: boolean;\n\n /**\n * Отображение компонента в мобильном или десктопном виде\n */\n view?: 'desktop' | 'mobile';\n\n /**\n * Запретить ввод с клавиатуры\n */\n disableUserInput?: boolean;\n};\n\nexport const CalendarInput = forwardRef<HTMLInputElement, CalendarInputProps>(\n (\n {\n block = false,\n className,\n inputClassName,\n popoverClassName,\n defaultOpen = false,\n defaultMonth,\n defaultValue = '',\n calendarPosition = 'popover',\n value,\n dataTestId,\n calendarProps = {},\n minDate = calendarProps.minDate,\n maxDate = calendarProps.maxDate,\n offDays = calendarProps.offDays || [],\n events = calendarProps.events || [],\n preventFlip,\n mobileMode = 'popover',\n wrapperRef = null,\n disabled,\n onChange = () => null,\n onInputChange,\n onCalendarChange,\n onCalendarOpen,\n onCalendarClose,\n onKeyDown,\n readOnly,\n disableUserInput = false,\n Calendar,\n popoverPosition = 'bottom-start',\n zIndexPopover,\n useAnchorWidth,\n rightAddons,\n error,\n view = 'desktop',\n ...restProps\n },\n ref,\n ) => {\n const calendarResponsive = calendarProps?.responsive ?? true;\n const shouldRenderNative = SUPPORTS_INPUT_TYPE_DATE && mobileMode === 'native';\n const shouldRenderOnlyInput = mobileMode === 'input';\n const shouldRenderStatic = calendarPosition === 'static' && !shouldRenderOnlyInput;\n const shouldRenderPopover =\n calendarPosition === 'popover' && !shouldRenderNative && !shouldRenderOnlyInput;\n\n const [open, setOpen] = useState(false);\n\n const [inputValue, setInputValue] = useState(value || defaultValue);\n\n const calendarValue = inputValue ? parseDateString(inputValue).getTime() : undefined;\n\n const checkInputValueIsValid = (newInputValue?: string) => {\n if (!newInputValue) return false;\n\n const dateValue = parseDateString(newInputValue).getTime();\n\n return !!(\n dateValue &&\n isCompleteDateInput(newInputValue) &&\n dateInLimits(dateValue, minDate, maxDate) &&\n !offDays.includes(dateValue)\n );\n };\n\n const inputDisabled = disabled || readOnly;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const calendarRef = useRef<HTMLDivElement>(null);\n\n const openCalendar = () => {\n setOpen((prev) => {\n if (!prev) onCalendarOpen?.();\n\n return true;\n });\n };\n\n const closeCalendar = () => {\n setOpen((prev) => {\n if (prev) onCalendarClose?.();\n\n return false;\n });\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if ((event.target as HTMLElement).tagName === 'INPUT' && event.key === 'Enter') {\n if (open) {\n closeCalendar();\n } else {\n openCalendar();\n }\n }\n\n if (event.key === 'Escape') {\n closeCalendar();\n }\n };\n\n const handleClick = (event: MouseEvent<HTMLDivElement>) => {\n if (!inputWrapperRef.current?.contains(event.target as HTMLElement)) return;\n\n if (!open) openCalendar();\n\n if (view === 'desktop' && inputRef.current) {\n inputRef.current.focus();\n }\n };\n\n const handleFocus = (event: FocusEvent<HTMLDivElement>) => {\n if (view === 'desktop') {\n if (!inputWrapperRef.current?.contains(event.target)) return;\n\n openCalendar();\n\n if (!open && event.target.tagName !== 'INPUT' && calendarRef.current) {\n calendarRef.current.focus();\n }\n }\n };\n\n const handleBlur = (event: FocusEvent<HTMLDivElement>) => {\n if (view === 'desktop') {\n const target = (event.relatedTarget || document.activeElement) as HTMLElement;\n\n if (\n inputRef.current !== target &&\n calendarRef.current?.contains(target) === false\n ) {\n closeCalendar();\n }\n }\n };\n\n const handleInputKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (['ArrowDown', 'ArrowUp'].includes(event.key) && calendarRef.current) {\n event.preventDefault();\n calendarRef.current.focus();\n }\n\n if (onKeyDown) onKeyDown(event);\n };\n\n const changeHandler = (\n event: ChangeEvent<HTMLInputElement> | null,\n newValue: string,\n newDate: Date,\n initiator: 'input' | 'calendar' = 'input',\n shouldChange = true,\n ) => {\n if (initiator === 'input' && event && onInputChange) {\n onInputChange(event, { value: newValue, date: newDate });\n }\n\n if (initiator === 'calendar' && onCalendarChange) {\n onCalendarChange(newDate.getTime());\n }\n\n setInputValue(newValue);\n\n if (shouldChange) {\n onChange(event, { date: newDate, value: newValue });\n }\n };\n\n const handleInputChange: DateInputProps['onChange'] = (event, payload) => {\n changeHandler(\n event,\n payload.value,\n payload.date,\n 'input',\n !payload.value || checkInputValueIsValid(payload.value),\n );\n };\n\n const handleCalendarChange: CalendarDesktopProps['onChange'] = (date?: number) => {\n if (date) {\n changeHandler(null, formatDate(date), new Date(date), 'calendar');\n }\n\n if (view === 'desktop') {\n closeCalendar();\n }\n };\n\n const handleCalendarWrapperMouseDown = (event: MouseEvent<HTMLDivElement>) => {\n // Не дает инпуту терять фокус при выборе даты\n event.preventDefault();\n };\n\n useEffect(() => {\n setOpen(defaultOpen);\n }, [defaultOpen]);\n\n useEffect(() => {\n if (typeof value !== 'undefined') {\n setInputValue(value);\n }\n }, [value]);\n\n const renderCalendar = () => (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div onMouseDown={handleCalendarWrapperMouseDown}>\n {Calendar ? (\n <Calendar\n {...calendarProps}\n responsive={calendarResponsive}\n open={open}\n onClose={closeCalendar}\n ref={calendarRef}\n defaultMonth={defaultMonth}\n value={checkInputValueIsValid(inputValue) ? calendarValue : undefined}\n onChange={handleCalendarChange}\n minDate={minDate}\n maxDate={maxDate}\n offDays={offDays}\n events={events}\n />\n ) : null}\n </div>\n );\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n className={cn(styles.component, className, {\n [styles.block]: block,\n })}\n tabIndex={-1}\n onKeyDown={inputDisabled ? undefined : handleKeyDown}\n onClick={inputDisabled ? undefined : handleClick}\n onFocus={inputDisabled ? undefined : handleFocus}\n onBlur={handleBlur}\n data-test-id={dataTestId}\n >\n <DateInput\n autoComplete='off'\n {...restProps}\n ref={mergeRefs([inputRef, ref])}\n wrapperRef={mergeRefs([wrapperRef, inputWrapperRef])}\n value={inputValue}\n defaultValue={defaultValue}\n disabled={disabled}\n inputClassName={inputClassName}\n readOnly={readOnly}\n mobileMode={mobileMode === 'native' ? 'native' : 'input'}\n error={error}\n disableUserInput={disableUserInput}\n rightAddons={\n <React.Fragment>\n {rightAddons}\n {shouldRenderPopover && (\n <CalendarMIcon className={styles.calendarIcon} />\n )}\n </React.Fragment>\n }\n rightAddonsProps={{ onMouseDown: (e) => e.preventDefault() }}\n onKeyDown={handleInputKeyDown}\n onChange={handleInputChange}\n block={true}\n />\n {shouldRenderStatic && renderCalendar()}\n\n {shouldRenderPopover &&\n (view === 'desktop' ? (\n <Popover\n open={open}\n useAnchorWidth={useAnchorWidth}\n anchorElement={inputWrapperRef.current as HTMLElement}\n popperClassName={cn(styles.calendarContainer, {\n [styles.calendarResponsive]: calendarResponsive,\n })}\n className={popoverClassName}\n position={popoverPosition}\n offset={[0, 4]}\n withTransition={false}\n preventFlip={preventFlip}\n zIndex={zIndexPopover}\n >\n {renderCalendar()}\n </Popover>\n ) : (\n renderCalendar()\n ))}\n </div>\n );\n },\n);\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../../../src/components/calendar-input/Component.tsx"],"sourcesContent":["import React, {\n type ChangeEvent,\n type ElementType,\n type FocusEvent,\n forwardRef,\n type KeyboardEvent,\n type MouseEvent,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { type CalendarDesktopProps } from '@alfalab/core-components-calendar/desktop';\nimport { type CalendarMobileProps } from '@alfalab/core-components-calendar/mobile';\nimport { dateInLimits } from '@alfalab/core-components-calendar/shared';\nimport {\n DateInput,\n type DateInputProps,\n formatDate,\n isCompleteDateInput,\n parseDateString,\n} from '@alfalab/core-components-date-input';\nimport { Popover, type PopoverProps } from '@alfalab/core-components-popover';\nimport { CalendarMIcon } from '@alfalab/icons-glyph/CalendarMIcon';\n\nimport { SUPPORTS_INPUT_TYPE_DATE } from '../../utils';\n\nimport styles from './index.module.css';\n\nexport type CalendarInputProps = Omit<DateInputProps, 'onChange' | 'mobileMode'> & {\n /**\n * Дополнительный класс\n */\n className?: string;\n\n /**\n * Дополнительный класс для инпута\n */\n inputClassName?: string;\n\n /**\n * Дополнительный класс для поповера\n */\n popoverClassName?: string;\n\n /**\n * Доп. пропсы для календаря\n */\n calendarProps?:\n | (CalendarDesktopProps & Record<string, unknown>)\n | (CalendarMobileProps & Record<string, unknown>);\n\n /**\n * Значение инпута (используется и для календаря)\n */\n value?: string;\n\n /**\n * Начальное значение инпута\n */\n defaultValue?: string;\n\n /**\n * Состояние открытия по умолчанию\n */\n defaultOpen?: boolean;\n\n /**\n * Месяц в календаре по умолчанию (timestamp)\n */\n defaultMonth?: number;\n\n /**\n * Минимальная дата, доступная для выбора (timestamp)\n */\n minDate?: number;\n\n /**\n * Максимальная дата, доступная для выбора (timestamp)\n */\n maxDate?: number;\n\n /**\n * Список событий\n */\n events?: Array<Date | number>;\n\n /**\n * Список выходных\n */\n offDays?: Array<Date | number>;\n\n /**\n * Определяет, как рендерить календарь — в поповере или снизу инпута\n */\n calendarPosition?: 'static' | 'popover';\n\n /**\n * Запрещает поповеру менять свою позицию.\n * Например, если места снизу недостаточно,то он все равно будет показан снизу\n */\n preventFlip?: boolean;\n\n /**\n * Управление нативным режимом на мобильных устройствах\n */\n mobileMode?: 'native' | 'popover' | 'input';\n\n /**\n * Компонент календаря\n */\n Calendar?: ElementType;\n\n /**\n * Обработчик изменения значения\n */\n onChange?: (\n event: ChangeEvent<HTMLInputElement> | MouseEvent<HTMLButtonElement> | null,\n payload: { date: Date; value: string },\n ) => void;\n\n /**\n * Обработчик ввода в инпут\n */\n onInputChange?: (\n event: ChangeEvent<HTMLInputElement>,\n payload: { value: string; date: Date },\n ) => void;\n\n /**\n * Обработчик изменения календаря\n */\n onCalendarChange?: CalendarDesktopProps['onChange'];\n\n /**\n * Обработчик открытия календаря\n */\n onCalendarOpen?: () => void;\n\n /**\n * Обработчик закрытия календаря\n */\n onCalendarClose?: () => void;\n\n /**\n * Позиционирование поповера с календарем\n */\n popoverPosition?: PopoverProps['position'];\n\n /**\n * z-index Popover\n */\n zIndexPopover?: PopoverProps['zIndex'];\n\n /**\n * Календарь будет принимать ширину инпута\n */\n useAnchorWidth?: boolean;\n\n /**\n * Отображение компонента в мобильном или десктопном виде\n */\n view?: 'desktop' | 'mobile';\n\n /**\n * Запретить ввод с клавиатуры\n */\n disableUserInput?: boolean;\n};\n\nexport const CalendarInput = forwardRef<HTMLInputElement, CalendarInputProps>(\n (\n {\n block = false,\n className,\n inputClassName,\n popoverClassName,\n defaultOpen = false,\n defaultMonth,\n defaultValue = '',\n calendarPosition = 'popover',\n value,\n dataTestId,\n calendarProps = {},\n minDate = calendarProps.minDate,\n maxDate = calendarProps.maxDate,\n offDays = calendarProps.offDays || [],\n events = calendarProps.events || [],\n preventFlip,\n mobileMode = 'popover',\n wrapperRef = null,\n disabled,\n onChange = () => null,\n onInputChange,\n onCalendarChange,\n onCalendarOpen,\n onCalendarClose,\n onKeyDown,\n readOnly,\n disableUserInput = false,\n Calendar,\n popoverPosition = 'bottom-start',\n zIndexPopover,\n useAnchorWidth,\n rightAddons,\n error,\n view = 'desktop',\n ...restProps\n },\n ref,\n ) => {\n const calendarResponsive = calendarProps?.responsive ?? true;\n const shouldRenderNative = SUPPORTS_INPUT_TYPE_DATE && mobileMode === 'native';\n const shouldRenderOnlyInput = mobileMode === 'input';\n const shouldRenderStatic = calendarPosition === 'static' && !shouldRenderOnlyInput;\n const shouldRenderPopover =\n calendarPosition === 'popover' && !shouldRenderNative && !shouldRenderOnlyInput;\n\n const [open, setOpen] = useState(false);\n\n const [inputValue, setInputValue] = useState(value || defaultValue);\n\n const calendarValue = inputValue ? parseDateString(inputValue).getTime() : undefined;\n\n const checkInputValueIsValid = (newInputValue?: string) => {\n if (!newInputValue) return false;\n\n const dateValue = parseDateString(newInputValue).getTime();\n\n return !!(\n dateValue &&\n isCompleteDateInput(newInputValue) &&\n dateInLimits(dateValue, minDate, maxDate) &&\n !offDays.includes(dateValue)\n );\n };\n\n const inputDisabled = disabled || readOnly;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const calendarRef = useRef<HTMLDivElement>(null);\n\n const openCalendar = () => {\n setOpen((prev) => {\n if (!prev) onCalendarOpen?.();\n\n return true;\n });\n };\n\n const closeCalendar = () => {\n setOpen((prev) => {\n if (prev) onCalendarClose?.();\n\n return false;\n });\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if ((event.target as HTMLElement).tagName === 'INPUT' && event.key === 'Enter') {\n if (open) {\n closeCalendar();\n } else {\n openCalendar();\n }\n }\n\n if (event.key === 'Escape') {\n closeCalendar();\n }\n };\n\n const handleClick = (event: MouseEvent<HTMLDivElement>) => {\n if (!inputWrapperRef.current?.contains(event.target as HTMLElement)) return;\n\n if (!open) openCalendar();\n\n if (view === 'desktop' && inputRef.current) {\n inputRef.current.focus();\n }\n };\n\n const handleFocus = (event: FocusEvent<HTMLDivElement>) => {\n if (view === 'desktop') {\n if (!inputWrapperRef.current?.contains(event.target)) return;\n\n openCalendar();\n\n if (!open && event.target.tagName !== 'INPUT' && calendarRef.current) {\n calendarRef.current.focus();\n }\n }\n };\n\n const handleBlur = (event: FocusEvent<HTMLDivElement>) => {\n if (view === 'desktop') {\n const target = (event.relatedTarget || document.activeElement) as HTMLElement;\n\n if (\n inputRef.current !== target &&\n calendarRef.current?.contains(target) === false\n ) {\n closeCalendar();\n }\n }\n };\n\n const handleInputKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (['ArrowDown', 'ArrowUp'].includes(event.key) && calendarRef.current) {\n event.preventDefault();\n calendarRef.current.focus();\n }\n\n if (onKeyDown) onKeyDown(event);\n };\n\n const changeHandler = (\n event: ChangeEvent<HTMLInputElement> | null,\n newValue: string,\n newDate: Date,\n initiator: 'input' | 'calendar' = 'input',\n shouldChange = true,\n ) => {\n if (initiator === 'input' && event && onInputChange) {\n onInputChange(event, { value: newValue, date: newDate });\n }\n\n if (initiator === 'calendar' && onCalendarChange) {\n onCalendarChange(newDate.getTime());\n }\n\n setInputValue(newValue);\n\n if (shouldChange) {\n onChange(event, { date: newDate, value: newValue });\n }\n };\n\n const handleInputChange: DateInputProps['onChange'] = (event, payload) => {\n changeHandler(\n event,\n payload.value,\n payload.date,\n 'input',\n !payload.value || checkInputValueIsValid(payload.value),\n );\n };\n\n const handleCalendarChange: CalendarDesktopProps['onChange'] = (date?: number) => {\n if (date) {\n changeHandler(null, formatDate(date), new Date(date), 'calendar');\n }\n\n if (view === 'desktop') {\n closeCalendar();\n }\n };\n\n const handleCalendarWrapperMouseDown = (event: MouseEvent<HTMLDivElement>) => {\n // Не дает инпуту терять фокус при выборе даты\n event.preventDefault();\n };\n\n useEffect(() => {\n setOpen(defaultOpen);\n }, [defaultOpen]);\n\n useEffect(() => {\n if (typeof value !== 'undefined') {\n setInputValue(value);\n }\n }, [value]);\n\n const renderCalendar = () => (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div onMouseDown={handleCalendarWrapperMouseDown}>\n {Calendar ? (\n <Calendar\n {...calendarProps}\n responsive={calendarResponsive}\n open={open}\n onClose={closeCalendar}\n ref={calendarRef}\n defaultMonth={defaultMonth}\n value={checkInputValueIsValid(inputValue) ? calendarValue : undefined}\n onChange={handleCalendarChange}\n minDate={minDate}\n maxDate={maxDate}\n offDays={offDays}\n events={events}\n />\n ) : null}\n </div>\n );\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n className={cn(styles.component, className, {\n [styles.block]: block,\n })}\n tabIndex={-1}\n onKeyDown={inputDisabled ? undefined : handleKeyDown}\n onClick={inputDisabled ? undefined : handleClick}\n onFocus={inputDisabled ? undefined : handleFocus}\n onBlur={handleBlur}\n data-test-id={dataTestId}\n >\n <DateInput\n autoComplete='off'\n {...restProps}\n ref={mergeRefs([inputRef, ref])}\n wrapperRef={mergeRefs([wrapperRef, inputWrapperRef])}\n value={inputValue}\n defaultValue={defaultValue}\n disabled={disabled}\n inputClassName={inputClassName}\n readOnly={readOnly}\n mobileMode={mobileMode === 'native' ? 'native' : 'input'}\n error={error}\n disableUserInput={disableUserInput}\n rightAddons={\n <React.Fragment>\n {rightAddons}\n {shouldRenderPopover && (\n <CalendarMIcon className={styles.calendarIcon} />\n )}\n </React.Fragment>\n }\n rightAddonsProps={{ onMouseDown: (e) => e.preventDefault() }}\n onKeyDown={handleInputKeyDown}\n onChange={handleInputChange}\n block={true}\n />\n {shouldRenderStatic && renderCalendar()}\n\n {shouldRenderPopover &&\n (view === 'desktop' ? (\n <Popover\n open={open}\n useAnchorWidth={useAnchorWidth}\n anchorElement={inputWrapperRef.current as HTMLElement}\n popperClassName={cn(styles.calendarContainer, {\n [styles.calendarResponsive]: calendarResponsive,\n })}\n className={popoverClassName}\n position={popoverPosition}\n offset={[0, 4]}\n withTransition={false}\n preventFlip={preventFlip}\n zIndex={zIndexPopover}\n >\n {renderCalendar()}\n </Popover>\n ) : (\n renderCalendar()\n ))}\n </div>\n );\n },\n);\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type CalendarInputProps } from '../components/calendar-input/Component';
|
|
3
|
-
export
|
|
3
|
+
export type CalendarInputDesktopProps = Omit<CalendarInputProps, 'view'>;
|
|
4
4
|
/**
|
|
5
5
|
* @deprecated
|
|
6
6
|
* use UniversalDateInput instead
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type CalendarInputProps } from '../components/calendar-input/Component';
|
|
3
|
-
export
|
|
3
|
+
export type CalendarInputMobileProps = Omit<CalendarInputProps, 'view'>;
|
|
4
4
|
/**
|
|
5
5
|
* @deprecated
|
|
6
6
|
* use UniversalDateInput instead
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alfalab/core-components-calendar-input",
|
|
3
|
-
"version": "12.0.
|
|
3
|
+
"version": "12.0.6",
|
|
4
4
|
"description": "Calendar input component",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
"main": "index.js",
|
|
11
11
|
"module": "./esm/index.js",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@alfalab/core-components-calendar": "^9.1.
|
|
14
|
-
"@alfalab/core-components-date-input": "^6.0.
|
|
15
|
-
"@alfalab/core-components-mq": "^6.0.
|
|
16
|
-
"@alfalab/core-components-popover": "^8.0.
|
|
13
|
+
"@alfalab/core-components-calendar": "^9.1.1",
|
|
14
|
+
"@alfalab/core-components-date-input": "^6.0.5",
|
|
15
|
+
"@alfalab/core-components-mq": "^6.0.3",
|
|
16
|
+
"@alfalab/core-components-popover": "^8.0.3",
|
|
17
17
|
"@alfalab/icons-glyph": "^2.260.0",
|
|
18
18
|
"classnames": "^2.5.1",
|
|
19
19
|
"date-fns": "^4.1.0",
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"directory": "dist"
|
|
30
30
|
},
|
|
31
31
|
"themesVersion": "15.0.2",
|
|
32
|
-
"varsVersion": "11.0.
|
|
32
|
+
"varsVersion": "11.0.2"
|
|
33
33
|
}
|