@skbkontur/react-ui 5.1.5 → 5.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/cjs/components/Calendar/CalendarDay.js +18 -2
- package/cjs/components/Calendar/CalendarDay.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.js +7 -15
- package/cjs/components/Calendar/DayCellView.js.map +1 -1
- package/cjs/components/Calendar/__creevey__/Calendar.creevey.mts +39 -0
- package/cjs/components/ComboBox/__creevey__/ComboBox.creevey.mts +4 -0
- package/cjs/components/DateInput/DateInput.js +12 -9
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePicker.d.ts +1 -1
- package/cjs/components/DateRangePicker/DateRangePicker.js +19 -15
- package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePicker.styles.d.ts +0 -1
- package/cjs/components/DateRangePicker/DateRangePicker.styles.js +13 -18
- package/cjs/components/DateRangePicker/DateRangePicker.styles.js.map +1 -1
- package/cjs/components/DateRangePicker/__creevey__/DateRangePicker.creevey.mts +1 -1
- package/cjs/components/Link/__creevey__/Link.creevey.mts +2 -2
- package/cjs/components/MaskedInput/__creevey__/MaskedInput.creevey.mts +8 -3
- package/cjs/components/Select/Select.d.ts +3 -0
- package/cjs/components/Select/Select.js +4 -1
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.js +1 -1
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.js +4 -1
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Sticky/Sticky.d.ts +3 -0
- package/cjs/components/Sticky/Sticky.js +15 -1
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Toggle/__creevey__/Toggle.creevey.mts +6 -2
- package/cjs/internal/DateSelect/DateSelect.js +13 -2
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/cjs/lib/getMenuPositions.d.ts +21 -1
- package/cjs/lib/getMenuPositions.js +45 -8
- package/cjs/lib/getMenuPositions.js.map +1 -1
- package/components/Calendar/CalendarDay/CalendarDay.js +9 -2
- package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -1
- package/components/Calendar/DayCellView/DayCellView.js +6 -10
- package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
- package/components/Calendar/__creevey__/Calendar.creevey.mts +39 -0
- package/components/ComboBox/__creevey__/ComboBox.creevey.mts +4 -0
- package/components/DateInput/DateInput/DateInput.js +12 -9
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +10 -11
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.d.ts +1 -1
- package/components/DateRangePicker/DateRangePicker.styles/DateRangePicker.styles.js +12 -15
- package/components/DateRangePicker/DateRangePicker.styles/DateRangePicker.styles.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.styles.d.ts +0 -1
- package/components/DateRangePicker/__creevey__/DateRangePicker.creevey.mts +1 -1
- package/components/Link/__creevey__/Link.creevey.mts +2 -2
- package/components/MaskedInput/__creevey__/MaskedInput.creevey.mts +8 -3
- package/components/Select/Select/Select.js +3 -2
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +3 -0
- package/components/SidePage/SidePage/SidePage.js +1 -1
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js +6 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/Sticky/Sticky/Sticky.js +9 -1
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +3 -0
- package/components/Toggle/__creevey__/Toggle.creevey.mts +6 -2
- package/internal/DateSelect/DateSelect/DateSelect.js +2 -0
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
- package/lib/getMenuPositions/getMenuPositions.js +33 -4
- package/lib/getMenuPositions/getMenuPositions.js.map +1 -1
- package/lib/getMenuPositions.d.ts +21 -1
- package/package.json +2 -2
|
@@ -177,7 +177,7 @@ kind('MaskedInput', () => {
|
|
|
177
177
|
bridge: true,
|
|
178
178
|
})
|
|
179
179
|
.click(context.webdriver.findElement({ css: 'input' }))
|
|
180
|
-
.pause(
|
|
180
|
+
.pause(1000)
|
|
181
181
|
.perform();
|
|
182
182
|
const select_half = await context.takeScreenshot();
|
|
183
183
|
await context.webdriver
|
|
@@ -186,10 +186,15 @@ kind('MaskedInput', () => {
|
|
|
186
186
|
})
|
|
187
187
|
.click(context.webdriver.findElement({ css: 'body' }))
|
|
188
188
|
.click(context.webdriver.findElement({ css: 'input' }))
|
|
189
|
-
.
|
|
189
|
+
.pause(1000)
|
|
190
|
+
.sendKeys('1')
|
|
191
|
+
.sendKeys('2')
|
|
192
|
+
.sendKeys('3')
|
|
193
|
+
.sendKeys('4')
|
|
194
|
+
.pause(1000)
|
|
190
195
|
.click(context.webdriver.findElement({ css: 'body' }))
|
|
191
196
|
.click(context.webdriver.findElement({ css: 'input' }))
|
|
192
|
-
.pause(
|
|
197
|
+
.pause(1000)
|
|
193
198
|
.perform();
|
|
194
199
|
const select_all = await context.takeScreenshot();
|
|
195
200
|
await context.matchImages({ idle, select_half, select_all });
|
|
@@ -422,13 +422,14 @@ export var Select = (_dec = locale('Select', SelectLocaleHelper), responsiveLayo
|
|
|
422
422
|
var _this$getProps = this.getProps(),
|
|
423
423
|
menuWidth = _this$getProps.menuWidth,
|
|
424
424
|
menuPos = _this$getProps.menuPos,
|
|
425
|
-
menuAlign = _this$getProps.menuAlign
|
|
425
|
+
menuAlign = _this$getProps.menuAlign,
|
|
426
|
+
positions = _this$getProps.positions;
|
|
426
427
|
return /*#__PURE__*/React.createElement(Popup, {
|
|
427
428
|
opened: true,
|
|
428
429
|
hasShadow: true,
|
|
429
430
|
id: this.menuId,
|
|
430
431
|
"data-tid": SelectDataTids.menu,
|
|
431
|
-
positions: getMenuPositions(menuPos, menuAlign),
|
|
432
|
+
positions: positions != null ? positions : getMenuPositions(menuPos, menuAlign),
|
|
432
433
|
anchorElement: this.popupGetParent(),
|
|
433
434
|
priority: ZIndex.priorities.PopupMenu,
|
|
434
435
|
disablePortal: this.props.disablePortal,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","invariant","globalObject","debounce","isKeyArrowDown","isKeyArrowUp","isKeyArrowVertical","isKeyEnter","isKeyEscape","isKeySpace","locale","reactGetTextContent","Button","filterProps","Input","Menu","MenuItem","MenuSeparator","RenderLayer","createPropsGetter","getRandomID","isFunction","isNonNullable","isReactUINode","ThemeContext","CommonWrapper","MobilePopup","cx","responsiveLayout","getRootNode","rootNode","ThemeFactory","styles","linkStyles","Popup","ZIndex","getMenuPositions","ArrowDownIcon","Item","SelectLocaleHelper","getSelectTheme","SelectDataTids","PASS_BUTTON_PROPS","id","disabled","error","use","size","warning","corners","onMouseEnter","onMouseLeave","onMouseOver","SelectIds","menu","Select","_dec","_class","_Select","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","opened","value","props","defaultValue","searchPattern","menuId","buttonElement","getProps","defaultProps","open","setState","onOpen","close","onClose","focus","getDefaultButtonParams","_this$renderLabel","renderLabel","label","isPlaceholder","buttonParams","onClick","toggle","onKeyDown","handleKey","getSearch","createElement","className","search","ref","debouncedFocusInput","onValueChange","handleSearch","width","getMobileSearch","autoFocus","getMenuItems","isMobile","isMobileLayout","mapItems","iValue","item","i","comment","element","isValidElement","cloneElement","key","areValuesEqual","select","bind","renderItem","popupGetParent","focusInput","input","refMenu","e","preventDefault","up","down","enter","_this$menu","highlightItem","buttonRef","getButton","_props$ariaLabel","button","_renderButton","renderDefaultButton","Children","only","onFocus","onBlur","_inheritsLoose","_proto","prototype","componentDidUpdate","_prevProps","prevState","addEventListener","removeEventListener","render","_this2","Consumer","theme","create","menuOffsetY","selectMenuOffsetY","Provider","renderMain","getMenuRenderer","renderMobileMenu","renderMenu","_this$getProps$dataT","_cx","dataTid","root","style","maxWidth","undefined","rootMobile","_extends","rootNodeRef","setRootNode","onClickOutside","onFocusOutside","active","_this$locale","getValue","getItemByValue","renderValue","placeholder","getLeftIconClass","leftIconLink","leftIconLarge","leftIconMedium","leftIconSmall","params","_cx2","_cx3","_cx4","buttonProps","align","labelProps","customUsePlaceholder","placeholderDisabled","paddingRight","getSelectIconGap","useIsCustom","icon","selectButtonContainer","_icon","arrowWrap","arrowDisabled","customUseArrow","_this3","getArrowPadding","selectIconGapLarge","selectIconGapMedium","selectIconGapSmall","arrowLeftPadding","parseFloat","_this$getProps","menuWidth","menuPos","menuAlign","hasShadow","positions","anchorElement","priority","priorities","PopupMenu","disablePortal","margin","parseInt","minWidth","popupOffset","menuOffset","hasMargin","onItemClick","maxHeight","maxMenuHeight","headerChildComponent","caption","mobileMenuHeaderText","onCloseRequest","disableScrollContainer","_this$props$onValueCh","_this$props","fn","items","pattern","toLowerCase","result","index","_iterator","_createForOfIteratorHelperLoose","_step","done","entry","_normalizeEntry","normalizeEntry","filterItem","push","_iterator2","_step2","_normalizeEntry2","itemValue","value1","value2","Component","__KONTUR_REACT_UI__","displayName","SEP","staticElement","isArray","getTextFromItem","toString","itemText","indexOf"],"sources":["Select.tsx"],"sourcesContent":["import type { ReactNode, ReactPortal, AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport invariant from 'invariant';\nimport { globalObject } from '@skbkontur/global-object';\nimport debounce from 'lodash.debounce';\n\nimport {\n isKeyArrowDown,\n isKeyArrowUp,\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n} from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport { reactGetTextContent } from '../../lib/reactGetTextContent';\nimport type { ButtonProps, ButtonUse } from '../Button';\nimport { Button } from '../Button';\nimport { filterProps } from '../../lib/filterProps';\nimport { Input } from '../Input';\nimport { Menu } from '../../internal/Menu';\nimport type { MenuItemProps } from '../MenuItem';\nimport { MenuItem } from '../MenuItem';\nimport { MenuSeparator } from '../MenuSeparator';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { Nullable } from '../../typings/utility-types';\nimport { getRandomID, isFunction, isNonNullable, isReactUINode } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport type { MenuHeaderProps } from '../MenuHeader';\nimport type { SizeProp } from '../../lib/types/props';\nimport { styles as linkStyles } from '../Link/Link.styles';\nimport { Popup } from '../../internal/Popup';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\n\nimport { ArrowDownIcon } from './ArrowDownIcon';\nimport { Item } from './Item';\nimport type { SelectLocale } from './locale';\nimport { SelectLocaleHelper } from './locale';\nimport { styles } from './Select.styles';\nimport { getSelectTheme } from './selectTheme';\nimport { SelectDataTids } from './tids';\n\nexport * from './tids';\n\nexport interface ButtonParams\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label' | 'aria-expanded'> {\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает лейбл. */\n label: React.ReactNode;\n\n /** Задает функцию, которая вызывается при клике на селект. */\n onClick: () => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Определяет, открыто ли выпадающее меню. */\n opened: boolean;\n\n /** Определяет, есть ли Placeholder. */\n isPlaceholder: boolean;\n\n /** Задает размер контрола. */\n size: SizeProp;\n}\n\nconst PASS_BUTTON_PROPS = {\n id: true,\n disabled: true,\n error: true,\n use: true,\n size: true,\n warning: true,\n corners: true,\n\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n};\n\nexport const SelectIds = {\n menu: SelectDataTids.menu,\n} as const;\n\ntype SelectItem<TValue, TItem> =\n | [TValue, TItem, React.ReactNode?]\n | TItem\n | TValue\n | React.ReactElement\n | (() => React.ReactElement);\n\nexport interface SelectProps<TValue, TItem>\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** @ignore */\n _icon?: React.ReactNode;\n\n /** @ignore */\n _renderButton?: (params: ButtonParams) => React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Задает значение по умолчанию. */\n defaultValue?: TValue;\n\n menuOffset?: number;\n\n /** Отключает использование портала. */\n disablePortal?: boolean;\n\n /** Делает компонент недоступным.*/\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Задает функцию, которая отфильтровывает элементы по заданному паттерну. */\n filterItem?: (value: TValue, item: TItem, pattern: string) => boolean;\n\n /** Задает набор значений. Поддерживаются любые перечисляемые типы, в том числе `Array`, `Map`, `Immutable.Map`.\n *\n * Элементы воспринимаются следующим образом: если элемент — это массив, то первый элемент является значением,\n * второй — отображается в списке, а третий – комментарий;\n * если элемент не является массивом, то он используется и для отображения, и для значения.\n *\n * Для вставки разделителя можно использовать `Select.SEP`.\n *\n * Вставить невыделяемый элемент со своей разметкой можно так:\n * @example\n * ```\n * <Select ...\n * items={[Select.staticElement(() => <div>My Element</div>)]}\n * />\n * ```\n *\n * Чтобы добавить стандартный отступ для статического элемента:\n * @example\n * ```\n * <Select.Item>My Element</Select.Item>\n * ``` */\n items?: Array<SelectItem<TValue, TItem>>;\n\n /** Задает максимальную высоту меню. */\n maxMenuHeight?: number;\n\n /** Задает максимальную ширину. */\n maxWidth?: React.CSSProperties['maxWidth'];\n\n /** Задает текущую позицию выпадающего окна вручную. */\n menuPos?: 'top' | 'bottom' | 'middle';\n\n /** Задает выравнивание меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает ширину выпадающего меню. */\n menuWidth?: React.CSSProperties['width'];\n\n /** Задает функцию, вызывающуюся при изменении value. */\n onValueChange?: (value: TValue) => void;\n\n /** Задает функцию, которая вызывается при закрытии меню. */\n onClose?: () => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (e: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при открытии меню. */\n onOpen?: () => void;\n\n /** Задает текст, который отображается если не введено никакое значение. */\n placeholder?: React.ReactNode;\n\n /** Задает функцию, которая отображает элемент в выпадающем списке. */\n renderItem?: (value: TValue, item?: TItem) => React.ReactNode;\n\n /** Задает функцию, которая отображает выбранный элемент. */\n renderValue?: (value: TValue, item?: TItem) => React.ReactNode;\n\n /** Задает функцию сравнения `value` с элементом из `items`. */\n areValuesEqual?: (value1: TValue, value2: TValue) => boolean;\n\n /** Показывает строку поиска в списке. */\n search?: boolean;\n\n /** Задает значение. */\n value?: TValue;\n\n theme?: ThemeIn | Theme;\n\n /** Задает длину контрола. */\n width?: number | string;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задаёт стиль кнопки. */\n use?: ButtonUse;\n\n /** Задает размер. */\n size?: SizeProp;\n\n /** Задаёт HTML-событие `onfocus`. */\n onFocus?: React.FocusEventHandler<HTMLElement>;\n\n /** Задаёт HTML-событие `onblur`. */\n onBlur?: React.FocusEventHandler<HTMLElement>;\n\n /** Задает текст заголовка выпадающего меню в мобильной версии. */\n mobileMenuHeaderText?: string;\n}\n\nexport interface SelectState<TValue> {\n opened: boolean;\n searchPattern: string;\n value: Nullable<TValue>;\n}\n\ninterface FocusableReactElement extends React.ReactElement<any> {\n focus: (event?: any) => void;\n}\n\ntype DefaultProps<TValue, TItem> = Required<\n Pick<SelectProps<TValue, TItem>, 'renderValue' | 'renderItem' | 'areValuesEqual' | 'filterItem' | 'use' | 'size'>\n>;\n\n/**\n * Раскрывающийся список `Select` позволяет выбрать значение из заранее известного набора вариантов.\n *\n * Используйте `Select` при:\n * * заполнении форм, например для выбора месяца.\n * * переключении состояний, например, фильтра.\n * * выборе предустановленных настроек, например, частоты уведомлений, часового пояса.\n *\n * Не используйте `Select` для выбора элементов меню. В таком случае воспользуйтесь компонентом Dropdown.\n */\n@responsiveLayout\n@rootNode\n@locale('Select', SelectLocaleHelper)\n// Suggested solutions break current behavior\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport class Select<TValue = {}, TItem = {}> extends React.Component<SelectProps<TValue, TItem>, SelectState<TValue>> {\n public static __KONTUR_REACT_UI__ = 'Select';\n public static displayName = 'Select';\n\n public static defaultProps: DefaultProps<unknown, ReactNode | ReactPortal> = {\n renderValue,\n renderItem,\n areValuesEqual,\n filterItem,\n use: 'default',\n size: 'small',\n };\n\n public static Item = Item;\n public static SEP = () => <MenuSeparator />;\n\n public static staticElement = (element: React.ReactElement | (() => React.ReactElement)) => {\n invariant(\n React.isValidElement(element) || typeof element === 'function',\n 'Select.staticElement(element) expects element to be a valid react element.',\n );\n return element;\n };\n\n public state: SelectState<TValue> = {\n opened: false,\n value: this.props.defaultValue,\n searchPattern: '',\n };\n\n private theme!: Theme;\n private isMobileLayout!: boolean;\n private readonly locale!: SelectLocale;\n private menu: Nullable<Menu>;\n private menuId = SelectIds.menu + getRandomID();\n private buttonElement: FocusableReactElement | null = null;\n private getProps = createPropsGetter(Select.defaultProps);\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(_prevProps: SelectProps<TValue, TItem>, prevState: SelectState<TValue>) {\n if (!prevState.opened && this.state.opened) {\n globalObject.addEventListener?.('popstate', this.close);\n }\n if (prevState.opened && !this.state.opened) {\n globalObject.removeEventListener?.('popstate', this.close);\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = ThemeFactory.create(\n {\n menuOffsetY: theme.selectMenuOffsetY,\n },\n theme,\n );\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public open = () => {\n if (!this.state.opened) {\n this.setState({ opened: true });\n\n if (this.props.onOpen) {\n this.props.onOpen();\n }\n }\n };\n\n /**\n * @public\n */\n public close = () => {\n if (this.state.opened) {\n this.setState({ opened: false, searchPattern: '' });\n\n if (this.props.onClose) {\n this.props.onClose();\n }\n }\n };\n\n /**\n * @public\n */\n public focus = () => {\n if (this.buttonElement && this.buttonElement.focus) {\n this.buttonElement.focus();\n }\n };\n\n private getMenuRenderer() {\n if (this.props.disabled) {\n return null;\n }\n\n if (this.isMobileLayout) {\n return this.renderMobileMenu();\n }\n\n if (this.state.opened) {\n return this.renderMenu();\n }\n\n return null;\n }\n\n private renderMain() {\n const buttonParams = this.getDefaultButtonParams();\n const dataTid = this.getProps()['data-tid'] ?? SelectDataTids.root;\n const button = (\n <ThemeContext.Provider value={getSelectTheme(this.theme, this.props)}>\n {this.getButton(buttonParams)}\n </ThemeContext.Provider>\n );\n\n const isMobile = this.isMobileLayout;\n\n const style = {\n width: this.props.width,\n maxWidth: this.props.maxWidth || undefined,\n };\n\n const root = (\n <span\n data-tid={dataTid}\n className={cx({ [styles.root()]: true, [styles.rootMobile(this.theme)]: isMobile })}\n style={style}\n >\n {button}\n {this.getMenuRenderer()}\n </span>\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <RenderLayer\n onClickOutside={this.close}\n onFocusOutside={this.close}\n active={isMobile ? false : this.state.opened}\n >\n {root}\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n private getDefaultButtonParams = (): ButtonParams => {\n const { label, isPlaceholder } = this.renderLabel();\n\n const buttonParams: ButtonParams = {\n opened: this.state.opened,\n label,\n isPlaceholder,\n onClick: this.toggle,\n onKeyDown: this.handleKey,\n size: this.getProps().size,\n disabled: this.getProps().disabled,\n };\n\n return buttonParams;\n };\n\n private renderLabel() {\n const value = this.getValue();\n const item = this.getItemByValue(value);\n\n if (isNonNullable(value)) {\n return {\n label: this.getProps().renderValue(value, item),\n isPlaceholder: false,\n };\n }\n\n return {\n label: <span>{this.props.placeholder || this.locale?.placeholder}</span>,\n isPlaceholder: true,\n };\n }\n\n private getLeftIconClass(size: SizeProp | undefined) {\n if (this.getProps().use === 'link') {\n return styles.leftIconLink(this.theme);\n }\n\n switch (size) {\n case 'large':\n return styles.leftIconLarge(this.theme);\n case 'medium':\n return styles.leftIconMedium(this.theme);\n case 'small':\n default:\n return styles.leftIconSmall(this.theme);\n }\n }\n\n private renderDefaultButton(params: ButtonParams) {\n const buttonProps: ButtonProps = {\n ...filterProps(this.props, PASS_BUTTON_PROPS),\n align: 'left' as React.CSSProperties['textAlign'],\n disabled: this.props.disabled,\n width: '100%',\n onClick: params.onClick,\n onKeyDown: params.onKeyDown,\n active: params.opened,\n size: params.size,\n };\n const use = this.getProps().use;\n\n const labelProps = {\n 'data-tid': SelectDataTids.label,\n className: cx({\n [styles.label()]: use !== 'link',\n [styles.placeholder(this.theme)]: params.isPlaceholder,\n [styles.customUsePlaceholder()]: params.isPlaceholder && use !== 'default',\n [styles.placeholderDisabled(this.theme)]: params.isPlaceholder && this.props.disabled,\n }),\n style: {\n paddingRight: this.getSelectIconGap(),\n },\n };\n\n const useIsCustom = use !== 'default';\n\n const icon = <ArrowDownIcon size={this.props.size} />;\n\n return (\n <Button {...buttonProps}>\n <div className={cx(styles.selectButtonContainer(), { [linkStyles.root(this.theme)]: use === 'link' })}>\n {this.props._icon && <div className={this.getLeftIconClass(this.props.size)}>{this.props._icon}</div>}\n <span {...labelProps}>{params.label}</span>\n\n <div\n className={cx(styles.arrowWrap(this.theme), {\n [styles.arrowDisabled(this.theme)]: this.props.disabled,\n [styles.customUseArrow()]: useIsCustom,\n })}\n >\n {icon}\n </div>\n </div>\n </Button>\n );\n }\n\n private getSelectIconGap(): number {\n const getArrowPadding = () => {\n switch (this.props.size) {\n case 'large':\n return this.theme.selectIconGapLarge;\n case 'medium':\n return this.theme.selectIconGapMedium;\n case 'small':\n default:\n return this.theme.selectIconGapSmall;\n }\n };\n const arrowLeftPadding = parseFloat(getArrowPadding()) || 0;\n\n return arrowLeftPadding;\n }\n\n private renderMenu(): React.ReactNode {\n const search = this.props.search ? this.getSearch() : null;\n\n const value = this.getValue();\n const { menuWidth, menuPos, menuAlign } = this.getProps();\n\n return (\n <Popup\n opened\n hasShadow\n id={this.menuId}\n data-tid={SelectDataTids.menu}\n positions={getMenuPositions(menuPos, menuAlign)}\n anchorElement={this.popupGetParent()}\n priority={ZIndex.priorities.PopupMenu}\n disablePortal={this.props.disablePortal}\n margin={parseInt(this.theme.menuOffsetY) - 1}\n width={menuWidth}\n minWidth={menuWidth === undefined ? '100%' : undefined}\n popupOffset={this.props.menuOffset}\n >\n <Menu\n hasMargin={false}\n ref={this.refMenu}\n onItemClick={this.close}\n maxHeight={this.props.maxMenuHeight}\n align={menuAlign}\n >\n {search}\n {this.getMenuItems(value)}\n </Menu>\n </Popup>\n );\n }\n\n private getSearch = () => {\n return (\n <div className={styles.search()} onKeyDown={this.handleKey}>\n <Input ref={this.debouncedFocusInput} onValueChange={this.handleSearch} width=\"100%\" />\n </div>\n );\n };\n\n private renderMobileMenu(): React.ReactNode {\n const search = this.props.search ? this.getMobileSearch() : null;\n const value = this.getValue();\n\n return (\n <MobilePopup\n headerChildComponent={search}\n caption={this.props.mobileMenuHeaderText}\n onCloseRequest={this.close}\n opened={this.state.opened}\n >\n <Menu onItemClick={this.close} disableScrollContainer maxHeight={'auto'}>\n {this.getMenuItems(value)}\n </Menu>\n </MobilePopup>\n );\n }\n\n private getMobileSearch = () => {\n return (\n <Input\n autoFocus\n value={this.state.searchPattern}\n ref={this.debouncedFocusInput}\n onValueChange={this.handleSearch}\n width=\"100%\"\n />\n );\n };\n\n private getMenuItems = (value: Nullable<TValue>) => {\n const isMobile = this.isMobileLayout;\n const size = this.props.size;\n\n return this.mapItems(\n (iValue: TValue, item: TItem | (() => React.ReactNode), i: number, comment: Nullable<React.ReactNode>) => {\n if (isFunction(item)) {\n const element = item();\n\n if (React.isValidElement(element)) {\n return React.cloneElement(element, { key: i, isMobile, size } as MenuItemProps);\n }\n\n return null;\n }\n\n if (React.isValidElement(item)) {\n if (isReactUINode('MenuItem', item)) {\n return React.cloneElement(item, { key: i, isMobile, size } as MenuItemProps);\n }\n if (isReactUINode('MenuHeader', item)) {\n return React.cloneElement(item, { size } as MenuHeaderProps);\n }\n return React.cloneElement(item, { key: i });\n }\n\n return (\n <MenuItem\n key={i}\n state={this.areValuesEqual(iValue, value) ? 'selected' : null}\n onClick={this.select.bind(this, iValue)}\n comment={comment}\n isMobile={isMobile}\n size={this.props.size}\n >\n {this.getProps().renderItem(iValue, item)}\n </MenuItem>\n );\n },\n );\n };\n\n private popupGetParent = () => {\n return getRootNode(this);\n };\n\n // fix cases when an Input is rendered in portal\n // https://github.com/skbkontur/retail-ui/issues/1995\n private focusInput = (input: Input) => input?.focus();\n private debouncedFocusInput = debounce(this.focusInput);\n\n private refMenu = (menu: Menu) => {\n this.menu = menu;\n };\n\n private toggle = () => {\n if (this.state.opened) {\n this.close();\n } else {\n this.open();\n }\n };\n\n private handleKey = (e: React.KeyboardEvent<HTMLElement>) => {\n if (!this.state.opened) {\n if (isKeySpace(e) || isKeyArrowVertical(e)) {\n e.preventDefault();\n this.open();\n }\n } else {\n switch (true) {\n case isKeyEscape(e):\n this.focus();\n this.close();\n break;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n break;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n break;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n break;\n }\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleSearch = (value: string) => {\n this.setState({ searchPattern: value });\n this.menu?.highlightItem(0);\n };\n\n private select(value: TValue) {\n this.focus();\n this.setState({ opened: false, value });\n\n if (!this.areValuesEqual(this.getValue(), value)) {\n this.props.onValueChange?.(value);\n }\n }\n\n private getValue() {\n if (this.props.value !== undefined) {\n return this.props.value;\n }\n return this.state.value;\n }\n\n private mapItems(fn: (value: TValue, item: TItem, index: number, comment?: string) => React.ReactNode) {\n const { items } = this.props;\n if (!items) {\n return [];\n }\n const pattern = this.state.searchPattern && this.state.searchPattern.toLowerCase();\n\n const result: React.ReactNode[] = [];\n let index = 0;\n for (const entry of items) {\n const [value, item, comment] = normalizeEntry(entry as TItem);\n\n if (!pattern || this.getProps().filterItem(value, item, pattern)) {\n result.push(fn(value, item, index, comment));\n ++index;\n }\n }\n\n return result;\n }\n\n private getItemByValue(value?: Nullable<TValue>) {\n if (value === null || value === undefined) {\n return null;\n }\n\n const items = this.props.items || [];\n\n for (const entry of items) {\n const [itemValue, item] = normalizeEntry(entry);\n\n if (this.areValuesEqual(itemValue, value)) {\n return item;\n }\n }\n return null;\n }\n\n private areValuesEqual(value1: Nullable<TValue>, value2: Nullable<TValue>) {\n return isNonNullable(value1) && isNonNullable(value2) && this.getProps().areValuesEqual(value1, value2);\n }\n\n private buttonRef = (element: FocusableReactElement | null) => {\n this.buttonElement = element;\n };\n\n private getButton = (buttonParams: ButtonParams) => {\n const button = this.props._renderButton\n ? this.props._renderButton(buttonParams)\n : this.renderDefaultButton(buttonParams);\n\n const buttonElement = React.Children.only(button);\n\n return React.isValidElement(buttonElement)\n ? React.cloneElement(buttonElement as React.ReactElement, {\n ref: this.buttonRef,\n onFocus: this.props.onFocus,\n onBlur: this.props.onBlur,\n size: this.props.size,\n 'aria-describedby': this.props['aria-describedby'],\n 'aria-expanded': this.state.opened ? 'true' : 'false',\n 'aria-controls': this.menuId,\n 'aria-label': (buttonElement as React.ReactElement).props['aria-label'] ?? this.props['aria-label'],\n })\n : buttonElement;\n };\n}\n\nfunction renderValue<TValue, TItem>(value: TValue, item: Nullable<TItem>) {\n return item;\n}\n\nfunction renderItem<TValue, TItem>(value: TValue, item?: TItem) {\n return item;\n}\n\nfunction areValuesEqual<TValue>(value1: TValue, value2: TValue) {\n return value1 === value2;\n}\n\nfunction normalizeEntry(entry: any) {\n if (Array.isArray(entry)) {\n return entry;\n }\n\n return [entry, entry, undefined];\n}\n\nconst getTextFromItem = (item: any): string => {\n if (typeof item === 'string') {\n return item;\n }\n\n if (isFunction(item)) {\n return getTextFromItem(item());\n }\n\n if (React.isValidElement(item)) {\n return reactGetTextContent(item);\n }\n\n if (typeof item === 'number') {\n return item.toString(10);\n }\n\n return '';\n};\n\nfunction filterItem<TValue>(value: TValue, item: any, pattern: string) {\n if (item === Select.SEP) {\n return false;\n }\n\n const itemText = getTextFromItem(item);\n\n if (!itemText) {\n return false;\n }\n\n return itemText.toLowerCase().indexOf(pattern) !== -1;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","invariant","globalObject","debounce","isKeyArrowDown","isKeyArrowUp","isKeyArrowVertical","isKeyEnter","isKeyEscape","isKeySpace","locale","reactGetTextContent","Button","filterProps","Input","Menu","MenuItem","MenuSeparator","RenderLayer","createPropsGetter","getRandomID","isFunction","isNonNullable","isReactUINode","ThemeContext","CommonWrapper","MobilePopup","cx","responsiveLayout","getRootNode","rootNode","ThemeFactory","styles","linkStyles","Popup","ZIndex","getMenuPositions","ArrowDownIcon","Item","SelectLocaleHelper","getSelectTheme","SelectDataTids","PASS_BUTTON_PROPS","id","disabled","error","use","size","warning","corners","onMouseEnter","onMouseLeave","onMouseOver","SelectIds","menu","Select","_dec","_class","_Select","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","opened","value","props","defaultValue","searchPattern","menuId","buttonElement","getProps","defaultProps","open","setState","onOpen","close","onClose","focus","getDefaultButtonParams","_this$renderLabel","renderLabel","label","isPlaceholder","buttonParams","onClick","toggle","onKeyDown","handleKey","getSearch","createElement","className","search","ref","debouncedFocusInput","onValueChange","handleSearch","width","getMobileSearch","autoFocus","getMenuItems","isMobile","isMobileLayout","mapItems","iValue","item","i","comment","element","isValidElement","cloneElement","key","areValuesEqual","select","bind","renderItem","popupGetParent","focusInput","input","refMenu","e","preventDefault","up","down","enter","_this$menu","highlightItem","buttonRef","getButton","_props$ariaLabel","button","_renderButton","renderDefaultButton","Children","only","onFocus","onBlur","_inheritsLoose","_proto","prototype","componentDidUpdate","_prevProps","prevState","addEventListener","removeEventListener","render","_this2","Consumer","theme","create","menuOffsetY","selectMenuOffsetY","Provider","renderMain","getMenuRenderer","renderMobileMenu","renderMenu","_this$getProps$dataT","_cx","dataTid","root","style","maxWidth","undefined","rootMobile","_extends","rootNodeRef","setRootNode","onClickOutside","onFocusOutside","active","_this$locale","getValue","getItemByValue","renderValue","placeholder","getLeftIconClass","leftIconLink","leftIconLarge","leftIconMedium","leftIconSmall","params","_cx2","_cx3","_cx4","buttonProps","align","labelProps","customUsePlaceholder","placeholderDisabled","paddingRight","getSelectIconGap","useIsCustom","icon","selectButtonContainer","_icon","arrowWrap","arrowDisabled","customUseArrow","_this3","getArrowPadding","selectIconGapLarge","selectIconGapMedium","selectIconGapSmall","arrowLeftPadding","parseFloat","_this$getProps","menuWidth","menuPos","menuAlign","positions","hasShadow","anchorElement","priority","priorities","PopupMenu","disablePortal","margin","parseInt","minWidth","popupOffset","menuOffset","hasMargin","onItemClick","maxHeight","maxMenuHeight","headerChildComponent","caption","mobileMenuHeaderText","onCloseRequest","disableScrollContainer","_this$props$onValueCh","_this$props","fn","items","pattern","toLowerCase","result","index","_iterator","_createForOfIteratorHelperLoose","_step","done","entry","_normalizeEntry","normalizeEntry","filterItem","push","_iterator2","_step2","_normalizeEntry2","itemValue","value1","value2","Component","__KONTUR_REACT_UI__","displayName","SEP","staticElement","isArray","getTextFromItem","toString","itemText","indexOf"],"sources":["Select.tsx"],"sourcesContent":["import type { ReactNode, ReactPortal, AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport invariant from 'invariant';\nimport { globalObject } from '@skbkontur/global-object';\nimport debounce from 'lodash.debounce';\n\nimport {\n isKeyArrowDown,\n isKeyArrowUp,\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n} from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport { reactGetTextContent } from '../../lib/reactGetTextContent';\nimport type { ButtonProps, ButtonUse } from '../Button';\nimport { Button } from '../Button';\nimport { filterProps } from '../../lib/filterProps';\nimport { Input } from '../Input';\nimport { Menu } from '../../internal/Menu';\nimport type { MenuItemProps } from '../MenuItem';\nimport { MenuItem } from '../MenuItem';\nimport { MenuSeparator } from '../MenuSeparator';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { Nullable } from '../../typings/utility-types';\nimport { getRandomID, isFunction, isNonNullable, isReactUINode } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport type { MenuHeaderProps } from '../MenuHeader';\nimport type { SizeProp } from '../../lib/types/props';\nimport { styles as linkStyles } from '../Link/Link.styles';\nimport { Popup, type PopupPositionsType } from '../../internal/Popup';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\n\nimport { ArrowDownIcon } from './ArrowDownIcon';\nimport { Item } from './Item';\nimport type { SelectLocale } from './locale';\nimport { SelectLocaleHelper } from './locale';\nimport { styles } from './Select.styles';\nimport { getSelectTheme } from './selectTheme';\nimport { SelectDataTids } from './tids';\n\nexport * from './tids';\n\nexport interface ButtonParams\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label' | 'aria-expanded'> {\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает лейбл. */\n label: React.ReactNode;\n\n /** Задает функцию, которая вызывается при клике на селект. */\n onClick: () => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Определяет, открыто ли выпадающее меню. */\n opened: boolean;\n\n /** Определяет, есть ли Placeholder. */\n isPlaceholder: boolean;\n\n /** Задает размер контрола. */\n size: SizeProp;\n}\n\nconst PASS_BUTTON_PROPS = {\n id: true,\n disabled: true,\n error: true,\n use: true,\n size: true,\n warning: true,\n corners: true,\n\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n};\n\nexport const SelectIds = {\n menu: SelectDataTids.menu,\n} as const;\n\ntype SelectItem<TValue, TItem> =\n | [TValue, TItem, React.ReactNode?]\n | TItem\n | TValue\n | React.ReactElement\n | (() => React.ReactElement);\n\nexport interface SelectProps<TValue, TItem>\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** @ignore */\n _icon?: React.ReactNode;\n\n /** @ignore */\n _renderButton?: (params: ButtonParams) => React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Задает значение по умолчанию. */\n defaultValue?: TValue;\n\n menuOffset?: number;\n\n /** Отключает использование портала. */\n disablePortal?: boolean;\n\n /** Делает компонент недоступным.*/\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Задает функцию, которая отфильтровывает элементы по заданному паттерну. */\n filterItem?: (value: TValue, item: TItem, pattern: string) => boolean;\n\n /** Задает набор значений. Поддерживаются любые перечисляемые типы, в том числе `Array`, `Map`, `Immutable.Map`.\n *\n * Элементы воспринимаются следующим образом: если элемент — это массив, то первый элемент является значением,\n * второй — отображается в списке, а третий – комментарий;\n * если элемент не является массивом, то он используется и для отображения, и для значения.\n *\n * Для вставки разделителя можно использовать `Select.SEP`.\n *\n * Вставить невыделяемый элемент со своей разметкой можно так:\n * @example\n * ```\n * <Select ...\n * items={[Select.staticElement(() => <div>My Element</div>)]}\n * />\n * ```\n *\n * Чтобы добавить стандартный отступ для статического элемента:\n * @example\n * ```\n * <Select.Item>My Element</Select.Item>\n * ``` */\n items?: Array<SelectItem<TValue, TItem>>;\n\n /** Задает максимальную высоту меню. */\n maxMenuHeight?: number;\n\n /** Задает максимальную ширину. */\n maxWidth?: React.CSSProperties['maxWidth'];\n\n /** Задает позиции выпадающего меню. */\n positions?: PopupPositionsType[];\n\n /** Задает текущую позицию выпадающего окна вручную. */\n menuPos?: 'top' | 'bottom' | 'middle';\n\n /** Задает выравнивание меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает ширину выпадающего меню. */\n menuWidth?: React.CSSProperties['width'];\n\n /** Задает функцию, вызывающуюся при изменении value. */\n onValueChange?: (value: TValue) => void;\n\n /** Задает функцию, которая вызывается при закрытии меню. */\n onClose?: () => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (e: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при открытии меню. */\n onOpen?: () => void;\n\n /** Задает текст, который отображается если не введено никакое значение. */\n placeholder?: React.ReactNode;\n\n /** Задает функцию, которая отображает элемент в выпадающем списке. */\n renderItem?: (value: TValue, item?: TItem) => React.ReactNode;\n\n /** Задает функцию, которая отображает выбранный элемент. */\n renderValue?: (value: TValue, item?: TItem) => React.ReactNode;\n\n /** Задает функцию сравнения `value` с элементом из `items`. */\n areValuesEqual?: (value1: TValue, value2: TValue) => boolean;\n\n /** Показывает строку поиска в списке. */\n search?: boolean;\n\n /** Задает значение. */\n value?: TValue;\n\n theme?: ThemeIn | Theme;\n\n /** Задает длину контрола. */\n width?: number | string;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задаёт стиль кнопки. */\n use?: ButtonUse;\n\n /** Задает размер. */\n size?: SizeProp;\n\n /** Задаёт HTML-событие `onfocus`. */\n onFocus?: React.FocusEventHandler<HTMLElement>;\n\n /** Задаёт HTML-событие `onblur`. */\n onBlur?: React.FocusEventHandler<HTMLElement>;\n\n /** Задает текст заголовка выпадающего меню в мобильной версии. */\n mobileMenuHeaderText?: string;\n}\n\nexport interface SelectState<TValue> {\n opened: boolean;\n searchPattern: string;\n value: Nullable<TValue>;\n}\n\ninterface FocusableReactElement extends React.ReactElement<any> {\n focus: (event?: any) => void;\n}\n\ntype DefaultProps<TValue, TItem> = Required<\n Pick<SelectProps<TValue, TItem>, 'renderValue' | 'renderItem' | 'areValuesEqual' | 'filterItem' | 'use' | 'size'>\n>;\n\n/**\n * Раскрывающийся список `Select` позволяет выбрать значение из заранее известного набора вариантов.\n *\n * Используйте `Select` при:\n * * заполнении форм, например для выбора месяца.\n * * переключении состояний, например, фильтра.\n * * выборе предустановленных настроек, например, частоты уведомлений, часового пояса.\n *\n * Не используйте `Select` для выбора элементов меню. В таком случае воспользуйтесь компонентом Dropdown.\n */\n@responsiveLayout\n@rootNode\n@locale('Select', SelectLocaleHelper)\n// Suggested solutions break current behavior\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport class Select<TValue = {}, TItem = {}> extends React.Component<SelectProps<TValue, TItem>, SelectState<TValue>> {\n public static __KONTUR_REACT_UI__ = 'Select';\n public static displayName = 'Select';\n\n public static defaultProps: DefaultProps<unknown, ReactNode | ReactPortal> = {\n renderValue,\n renderItem,\n areValuesEqual,\n filterItem,\n use: 'default',\n size: 'small',\n };\n\n public static Item = Item;\n public static SEP = () => <MenuSeparator />;\n\n public static staticElement = (element: React.ReactElement | (() => React.ReactElement)) => {\n invariant(\n React.isValidElement(element) || typeof element === 'function',\n 'Select.staticElement(element) expects element to be a valid react element.',\n );\n return element;\n };\n\n public state: SelectState<TValue> = {\n opened: false,\n value: this.props.defaultValue,\n searchPattern: '',\n };\n\n private theme!: Theme;\n private isMobileLayout!: boolean;\n private readonly locale!: SelectLocale;\n private menu: Nullable<Menu>;\n private menuId = SelectIds.menu + getRandomID();\n private buttonElement: FocusableReactElement | null = null;\n private getProps = createPropsGetter(Select.defaultProps);\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(_prevProps: SelectProps<TValue, TItem>, prevState: SelectState<TValue>) {\n if (!prevState.opened && this.state.opened) {\n globalObject.addEventListener?.('popstate', this.close);\n }\n if (prevState.opened && !this.state.opened) {\n globalObject.removeEventListener?.('popstate', this.close);\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = ThemeFactory.create(\n {\n menuOffsetY: theme.selectMenuOffsetY,\n },\n theme,\n );\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public open = () => {\n if (!this.state.opened) {\n this.setState({ opened: true });\n\n if (this.props.onOpen) {\n this.props.onOpen();\n }\n }\n };\n\n /**\n * @public\n */\n public close = () => {\n if (this.state.opened) {\n this.setState({ opened: false, searchPattern: '' });\n\n if (this.props.onClose) {\n this.props.onClose();\n }\n }\n };\n\n /**\n * @public\n */\n public focus = () => {\n if (this.buttonElement && this.buttonElement.focus) {\n this.buttonElement.focus();\n }\n };\n\n private getMenuRenderer() {\n if (this.props.disabled) {\n return null;\n }\n\n if (this.isMobileLayout) {\n return this.renderMobileMenu();\n }\n\n if (this.state.opened) {\n return this.renderMenu();\n }\n\n return null;\n }\n\n private renderMain() {\n const buttonParams = this.getDefaultButtonParams();\n const dataTid = this.getProps()['data-tid'] ?? SelectDataTids.root;\n const button = (\n <ThemeContext.Provider value={getSelectTheme(this.theme, this.props)}>\n {this.getButton(buttonParams)}\n </ThemeContext.Provider>\n );\n\n const isMobile = this.isMobileLayout;\n\n const style = {\n width: this.props.width,\n maxWidth: this.props.maxWidth || undefined,\n };\n\n const root = (\n <span\n data-tid={dataTid}\n className={cx({ [styles.root()]: true, [styles.rootMobile(this.theme)]: isMobile })}\n style={style}\n >\n {button}\n {this.getMenuRenderer()}\n </span>\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <RenderLayer\n onClickOutside={this.close}\n onFocusOutside={this.close}\n active={isMobile ? false : this.state.opened}\n >\n {root}\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n private getDefaultButtonParams = (): ButtonParams => {\n const { label, isPlaceholder } = this.renderLabel();\n\n const buttonParams: ButtonParams = {\n opened: this.state.opened,\n label,\n isPlaceholder,\n onClick: this.toggle,\n onKeyDown: this.handleKey,\n size: this.getProps().size,\n disabled: this.getProps().disabled,\n };\n\n return buttonParams;\n };\n\n private renderLabel() {\n const value = this.getValue();\n const item = this.getItemByValue(value);\n\n if (isNonNullable(value)) {\n return {\n label: this.getProps().renderValue(value, item),\n isPlaceholder: false,\n };\n }\n\n return {\n label: <span>{this.props.placeholder || this.locale?.placeholder}</span>,\n isPlaceholder: true,\n };\n }\n\n private getLeftIconClass(size: SizeProp | undefined) {\n if (this.getProps().use === 'link') {\n return styles.leftIconLink(this.theme);\n }\n\n switch (size) {\n case 'large':\n return styles.leftIconLarge(this.theme);\n case 'medium':\n return styles.leftIconMedium(this.theme);\n case 'small':\n default:\n return styles.leftIconSmall(this.theme);\n }\n }\n\n private renderDefaultButton(params: ButtonParams) {\n const buttonProps: ButtonProps = {\n ...filterProps(this.props, PASS_BUTTON_PROPS),\n align: 'left' as React.CSSProperties['textAlign'],\n disabled: this.props.disabled,\n width: '100%',\n onClick: params.onClick,\n onKeyDown: params.onKeyDown,\n active: params.opened,\n size: params.size,\n };\n const use = this.getProps().use;\n\n const labelProps = {\n 'data-tid': SelectDataTids.label,\n className: cx({\n [styles.label()]: use !== 'link',\n [styles.placeholder(this.theme)]: params.isPlaceholder,\n [styles.customUsePlaceholder()]: params.isPlaceholder && use !== 'default',\n [styles.placeholderDisabled(this.theme)]: params.isPlaceholder && this.props.disabled,\n }),\n style: {\n paddingRight: this.getSelectIconGap(),\n },\n };\n\n const useIsCustom = use !== 'default';\n\n const icon = <ArrowDownIcon size={this.props.size} />;\n\n return (\n <Button {...buttonProps}>\n <div className={cx(styles.selectButtonContainer(), { [linkStyles.root(this.theme)]: use === 'link' })}>\n {this.props._icon && <div className={this.getLeftIconClass(this.props.size)}>{this.props._icon}</div>}\n <span {...labelProps}>{params.label}</span>\n\n <div\n className={cx(styles.arrowWrap(this.theme), {\n [styles.arrowDisabled(this.theme)]: this.props.disabled,\n [styles.customUseArrow()]: useIsCustom,\n })}\n >\n {icon}\n </div>\n </div>\n </Button>\n );\n }\n\n private getSelectIconGap(): number {\n const getArrowPadding = () => {\n switch (this.props.size) {\n case 'large':\n return this.theme.selectIconGapLarge;\n case 'medium':\n return this.theme.selectIconGapMedium;\n case 'small':\n default:\n return this.theme.selectIconGapSmall;\n }\n };\n const arrowLeftPadding = parseFloat(getArrowPadding()) || 0;\n\n return arrowLeftPadding;\n }\n\n private renderMenu(): React.ReactNode {\n const search = this.props.search ? this.getSearch() : null;\n\n const value = this.getValue();\n const { menuWidth, menuPos, menuAlign, positions } = this.getProps();\n\n return (\n <Popup\n opened\n hasShadow\n id={this.menuId}\n data-tid={SelectDataTids.menu}\n positions={positions ?? getMenuPositions(menuPos, menuAlign)}\n anchorElement={this.popupGetParent()}\n priority={ZIndex.priorities.PopupMenu}\n disablePortal={this.props.disablePortal}\n margin={parseInt(this.theme.menuOffsetY) - 1}\n width={menuWidth}\n minWidth={menuWidth === undefined ? '100%' : undefined}\n popupOffset={this.props.menuOffset}\n >\n <Menu\n hasMargin={false}\n ref={this.refMenu}\n onItemClick={this.close}\n maxHeight={this.props.maxMenuHeight}\n align={menuAlign}\n >\n {search}\n {this.getMenuItems(value)}\n </Menu>\n </Popup>\n );\n }\n\n private getSearch = () => {\n return (\n <div className={styles.search()} onKeyDown={this.handleKey}>\n <Input ref={this.debouncedFocusInput} onValueChange={this.handleSearch} width=\"100%\" />\n </div>\n );\n };\n\n private renderMobileMenu(): React.ReactNode {\n const search = this.props.search ? this.getMobileSearch() : null;\n const value = this.getValue();\n\n return (\n <MobilePopup\n headerChildComponent={search}\n caption={this.props.mobileMenuHeaderText}\n onCloseRequest={this.close}\n opened={this.state.opened}\n >\n <Menu onItemClick={this.close} disableScrollContainer maxHeight={'auto'}>\n {this.getMenuItems(value)}\n </Menu>\n </MobilePopup>\n );\n }\n\n private getMobileSearch = () => {\n return (\n <Input\n autoFocus\n value={this.state.searchPattern}\n ref={this.debouncedFocusInput}\n onValueChange={this.handleSearch}\n width=\"100%\"\n />\n );\n };\n\n private getMenuItems = (value: Nullable<TValue>) => {\n const isMobile = this.isMobileLayout;\n const size = this.props.size;\n\n return this.mapItems(\n (iValue: TValue, item: TItem | (() => React.ReactNode), i: number, comment: Nullable<React.ReactNode>) => {\n if (isFunction(item)) {\n const element = item();\n\n if (React.isValidElement(element)) {\n return React.cloneElement(element, { key: i, isMobile, size } as MenuItemProps);\n }\n\n return null;\n }\n\n if (React.isValidElement(item)) {\n if (isReactUINode('MenuItem', item)) {\n return React.cloneElement(item, { key: i, isMobile, size } as MenuItemProps);\n }\n if (isReactUINode('MenuHeader', item)) {\n return React.cloneElement(item, { size } as MenuHeaderProps);\n }\n return React.cloneElement(item, { key: i });\n }\n\n return (\n <MenuItem\n key={i}\n state={this.areValuesEqual(iValue, value) ? 'selected' : null}\n onClick={this.select.bind(this, iValue)}\n comment={comment}\n isMobile={isMobile}\n size={this.props.size}\n >\n {this.getProps().renderItem(iValue, item)}\n </MenuItem>\n );\n },\n );\n };\n\n private popupGetParent = () => {\n return getRootNode(this);\n };\n\n // fix cases when an Input is rendered in portal\n // https://github.com/skbkontur/retail-ui/issues/1995\n private focusInput = (input: Input) => input?.focus();\n private debouncedFocusInput = debounce(this.focusInput);\n\n private refMenu = (menu: Menu) => {\n this.menu = menu;\n };\n\n private toggle = () => {\n if (this.state.opened) {\n this.close();\n } else {\n this.open();\n }\n };\n\n private handleKey = (e: React.KeyboardEvent<HTMLElement>) => {\n if (!this.state.opened) {\n if (isKeySpace(e) || isKeyArrowVertical(e)) {\n e.preventDefault();\n this.open();\n }\n } else {\n switch (true) {\n case isKeyEscape(e):\n this.focus();\n this.close();\n break;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n break;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n break;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n break;\n }\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleSearch = (value: string) => {\n this.setState({ searchPattern: value });\n this.menu?.highlightItem(0);\n };\n\n private select(value: TValue) {\n this.focus();\n this.setState({ opened: false, value });\n\n if (!this.areValuesEqual(this.getValue(), value)) {\n this.props.onValueChange?.(value);\n }\n }\n\n private getValue() {\n if (this.props.value !== undefined) {\n return this.props.value;\n }\n return this.state.value;\n }\n\n private mapItems(fn: (value: TValue, item: TItem, index: number, comment?: string) => React.ReactNode) {\n const { items } = this.props;\n if (!items) {\n return [];\n }\n const pattern = this.state.searchPattern && this.state.searchPattern.toLowerCase();\n\n const result: React.ReactNode[] = [];\n let index = 0;\n for (const entry of items) {\n const [value, item, comment] = normalizeEntry(entry as TItem);\n\n if (!pattern || this.getProps().filterItem(value, item, pattern)) {\n result.push(fn(value, item, index, comment));\n ++index;\n }\n }\n\n return result;\n }\n\n private getItemByValue(value?: Nullable<TValue>) {\n if (value === null || value === undefined) {\n return null;\n }\n\n const items = this.props.items || [];\n\n for (const entry of items) {\n const [itemValue, item] = normalizeEntry(entry);\n\n if (this.areValuesEqual(itemValue, value)) {\n return item;\n }\n }\n return null;\n }\n\n private areValuesEqual(value1: Nullable<TValue>, value2: Nullable<TValue>) {\n return isNonNullable(value1) && isNonNullable(value2) && this.getProps().areValuesEqual(value1, value2);\n }\n\n private buttonRef = (element: FocusableReactElement | null) => {\n this.buttonElement = element;\n };\n\n private getButton = (buttonParams: ButtonParams) => {\n const button = this.props._renderButton\n ? this.props._renderButton(buttonParams)\n : this.renderDefaultButton(buttonParams);\n\n const buttonElement = React.Children.only(button);\n\n return React.isValidElement(buttonElement)\n ? React.cloneElement(buttonElement as React.ReactElement, {\n ref: this.buttonRef,\n onFocus: this.props.onFocus,\n onBlur: this.props.onBlur,\n size: this.props.size,\n 'aria-describedby': this.props['aria-describedby'],\n 'aria-expanded': this.state.opened ? 'true' : 'false',\n 'aria-controls': this.menuId,\n 'aria-label': (buttonElement as React.ReactElement).props['aria-label'] ?? this.props['aria-label'],\n })\n : buttonElement;\n };\n}\n\nfunction renderValue<TValue, TItem>(value: TValue, item: Nullable<TItem>) {\n return item;\n}\n\nfunction renderItem<TValue, TItem>(value: TValue, item?: TItem) {\n return item;\n}\n\nfunction areValuesEqual<TValue>(value1: TValue, value2: TValue) {\n return value1 === value2;\n}\n\nfunction normalizeEntry(entry: any) {\n if (Array.isArray(entry)) {\n return entry;\n }\n\n return [entry, entry, undefined];\n}\n\nconst getTextFromItem = (item: any): string => {\n if (typeof item === 'string') {\n return item;\n }\n\n if (isFunction(item)) {\n return getTextFromItem(item());\n }\n\n if (React.isValidElement(item)) {\n return reactGetTextContent(item);\n }\n\n if (typeof item === 'number') {\n return item.toString(10);\n }\n\n return '';\n};\n\nfunction filterItem<TValue>(value: TValue, item: any, pattern: string) {\n if (item === Select.SEP) {\n return false;\n }\n\n const itemText = getTextFromItem(item);\n\n if (!itemText) {\n return false;\n }\n\n return itemText.toLowerCase().indexOf(pattern) !== -1;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ import type { Nullable } from '../../typings/utility-types';
|
|
|
5
5
|
import type { Theme, ThemeIn } from '../../lib/theming/Theme';
|
|
6
6
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
7
7
|
import type { SizeProp } from '../../lib/types/props';
|
|
8
|
+
import { type PopupPositionsType } from '../../internal/Popup';
|
|
8
9
|
import { Item } from './Item';
|
|
9
10
|
export * from './tids';
|
|
10
11
|
export interface ButtonParams extends Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label' | 'aria-expanded'> {
|
|
@@ -71,6 +72,8 @@ export interface SelectProps<TValue, TItem> extends CommonProps, Pick<AriaAttrib
|
|
|
71
72
|
maxMenuHeight?: number;
|
|
72
73
|
/** Задает максимальную ширину. */
|
|
73
74
|
maxWidth?: React.CSSProperties['maxWidth'];
|
|
75
|
+
/** Задает позиции выпадающего меню. */
|
|
76
|
+
positions?: PopupPositionsType[];
|
|
74
77
|
/** Задает текущую позицию выпадающего окна вручную. */
|
|
75
78
|
menuPos?: 'top' | 'bottom' | 'middle';
|
|
76
79
|
/** Задает выравнивание меню. */
|
|
@@ -206,7 +206,6 @@ export var SidePage = /*#__PURE__*/function (_React$Component) {
|
|
|
206
206
|
priority: 'Sidepage',
|
|
207
207
|
onScroll: LayoutEvents.emit,
|
|
208
208
|
createStackingContext: true,
|
|
209
|
-
wrapperRef: _this3.rootRef,
|
|
210
209
|
style: {
|
|
211
210
|
position: 'absolute'
|
|
212
211
|
}
|
|
@@ -241,6 +240,7 @@ export var SidePage = /*#__PURE__*/function (_React$Component) {
|
|
|
241
240
|
"aria-label": ariaLabel,
|
|
242
241
|
"data-tid": SidePageDataTids.root,
|
|
243
242
|
className: cx((_cx = {}, _cx[styles.root()] = true, _cx[styles.mobileRoot()] = isMobile, _cx)),
|
|
243
|
+
ref: this.rootRef,
|
|
244
244
|
onScroll: LayoutEvents.emit,
|
|
245
245
|
style: isMobile ? undefined : {
|
|
246
246
|
width: width || (blockBackground ? 800 : 500),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","CSSTransition","FocusLock","globalObject","isNonNullable","isKeyEscape","LayoutEvents","stopPropagation","HideBodyVerticalScroll","ModalStack","RenderContainer","RenderLayer","ZIndex","ThemeContext","CommonWrapper","cx","isTestEnv","ResponsiveLayout","createPropsGetter","isInstanceOf","SidePageBody","SidePageContainer","SidePageContext","SidePageFooter","SidePageHeader","styles","SidePageDataTids","root","container","TRANSITION_TIMEOUT","SidePage","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","hasHeader","hasFooter","hasPanel","stackSubscription","layout","header","footer","rootRef","createRef","updateLayout","_this$header","_this$footer","update","getProps","defaultProps","getSidePageContextProps","requestClose","getWidth","headerRef","footerRef","setHasHeader","setHasFooter","setHasPanel","clientWidth","handleStackChange","stack","sidePages","filter","x","props","fromLeft","currentSidePagePosition","indexOf","hasMargin","hasShadow","hasBackground","isBlocking","setState","stackPosition","handleClickOutside","e","ignoreBackgroundClick","MouseEvent","document","clientX","documentElement","handleKeyDown","disableClose","onClose","ref","layoutRef","_inheritsLoose","_proto","prototype","componentDidMount","addEventListener","add","componentDidUpdate","prevProps","blockBackground","rerender","componentWillUnmount","removeEventListener","remove","render","_this2","createElement","Consumer","theme","renderMain","_this3","_this$props","onOpened","disableAnimations","_ref","isMobile","priority","onScroll","emit","createStackingContext","wrapperRef","style","position","renderShadow","classNames","getTransitionNames","appear","enter","exit","timeout","nodeRef","onEntered","renderContainer","_cx","_cx2","_this$props2","width","ariaLabel","_this$getProps","offset","role","className","mobileRoot","undefined","right","left","disabled","isFocusLockDisabled","autoFocus","focusLock","onClickOutside","active","wrapper","wrapperLeft","wrapperMarginLeft","wrapperMarginRight","shadow","Provider","value","children","_cx3","overlay","Fragment","key","background","backgroundGray","transition","transitionRight","transitionLeft","enterActive","transitionActive","transitionLeave","exitActive","transitionLeaveActive","appearActive","_createClass","get","_this$getProps2","disableFocusLock","Component","__KONTUR_REACT_UI__","displayName","Header","Body","Footer","Container"],"sources":["SidePage.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport FocusLock from 'react-focus-lock';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport type { ModalStackSubscription } from '../../lib/ModalStack';\nimport { ModalStack } from '../../lib/ModalStack';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\n\nimport { SidePageBody } from './SidePageBody';\nimport { SidePageContainer } from './SidePageContainer';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\nimport { SidePageFooter } from './SidePageFooter';\nimport { SidePageHeader } from './SidePageHeader';\nimport { styles } from './SidePage.styles';\n\nexport interface SidePageProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label'> {\n /** Добавляет блокирующий фон, когда сайдпейдж открыт. */\n blockBackground?: boolean;\n\n /** Отключает событие onClose, также дизейблит кнопку закрытия сайдпейджа. */\n disableClose?: boolean;\n\n /** Оставляет окно открытым при клике на фон. */\n ignoreBackgroundClick?: boolean;\n\n /** Задает ширину сайдпейджа. */\n width?: number | string;\n\n /** Задает функцию, которая вызывается при запросе закрытия сайдпейджа пользователем (нажал на фон, на Escape или на крестик). */\n onClose?: () => void;\n\n /** Задает функцию, которая вызывается при завершении анимации открытия сайдпейджа. */\n onOpened?: () => void;\n\n /** Отображает сайдпэйдж слева. */\n fromLeft?: boolean;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n\n /** Отключает фокус-лок внутри сайдпейджа.\n * Работает только при заблокированном фоне: `blockBackground = true`.*/\n disableFocusLock?: boolean;\n\n /** Задает отступ от края экрана. */\n offset?: number | string;\n}\n\nexport interface SidePageState {\n stackPosition?: number;\n hasMargin?: boolean;\n hasShadow?: boolean;\n hasBackground?: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const SidePageDataTids = {\n root: 'SidePage__root',\n container: 'SidePage__container',\n} as const;\n\ntype DefaultProps = Required<Pick<SidePageProps, 'disableAnimations' | 'offset' | 'role'>>;\n\nconst TRANSITION_TIMEOUT = 200;\n\n/**\n * `SidePage` — это модальное окно, которое открывается поверх основной страницы и занимает всю высоту окна браузера.\n *\n * Используйте его, когда нужно сохранить контекст и показать большое количество данных.\n *\n * Содержит в себе три компоненты: `SidePage.Header`, `SidePage.Body` и `SidePage.Footer`.\n *\n * Для отображения серой плашки в футере в компонент `Footer` необходимо передать пропс `panel`.\n */\nexport class SidePage extends React.Component<SidePageProps, SidePageState> {\n public static __KONTUR_REACT_UI__ = 'SidePage';\n public static displayName = 'SidePage';\n\n public static Header = SidePageHeader;\n public static Body = SidePageBody;\n public static Footer = SidePageFooter;\n public static Container = SidePageContainer;\n public state: SidePageState = {\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private layout: HTMLElement | null = null;\n private header: SidePageHeader | null = null;\n private footer: SidePageFooter | null = null;\n private rootRef = React.createRef<HTMLDivElement>();\n\n public componentDidMount() {\n globalObject.addEventListener?.('keydown', this.handleKeyDown);\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n }\n\n public componentDidUpdate(prevProps: SidePageProps) {\n if (prevProps.blockBackground !== this.props.blockBackground) {\n ModalStack.rerender();\n this.setState({\n hasBackground: ModalStack.isBlocking(this),\n });\n }\n }\n\n public componentWillUnmount() {\n globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n }\n\n /**\n * Обновляет разметку компонента.\n * @public\n */\n public updateLayout = (): void => {\n this.header?.update();\n this.footer?.update();\n };\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n offset: 0,\n role: 'dialog',\n };\n\n private getProps = createPropsGetter(SidePage.defaultProps);\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { blockBackground, onOpened } = this.props;\n const disableAnimations = this.getProps().disableAnimations;\n return (\n <ResponsiveLayout>\n {({ isMobile }) => (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex\n priority={'Sidepage'}\n onScroll={LayoutEvents.emit}\n createStackingContext\n wrapperRef={this.rootRef}\n style={{ position: 'absolute' }}\n >\n {blockBackground && this.renderShadow(isMobile)}\n <CSSTransition\n in\n classNames={this.getTransitionNames()}\n appear={!disableAnimations}\n enter={!disableAnimations}\n exit={false}\n timeout={{\n enter: TRANSITION_TIMEOUT,\n exit: TRANSITION_TIMEOUT,\n }}\n nodeRef={this.rootRef}\n onEntered={onOpened}\n >\n {this.renderContainer(isMobile)}\n </CSSTransition>\n {isMobile && <HideBodyVerticalScroll />}\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n )}\n </ResponsiveLayout>\n );\n }\n\n private get isFocusLockDisabled() {\n const { disableFocusLock } = this.getProps();\n const { blockBackground } = this.props;\n if (!blockBackground) {\n return true;\n }\n if (disableFocusLock !== undefined) {\n return disableFocusLock;\n }\n return false;\n }\n\n private renderContainer(isMobile: boolean): JSX.Element {\n const { width, blockBackground, fromLeft, 'aria-label': ariaLabel } = this.props;\n const { offset, role } = this.getProps();\n\n return (\n <div\n aria-modal\n role={role}\n aria-label={ariaLabel}\n data-tid={SidePageDataTids.root}\n className={cx({\n [styles.root()]: true,\n [styles.mobileRoot()]: isMobile,\n })}\n onScroll={LayoutEvents.emit}\n style={\n isMobile\n ? undefined\n : {\n width: width || (blockBackground ? 800 : 500),\n right: fromLeft ? 'auto' : offset,\n left: fromLeft ? offset : 'auto',\n }\n }\n >\n <FocusLock disabled={this.isFocusLockDisabled} autoFocus={false} className={styles.focusLock()}>\n <RenderLayer onClickOutside={this.handleClickOutside} active>\n <div\n data-tid={SidePageDataTids.container}\n className={cx(styles.wrapper(this.theme), {\n [styles.wrapperLeft()]: fromLeft,\n [styles.wrapperMarginLeft()]: this.state.hasMargin && fromLeft,\n [styles.wrapperMarginRight()]: this.state.hasMargin && !fromLeft,\n [styles.shadow(this.theme)]: this.state.hasShadow,\n })}\n ref={this.layoutRef}\n >\n <SidePageContext.Provider value={this.getSidePageContextProps()}>\n {this.props.children}\n </SidePageContext.Provider>\n </div>\n </RenderLayer>\n </FocusLock>\n </div>\n );\n }\n\n private getSidePageContextProps = (): SidePageContextType => {\n return {\n hasHeader: this.state.hasHeader,\n hasFooter: this.state.hasFooter,\n hasPanel: this.state.hasPanel,\n requestClose: this.requestClose,\n getWidth: this.getWidth,\n updateLayout: this.updateLayout,\n headerRef: this.headerRef,\n footerRef: this.footerRef,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n };\n\n private getWidth = () => {\n if (!this.layout) {\n return 'auto';\n }\n return this.layout.clientWidth;\n };\n\n private renderShadow(isMobile: boolean): JSX.Element {\n return (\n <div className={styles.overlay()} onScroll={LayoutEvents.emit}>\n {!isMobile && (\n <>\n <HideBodyVerticalScroll key=\"hbvs\" />\n <div\n key=\"overlay\"\n className={cx({\n [styles.background()]: true,\n [styles.backgroundGray(this.theme)]: this.state.hasBackground,\n })}\n />\n </>\n )}\n </div>\n );\n }\n\n private getTransitionNames(): Record<string, string> {\n const transition = this.props.fromLeft ? styles.transitionRight : styles.transitionLeft;\n\n return {\n enter: transition(),\n enterActive: styles.transitionActive(),\n exit: styles.transitionLeave(),\n exitActive: styles.transitionLeaveActive(),\n appear: transition(),\n appearActive: styles.transitionActive(),\n };\n }\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n const sidePages = stack.filter((x) => x instanceof SidePage && x.props.fromLeft === this.props.fromLeft);\n const currentSidePagePosition = sidePages.indexOf(this);\n\n const hasMargin = sidePages.length > 1 && currentSidePagePosition === sidePages.length - 1;\n const hasShadow = sidePages.length < 3 || currentSidePagePosition > sidePages.length - 3;\n const hasBackground = ModalStack.isBlocking(this);\n\n this.setState({\n stackPosition: stack.indexOf(this),\n hasMargin,\n hasShadow,\n hasBackground,\n });\n };\n\n private handleClickOutside = (e: Event) => {\n if (this.state.stackPosition === 0 && !this.props.ignoreBackgroundClick) {\n // ignore mousedown on window scrollbar\n if (\n isInstanceOf(e, globalObject.MouseEvent) &&\n globalObject.document &&\n e.clientX > globalObject.document.documentElement.clientWidth\n ) {\n return;\n }\n this.requestClose();\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private headerRef = (ref: SidePageHeader | null) => {\n this.header = ref;\n };\n\n private footerRef = (ref: SidePageFooter | null) => {\n this.footer = ref;\n };\n\n private layoutRef = (ref: HTMLDivElement | null) => {\n this.layout = ref;\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","CSSTransition","FocusLock","globalObject","isNonNullable","isKeyEscape","LayoutEvents","stopPropagation","HideBodyVerticalScroll","ModalStack","RenderContainer","RenderLayer","ZIndex","ThemeContext","CommonWrapper","cx","isTestEnv","ResponsiveLayout","createPropsGetter","isInstanceOf","SidePageBody","SidePageContainer","SidePageContext","SidePageFooter","SidePageHeader","styles","SidePageDataTids","root","container","TRANSITION_TIMEOUT","SidePage","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","hasHeader","hasFooter","hasPanel","stackSubscription","layout","header","footer","rootRef","createRef","updateLayout","_this$header","_this$footer","update","getProps","defaultProps","getSidePageContextProps","requestClose","getWidth","headerRef","footerRef","setHasHeader","setHasFooter","setHasPanel","clientWidth","handleStackChange","stack","sidePages","filter","x","props","fromLeft","currentSidePagePosition","indexOf","hasMargin","hasShadow","hasBackground","isBlocking","setState","stackPosition","handleClickOutside","e","ignoreBackgroundClick","MouseEvent","document","clientX","documentElement","handleKeyDown","disableClose","onClose","ref","layoutRef","_inheritsLoose","_proto","prototype","componentDidMount","addEventListener","add","componentDidUpdate","prevProps","blockBackground","rerender","componentWillUnmount","removeEventListener","remove","render","_this2","createElement","Consumer","theme","renderMain","_this3","_this$props","onOpened","disableAnimations","_ref","isMobile","priority","onScroll","emit","createStackingContext","style","position","renderShadow","classNames","getTransitionNames","appear","enter","exit","timeout","nodeRef","onEntered","renderContainer","_cx","_cx2","_this$props2","width","ariaLabel","_this$getProps","offset","role","className","mobileRoot","undefined","right","left","disabled","isFocusLockDisabled","autoFocus","focusLock","onClickOutside","active","wrapper","wrapperLeft","wrapperMarginLeft","wrapperMarginRight","shadow","Provider","value","children","_cx3","overlay","Fragment","key","background","backgroundGray","transition","transitionRight","transitionLeft","enterActive","transitionActive","transitionLeave","exitActive","transitionLeaveActive","appearActive","_createClass","get","_this$getProps2","disableFocusLock","Component","__KONTUR_REACT_UI__","displayName","Header","Body","Footer","Container"],"sources":["SidePage.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport FocusLock from 'react-focus-lock';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport type { ModalStackSubscription } from '../../lib/ModalStack';\nimport { ModalStack } from '../../lib/ModalStack';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\n\nimport { SidePageBody } from './SidePageBody';\nimport { SidePageContainer } from './SidePageContainer';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\nimport { SidePageFooter } from './SidePageFooter';\nimport { SidePageHeader } from './SidePageHeader';\nimport { styles } from './SidePage.styles';\n\nexport interface SidePageProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label'> {\n /** Добавляет блокирующий фон, когда сайдпейдж открыт. */\n blockBackground?: boolean;\n\n /** Отключает событие onClose, также дизейблит кнопку закрытия сайдпейджа. */\n disableClose?: boolean;\n\n /** Оставляет окно открытым при клике на фон. */\n ignoreBackgroundClick?: boolean;\n\n /** Задает ширину сайдпейджа. */\n width?: number | string;\n\n /** Задает функцию, которая вызывается при запросе закрытия сайдпейджа пользователем (нажал на фон, на Escape или на крестик). */\n onClose?: () => void;\n\n /** Задает функцию, которая вызывается при завершении анимации открытия сайдпейджа. */\n onOpened?: () => void;\n\n /** Отображает сайдпэйдж слева. */\n fromLeft?: boolean;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n\n /** Отключает фокус-лок внутри сайдпейджа.\n * Работает только при заблокированном фоне: `blockBackground = true`.*/\n disableFocusLock?: boolean;\n\n /** Задает отступ от края экрана. */\n offset?: number | string;\n}\n\nexport interface SidePageState {\n stackPosition?: number;\n hasMargin?: boolean;\n hasShadow?: boolean;\n hasBackground?: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const SidePageDataTids = {\n root: 'SidePage__root',\n container: 'SidePage__container',\n} as const;\n\ntype DefaultProps = Required<Pick<SidePageProps, 'disableAnimations' | 'offset' | 'role'>>;\n\nconst TRANSITION_TIMEOUT = 200;\n\n/**\n * `SidePage` — это модальное окно, которое открывается поверх основной страницы и занимает всю высоту окна браузера.\n *\n * Используйте его, когда нужно сохранить контекст и показать большое количество данных.\n *\n * Содержит в себе три компоненты: `SidePage.Header`, `SidePage.Body` и `SidePage.Footer`.\n *\n * Для отображения серой плашки в футере в компонент `Footer` необходимо передать пропс `panel`.\n */\nexport class SidePage extends React.Component<SidePageProps, SidePageState> {\n public static __KONTUR_REACT_UI__ = 'SidePage';\n public static displayName = 'SidePage';\n\n public static Header = SidePageHeader;\n public static Body = SidePageBody;\n public static Footer = SidePageFooter;\n public static Container = SidePageContainer;\n public state: SidePageState = {\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private layout: HTMLElement | null = null;\n private header: SidePageHeader | null = null;\n private footer: SidePageFooter | null = null;\n private rootRef = React.createRef<HTMLDivElement>();\n\n public componentDidMount() {\n globalObject.addEventListener?.('keydown', this.handleKeyDown);\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n }\n\n public componentDidUpdate(prevProps: SidePageProps) {\n if (prevProps.blockBackground !== this.props.blockBackground) {\n ModalStack.rerender();\n this.setState({\n hasBackground: ModalStack.isBlocking(this),\n });\n }\n }\n\n public componentWillUnmount() {\n globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n }\n\n /**\n * Обновляет разметку компонента.\n * @public\n */\n public updateLayout = (): void => {\n this.header?.update();\n this.footer?.update();\n };\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n offset: 0,\n role: 'dialog',\n };\n\n private getProps = createPropsGetter(SidePage.defaultProps);\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { blockBackground, onOpened } = this.props;\n const disableAnimations = this.getProps().disableAnimations;\n return (\n <ResponsiveLayout>\n {({ isMobile }) => (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex\n priority={'Sidepage'}\n onScroll={LayoutEvents.emit}\n createStackingContext\n style={{ position: 'absolute' }}\n >\n {blockBackground && this.renderShadow(isMobile)}\n <CSSTransition\n in\n classNames={this.getTransitionNames()}\n appear={!disableAnimations}\n enter={!disableAnimations}\n exit={false}\n timeout={{\n enter: TRANSITION_TIMEOUT,\n exit: TRANSITION_TIMEOUT,\n }}\n nodeRef={this.rootRef}\n onEntered={onOpened}\n >\n {this.renderContainer(isMobile)}\n </CSSTransition>\n {isMobile && <HideBodyVerticalScroll />}\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n )}\n </ResponsiveLayout>\n );\n }\n\n private get isFocusLockDisabled() {\n const { disableFocusLock } = this.getProps();\n const { blockBackground } = this.props;\n if (!blockBackground) {\n return true;\n }\n if (disableFocusLock !== undefined) {\n return disableFocusLock;\n }\n return false;\n }\n\n private renderContainer(isMobile: boolean): JSX.Element {\n const { width, blockBackground, fromLeft, 'aria-label': ariaLabel } = this.props;\n const { offset, role } = this.getProps();\n\n return (\n <div\n aria-modal\n role={role}\n aria-label={ariaLabel}\n data-tid={SidePageDataTids.root}\n className={cx({\n [styles.root()]: true,\n [styles.mobileRoot()]: isMobile,\n })}\n ref={this.rootRef}\n onScroll={LayoutEvents.emit}\n style={\n isMobile\n ? undefined\n : {\n width: width || (blockBackground ? 800 : 500),\n right: fromLeft ? 'auto' : offset,\n left: fromLeft ? offset : 'auto',\n }\n }\n >\n <FocusLock disabled={this.isFocusLockDisabled} autoFocus={false} className={styles.focusLock()}>\n <RenderLayer onClickOutside={this.handleClickOutside} active>\n <div\n data-tid={SidePageDataTids.container}\n className={cx(styles.wrapper(this.theme), {\n [styles.wrapperLeft()]: fromLeft,\n [styles.wrapperMarginLeft()]: this.state.hasMargin && fromLeft,\n [styles.wrapperMarginRight()]: this.state.hasMargin && !fromLeft,\n [styles.shadow(this.theme)]: this.state.hasShadow,\n })}\n ref={this.layoutRef}\n >\n <SidePageContext.Provider value={this.getSidePageContextProps()}>\n {this.props.children}\n </SidePageContext.Provider>\n </div>\n </RenderLayer>\n </FocusLock>\n </div>\n );\n }\n\n private getSidePageContextProps = (): SidePageContextType => {\n return {\n hasHeader: this.state.hasHeader,\n hasFooter: this.state.hasFooter,\n hasPanel: this.state.hasPanel,\n requestClose: this.requestClose,\n getWidth: this.getWidth,\n updateLayout: this.updateLayout,\n headerRef: this.headerRef,\n footerRef: this.footerRef,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n };\n\n private getWidth = () => {\n if (!this.layout) {\n return 'auto';\n }\n return this.layout.clientWidth;\n };\n\n private renderShadow(isMobile: boolean): JSX.Element {\n return (\n <div className={styles.overlay()} onScroll={LayoutEvents.emit}>\n {!isMobile && (\n <>\n <HideBodyVerticalScroll key=\"hbvs\" />\n <div\n key=\"overlay\"\n className={cx({\n [styles.background()]: true,\n [styles.backgroundGray(this.theme)]: this.state.hasBackground,\n })}\n />\n </>\n )}\n </div>\n );\n }\n\n private getTransitionNames(): Record<string, string> {\n const transition = this.props.fromLeft ? styles.transitionRight : styles.transitionLeft;\n\n return {\n enter: transition(),\n enterActive: styles.transitionActive(),\n exit: styles.transitionLeave(),\n exitActive: styles.transitionLeaveActive(),\n appear: transition(),\n appearActive: styles.transitionActive(),\n };\n }\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n const sidePages = stack.filter((x) => x instanceof SidePage && x.props.fromLeft === this.props.fromLeft);\n const currentSidePagePosition = sidePages.indexOf(this);\n\n const hasMargin = sidePages.length > 1 && currentSidePagePosition === sidePages.length - 1;\n const hasShadow = sidePages.length < 3 || currentSidePagePosition > sidePages.length - 3;\n const hasBackground = ModalStack.isBlocking(this);\n\n this.setState({\n stackPosition: stack.indexOf(this),\n hasMargin,\n hasShadow,\n hasBackground,\n });\n };\n\n private handleClickOutside = (e: Event) => {\n if (this.state.stackPosition === 0 && !this.props.ignoreBackgroundClick) {\n // ignore mousedown on window scrollbar\n if (\n isInstanceOf(e, globalObject.MouseEvent) &&\n globalObject.document &&\n e.clientX > globalObject.document.documentElement.clientWidth\n ) {\n return;\n }\n this.requestClose();\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private headerRef = (ref: SidePageHeader | null) => {\n this.header = ref;\n };\n\n private footerRef = (ref: SidePageFooter | null) => {\n this.footer = ref;\n };\n\n private layoutRef = (ref: HTMLDivElement | null) => {\n this.layout = ref;\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,6 +14,7 @@ import { rootNode } from "../../../lib/rootNode";
|
|
|
14
14
|
import { getDOMRect } from "../../../lib/dom/getDOMRect";
|
|
15
15
|
import { ModalSeparator } from "../../Modal/ModalSeparator";
|
|
16
16
|
import { isThemeGTE } from "../../../lib/theming/ThemeHelpers";
|
|
17
|
+
import { ReactUIFeatureFlagsContext } from "../../../lib/featureFlagsContext";
|
|
17
18
|
import { styles } from "../SidePage.styles";
|
|
18
19
|
import { SidePageContext } from "../SidePageContext";
|
|
19
20
|
import { SidePageCloseButton } from "../SidePageCloseButton";
|
|
@@ -144,10 +145,14 @@ export var SidePageHeader = responsiveLayout(_class = rootNode(_class = (_SidePa
|
|
|
144
145
|
"data-tid": SidePageHeaderDataTids.root,
|
|
145
146
|
ref: this.wrapperRef,
|
|
146
147
|
className: styles.headerWrapper()
|
|
148
|
+
}, /*#__PURE__*/React.createElement(ReactUIFeatureFlagsContext.Provider, {
|
|
149
|
+
value: {
|
|
150
|
+
stickyReduceLayoutEvents: true
|
|
151
|
+
}
|
|
147
152
|
}, isStickyDesktop || isStickyMobile ? /*#__PURE__*/React.createElement(Sticky, {
|
|
148
153
|
ref: this.stickyRef,
|
|
149
154
|
side: "top"
|
|
150
|
-
}, header) : header()));
|
|
155
|
+
}, header) : header())));
|
|
151
156
|
};
|
|
152
157
|
return _createClass(SidePageHeader, [{
|
|
153
158
|
key: "regularHeight",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","globalObject","Sticky","isFunction","ThemeContext","CommonWrapper","cx","responsiveLayout","rootNode","getDOMRect","ModalSeparator","isThemeGTE","styles","SidePageContext","SidePageCloseButton","SidePageHeaderDataTids","root","close","SidePageHeader","_class","_SidePageHeader","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","state","isReadyToFix","wrapper","sticky","lastRegularHeight","componentDidMount","addEventListener","update","setHasHeader","headerRef","componentWillUnmount","removeEventListener","_this$sticky","reflow","updateReadyToFix","renderHeader","fixed","_cx","_cx2","isDisplayed","props","hasSeparator","createElement","className","header","theme","headerFixed","mobileHeader","isMobileLayout","renderClose","title","title5_1","mobileTitle","titleFixed","children","_cx3","stickyOffset","parseInt","sidePageHeaderStickyOffset","versionGTE5_1","wrapperClose","wrapperClose5_1","wrapperCloseFixed","wrapperCloseFixed5_1","mobileWrapperClose","mobileWrapperClose5_1","isHeaderFixed","isMobile","side","offset","wrapperScrolledUp","top","regularHeight","fixedHeaderHeight","setState","_extends","wrapperRef","el","stickyRef","_inheritsLoose","_proto","prototype","render","_this2","Consumer","renderMain","getStickyProp","isStickyDesktop","isStickyMobile","rootNodeRef","setRootNode","ref","headerWrapper","_createClass","key","get","height","sidePageHeaderFixedLineHeight","sidePageHeaderFixedPaddingY","Component","__KONTUR_REACT_UI__","displayName","contextType","defaultProps"],"sources":["SidePageHeader.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { Sticky } from '../Sticky';\nimport { isFunction } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { ModalSeparator } from '../Modal/ModalSeparator';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\n\nimport { styles } from './SidePage.styles';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\nimport { SidePageCloseButton } from './SidePageCloseButton';\n\nexport interface SidePageHeaderProps extends Omit<CommonProps, 'children'> {\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n /** Закрепляет хедер сверху сайдпейджа. */\n sticky?: boolean;\n\n /** Определяет, нужно ли показывать ModalSeparator. */\n hasSeparator?: boolean;\n}\n\nexport interface SidePageHeaderState {\n isReadyToFix: boolean;\n}\n\nexport const SidePageHeaderDataTids = {\n root: 'SidePageHeader__root',\n close: 'SidePage__close',\n} as const;\n\n/**\n * Шапка сайдпейджа\n *\n * @visibleName SidePage.Header\n */\n@responsiveLayout\n@rootNode\nexport class SidePageHeader extends React.Component<SidePageHeaderProps, SidePageHeaderState> {\n public static __KONTUR_REACT_UI__ = 'SidePageHeader';\n public static displayName = 'SidePageHeader';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n\n private isMobileLayout!: boolean;\n\n public state: SidePageHeaderState = {\n isReadyToFix: false,\n };\n\n public static defaultProps: Partial<SidePageHeaderProps> = {\n hasSeparator: false,\n };\n\n private theme!: Theme;\n private wrapper: HTMLElement | null = null;\n private sticky: Sticky | null = null;\n private lastRegularHeight = 0;\n private setRootNode!: TSetRootNode;\n public get regularHeight(): number {\n const { isReadyToFix } = this.state;\n if (!this.wrapper) {\n return 0;\n }\n if (!isReadyToFix) {\n this.lastRegularHeight = getDOMRect(this.wrapper).height;\n }\n return this.lastRegularHeight;\n }\n\n public get fixedHeaderHeight(): number {\n const { theme } = this;\n return parseInt(theme.sidePageHeaderFixedLineHeight) + parseInt(theme.sidePageHeaderFixedPaddingY) * 2;\n }\n\n public componentDidMount = () => {\n globalObject.addEventListener?.('scroll', this.update, true);\n this.context.setHasHeader?.();\n this.context.headerRef(this);\n };\n\n public componentWillUnmount = () => {\n globalObject.removeEventListener?.('scroll', this.update, true);\n this.context.setHasHeader?.(false);\n this.context.headerRef(null);\n };\n\n public update = () => {\n this.sticky?.reflow();\n this.updateReadyToFix();\n };\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getStickyProp() {\n if (typeof this.props.sticky !== 'undefined') {\n return this.props.sticky;\n }\n\n if (this.isMobileLayout) {\n return false;\n }\n\n return true;\n }\n\n private renderMain() {\n const { isReadyToFix } = this.state;\n\n const isStickyDesktop = !this.isMobileLayout && this.getStickyProp() && isReadyToFix;\n const isStickyMobile = this.isMobileLayout && this.getStickyProp();\n\n const header = this.renderHeader;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SidePageHeaderDataTids.root} ref={this.wrapperRef} className={styles.headerWrapper()}>\n {isStickyDesktop || isStickyMobile ? (\n <Sticky ref={this.stickyRef} side=\"top\">\n {header}\n </Sticky>\n ) : (\n header()\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderHeader = (fixed = false) => {\n const isDisplayed = this.props.hasSeparator || fixed;\n return (\n <div>\n <div\n className={cx(styles.header(this.theme), {\n [styles.headerFixed(this.theme)]: fixed,\n [styles.mobileHeader(this.theme)]: this.isMobileLayout,\n })}\n >\n {this.renderClose(fixed)}\n <div\n className={cx(styles.title(this.theme), {\n [styles.title5_1(this.theme)]: isThemeGTE(this.theme, '5.1'),\n [styles.mobileTitle(this.theme)]: this.isMobileLayout,\n [styles.titleFixed()]: fixed,\n })}\n >\n {isFunction(this.props.children) ? this.props.children(fixed) : this.props.children}\n </div>\n </div>\n {isDisplayed && <ModalSeparator fixed={fixed} />}\n </div>\n );\n };\n\n private renderClose = (fixed: boolean) => {\n const stickyOffset = parseInt(this.theme.sidePageHeaderStickyOffset);\n const versionGTE5_1 = isThemeGTE(this.theme, '5.1');\n return (\n <div\n className={cx(styles.wrapperClose(this.theme), {\n [styles.wrapperClose5_1(this.theme)]: versionGTE5_1,\n [styles.wrapperCloseFixed(this.theme)]: fixed,\n [styles.wrapperCloseFixed5_1(this.theme)]: fixed && versionGTE5_1,\n [styles.mobileWrapperClose(this.theme)]: this.isMobileLayout,\n [styles.mobileWrapperClose5_1(this.theme)]: this.isMobileLayout && versionGTE5_1,\n })}\n >\n {this.isMobileLayout ? (\n <SidePageCloseButton isHeaderFixed={fixed} isMobile />\n ) : (\n <Sticky side=\"top\" offset={stickyOffset}>\n <SidePageCloseButton isHeaderFixed={fixed} />\n </Sticky>\n )}\n </div>\n );\n };\n\n private updateReadyToFix = () => {\n if (this.wrapper) {\n const wrapperScrolledUp = getDOMRect(this.wrapper).top;\n const isReadyToFix = this.regularHeight + wrapperScrolledUp <= this.fixedHeaderHeight;\n this.setState((state) => (state.isReadyToFix !== isReadyToFix ? { ...state, isReadyToFix } : state));\n }\n };\n\n private wrapperRef = (el: HTMLElement | null) => {\n this.wrapper = el;\n };\n\n private stickyRef = (el: Sticky | null) => {\n this.sticky = el;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","globalObject","Sticky","isFunction","ThemeContext","CommonWrapper","cx","responsiveLayout","rootNode","getDOMRect","ModalSeparator","isThemeGTE","ReactUIFeatureFlagsContext","styles","SidePageContext","SidePageCloseButton","SidePageHeaderDataTids","root","close","SidePageHeader","_class","_SidePageHeader","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","state","isReadyToFix","wrapper","sticky","lastRegularHeight","componentDidMount","addEventListener","update","setHasHeader","headerRef","componentWillUnmount","removeEventListener","_this$sticky","reflow","updateReadyToFix","renderHeader","fixed","_cx","_cx2","isDisplayed","props","hasSeparator","createElement","className","header","theme","headerFixed","mobileHeader","isMobileLayout","renderClose","title","title5_1","mobileTitle","titleFixed","children","_cx3","stickyOffset","parseInt","sidePageHeaderStickyOffset","versionGTE5_1","wrapperClose","wrapperClose5_1","wrapperCloseFixed","wrapperCloseFixed5_1","mobileWrapperClose","mobileWrapperClose5_1","isHeaderFixed","isMobile","side","offset","wrapperScrolledUp","top","regularHeight","fixedHeaderHeight","setState","_extends","wrapperRef","el","stickyRef","_inheritsLoose","_proto","prototype","render","_this2","Consumer","renderMain","getStickyProp","isStickyDesktop","isStickyMobile","rootNodeRef","setRootNode","ref","headerWrapper","Provider","value","stickyReduceLayoutEvents","_createClass","key","get","height","sidePageHeaderFixedLineHeight","sidePageHeaderFixedPaddingY","Component","__KONTUR_REACT_UI__","displayName","contextType","defaultProps"],"sources":["SidePageHeader.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { Sticky } from '../Sticky';\nimport { isFunction } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { ModalSeparator } from '../Modal/ModalSeparator';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport { ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './SidePage.styles';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\nimport { SidePageCloseButton } from './SidePageCloseButton';\n\nexport interface SidePageHeaderProps extends Omit<CommonProps, 'children'> {\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n /** Закрепляет хедер сверху сайдпейджа. */\n sticky?: boolean;\n\n /** Определяет, нужно ли показывать ModalSeparator. */\n hasSeparator?: boolean;\n}\n\nexport interface SidePageHeaderState {\n isReadyToFix: boolean;\n}\n\nexport const SidePageHeaderDataTids = {\n root: 'SidePageHeader__root',\n close: 'SidePage__close',\n} as const;\n\n/**\n * Шапка сайдпейджа\n *\n * @visibleName SidePage.Header\n */\n@responsiveLayout\n@rootNode\nexport class SidePageHeader extends React.Component<SidePageHeaderProps, SidePageHeaderState> {\n public static __KONTUR_REACT_UI__ = 'SidePageHeader';\n public static displayName = 'SidePageHeader';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n\n private isMobileLayout!: boolean;\n\n public state: SidePageHeaderState = {\n isReadyToFix: false,\n };\n\n public static defaultProps: Partial<SidePageHeaderProps> = {\n hasSeparator: false,\n };\n\n private theme!: Theme;\n private wrapper: HTMLElement | null = null;\n private sticky: Sticky | null = null;\n private lastRegularHeight = 0;\n private setRootNode!: TSetRootNode;\n public get regularHeight(): number {\n const { isReadyToFix } = this.state;\n if (!this.wrapper) {\n return 0;\n }\n if (!isReadyToFix) {\n this.lastRegularHeight = getDOMRect(this.wrapper).height;\n }\n return this.lastRegularHeight;\n }\n\n public get fixedHeaderHeight(): number {\n const { theme } = this;\n return parseInt(theme.sidePageHeaderFixedLineHeight) + parseInt(theme.sidePageHeaderFixedPaddingY) * 2;\n }\n\n public componentDidMount = () => {\n globalObject.addEventListener?.('scroll', this.update, true);\n this.context.setHasHeader?.();\n this.context.headerRef(this);\n };\n\n public componentWillUnmount = () => {\n globalObject.removeEventListener?.('scroll', this.update, true);\n this.context.setHasHeader?.(false);\n this.context.headerRef(null);\n };\n\n public update = () => {\n this.sticky?.reflow();\n this.updateReadyToFix();\n };\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getStickyProp() {\n if (typeof this.props.sticky !== 'undefined') {\n return this.props.sticky;\n }\n\n if (this.isMobileLayout) {\n return false;\n }\n\n return true;\n }\n\n private renderMain() {\n const { isReadyToFix } = this.state;\n\n const isStickyDesktop = !this.isMobileLayout && this.getStickyProp() && isReadyToFix;\n const isStickyMobile = this.isMobileLayout && this.getStickyProp();\n\n const header = this.renderHeader;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SidePageHeaderDataTids.root} ref={this.wrapperRef} className={styles.headerWrapper()}>\n <ReactUIFeatureFlagsContext.Provider value={{ stickyReduceLayoutEvents: true }}>\n {isStickyDesktop || isStickyMobile ? (\n <Sticky ref={this.stickyRef} side=\"top\">\n {header}\n </Sticky>\n ) : (\n header()\n )}\n </ReactUIFeatureFlagsContext.Provider>\n </div>\n </CommonWrapper>\n );\n }\n\n private renderHeader = (fixed = false) => {\n const isDisplayed = this.props.hasSeparator || fixed;\n return (\n <div>\n <div\n className={cx(styles.header(this.theme), {\n [styles.headerFixed(this.theme)]: fixed,\n [styles.mobileHeader(this.theme)]: this.isMobileLayout,\n })}\n >\n {this.renderClose(fixed)}\n <div\n className={cx(styles.title(this.theme), {\n [styles.title5_1(this.theme)]: isThemeGTE(this.theme, '5.1'),\n [styles.mobileTitle(this.theme)]: this.isMobileLayout,\n [styles.titleFixed()]: fixed,\n })}\n >\n {isFunction(this.props.children) ? this.props.children(fixed) : this.props.children}\n </div>\n </div>\n {isDisplayed && <ModalSeparator fixed={fixed} />}\n </div>\n );\n };\n\n private renderClose = (fixed: boolean) => {\n const stickyOffset = parseInt(this.theme.sidePageHeaderStickyOffset);\n const versionGTE5_1 = isThemeGTE(this.theme, '5.1');\n return (\n <div\n className={cx(styles.wrapperClose(this.theme), {\n [styles.wrapperClose5_1(this.theme)]: versionGTE5_1,\n [styles.wrapperCloseFixed(this.theme)]: fixed,\n [styles.wrapperCloseFixed5_1(this.theme)]: fixed && versionGTE5_1,\n [styles.mobileWrapperClose(this.theme)]: this.isMobileLayout,\n [styles.mobileWrapperClose5_1(this.theme)]: this.isMobileLayout && versionGTE5_1,\n })}\n >\n {this.isMobileLayout ? (\n <SidePageCloseButton isHeaderFixed={fixed} isMobile />\n ) : (\n <Sticky side=\"top\" offset={stickyOffset}>\n <SidePageCloseButton isHeaderFixed={fixed} />\n </Sticky>\n )}\n </div>\n );\n };\n\n private updateReadyToFix = () => {\n if (this.wrapper) {\n const wrapperScrolledUp = getDOMRect(this.wrapper).top;\n const isReadyToFix = this.regularHeight + wrapperScrolledUp <= this.fixedHeaderHeight;\n this.setState((state) => (state.isReadyToFix !== isReadyToFix ? { ...state, isReadyToFix } : state));\n }\n };\n\n private wrapperRef = (el: HTMLElement | null) => {\n this.wrapper = el;\n };\n\n private stickyRef = (el: Sticky | null) => {\n this.sticky = el;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|