@skbkontur/react-ui 6.0.7-eab55.0 → 6.0.8
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/CHANGELOG.md +26 -0
- package/components/Autocomplete/Autocomplete.js +4 -15
- package/components/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +14 -14
- package/components/Calendar/Calendar.js +2 -2
- package/components/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/CalendarDay.d.ts +2 -2
- package/components/Calendar/CalendarDay.js +1 -4
- package/components/Calendar/CalendarDay.js.map +1 -1
- package/components/Calendar/DayCellView.styles.d.ts +0 -1
- package/components/Calendar/DayCellView.styles.js +3 -6
- package/components/Calendar/DayCellView.styles.js.map +1 -1
- package/components/Center/Center.d.ts +3 -3
- package/components/Center/Center.js +2 -2
- package/components/Center/Center.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +11 -14
- package/components/Checkbox/Checkbox.js +3 -6
- package/components/Checkbox/Checkbox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +3 -3
- package/components/ComboBox/ComboBox.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +15 -15
- package/components/DateInput/DateInput.js +1 -1
- package/components/DateInput/DateInput.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +14 -16
- package/components/DatePicker/DatePicker.js +4 -5
- package/components/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/MobilePicker.js +1 -1
- package/components/DatePicker/MobilePicker.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.d.ts +4 -3
- package/components/DateRangePicker/DateRangePicker.js +6 -4
- package/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/DateRangePicker/DateRangePickerInput.js +9 -6
- package/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +8 -15
- package/components/Dropdown/Dropdown.js +1 -8
- package/components/Dropdown/Dropdown.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +2 -1
- package/components/DropdownMenu/DropdownMenu.js +2 -1
- package/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +4 -6
- package/components/FileUploader/FileUploader.js +1 -3
- package/components/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploaderFile.d.ts +3 -3
- package/components/FileUploader/FileUploaderFile.js +1 -1
- package/components/FileUploader/FileUploaderFile.js.map +1 -1
- package/components/Hint/Hint.js +10 -3
- package/components/Hint/Hint.js.map +1 -1
- package/components/Input/Input.d.ts +2 -2
- package/components/Input/Input.js.map +1 -1
- package/components/Loader/Loader.d.ts +4 -12
- package/components/Loader/Loader.js +7 -18
- package/components/Loader/Loader.js.map +1 -1
- package/components/MenuFooter/MenuFooter.d.ts +1 -1
- package/components/MenuFooter/MenuFooter.js +1 -1
- package/components/MenuFooter/MenuFooter.js.map +1 -1
- package/components/MenuHeader/MenuHeader.d.ts +2 -2
- package/components/MenuHeader/MenuHeader.js +1 -1
- package/components/MenuHeader/MenuHeader.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +1 -1
- package/components/MenuItem/MenuItem.js +16 -24
- package/components/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.styles.d.ts +0 -3
- package/components/MenuItem/MenuItem.styles.js +16 -25
- package/components/MenuItem/MenuItem.styles.js.map +1 -1
- package/components/MenuSeparator/MenuSeparator.d.ts +1 -1
- package/components/MenuSeparator/MenuSeparator.js +1 -1
- package/components/MenuSeparator/MenuSeparator.js.map +1 -1
- package/components/MiniModal/MiniModal.d.ts +1 -1
- package/components/MiniModal/MiniModal.js +1 -1
- package/components/MiniModal/MiniModal.js.map +1 -1
- package/components/MiniModal/MiniModalBody.d.ts +1 -1
- package/components/MiniModal/MiniModalBody.js +1 -1
- package/components/MiniModal/MiniModalBody.js.map +1 -1
- package/components/MiniModal/MiniModalFooter.d.ts +1 -1
- package/components/MiniModal/MiniModalFooter.js +1 -1
- package/components/MiniModal/MiniModalFooter.js.map +1 -1
- package/components/MiniModal/MiniModalHeader.d.ts +1 -1
- package/components/MiniModal/MiniModalHeader.js +1 -1
- package/components/MiniModal/MiniModalHeader.js.map +1 -1
- package/components/Paging/Paging.d.ts +2 -2
- package/components/Paging/Paging.js.map +1 -1
- package/components/Radio/Radio.d.ts +7 -7
- package/components/Radio/Radio.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +2 -2
- package/components/RadioGroup/RadioGroup.js.map +1 -1
- package/components/Select/Select.d.ts +4 -4
- package/components/Select/Select.js +1 -11
- package/components/Select/Select.js.map +1 -1
- package/components/SingleToast/SingleToast.d.ts +7 -10
- package/components/SingleToast/SingleToast.js +7 -10
- package/components/SingleToast/SingleToast.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +33 -23
- package/components/Spinner/Spinner.js +19 -23
- package/components/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.styles.d.ts +3 -0
- package/components/Spinner/Spinner.styles.js +15 -6
- package/components/Spinner/Spinner.styles.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +0 -4
- package/components/Sticky/Sticky.js +0 -4
- package/components/Sticky/Sticky.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +8 -10
- package/components/Switcher/Switcher.js +1 -3
- package/components/Switcher/Switcher.js.map +1 -1
- package/components/Textarea/Textarea.js +1 -1
- package/components/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.styles.d.ts +0 -1
- package/components/Textarea/Textarea.styles.js +4 -7
- package/components/Textarea/Textarea.styles.js.map +1 -1
- package/components/Textarea/TextareaCounter.d.ts +0 -2
- package/components/Textarea/TextareaCounter.js +4 -22
- package/components/Textarea/TextareaCounter.js.map +1 -1
- package/components/Toast/Toast.d.ts +14 -13
- package/components/Toast/Toast.js +3 -3
- package/components/Toast/Toast.js.map +1 -1
- package/components/Toast/ToastView.d.ts +5 -8
- package/components/Toast/ToastView.js +8 -28
- package/components/Toast/ToastView.js.map +1 -1
- package/components/Toast/ToastView.styles.d.ts +0 -7
- package/components/Toast/ToastView.styles.js +8 -30
- package/components/Toast/ToastView.styles.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +4 -4
- package/components/Tooltip/Tooltip.js.map +1 -1
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/index.js.map +1 -1
- package/internal/CloseButtonIcon/CloseButtonIcon.js +1 -1
- package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.js +0 -5
- package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu.js +1 -1
- package/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.js +2 -13
- package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/internal/Menu/Menu.js +0 -3
- package/internal/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.styles.d.ts +0 -1
- package/internal/Menu/Menu.styles.js +10 -13
- package/internal/Menu/Menu.styles.js.map +1 -1
- package/internal/MenuMessage/MenuMessage.js +1 -17
- package/internal/MenuMessage/MenuMessage.js.map +1 -1
- package/internal/MenuMessage/MenuMessage.styles.d.ts +0 -3
- package/internal/MenuMessage/MenuMessage.styles.js +4 -13
- package/internal/MenuMessage/MenuMessage.styles.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +0 -8
- package/internal/MobilePopup/MobilePopup.js +11 -34
- package/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.styles.d.ts +0 -7
- package/internal/MobilePopup/MobilePopup.styles.js +10 -34
- package/internal/MobilePopup/MobilePopup.styles.js.map +1 -1
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +1 -8
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +1 -18
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +0 -3
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +4 -14
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +0 -4
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +11 -48
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +0 -6
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +8 -28
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +1 -1
- package/internal/Popup/Popup.d.ts +4 -6
- package/internal/Popup/Popup.js +13 -38
- package/internal/Popup/Popup.js.map +1 -1
- package/internal/Popup/PopupHelper.d.ts +4 -0
- package/internal/Popup/PopupHelper.js +31 -0
- package/internal/Popup/PopupHelper.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +2 -1
- package/internal/PopupMenu/PopupMenu.js +21 -18
- package/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/SpinnerIcon/SpinnerIcon.d.ts +3 -3
- package/internal/SpinnerIcon/SpinnerIcon.js +4 -4
- package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
- package/internal/icons2022/LoadingIcon.js +1 -1
- package/internal/icons2022/LoadingIcon.js.map +1 -1
- package/internal/themes/BasicTheme.d.ts +4 -51
- package/internal/themes/BasicTheme.js +6 -173
- package/internal/themes/BasicTheme.js.map +1 -1
- package/lib/getMenuPositions.js +11 -11
- package/lib/getMenuPositions.js.map +1 -1
- package/lib/theming/themes/DarkTheme.d.ts +0 -1
- package/lib/theming/themes/DarkTheme.js +1 -3
- package/lib/theming/themes/DarkTheme.js.map +1 -1
- package/lib/theming/themes/LightTheme.d.ts +0 -1
- package/lib/theming/themes/LightTheme.js +1 -3
- package/lib/theming/themes/LightTheme.js.map +1 -1
- package/package.json +1 -5
- package/components/TimePicker/TimeClockIcon.d.ts +0 -3
- package/components/TimePicker/TimeClockIcon.js +0 -11
- package/components/TimePicker/TimeClockIcon.js.map +0 -1
- package/components/TimePicker/TimeFragmentsView.d.ts +0 -15
- package/components/TimePicker/TimeFragmentsView.js +0 -72
- package/components/TimePicker/TimeFragmentsView.js.map +0 -1
- package/components/TimePicker/TimeFragmentsView.styles.d.ts +0 -12
- package/components/TimePicker/TimeFragmentsView.styles.js +0 -43
- package/components/TimePicker/TimeFragmentsView.styles.js.map +0 -1
- package/components/TimePicker/TimeInput.d.ts +0 -21
- package/components/TimePicker/TimeInput.js +0 -98
- package/components/TimePicker/TimeInput.js.map +0 -1
- package/components/TimePicker/TimePicker.d.ts +0 -59
- package/components/TimePicker/TimePicker.js +0 -478
- package/components/TimePicker/TimePicker.js.map +0 -1
- package/components/TimePicker/TimePicker.styles.d.ts +0 -11
- package/components/TimePicker/TimePicker.styles.js +0 -36
- package/components/TimePicker/TimePicker.styles.js.map +0 -1
- package/components/TimePicker/TimePickerMobilePopup.d.ts +0 -31
- package/components/TimePicker/TimePickerMobilePopup.js +0 -21
- package/components/TimePicker/TimePickerMobilePopup.js.map +0 -1
- package/components/TimePicker/TimePickerPopup.d.ts +0 -19
- package/components/TimePicker/TimePickerPopup.js +0 -18
- package/components/TimePicker/TimePickerPopup.js.map +0 -1
- package/components/TimePicker/TimePickerSlots.d.ts +0 -16
- package/components/TimePicker/TimePickerSlots.js +0 -67
- package/components/TimePicker/TimePickerSlots.js.map +0 -1
- package/components/TimePicker/helpers/TimePicker.constants.d.ts +0 -18
- package/components/TimePicker/helpers/TimePicker.constants.js +0 -41
- package/components/TimePicker/helpers/TimePicker.constants.js.map +0 -1
- package/components/TimePicker/helpers/TimePicker.editing.d.ts +0 -6
- package/components/TimePicker/helpers/TimePicker.editing.js +0 -86
- package/components/TimePicker/helpers/TimePicker.editing.js.map +0 -1
- package/components/TimePicker/helpers/TimePicker.layout.d.ts +0 -7
- package/components/TimePicker/helpers/TimePicker.layout.js +0 -17
- package/components/TimePicker/helpers/TimePicker.layout.js.map +0 -1
- package/components/TimePicker/helpers/TimePicker.selection.d.ts +0 -7
- package/components/TimePicker/helpers/TimePicker.selection.js +0 -51
- package/components/TimePicker/helpers/TimePicker.selection.js.map +0 -1
- package/components/TimePicker/helpers/TimePicker.shared.d.ts +0 -23
- package/components/TimePicker/helpers/TimePicker.shared.js +0 -50
- package/components/TimePicker/helpers/TimePicker.shared.js.map +0 -1
- package/components/TimePicker/helpers/TimePicker.value.d.ts +0 -8
- package/components/TimePicker/helpers/TimePicker.value.js +0 -61
- package/components/TimePicker/helpers/TimePicker.value.js.map +0 -1
- package/components/TimePicker/helpers/scrollSelectedSlotIntoView.d.ts +0 -1
- package/components/TimePicker/helpers/scrollSelectedSlotIntoView.js +0 -21
- package/components/TimePicker/helpers/scrollSelectedSlotIntoView.js.map +0 -1
- package/components/TimePicker/hooks/useTimePickerDropdown.d.ts +0 -17
- package/components/TimePicker/hooks/useTimePickerDropdown.js +0 -62
- package/components/TimePicker/hooks/useTimePickerDropdown.js.map +0 -1
- package/components/TimePicker/hooks/useTimePickerSelection.d.ts +0 -15
- package/components/TimePicker/hooks/useTimePickerSelection.js +0 -43
- package/components/TimePicker/hooks/useTimePickerSelection.js.map +0 -1
- package/components/TimePicker/hooks/useTimePickerValue.d.ts +0 -18
- package/components/TimePicker/hooks/useTimePickerValue.js +0 -48
- package/components/TimePicker/hooks/useTimePickerValue.js.map +0 -1
- package/components/TimePicker/index.d.ts +0 -2
- package/components/TimePicker/index.js +0 -2
- package/components/TimePicker/index.js.map +0 -1
- package/internal/NativeTimeInput/NativeTimeInput.d.ts +0 -16
- package/internal/NativeTimeInput/NativeTimeInput.js +0 -25
- package/internal/NativeTimeInput/NativeTimeInput.js.map +0 -1
- package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +0 -3
- package/internal/NativeTimeInput/NativeTimeInput.styles.js +0 -15
- package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +0 -1
- package/internal/NativeTimeInput/index.d.ts +0 -1
- package/internal/NativeTimeInput/index.js +0 -2
- package/internal/NativeTimeInput/index.js.map +0 -1
- package/internal/NativeTimeInput/utils.d.ts +0 -7
- package/internal/NativeTimeInput/utils.js +0 -28
- package/internal/NativeTimeInput/utils.js.map +0 -1
- package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.d.ts +0 -2
- package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js +0 -21
- package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js.map +0 -1
- package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.d.ts +0 -2
- package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js +0 -21
- package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js.map +0 -1
- package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.d.ts +0 -2
- package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js +0 -21
- package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js.map +0 -1
- package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.d.ts +0 -2
- package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js +0 -20
- package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js.map +0 -1
- package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.d.ts +0 -2
- package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js +0 -20
- package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js.map +0 -1
- package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.d.ts +0 -2
- package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js +0 -20
- package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js.map +0 -1
- package/internal/themes/DarkTheme6_1.d.ts +0 -1
- package/internal/themes/DarkTheme6_1.js +0 -164
- package/internal/themes/DarkTheme6_1.js.map +0 -1
- package/internal/themes/LightTheme6_1.d.ts +0 -1
- package/internal/themes/LightTheme6_1.js +0 -164
- package/internal/themes/LightTheme6_1.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateInput.js","sourceRoot":"","sources":["../../../components/DateInput/DateInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper/index.js';\nimport { InputLikeText } from '../../internal/InputLikeText/index.js';\nimport { ConditionalHandler } from '../../lib/ConditionalHandler.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants.js';\nimport { InternalDateComponentType } from '../../lib/date/types.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { locale } from '../../lib/locale/decorators.js';\nimport { REACT_MAJOR_VERSION } from '../../lib/react-is.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport type { DatePickerLocale } from '../DatePicker/locale/index.js';\nimport { DatePickerLocaleHelper } from '../DatePicker/locale/index.js';\nimport { CalendarIcon } from './CalendarIcon.js';\nimport { DateFragmentsView } from './DateFragmentsView.js';\nimport { getStyles } from './DateInput.styles.js';\nimport { Actions, extractAction } from './helpers/DateInputKeyboardActions.js';\nimport { InternalDateMediator } from './helpers/InternalDateMediator.js';\n\nexport interface DateInputState {\n selected: InternalDateComponentType | null;\n valueFormatted: string;\n inputMode: boolean;\n focused: boolean;\n dragged: boolean;\n}\n\nexport const DateInputDataTids = {\n root: 'DateInput__root',\n icon: 'DateInput__icon',\n} as const;\n\nexport interface DateInputProps\n extends\n CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Устанавливает значение датаинпута. */\n value?: string;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает минимальную возможную дату в формате `dd.mm.yyyy`. */\n minDate?: string;\n\n /** Задает максимальную возможную дату в формате `dd.mm.yyyy` */\n maxDate?: string;\n\n /** Задает ширину поля. */\n width?: string | number;\n\n /** Добавляет иконку календаря. */\n withIcon?: boolean;\n\n /** Задает размер поля. */\n size?: SizeProp;\n\n /** Задает функцию, которая вызывается при потере датаинпутом фокуса. */\n onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при клике на датаинпут. */\n onClick?: (x0: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при получении датаинпутом фокуса. */\n onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при изменении value.\n * @param value - строка в формате `dd.mm.yyyy`. */\n onValueChange?: (value: string) => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ntype DefaultProps = Required<Pick<DateInputProps, 'value' | 'minDate' | 'maxDate' | 'width'>>;\n\n/**\n * Компонент поля `DateInput` из DatePicker'а помогает выбирать дату с клавиатуры.\n */\n@withRenderEnvironment\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\n@withSize\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n public static displayName = 'DateInput';\n\n public static defaultProps: DefaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n width: 125,\n };\n private size!: SizeProp;\n\n private getProps = createPropsGetter(DateInput.defaultProps);\n\n private iDateMediator: InternalDateMediator = new InternalDateMediator();\n private inputLikeText: InputLikeText | null = null;\n private dateFragmentsView: DateFragmentsView | null = null;\n private isMouseDown = false;\n private isMouseFocus = false;\n private ignoringDelimiter = false;\n private locale!: DatePickerLocale;\n private blurEvent: React.FocusEvent<HTMLElement> | null = null;\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private conditionalHandler = new ConditionalHandler<Actions, [React.KeyboardEvent<HTMLElement>]>()\n .add(Actions.MoveSelectionLeft, () => this.shiftSelection(-1))\n .add(Actions.MoveSelectionRight, () => this.shiftSelection(1))\n .add(Actions.Separator, () => this.pressDelimiter())\n .add(Actions.MoveSelectionFirst, () => this.selectDateComponent(this.iDateMediator.getLeftmostType()))\n .add(Actions.MoveSelectionLast, () => this.selectDateComponent(this.iDateMediator.getRightmostType()))\n .add(Actions.Increment, () => this.shiftDateComponent(1))\n .add(Actions.Decrement, () => this.shiftDateComponent(-1))\n .add(Actions.Digit, (e) => this.inputValue(e))\n .add(Actions.ClearSelection, () => this.clearSelected())\n .add(Actions.ClearOneChar, () => this.clearOneChar())\n .add(Actions.FullSelection, () => this.fullSelection())\n .add(Actions.WrongInput, () => this.blink())\n .build();\n\n constructor(props: DateInputProps) {\n super(props);\n\n this.state = {\n valueFormatted: '',\n selected: null,\n inputMode: false,\n focused: false,\n dragged: false,\n };\n }\n\n public componentDidUpdate(prevProps: DateInputProps) {\n const { value, minDate, maxDate } = this.getProps();\n if (\n prevProps.value !== value ||\n prevProps.minDate !== minDate ||\n prevProps.maxDate !== maxDate ||\n this.iDateMediator.isChangedLocale(this.locale)\n ) {\n this.updateFromProps(false);\n }\n !this.props.disabled && this.selectNode();\n }\n\n public selectNode = (): void => {\n const type = this.state.selected;\n const dateFragmentsView = this.dateFragmentsView && this.dateFragmentsView.getRootNode();\n if (type === null || !this.inputLikeText || !dateFragmentsView) {\n return;\n }\n if (type === InternalDateComponentType.All) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, 0, 5);\n return;\n }\n const index = this.iDateMediator.getTypesOrder().indexOf(type);\n if (index > -1) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, index * 2, index * 2 + 1);\n }\n };\n\n public componentDidMount(): void {\n this.updateFromProps(false);\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public blur(): void {\n if (this.inputLikeText) {\n this.inputLikeText.blur();\n }\n }\n\n public focus(): void {\n if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n }\n\n public blink(): void {\n if (this.inputLikeText) {\n this.inputLikeText.blink();\n }\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { focused, selected, inputMode, valueFormatted } = this.state;\n const showValue = Boolean(focused || valueFormatted);\n const { width } = this.getProps();\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <InputLikeText\n data-tid={DateInputDataTids.root}\n id={this.props.id}\n width={width}\n ref={this.inputLikeTextRef}\n size={this.size}\n disabled={this.props.disabled}\n error={this.props.error}\n warning={this.props.warning}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.props.onClick}\n onKeyDown={this.handleKeyDown}\n onMouseDownCapture={this.handleMouseDownCapture}\n onPaste={this.handlePaste}\n rightIcon={this.renderIcon()}\n onDoubleClickCapture={this.handleDoubleClick}\n onMouseDragStart={this.handleMouseDragStart}\n onMouseDragEnd={this.handleMouseDragEnd}\n value={this.iDateMediator.getInternalString()}\n inputMode={'numeric'}\n takeContentWidth\n aria-describedby={this.props['aria-describedby']}\n aria-label={this.props['aria-label']}\n aria-labelledby={this.props['aria-labelledby']}\n >\n <span className={this.cx(this.styles.value(), { [this.styles.valueVisible()]: showValue })}>\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={this.iDateMediator.getFragments()}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </span>\n </InputLikeText>\n </FocusControlWrapper>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, disabled = false } = this.props;\n const size = this.size;\n\n if (withIcon) {\n const theme = this.theme;\n const icon = <CalendarIcon size={size} />;\n const iconStyles = this.cx({\n [this.styles.icon(theme)]: true,\n [this.styles.iconSmall(theme)]: size === 'small',\n [this.styles.iconMedium(theme)]: size === 'medium',\n [this.styles.iconLarge(theme)]: size === 'large',\n [this.styles.iconDisabled(theme)]: disabled,\n });\n return (\n <span className={iconStyles} data-tid={DateInputDataTids.icon}>\n {icon}\n </span>\n );\n }\n return null;\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n this.setState((prevState) => ({\n focused: true,\n selected: this.isMouseDown && !prevState.focused ? prevState.selected : this.iDateMediator.getLeftmostType(),\n }));\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private resetFocus = () => this.updateValue({ focused: false, selected: null, inputMode: false }, false);\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n this.resetFocus();\n\n if (this.props.onBlur) {\n const restored = this.iDateMediator.restore();\n if (restored) {\n e.persist();\n this.blurEvent = e;\n } else {\n this.props.onBlur(e);\n }\n }\n };\n\n private handleMouseDownCapture = (e: React.MouseEvent<HTMLSpanElement>) => {\n const isFragment = this.dateFragmentsView ? this.dateFragmentsView.isFragment(e.target) : false;\n if (this.state.focused && !isFragment) {\n e.preventDefault();\n }\n this.isMouseFocus = !this.state.focused;\n this.isMouseDown = isFragment;\n };\n\n private handleSelectDateComponent = (type: InternalDateComponentType) => {\n if (!(this.isMouseFocus && this.iDateMediator.isEmpty())) {\n this.selectDateComponent(type);\n }\n this.isMouseFocus = false;\n this.isMouseDown = false;\n };\n\n private handleMouseDragStart = () => {\n this.setState({ dragged: true, selected: null });\n };\n\n private handleMouseDragEnd = () => {\n const selection = this.globalObject.getSelection?.();\n if (\n selection &&\n selection.toString().length === LENGTH_FULLDATE &&\n this.state.selected !== InternalDateComponentType.All\n ) {\n this.selectDateComponent(InternalDateComponentType.All);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.conditionalHandler(extractAction(e), e)) {\n e.preventDefault();\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handlePaste = (e: React.ClipboardEvent<HTMLElement>) => {\n const pasted = e && e.clipboardData.getData('text').trim();\n if (pasted && this.iDateMediator.validateString(pasted)) {\n this.iDateMediator.paste(pasted);\n this.updateValue();\n }\n };\n\n private handleDoubleClick = () => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private inputLikeTextRef = (el: InputLikeText | null) => {\n this.inputLikeText = el;\n };\n\n private dateFragmentsViewRef = (el: DateFragmentsView | null) => {\n this.dateFragmentsView = el;\n };\n\n private selectDateComponent = (selected: InternalDateComponentType | null): void => {\n this.setState({ selected, inputMode: false });\n };\n\n private updateValue = (state: Partial<DateInputState> = {}, sync = true): void => {\n const valueFormatted = this.iDateMediator.getString();\n\n const update = () => this.setState({ ...state, valueFormatted } as DateInputState, this.emitChange);\n\n if (sync && REACT_MAJOR_VERSION >= 18) {\n ReactDOM.flushSync(update);\n } else {\n update();\n }\n };\n\n private updateFromProps = (sync: boolean): void => {\n this.iDateMediator.update(this.props, this.locale);\n\n this.updateValue({}, sync);\n };\n\n private fullSelection = (): void => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private pressDelimiter = (): void => {\n const value = this.iDateMediator.get(this.state.selected);\n if (value !== null && value !== '') {\n if (!this.ignoringDelimiter) {\n this.shiftSelection(1);\n }\n this.ignoringDelimiter = false;\n }\n };\n\n private emitChange = (): void => {\n if (this.props.onValueChange) {\n const value = this.iDateMediator.getInternalString();\n if (this.props.value !== value) {\n this.props.onValueChange(value);\n }\n }\n\n // `this.blurEvent` is always null in `flushSync` without `setTimeout` due to sync update\n setTimeout(() => {\n if (this.blurEvent && this.props.onBlur) {\n this.props.onBlur(this.blurEvent);\n this.blurEvent = null;\n }\n });\n };\n\n private clearSelected = (): void => {\n const selected = this.state.selected === null ? this.iDateMediator.getLeftmostType() : this.state.selected;\n this.iDateMediator.clear(selected);\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private clearOneChar = (): void => {\n const { selected, inputMode } = this.state;\n const nextType = selected === null ? this.iDateMediator.getRightmostType() : selected;\n if (this.iDateMediator.isNull(nextType)) {\n this.shiftSelection(-1);\n return;\n }\n if (selected === InternalDateComponentType.All) {\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.updateValue({ selected: this.iDateMediator.getLeftmostType() });\n return;\n }\n this.iDateMediator.deleteOneCharRight(nextType, inputMode);\n this.updateValue({\n inputMode: this.iDateMediator.get(nextType) !== null,\n selected: nextType,\n });\n };\n\n private shiftDateComponent = (step: number): void => {\n const { selected } = this.state;\n const changed = this.iDateMediator.shiftDateComponent(selected, step);\n if (!changed) {\n this.blink();\n return;\n }\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private shiftSelection = (step: number): void => {\n const selected = this.iDateMediator.getShiftedType(this.state.selected, step);\n if (selected !== this.state.selected) {\n this.setState({ selected, inputMode: false });\n }\n };\n\n private inputValue = (event: React.KeyboardEvent<HTMLElement>): void => {\n let selected = this.state.selected;\n if (selected === InternalDateComponentType.All) {\n selected = this.iDateMediator.getLeftmostType();\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.setState({ selected });\n }\n\n const { inputMode } = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"DateInput.js","sourceRoot":"","sources":["../../../components/DateInput/DateInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper/index.js';\nimport { InputLikeText } from '../../internal/InputLikeText/index.js';\nimport { ConditionalHandler } from '../../lib/ConditionalHandler.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants.js';\nimport { InternalDateComponentType } from '../../lib/date/types.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { locale } from '../../lib/locale/decorators.js';\nimport { REACT_MAJOR_VERSION } from '../../lib/react-is.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport type { DatePickerLocale } from '../DatePicker/locale/index.js';\nimport { DatePickerLocaleHelper } from '../DatePicker/locale/index.js';\nimport { CalendarIcon } from './CalendarIcon.js';\nimport { DateFragmentsView } from './DateFragmentsView.js';\nimport { getStyles } from './DateInput.styles.js';\nimport { Actions, extractAction } from './helpers/DateInputKeyboardActions.js';\nimport { InternalDateMediator } from './helpers/InternalDateMediator.js';\n\nexport interface DateInputState {\n selected: InternalDateComponentType | null;\n valueFormatted: string;\n inputMode: boolean;\n focused: boolean;\n dragged: boolean;\n}\n\nexport const DateInputDataTids = {\n root: 'DateInput__root',\n icon: 'DateInput__icon',\n} as const;\n\nexport interface DateInputProps\n extends\n CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Устанавливает фокус на поле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Значение поля. */\n value?: string;\n\n /** Меняет визуальное отображение поля на состояние ошибки. */\n error?: boolean;\n\n /** Меняет визуальное отображение поля на состояние предупреждения. */\n warning?: boolean;\n\n /** Блокирует поле. */\n disabled?: boolean;\n\n /** Минимальная дата в формате `dd.mm.yyyy`. */\n minDate?: string;\n\n /** Максимальная дата в формате `dd.mm.yyyy`. */\n maxDate?: string;\n\n /** Ширина поля. */\n width?: string | number;\n\n /** Добавляет иконку календаря. */\n withIcon?: boolean;\n\n /** Размер поля. */\n size?: SizeProp;\n\n /** Событие потери полем фокуса. */\n onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;\n\n /** Событие нажатия на поле. */\n onClick?: (x0: React.MouseEvent<HTMLElement>) => void;\n\n /** Событие получения полем фокуса. */\n onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;\n\n /** Событие изменения value.\n * @param value - строка в формате `dd.mm.yyyy`. */\n onValueChange?: (value: string) => void;\n\n /** Событие нажатия кнопки на клавиатуре. */\n onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ntype DefaultProps = Required<Pick<DateInputProps, 'value' | 'minDate' | 'maxDate' | 'width'>>;\n\n/**\n * Поле ввода для выбора даты с клавиатуры. Используется в [поле с датой](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_date-components-datepicker--docs).\n */\n@withRenderEnvironment\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\n@withSize\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n public static displayName = 'DateInput';\n\n public static defaultProps: DefaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n width: 125,\n };\n private size!: SizeProp;\n\n private getProps = createPropsGetter(DateInput.defaultProps);\n\n private iDateMediator: InternalDateMediator = new InternalDateMediator();\n private inputLikeText: InputLikeText | null = null;\n private dateFragmentsView: DateFragmentsView | null = null;\n private isMouseDown = false;\n private isMouseFocus = false;\n private ignoringDelimiter = false;\n private locale!: DatePickerLocale;\n private blurEvent: React.FocusEvent<HTMLElement> | null = null;\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private conditionalHandler = new ConditionalHandler<Actions, [React.KeyboardEvent<HTMLElement>]>()\n .add(Actions.MoveSelectionLeft, () => this.shiftSelection(-1))\n .add(Actions.MoveSelectionRight, () => this.shiftSelection(1))\n .add(Actions.Separator, () => this.pressDelimiter())\n .add(Actions.MoveSelectionFirst, () => this.selectDateComponent(this.iDateMediator.getLeftmostType()))\n .add(Actions.MoveSelectionLast, () => this.selectDateComponent(this.iDateMediator.getRightmostType()))\n .add(Actions.Increment, () => this.shiftDateComponent(1))\n .add(Actions.Decrement, () => this.shiftDateComponent(-1))\n .add(Actions.Digit, (e) => this.inputValue(e))\n .add(Actions.ClearSelection, () => this.clearSelected())\n .add(Actions.ClearOneChar, () => this.clearOneChar())\n .add(Actions.FullSelection, () => this.fullSelection())\n .add(Actions.WrongInput, () => this.blink())\n .build();\n\n constructor(props: DateInputProps) {\n super(props);\n\n this.state = {\n valueFormatted: '',\n selected: null,\n inputMode: false,\n focused: false,\n dragged: false,\n };\n }\n\n public componentDidUpdate(prevProps: DateInputProps) {\n const { value, minDate, maxDate } = this.getProps();\n if (\n prevProps.value !== value ||\n prevProps.minDate !== minDate ||\n prevProps.maxDate !== maxDate ||\n this.iDateMediator.isChangedLocale(this.locale)\n ) {\n this.updateFromProps(false);\n }\n !this.props.disabled && this.selectNode();\n }\n\n public selectNode = (): void => {\n const type = this.state.selected;\n const dateFragmentsView = this.dateFragmentsView && this.dateFragmentsView.getRootNode();\n if (type === null || !this.inputLikeText || !dateFragmentsView) {\n return;\n }\n if (type === InternalDateComponentType.All) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, 0, 5);\n return;\n }\n const index = this.iDateMediator.getTypesOrder().indexOf(type);\n if (index > -1) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, index * 2, index * 2 + 1);\n }\n };\n\n public componentDidMount(): void {\n this.updateFromProps(false);\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public blur(): void {\n if (this.inputLikeText) {\n this.inputLikeText.blur();\n }\n }\n\n public focus(): void {\n if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n }\n\n public blink(): void {\n if (this.inputLikeText) {\n this.inputLikeText.blink();\n }\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { focused, selected, inputMode, valueFormatted } = this.state;\n const showValue = Boolean(focused || valueFormatted);\n const { width } = this.getProps();\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <InputLikeText\n data-tid={DateInputDataTids.root}\n id={this.props.id}\n width={width}\n ref={this.inputLikeTextRef}\n size={this.size}\n disabled={this.props.disabled}\n error={this.props.error}\n warning={this.props.warning}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.props.onClick}\n onKeyDown={this.handleKeyDown}\n onMouseDownCapture={this.handleMouseDownCapture}\n onPaste={this.handlePaste}\n rightIcon={this.renderIcon()}\n onDoubleClickCapture={this.handleDoubleClick}\n onMouseDragStart={this.handleMouseDragStart}\n onMouseDragEnd={this.handleMouseDragEnd}\n value={this.iDateMediator.getInternalString()}\n inputMode={'numeric'}\n takeContentWidth\n aria-describedby={this.props['aria-describedby']}\n aria-label={this.props['aria-label']}\n aria-labelledby={this.props['aria-labelledby']}\n >\n <span className={this.cx(this.styles.value(), { [this.styles.valueVisible()]: showValue })}>\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={this.iDateMediator.getFragments()}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </span>\n </InputLikeText>\n </FocusControlWrapper>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, disabled = false } = this.props;\n const size = this.size;\n\n if (withIcon) {\n const theme = this.theme;\n const icon = <CalendarIcon size={size} />;\n const iconStyles = this.cx({\n [this.styles.icon(theme)]: true,\n [this.styles.iconSmall(theme)]: size === 'small',\n [this.styles.iconMedium(theme)]: size === 'medium',\n [this.styles.iconLarge(theme)]: size === 'large',\n [this.styles.iconDisabled(theme)]: disabled,\n });\n return (\n <span className={iconStyles} data-tid={DateInputDataTids.icon}>\n {icon}\n </span>\n );\n }\n return null;\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n this.setState((prevState) => ({\n focused: true,\n selected: this.isMouseDown && !prevState.focused ? prevState.selected : this.iDateMediator.getLeftmostType(),\n }));\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private resetFocus = () => this.updateValue({ focused: false, selected: null, inputMode: false }, false);\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n this.resetFocus();\n\n if (this.props.onBlur) {\n const restored = this.iDateMediator.restore();\n if (restored) {\n e.persist();\n this.blurEvent = e;\n } else {\n this.props.onBlur(e);\n }\n }\n };\n\n private handleMouseDownCapture = (e: React.MouseEvent<HTMLSpanElement>) => {\n const isFragment = this.dateFragmentsView ? this.dateFragmentsView.isFragment(e.target) : false;\n if (this.state.focused && !isFragment) {\n e.preventDefault();\n }\n this.isMouseFocus = !this.state.focused;\n this.isMouseDown = isFragment;\n };\n\n private handleSelectDateComponent = (type: InternalDateComponentType) => {\n if (!(this.isMouseFocus && this.iDateMediator.isEmpty())) {\n this.selectDateComponent(type);\n }\n this.isMouseFocus = false;\n this.isMouseDown = false;\n };\n\n private handleMouseDragStart = () => {\n this.setState({ dragged: true, selected: null });\n };\n\n private handleMouseDragEnd = () => {\n const selection = this.globalObject.getSelection?.();\n if (\n selection &&\n selection.toString().length === LENGTH_FULLDATE &&\n this.state.selected !== InternalDateComponentType.All\n ) {\n this.selectDateComponent(InternalDateComponentType.All);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.conditionalHandler(extractAction(e), e)) {\n e.preventDefault();\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handlePaste = (e: React.ClipboardEvent<HTMLElement>) => {\n const pasted = e && e.clipboardData.getData('text').trim();\n if (pasted && this.iDateMediator.validateString(pasted)) {\n this.iDateMediator.paste(pasted);\n this.updateValue();\n }\n };\n\n private handleDoubleClick = () => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private inputLikeTextRef = (el: InputLikeText | null) => {\n this.inputLikeText = el;\n };\n\n private dateFragmentsViewRef = (el: DateFragmentsView | null) => {\n this.dateFragmentsView = el;\n };\n\n private selectDateComponent = (selected: InternalDateComponentType | null): void => {\n this.setState({ selected, inputMode: false });\n };\n\n private updateValue = (state: Partial<DateInputState> = {}, sync = true): void => {\n const valueFormatted = this.iDateMediator.getString();\n\n const update = () => this.setState({ ...state, valueFormatted } as DateInputState, this.emitChange);\n\n if (sync && REACT_MAJOR_VERSION >= 18) {\n ReactDOM.flushSync(update);\n } else {\n update();\n }\n };\n\n private updateFromProps = (sync: boolean): void => {\n this.iDateMediator.update(this.props, this.locale);\n\n this.updateValue({}, sync);\n };\n\n private fullSelection = (): void => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private pressDelimiter = (): void => {\n const value = this.iDateMediator.get(this.state.selected);\n if (value !== null && value !== '') {\n if (!this.ignoringDelimiter) {\n this.shiftSelection(1);\n }\n this.ignoringDelimiter = false;\n }\n };\n\n private emitChange = (): void => {\n if (this.props.onValueChange) {\n const value = this.iDateMediator.getInternalString();\n if (this.props.value !== value) {\n this.props.onValueChange(value);\n }\n }\n\n // `this.blurEvent` is always null in `flushSync` without `setTimeout` due to sync update\n setTimeout(() => {\n if (this.blurEvent && this.props.onBlur) {\n this.props.onBlur(this.blurEvent);\n this.blurEvent = null;\n }\n });\n };\n\n private clearSelected = (): void => {\n const selected = this.state.selected === null ? this.iDateMediator.getLeftmostType() : this.state.selected;\n this.iDateMediator.clear(selected);\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private clearOneChar = (): void => {\n const { selected, inputMode } = this.state;\n const nextType = selected === null ? this.iDateMediator.getRightmostType() : selected;\n if (this.iDateMediator.isNull(nextType)) {\n this.shiftSelection(-1);\n return;\n }\n if (selected === InternalDateComponentType.All) {\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.updateValue({ selected: this.iDateMediator.getLeftmostType() });\n return;\n }\n this.iDateMediator.deleteOneCharRight(nextType, inputMode);\n this.updateValue({\n inputMode: this.iDateMediator.get(nextType) !== null,\n selected: nextType,\n });\n };\n\n private shiftDateComponent = (step: number): void => {\n const { selected } = this.state;\n const changed = this.iDateMediator.shiftDateComponent(selected, step);\n if (!changed) {\n this.blink();\n return;\n }\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private shiftSelection = (step: number): void => {\n const selected = this.iDateMediator.getShiftedType(this.state.selected, step);\n if (selected !== this.state.selected) {\n this.setState({ selected, inputMode: false });\n }\n };\n\n private inputValue = (event: React.KeyboardEvent<HTMLElement>): void => {\n let selected = this.state.selected;\n if (selected === InternalDateComponentType.All) {\n selected = this.iDateMediator.getLeftmostType();\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.setState({ selected });\n }\n\n const { inputMode } = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"]}
|
|
@@ -7,28 +7,27 @@ import type { Nullable } from '../../typings/utility-types.js';
|
|
|
7
7
|
import type { CalendarDateShape, CalendarProps } from '../Calendar/index.js';
|
|
8
8
|
export declare const MIN_WIDTH = 120;
|
|
9
9
|
export interface DatePickerProps extends Pick<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate' | 'renderDay' | 'onMonthChange'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, CommonProps {
|
|
10
|
-
/** Устанавливает фокус на
|
|
10
|
+
/** Устанавливает фокус на поле с датой после окончания загрузки страницы. */
|
|
11
11
|
autoFocus?: boolean;
|
|
12
|
-
/**
|
|
12
|
+
/** Блокирует поле с датой. Поле становится недоступно для редактирования. */
|
|
13
13
|
disabled?: boolean;
|
|
14
|
-
/** Отображает кнопку
|
|
14
|
+
/** Отображает в календаре кнопку «Сегодня», которая меняет выбранное значение на текущую дату. */
|
|
15
15
|
enableTodayLink?: boolean;
|
|
16
|
-
/**
|
|
16
|
+
/** Меняет визуальное отображение поля на состояние «ошибка». */
|
|
17
17
|
error?: boolean;
|
|
18
|
-
/**
|
|
18
|
+
/** Расположение календаря — над или под полем. */
|
|
19
19
|
menuPos?: 'top' | 'bottom';
|
|
20
|
-
/**
|
|
20
|
+
/** Выравнивание выпадающего окна с календарём. */
|
|
21
21
|
menuAlign?: 'left' | 'right';
|
|
22
|
-
/**
|
|
22
|
+
/** Размер поля с датой. */
|
|
23
23
|
size?: SizeProp;
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
26
|
-
* Задает значение автокомплита.
|
|
25
|
+
* Значение поля в формате `dd.mm.yyyy`.
|
|
27
26
|
*/
|
|
28
27
|
value?: string | null;
|
|
29
|
-
/**
|
|
28
|
+
/** Меняет визуальное отображение поля на состояние «предупреждение». */
|
|
30
29
|
warning?: boolean;
|
|
31
|
-
/**
|
|
30
|
+
/** Ширина поля с датой. */
|
|
32
31
|
width?: number | string;
|
|
33
32
|
/** Задает функцию, которая вызывается при потере датапикером фокуса. */
|
|
34
33
|
onBlur?: () => void;
|
|
@@ -63,11 +62,8 @@ export declare const DatePickerDataTids: {
|
|
|
63
62
|
};
|
|
64
63
|
type DefaultProps = Required<Pick<DatePickerProps, 'minDate' | 'maxDate'>>;
|
|
65
64
|
/**
|
|
66
|
-
* Поле
|
|
65
|
+
* Поле с датой помогает вводить дату с клавиатуры или выбирать её с помощью мыши.
|
|
67
66
|
*
|
|
68
|
-
* Используйте поле с датой, когда нужно ввести дату в формате ДД.ММ.ГГГГ.
|
|
69
|
-
*
|
|
70
|
-
* Поле с датой отличается от обычного поля ввода наличием иконки, маски и блока календаря.
|
|
71
67
|
*/
|
|
72
68
|
export declare class DatePicker extends React.PureComponent<DatePickerProps, DatePickerState> {
|
|
73
69
|
static __KONTUR_REACT_UI__: string;
|
|
@@ -92,17 +88,19 @@ export declare class DatePicker extends React.PureComponent<DatePickerProps, Dat
|
|
|
92
88
|
componentDidMount(): void;
|
|
93
89
|
componentDidUpdate(prevProps: DatePickerProps, prevState: DatePickerState): void;
|
|
94
90
|
/**
|
|
91
|
+
* Программно снимает фокус с поля.
|
|
95
92
|
* @public
|
|
96
93
|
*/
|
|
97
94
|
blur(): void;
|
|
98
95
|
/**
|
|
96
|
+
* Программно устанавливает фокус на поле.
|
|
99
97
|
* @public
|
|
100
98
|
*/
|
|
101
99
|
focus(opts?: {
|
|
102
100
|
withoutOpenDropdown?: boolean;
|
|
103
101
|
}): void;
|
|
104
102
|
/**
|
|
105
|
-
* Закрывает
|
|
103
|
+
* Закрывает раскрывающийся блок календаря с выбором дня.
|
|
106
104
|
* @public
|
|
107
105
|
*/
|
|
108
106
|
close(): void;
|
|
@@ -76,11 +76,8 @@ export var DatePickerDataTids = {
|
|
|
76
76
|
pickerTodayWrapper: 'Picker__todayWrapper',
|
|
77
77
|
};
|
|
78
78
|
/**
|
|
79
|
-
* Поле
|
|
79
|
+
* Поле с датой помогает вводить дату с клавиатуры или выбирать её с помощью мыши.
|
|
80
80
|
*
|
|
81
|
-
* Используйте поле с датой, когда нужно ввести дату в формате ДД.ММ.ГГГГ.
|
|
82
|
-
*
|
|
83
|
-
* Поле с датой отличается от обычного поля ввода наличием иконки, маски и блока календаря.
|
|
84
81
|
*/
|
|
85
82
|
var DatePicker = /** @class */ (function (_super) {
|
|
86
83
|
__extends(DatePicker, _super);
|
|
@@ -207,6 +204,7 @@ var DatePicker = /** @class */ (function (_super) {
|
|
|
207
204
|
}
|
|
208
205
|
};
|
|
209
206
|
/**
|
|
207
|
+
* Программно снимает фокус с поля.
|
|
210
208
|
* @public
|
|
211
209
|
*/
|
|
212
210
|
DatePicker.prototype.blur = function () {
|
|
@@ -216,6 +214,7 @@ var DatePicker = /** @class */ (function (_super) {
|
|
|
216
214
|
this.handleBlur();
|
|
217
215
|
};
|
|
218
216
|
/**
|
|
217
|
+
* Программно устанавливает фокус на поле.
|
|
219
218
|
* @public
|
|
220
219
|
*/
|
|
221
220
|
DatePicker.prototype.focus = function (opts) {
|
|
@@ -230,7 +229,7 @@ var DatePicker = /** @class */ (function (_super) {
|
|
|
230
229
|
}
|
|
231
230
|
};
|
|
232
231
|
/**
|
|
233
|
-
* Закрывает
|
|
232
|
+
* Закрывает раскрывающийся блок календаря с выбором дня.
|
|
234
233
|
* @public
|
|
235
234
|
*/
|
|
236
235
|
DatePicker.prototype.close = function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../components/DatePicker/DatePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.js';\nimport { NativeDateInput } from '../../internal/NativeDateInput/index.js';\nimport { Popup } from '../../internal/Popup/index.js';\nimport { ZIndex } from '../../internal/ZIndex/index.js';\nimport { isMobile } from '../../lib/client.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants.js';\nimport { InternalDate } from '../../lib/date/InternalDate.js';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter.js';\nimport { InternalDateOrder, InternalDateSeparator, InternalDateValidateCheck } from '../../lib/date/types.js';\nimport { filterProps } from '../../lib/filterProps.js';\nimport { getMenuPositions } from '../../lib/getMenuPositions.js';\nimport { locale } from '../../lib/locale/decorators.js';\nimport { LocaleContext } from '../../lib/locale/index.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { getRootNode, rootNode } from '../../lib/rootNode/index.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { isNonNullable } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { Button } from '../Button/index.js';\nimport { getTodayDate } from '../Calendar/CalendarUtils.js';\nimport type { CalendarDateShape, CalendarProps } from '../Calendar/index.js';\nimport { Calendar } from '../Calendar/index.js';\nimport { DateInput } from '../DateInput/index.js';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator.js';\nimport { getStyles } from './DatePicker.styles.js';\nimport type { DatePickerLocale } from './locale/index.js';\nimport { DatePickerLocaleHelper } from './locale/index.js';\nimport { MobilePicker } from './MobilePicker.js';\n\nconst INPUT_PASS_PROPS = {\n autoFocus: true,\n disabled: true,\n warning: true,\n error: true,\n size: true,\n onKeyDown: true,\n};\n\nexport const MIN_WIDTH = 120;\n\nexport interface DatePickerProps\n extends\n Pick<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate' | 'renderDay' | 'onMonthChange'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n\n autoFocus?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Отображает кнопку \"Сегодня\" в календаре. */\n enableTodayLink?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Задает nекущую позицию выпадающего окна вручную. */\n menuPos?: 'top' | 'bottom';\n\n /** Задает выравнивание меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /**\n * Строка формата `dd.mm.yyyy`\n * Задает значение автокомплита.\n */\n value?: string | null;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает ширину автокомплита. */\n width?: number | string;\n\n /** Задает функцию, которая вызывается при потере датапикером фокуса. */\n onBlur?: () => void;\n\n /** Задает функцию, вызывающуюся при изменении value.\n * @param value - строка в формате `dd.mm.yyyy`. */\n onValueChange: (value: string) => void;\n\n /** Задает функцию, которая вызывается при получении датапикером фокуса. */\n onFocus?: () => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onKeyDown?: (e: React.KeyboardEvent<any>) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (e: React.MouseEvent<any>) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent<any>) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent<any>) => void;\n\n /** Позволяет использовать на мобильных устройствах нативный календарь для выбора дат.\n * На iOS нативный календарь не умеет работать с minDate и maxDate. */\n useMobileNativeDatePicker?: boolean;\n}\n\nexport interface DatePickerState {\n opened: boolean;\n canUseMobileNativeDatePicker: boolean;\n today: CalendarDateShape;\n}\n\nexport const DatePickerDataTids = {\n root: 'DatePicker__root',\n input: 'DatePicker__input',\n label: 'DatePicker__label',\n pickerRoot: 'Picker__root',\n pickerTodayWrapper: 'Picker__todayWrapper',\n} as const;\n\ntype DefaultProps = Required<Pick<DatePickerProps, 'minDate' | 'maxDate'>>;\n\n/**\n * Поле `DatePicker` помогает вводить дату с клавиатуры или выбирать ее с помощью мыши.\n *\n * Используйте поле с датой, когда нужно ввести дату в формате ДД.ММ.ГГГГ.\n *\n * Поле с датой отличается от обычного поля ввода наличием иконки, маски и блока календаря.\n */\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DatePicker extends React.PureComponent<DatePickerProps, DatePickerState> {\n public static __KONTUR_REACT_UI__ = 'DatePicker';\n public static displayName = 'DatePicker';\n\n public static defaultProps: DefaultProps = {\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n };\n\n private getProps = createPropsGetter(DatePicker.defaultProps);\n private emotion!: Emotion;\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private readonly locale!: DatePickerLocale;\n private canOpenPopup = true;\n\n public static validate = (value: Nullable<string>, range: { minDate?: string; maxDate?: string } = {}): boolean => {\n if (!value) {\n return false;\n }\n\n const { minDate = MIN_FULLDATE, maxDate = MAX_FULLDATE } = range;\n const internalDate = new InternalDate({\n order: InternalDateOrder.DMY,\n separator: InternalDateSeparator.Dot,\n })\n .setRangeStart(new InternalDate({ value: minDate }))\n .setRangeEnd(new InternalDate({ value: maxDate }))\n .parseValue(value);\n\n return internalDate.validate({\n checks: [\n InternalDateValidateCheck.NotNull,\n InternalDateValidateCheck.Number,\n InternalDateValidateCheck.Native,\n InternalDateValidateCheck.Limits,\n InternalDateValidateCheck.Range,\n ],\n });\n };\n\n public state: DatePickerState = { opened: false, canUseMobileNativeDatePicker: false, today: getTodayDate() };\n\n private input: DateInput | null = null;\n private focused = false;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private isMobileLayout!: boolean;\n\n public componentDidMount() {\n if (this.props.useMobileNativeDatePicker && isMobile) {\n this.setState({\n canUseMobileNativeDatePicker: true,\n });\n }\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate(prevProps: DatePickerProps, prevState: DatePickerState) {\n const { disabled } = this.props;\n const { opened } = this.state;\n if (disabled && opened) {\n this.close();\n }\n\n if (prevState.opened && !opened && this.isMobileLayout) {\n this.handleBlur();\n }\n }\n\n /**\n * @public\n */\n public blur(): void {\n if (this.input) {\n this.input.blur();\n }\n this.handleBlur();\n }\n\n /**\n * @public\n */\n public focus(opts?: { withoutOpenDropdown?: boolean }): void {\n if (this.props.disabled) {\n return;\n }\n\n if (opts?.withoutOpenDropdown) {\n this.canOpenPopup = false;\n }\n\n if (this.input) {\n this.input.focus();\n }\n }\n\n /**\n * Закрывает выпадашку выбора дня\n * @public\n */\n public close(): void {\n this.setState({ opened: false });\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ calendarBottomSeparatorBorder: 'none' }, theme)}>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DatePickerProps>): React.JSX.Element => {\n let picker = null;\n\n const { minDate, maxDate, menuPos, menuAlign } = this.getProps();\n\n const isMobile = this.isMobileLayout;\n\n if (this.state.opened) {\n if (isMobile) {\n picker = (\n <MobilePicker\n value={this.props.value}\n minDate={this.parseValueToDate(minDate)}\n maxDate={this.parseValueToDate(maxDate)}\n onValueChange={this.props.onValueChange}\n enableTodayLink={this.props.enableTodayLink}\n isHoliday={this.props.isHoliday}\n onCloseRequest={this.handleMobileCloseRequest}\n renderDay={props.renderDay}\n onMonthChange={props.onMonthChange}\n />\n );\n } else {\n picker = (\n <LocaleContext.Provider\n value={{\n locale: {\n Calendar: {\n months: this.locale.months,\n dayCellChooseDateAriaLabel: this.locale.dayCellChooseDateAriaLabel,\n selectMonthAriaLabel: this.locale.selectMonthAriaLabel,\n selectYearAriaLabel: this.locale.selectYearAriaLabel,\n selectChosenAriaLabel: this.locale.selectChosenAriaLabel,\n },\n },\n }}\n >\n <Popup\n opened\n hasShadow\n priority={ZIndex.priorities.PopupMenu}\n positions={getMenuPositions(menuPos, menuAlign)}\n data-tid={DatePickerDataTids.root}\n anchorElement={this.getParent()}\n margin={parseInt(this.theme.datePickerMenuOffsetY)}\n >\n <div\n data-tid={DatePickerDataTids.pickerRoot}\n className={this.styles.calendarWrapper(this.theme)}\n onMouseDown={(e) => e.preventDefault()}\n >\n <Calendar\n maxDate={this.parseValueToDate(maxDate)}\n minDate={this.parseValueToDate(minDate)}\n onValueChange={this.handleValueChange}\n isHoliday={this.props.isHoliday}\n value={this.parseValueToDate(this.props.value)}\n renderDay={this.props.renderDay}\n onMonthChange={this.props.onMonthChange}\n />\n {this.props.enableTodayLink && this.renderTodayLink()}{' '}\n </div>\n </Popup>\n </LocaleContext.Provider>\n );\n }\n }\n return (\n <label\n className={this.styles.root()}\n style={this.getRootStyle()}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n data-tid={DatePickerDataTids.label}\n >\n <DateInput\n id={this.props.id}\n {...filterProps(props, INPUT_PASS_PROPS)}\n ref={this.getInputRef}\n value={this.props.value || ''}\n width=\"100%\"\n withIcon\n minDate={minDate}\n maxDate={maxDate}\n onBlur={isMobile ? undefined : this.handleBlur}\n onFocus={this.handleFocus}\n onValueChange={this.props.onValueChange}\n onClick={this.openPickerPopup}\n onKeyDown={this.handleKeyDown}\n data-tid={DatePickerDataTids.input}\n />\n {this.state.canUseMobileNativeDatePicker ? (\n <NativeDateInput\n onValueChange={this.props.onValueChange}\n value={this.props.value || ''}\n minDate={minDate}\n maxDate={maxDate}\n disabled={this.props.disabled}\n />\n ) : (\n picker\n )}\n </label>\n );\n };\n\n private parseValueToDate(value?: Nullable<string>): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n const date = new InternalDate({ value });\n if (date.validate({ checks: [InternalDateValidateCheck.NotNull, InternalDateValidateCheck.Native] })) {\n return date.toString({ withPad: true });\n }\n\n return undefined;\n }\n\n private renderTodayLink() {\n const { order, separator } = this.locale;\n const today = new InternalDate({ order, separator })\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n return (\n <div style={{ margin: 8 }}>\n <Button\n aria-label={this.locale.todayAriaLabel}\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n width=\"100%\"\n onClick={() => {\n this.handleSelect(today);\n }}\n icon={<ArrowAUpIcon16Light />}\n >\n {this.locale.today}\n </Button>\n </div>\n );\n }\n\n public getParent = (): Nullable<Element> => {\n return getRootNode(this);\n };\n\n private getRootStyle = () => {\n const { width } = this.props;\n return isNonNullable(width) ? { width } : { minWidth: MIN_WIDTH };\n };\n\n private getInputRef = (ref: DateInput | null) => {\n this.input = ref;\n };\n\n private openPickerPopup = () => {\n this.setState({ opened: true });\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n\n if (!this.canOpenPopup) {\n this.canOpenPopup = true;\n } else {\n this.openPickerPopup();\n }\n\n this.focused = true;\n\n if (this.props.onFocus) {\n this.props.onFocus();\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent) => {\n if (!this.state.opened) {\n this.openPickerPopup();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n return;\n }\n\n this.focused = false;\n this.close();\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleValueChange = (value: string) => {\n this.handleSelect(value);\n this.blur();\n };\n\n private handleSelect = (value: string | null) => {\n if (!value) {\n return null;\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleMobileCloseRequest = () => {\n this.close();\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../components/DatePicker/DatePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.js';\nimport { NativeDateInput } from '../../internal/NativeDateInput/index.js';\nimport { Popup } from '../../internal/Popup/index.js';\nimport { ZIndex } from '../../internal/ZIndex/index.js';\nimport { isMobile } from '../../lib/client.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants.js';\nimport { InternalDate } from '../../lib/date/InternalDate.js';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter.js';\nimport { InternalDateOrder, InternalDateSeparator, InternalDateValidateCheck } from '../../lib/date/types.js';\nimport { filterProps } from '../../lib/filterProps.js';\nimport { getMenuPositions } from '../../lib/getMenuPositions.js';\nimport { locale } from '../../lib/locale/decorators.js';\nimport { LocaleContext } from '../../lib/locale/index.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { getRootNode, rootNode } from '../../lib/rootNode/index.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { isNonNullable } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { Button } from '../Button/index.js';\nimport { getTodayDate } from '../Calendar/CalendarUtils.js';\nimport type { CalendarDateShape, CalendarProps } from '../Calendar/index.js';\nimport { Calendar } from '../Calendar/index.js';\nimport { DateInput } from '../DateInput/index.js';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator.js';\nimport { getStyles } from './DatePicker.styles.js';\nimport type { DatePickerLocale } from './locale/index.js';\nimport { DatePickerLocaleHelper } from './locale/index.js';\nimport { MobilePicker } from './MobilePicker.js';\n\nconst INPUT_PASS_PROPS = {\n autoFocus: true,\n disabled: true,\n warning: true,\n error: true,\n size: true,\n onKeyDown: true,\n};\n\nexport const MIN_WIDTH = 120;\n\nexport interface DatePickerProps\n extends\n Pick<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate' | 'renderDay' | 'onMonthChange'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n /** Устанавливает фокус на поле с датой после окончания загрузки страницы. */\n\n autoFocus?: boolean;\n\n /** Блокирует поле с датой. Поле становится недоступно для редактирования. */\n disabled?: boolean;\n\n /** Отображает в календаре кнопку «Сегодня», которая меняет выбранное значение на текущую дату. */\n enableTodayLink?: boolean;\n\n /** Меняет визуальное отображение поля на состояние «ошибка». */\n error?: boolean;\n\n /** Расположение календаря — над или под полем. */\n menuPos?: 'top' | 'bottom';\n\n /** Выравнивание выпадающего окна с календарём. */\n menuAlign?: 'left' | 'right';\n\n /** Размер поля с датой. */\n size?: SizeProp;\n\n /**\n * Значение поля в формате `dd.mm.yyyy`.\n */\n value?: string | null;\n\n /** Меняет визуальное отображение поля на состояние «предупреждение». */\n warning?: boolean;\n\n /** Ширина поля с датой. */\n width?: number | string;\n\n /** Задает функцию, которая вызывается при потере датапикером фокуса. */\n onBlur?: () => void;\n\n /** Задает функцию, вызывающуюся при изменении value.\n * @param value - строка в формате `dd.mm.yyyy`. */\n onValueChange: (value: string) => void;\n\n /** Задает функцию, которая вызывается при получении датапикером фокуса. */\n onFocus?: () => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onKeyDown?: (e: React.KeyboardEvent<any>) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (e: React.MouseEvent<any>) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent<any>) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent<any>) => void;\n\n /** Позволяет использовать на мобильных устройствах нативный календарь для выбора дат.\n * На iOS нативный календарь не умеет работать с minDate и maxDate. */\n useMobileNativeDatePicker?: boolean;\n}\n\nexport interface DatePickerState {\n opened: boolean;\n canUseMobileNativeDatePicker: boolean;\n today: CalendarDateShape;\n}\n\nexport const DatePickerDataTids = {\n root: 'DatePicker__root',\n input: 'DatePicker__input',\n label: 'DatePicker__label',\n pickerRoot: 'Picker__root',\n pickerTodayWrapper: 'Picker__todayWrapper',\n} as const;\n\ntype DefaultProps = Required<Pick<DatePickerProps, 'minDate' | 'maxDate'>>;\n\n/**\n * Поле с датой помогает вводить дату с клавиатуры или выбирать её с помощью мыши.\n *\n */\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DatePicker extends React.PureComponent<DatePickerProps, DatePickerState> {\n public static __KONTUR_REACT_UI__ = 'DatePicker';\n public static displayName = 'DatePicker';\n\n public static defaultProps: DefaultProps = {\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n };\n\n private getProps = createPropsGetter(DatePicker.defaultProps);\n private emotion!: Emotion;\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private readonly locale!: DatePickerLocale;\n private canOpenPopup = true;\n\n public static validate = (value: Nullable<string>, range: { minDate?: string; maxDate?: string } = {}): boolean => {\n if (!value) {\n return false;\n }\n\n const { minDate = MIN_FULLDATE, maxDate = MAX_FULLDATE } = range;\n const internalDate = new InternalDate({\n order: InternalDateOrder.DMY,\n separator: InternalDateSeparator.Dot,\n })\n .setRangeStart(new InternalDate({ value: minDate }))\n .setRangeEnd(new InternalDate({ value: maxDate }))\n .parseValue(value);\n\n return internalDate.validate({\n checks: [\n InternalDateValidateCheck.NotNull,\n InternalDateValidateCheck.Number,\n InternalDateValidateCheck.Native,\n InternalDateValidateCheck.Limits,\n InternalDateValidateCheck.Range,\n ],\n });\n };\n\n public state: DatePickerState = { opened: false, canUseMobileNativeDatePicker: false, today: getTodayDate() };\n\n private input: DateInput | null = null;\n private focused = false;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private isMobileLayout!: boolean;\n\n public componentDidMount() {\n if (this.props.useMobileNativeDatePicker && isMobile) {\n this.setState({\n canUseMobileNativeDatePicker: true,\n });\n }\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate(prevProps: DatePickerProps, prevState: DatePickerState) {\n const { disabled } = this.props;\n const { opened } = this.state;\n if (disabled && opened) {\n this.close();\n }\n\n if (prevState.opened && !opened && this.isMobileLayout) {\n this.handleBlur();\n }\n }\n\n /**\n * Программно снимает фокус с поля.\n * @public\n */\n public blur(): void {\n if (this.input) {\n this.input.blur();\n }\n this.handleBlur();\n }\n\n /**\n * Программно устанавливает фокус на поле.\n * @public\n */\n public focus(opts?: { withoutOpenDropdown?: boolean }): void {\n if (this.props.disabled) {\n return;\n }\n\n if (opts?.withoutOpenDropdown) {\n this.canOpenPopup = false;\n }\n\n if (this.input) {\n this.input.focus();\n }\n }\n\n /**\n * Закрывает раскрывающийся блок календаря с выбором дня.\n * @public\n */\n public close(): void {\n this.setState({ opened: false });\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ calendarBottomSeparatorBorder: 'none' }, theme)}>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DatePickerProps>): React.JSX.Element => {\n let picker = null;\n\n const { minDate, maxDate, menuPos, menuAlign } = this.getProps();\n\n const isMobile = this.isMobileLayout;\n\n if (this.state.opened) {\n if (isMobile) {\n picker = (\n <MobilePicker\n value={this.props.value}\n minDate={this.parseValueToDate(minDate)}\n maxDate={this.parseValueToDate(maxDate)}\n onValueChange={this.props.onValueChange}\n enableTodayLink={this.props.enableTodayLink}\n isHoliday={this.props.isHoliday}\n onCloseRequest={this.handleMobileCloseRequest}\n renderDay={props.renderDay}\n onMonthChange={props.onMonthChange}\n />\n );\n } else {\n picker = (\n <LocaleContext.Provider\n value={{\n locale: {\n Calendar: {\n months: this.locale.months,\n dayCellChooseDateAriaLabel: this.locale.dayCellChooseDateAriaLabel,\n selectMonthAriaLabel: this.locale.selectMonthAriaLabel,\n selectYearAriaLabel: this.locale.selectYearAriaLabel,\n selectChosenAriaLabel: this.locale.selectChosenAriaLabel,\n },\n },\n }}\n >\n <Popup\n opened\n hasShadow\n priority={ZIndex.priorities.PopupMenu}\n positions={getMenuPositions(menuPos, menuAlign)}\n data-tid={DatePickerDataTids.root}\n anchorElement={this.getParent()}\n margin={parseInt(this.theme.datePickerMenuOffsetY)}\n >\n <div\n data-tid={DatePickerDataTids.pickerRoot}\n className={this.styles.calendarWrapper(this.theme)}\n onMouseDown={(e) => e.preventDefault()}\n >\n <Calendar\n maxDate={this.parseValueToDate(maxDate)}\n minDate={this.parseValueToDate(minDate)}\n onValueChange={this.handleValueChange}\n isHoliday={this.props.isHoliday}\n value={this.parseValueToDate(this.props.value)}\n renderDay={this.props.renderDay}\n onMonthChange={this.props.onMonthChange}\n />\n {this.props.enableTodayLink && this.renderTodayLink()}{' '}\n </div>\n </Popup>\n </LocaleContext.Provider>\n );\n }\n }\n return (\n <label\n className={this.styles.root()}\n style={this.getRootStyle()}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n data-tid={DatePickerDataTids.label}\n >\n <DateInput\n id={this.props.id}\n {...filterProps(props, INPUT_PASS_PROPS)}\n ref={this.getInputRef}\n value={this.props.value || ''}\n width=\"100%\"\n withIcon\n minDate={minDate}\n maxDate={maxDate}\n onBlur={isMobile ? undefined : this.handleBlur}\n onFocus={this.handleFocus}\n onValueChange={this.props.onValueChange}\n onClick={this.openPickerPopup}\n onKeyDown={this.handleKeyDown}\n data-tid={DatePickerDataTids.input}\n />\n {this.state.canUseMobileNativeDatePicker ? (\n <NativeDateInput\n onValueChange={this.props.onValueChange}\n value={this.props.value || ''}\n minDate={minDate}\n maxDate={maxDate}\n disabled={this.props.disabled}\n />\n ) : (\n picker\n )}\n </label>\n );\n };\n\n private parseValueToDate(value?: Nullable<string>): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n const date = new InternalDate({ value });\n if (date.validate({ checks: [InternalDateValidateCheck.NotNull, InternalDateValidateCheck.Native] })) {\n return date.toString({ withPad: true });\n }\n\n return undefined;\n }\n\n private renderTodayLink() {\n const { order, separator } = this.locale;\n const today = new InternalDate({ order, separator })\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n return (\n <div style={{ margin: 8 }}>\n <Button\n aria-label={this.locale.todayAriaLabel}\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n width=\"100%\"\n onClick={() => {\n this.handleSelect(today);\n }}\n icon={<ArrowAUpIcon16Light />}\n >\n {this.locale.today}\n </Button>\n </div>\n );\n }\n\n public getParent = (): Nullable<Element> => {\n return getRootNode(this);\n };\n\n private getRootStyle = () => {\n const { width } = this.props;\n return isNonNullable(width) ? { width } : { minWidth: MIN_WIDTH };\n };\n\n private getInputRef = (ref: DateInput | null) => {\n this.input = ref;\n };\n\n private openPickerPopup = () => {\n this.setState({ opened: true });\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n\n if (!this.canOpenPopup) {\n this.canOpenPopup = true;\n } else {\n this.openPickerPopup();\n }\n\n this.focused = true;\n\n if (this.props.onFocus) {\n this.props.onFocus();\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent) => {\n if (!this.state.opened) {\n this.openPickerPopup();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n return;\n }\n\n this.focused = false;\n this.close();\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleValueChange = (value: string) => {\n this.handleSelect(value);\n this.blur();\n };\n\n private handleSelect = (value: string | null) => {\n if (!value) {\n return null;\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleMobileCloseRequest = () => {\n this.close();\n };\n}\n"]}
|
|
@@ -40,7 +40,7 @@ export var MobilePicker = function (props) {
|
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
42
|
return (React.createElement(ThemeContext.Provider, { value: theme },
|
|
43
|
-
React.createElement(MobilePopup, { opened: true,
|
|
43
|
+
React.createElement(MobilePopup, { opened: true, headerChildComponent: React.createElement(DateInput, { value: props.value || '', width: "100%", withIcon: true, ref: inputRef, minDate: props.minDate, maxDate: props.maxDate, onValueChange: props.onValueChange, size: "medium", warning: props.warning, error: props.error, "data-tid": MobilePickerDataTids.input }), footerChildComponent: props.enableTodayLink && (React.createElement(Button, { size: "medium", onClick: onTodayClick, "data-tid": MobilePickerDataTids.today }, locale.today)), onCloseRequest: props.onCloseRequest },
|
|
44
44
|
React.createElement(Calendar, { ref: calendarRef, value: props.value, className: styles.calendarRoot(), minDate: props.minDate, maxDate: props.maxDate, onValueChange: onValueChange, isHoliday: props.isHoliday, renderDay: props.renderDay, onMonthChange: props.onMonthChange }))));
|
|
45
45
|
};
|
|
46
46
|
//# sourceMappingURL=MobilePicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobilePicker.js","sourceRoot":"","sources":["../../../components/DatePicker/MobilePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE7E,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,CAAC,IAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,qBAAqB;IAC5B,KAAK,EAAE,qBAAqB;CACpB,CAAC;AAkBX,MAAM,CAAC,IAAM,YAAY,GAAgC,UAAC,KAAK;IAC7D,IAAM,MAAM,GAAG,mBAAmB,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;IACzE,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,IAAM,KAAK,GAAG,oBAAoB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;IAE7D,IAAM,WAAW,GAAG,MAAM,CAAW,IAAI,CAAC,CAAC;IAC3C,IAAM,QAAQ,GAAG,MAAM,CAAY,IAAI,CAAC,CAAC;IAElC,IAAA,KAAgC,QAAQ,CAAC,cAAM,OAAA,YAAY,EAAE,EAAd,CAAc,CAAC,GAAlC,EAAnB,WAAW,WAAA,EAAE,IAAI,UAAE,CAAmC;IACtE,IAAM,KAAK,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAEjD,IAAM,aAAa,GAAG,UAAC,IAAY;;QACjC,MAAA,KAAK,CAAC,aAAa,sDAAG,IAAI,CAAC,CAAC;QAC5B,MAAA,KAAK,CAAC,cAAc,qDAAI,CAAC;IAC3B,CAAC,CAAC;IAEF,eAAe,CAAC;QACd,8CAA8C;QAC9C,UAAU,CAAC;;YACT,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,YAAY,GAAG;QACnB,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK;QACjC,oBAAC,WAAW,IACV,MAAM,QACN,
|
|
1
|
+
{"version":3,"file":"MobilePicker.js","sourceRoot":"","sources":["../../../components/DatePicker/MobilePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useContext, useLayoutEffect, useRef, useState } from 'react';\n\nimport { MobilePopup } from '../../internal/MobilePopup/index.js';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl.js';\nimport { useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { Button } from '../Button/index.js';\nimport { getMonthInHumanFormat, getTodayDate } from '../Calendar/CalendarUtils.js';\nimport { Calendar } from '../Calendar/index.js';\nimport { DateInput } from '../DateInput/index.js';\nimport type { DatePickerProps } from './DatePicker.js';\nimport { getMobilePickerTheme } from './getMobilePickerTheme.js';\nimport { DatePickerLocaleHelper } from './locale/index.js';\nimport { getStyles } from './MobilePicker.styles.js';\n\nexport const MobilePickerDataTids = {\n input: 'MobilePicker__input',\n today: 'MobilePicker__today',\n} as const;\n\nexport interface MobilePickerProps extends Pick<\n DatePickerProps,\n | 'error'\n | 'warning'\n | 'value'\n | 'minDate'\n | 'maxDate'\n | 'onValueChange'\n | 'isHoliday'\n | 'enableTodayLink'\n | 'renderDay'\n | 'onMonthChange'\n> {\n onCloseRequest?: () => void;\n}\n\nexport const MobilePicker: React.FC<MobilePickerProps> = (props) => {\n const locale = useLocaleForControl('DatePicker', DatePickerLocaleHelper);\n const styles = useStyles(getStyles);\n const theme = getMobilePickerTheme(useContext(ThemeContext));\n\n const calendarRef = useRef<Calendar>(null);\n const inputRef = useRef<DateInput>(null);\n\n const [{ month: monthNative, year }] = useState(() => getTodayDate());\n const month = getMonthInHumanFormat(monthNative);\n\n const onValueChange = (date: string) => {\n props.onValueChange?.(date);\n props.onCloseRequest?.();\n };\n\n useLayoutEffect(() => {\n // fix DateInput flushSync warning in React 18\n setTimeout(() => {\n inputRef.current?.focus();\n });\n }, []);\n\n const onTodayClick = () => {\n if (calendarRef.current) {\n calendarRef.current.scrollToMonth(month, year);\n }\n };\n\n return (\n <ThemeContext.Provider value={theme}>\n <MobilePopup\n opened\n headerChildComponent={\n <DateInput\n value={props.value || ''}\n width=\"100%\"\n withIcon\n ref={inputRef}\n minDate={props.minDate}\n maxDate={props.maxDate}\n onValueChange={props.onValueChange}\n size=\"medium\"\n warning={props.warning}\n error={props.error}\n data-tid={MobilePickerDataTids.input}\n />\n }\n footerChildComponent={\n props.enableTodayLink && (\n <Button size=\"medium\" onClick={onTodayClick} data-tid={MobilePickerDataTids.today}>\n {locale.today}\n </Button>\n )\n }\n onCloseRequest={props.onCloseRequest}\n >\n <Calendar\n ref={calendarRef}\n value={props.value}\n className={styles.calendarRoot()}\n minDate={props.minDate}\n maxDate={props.maxDate}\n onValueChange={onValueChange}\n isHoliday={props.isHoliday}\n renderDay={props.renderDay}\n onMonthChange={props.onMonthChange}\n />\n </MobilePopup>\n </ThemeContext.Provider>\n );\n};\n"]}
|
|
@@ -21,9 +21,9 @@ export declare const DateRangePickerDataTids: {
|
|
|
21
21
|
};
|
|
22
22
|
export interface DateRangePickerProps extends CommonProps, Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>, Pick<DatePickerProps, 'size' | 'width' | 'renderDay' | 'menuPos' | 'menuAlign' | 'useMobileNativeDatePicker' | 'enableTodayLink' | 'onMonthChange'> {
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
25
|
-
* Если передать значение `focused`
|
|
26
|
-
* Если передать ссылку на DOM элемент или ref
|
|
24
|
+
* Элемент, относительно которого открывается календарь.
|
|
25
|
+
* Если передать значение `focused` — меню будет открываться у зафокусированного элемента.
|
|
26
|
+
* Если передать ссылку на DOM элемент или ref — меню откроется относительно переданного элемента.
|
|
27
27
|
*/
|
|
28
28
|
menuAnchorElement?: 'focused' | Element | React.ReactNode | React.RefObject<any>;
|
|
29
29
|
/**
|
|
@@ -40,6 +40,7 @@ export interface DateRangePickerRef extends InstanceWithRootNode {
|
|
|
40
40
|
scrollToMonth: (month: number, year: number) => void;
|
|
41
41
|
}
|
|
42
42
|
export type DateRangePicker = DateRangePickerRef;
|
|
43
|
+
/** Поле выбора периода дат. */
|
|
43
44
|
export declare const DateRangePicker: {
|
|
44
45
|
Start: import("../../lib/forwardRefAndName.js").ReactUIComponentWithRef<DateInput, {
|
|
45
46
|
style?: React.CSSProperties | undefined;
|
|
@@ -58,6 +58,7 @@ export var DateRangePickerDataTids = {
|
|
|
58
58
|
rangeEnd: 'DateRangePicker__rangeEnd',
|
|
59
59
|
};
|
|
60
60
|
var DayDateAttribute = 'data-date-range-picker-day';
|
|
61
|
+
/** Поле выбора периода дат. */
|
|
61
62
|
export var DateRangePicker = Object.assign({
|
|
62
63
|
Start: DateRangePickerStart,
|
|
63
64
|
End: DateRangePickerEnd,
|
|
@@ -145,7 +146,7 @@ export var DateRangePicker = Object.assign({
|
|
|
145
146
|
return;
|
|
146
147
|
}
|
|
147
148
|
// fix DateInput flushSync warning in React 18
|
|
148
|
-
setTimeout(function () {
|
|
149
|
+
var timeoutId = setTimeout(function () {
|
|
149
150
|
var _a, _b, _c, _d;
|
|
150
151
|
var isStart = focusInput === 'start';
|
|
151
152
|
var currentFieldRef;
|
|
@@ -171,7 +172,8 @@ export var DateRangePicker = Object.assign({
|
|
|
171
172
|
currentFieldRef = isStart ? startRef : endRef;
|
|
172
173
|
(_d = currentFieldRef.current) === null || _d === void 0 ? void 0 : _d.focus();
|
|
173
174
|
});
|
|
174
|
-
|
|
175
|
+
return function () { return clearTimeout(timeoutId); };
|
|
176
|
+
}, [focusInput, isMobile, props.useMobileNativeDatePicker]);
|
|
175
177
|
var dateRangePickerContextProps = {
|
|
176
178
|
startValue: startValue,
|
|
177
179
|
startOptional: startOptional,
|
|
@@ -215,7 +217,7 @@ export var DateRangePicker = Object.assign({
|
|
|
215
217
|
};
|
|
216
218
|
var renderMobileCalendar = function (theme) {
|
|
217
219
|
var _a, _b;
|
|
218
|
-
return (React.createElement(MobilePopup, { opened: true,
|
|
220
|
+
return (React.createElement(MobilePopup, { opened: true, headerChildComponent: React.createElement("div", { className: cx(styles.root(theme), styles.inputWrapperWidthFull()) },
|
|
219
221
|
React.createElement(DateInput, { withIcon: true, value: startValue, width: "auto", size: "medium", className: cx((_a = {}, _a[styles.inputVisuallyFocus(theme)] = focusInput === 'start', _a)), disabled: startDisabled, onValueChange: setStartValue, onFocus: function () { return setFocusInput('start'); }, ref: mobileStartRef, "data-tid": DateRangePickerDataTids.mobileStart }),
|
|
220
222
|
React.createElement(DateRangePicker.Separator, null),
|
|
221
223
|
React.createElement(DateInput, { withIcon: true, value: endValue, width: "auto", size: "medium", className: cx((_b = {}, _b[styles.inputVisuallyFocus(theme)] = focusInput === 'end', _b)), disabled: endDisabled, onValueChange: setEndValue, onFocus: function () { return setFocusInput('end'); }, ref: mobileEndRef, "data-tid": DateRangePickerDataTids.mobileEnd })), onCloseRequest: function () { return close(); }, footerChildComponent: renderButtons() },
|
|
@@ -234,7 +236,7 @@ export var DateRangePicker = Object.assign({
|
|
|
234
236
|
}
|
|
235
237
|
return getRootNode(startRef.current) || getRootNode(endRef.current) || getRootNode(dateRangePickerRef.current);
|
|
236
238
|
};
|
|
237
|
-
var renderDesktopCalendar = function (theme) { return (React.createElement(Popup, { opened: true, hasShadow: true, priority: ZIndex.priorities.PopupMenu, positions: getMenuPositions(props.menuPos, props.menuAlign), "data-tid": DateRangePickerDataTids.
|
|
239
|
+
var renderDesktopCalendar = function (theme) { return (React.createElement(Popup, { opened: true, hasShadow: true, priority: ZIndex.priorities.PopupMenu, positions: getMenuPositions(props.menuPos, props.menuAlign), "data-tid": DateRangePickerDataTids.popup, anchorElement: getAnchorElement(), margin: parseInt(theme.datePickerMenuOffsetY) },
|
|
238
240
|
React.createElement("div", { className: styles.calendarWrapper(theme), onMouseDown: function (e) { return e.preventDefault(); }, onMouseMove: handleCalendarRangeMouseMove },
|
|
239
241
|
renderCalendar(theme),
|
|
240
242
|
renderButtons()))); };
|