@skbkontur/react-ui 4.21.1 → 4.21.2

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 CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.21.2](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@4.21.1...@skbkontur/react-ui@4.21.2) (2024-03-13)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **DatePicker:** prop 'width' is not required ([#3374](https://github.com/skbkontur/retail-ui/issues/3374)) ([becfa87](https://github.com/skbkontur/retail-ui/commit/becfa8712fc648ee216ad22fdd46466c435627cf))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [4.21.1](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@4.22.0-next.0...@skbkontur/react-ui@4.21.1) (2024-03-12)
7
18
 
8
19
 
@@ -81,7 +81,7 @@ export declare class DatePicker extends React.PureComponent<DatePickerProps, Dat
81
81
  */
82
82
  value: PropTypes.Requireable<string>;
83
83
  warning: PropTypes.Requireable<boolean>;
84
- width: PropTypes.Validator<string | number>;
84
+ width: PropTypes.Requireable<string | number>;
85
85
  onBlur: PropTypes.Requireable<(...args: any[]) => any>;
86
86
  onValueChange: PropTypes.Validator<(...args: any[]) => any>;
87
87
  onFocus: PropTypes.Requireable<(...args: any[]) => any>;
@@ -474,4 +474,4 @@ DatePicker = (_dec = (0, _decorators.locale)('DatePicker', _locale2.DatePickerLo
474
474
  * Минимальная дата в календаре.
475
475
  */minDate: _propTypes.default.string.isRequired, /**
476
476
  * Строка формата `dd.mm.yyyy`
477
- */value: _propTypes.default.string, warning: _propTypes.default.bool, width: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired, onBlur: _propTypes.default.func, onValueChange: _propTypes.default.func.isRequired, onFocus: _propTypes.default.func, onKeyDown: _propTypes.default.func, onMouseEnter: _propTypes.default.func, onMouseLeave: _propTypes.default.func, onMouseOver: _propTypes.default.func, isHoliday: _propTypes.default.func }, _class2.defaultProps = { minDate: _constants.MIN_FULLDATE, maxDate: _constants.MAX_FULLDATE }, _class2.validate = function (value, range) {if (range === void 0) {range = {};}if (!value) {return false;}var _range = range,_range$minDate = _range.minDate,minDate = _range$minDate === void 0 ? _constants.MIN_FULLDATE : _range$minDate,_range$maxDate = _range.maxDate,maxDate = _range$maxDate === void 0 ? _constants.MAX_FULLDATE : _range$maxDate;var internalDate = new _InternalDate.InternalDate({ order: _types.InternalDateOrder.DMY, separator: _types.InternalDateSeparator.Dot }).setRangeStart(new _InternalDate.InternalDate({ value: minDate })).setRangeEnd(new _InternalDate.InternalDate({ value: maxDate })).parseValue(value);return internalDate.validate({ checks: [_types.InternalDateValidateCheck.NotNull, _types.InternalDateValidateCheck.Number, _types.InternalDateValidateCheck.Native, _types.InternalDateValidateCheck.Limits, _types.InternalDateValidateCheck.Range] });}, _temp)) || _class) || _class);exports.DatePicker = DatePicker;
477
+ */value: _propTypes.default.string, warning: _propTypes.default.bool, width: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]), onBlur: _propTypes.default.func, onValueChange: _propTypes.default.func.isRequired, onFocus: _propTypes.default.func, onKeyDown: _propTypes.default.func, onMouseEnter: _propTypes.default.func, onMouseLeave: _propTypes.default.func, onMouseOver: _propTypes.default.func, isHoliday: _propTypes.default.func }, _class2.defaultProps = { minDate: _constants.MIN_FULLDATE, maxDate: _constants.MAX_FULLDATE }, _class2.validate = function (value, range) {if (range === void 0) {range = {};}if (!value) {return false;}var _range = range,_range$minDate = _range.minDate,minDate = _range$minDate === void 0 ? _constants.MIN_FULLDATE : _range$minDate,_range$maxDate = _range.maxDate,maxDate = _range$maxDate === void 0 ? _constants.MAX_FULLDATE : _range$maxDate;var internalDate = new _InternalDate.InternalDate({ order: _types.InternalDateOrder.DMY, separator: _types.InternalDateSeparator.Dot }).setRangeStart(new _InternalDate.InternalDate({ value: minDate })).setRangeEnd(new _InternalDate.InternalDate({ value: maxDate })).parseValue(value);return internalDate.validate({ checks: [_types.InternalDateValidateCheck.NotNull, _types.InternalDateValidateCheck.Number, _types.InternalDateValidateCheck.Native, _types.InternalDateValidateCheck.Limits, _types.InternalDateValidateCheck.Range] });}, _temp)) || _class) || _class);exports.DatePicker = DatePicker;
@@ -1 +1 @@
1
- {"version":3,"sources":["DatePicker.tsx"],"names":["INPUT_PASS_PROPS","autoFocus","disabled","warning","error","size","onKeyDown","MIN_WIDTH","DatePickerDataTids","root","input","label","pickerRoot","pickerTodayWrapper","DatePicker","DatePickerLocaleHelper","rootNode","getProps","defaultProps","calendar","state","opened","canUseMobileNativeDatePicker","today","focused","renderMain","props","picker","minDate","maxDate","locale","Calendar","months","dayCellChooseDateAriaLabel","selectMonthAriaLabel","selectYearAriaLabel","selectChosenAriaLabel","menuPos","getParent","parseInt","theme","datePickerMenuOffsetY","menuAlign","styles","calendarWrapper","e","preventDefault","c","parseValueToDate","handleValueChange","isHoliday","value","enableTodayLink","renderTodayLink","getRootStyle","onMouseEnter","onMouseLeave","onMouseOver","getInputRef","handleBlur","handleFocus","onValueChange","handleSelectToday","handleSelect","month","year","scrollToMonth","width","minWidth","ref","setState","onFocus","close","onBlur","blur","componentDidMount","useMobileNativeDatePicker","isMobile","focus","componentDidUpdate","render","ThemeFactory","create","calendarBottomSeparatorBorder","setRootNode","undefined","date","InternalDate","validate","checks","InternalDateValidateCheck","NotNull","Native","toString","withPad","order","separator","setComponents","InternalDateGetter","getTodayComponents","withSeparator","margin","todayAriaLabel","todayLinkWrapper","React","PureComponent","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","string","isRequired","oneOf","oneOfType","number","func","MIN_FULLDATE","MAX_FULLDATE","range","internalDate","InternalDateOrder","DMY","InternalDateSeparator","Dot","setRangeStart","setRangeEnd","parseValue","Number","Limits","Range"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { LocaleContext } from '../../lib/locale';\nimport { locale } from '../../lib/locale/decorators';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { cx } from '../../lib/theming/Emotion';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateOrder, InternalDateSeparator, InternalDateValidateCheck } from '../../lib/date/types';\nimport { Nullable } from '../../typings/utility-types';\nimport { DateInput } from '../DateInput';\nimport { DropdownContainer, DropdownContainerProps } from '../../internal/DropdownContainer';\nimport { filterProps } from '../../lib/filterProps';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { isMobile } from '../../lib/client';\nimport { NativeDateInput } from '../../internal/NativeDateInput';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isNonNullable } from '../../lib/utils';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Calendar, CalendarDateShape, CalendarProps } from '../Calendar';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { Button } from '../Button';\nimport { getTodayDate } from '../Calendar/CalendarUtils';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './DatePicker.styles';\nimport { DatePickerLocale, DatePickerLocaleHelper } from './locale';\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 Pick<DropdownContainerProps, 'menuPos'>,\n Pick<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate'>,\n CommonProps {\n autoFocus?: boolean;\n disabled?: boolean;\n /**\n * Отвечает за отображение кнопки \"Сегодня\".\n */\n enableTodayLink?: boolean;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n menuAlign?: 'left' | 'right';\n size?: SizeProp;\n value?: string | null;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n width?: number | string;\n onBlur?: () => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange: (value: string) => void;\n onFocus?: () => void;\n onKeyDown?: (e: React.KeyboardEvent<any>) => void;\n onMouseEnter?: (e: React.MouseEvent<any>) => void;\n onMouseLeave?: (e: React.MouseEvent<any>) => void;\n onMouseOver?: (e: React.MouseEvent<any>) => void;\n /**\n * Использовать на мобильных устройствах нативный календарь для выбора дат.\n *\n * - На iOS нативный календарь не умеет работать с minDate и maxDate\n */\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@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DatePicker extends React.PureComponent<DatePickerProps, DatePickerState> {\n public static __KONTUR_REACT_UI__ = 'DatePicker';\n\n public static propTypes = {\n autoFocus: PropTypes.bool,\n\n disabled: PropTypes.bool,\n\n /**\n * Включает кнопку сегодня в календаре\n */\n enableTodayLink: PropTypes.bool,\n\n error: PropTypes.bool,\n\n /**\n * Максимальная дата в календаре.\n */\n maxDate: PropTypes.string.isRequired,\n\n menuAlign: PropTypes.oneOf(['left', 'right']),\n\n /**\n * Минимальная дата в календаре.\n */\n minDate: PropTypes.string.isRequired,\n\n /**\n * Строка формата `dd.mm.yyyy`\n */\n value: PropTypes.string,\n\n warning: PropTypes.bool,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n\n onBlur: PropTypes.func,\n\n onValueChange: PropTypes.func.isRequired,\n\n onFocus: PropTypes.func,\n\n onKeyDown: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n\n isHoliday: PropTypes.func,\n };\n\n public static defaultProps: DefaultProps = {\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n };\n\n private getProps = createPropsGetter(DatePicker.defaultProps);\n private theme!: Theme;\n private calendar: Calendar | null = null;\n private readonly locale!: DatePickerLocale;\n\n public static validate = (value: Nullable<string>, range: { minDate?: string; maxDate?: string } = {}) => {\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 private setRootNode!: TSetRootNode;\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() {\n const { disabled } = this.props;\n const { opened } = this.state;\n if (disabled && opened) {\n this.close();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.input) {\n this.input.blur();\n }\n this.handleBlur();\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.focus();\n }\n this.handleFocus();\n }\n\n /**\n * Закрывает выпадашку выбора дня\n * @public\n */\n public close() {\n this.setState({ opened: false });\n }\n\n public render() {\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.props}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DatePickerProps>) => {\n let picker = null;\n\n const { minDate, maxDate } = this.getProps();\n\n if (this.state.opened) {\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 <DropdownContainer\n menuPos={this.props.menuPos}\n data-tid={DatePickerDataTids.root}\n getParent={this.getParent}\n offsetY={parseInt(this.theme.datePickerMenuOffsetY)}\n align={this.props.menuAlign}\n >\n <div\n data-tid={DatePickerDataTids.pickerRoot}\n className={styles.calendarWrapper(this.theme)}\n onMouseDown={(e) => e.preventDefault()}\n >\n <Calendar\n ref={(c) => (this.calendar = c)}\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 />\n {this.props.enableTodayLink && this.renderTodayLink()}{' '}\n </div>\n </DropdownContainer>\n </LocaleContext.Provider>\n );\n }\n\n return (\n <label\n className={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 {...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={this.handleBlur}\n onFocus={this.handleFocus}\n onValueChange={this.props.onValueChange}\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 {!this.state.canUseMobileNativeDatePicker && picker}\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 if (isTheme2022(this.theme)) {\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={this.handleSelectToday(today)}\n icon={<ArrowAUpIcon16Light />}\n >\n {this.locale.today}\n </Button>\n </div>\n );\n }\n\n return (\n <button\n aria-label={this.locale.todayAriaLabel}\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n className={cx({\n [styles.todayLinkWrapper(this.theme)]: true,\n })}\n onClick={this.handleSelectToday(today)}\n tabIndex={-1}\n >\n {`${this.locale.today} ${today}`}\n </button>\n );\n }\n\n private handleSelectToday = (today: string) => () => {\n this.handleSelect(today);\n\n if (this.calendar) {\n const { month, year } = this.state.today;\n this.calendar.scrollToMonth(month, year);\n }\n };\n\n public getParent = () => {\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 handleFocus = () => {\n if (this.focused) {\n return;\n }\n\n this.focused = true;\n\n this.setState({ opened: true });\n\n if (this.props.onFocus) {\n this.props.onFocus();\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"]}
1
+ {"version":3,"sources":["DatePicker.tsx"],"names":["INPUT_PASS_PROPS","autoFocus","disabled","warning","error","size","onKeyDown","MIN_WIDTH","DatePickerDataTids","root","input","label","pickerRoot","pickerTodayWrapper","DatePicker","DatePickerLocaleHelper","rootNode","getProps","defaultProps","calendar","state","opened","canUseMobileNativeDatePicker","today","focused","renderMain","props","picker","minDate","maxDate","locale","Calendar","months","dayCellChooseDateAriaLabel","selectMonthAriaLabel","selectYearAriaLabel","selectChosenAriaLabel","menuPos","getParent","parseInt","theme","datePickerMenuOffsetY","menuAlign","styles","calendarWrapper","e","preventDefault","c","parseValueToDate","handleValueChange","isHoliday","value","enableTodayLink","renderTodayLink","getRootStyle","onMouseEnter","onMouseLeave","onMouseOver","getInputRef","handleBlur","handleFocus","onValueChange","handleSelectToday","handleSelect","month","year","scrollToMonth","width","minWidth","ref","setState","onFocus","close","onBlur","blur","componentDidMount","useMobileNativeDatePicker","isMobile","focus","componentDidUpdate","render","ThemeFactory","create","calendarBottomSeparatorBorder","setRootNode","undefined","date","InternalDate","validate","checks","InternalDateValidateCheck","NotNull","Native","toString","withPad","order","separator","setComponents","InternalDateGetter","getTodayComponents","withSeparator","margin","todayAriaLabel","todayLinkWrapper","React","PureComponent","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","string","isRequired","oneOf","oneOfType","number","func","MIN_FULLDATE","MAX_FULLDATE","range","internalDate","InternalDateOrder","DMY","InternalDateSeparator","Dot","setRangeStart","setRangeEnd","parseValue","Number","Limits","Range"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { LocaleContext } from '../../lib/locale';\nimport { locale } from '../../lib/locale/decorators';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { cx } from '../../lib/theming/Emotion';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateOrder, InternalDateSeparator, InternalDateValidateCheck } from '../../lib/date/types';\nimport { Nullable } from '../../typings/utility-types';\nimport { DateInput } from '../DateInput';\nimport { DropdownContainer, DropdownContainerProps } from '../../internal/DropdownContainer';\nimport { filterProps } from '../../lib/filterProps';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { isMobile } from '../../lib/client';\nimport { NativeDateInput } from '../../internal/NativeDateInput';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isNonNullable } from '../../lib/utils';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Calendar, CalendarDateShape, CalendarProps } from '../Calendar';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { Button } from '../Button';\nimport { getTodayDate } from '../Calendar/CalendarUtils';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './DatePicker.styles';\nimport { DatePickerLocale, DatePickerLocaleHelper } from './locale';\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 Pick<DropdownContainerProps, 'menuPos'>,\n Pick<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate'>,\n CommonProps {\n autoFocus?: boolean;\n disabled?: boolean;\n /**\n * Отвечает за отображение кнопки \"Сегодня\".\n */\n enableTodayLink?: boolean;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n menuAlign?: 'left' | 'right';\n size?: SizeProp;\n value?: string | null;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n width?: number | string;\n onBlur?: () => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange: (value: string) => void;\n onFocus?: () => void;\n onKeyDown?: (e: React.KeyboardEvent<any>) => void;\n onMouseEnter?: (e: React.MouseEvent<any>) => void;\n onMouseLeave?: (e: React.MouseEvent<any>) => void;\n onMouseOver?: (e: React.MouseEvent<any>) => void;\n /**\n * Использовать на мобильных устройствах нативный календарь для выбора дат.\n *\n * - На iOS нативный календарь не умеет работать с minDate и maxDate\n */\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@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DatePicker extends React.PureComponent<DatePickerProps, DatePickerState> {\n public static __KONTUR_REACT_UI__ = 'DatePicker';\n\n public static propTypes = {\n autoFocus: PropTypes.bool,\n\n disabled: PropTypes.bool,\n\n /**\n * Включает кнопку сегодня в календаре\n */\n enableTodayLink: PropTypes.bool,\n\n error: PropTypes.bool,\n\n /**\n * Максимальная дата в календаре.\n */\n maxDate: PropTypes.string.isRequired,\n\n menuAlign: PropTypes.oneOf(['left', 'right']),\n\n /**\n * Минимальная дата в календаре.\n */\n minDate: PropTypes.string.isRequired,\n\n /**\n * Строка формата `dd.mm.yyyy`\n */\n value: PropTypes.string,\n\n warning: PropTypes.bool,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n onBlur: PropTypes.func,\n\n onValueChange: PropTypes.func.isRequired,\n\n onFocus: PropTypes.func,\n\n onKeyDown: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n\n isHoliday: PropTypes.func,\n };\n\n public static defaultProps: DefaultProps = {\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n };\n\n private getProps = createPropsGetter(DatePicker.defaultProps);\n private theme!: Theme;\n private calendar: Calendar | null = null;\n private readonly locale!: DatePickerLocale;\n\n public static validate = (value: Nullable<string>, range: { minDate?: string; maxDate?: string } = {}) => {\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 private setRootNode!: TSetRootNode;\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() {\n const { disabled } = this.props;\n const { opened } = this.state;\n if (disabled && opened) {\n this.close();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.input) {\n this.input.blur();\n }\n this.handleBlur();\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.focus();\n }\n this.handleFocus();\n }\n\n /**\n * Закрывает выпадашку выбора дня\n * @public\n */\n public close() {\n this.setState({ opened: false });\n }\n\n public render() {\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.props}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DatePickerProps>) => {\n let picker = null;\n\n const { minDate, maxDate } = this.getProps();\n\n if (this.state.opened) {\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 <DropdownContainer\n menuPos={this.props.menuPos}\n data-tid={DatePickerDataTids.root}\n getParent={this.getParent}\n offsetY={parseInt(this.theme.datePickerMenuOffsetY)}\n align={this.props.menuAlign}\n >\n <div\n data-tid={DatePickerDataTids.pickerRoot}\n className={styles.calendarWrapper(this.theme)}\n onMouseDown={(e) => e.preventDefault()}\n >\n <Calendar\n ref={(c) => (this.calendar = c)}\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 />\n {this.props.enableTodayLink && this.renderTodayLink()}{' '}\n </div>\n </DropdownContainer>\n </LocaleContext.Provider>\n );\n }\n\n return (\n <label\n className={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 {...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={this.handleBlur}\n onFocus={this.handleFocus}\n onValueChange={this.props.onValueChange}\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 {!this.state.canUseMobileNativeDatePicker && picker}\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 if (isTheme2022(this.theme)) {\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={this.handleSelectToday(today)}\n icon={<ArrowAUpIcon16Light />}\n >\n {this.locale.today}\n </Button>\n </div>\n );\n }\n\n return (\n <button\n aria-label={this.locale.todayAriaLabel}\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n className={cx({\n [styles.todayLinkWrapper(this.theme)]: true,\n })}\n onClick={this.handleSelectToday(today)}\n tabIndex={-1}\n >\n {`${this.locale.today} ${today}`}\n </button>\n );\n }\n\n private handleSelectToday = (today: string) => () => {\n this.handleSelect(today);\n\n if (this.calendar) {\n const { month, year } = this.state.today;\n this.calendar.scrollToMonth(month, year);\n }\n };\n\n public getParent = () => {\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 handleFocus = () => {\n if (this.focused) {\n return;\n }\n\n this.focused = true;\n\n this.setState({ opened: true });\n\n if (this.props.onFocus) {\n this.props.onFocus();\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"]}
@@ -186,10 +186,9 @@ const [value, setValue] = React.useState('1\n\n\n\n2');
186
186
  В React UI 5.0 фича будет применена по умолчанию.
187
187
 
188
188
  ```jsx harmony
189
- import { Button, ComboBox, ReactUIFeatureFlagsContext } from `@skbkontur/react-ui`;
189
+ import { Button, ComboBox, ReactUIFeatureFlagsContext } from '@skbkontur/react-ui';
190
190
 
191
191
  const [value, setValue] = React.useState({ value: '', label: '' });
192
- const comboboxRef = React.useRef<ComboBox | null>(null);
193
192
 
194
193
  const handleValueChange = () => {
195
194
  setValue({ value: `Update ${new Date().toLocaleString()}`, label: `Update ${new Date().toLocaleString()}` });
@@ -201,21 +200,18 @@ const getItems = () =>
201
200
  { value: 'Второй', label: 'Второй' },
202
201
  ]);
203
202
 
204
- return (
205
- <ReactUIFeatureFlagsContext.Provider value={{ comboBoxAllowValueChangeInEditingState: true }}>
206
- <Button onClick={handleValueChange}>Обновить</Button>
207
- <ComboBox
208
- ref={comboboxRef}
209
- value={value}
210
- searchOnFocus={false}
211
- getItems={getItems}
212
- onValueChange={(value) => setValue(value)}
213
- onInputValueChange={(value) => {
214
- setValue({ value, label: value });
215
- }}
216
- />
217
- </ReactUIFeatureFlagsContext.Provider>
218
- );
203
+ <ReactUIFeatureFlagsContext.Provider value={{ comboBoxAllowValueChangeInEditingState: true }}>
204
+ <Button onClick={handleValueChange}>Обновить</Button>
205
+ <ComboBox
206
+ value={value}
207
+ searchOnFocus={false}
208
+ getItems={getItems}
209
+ onValueChange={(value) => setValue(value)}
210
+ onInputValueChange={(value) => {
211
+ setValue({ value, label: value });
212
+ }}
213
+ />
214
+ </ReactUIFeatureFlagsContext.Provider>
219
215
  ```
220
216
 
221
217
  ## Объект со всеми флагами
@@ -380,7 +380,7 @@ export var DatePicker = (_dec = locale('DatePicker', DatePickerLocaleHelper), ro
380
380
  */
381
381
  value: PropTypes.string,
382
382
  warning: PropTypes.bool,
383
- width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
383
+ width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
384
384
  onBlur: PropTypes.func,
385
385
  onValueChange: PropTypes.func.isRequired,
386
386
  onFocus: PropTypes.func,
@@ -1 +1 @@
1
- {"version":3,"sources":["DatePicker.tsx"],"names":["PropTypes","React","LocaleContext","locale","InternalDateGetter","ArrowAUpIcon16Light","isTheme2022","cx","ThemeFactory","InternalDate","MAX_FULLDATE","MIN_FULLDATE","InternalDateOrder","InternalDateSeparator","InternalDateValidateCheck","DateInput","DropdownContainer","filterProps","CommonWrapper","isMobile","NativeDateInput","getRootNode","rootNode","isNonNullable","createPropsGetter","Calendar","ThemeContext","Button","getTodayDate","styles","DatePickerLocaleHelper","INPUT_PASS_PROPS","autoFocus","disabled","warning","error","size","onKeyDown","MIN_WIDTH","DatePickerDataTids","root","input","label","pickerRoot","pickerTodayWrapper","DatePicker","getProps","defaultProps","calendar","state","opened","canUseMobileNativeDatePicker","today","focused","renderMain","props","picker","minDate","maxDate","months","dayCellChooseDateAriaLabel","selectMonthAriaLabel","selectYearAriaLabel","selectChosenAriaLabel","menuPos","getParent","parseInt","theme","datePickerMenuOffsetY","menuAlign","calendarWrapper","e","preventDefault","c","parseValueToDate","handleValueChange","isHoliday","value","enableTodayLink","renderTodayLink","getRootStyle","onMouseEnter","onMouseLeave","onMouseOver","getInputRef","handleBlur","handleFocus","onValueChange","handleSelectToday","handleSelect","month","year","scrollToMonth","width","minWidth","ref","setState","onFocus","close","onBlur","blur","componentDidMount","useMobileNativeDatePicker","focus","componentDidUpdate","render","create","calendarBottomSeparatorBorder","setRootNode","undefined","date","validate","checks","NotNull","Native","toString","withPad","order","separator","setComponents","getTodayComponents","withSeparator","margin","todayAriaLabel","todayLinkWrapper","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","string","isRequired","oneOf","oneOfType","number","func","range","internalDate","DMY","Dot","setRangeStart","setRangeEnd","parseValue","Number","Limits","Range"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { LocaleContext } from '../../lib/locale';\nimport { locale } from '../../lib/locale/decorators';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { cx } from '../../lib/theming/Emotion';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateOrder, InternalDateSeparator, InternalDateValidateCheck } from '../../lib/date/types';\nimport { Nullable } from '../../typings/utility-types';\nimport { DateInput } from '../DateInput';\nimport { DropdownContainer, DropdownContainerProps } from '../../internal/DropdownContainer';\nimport { filterProps } from '../../lib/filterProps';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { isMobile } from '../../lib/client';\nimport { NativeDateInput } from '../../internal/NativeDateInput';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isNonNullable } from '../../lib/utils';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Calendar, CalendarDateShape, CalendarProps } from '../Calendar';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { Button } from '../Button';\nimport { getTodayDate } from '../Calendar/CalendarUtils';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './DatePicker.styles';\nimport { DatePickerLocale, DatePickerLocaleHelper } from './locale';\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 Pick<DropdownContainerProps, 'menuPos'>,\n Pick<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate'>,\n CommonProps {\n autoFocus?: boolean;\n disabled?: boolean;\n /**\n * Отвечает за отображение кнопки \"Сегодня\".\n */\n enableTodayLink?: boolean;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n menuAlign?: 'left' | 'right';\n size?: SizeProp;\n value?: string | null;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n width?: number | string;\n onBlur?: () => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange: (value: string) => void;\n onFocus?: () => void;\n onKeyDown?: (e: React.KeyboardEvent<any>) => void;\n onMouseEnter?: (e: React.MouseEvent<any>) => void;\n onMouseLeave?: (e: React.MouseEvent<any>) => void;\n onMouseOver?: (e: React.MouseEvent<any>) => void;\n /**\n * Использовать на мобильных устройствах нативный календарь для выбора дат.\n *\n * - На iOS нативный календарь не умеет работать с minDate и maxDate\n */\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@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DatePicker extends React.PureComponent<DatePickerProps, DatePickerState> {\n public static __KONTUR_REACT_UI__ = 'DatePicker';\n\n public static propTypes = {\n autoFocus: PropTypes.bool,\n\n disabled: PropTypes.bool,\n\n /**\n * Включает кнопку сегодня в календаре\n */\n enableTodayLink: PropTypes.bool,\n\n error: PropTypes.bool,\n\n /**\n * Максимальная дата в календаре.\n */\n maxDate: PropTypes.string.isRequired,\n\n menuAlign: PropTypes.oneOf(['left', 'right']),\n\n /**\n * Минимальная дата в календаре.\n */\n minDate: PropTypes.string.isRequired,\n\n /**\n * Строка формата `dd.mm.yyyy`\n */\n value: PropTypes.string,\n\n warning: PropTypes.bool,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n\n onBlur: PropTypes.func,\n\n onValueChange: PropTypes.func.isRequired,\n\n onFocus: PropTypes.func,\n\n onKeyDown: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n\n isHoliday: PropTypes.func,\n };\n\n public static defaultProps: DefaultProps = {\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n };\n\n private getProps = createPropsGetter(DatePicker.defaultProps);\n private theme!: Theme;\n private calendar: Calendar | null = null;\n private readonly locale!: DatePickerLocale;\n\n public static validate = (value: Nullable<string>, range: { minDate?: string; maxDate?: string } = {}) => {\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 private setRootNode!: TSetRootNode;\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() {\n const { disabled } = this.props;\n const { opened } = this.state;\n if (disabled && opened) {\n this.close();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.input) {\n this.input.blur();\n }\n this.handleBlur();\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.focus();\n }\n this.handleFocus();\n }\n\n /**\n * Закрывает выпадашку выбора дня\n * @public\n */\n public close() {\n this.setState({ opened: false });\n }\n\n public render() {\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.props}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DatePickerProps>) => {\n let picker = null;\n\n const { minDate, maxDate } = this.getProps();\n\n if (this.state.opened) {\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 <DropdownContainer\n menuPos={this.props.menuPos}\n data-tid={DatePickerDataTids.root}\n getParent={this.getParent}\n offsetY={parseInt(this.theme.datePickerMenuOffsetY)}\n align={this.props.menuAlign}\n >\n <div\n data-tid={DatePickerDataTids.pickerRoot}\n className={styles.calendarWrapper(this.theme)}\n onMouseDown={(e) => e.preventDefault()}\n >\n <Calendar\n ref={(c) => (this.calendar = c)}\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 />\n {this.props.enableTodayLink && this.renderTodayLink()}{' '}\n </div>\n </DropdownContainer>\n </LocaleContext.Provider>\n );\n }\n\n return (\n <label\n className={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 {...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={this.handleBlur}\n onFocus={this.handleFocus}\n onValueChange={this.props.onValueChange}\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 {!this.state.canUseMobileNativeDatePicker && picker}\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 if (isTheme2022(this.theme)) {\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={this.handleSelectToday(today)}\n icon={<ArrowAUpIcon16Light />}\n >\n {this.locale.today}\n </Button>\n </div>\n );\n }\n\n return (\n <button\n aria-label={this.locale.todayAriaLabel}\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n className={cx({\n [styles.todayLinkWrapper(this.theme)]: true,\n })}\n onClick={this.handleSelectToday(today)}\n tabIndex={-1}\n >\n {`${this.locale.today} ${today}`}\n </button>\n );\n }\n\n private handleSelectToday = (today: string) => () => {\n this.handleSelect(today);\n\n if (this.calendar) {\n const { month, year } = this.state.today;\n this.calendar.scrollToMonth(month, year);\n }\n };\n\n public getParent = () => {\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 handleFocus = () => {\n if (this.focused) {\n return;\n }\n\n this.focused = true;\n\n this.setState({ opened: true });\n\n if (this.props.onFocus) {\n this.props.onFocus();\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"]}
1
+ {"version":3,"sources":["DatePicker.tsx"],"names":["PropTypes","React","LocaleContext","locale","InternalDateGetter","ArrowAUpIcon16Light","isTheme2022","cx","ThemeFactory","InternalDate","MAX_FULLDATE","MIN_FULLDATE","InternalDateOrder","InternalDateSeparator","InternalDateValidateCheck","DateInput","DropdownContainer","filterProps","CommonWrapper","isMobile","NativeDateInput","getRootNode","rootNode","isNonNullable","createPropsGetter","Calendar","ThemeContext","Button","getTodayDate","styles","DatePickerLocaleHelper","INPUT_PASS_PROPS","autoFocus","disabled","warning","error","size","onKeyDown","MIN_WIDTH","DatePickerDataTids","root","input","label","pickerRoot","pickerTodayWrapper","DatePicker","getProps","defaultProps","calendar","state","opened","canUseMobileNativeDatePicker","today","focused","renderMain","props","picker","minDate","maxDate","months","dayCellChooseDateAriaLabel","selectMonthAriaLabel","selectYearAriaLabel","selectChosenAriaLabel","menuPos","getParent","parseInt","theme","datePickerMenuOffsetY","menuAlign","calendarWrapper","e","preventDefault","c","parseValueToDate","handleValueChange","isHoliday","value","enableTodayLink","renderTodayLink","getRootStyle","onMouseEnter","onMouseLeave","onMouseOver","getInputRef","handleBlur","handleFocus","onValueChange","handleSelectToday","handleSelect","month","year","scrollToMonth","width","minWidth","ref","setState","onFocus","close","onBlur","blur","componentDidMount","useMobileNativeDatePicker","focus","componentDidUpdate","render","create","calendarBottomSeparatorBorder","setRootNode","undefined","date","validate","checks","NotNull","Native","toString","withPad","order","separator","setComponents","getTodayComponents","withSeparator","margin","todayAriaLabel","todayLinkWrapper","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","string","isRequired","oneOf","oneOfType","number","func","range","internalDate","DMY","Dot","setRangeStart","setRangeEnd","parseValue","Number","Limits","Range"],"mappings":"uPAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,KAAP,MAAkB,OAAlB;;AAEA,SAASC,aAAT,QAA8B,kBAA9B;AACA,SAASC,MAAT,QAAuB,6BAAvB;AACA,SAASC,kBAAT,QAAmC,mCAAnC;AACA,SAASC,mBAAT,QAAoC,uDAApC;AACA,SAASC,WAAT,QAA4B,gCAA5B;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,YAAT,QAA6B,6BAA7B;AACA,SAASC,YAAT,EAAuBC,YAAvB,QAA2C,0BAA3C;AACA,SAASC,iBAAT,EAA4BC,qBAA5B,EAAmDC,yBAAnD,QAAoF,sBAApF;;AAEA,SAASC,SAAT,QAA0B,cAA1B;AACA,SAASC,iBAAT,QAA0D,kCAA1D;AACA,SAASC,WAAT,QAA4B,uBAA5B;AACA,SAASC,aAAT,QAAmE,8BAAnE;AACA,SAASC,QAAT,QAAyB,kBAAzB;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,WAAT,EAAsBC,QAAtB,QAAoD,oBAApD;AACA,SAASC,aAAT,QAA8B,iBAA9B;AACA,SAASC,iBAAT,QAAkC,6BAAlC;AACA,SAASC,QAAT,QAA2D,aAA3D;AACA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,MAAT,QAAuB,WAAvB;AACA,SAASC,YAAT,QAA6B,2BAA7B;;;AAGA,SAASC,MAAT,QAAuB,qBAAvB;AACA,SAA2BC,sBAA3B,QAAyD,UAAzD;;AAEA,IAAMC,gBAAgB,GAAG;AACvBC,EAAAA,SAAS,EAAE,IADY;AAEvBC,EAAAA,QAAQ,EAAE,IAFa;AAGvBC,EAAAA,OAAO,EAAE,IAHc;AAIvBC,EAAAA,KAAK,EAAE,IAJgB;AAKvBC,EAAAA,IAAI,EAAE,IALiB;AAMvBC,EAAAA,SAAS,EAAE,IANY,EAAzB;;;AASA,OAAO,IAAMC,SAAS,GAAG,GAAlB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDP,OAAO,IAAMC,kBAAkB,GAAG;AAChCC,EAAAA,IAAI,EAAE,kBAD0B;AAEhCC,EAAAA,KAAK,EAAE,mBAFyB;AAGhCC,EAAAA,KAAK,EAAE,mBAHyB;AAIhCC,EAAAA,UAAU,EAAE,cAJoB;AAKhCC,EAAAA,kBAAkB,EAAE,sBALY,EAA3B;;;;;;;AAYP,WAAaC,UAAb,WADC1C,MAAM,CAAC,YAAD,EAAe2B,sBAAf,CACP,EAFCR,QAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DUwB,IAAAA,QA1DV,GA0DqBtB,iBAAiB,CAACqB,UAAU,CAACE,YAAZ,CA1DtC;;AA4DUC,IAAAA,QA5DV,GA4DsC,IA5DtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwFSC,IAAAA,KAxFT,GAwFkC,EAAEC,MAAM,EAAE,KAAV,EAAiBC,4BAA4B,EAAE,KAA/C,EAAsDC,KAAK,EAAExB,YAAY,EAAzE,EAxFlC;;AA0FUa,IAAAA,KA1FV,GA0FoC,IA1FpC;AA2FUY,IAAAA,OA3FV,GA2FoB,KA3FpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkKSC,IAAAA,UAlKT,GAkKsB,UAACC,KAAD,EAAoD;AACtE,UAAIC,MAAM,GAAG,IAAb;;AAEA,2BAA6B,MAAKV,QAAL,EAA7B,CAAQW,OAAR,kBAAQA,OAAR,CAAiBC,OAAjB,kBAAiBA,OAAjB;;AAEA,UAAI,MAAKT,KAAL,CAAWC,MAAf,EAAuB;AACrBM,QAAAA,MAAM;AACJ,4BAAC,aAAD,CAAe,QAAf;AACE,UAAA,KAAK,EAAE;AACLrD,YAAAA,MAAM,EAAE;AACNsB,cAAAA,QAAQ,EAAE;AACRkC,gBAAAA,MAAM,EAAE,MAAKxD,MAAL,CAAYwD,MADZ;AAERC,gBAAAA,0BAA0B,EAAE,MAAKzD,MAAL,CAAYyD,0BAFhC;AAGRC,gBAAAA,oBAAoB,EAAE,MAAK1D,MAAL,CAAY0D,oBAH1B;AAIRC,gBAAAA,mBAAmB,EAAE,MAAK3D,MAAL,CAAY2D,mBAJzB;AAKRC,gBAAAA,qBAAqB,EAAE,MAAK5D,MAAL,CAAY4D,qBAL3B,EADJ,EADH,EADT;;;;;AAaE,4BAAC,iBAAD;AACE,UAAA,OAAO,EAAE,MAAKR,KAAL,CAAWS,OADtB;AAEE,sBAAUzB,kBAAkB,CAACC,IAF/B;AAGE,UAAA,SAAS,EAAE,MAAKyB,SAHlB;AAIE,UAAA,OAAO,EAAEC,QAAQ,CAAC,MAAKC,KAAL,CAAWC,qBAAZ,CAJnB;AAKE,UAAA,KAAK,EAAE,MAAKb,KAAL,CAAWc,SALpB;;AAOE;AACE,sBAAU9B,kBAAkB,CAACI,UAD/B;AAEE,UAAA,SAAS,EAAEd,MAAM,CAACyC,eAAP,CAAuB,MAAKH,KAA5B,CAFb;AAGE,UAAA,WAAW,EAAE,qBAACI,CAAD,UAAOA,CAAC,CAACC,cAAF,EAAP,EAHf;;AAKE,4BAAC,QAAD;AACE,UAAA,GAAG,EAAE,aAACC,CAAD,UAAQ,MAAKzB,QAAL,GAAgByB,CAAxB,EADP;AAEE,UAAA,OAAO,EAAE,MAAKC,gBAAL,CAAsBhB,OAAtB,CAFX;AAGE,UAAA,OAAO,EAAE,MAAKgB,gBAAL,CAAsBjB,OAAtB,CAHX;AAIE,UAAA,aAAa,EAAE,MAAKkB,iBAJtB;AAKE,UAAA,SAAS,EAAE,MAAKpB,KAAL,CAAWqB,SALxB;AAME,UAAA,KAAK,EAAE,MAAKF,gBAAL,CAAsB,MAAKnB,KAAL,CAAWsB,KAAjC,CANT,GALF;;AAaG,cAAKtB,KAAL,CAAWuB,eAAX,IAA8B,MAAKC,eAAL,EAbjC,EAayD,GAbzD,CAPF,CAbF,CADF;;;;;AAuCD;;AAED;AACE;AACE,UAAA,SAAS,EAAElD,MAAM,CAACW,IAAP,EADb;AAEE,UAAA,KAAK,EAAE,MAAKwC,YAAL,EAFT;AAGE,UAAA,YAAY,EAAE,MAAKzB,KAAL,CAAW0B,YAH3B;AAIE,UAAA,YAAY,EAAE,MAAK1B,KAAL,CAAW2B,YAJ3B;AAKE,UAAA,WAAW,EAAE,MAAK3B,KAAL,CAAW4B,WAL1B;AAME,sBAAU5C,kBAAkB,CAACG,KAN/B;;AAQE,4BAAC,SAAD;AACMzB,QAAAA,WAAW,CAACsC,KAAD,EAAQxB,gBAAR,CADjB;AAEE,UAAA,GAAG,EAAE,MAAKqD,WAFZ;AAGE,UAAA,KAAK,EAAE,MAAK7B,KAAL,CAAWsB,KAAX,IAAoB,EAH7B;AAIE,UAAA,KAAK,EAAC,MAJR;AAKE,UAAA,QAAQ,MALV;AAME,UAAA,OAAO,EAAEpB,OANX;AAOE,UAAA,OAAO,EAAEC,OAPX;AAQE,UAAA,MAAM,EAAE,MAAK2B,UARf;AASE,UAAA,OAAO,EAAE,MAAKC,WAThB;AAUE,UAAA,aAAa,EAAE,MAAK/B,KAAL,CAAWgC,aAV5B;AAWE,sBAAUhD,kBAAkB,CAACE,KAX/B,IARF;;AAqBG,cAAKQ,KAAL,CAAWE,4BAAX;AACC,4BAAC,eAAD;AACE,UAAA,aAAa,EAAE,MAAKI,KAAL,CAAWgC,aAD5B;AAEE,UAAA,KAAK,EAAE,MAAKhC,KAAL,CAAWsB,KAAX,IAAoB,EAF7B;AAGE,UAAA,OAAO,EAAEpB,OAHX;AAIE,UAAA,OAAO,EAAEC,OAJX;AAKE,UAAA,QAAQ,EAAE,MAAKH,KAAL,CAAWtB,QALvB,GAtBJ;;;AA8BG,SAAC,MAAKgB,KAAL,CAAWE,4BAAZ,IAA4CK,MA9B/C,CADF;;;AAkCD,KAnPH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuSUgC,IAAAA,iBAvSV,GAuS8B,UAACpC,KAAD,UAAmB,YAAM;AACnD,cAAKqC,YAAL,CAAkBrC,KAAlB;;AAEA,YAAI,MAAKJ,QAAT,EAAmB;AACjB,kCAAwB,MAAKC,KAAL,CAAWG,KAAnC,CAAQsC,KAAR,qBAAQA,KAAR,CAAeC,IAAf,qBAAeA,IAAf;AACA,gBAAK3C,QAAL,CAAc4C,aAAd,CAA4BF,KAA5B,EAAmCC,IAAnC;AACD;AACF,OAP2B,EAvS9B;;AAgTS1B,IAAAA,SAhTT,GAgTqB,YAAM;AACvB,aAAO5C,WAAW,+BAAlB;AACD,KAlTH;;AAoTU2D,IAAAA,YApTV,GAoTyB,YAAM;AAC3B,UAAQa,KAAR,GAAkB,MAAKtC,KAAvB,CAAQsC,KAAR;AACA,aAAOtE,aAAa,CAACsE,KAAD,CAAb,GAAuB,EAAEA,KAAK,EAALA,KAAF,EAAvB,GAAmC,EAAEC,QAAQ,EAAExD,SAAZ,EAA1C;AACD,KAvTH;;AAyTU8C,IAAAA,WAzTV,GAyTwB,UAACW,GAAD,EAA2B;AAC/C,YAAKtD,KAAL,GAAasD,GAAb;AACD,KA3TH;;AA6TUT,IAAAA,WA7TV,GA6TwB,YAAM;AAC1B,UAAI,MAAKjC,OAAT,EAAkB;AAChB;AACD;;AAED,YAAKA,OAAL,GAAe,IAAf;;AAEA,YAAK2C,QAAL,CAAc,EAAE9C,MAAM,EAAE,IAAV,EAAd;;AAEA,UAAI,MAAKK,KAAL,CAAW0C,OAAf,EAAwB;AACtB,cAAK1C,KAAL,CAAW0C,OAAX;AACD;AACF,KAzUH;;AA2UUZ,IAAAA,UA3UV,GA2UuB,YAAM;AACzB,UAAI,CAAC,MAAKhC,OAAV,EAAmB;AACjB;AACD;;AAED,YAAKA,OAAL,GAAe,KAAf;AACA,YAAK6C,KAAL;;AAEA,UAAI,MAAK3C,KAAL,CAAW4C,MAAf,EAAuB;AACrB,cAAK5C,KAAL,CAAW4C,MAAX;AACD;AACF,KAtVH;;AAwVUxB,IAAAA,iBAxVV,GAwV8B,UAACE,KAAD,EAAmB;AAC7C,YAAKY,YAAL,CAAkBZ,KAAlB;AACA,YAAKuB,IAAL;AACD,KA3VH;;AA6VUX,IAAAA,YA7VV,GA6VyB,UAACZ,KAAD,EAA0B;AAC/C,UAAI,CAACA,KAAL,EAAY;AACV,eAAO,IAAP;AACD;;AAED,UAAI,MAAKtB,KAAL,CAAWgC,aAAf,EAA8B;AAC5B,cAAKhC,KAAL,CAAWgC,aAAX,CAAyBV,KAAzB;AACD;AACF,KArWH,wDA8FSwB,iBA9FT,GA8FE,6BAA2B,CACzB,IAAI,KAAK9C,KAAL,CAAW+C,yBAAX,IAAwCnF,QAA5C,EAAsD,CACpD,KAAK6E,QAAL,CAAc,EACZ7C,4BAA4B,EAAE,IADlB,EAAd,EAGD,CACD,IAAI,KAAKI,KAAL,CAAWvB,SAAf,EAA0B,CACxB,KAAKuE,KAAL,GACD,CACF,CAvGH,QAyGSC,kBAzGT,GAyGE,8BAA4B,CAC1B,IAAQvE,QAAR,GAAqB,KAAKsB,KAA1B,CAAQtB,QAAR,CACA,IAAQiB,MAAR,GAAmB,KAAKD,KAAxB,CAAQC,MAAR,CACA,IAAIjB,QAAQ,IAAIiB,MAAhB,EAAwB,CACtB,KAAKgD,KAAL,GACD,CACF,CA/GH,CAiHE;AACF;AACA,KAnHA,QAoHSE,IApHT,GAoHE,gBAAc,CACZ,IAAI,KAAK3D,KAAT,EAAgB,CACd,KAAKA,KAAL,CAAW2D,IAAX,GACD,CACD,KAAKf,UAAL,GACD,CAzHH,CA2HE;AACF;AACA,KA7HA,QA8HSkB,KA9HT,GA8HE,iBAAe,CACb,IAAI,KAAKhD,KAAL,CAAWtB,QAAf,EAAyB,CACvB,OACD,CACD,IAAI,KAAKQ,KAAT,EAAgB,CACd,KAAKA,KAAL,CAAW8D,KAAX,GACD,CACD,KAAKjB,WAAL,GACD,CAtIH,CAwIE;AACF;AACA;AACA,KA3IA,QA4ISY,KA5IT,GA4IE,iBAAe,CACb,KAAKF,QAAL,CAAc,EAAE9C,MAAM,EAAE,KAAV,EAAd,EACD,CA9IH,QAgJSuD,MAhJT,GAgJE,kBAAgB,mBACd,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACtC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CAEA,oBACE,oBAAC,YAAD,CAAc,QAAd,IAAuB,KAAK,EAAE3D,YAAY,CAACkG,MAAb,CAAoB,EAAEC,6BAA6B,EAAE,MAAjC,EAApB,EAA+DxC,KAA/D,CAA9B,iBACE,oBAAC,aAAD,aAAe,WAAW,EAAE,MAAI,CAACyC,WAAjC,IAAkD,MAAI,CAACrD,KAAvD,GACG,MAAI,CAACD,UADR,CADF,CADF,CAOD,CAXH,CADF,CAeD,CAhKH,QAqPUoB,gBArPV,GAqPE,0BAAyBG,KAAzB,EAAuE,CACrE,IAAIA,KAAK,KAAKgC,SAAV,IAAuBhC,KAAK,KAAK,IAArC,EAA2C,CACzC,OAAOgC,SAAP,CACD,CAED,IAAMC,IAAI,GAAG,IAAIrG,YAAJ,CAAiB,EAAEoE,KAAK,EAALA,KAAF,EAAjB,CAAb,CACA,IAAIiC,IAAI,CAACC,QAAL,CAAc,EAAEC,MAAM,EAAE,CAAClG,yBAAyB,CAACmG,OAA3B,EAAoCnG,yBAAyB,CAACoG,MAA9D,CAAV,EAAd,CAAJ,EAAsG,CACpG,OAAOJ,IAAI,CAACK,QAAL,CAAc,EAAEC,OAAO,EAAE,IAAX,EAAd,CAAP,CACD,CAED,OAAOP,SAAP,CACD,CAhQH,QAkQU9B,eAlQV,GAkQE,2BAA0B,SACxB,mBAA6B,KAAK5E,MAAlC,CAAQkH,KAAR,gBAAQA,KAAR,CAAeC,SAAf,gBAAeA,SAAf,CACA,IAAMlE,KAAK,GAAG,IAAI3C,YAAJ,CAAiB,EAAE4G,KAAK,EAALA,KAAF,EAASC,SAAS,EAATA,SAAT,EAAjB,EACXC,aADW,CACGnH,kBAAkB,CAACoH,kBAAnB,EADH,EAEXL,QAFW,CAEF,EAAEC,OAAO,EAAE,IAAX,EAAiBK,aAAa,EAAE,IAAhC,EAFE,CAAd,CAIA,IAAInH,WAAW,CAAC,KAAK6D,KAAN,CAAf,EAA6B,CAC3B,oBACE,6BAAK,KAAK,EAAE,EAAEuD,MAAM,EAAE,CAAV,EAAZ,iBACE,oBAAC,MAAD,IACE,cAAY,KAAKvH,MAAL,CAAYwH,cAD1B,EAEE,YAAUpF,kBAAkB,CAACK,kBAF/B,EAGE,KAAK,EAAC,MAHR,EAIE,OAAO,EAAE,KAAK4C,iBAAL,CAAuBpC,KAAvB,CAJX,EAKE,IAAI,eAAE,oBAAC,mBAAD,OALR,IAOG,KAAKjD,MAAL,CAAYiD,KAPf,CADF,CADF,CAaD,CAED,oBACE,gCACE,cAAY,KAAKjD,MAAL,CAAYwH,cAD1B,EAEE,YAAUpF,kBAAkB,CAACK,kBAF/B,EAGE,SAAS,EAAErC,EAAE,gBACVsB,MAAM,CAAC+F,gBAAP,CAAwB,KAAKzD,KAA7B,CADU,IAC4B,IAD5B,OAHf,EAME,OAAO,EAAE,KAAKqB,iBAAL,CAAuBpC,KAAvB,CANX,EAOE,QAAQ,EAAE,CAAC,CAPb,IASM,KAAKjD,MAAL,CAAYiD,KATlB,SAS2BA,KAT3B,CADF,CAaD,CArSH,qBAAgCnD,KAAK,CAAC4H,aAAtC,WACgBC,mBADhB,GACsC,YADtC,UAGgBC,SAHhB,GAG4B,EACxB/F,SAAS,EAAEhC,SAAS,CAACgI,IADG,EAGxB/F,QAAQ,EAAEjC,SAAS,CAACgI,IAHI,EAKxB;AACJ;AACA,KACIlD,eAAe,EAAE9E,SAAS,CAACgI,IARH,EAUxB7F,KAAK,EAAEnC,SAAS,CAACgI,IAVO,EAYxB;AACJ;AACA,KACItE,OAAO,EAAE1D,SAAS,CAACiI,MAAV,CAAiBC,UAfF,EAiBxB7D,SAAS,EAAErE,SAAS,CAACmI,KAAV,CAAgB,CAAC,MAAD,EAAS,OAAT,CAAhB,CAjBa,EAmBxB;AACJ;AACA,KACI1E,OAAO,EAAEzD,SAAS,CAACiI,MAAV,CAAiBC,UAtBF,EAwBxB;AACJ;AACA,KACIrD,KAAK,EAAE7E,SAAS,CAACiI,MA3BO,EA6BxB/F,OAAO,EAAElC,SAAS,CAACgI,IA7BK,EA+BxBnC,KAAK,EAAE7F,SAAS,CAACoI,SAAV,CAAoB,CAACpI,SAAS,CAACqI,MAAX,EAAmBrI,SAAS,CAACiI,MAA7B,CAApB,CA/BiB,EAiCxB9B,MAAM,EAAEnG,SAAS,CAACsI,IAjCM,EAmCxB/C,aAAa,EAAEvF,SAAS,CAACsI,IAAV,CAAeJ,UAnCN,EAqCxBjC,OAAO,EAAEjG,SAAS,CAACsI,IArCK,EAuCxBjG,SAAS,EAAErC,SAAS,CAACsI,IAvCG,EAyCxBrD,YAAY,EAAEjF,SAAS,CAACsI,IAzCA,EA2CxBpD,YAAY,EAAElF,SAAS,CAACsI,IA3CA,EA6CxBnD,WAAW,EAAEnF,SAAS,CAACsI,IA7CC,EA+CxB1D,SAAS,EAAE5E,SAAS,CAACsI,IA/CG,EAH5B,UAqDgBvF,YArDhB,GAqD6C,EACzCU,OAAO,EAAE9C,YADgC,EAEzC+C,OAAO,EAAEhD,YAFgC,EArD7C,UA+DgBqG,QA/DhB,GA+D2B,UAAClC,KAAD,EAA0B0D,KAA1B,EAAiF,KAAvDA,KAAuD,cAAvDA,KAAuD,GAAP,EAAO,EACxG,IAAI,CAAC1D,KAAL,EAAY,CACV,OAAO,KAAP,CACD,CAED,aAA2D0D,KAA3D,yBAAQ9E,OAAR,CAAQA,OAAR,+BAAkB9C,YAAlB,0CAAgC+C,OAAhC,CAAgCA,OAAhC,+BAA0ChD,YAA1C,kBACA,IAAM8H,YAAY,GAAG,IAAI/H,YAAJ,CAAiB,EACpC4G,KAAK,EAAEzG,iBAAiB,CAAC6H,GADW,EAEpCnB,SAAS,EAAEzG,qBAAqB,CAAC6H,GAFG,EAAjB,EAIlBC,aAJkB,CAIJ,IAAIlI,YAAJ,CAAiB,EAAEoE,KAAK,EAAEpB,OAAT,EAAjB,CAJI,EAKlBmF,WALkB,CAKN,IAAInI,YAAJ,CAAiB,EAAEoE,KAAK,EAAEnB,OAAT,EAAjB,CALM,EAMlBmF,UANkB,CAMPhE,KANO,CAArB,CAQA,OAAO2D,YAAY,CAACzB,QAAb,CAAsB,EAC3BC,MAAM,EAAE,CACNlG,yBAAyB,CAACmG,OADpB,EAENnG,yBAAyB,CAACgI,MAFpB,EAGNhI,yBAAyB,CAACoG,MAHpB,EAINpG,yBAAyB,CAACiI,MAJpB,EAKNjI,yBAAyB,CAACkI,KALpB,CADmB,EAAtB,CAAP,CASD,CAtFH","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { LocaleContext } from '../../lib/locale';\nimport { locale } from '../../lib/locale/decorators';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { cx } from '../../lib/theming/Emotion';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateOrder, InternalDateSeparator, InternalDateValidateCheck } from '../../lib/date/types';\nimport { Nullable } from '../../typings/utility-types';\nimport { DateInput } from '../DateInput';\nimport { DropdownContainer, DropdownContainerProps } from '../../internal/DropdownContainer';\nimport { filterProps } from '../../lib/filterProps';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { isMobile } from '../../lib/client';\nimport { NativeDateInput } from '../../internal/NativeDateInput';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isNonNullable } from '../../lib/utils';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Calendar, CalendarDateShape, CalendarProps } from '../Calendar';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { Button } from '../Button';\nimport { getTodayDate } from '../Calendar/CalendarUtils';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './DatePicker.styles';\nimport { DatePickerLocale, DatePickerLocaleHelper } from './locale';\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 Pick<DropdownContainerProps, 'menuPos'>,\n Pick<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate'>,\n CommonProps {\n autoFocus?: boolean;\n disabled?: boolean;\n /**\n * Отвечает за отображение кнопки \"Сегодня\".\n */\n enableTodayLink?: boolean;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n menuAlign?: 'left' | 'right';\n size?: SizeProp;\n value?: string | null;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n width?: number | string;\n onBlur?: () => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange: (value: string) => void;\n onFocus?: () => void;\n onKeyDown?: (e: React.KeyboardEvent<any>) => void;\n onMouseEnter?: (e: React.MouseEvent<any>) => void;\n onMouseLeave?: (e: React.MouseEvent<any>) => void;\n onMouseOver?: (e: React.MouseEvent<any>) => void;\n /**\n * Использовать на мобильных устройствах нативный календарь для выбора дат.\n *\n * - На iOS нативный календарь не умеет работать с minDate и maxDate\n */\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@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DatePicker extends React.PureComponent<DatePickerProps, DatePickerState> {\n public static __KONTUR_REACT_UI__ = 'DatePicker';\n\n public static propTypes = {\n autoFocus: PropTypes.bool,\n\n disabled: PropTypes.bool,\n\n /**\n * Включает кнопку сегодня в календаре\n */\n enableTodayLink: PropTypes.bool,\n\n error: PropTypes.bool,\n\n /**\n * Максимальная дата в календаре.\n */\n maxDate: PropTypes.string.isRequired,\n\n menuAlign: PropTypes.oneOf(['left', 'right']),\n\n /**\n * Минимальная дата в календаре.\n */\n minDate: PropTypes.string.isRequired,\n\n /**\n * Строка формата `dd.mm.yyyy`\n */\n value: PropTypes.string,\n\n warning: PropTypes.bool,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n onBlur: PropTypes.func,\n\n onValueChange: PropTypes.func.isRequired,\n\n onFocus: PropTypes.func,\n\n onKeyDown: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n\n isHoliday: PropTypes.func,\n };\n\n public static defaultProps: DefaultProps = {\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n };\n\n private getProps = createPropsGetter(DatePicker.defaultProps);\n private theme!: Theme;\n private calendar: Calendar | null = null;\n private readonly locale!: DatePickerLocale;\n\n public static validate = (value: Nullable<string>, range: { minDate?: string; maxDate?: string } = {}) => {\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 private setRootNode!: TSetRootNode;\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() {\n const { disabled } = this.props;\n const { opened } = this.state;\n if (disabled && opened) {\n this.close();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.input) {\n this.input.blur();\n }\n this.handleBlur();\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.focus();\n }\n this.handleFocus();\n }\n\n /**\n * Закрывает выпадашку выбора дня\n * @public\n */\n public close() {\n this.setState({ opened: false });\n }\n\n public render() {\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.props}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DatePickerProps>) => {\n let picker = null;\n\n const { minDate, maxDate } = this.getProps();\n\n if (this.state.opened) {\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 <DropdownContainer\n menuPos={this.props.menuPos}\n data-tid={DatePickerDataTids.root}\n getParent={this.getParent}\n offsetY={parseInt(this.theme.datePickerMenuOffsetY)}\n align={this.props.menuAlign}\n >\n <div\n data-tid={DatePickerDataTids.pickerRoot}\n className={styles.calendarWrapper(this.theme)}\n onMouseDown={(e) => e.preventDefault()}\n >\n <Calendar\n ref={(c) => (this.calendar = c)}\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 />\n {this.props.enableTodayLink && this.renderTodayLink()}{' '}\n </div>\n </DropdownContainer>\n </LocaleContext.Provider>\n );\n }\n\n return (\n <label\n className={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 {...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={this.handleBlur}\n onFocus={this.handleFocus}\n onValueChange={this.props.onValueChange}\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 {!this.state.canUseMobileNativeDatePicker && picker}\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 if (isTheme2022(this.theme)) {\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={this.handleSelectToday(today)}\n icon={<ArrowAUpIcon16Light />}\n >\n {this.locale.today}\n </Button>\n </div>\n );\n }\n\n return (\n <button\n aria-label={this.locale.todayAriaLabel}\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n className={cx({\n [styles.todayLinkWrapper(this.theme)]: true,\n })}\n onClick={this.handleSelectToday(today)}\n tabIndex={-1}\n >\n {`${this.locale.today} ${today}`}\n </button>\n );\n }\n\n private handleSelectToday = (today: string) => () => {\n this.handleSelect(today);\n\n if (this.calendar) {\n const { month, year } = this.state.today;\n this.calendar.scrollToMonth(month, year);\n }\n };\n\n public getParent = () => {\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 handleFocus = () => {\n if (this.focused) {\n return;\n }\n\n this.focused = true;\n\n this.setState({ opened: true });\n\n if (this.props.onFocus) {\n this.props.onFocus();\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"]}
@@ -81,7 +81,7 @@ export declare class DatePicker extends React.PureComponent<DatePickerProps, Dat
81
81
  */
82
82
  value: PropTypes.Requireable<string>;
83
83
  warning: PropTypes.Requireable<boolean>;
84
- width: PropTypes.Validator<string | number>;
84
+ width: PropTypes.Requireable<string | number>;
85
85
  onBlur: PropTypes.Requireable<(...args: any[]) => any>;
86
86
  onValueChange: PropTypes.Validator<(...args: any[]) => any>;
87
87
  onFocus: PropTypes.Requireable<(...args: any[]) => any>;
@@ -186,10 +186,9 @@ const [value, setValue] = React.useState('1\n\n\n\n2');
186
186
  В React UI 5.0 фича будет применена по умолчанию.
187
187
 
188
188
  ```jsx harmony
189
- import { Button, ComboBox, ReactUIFeatureFlagsContext } from `@skbkontur/react-ui`;
189
+ import { Button, ComboBox, ReactUIFeatureFlagsContext } from '@skbkontur/react-ui';
190
190
 
191
191
  const [value, setValue] = React.useState({ value: '', label: '' });
192
- const comboboxRef = React.useRef<ComboBox | null>(null);
193
192
 
194
193
  const handleValueChange = () => {
195
194
  setValue({ value: `Update ${new Date().toLocaleString()}`, label: `Update ${new Date().toLocaleString()}` });
@@ -201,21 +200,18 @@ const getItems = () =>
201
200
  { value: 'Второй', label: 'Второй' },
202
201
  ]);
203
202
 
204
- return (
205
- <ReactUIFeatureFlagsContext.Provider value={{ comboBoxAllowValueChangeInEditingState: true }}>
206
- <Button onClick={handleValueChange}>Обновить</Button>
207
- <ComboBox
208
- ref={comboboxRef}
209
- value={value}
210
- searchOnFocus={false}
211
- getItems={getItems}
212
- onValueChange={(value) => setValue(value)}
213
- onInputValueChange={(value) => {
214
- setValue({ value, label: value });
215
- }}
216
- />
217
- </ReactUIFeatureFlagsContext.Provider>
218
- );
203
+ <ReactUIFeatureFlagsContext.Provider value={{ comboBoxAllowValueChangeInEditingState: true }}>
204
+ <Button onClick={handleValueChange}>Обновить</Button>
205
+ <ComboBox
206
+ value={value}
207
+ searchOnFocus={false}
208
+ getItems={getItems}
209
+ onValueChange={(value) => setValue(value)}
210
+ onInputValueChange={(value) => {
211
+ setValue({ value, label: value });
212
+ }}
213
+ />
214
+ </ReactUIFeatureFlagsContext.Provider>
219
215
  ```
220
216
 
221
217
  ## Объект со всеми флагами
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@skbkontur/react-ui",
3
- "version": "4.21.1",
3
+ "version": "4.21.2",
4
4
  "description": "UI Components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "index.js",
7
7
  "sideEffects": false,
8
- "homepage": "https://tech.skbkontur.ru/react-ui/4.21.1/",
8
+ "homepage": "https://tech.skbkontur.ru/react-ui/4.21.2/",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "git@github.com:skbkontur/retail-ui.git"