@skbkontur/react-ui 5.0.10 → 5.0.11
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 +12 -0
- package/cjs/components/Dropdown/Dropdown.d.ts +2 -2
- package/cjs/components/Dropdown/Dropdown.js +8 -8
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.js +23 -23
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.js +1 -1
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/internal/Menu/Menu.d.ts +2 -1
- package/cjs/internal/Menu/Menu.js +4 -2
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/components/Dropdown/Dropdown/Dropdown.js +11 -11
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +2 -2
- package/components/MenuItem/MenuItem/MenuItem.js +41 -35
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/internal/Menu/Menu/Menu.js +6 -3
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +2 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","PropTypes","globalObject","isBrowser","locale","RenderLayer","isNonNullable","isKeyCapsLock","KeyboardEventCodes","Codes","Input","isIE11","CommonWrapper","ThemeContext","cx","rootNode","createPropsGetter","styles","PasswordInputIcon","PasswordInputLocaleHelper","PasswordInputDataTids","root","capsLockDetector","eyeIcon","PasswordInput","_dec","_class","_PasswordInput","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","_this$props","props","onKeyPress","detectCapsLock","getModifierState","CapsLock","setState","handleKeydown","_this2","_this2$props","onKeyDown","handleToggleVisibility","prevState","handleFocus","renderEye","createElement","className","iconWrapper","toggleVisibility","theme","getEyeWrapperClassname","disabled","type","eyeClosedAriaLabel","eyeOpenedAriaLabel","onClick","icon","size","refInput","element","hideSymbols","renderMain","rest","_objectWithoutPropertiesLoose","_excluded","inputProps","_extends","rightIcon","onFocusOutside","onClickOutside","ref","_inheritsLoose","_proto","prototype","componentDidMount","document","msCapsLockWarningOff","getDerivedStateFromProps","render","_this3","Consumer","rootNodeRef","setRootNode","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","bool"],"sources":["PasswordInput.tsx"],"sourcesContent":["import React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { locale } from '../../lib/locale/decorators';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyCapsLock } from '../../lib/events/keyboard/identifiers';\nimport { KeyboardEventCodes as Codes } from '../../lib/events/keyboard/KeyboardEventCodes';\nimport { Input, InputProps } from '../Input';\nimport { Nullable } from '../../typings/utility-types';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './PasswordInput.styles';\nimport { PasswordInputIcon } from './PasswordInputIcon';\nimport { PasswordInputLocale, PasswordInputLocaleHelper } from './locale';\n\nexport interface PasswordInputProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, InputProps {\n detectCapsLock?: boolean;\n}\n\nexport interface PasswordInputState {\n visible: boolean;\n capsLockEnabled?: boolean | null;\n}\n\nexport const PasswordInputDataTids = {\n root: 'PasswordInput',\n capsLockDetector: 'PasswordInputCapsLockDetector',\n eyeIcon: 'PasswordInputEyeIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<PasswordInputProps, 'size'>>;\n\n/**\n * Компонент для ввода пароля\n */\n@rootNode\n@locale('PasswordInput', PasswordInputLocaleHelper)\nexport class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {\n public static __KONTUR_REACT_UI__ = 'PasswordInput';\n public static displayName = 'PasswordInput';\n\n public static propTypes = {\n /**\n * Включает CapsLock детектор\n */\n detectCapsLock: PropTypes.bool,\n };\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(PasswordInput.defaultProps);\n\n public state: PasswordInputState = {\n visible: false,\n capsLockEnabled: false,\n };\n\n private theme!: Theme;\n\n private input: Nullable<Input>;\n private setRootNode!: TSetRootNode;\n private readonly locale!: PasswordInputLocale;\n\n public componentDidMount() {\n if (this.props.detectCapsLock) {\n this.setState({ capsLockEnabled: null });\n }\n\n // @ts-expect-error: IE-specific API.\n if (isIE11 && isBrowser(globalObject) && !globalObject.document.msCapsLockWarningOff) {\n // @ts-expect-error: Read the comment above.\n // turns off default ie capslock warning\n globalObject.document.msCapsLockWarningOff = true;\n }\n }\n\n public static getDerivedStateFromProps(props: PasswordInputProps, state: PasswordInputState) {\n if (props.disabled) {\n return { visible: false };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain(this.props)}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n this.handleBlur();\n };\n\n private handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const { onKeyPress, detectCapsLock } = this.props;\n\n if (onKeyPress) {\n onKeyPress(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n const capsLockEnabled = e.getModifierState(Codes.CapsLock);\n\n this.setState({ capsLockEnabled });\n };\n\n private handleKeydown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const {\n props: { detectCapsLock, onKeyDown },\n state: { capsLockEnabled },\n } = this;\n\n if (onKeyDown) {\n onKeyDown(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n if (isKeyCapsLock(e) && isNonNullable(capsLockEnabled)) {\n this.setState({ capsLockEnabled: !capsLockEnabled });\n }\n };\n\n private handleToggleVisibility = () => {\n this.setState((prevState) => ({ visible: !prevState.visible }), this.handleFocus);\n };\n\n private handleFocus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n private handleBlur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getEyeWrapperClassname() {\n switch (this.getProps().size) {\n case 'large':\n return styles.eyeWrapperLarge(this.theme);\n case 'medium':\n return styles.eyeWrapperMedium(this.theme);\n case 'small':\n default:\n return styles.eyeWrapperSmall(this.theme);\n }\n }\n\n private renderEye = () => {\n const { capsLockEnabled } = this.state;\n\n return (\n <span className={styles.iconWrapper()}>\n {capsLockEnabled && (\n <span className={styles.capsLockDetector()} data-tid={PasswordInputDataTids.capsLockDetector} />\n )}\n <span className={cx(styles.toggleVisibility(this.theme), this.getEyeWrapperClassname())}>\n {!this.props.disabled && (\n <button\n type=\"button\"\n aria-label={this.state.visible ? this.locale.eyeClosedAriaLabel : this.locale.eyeOpenedAriaLabel}\n onClick={this.handleToggleVisibility}\n className={styles.icon()}\n data-tid={PasswordInputDataTids.eyeIcon}\n >\n <PasswordInputIcon size={this.props.size} visible={this.state.visible} />\n </button>\n )}\n </span>\n </span>\n );\n };\n\n private refInput = (element: Input) => {\n this.input = element;\n };\n\n private hideSymbols = () => {\n this.setState({ visible: false });\n };\n\n private renderMain = (props: CommonWrapperRestProps<PasswordInputProps>) => {\n const { detectCapsLock, ...rest } = props;\n const inputProps = {\n ...rest,\n onKeyDown: this.handleKeydown,\n onKeyPress: this.handleKeyPress,\n rightIcon: this.renderEye(),\n };\n\n return (\n <RenderLayer onFocusOutside={this.hideSymbols} onClickOutside={this.hideSymbols}>\n <div data-tid={PasswordInputDataTids.root} className={styles.root()}>\n <Input ref={this.refInput} type={this.state.visible ? 'text' : 'password'} {...inputProps} />\n </div>\n </RenderLayer>\n );\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","PropTypes","globalObject","isBrowser","locale","RenderLayer","isNonNullable","isKeyCapsLock","KeyboardEventCodes","Codes","Input","isIE11","CommonWrapper","ThemeContext","cx","rootNode","createPropsGetter","styles","PasswordInputIcon","PasswordInputLocaleHelper","PasswordInputDataTids","root","capsLockDetector","eyeIcon","PasswordInput","_dec","_class","_PasswordInput","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","_this$props","props","onKeyPress","detectCapsLock","getModifierState","CapsLock","setState","handleKeydown","_this2","_this2$props","onKeyDown","handleToggleVisibility","prevState","handleFocus","renderEye","createElement","className","iconWrapper","toggleVisibility","theme","getEyeWrapperClassname","disabled","type","eyeClosedAriaLabel","eyeOpenedAriaLabel","onClick","icon","size","refInput","element","hideSymbols","renderMain","rest","_objectWithoutPropertiesLoose","_excluded","inputProps","_extends","rightIcon","onFocusOutside","onClickOutside","ref","_inheritsLoose","_proto","prototype","componentDidMount","document","msCapsLockWarningOff","getDerivedStateFromProps","render","_this3","Consumer","rootNodeRef","setRootNode","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","bool"],"sources":["PasswordInput.tsx"],"sourcesContent":["import React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { locale } from '../../lib/locale/decorators';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyCapsLock } from '../../lib/events/keyboard/identifiers';\nimport { KeyboardEventCodes as Codes } from '../../lib/events/keyboard/KeyboardEventCodes';\nimport { Input, InputProps } from '../Input';\nimport { Nullable } from '../../typings/utility-types';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './PasswordInput.styles';\nimport { PasswordInputIcon } from './PasswordInputIcon';\nimport { PasswordInputLocale, PasswordInputLocaleHelper } from './locale';\n\nexport interface PasswordInputProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, InputProps {\n detectCapsLock?: boolean;\n}\n\nexport interface PasswordInputState {\n visible: boolean;\n capsLockEnabled?: boolean | null;\n}\n\nexport const PasswordInputDataTids = {\n root: 'PasswordInput',\n capsLockDetector: 'PasswordInputCapsLockDetector',\n eyeIcon: 'PasswordInputEyeIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<PasswordInputProps, 'size'>>;\n\n/**\n * Компонент для ввода пароля\n */\n@rootNode\n@locale('PasswordInput', PasswordInputLocaleHelper)\nexport class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {\n public static __KONTUR_REACT_UI__ = 'PasswordInput';\n public static displayName = 'PasswordInput';\n\n public static propTypes = {\n /**\n * Включает CapsLock детектор\n */\n detectCapsLock: PropTypes.bool,\n };\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(PasswordInput.defaultProps);\n\n public state: PasswordInputState = {\n visible: false,\n capsLockEnabled: false,\n };\n\n private theme!: Theme;\n\n private input: Nullable<Input>;\n private setRootNode!: TSetRootNode;\n private readonly locale!: PasswordInputLocale;\n\n public componentDidMount() {\n if (this.props.detectCapsLock) {\n this.setState({ capsLockEnabled: null });\n }\n\n // @ts-expect-error: IE-specific API.\n if (isIE11 && isBrowser(globalObject) && !globalObject.document.msCapsLockWarningOff) {\n // @ts-expect-error: Read the comment above.\n // turns off default ie capslock warning\n globalObject.document.msCapsLockWarningOff = true;\n }\n }\n\n public static getDerivedStateFromProps(props: PasswordInputProps, state: PasswordInputState) {\n if (props.disabled) {\n return { visible: false };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n this.handleBlur();\n };\n\n private handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const { onKeyPress, detectCapsLock } = this.props;\n\n if (onKeyPress) {\n onKeyPress(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n const capsLockEnabled = e.getModifierState(Codes.CapsLock);\n\n this.setState({ capsLockEnabled });\n };\n\n private handleKeydown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const {\n props: { detectCapsLock, onKeyDown },\n state: { capsLockEnabled },\n } = this;\n\n if (onKeyDown) {\n onKeyDown(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n if (isKeyCapsLock(e) && isNonNullable(capsLockEnabled)) {\n this.setState({ capsLockEnabled: !capsLockEnabled });\n }\n };\n\n private handleToggleVisibility = () => {\n this.setState((prevState) => ({ visible: !prevState.visible }), this.handleFocus);\n };\n\n private handleFocus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n private handleBlur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getEyeWrapperClassname() {\n switch (this.getProps().size) {\n case 'large':\n return styles.eyeWrapperLarge(this.theme);\n case 'medium':\n return styles.eyeWrapperMedium(this.theme);\n case 'small':\n default:\n return styles.eyeWrapperSmall(this.theme);\n }\n }\n\n private renderEye = () => {\n const { capsLockEnabled } = this.state;\n\n return (\n <span className={styles.iconWrapper()}>\n {capsLockEnabled && (\n <span className={styles.capsLockDetector()} data-tid={PasswordInputDataTids.capsLockDetector} />\n )}\n <span className={cx(styles.toggleVisibility(this.theme), this.getEyeWrapperClassname())}>\n {!this.props.disabled && (\n <button\n type=\"button\"\n aria-label={this.state.visible ? this.locale.eyeClosedAriaLabel : this.locale.eyeOpenedAriaLabel}\n onClick={this.handleToggleVisibility}\n className={styles.icon()}\n data-tid={PasswordInputDataTids.eyeIcon}\n >\n <PasswordInputIcon size={this.props.size} visible={this.state.visible} />\n </button>\n )}\n </span>\n </span>\n );\n };\n\n private refInput = (element: Input) => {\n this.input = element;\n };\n\n private hideSymbols = () => {\n this.setState({ visible: false });\n };\n\n private renderMain = (props: CommonWrapperRestProps<PasswordInputProps>) => {\n const { detectCapsLock, ...rest } = props;\n const inputProps = {\n ...rest,\n onKeyDown: this.handleKeydown,\n onKeyPress: this.handleKeyPress,\n rightIcon: this.renderEye(),\n };\n\n return (\n <RenderLayer onFocusOutside={this.hideSymbols} onClickOutside={this.hideSymbols}>\n <div data-tid={PasswordInputDataTids.root} className={styles.root()}>\n <Input ref={this.refInput} type={this.state.visible ? 'text' : 'password'} {...inputProps} />\n </div>\n </RenderLayer>\n );\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
1
2
|
import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
|
|
2
3
|
var _class, _Menu;
|
|
3
4
|
import React from 'react';
|
|
@@ -16,6 +17,7 @@ import { getRootNode, rootNode } from "../../../lib/rootNode";
|
|
|
16
17
|
import { isIE11 } from "../../../lib/client";
|
|
17
18
|
import { createPropsGetter } from "../../../lib/createPropsGetter";
|
|
18
19
|
import { isInstanceOf } from "../../../lib/isInstanceOf";
|
|
20
|
+
import { CommonWrapper } from "../../CommonWrapper";
|
|
19
21
|
import { styles } from "../Menu.styles";
|
|
20
22
|
import { MenuNavigation } from "../MenuNavigation";
|
|
21
23
|
import { MenuContext } from "../MenuContext";
|
|
@@ -277,13 +279,14 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_Menu = /*#__PURE
|
|
|
277
279
|
bottom: "" + this.theme.scrollContainerScrollBarOffsetY
|
|
278
280
|
};
|
|
279
281
|
var isMobile = this.isMobileLayout;
|
|
280
|
-
return /*#__PURE__*/React.createElement(
|
|
282
|
+
return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
|
|
283
|
+
rootNodeRef: this.setRootNode
|
|
284
|
+
}, this.props), /*#__PURE__*/React.createElement("div", {
|
|
281
285
|
"data-tid": MenuDataTids.root,
|
|
282
286
|
className: cx(getAlignRightClass(this.props), (_cx3 = {}, _cx3[styles.root(this.theme)] = true, _cx3[styles.hasMargin(this.theme)] = hasMargin, _cx3[styles.mobileRoot(this.theme)] = isMobile, _cx3[styles.shadow(this.theme)] = !isMobile, _cx3)),
|
|
283
287
|
style: this.getStyle(this.props),
|
|
284
288
|
id: this.props.id,
|
|
285
289
|
onKeyDown: this.handleKeyDown,
|
|
286
|
-
ref: this.setRootNode,
|
|
287
290
|
tabIndex: 0
|
|
288
291
|
}, this.props.header && this.renderHeader(), /*#__PURE__*/React.createElement(ScrollContainer, {
|
|
289
292
|
ref: this.refScrollContainer,
|
|
@@ -302,7 +305,7 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_Menu = /*#__PURE
|
|
|
302
305
|
enableIconPadding: this.state.enableIconPadding,
|
|
303
306
|
setEnableIconPadding: this.setEnableIconPadding
|
|
304
307
|
}
|
|
305
|
-
}, this.props.children))), this.props.footer && this.renderFooter());
|
|
308
|
+
}, this.props.children))), this.props.footer && this.renderFooter()));
|
|
306
309
|
};
|
|
307
310
|
_proto.move = function move(step) {
|
|
308
311
|
if (this.unmounted) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","globalObject","isBrowser","isKeyArrowDown","isKeyArrowUp","isKeyEnter","MenuSeparator","ThemeFactory","getDOMRect","responsiveLayout","isNonNullable","ScrollContainer","MenuItemDataTids","ThemeContext","cx","getRootNode","rootNode","isIE11","createPropsGetter","isInstanceOf","styles","MenuNavigation","MenuContext","MenuDataTids","root","Menu","_class","_Menu","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","highlightedIndex","maxHeight","scrollState","enableIconPadding","unmounted","contentRef","createRef","menuNavigation","content","focusOnRootElement","HTMLElement","focus","renderHeader","_cx","createElement","className","wrapper","headerWrapper","ref","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","_cx2","footerWrapper","footer","Provider","value","create","menuSeparatorMarginY","setInitialSelection","i","initialSelectedItemIndex","down","shouldRecalculateMaxHeight","prevProps","_this$props","children","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","Children","count","calculateMaxHeight","parsedMaxHeight","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","height","setState","refScrollContainer","scrollContainer","scrollToSelected","highlightedItem","scrollTo","scrollToTop","scrollToBottom","scroll","nextIndex","items","handleKeyDown","event","onKeyDown","defaultPrevented","preventDefault","up","select","getStyle","align","maxWidth","width","minWidth","handleScrollStateChange","setEnableIconPadding","isIconPaddingEnabled","preventIconsOffset","_inheritsLoose","_proto","prototype","componentWillUnmount","componentDidMount","componentDidUpdate","render","_this2","Consumer","renderMain","move","enter","_this$menuNavigation$","navigate","reset","hasHighlightedItem","highlightItem","index","highlightByIndex","_cx3","_cx4","isEmpty","_this$getProps","hasMargin","preventWindowScroll","offsetY","top","scrollContainerScrollBarOffsetY","right","bottom","isMobile","isMobileLayout","getAlignRightClass","mobileRoot","shadow","style","id","setRootNode","tabIndex","onScrollStateChange","disabled","disableScrollContainer","scrollContainerMobile","navigation","onItemClick","step","cyclicSelection","childrenToArray","filter","PureComponent","__KONTUR_REACT_UI__","displayName","ret","forEach","child","push","_cx5","alignRight","alignRightIE11","alignRightIE11FixAutoWidth"],"sources":["Menu.tsx"],"sourcesContent":["import React, { CSSProperties, HTMLAttributes } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { isNonNullable } from '../../lib/utils';\nimport { ScrollContainer, ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { MenuItem, MenuItemDataTids } from '../../components/MenuItem';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isIE11 } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\n\nimport { styles } from './Menu.styles';\nimport { MenuNavigation } from './MenuNavigation';\nimport { MenuContext } from './MenuContext';\n\nexport interface MenuProps extends Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n children: React.ReactNode;\n hasMargin?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n /**\n * Предотвращает выравнивание текста всех пунктов меню относительно друг друга.\n * Так, если хотя бы у одного пункта меню есть иконка, текст в остальных пунктах меню будет выровнен относительно пункта меню с иконкой\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n /**\n * Циклический перебор айтемов меню (по-дефолтну включен)\n */\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\nexport interface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n enableIconPadding: boolean;\n}\n\nexport const MenuDataTids = {\n root: 'Menu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n MenuProps,\n | 'align'\n | 'width'\n | 'hasMargin'\n | 'maxHeight'\n | 'preventWindowScroll'\n | 'cyclicSelection'\n | 'initialSelectedItemIndex'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Menu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n public static displayName = 'Menu';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasMargin: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(Menu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n enableIconPadding: false,\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private isMobileLayout!: boolean;\n private unmounted = false;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private contentRef = React.createRef<HTMLDivElement>();\n private menuNavigation: MenuNavigation<MenuItem> = new MenuNavigation(this.contentRef, MenuItemDataTids.content);\n\n public componentWillUnmount() {\n this.unmounted = true;\n }\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n this.unmounted = false;\n }\n\n public componentDidUpdate(prevProps: MenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public up() {\n this.move(-1);\n }\n\n /**\n * @public\n */\n public down() {\n this.move(1);\n }\n\n /**\n * @public\n */\n public enter(event: React.SyntheticEvent<HTMLElement>) {\n this.menuNavigation.highlightedItem?.navigate();\n return this.menuNavigation.select(event);\n }\n\n /**\n * @public\n */\n public reset() {\n this.menuNavigation.reset();\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n return !!this.menuNavigation.highlightedItem;\n }\n\n public highlightItem(index: number) {\n this.menuNavigation.highlightByIndex(index);\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n const { hasMargin, maxHeight, preventWindowScroll } = this.getProps();\n\n const offsetY = {\n top: `${this.theme.scrollContainerScrollBarOffsetY}`,\n right: 0,\n bottom: `${this.theme.scrollContainerScrollBarOffsetY}`,\n };\n\n const isMobile = this.isMobileLayout;\n return (\n <div\n data-tid={MenuDataTids.root}\n className={cx(getAlignRightClass(this.props), {\n [styles.root(this.theme)]: true,\n [styles.hasMargin(this.theme)]: hasMargin,\n [styles.mobileRoot(this.theme)]: isMobile,\n [styles.shadow(this.theme)]: !isMobile,\n })}\n style={this.getStyle(this.props)}\n id={this.props.id}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header && this.renderHeader()}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n disabled={this.props.disableScrollContainer}\n offsetY={offsetY}\n >\n <div\n className={cx({\n [styles.scrollContainer(this.theme)]: true,\n [styles.scrollContainerMobile(this.theme)]: isMobile,\n })}\n ref={this.contentRef}\n >\n <MenuContext.Provider\n value={{\n navigation: this.menuNavigation,\n onItemClick: this.props.onItemClick,\n enableIconPadding: this.state.enableIconPadding,\n setEnableIconPadding: this.setEnableIconPadding,\n }}\n >\n {this.props.children}\n </MenuContext.Provider>\n </div>\n </ScrollContainer>\n {this.props.footer && this.renderFooter()}\n </div>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.headerWrapper()]: true,\n })}\n ref={(el) => (this.header = el)}\n >\n <div className={styles.contentWrapper()}>{this.props.header}</div>\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.footerWrapper()]: true,\n })}\n ref={(el) => (this.footer = el)}\n >\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeContext.Provider>\n );\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.down();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && isBrowser(globalObject) && rootNode) {\n const rootElementMaxHeight = globalObject.getComputedStyle?.(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private scrollToSelected = () => {\n const highlightedItem = this.menuNavigation.highlightedItem;\n if (this.scrollContainer && highlightedItem) {\n const rootNode = getRootNode(highlightedItem);\n // TODO: Remove this check once IF-647 is resolved\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n this.scrollContainer.scrollTo(rootNode);\n }\n }\n };\n\n private scrollToTop = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToTop();\n }\n };\n\n private scrollToBottom = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToBottom();\n }\n };\n\n private scroll = (nextIndex: number) => {\n switch (nextIndex) {\n case 0:\n this.scrollToTop?.();\n break;\n case this.menuNavigation.items.length - 1:\n this.scrollToBottom?.();\n break;\n default:\n this.scrollToSelected?.();\n }\n };\n\n private move(step: number) {\n if (this.unmounted) {\n // NOTE workaround, because `ComboBox` call `process.nextTick` in reducer\n return;\n }\n const nextIndex = this.menuNavigation.move(step, this.getProps().cyclicSelection);\n this.scroll(nextIndex);\n }\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(event)) {\n event.preventDefault();\n this.up();\n } else if (isKeyArrowDown(event)) {\n event.preventDefault();\n this.down();\n } else if (isKeyEnter(event)) {\n this.menuNavigation.select(event);\n }\n };\n\n private getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: this.state.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: this.state.maxHeight,\n };\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n\n private setEnableIconPadding = (isIconPaddingEnabled: boolean) => {\n !this.getProps().preventIconsOffset && this.setState({ enableIconPadding: isIconPaddingEnabled });\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n\nconst getAlignRightClass = (props: MenuProps) => {\n if (props.align === 'right') {\n return cx({\n [styles.alignRight()]: !isIE11,\n [styles.alignRightIE11()]: isIE11,\n [styles.alignRightIE11FixAutoWidth()]: isIE11 && props.width === 'auto',\n });\n }\n\n return null;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","globalObject","isBrowser","isKeyArrowDown","isKeyArrowUp","isKeyEnter","MenuSeparator","ThemeFactory","getDOMRect","responsiveLayout","isNonNullable","ScrollContainer","MenuItemDataTids","ThemeContext","cx","getRootNode","rootNode","isIE11","createPropsGetter","isInstanceOf","CommonWrapper","styles","MenuNavigation","MenuContext","MenuDataTids","root","Menu","_class","_Menu","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","highlightedIndex","maxHeight","scrollState","enableIconPadding","unmounted","contentRef","createRef","menuNavigation","content","focusOnRootElement","HTMLElement","focus","renderHeader","_cx","createElement","className","wrapper","headerWrapper","ref","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","_cx2","footerWrapper","footer","Provider","value","create","menuSeparatorMarginY","setInitialSelection","i","initialSelectedItemIndex","down","shouldRecalculateMaxHeight","prevProps","_this$props","children","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","Children","count","calculateMaxHeight","parsedMaxHeight","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","height","setState","refScrollContainer","scrollContainer","scrollToSelected","highlightedItem","scrollTo","scrollToTop","scrollToBottom","scroll","nextIndex","items","handleKeyDown","event","onKeyDown","defaultPrevented","preventDefault","up","select","getStyle","align","maxWidth","width","minWidth","handleScrollStateChange","setEnableIconPadding","isIconPaddingEnabled","preventIconsOffset","_inheritsLoose","_proto","prototype","componentWillUnmount","componentDidMount","componentDidUpdate","render","_this2","Consumer","renderMain","move","enter","_this$menuNavigation$","navigate","reset","hasHighlightedItem","highlightItem","index","highlightByIndex","_cx3","_cx4","isEmpty","_this$getProps","hasMargin","preventWindowScroll","offsetY","top","scrollContainerScrollBarOffsetY","right","bottom","isMobile","isMobileLayout","_extends","rootNodeRef","setRootNode","getAlignRightClass","mobileRoot","shadow","style","id","tabIndex","onScrollStateChange","disabled","disableScrollContainer","scrollContainerMobile","navigation","onItemClick","step","cyclicSelection","childrenToArray","filter","PureComponent","__KONTUR_REACT_UI__","displayName","ret","forEach","child","push","_cx5","alignRight","alignRightIE11","alignRightIE11FixAutoWidth"],"sources":["Menu.tsx"],"sourcesContent":["import React, { CSSProperties, HTMLAttributes } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { isNonNullable } from '../../lib/utils';\nimport { ScrollContainer, ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { MenuItem, MenuItemDataTids } from '../../components/MenuItem';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isIE11 } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { CommonProps, CommonWrapper } from '../CommonWrapper';\n\nimport { styles } from './Menu.styles';\nimport { MenuNavigation } from './MenuNavigation';\nimport { MenuContext } from './MenuContext';\n\nexport interface MenuProps extends CommonProps, Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n children: React.ReactNode;\n hasMargin?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n /**\n * Предотвращает выравнивание текста всех пунктов меню относительно друг друга.\n * Так, если хотя бы у одного пункта меню есть иконка, текст в остальных пунктах меню будет выровнен относительно пункта меню с иконкой\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n /**\n * Циклический перебор айтемов меню (по-дефолтну включен)\n */\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\nexport interface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n enableIconPadding: boolean;\n}\n\nexport const MenuDataTids = {\n root: 'Menu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n MenuProps,\n | 'align'\n | 'width'\n | 'hasMargin'\n | 'maxHeight'\n | 'preventWindowScroll'\n | 'cyclicSelection'\n | 'initialSelectedItemIndex'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Menu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n public static displayName = 'Menu';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasMargin: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(Menu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n enableIconPadding: false,\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private isMobileLayout!: boolean;\n private unmounted = false;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private contentRef = React.createRef<HTMLDivElement>();\n private menuNavigation: MenuNavigation<MenuItem> = new MenuNavigation(this.contentRef, MenuItemDataTids.content);\n\n public componentWillUnmount() {\n this.unmounted = true;\n }\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n this.unmounted = false;\n }\n\n public componentDidUpdate(prevProps: MenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public up() {\n this.move(-1);\n }\n\n /**\n * @public\n */\n public down() {\n this.move(1);\n }\n\n /**\n * @public\n */\n public enter(event: React.SyntheticEvent<HTMLElement>) {\n this.menuNavigation.highlightedItem?.navigate();\n return this.menuNavigation.select(event);\n }\n\n /**\n * @public\n */\n public reset() {\n this.menuNavigation.reset();\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n return !!this.menuNavigation.highlightedItem;\n }\n\n public highlightItem(index: number) {\n this.menuNavigation.highlightByIndex(index);\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n const { hasMargin, maxHeight, preventWindowScroll } = this.getProps();\n\n const offsetY = {\n top: `${this.theme.scrollContainerScrollBarOffsetY}`,\n right: 0,\n bottom: `${this.theme.scrollContainerScrollBarOffsetY}`,\n };\n\n const isMobile = this.isMobileLayout;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={MenuDataTids.root}\n className={cx(getAlignRightClass(this.props), {\n [styles.root(this.theme)]: true,\n [styles.hasMargin(this.theme)]: hasMargin,\n [styles.mobileRoot(this.theme)]: isMobile,\n [styles.shadow(this.theme)]: !isMobile,\n })}\n style={this.getStyle(this.props)}\n id={this.props.id}\n onKeyDown={this.handleKeyDown}\n tabIndex={0}\n >\n {this.props.header && this.renderHeader()}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n disabled={this.props.disableScrollContainer}\n offsetY={offsetY}\n >\n <div\n className={cx({\n [styles.scrollContainer(this.theme)]: true,\n [styles.scrollContainerMobile(this.theme)]: isMobile,\n })}\n ref={this.contentRef}\n >\n <MenuContext.Provider\n value={{\n navigation: this.menuNavigation,\n onItemClick: this.props.onItemClick,\n enableIconPadding: this.state.enableIconPadding,\n setEnableIconPadding: this.setEnableIconPadding,\n }}\n >\n {this.props.children}\n </MenuContext.Provider>\n </div>\n </ScrollContainer>\n {this.props.footer && this.renderFooter()}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.headerWrapper()]: true,\n })}\n ref={(el) => (this.header = el)}\n >\n <div className={styles.contentWrapper()}>{this.props.header}</div>\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.footerWrapper()]: true,\n })}\n ref={(el) => (this.footer = el)}\n >\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeContext.Provider>\n );\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.down();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && isBrowser(globalObject) && rootNode) {\n const rootElementMaxHeight = globalObject.getComputedStyle?.(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private scrollToSelected = () => {\n const highlightedItem = this.menuNavigation.highlightedItem;\n if (this.scrollContainer && highlightedItem) {\n const rootNode = getRootNode(highlightedItem);\n // TODO: Remove this check once IF-647 is resolved\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n this.scrollContainer.scrollTo(rootNode);\n }\n }\n };\n\n private scrollToTop = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToTop();\n }\n };\n\n private scrollToBottom = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToBottom();\n }\n };\n\n private scroll = (nextIndex: number) => {\n switch (nextIndex) {\n case 0:\n this.scrollToTop?.();\n break;\n case this.menuNavigation.items.length - 1:\n this.scrollToBottom?.();\n break;\n default:\n this.scrollToSelected?.();\n }\n };\n\n private move(step: number) {\n if (this.unmounted) {\n // NOTE workaround, because `ComboBox` call `process.nextTick` in reducer\n return;\n }\n const nextIndex = this.menuNavigation.move(step, this.getProps().cyclicSelection);\n this.scroll(nextIndex);\n }\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(event)) {\n event.preventDefault();\n this.up();\n } else if (isKeyArrowDown(event)) {\n event.preventDefault();\n this.down();\n } else if (isKeyEnter(event)) {\n this.menuNavigation.select(event);\n }\n };\n\n private getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: this.state.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: this.state.maxHeight,\n };\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n\n private setEnableIconPadding = (isIconPaddingEnabled: boolean) => {\n !this.getProps().preventIconsOffset && this.setState({ enableIconPadding: isIconPaddingEnabled });\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n\nconst getAlignRightClass = (props: MenuProps) => {\n if (props.align === 'right') {\n return cx({\n [styles.alignRight()]: !isIE11,\n [styles.alignRightIE11()]: isIE11,\n [styles.alignRightIE11FixAutoWidth()]: isIE11 && props.width === 'auto',\n });\n }\n\n return null;\n};\n"],"mappings":"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","ignoreList":[]}
|
package/internal/Menu/Menu.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { HTMLAttributes } from 'react';
|
|
2
2
|
import { ScrollContainerScrollState } from '../../components/ScrollContainer';
|
|
3
|
-
|
|
3
|
+
import { CommonProps } from '../CommonWrapper';
|
|
4
|
+
export interface MenuProps extends CommonProps, Pick<HTMLAttributes<HTMLDivElement>, 'id'> {
|
|
4
5
|
children: React.ReactNode;
|
|
5
6
|
hasMargin?: boolean;
|
|
6
7
|
/**
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skbkontur/react-ui",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.11",
|
|
4
4
|
"description": "UI Components",
|
|
5
5
|
"main": "cjs/index.js",
|
|
6
6
|
"module": "index.js",
|
|
7
7
|
"sideEffects": false,
|
|
8
|
-
"homepage": "https://tech.skbkontur.ru/react-ui/5.0.
|
|
8
|
+
"homepage": "https://tech.skbkontur.ru/react-ui/5.0.11/",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
11
|
"url": "git@github.com:skbkontur/retail-ui.git"
|