@skbkontur/react-ui 5.0.0 → 5.0.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.
@@ -1 +1 @@
1
- {"version":3,"names":["PropTypes","React","Popup","LocaleContext","locale","InternalDateGetter","ArrowAUpIcon16Light","ThemeFactory","InternalDate","MAX_FULLDATE","MIN_FULLDATE","InternalDateOrder","InternalDateSeparator","InternalDateValidateCheck","DateInput","filterProps","CommonWrapper","isMobile","NativeDateInput","getRootNode","rootNode","isNonNullable","createPropsGetter","Calendar","ThemeContext","Button","getMonthInHumanFormat","getTodayDate","responsiveLayout","getMenuPositions","ZIndex","styles","DatePickerLocaleHelper","MobilePicker","INPUT_PASS_PROPS","autoFocus","disabled","warning","error","size","onKeyDown","MIN_WIDTH","DatePickerDataTids","root","input","label","pickerRoot","pickerTodayWrapper","DatePicker","_dec","_class","_DatePicker","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","calendar","state","opened","canUseMobileNativeDatePicker","today","focused","renderMain","props","picker","_this$getProps","minDate","maxDate","menuPos","menuAlign","isMobileLayout","createElement","value","parseValueToDate","onValueChange","enableTodayLink","isHoliday","onCloseRequest","handleBlur","renderDay","onMonthChange","Provider","months","dayCellChooseDateAriaLabel","selectMonthAriaLabel","selectYearAriaLabel","selectChosenAriaLabel","hasShadow","priority","priorities","PopupMenu","positions","anchorElement","getParent","margin","parseInt","theme","datePickerMenuOffsetY","className","calendarWrapper","onMouseDown","e","preventDefault","ref","c","handleValueChange","renderTodayLink","style","getRootStyle","onMouseEnter","onMouseLeave","onMouseOver","_extends","id","getInputRef","width","withIcon","onBlur","undefined","onFocus","handleFocus","handleSelectToday","handleSelect","_this$state$today","monthNative","month","year","scrollToMonth","minWidth","setState","close","blur","_inheritsLoose","_proto","prototype","componentDidMount","useMobileNativeDatePicker","focus","componentDidUpdate","render","_this2","Consumer","create","calendarBottomSeparatorBorder","rootNodeRef","setRootNode","date","validate","checks","NotNull","Native","toString","withPad","_this$locale","order","separator","setComponents","getTodayComponents","withSeparator","todayAriaLabel","onClick","icon","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","bool","string","isRequired","oneOf","oneOfType","number","func","range","_range","_range$minDate","_range$maxDate","internalDate","DMY","Dot","setRangeStart","setRangeEnd","parseValue","Number","Limits","Range"],"sources":["DatePicker.tsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { HTMLAttributes } from 'react';\n\nimport { Popup } from '../../internal/Popup';\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 { 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 { 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 { getMonthInHumanFormat, getTodayDate } from '../Calendar/CalendarUtils';\nimport { SizeProp } from '../../lib/types/props';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\nimport { ZIndex } from '../../internal/ZIndex';\n\nimport { styles } from './DatePicker.styles';\nimport { DatePickerLocale, DatePickerLocaleHelper } from './locale';\nimport { MobilePicker } from './MobilePicker';\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<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate' | 'renderDay' | 'onMonthChange'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n autoFocus?: boolean;\n disabled?: boolean;\n /**\n * Отвечает за отображение кнопки \"Сегодня\".\n */\n enableTodayLink?: boolean;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Позволяет вручную задать текущую позицию выпадающего окна\n */\n menuPos?: 'top' | 'bottom';\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@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 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 menuPos: PropTypes.oneOf(['top', 'bottom']),\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 renderDay: PropTypes.func,\n\n onMonthChange: 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 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() {\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.getProps()}>\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, 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.handleBlur}\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={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 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={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 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 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={this.handleSelectToday(today)}\n icon={<ArrowAUpIcon16Light />}\n >\n {this.locale.today}\n </Button>\n </div>\n );\n }\n\n private handleSelectToday = (today: string) => () => {\n this.handleSelect(today);\n\n if (this.calendar) {\n const { month: monthNative, year } = this.state.today;\n const month = getMonthInHumanFormat(monthNative);\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["PropTypes","React","Popup","LocaleContext","locale","InternalDateGetter","ArrowAUpIcon16Light","ThemeFactory","InternalDate","MAX_FULLDATE","MIN_FULLDATE","InternalDateOrder","InternalDateSeparator","InternalDateValidateCheck","DateInput","filterProps","CommonWrapper","isMobile","NativeDateInput","getRootNode","rootNode","isNonNullable","createPropsGetter","Calendar","ThemeContext","Button","getTodayDate","responsiveLayout","getMenuPositions","ZIndex","styles","DatePickerLocaleHelper","MobilePicker","INPUT_PASS_PROPS","autoFocus","disabled","warning","error","size","onKeyDown","MIN_WIDTH","DatePickerDataTids","root","input","label","pickerRoot","pickerTodayWrapper","DatePicker","_dec","_class","_DatePicker","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","opened","canUseMobileNativeDatePicker","today","focused","renderMain","props","picker","_this$getProps","minDate","maxDate","menuPos","menuAlign","isMobileLayout","createElement","value","parseValueToDate","onValueChange","enableTodayLink","isHoliday","onCloseRequest","handleBlur","renderDay","onMonthChange","Provider","months","dayCellChooseDateAriaLabel","selectMonthAriaLabel","selectYearAriaLabel","selectChosenAriaLabel","hasShadow","priority","priorities","PopupMenu","positions","anchorElement","getParent","margin","parseInt","theme","datePickerMenuOffsetY","className","calendarWrapper","onMouseDown","e","preventDefault","handleValueChange","renderTodayLink","style","getRootStyle","onMouseEnter","onMouseLeave","onMouseOver","_extends","id","ref","getInputRef","width","withIcon","onBlur","undefined","onFocus","handleFocus","minWidth","setState","close","handleSelect","blur","_inheritsLoose","_proto","prototype","componentDidMount","useMobileNativeDatePicker","focus","componentDidUpdate","render","_this2","Consumer","create","calendarBottomSeparatorBorder","rootNodeRef","setRootNode","date","validate","checks","NotNull","Native","toString","withPad","_this3","_this$locale","order","separator","setComponents","getTodayComponents","withSeparator","todayAriaLabel","onClick","icon","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","bool","string","isRequired","oneOf","oneOfType","number","func","range","_range","_range$minDate","_range$maxDate","internalDate","DMY","Dot","setRangeStart","setRangeEnd","parseValue","Number","Limits","Range"],"sources":["DatePicker.tsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { HTMLAttributes } from 'react';\n\nimport { Popup } from '../../internal/Popup';\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 { 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 { 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';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\nimport { ZIndex } from '../../internal/ZIndex';\n\nimport { styles } from './DatePicker.styles';\nimport { DatePickerLocale, DatePickerLocaleHelper } from './locale';\nimport { MobilePicker } from './MobilePicker';\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<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate' | 'renderDay' | 'onMonthChange'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n autoFocus?: boolean;\n disabled?: boolean;\n /**\n * Отвечает за отображение кнопки \"Сегодня\".\n */\n enableTodayLink?: boolean;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Позволяет вручную задать текущую позицию выпадающего окна\n */\n menuPos?: 'top' | 'bottom';\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@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 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 menuPos: PropTypes.oneOf(['top', 'bottom']),\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 renderDay: PropTypes.func,\n\n onMonthChange: 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 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 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() {\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.getProps()}>\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, 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.handleBlur}\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={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={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 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 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 = () => {\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"],"mappings":"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","ignoreList":[]}
@@ -101,7 +101,6 @@ export declare class DatePicker extends React.PureComponent<DatePickerProps, Dat
101
101
  static defaultProps: DefaultProps;
102
102
  private getProps;
103
103
  private theme;
104
- private calendar;
105
104
  private readonly locale;
106
105
  static validate: (value: Nullable<string>, range?: {
107
106
  minDate?: string | undefined;
@@ -131,7 +130,6 @@ export declare class DatePicker extends React.PureComponent<DatePickerProps, Dat
131
130
  renderMain: (props: CommonWrapperRestProps<DatePickerProps>) => React.JSX.Element;
132
131
  private parseValueToDate;
133
132
  private renderTodayLink;
134
- private handleSelectToday;
135
133
  getParent: () => Nullable<Element>;
136
134
  private getRootStyle;
137
135
  private getInputRef;
@@ -5,7 +5,7 @@ var _excluded = ["disabled", "icon", "rightIcon", "use", "loading", "_button", "
5
5
  var _class, _Link;
6
6
  import React from 'react';
7
7
  import { globalObject } from '@skbkontur/global-object';
8
- import { resetButton, disableTextSelect } from "../../../lib/styles/Mixins";
8
+ import { resetButton } from "../../../lib/styles/Mixins";
9
9
  import { keyListener } from "../../../lib/events/keyListener";
10
10
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
11
11
  import { isExternalLink } from "../../../lib/utils";
@@ -92,7 +92,7 @@ export var Link = rootNode(_class = (_Link = /*#__PURE__*/function (_React$Compo
92
92
  });
93
93
  var nonInteractive = disabled || loading;
94
94
  var rootProps = _extends({}, rest, {
95
- className: cx((_cx = {}, _cx[styles.root(_this.theme)] = true, _cx[resetButton()] = Root === 'button', _cx[disableTextSelect()] = disabled || loading, _cx[styles.focus(_this.theme)] = isFocused, _cx[styles.disabled(_this.theme)] = disabled || loading, _cx[styles.useDefault(_this.theme)] = use === 'default', _cx[styles.useSuccess(_this.theme)] = use === 'success', _cx[styles.useDanger(_this.theme)] = use === 'danger', _cx[styles.useGrayed(_this.theme)] = use === 'grayed', _cx[styles.useGrayedFocus(_this.theme)] = use === 'grayed' && focused, _cx[styles.button(_this.theme)] = !!_button, _cx[styles.buttonOpened(_this.theme)] = !!_buttonOpened, _cx[styles.warning(_this.theme)] = warning, _cx[styles.error(_this.theme)] = error, _cx[styles.lineFocus(_this.theme)] = isFocused && use === 'default', _cx[styles.lineFocusSuccess(_this.theme)] = isFocused && use === 'success', _cx[styles.lineFocusDanger(_this.theme)] = isFocused && use === 'danger', _cx[styles.lineFocusGrayed(_this.theme)] = isFocused && use === 'grayed', _cx)),
95
+ className: cx((_cx = {}, _cx[styles.root(_this.theme)] = true, _cx[resetButton()] = Root === 'button', _cx[styles.focus(_this.theme)] = isFocused, _cx[styles.disabled(_this.theme)] = disabled || loading, _cx[styles.useDefault(_this.theme)] = use === 'default', _cx[styles.useSuccess(_this.theme)] = use === 'success', _cx[styles.useDanger(_this.theme)] = use === 'danger', _cx[styles.useGrayed(_this.theme)] = use === 'grayed', _cx[styles.useGrayedFocus(_this.theme)] = use === 'grayed' && focused, _cx[styles.button(_this.theme)] = !!_button, _cx[styles.buttonOpened(_this.theme)] = !!_buttonOpened, _cx[styles.warning(_this.theme)] = warning, _cx[styles.error(_this.theme)] = error, _cx[styles.lineFocus(_this.theme)] = isFocused && use === 'default', _cx[styles.lineFocusSuccess(_this.theme)] = isFocused && use === 'success', _cx[styles.lineFocusDanger(_this.theme)] = isFocused && use === 'danger', _cx[styles.lineFocusGrayed(_this.theme)] = isFocused && use === 'grayed', _cx)),
96
96
  onClick: _this.handleClick,
97
97
  onFocus: _this.handleFocus,
98
98
  onBlur: _this.handleBlur,
@@ -1 +1 @@
1
- {"version":3,"names":["React","globalObject","resetButton","disableTextSelect","keyListener","ThemeContext","isExternalLink","CommonWrapper","cx","rootNode","createPropsGetter","ThemeFactory","getVisualStateDataAttributes","styles","LinkIcon","LINK_DEFAULT_COMPONENT","LinkDataTids","root","Link","_class","_Link","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","focusedByTab","getTabIndex","_ref","nonInteractive","_ref$tabIndex","tabIndex","getRel","isAnchorProps","props","_this$props","rel","href","undefined","renderMain","_cx","disabled","icon","rightIcon","use","loading","_button","_buttonOpened","Root","component","_props$focused","focused","error","warning","theme","rest","_objectWithoutPropertiesLoose","_excluded","arrow","createElement","className","isFocused","leftIconElement","position","rightIconElement","hasBothIcons","rootProps","_extends","focus","useDefault","useSuccess","useDanger","useGrayed","useGrayedFocus","button","buttonOpened","lineFocus","lineFocusSuccess","lineFocusDanger","lineFocusGrayed","onClick","handleClick","onFocus","handleFocus","onBlur","handleBlur","children","requestAnimationFrame","isTabPressed","setState","event","_this$props2","_inheritsLoose","_proto","prototype","render","_this2","Consumer","create","rootNodeRef","setRootNode","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Link.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { resetButton, disableTextSelect } from '../../lib/styles/Mixins';\nimport { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter, DefaultizedProps } from '../../lib/createPropsGetter';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './Link.styles';\nimport { LinkIcon } from './LinkIcon';\n\nexport interface LinkInnerProps extends CommonProps {\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * Добавляет ссылке иконку слева.\n */\n icon?: React.ReactElement;\n /**\n * Добавляет ссылке иконку справа.\n */\n rightIcon?: React.ReactElement;\n /**\n * Тема ссылки.\n */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n /**\n * @ignore\n */\n _button?: boolean;\n /**\n * @ignore\n */\n _buttonOpened?: boolean;\n /**\n * HTML-атрибут `tabindex`.\n */\n tabIndex?: number;\n /**\n * Переводит ссылку в состояние загрузки.\n */\n loading?: boolean;\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n /**\n * @ignore\n */\n focused?: boolean;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n}\n\nconst LINK_DEFAULT_COMPONENT = 'a';\n\nexport type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<\n LinkInnerProps,\n C\n>;\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps<ButtonLinkAllowedValues>, 'use' | 'component'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps<ButtonLinkAllowedValues>, DefaultProps>;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<\n LinkProps<C>,\n LinkState\n> {\n public static __KONTUR_REACT_UI__ = 'Link';\n public static displayName = 'Link';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n component: LINK_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex = ({\n nonInteractive,\n tabIndex = 0,\n }: {\n nonInteractive: boolean | undefined;\n tabIndex: number | undefined;\n }) => {\n return nonInteractive ? -1 : tabIndex;\n };\n\n private getRel = () => {\n if (isAnchorProps(this.props)) {\n const { rel, href } = this.props;\n if (!rel && href) {\n return `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n return rel;\n }\n\n return undefined;\n };\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n icon,\n rightIcon,\n use,\n loading,\n _button,\n _buttonOpened,\n component: Root,\n focused = false,\n error,\n warning,\n tabIndex,\n theme,\n ...rest\n } = props;\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const leftIconElement = icon && <LinkIcon icon={icon} loading={loading} position=\"left\" />;\n const rightIconElement = rightIcon && (\n <LinkIcon hasBothIcons={!!icon && !!rightIcon} icon={rightIcon} loading={loading} position=\"right\" />\n );\n const nonInteractive = disabled || loading;\n\n const rootProps = {\n ...rest,\n className: cx({\n [styles.root(this.theme)]: true,\n [resetButton()]: Root === 'button',\n [disableTextSelect()]: disabled || loading,\n [styles.focus(this.theme)]: isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [styles.useDefault(this.theme)]: use === 'default',\n [styles.useSuccess(this.theme)]: use === 'success',\n [styles.useDanger(this.theme)]: use === 'danger',\n [styles.useGrayed(this.theme)]: use === 'grayed',\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.lineFocus(this.theme)]: isFocused && use === 'default',\n [styles.lineFocusSuccess(this.theme)]: isFocused && use === 'success',\n [styles.lineFocusDanger(this.theme)]: isFocused && use === 'danger',\n [styles.lineFocusGrayed(this.theme)]: isFocused && use === 'grayed',\n }),\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ nonInteractive, tabIndex }),\n rel: this.getRel(),\n };\n\n return (\n <Root data-tid={LinkDataTids.root} {...rootProps} {...getVisualStateDataAttributes({ disabled })}>\n {leftIconElement}\n {this.props.children}\n {rightIconElement}\n {arrow}\n </Root>\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private handleClick = (event: React.MouseEvent) => {\n const { onClick, disabled, loading } = this.props;\n\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n\nconst isAnchorProps = (props: LinkProps<any>): props is LinkProps<'a'> => {\n return props.component === 'a';\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","globalObject","resetButton","keyListener","ThemeContext","isExternalLink","CommonWrapper","cx","rootNode","createPropsGetter","ThemeFactory","getVisualStateDataAttributes","styles","LinkIcon","LINK_DEFAULT_COMPONENT","LinkDataTids","root","Link","_class","_Link","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","focusedByTab","getTabIndex","_ref","nonInteractive","_ref$tabIndex","tabIndex","getRel","isAnchorProps","props","_this$props","rel","href","undefined","renderMain","_cx","disabled","icon","rightIcon","use","loading","_button","_buttonOpened","Root","component","_props$focused","focused","error","warning","theme","rest","_objectWithoutPropertiesLoose","_excluded","arrow","createElement","className","isFocused","leftIconElement","position","rightIconElement","hasBothIcons","rootProps","_extends","focus","useDefault","useSuccess","useDanger","useGrayed","useGrayedFocus","button","buttonOpened","lineFocus","lineFocusSuccess","lineFocusDanger","lineFocusGrayed","onClick","handleClick","onFocus","handleFocus","onBlur","handleBlur","children","requestAnimationFrame","isTabPressed","setState","event","_this$props2","_inheritsLoose","_proto","prototype","render","_this2","Consumer","create","rootNodeRef","setRootNode","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Link.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { resetButton } from '../../lib/styles/Mixins';\nimport { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter, DefaultizedProps } from '../../lib/createPropsGetter';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './Link.styles';\nimport { LinkIcon } from './LinkIcon';\n\nexport interface LinkInnerProps extends CommonProps {\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * Добавляет ссылке иконку слева.\n */\n icon?: React.ReactElement;\n /**\n * Добавляет ссылке иконку справа.\n */\n rightIcon?: React.ReactElement;\n /**\n * Тема ссылки.\n */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n /**\n * @ignore\n */\n _button?: boolean;\n /**\n * @ignore\n */\n _buttonOpened?: boolean;\n /**\n * HTML-атрибут `tabindex`.\n */\n tabIndex?: number;\n /**\n * Переводит ссылку в состояние загрузки.\n */\n loading?: boolean;\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n /**\n * @ignore\n */\n focused?: boolean;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n}\n\nconst LINK_DEFAULT_COMPONENT = 'a';\n\nexport type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<\n LinkInnerProps,\n C\n>;\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps<ButtonLinkAllowedValues>, 'use' | 'component'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps<ButtonLinkAllowedValues>, DefaultProps>;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<\n LinkProps<C>,\n LinkState\n> {\n public static __KONTUR_REACT_UI__ = 'Link';\n public static displayName = 'Link';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n component: LINK_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex = ({\n nonInteractive,\n tabIndex = 0,\n }: {\n nonInteractive: boolean | undefined;\n tabIndex: number | undefined;\n }) => {\n return nonInteractive ? -1 : tabIndex;\n };\n\n private getRel = () => {\n if (isAnchorProps(this.props)) {\n const { rel, href } = this.props;\n if (!rel && href) {\n return `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n return rel;\n }\n\n return undefined;\n };\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n icon,\n rightIcon,\n use,\n loading,\n _button,\n _buttonOpened,\n component: Root,\n focused = false,\n error,\n warning,\n tabIndex,\n theme,\n ...rest\n } = props;\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const leftIconElement = icon && <LinkIcon icon={icon} loading={loading} position=\"left\" />;\n const rightIconElement = rightIcon && (\n <LinkIcon hasBothIcons={!!icon && !!rightIcon} icon={rightIcon} loading={loading} position=\"right\" />\n );\n const nonInteractive = disabled || loading;\n\n const rootProps = {\n ...rest,\n className: cx({\n [styles.root(this.theme)]: true,\n [resetButton()]: Root === 'button',\n [styles.focus(this.theme)]: isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [styles.useDefault(this.theme)]: use === 'default',\n [styles.useSuccess(this.theme)]: use === 'success',\n [styles.useDanger(this.theme)]: use === 'danger',\n [styles.useGrayed(this.theme)]: use === 'grayed',\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.lineFocus(this.theme)]: isFocused && use === 'default',\n [styles.lineFocusSuccess(this.theme)]: isFocused && use === 'success',\n [styles.lineFocusDanger(this.theme)]: isFocused && use === 'danger',\n [styles.lineFocusGrayed(this.theme)]: isFocused && use === 'grayed',\n }),\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ nonInteractive, tabIndex }),\n rel: this.getRel(),\n };\n\n return (\n <Root data-tid={LinkDataTids.root} {...rootProps} {...getVisualStateDataAttributes({ disabled })}>\n {leftIconElement}\n {this.props.children}\n {rightIconElement}\n {arrow}\n </Root>\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private handleClick = (event: React.MouseEvent) => {\n const { onClick, disabled, loading } = this.props;\n\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n\nconst isAnchorProps = (props: LinkProps<any>): props is LinkProps<'a'> => {\n return props.component === 'a';\n};\n"],"mappings":"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","ignoreList":[]}
@@ -166,11 +166,9 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_Menu = /*#__PURE
166
166
  return;
167
167
  }
168
168
  if (isKeyArrowUp(event)) {
169
- console.log('here');
170
169
  event.preventDefault();
171
170
  _this.up();
172
171
  } else if (isKeyArrowDown(event)) {
173
- console.log('there');
174
172
  event.preventDefault();
175
173
  _this.down();
176
174
  } else if (isKeyEnter(event)) {
@@ -1 +1 @@
1
- {"version":3,"names":["React","globalObject","isBrowser","isKeyArrowDown","isKeyArrowUp","isKeyEnter","MenuSeparator","ThemeFactory","getDOMRect","responsiveLayout","isNonNullable","ScrollContainer","MenuItemDataTids","ThemeContext","cx","getRootNode","rootNode","isIE11","createPropsGetter","isInstanceOf","styles","MenuNavigation","MenuContext","MenuDataTids","root","Menu","_class","_Menu","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","highlightedIndex","maxHeight","scrollState","enableIconPadding","unmounted","contentRef","createRef","menuNavigation","content","focusOnRootElement","HTMLElement","focus","renderHeader","_cx","createElement","className","wrapper","headerWrapper","ref","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","_cx2","footerWrapper","footer","Provider","value","create","menuSeparatorMarginY","setInitialSelection","i","initialSelectedItemIndex","down","shouldRecalculateMaxHeight","prevProps","_this$props","children","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","Children","count","calculateMaxHeight","parsedMaxHeight","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","height","setState","refScrollContainer","scrollContainer","scrollToSelected","highlightedItem","scrollTo","scrollToTop","scrollToBottom","scroll","nextIndex","items","handleKeyDown","event","onKeyDown","defaultPrevented","console","log","preventDefault","up","select","getStyle","align","maxWidth","width","minWidth","handleScrollStateChange","setEnableIconPadding","isIconPaddingEnabled","preventIconsOffset","_inheritsLoose","_proto","prototype","componentWillUnmount","componentDidMount","componentDidUpdate","render","_this2","Consumer","renderMain","move","enter","_this$menuNavigation$","navigate","reset","hasHighlightedItem","highlightItem","index","highlightByIndex","_cx3","_cx4","isEmpty","_this$getProps","hasMargin","preventWindowScroll","offsetY","top","scrollContainerScrollBarOffsetY","right","bottom","isMobile","isMobileLayout","getAlignRightClass","mobileRoot","shadow","style","id","setRootNode","tabIndex","onScrollStateChange","disabled","disableScrollContainer","scrollContainerMobile","navigation","onItemClick","step","cyclicSelection","childrenToArray","filter","PureComponent","__KONTUR_REACT_UI__","displayName","ret","forEach","child","push","_cx5","alignRight","alignRightIE11","alignRightIE11FixAutoWidth"],"sources":["Menu.tsx"],"sourcesContent":["import React, { CSSProperties, HTMLAttributes } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { isNonNullable } from '../../lib/utils';\nimport { ScrollContainer, ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { MenuItem, MenuItemDataTids } from '../../components/MenuItem';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isIE11 } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\n\nimport { styles } from './Menu.styles';\nimport { MenuNavigation } from './MenuNavigation';\nimport { MenuContext } from './MenuContext';\n\nexport interface MenuProps extends Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n children: React.ReactNode;\n hasMargin?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n /**\n * Предотвращает выравнивание текста всех пунктов меню относительно друг друга.\n * Так, если хотя бы у одного пункта меню есть иконка, текст в остальных пунктах меню будет выровнен относительно пункта меню с иконкой\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n /**\n * Циклический перебор айтемов меню (по-дефолтну включен)\n */\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\nexport interface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n enableIconPadding: boolean;\n}\n\nexport const MenuDataTids = {\n root: 'Menu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n MenuProps,\n | 'align'\n | 'width'\n | 'hasMargin'\n | 'maxHeight'\n | 'preventWindowScroll'\n | 'cyclicSelection'\n | 'initialSelectedItemIndex'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Menu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n public static displayName = 'Menu';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasMargin: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(Menu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n enableIconPadding: false,\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private isMobileLayout!: boolean;\n private unmounted = false;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private contentRef = React.createRef<HTMLDivElement>();\n private menuNavigation: MenuNavigation<MenuItem> = new MenuNavigation(this.contentRef, MenuItemDataTids.content);\n\n public componentWillUnmount() {\n this.unmounted = true;\n }\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n this.unmounted = false;\n }\n\n public componentDidUpdate(prevProps: MenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public up() {\n this.move(-1);\n }\n\n /**\n * @public\n */\n public down() {\n this.move(1);\n }\n\n /**\n * @public\n */\n public enter(event: React.SyntheticEvent<HTMLElement>) {\n this.menuNavigation.highlightedItem?.navigate();\n return this.menuNavigation.select(event);\n }\n\n /**\n * @public\n */\n public reset() {\n this.menuNavigation.reset();\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n return !!this.menuNavigation.highlightedItem;\n }\n\n public highlightItem(index: number) {\n this.menuNavigation.highlightByIndex(index);\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n const { hasMargin, maxHeight, preventWindowScroll } = this.getProps();\n\n const offsetY = {\n top: `${this.theme.scrollContainerScrollBarOffsetY}`,\n right: 0,\n bottom: `${this.theme.scrollContainerScrollBarOffsetY}`,\n };\n\n const isMobile = this.isMobileLayout;\n return (\n <div\n data-tid={MenuDataTids.root}\n className={cx(getAlignRightClass(this.props), {\n [styles.root(this.theme)]: true,\n [styles.hasMargin(this.theme)]: hasMargin,\n [styles.mobileRoot(this.theme)]: isMobile,\n [styles.shadow(this.theme)]: !isMobile,\n })}\n style={this.getStyle(this.props)}\n id={this.props.id}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header && this.renderHeader()}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n disabled={this.props.disableScrollContainer}\n offsetY={offsetY}\n >\n <div\n className={cx({\n [styles.scrollContainer(this.theme)]: true,\n [styles.scrollContainerMobile(this.theme)]: isMobile,\n })}\n ref={this.contentRef}\n >\n <MenuContext.Provider\n value={{\n navigation: this.menuNavigation,\n onItemClick: this.props.onItemClick,\n enableIconPadding: this.state.enableIconPadding,\n setEnableIconPadding: this.setEnableIconPadding,\n }}\n >\n {this.props.children}\n </MenuContext.Provider>\n </div>\n </ScrollContainer>\n {this.props.footer && this.renderFooter()}\n </div>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.headerWrapper()]: true,\n })}\n ref={(el) => (this.header = el)}\n >\n <div className={styles.contentWrapper()}>{this.props.header}</div>\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.footerWrapper()]: true,\n })}\n ref={(el) => (this.footer = el)}\n >\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeContext.Provider>\n );\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.down();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && isBrowser(globalObject) && rootNode) {\n const rootElementMaxHeight = globalObject.getComputedStyle?.(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private scrollToSelected = () => {\n const highlightedItem = this.menuNavigation.highlightedItem;\n if (this.scrollContainer && highlightedItem) {\n const rootNode = getRootNode(highlightedItem);\n // TODO: Remove this check once IF-647 is resolved\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n this.scrollContainer.scrollTo(rootNode);\n }\n }\n };\n\n private scrollToTop = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToTop();\n }\n };\n\n private scrollToBottom = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToBottom();\n }\n };\n\n private scroll = (nextIndex: number) => {\n switch (nextIndex) {\n case 0:\n this.scrollToTop?.();\n break;\n case this.menuNavigation.items.length - 1:\n this.scrollToBottom?.();\n break;\n default:\n this.scrollToSelected?.();\n }\n };\n\n private move(step: number) {\n if (this.unmounted) {\n // NOTE workaround, because `ComboBox` call `process.nextTick` in reducer\n return;\n }\n const nextIndex = this.menuNavigation.move(step, this.getProps().cyclicSelection);\n this.scroll(nextIndex);\n }\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(event)) {\n console.log('here');\n event.preventDefault();\n this.up();\n } else if (isKeyArrowDown(event)) {\n console.log('there');\n event.preventDefault();\n this.down();\n } else if (isKeyEnter(event)) {\n this.menuNavigation.select(event);\n }\n };\n\n private getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: this.state.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: this.state.maxHeight,\n };\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n\n private setEnableIconPadding = (isIconPaddingEnabled: boolean) => {\n !this.getProps().preventIconsOffset && this.setState({ enableIconPadding: isIconPaddingEnabled });\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n\nconst getAlignRightClass = (props: MenuProps) => {\n if (props.align === 'right') {\n return cx({\n [styles.alignRight()]: !isIE11,\n [styles.alignRightIE11()]: isIE11,\n [styles.alignRightIE11FixAutoWidth()]: isIE11 && props.width === 'auto',\n });\n }\n\n return null;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","globalObject","isBrowser","isKeyArrowDown","isKeyArrowUp","isKeyEnter","MenuSeparator","ThemeFactory","getDOMRect","responsiveLayout","isNonNullable","ScrollContainer","MenuItemDataTids","ThemeContext","cx","getRootNode","rootNode","isIE11","createPropsGetter","isInstanceOf","styles","MenuNavigation","MenuContext","MenuDataTids","root","Menu","_class","_Menu","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","highlightedIndex","maxHeight","scrollState","enableIconPadding","unmounted","contentRef","createRef","menuNavigation","content","focusOnRootElement","HTMLElement","focus","renderHeader","_cx","createElement","className","wrapper","headerWrapper","ref","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","_cx2","footerWrapper","footer","Provider","value","create","menuSeparatorMarginY","setInitialSelection","i","initialSelectedItemIndex","down","shouldRecalculateMaxHeight","prevProps","_this$props","children","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","Children","count","calculateMaxHeight","parsedMaxHeight","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","height","setState","refScrollContainer","scrollContainer","scrollToSelected","highlightedItem","scrollTo","scrollToTop","scrollToBottom","scroll","nextIndex","items","handleKeyDown","event","onKeyDown","defaultPrevented","preventDefault","up","select","getStyle","align","maxWidth","width","minWidth","handleScrollStateChange","setEnableIconPadding","isIconPaddingEnabled","preventIconsOffset","_inheritsLoose","_proto","prototype","componentWillUnmount","componentDidMount","componentDidUpdate","render","_this2","Consumer","renderMain","move","enter","_this$menuNavigation$","navigate","reset","hasHighlightedItem","highlightItem","index","highlightByIndex","_cx3","_cx4","isEmpty","_this$getProps","hasMargin","preventWindowScroll","offsetY","top","scrollContainerScrollBarOffsetY","right","bottom","isMobile","isMobileLayout","getAlignRightClass","mobileRoot","shadow","style","id","setRootNode","tabIndex","onScrollStateChange","disabled","disableScrollContainer","scrollContainerMobile","navigation","onItemClick","step","cyclicSelection","childrenToArray","filter","PureComponent","__KONTUR_REACT_UI__","displayName","ret","forEach","child","push","_cx5","alignRight","alignRightIE11","alignRightIE11FixAutoWidth"],"sources":["Menu.tsx"],"sourcesContent":["import React, { CSSProperties, HTMLAttributes } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { isNonNullable } from '../../lib/utils';\nimport { ScrollContainer, ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { MenuItem, MenuItemDataTids } from '../../components/MenuItem';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isIE11 } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\n\nimport { styles } from './Menu.styles';\nimport { MenuNavigation } from './MenuNavigation';\nimport { MenuContext } from './MenuContext';\n\nexport interface MenuProps extends Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n children: React.ReactNode;\n hasMargin?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n /**\n * Предотвращает выравнивание текста всех пунктов меню относительно друг друга.\n * Так, если хотя бы у одного пункта меню есть иконка, текст в остальных пунктах меню будет выровнен относительно пункта меню с иконкой\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n /**\n * Циклический перебор айтемов меню (по-дефолтну включен)\n */\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\nexport interface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n enableIconPadding: boolean;\n}\n\nexport const MenuDataTids = {\n root: 'Menu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n MenuProps,\n | 'align'\n | 'width'\n | 'hasMargin'\n | 'maxHeight'\n | 'preventWindowScroll'\n | 'cyclicSelection'\n | 'initialSelectedItemIndex'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Menu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n public static displayName = 'Menu';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasMargin: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(Menu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n enableIconPadding: false,\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private isMobileLayout!: boolean;\n private unmounted = false;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private contentRef = React.createRef<HTMLDivElement>();\n private menuNavigation: MenuNavigation<MenuItem> = new MenuNavigation(this.contentRef, MenuItemDataTids.content);\n\n public componentWillUnmount() {\n this.unmounted = true;\n }\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n this.unmounted = false;\n }\n\n public componentDidUpdate(prevProps: MenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public up() {\n this.move(-1);\n }\n\n /**\n * @public\n */\n public down() {\n this.move(1);\n }\n\n /**\n * @public\n */\n public enter(event: React.SyntheticEvent<HTMLElement>) {\n this.menuNavigation.highlightedItem?.navigate();\n return this.menuNavigation.select(event);\n }\n\n /**\n * @public\n */\n public reset() {\n this.menuNavigation.reset();\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n return !!this.menuNavigation.highlightedItem;\n }\n\n public highlightItem(index: number) {\n this.menuNavigation.highlightByIndex(index);\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n const { hasMargin, maxHeight, preventWindowScroll } = this.getProps();\n\n const offsetY = {\n top: `${this.theme.scrollContainerScrollBarOffsetY}`,\n right: 0,\n bottom: `${this.theme.scrollContainerScrollBarOffsetY}`,\n };\n\n const isMobile = this.isMobileLayout;\n return (\n <div\n data-tid={MenuDataTids.root}\n className={cx(getAlignRightClass(this.props), {\n [styles.root(this.theme)]: true,\n [styles.hasMargin(this.theme)]: hasMargin,\n [styles.mobileRoot(this.theme)]: isMobile,\n [styles.shadow(this.theme)]: !isMobile,\n })}\n style={this.getStyle(this.props)}\n id={this.props.id}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header && this.renderHeader()}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n disabled={this.props.disableScrollContainer}\n offsetY={offsetY}\n >\n <div\n className={cx({\n [styles.scrollContainer(this.theme)]: true,\n [styles.scrollContainerMobile(this.theme)]: isMobile,\n })}\n ref={this.contentRef}\n >\n <MenuContext.Provider\n value={{\n navigation: this.menuNavigation,\n onItemClick: this.props.onItemClick,\n enableIconPadding: this.state.enableIconPadding,\n setEnableIconPadding: this.setEnableIconPadding,\n }}\n >\n {this.props.children}\n </MenuContext.Provider>\n </div>\n </ScrollContainer>\n {this.props.footer && this.renderFooter()}\n </div>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.headerWrapper()]: true,\n })}\n ref={(el) => (this.header = el)}\n >\n <div className={styles.contentWrapper()}>{this.props.header}</div>\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.footerWrapper()]: true,\n })}\n ref={(el) => (this.footer = el)}\n >\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeContext.Provider>\n );\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.down();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && isBrowser(globalObject) && rootNode) {\n const rootElementMaxHeight = globalObject.getComputedStyle?.(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private scrollToSelected = () => {\n const highlightedItem = this.menuNavigation.highlightedItem;\n if (this.scrollContainer && highlightedItem) {\n const rootNode = getRootNode(highlightedItem);\n // TODO: Remove this check once IF-647 is resolved\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n this.scrollContainer.scrollTo(rootNode);\n }\n }\n };\n\n private scrollToTop = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToTop();\n }\n };\n\n private scrollToBottom = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToBottom();\n }\n };\n\n private scroll = (nextIndex: number) => {\n switch (nextIndex) {\n case 0:\n this.scrollToTop?.();\n break;\n case this.menuNavigation.items.length - 1:\n this.scrollToBottom?.();\n break;\n default:\n this.scrollToSelected?.();\n }\n };\n\n private move(step: number) {\n if (this.unmounted) {\n // NOTE workaround, because `ComboBox` call `process.nextTick` in reducer\n return;\n }\n const nextIndex = this.menuNavigation.move(step, this.getProps().cyclicSelection);\n this.scroll(nextIndex);\n }\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(event)) {\n event.preventDefault();\n this.up();\n } else if (isKeyArrowDown(event)) {\n event.preventDefault();\n this.down();\n } else if (isKeyEnter(event)) {\n this.menuNavigation.select(event);\n }\n };\n\n private getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: this.state.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: this.state.maxHeight,\n };\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n\n private setEnableIconPadding = (isIconPaddingEnabled: boolean) => {\n !this.getProps().preventIconsOffset && this.setState({ enableIconPadding: isIconPaddingEnabled });\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n\nconst getAlignRightClass = (props: MenuProps) => {\n if (props.align === 'right') {\n return cx({\n [styles.alignRight()]: !isIE11,\n [styles.alignRightIE11()]: isIE11,\n [styles.alignRightIE11FixAutoWidth()]: isIE11 && props.width === 'auto',\n });\n }\n\n return null;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -46,9 +46,9 @@ export var ZIndex = rootNode(_class = (_ZIndex = /*#__PURE__*/function (_React$C
46
46
  var savedZIndexContext = DEFAULT_ZINDEX_CONTEXT;
47
47
  var portal = (_element$parentElemen = element.parentElement) == null ? void 0 : _element$parentElemen.closest("[" + PORTAL_OUTLET_ATTR + "]");
48
48
  if (isInstanceOf(portal, globalObject.HTMLElement)) {
49
- var _noscript$parentEleme;
49
+ var _globalObject$documen, _noscript$parentEleme;
50
50
  var portalID = portal.getAttribute(PORTAL_OUTLET_ATTR);
51
- var noscript = document.querySelector("noscript[" + PORTAL_INLET_ATTR + "=\"" + portalID + "\"]");
51
+ var noscript = (_globalObject$documen = globalObject.document) == null ? void 0 : _globalObject$documen.querySelector("noscript[" + PORTAL_INLET_ATTR + "=\"" + portalID + "\"]");
52
52
  var parent = noscript == null || (_noscript$parentEleme = noscript.parentElement) == null ? void 0 : _noscript$parentEleme.closest('[style*=z-index]');
53
53
  if (isInstanceOf(parent, globalObject.HTMLElement)) {
54
54
  var _parent$parentElement;
@@ -1 +1 @@
1
- {"version":3,"names":["React","globalObject","isBrowser","callChildRef","rootNode","createPropsGetter","isInstanceOf","LoaderDataTids","PORTAL_INLET_ATTR","PORTAL_OUTLET_ATTR","incrementZIndex","removeZIndex","upperBorder","componentPriorities","DEFAULT_ZINDEX_CONTEXT","parentLayerZIndex","maxZIndex","Infinity","ZIndexContext","createContext","displayName","ZIndex","_class","_ZIndex","_React$Component","props","_this","call","state","zIndex","savedZIndexContext","getProps","defaultProps","zIndexContext","wrapperRef","element","setRootNode","tryGetContextByDOM","increment","_this$getProps","priority","delta","_element$parentElemen","portal","parentElement","closest","HTMLElement","_noscript$parentEleme","portalID","getAttribute","noscript","document","querySelector","parent","_parent$parentElement","newZIndex","Number","style","dataset","tid","veil","calcZIndex","setState","_inheritsLoose","_proto","prototype","componentDidUpdate","prevProps","componentWillUnmount","render","_this2","_this$getProps2","children","applyZIndex","coverChildren","createStackingContext","useWrapper","rest","_objectWithoutPropertiesLoose","_excluded","wrapperStyle","createElement","Consumer","context","_ref","zIndexContextValue","isFinite","body","isolation","transform","child","_extends","ref","Provider","value","allowedValuesIntervalLength","scale","Math","ceil","Component","priorities","__KONTUR_REACT_UI__","propTypes","Error","trunc"],"sources":["ZIndex.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { LoaderDataTids } from '../../components/Loader';\nimport { PORTAL_INLET_ATTR, PORTAL_OUTLET_ATTR } from '../RenderContainer';\n\nimport { incrementZIndex, removeZIndex, upperBorder, LayerComponentName, componentPriorities } from './ZIndexStorage';\n\nconst DEFAULT_ZINDEX_CONTEXT = { parentLayerZIndex: 0, maxZIndex: Infinity };\n\nconst ZIndexContext = React.createContext(DEFAULT_ZINDEX_CONTEXT);\n\nZIndexContext.displayName = 'ZIndexContext';\n\nexport interface ZIndexProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Приращение к z-index\n */\n delta?: number;\n priority?: number | LayerComponentName;\n style?: React.CSSProperties;\n createStackingContext?: boolean;\n coverChildren?: boolean;\n applyZIndex?: boolean;\n className?: string;\n wrapperRef?: React.Ref<HTMLDivElement> | undefined | null;\n\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<div/>`.\n * Для случаев, когда необходимо задать **только** контекст для области.\n *\n * @default true\n */\n useWrapper?: boolean;\n}\n\ntype DefaultProps = Required<\n Pick<\n ZIndexProps,\n 'delta' | 'priority' | 'style' | 'applyZIndex' | 'coverChildren' | 'createStackingContext' | 'useWrapper'\n >\n>;\n\ninterface ZIndexState {\n zIndex: number;\n savedZIndexContext: { parentLayerZIndex: number; maxZIndex: number } | null;\n}\n\n@rootNode\nexport class ZIndex extends React.Component<ZIndexProps, ZIndexState> {\n public static priorities = componentPriorities;\n public static __KONTUR_REACT_UI__ = 'ZIndex';\n public static displayName = 'ZIndex';\n\n public static defaultProps: DefaultProps = {\n delta: 10,\n priority: 0,\n style: {},\n applyZIndex: true,\n coverChildren: false,\n createStackingContext: false,\n useWrapper: true,\n };\n\n public state: ZIndexState = {\n zIndex: 0,\n savedZIndexContext: null,\n };\n\n private getProps = createPropsGetter(ZIndex.defaultProps);\n\n public static propTypes = {\n delta(props: ZIndexProps) {\n if ((props.delta || ZIndex.defaultProps.delta) <= 0) {\n return new Error(`[ZIndex]: Prop 'delta' must be greater than 0, received ${props.delta}`);\n }\n if (Math.trunc(props.delta || ZIndex.defaultProps.delta) !== props.delta) {\n return new Error(`[ZIndex]: Prop 'delta' must be integer, received ${props.delta}`);\n }\n },\n };\n\n private setRootNode!: TSetRootNode;\n private zIndexContext: { parentLayerZIndex: number; maxZIndex: number } | null = null;\n\n constructor(props: ZIndexProps) {\n super(props);\n this.state.zIndex = this.increment();\n }\n\n public componentDidUpdate(prevProps: Readonly<ZIndexProps>) {\n if (prevProps.priority !== this.props.priority || prevProps.delta !== this.props.delta) {\n removeZIndex(this.state.zIndex);\n this.setState({ zIndex: this.increment() });\n }\n }\n\n public componentWillUnmount() {\n removeZIndex(this.state.zIndex);\n }\n\n public render() {\n const {\n style,\n children,\n delta,\n priority,\n applyZIndex,\n coverChildren,\n createStackingContext,\n wrapperRef,\n useWrapper,\n ...rest\n } = this.getProps();\n\n const wrapperStyle: React.CSSProperties = {};\n\n return (\n <ZIndexContext.Consumer>\n {(context) => {\n this.zIndexContext = context;\n const { parentLayerZIndex, maxZIndex } = this.state.savedZIndexContext || context;\n let zIndexContextValue = { parentLayerZIndex, maxZIndex };\n let newZIndex = 0;\n if (applyZIndex) {\n newZIndex = this.calcZIndex(parentLayerZIndex, maxZIndex);\n wrapperStyle.zIndex = newZIndex;\n\n zIndexContextValue = coverChildren\n ? { parentLayerZIndex, maxZIndex: newZIndex }\n : { parentLayerZIndex: newZIndex, maxZIndex: Number.isFinite(maxZIndex) ? newZIndex : Infinity };\n\n if (createStackingContext) {\n isBrowser(globalObject) && 'isolation' in globalObject.document.body.style\n ? (wrapperStyle.isolation = 'isolate')\n : (wrapperStyle.transform = 'rotate(0)');\n }\n }\n\n const child = !useWrapper ? (\n children\n ) : (\n <div style={{ ...style, ...wrapperStyle }} ref={this.wrapperRef} {...rest}>\n {children}\n </div>\n );\n\n return <ZIndexContext.Provider value={zIndexContextValue}>{child}</ZIndexContext.Provider>;\n }}\n </ZIndexContext.Consumer>\n );\n }\n\n private wrapperRef = (element: HTMLDivElement | null) => {\n const { wrapperRef } = this.props;\n this.setRootNode(element);\n wrapperRef && callChildRef(wrapperRef, element);\n element && this.tryGetContextByDOM(element);\n };\n\n private calcZIndex(parentLayerZIndex: number, maxZIndex: number) {\n let newZIndex = this.state.zIndex;\n\n if (Number.isFinite(maxZIndex)) {\n const allowedValuesIntervalLength = maxZIndex - parentLayerZIndex;\n const scale = upperBorder / allowedValuesIntervalLength;\n newZIndex = Math.ceil(newZIndex / scale);\n }\n\n newZIndex += parentLayerZIndex;\n\n return newZIndex;\n }\n\n private increment = () => {\n const { priority, delta } = this.getProps();\n\n return incrementZIndex(priority, delta);\n };\n\n private tryGetContextByDOM = (element: HTMLDivElement) => {\n if (DEFAULT_ZINDEX_CONTEXT === this.zIndexContext && this.state.savedZIndexContext === null) {\n let savedZIndexContext = DEFAULT_ZINDEX_CONTEXT;\n const portal = element.parentElement?.closest(`[${PORTAL_OUTLET_ATTR}]`);\n\n if (isInstanceOf(portal, globalObject.HTMLElement)) {\n const portalID = portal.getAttribute(PORTAL_OUTLET_ATTR);\n const noscript = document.querySelector(`noscript[${PORTAL_INLET_ATTR}=\"${portalID}\"]`);\n const parent = noscript?.parentElement?.closest('[style*=z-index]');\n\n if (isInstanceOf(parent, globalObject.HTMLElement)) {\n const newZIndex = Number(parent.style.zIndex || 0);\n\n let maxZIndex = Infinity;\n\n if (parent.parentElement?.dataset.tid === LoaderDataTids.veil) {\n maxZIndex = this.calcZIndex(newZIndex, maxZIndex);\n }\n\n savedZIndexContext = { maxZIndex, parentLayerZIndex: newZIndex };\n }\n }\n\n this.setState({ savedZIndexContext });\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","globalObject","isBrowser","callChildRef","rootNode","createPropsGetter","isInstanceOf","LoaderDataTids","PORTAL_INLET_ATTR","PORTAL_OUTLET_ATTR","incrementZIndex","removeZIndex","upperBorder","componentPriorities","DEFAULT_ZINDEX_CONTEXT","parentLayerZIndex","maxZIndex","Infinity","ZIndexContext","createContext","displayName","ZIndex","_class","_ZIndex","_React$Component","props","_this","call","state","zIndex","savedZIndexContext","getProps","defaultProps","zIndexContext","wrapperRef","element","setRootNode","tryGetContextByDOM","increment","_this$getProps","priority","delta","_element$parentElemen","portal","parentElement","closest","HTMLElement","_globalObject$documen","_noscript$parentEleme","portalID","getAttribute","noscript","document","querySelector","parent","_parent$parentElement","newZIndex","Number","style","dataset","tid","veil","calcZIndex","setState","_inheritsLoose","_proto","prototype","componentDidUpdate","prevProps","componentWillUnmount","render","_this2","_this$getProps2","children","applyZIndex","coverChildren","createStackingContext","useWrapper","rest","_objectWithoutPropertiesLoose","_excluded","wrapperStyle","createElement","Consumer","context","_ref","zIndexContextValue","isFinite","body","isolation","transform","child","_extends","ref","Provider","value","allowedValuesIntervalLength","scale","Math","ceil","Component","priorities","__KONTUR_REACT_UI__","propTypes","Error","trunc"],"sources":["ZIndex.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { LoaderDataTids } from '../../components/Loader';\nimport { PORTAL_INLET_ATTR, PORTAL_OUTLET_ATTR } from '../RenderContainer';\n\nimport { incrementZIndex, removeZIndex, upperBorder, LayerComponentName, componentPriorities } from './ZIndexStorage';\n\nconst DEFAULT_ZINDEX_CONTEXT = { parentLayerZIndex: 0, maxZIndex: Infinity };\n\nconst ZIndexContext = React.createContext(DEFAULT_ZINDEX_CONTEXT);\n\nZIndexContext.displayName = 'ZIndexContext';\n\nexport interface ZIndexProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Приращение к z-index\n */\n delta?: number;\n priority?: number | LayerComponentName;\n style?: React.CSSProperties;\n createStackingContext?: boolean;\n coverChildren?: boolean;\n applyZIndex?: boolean;\n className?: string;\n wrapperRef?: React.Ref<HTMLDivElement> | undefined | null;\n\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<div/>`.\n * Для случаев, когда необходимо задать **только** контекст для области.\n *\n * @default true\n */\n useWrapper?: boolean;\n}\n\ntype DefaultProps = Required<\n Pick<\n ZIndexProps,\n 'delta' | 'priority' | 'style' | 'applyZIndex' | 'coverChildren' | 'createStackingContext' | 'useWrapper'\n >\n>;\n\ninterface ZIndexState {\n zIndex: number;\n savedZIndexContext: { parentLayerZIndex: number; maxZIndex: number } | null;\n}\n\n@rootNode\nexport class ZIndex extends React.Component<ZIndexProps, ZIndexState> {\n public static priorities = componentPriorities;\n public static __KONTUR_REACT_UI__ = 'ZIndex';\n public static displayName = 'ZIndex';\n\n public static defaultProps: DefaultProps = {\n delta: 10,\n priority: 0,\n style: {},\n applyZIndex: true,\n coverChildren: false,\n createStackingContext: false,\n useWrapper: true,\n };\n\n public state: ZIndexState = {\n zIndex: 0,\n savedZIndexContext: null,\n };\n\n private getProps = createPropsGetter(ZIndex.defaultProps);\n\n public static propTypes = {\n delta(props: ZIndexProps) {\n if ((props.delta || ZIndex.defaultProps.delta) <= 0) {\n return new Error(`[ZIndex]: Prop 'delta' must be greater than 0, received ${props.delta}`);\n }\n if (Math.trunc(props.delta || ZIndex.defaultProps.delta) !== props.delta) {\n return new Error(`[ZIndex]: Prop 'delta' must be integer, received ${props.delta}`);\n }\n },\n };\n\n private setRootNode!: TSetRootNode;\n private zIndexContext: { parentLayerZIndex: number; maxZIndex: number } | null = null;\n\n constructor(props: ZIndexProps) {\n super(props);\n this.state.zIndex = this.increment();\n }\n\n public componentDidUpdate(prevProps: Readonly<ZIndexProps>) {\n if (prevProps.priority !== this.props.priority || prevProps.delta !== this.props.delta) {\n removeZIndex(this.state.zIndex);\n this.setState({ zIndex: this.increment() });\n }\n }\n\n public componentWillUnmount() {\n removeZIndex(this.state.zIndex);\n }\n\n public render() {\n const {\n style,\n children,\n delta,\n priority,\n applyZIndex,\n coverChildren,\n createStackingContext,\n wrapperRef,\n useWrapper,\n ...rest\n } = this.getProps();\n\n const wrapperStyle: React.CSSProperties = {};\n\n return (\n <ZIndexContext.Consumer>\n {(context) => {\n this.zIndexContext = context;\n const { parentLayerZIndex, maxZIndex } = this.state.savedZIndexContext || context;\n let zIndexContextValue = { parentLayerZIndex, maxZIndex };\n let newZIndex = 0;\n if (applyZIndex) {\n newZIndex = this.calcZIndex(parentLayerZIndex, maxZIndex);\n wrapperStyle.zIndex = newZIndex;\n\n zIndexContextValue = coverChildren\n ? { parentLayerZIndex, maxZIndex: newZIndex }\n : { parentLayerZIndex: newZIndex, maxZIndex: Number.isFinite(maxZIndex) ? newZIndex : Infinity };\n\n if (createStackingContext) {\n isBrowser(globalObject) && 'isolation' in globalObject.document.body.style\n ? (wrapperStyle.isolation = 'isolate')\n : (wrapperStyle.transform = 'rotate(0)');\n }\n }\n\n const child = !useWrapper ? (\n children\n ) : (\n <div style={{ ...style, ...wrapperStyle }} ref={this.wrapperRef} {...rest}>\n {children}\n </div>\n );\n\n return <ZIndexContext.Provider value={zIndexContextValue}>{child}</ZIndexContext.Provider>;\n }}\n </ZIndexContext.Consumer>\n );\n }\n\n private wrapperRef = (element: HTMLDivElement | null) => {\n const { wrapperRef } = this.props;\n this.setRootNode(element);\n wrapperRef && callChildRef(wrapperRef, element);\n element && this.tryGetContextByDOM(element);\n };\n\n private calcZIndex(parentLayerZIndex: number, maxZIndex: number) {\n let newZIndex = this.state.zIndex;\n\n if (Number.isFinite(maxZIndex)) {\n const allowedValuesIntervalLength = maxZIndex - parentLayerZIndex;\n const scale = upperBorder / allowedValuesIntervalLength;\n newZIndex = Math.ceil(newZIndex / scale);\n }\n\n newZIndex += parentLayerZIndex;\n\n return newZIndex;\n }\n\n private increment = () => {\n const { priority, delta } = this.getProps();\n\n return incrementZIndex(priority, delta);\n };\n\n private tryGetContextByDOM = (element: HTMLDivElement) => {\n if (DEFAULT_ZINDEX_CONTEXT === this.zIndexContext && this.state.savedZIndexContext === null) {\n let savedZIndexContext = DEFAULT_ZINDEX_CONTEXT;\n const portal = element.parentElement?.closest(`[${PORTAL_OUTLET_ATTR}]`);\n\n if (isInstanceOf(portal, globalObject.HTMLElement)) {\n const portalID = portal.getAttribute(PORTAL_OUTLET_ATTR);\n const noscript = globalObject.document?.querySelector(`noscript[${PORTAL_INLET_ATTR}=\"${portalID}\"]`);\n const parent = noscript?.parentElement?.closest('[style*=z-index]');\n\n if (isInstanceOf(parent, globalObject.HTMLElement)) {\n const newZIndex = Number(parent.style.zIndex || 0);\n\n let maxZIndex = Infinity;\n\n if (parent.parentElement?.dataset.tid === LoaderDataTids.veil) {\n maxZIndex = this.calcZIndex(newZIndex, maxZIndex);\n }\n\n savedZIndexContext = { maxZIndex, parentLayerZIndex: newZIndex };\n }\n }\n\n this.setState({ savedZIndexContext });\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,9 @@
1
1
  import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
2
- var _templateObject, _templateObject2, _templateObject3;
2
+ var _templateObject, _templateObject2;
3
3
  import { css } from "../../theming/Emotion";
4
4
  export var resetButton = function resetButton() {
5
5
  return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n outline: none;\n border: none;\n margin: 0; /* Need for Safari. */\n padding: 0;\n width: auto;\n overflow: visible; /* On IE it's hidden by default. */\n background: transparent;\n\n /* inherit font & color from ancestor */\n color: inherit;\n font: inherit;\n\n /* Normalize 'line-height'. Cannot be changed from 'normal' in Firefox 4+. */\n line-height: normal;\n\n /* Corrects font smoothing for webkit */\n -webkit-font-smoothing: inherit;\n -moz-osx-font-smoothing: inherit;\n\n /* Corrects inability to style clickable 'input' types in iOS */\n -webkit-appearance: none;\n text-align: inherit;\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n "])));
6
6
  };
7
7
  export var resetText = function resetText() {
8
8
  return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n letter-spacing: normal;\n line-height: normal;\n font-family: inherit;\n font-weight: normal;\n font-style: normal;\n font-variant: normal;\n font-stretch: normal;\n\n /* ie11 doesnt support 'initial' */\n text-align: left;\n text-align: initial;\n text-transform: none;\n text-shadow: none;\n "])));
9
- };
10
- export var disableTextSelect = function disableTextSelect() {
11
- return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n -webkit-touch-callout: none; /* iOS Safari */\n -webkit-user-select: none; /* Safari */\n -khtml-user-select: none; /* Konqueror HTML */\n -moz-user-select: none; /* Old versions of Firefox */\n -ms-user-select: none; /* Internet Explorer/Edge */\n user-select: none; /* Non-prefixed version, currently\n supported by Chrome, Edge, Opera and Firefox */\n "])));
12
9
  };
@@ -1 +1 @@
1
- {"version":3,"names":["css","resetButton","_templateObject","_taggedTemplateLiteralLoose","resetText","_templateObject2","disableTextSelect","_templateObject3"],"sources":["Mixins.ts"],"sourcesContent":["import { css } from '../theming/Emotion';\n\nexport const resetButton = () => {\n return css`\n outline: none;\n border: none;\n margin: 0; /* Need for Safari. */\n padding: 0;\n width: auto;\n overflow: visible; /* On IE it's hidden by default. */\n background: transparent;\n\n /* inherit font & color from ancestor */\n color: inherit;\n font: inherit;\n\n /* Normalize 'line-height'. Cannot be changed from 'normal' in Firefox 4+. */\n line-height: normal;\n\n /* Corrects font smoothing for webkit */\n -webkit-font-smoothing: inherit;\n -moz-osx-font-smoothing: inherit;\n\n /* Corrects inability to style clickable 'input' types in iOS */\n -webkit-appearance: none;\n text-align: inherit;\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n `;\n};\n\nexport const resetText = () => {\n return css`\n letter-spacing: normal;\n line-height: normal;\n font-family: inherit;\n font-weight: normal;\n font-style: normal;\n font-variant: normal;\n font-stretch: normal;\n\n /* ie11 doesnt support 'initial' */\n text-align: left;\n text-align: initial;\n text-transform: none;\n text-shadow: none;\n `;\n};\n\nexport const disableTextSelect = () => {\n return css`\n -webkit-touch-callout: none; /* iOS Safari */\n -webkit-user-select: none; /* Safari */\n -khtml-user-select: none; /* Konqueror HTML */\n -moz-user-select: none; /* Old versions of Firefox */\n -ms-user-select: none; /* Internet Explorer/Edge */\n user-select: none; /* Non-prefixed version, currently\n supported by Chrome, Edge, Opera and Firefox */\n `;\n};\n"],"mappings":"wJAAA,SAASA,GAAG,QAAQ,oBAAoB;;AAExC,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;EAC/B,OAAOD,GAAG,CAAAE,eAAA,KAAAA,eAAA,GAAAC,2BAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BZ,CAAC;;AAED,OAAO,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAA,EAAS;EAC7B,OAAOJ,GAAG,CAAAK,gBAAA,KAAAA,gBAAA,GAAAF,2BAAA;;;;;;;;;;;;;;;AAeZ,CAAC;;AAED,OAAO,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAA,EAAS;EACrC,OAAON,GAAG,CAAAO,gBAAA,KAAAA,gBAAA,GAAAJ,2BAAA;;;;;;;;;AASZ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["css","resetButton","_templateObject","_taggedTemplateLiteralLoose","resetText","_templateObject2"],"sources":["Mixins.ts"],"sourcesContent":["import { css } from '../theming/Emotion';\n\nexport const resetButton = () => {\n return css`\n outline: none;\n border: none;\n margin: 0; /* Need for Safari. */\n padding: 0;\n width: auto;\n overflow: visible; /* On IE it's hidden by default. */\n background: transparent;\n\n /* inherit font & color from ancestor */\n color: inherit;\n font: inherit;\n\n /* Normalize 'line-height'. Cannot be changed from 'normal' in Firefox 4+. */\n line-height: normal;\n\n /* Corrects font smoothing for webkit */\n -webkit-font-smoothing: inherit;\n -moz-osx-font-smoothing: inherit;\n\n /* Corrects inability to style clickable 'input' types in iOS */\n -webkit-appearance: none;\n text-align: inherit;\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n `;\n};\n\nexport const resetText = () => {\n return css`\n letter-spacing: normal;\n line-height: normal;\n font-family: inherit;\n font-weight: normal;\n font-style: normal;\n font-variant: normal;\n font-stretch: normal;\n\n /* ie11 doesnt support 'initial' */\n text-align: left;\n text-align: initial;\n text-transform: none;\n text-shadow: none;\n `;\n};\n"],"mappings":"sIAAA,SAASA,GAAG,QAAQ,oBAAoB;;AAExC,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;EAC/B,OAAOD,GAAG,CAAAE,eAAA,KAAAA,eAAA,GAAAC,2BAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BZ,CAAC;;AAED,OAAO,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAA,EAAS;EAC7B,OAAOJ,GAAG,CAAAK,gBAAA,KAAAA,gBAAA,GAAAF,2BAAA;;;;;;;;;;;;;;;AAeZ,CAAC","ignoreList":[]}
@@ -1,3 +1,2 @@
1
1
  export declare const resetButton: () => string;
2
2
  export declare const resetText: () => string;
3
- export declare const disableTextSelect: () => string;
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@skbkontur/react-ui",
3
- "version": "5.0.0",
3
+ "version": "5.0.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/5.0.0/",
8
+ "homepage": "https://tech.skbkontur.ru/react-ui/5.0.2/",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "git@github.com:skbkontur/retail-ui.git"