@skbkontur/react-ui 5.0.10 → 5.0.11-ZIndex-several-roots.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +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/MaskedInput/ColorableInputElement/ColorableInputElement.js +11 -10
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.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/cjs/internal/ZIndex/ZIndex.d.ts +1 -1
- package/cjs/internal/ZIndex/ZIndex.js +18 -6
- package/cjs/internal/ZIndex/ZIndex.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/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js +13 -10
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js.map +1 -1
- 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/internal/ZIndex/ZIndex/ZIndex.js +12 -14
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/ZIndex/ZIndex.d.ts +1 -1
- package/package.json +2 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_propTypes","_globalObject","_decorators","_RenderLayer","_utils","_identifiers","_KeyboardEventCodes","_Input","_client","_CommonWrapper","_ThemeContext","_Emotion","_rootNode","_createPropsGetter","_PasswordInput2","_PasswordInputIcon","_locale","_excluded","_dec","_class","_PasswordInput","PasswordInputDataTids","exports","root","capsLockDetector","eyeIcon","PasswordInput","locale","PasswordInputLocaleHelper","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","_this$props","props","onKeyPress","detectCapsLock","getModifierState","Codes","CapsLock","setState","handleKeydown","_this2","_this2$props","onKeyDown","isKeyCapsLock","isNonNullable","handleToggleVisibility","prevState","handleFocus","renderEye","default","createElement","className","styles","iconWrapper","cx","toggleVisibility","theme","getEyeWrapperClassname","disabled","type","eyeClosedAriaLabel","eyeOpenedAriaLabel","onClick","icon","PasswordInputIcon","size","refInput","element","hideSymbols","renderMain","rest","_objectWithoutPropertiesLoose2","inputProps","_extends2","rightIcon","RenderLayer","onFocusOutside","onClickOutside","Input","ref","_inheritsLoose2","_proto","prototype","componentDidMount","isIE11","isBrowser","globalObject","document","msCapsLockWarningOff","getDerivedStateFromProps","render","_this3","ThemeContext","Consumer","CommonWrapper","rootNodeRef","setRootNode","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","React","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","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","_interopRequireDefault","require","_propTypes","_globalObject","_decorators","_RenderLayer","_utils","_identifiers","_KeyboardEventCodes","_Input","_client","_CommonWrapper","_ThemeContext","_Emotion","_rootNode","_createPropsGetter","_PasswordInput2","_PasswordInputIcon","_locale","_excluded","_dec","_class","_PasswordInput","PasswordInputDataTids","exports","root","capsLockDetector","eyeIcon","PasswordInput","locale","PasswordInputLocaleHelper","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","_this$props","props","onKeyPress","detectCapsLock","getModifierState","Codes","CapsLock","setState","handleKeydown","_this2","_this2$props","onKeyDown","isKeyCapsLock","isNonNullable","handleToggleVisibility","prevState","handleFocus","renderEye","default","createElement","className","styles","iconWrapper","cx","toggleVisibility","theme","getEyeWrapperClassname","disabled","type","eyeClosedAriaLabel","eyeOpenedAriaLabel","onClick","icon","PasswordInputIcon","size","refInput","element","hideSymbols","renderMain","rest","_objectWithoutPropertiesLoose2","inputProps","_extends2","rightIcon","RenderLayer","onFocusOutside","onClickOutside","Input","ref","_inheritsLoose2","_proto","prototype","componentDidMount","isIE11","isBrowser","globalObject","document","msCapsLockWarningOff","getDerivedStateFromProps","render","_this3","ThemeContext","Consumer","CommonWrapper","rootNodeRef","setRootNode","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","React","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","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,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
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.MenuDataTids = exports.Menu = void 0;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.MenuDataTids = exports.Menu = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
2
2
|
var _globalObject = require("@skbkontur/global-object");
|
|
3
3
|
|
|
4
4
|
var _identifiers = require("../../lib/events/keyboard/identifiers");
|
|
@@ -17,6 +17,7 @@ var _rootNode2 = require("../../lib/rootNode");
|
|
|
17
17
|
var _client = require("../../lib/client");
|
|
18
18
|
var _createPropsGetter = require("../../lib/createPropsGetter");
|
|
19
19
|
var _isInstanceOf = require("../../lib/isInstanceOf");
|
|
20
|
+
var _CommonWrapper = require("../CommonWrapper");
|
|
20
21
|
|
|
21
22
|
var _Menu2 = require("./Menu.styles");
|
|
22
23
|
var _MenuNavigation = require("./MenuNavigation");
|
|
@@ -257,6 +258,7 @@ Menu = exports.Menu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode2.r
|
|
|
257
258
|
|
|
258
259
|
|
|
259
260
|
|
|
261
|
+
|
|
260
262
|
|
|
261
263
|
|
|
262
264
|
renderHeader = function () {var _cx;
|
|
@@ -455,7 +457,7 @@ Menu = exports.Menu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode2.r
|
|
|
455
457
|
* @public
|
|
456
458
|
*/;_proto.reset = function reset() {this.menuNavigation.reset();} /**
|
|
457
459
|
* @public
|
|
458
|
-
*/;_proto.hasHighlightedItem = function hasHighlightedItem() {return !!this.menuNavigation.highlightedItem;};_proto.highlightItem = function highlightItem(index) {this.menuNavigation.highlightByIndex(index);};_proto.renderMain = function renderMain() {var _cx3, _cx4;if (this.isEmpty()) {return null;}var _this$getProps = this.getProps(),hasMargin = _this$getProps.hasMargin,maxHeight = _this$getProps.maxHeight,preventWindowScroll = _this$getProps.preventWindowScroll;var offsetY = { top: "" + this.theme.scrollContainerScrollBarOffsetY, right: 0, bottom: "" + this.theme.scrollContainerScrollBarOffsetY };var isMobile = this.isMobileLayout;return /*#__PURE__*/_react.default.createElement("div", { "data-tid": MenuDataTids.root, className: (0, _Emotion.cx)(getAlignRightClass(this.props), (_cx3 = {}, _cx3[_Menu2.styles.root(this.theme)] = true, _cx3[_Menu2.styles.hasMargin(this.theme)] = hasMargin, _cx3[_Menu2.styles.mobileRoot(this.theme)] = isMobile, _cx3[_Menu2.styles.shadow(this.theme)] = !isMobile, _cx3)), style: this.getStyle(this.props), id: this.props.id, onKeyDown: this.handleKeyDown,
|
|
460
|
+
*/;_proto.hasHighlightedItem = function hasHighlightedItem() {return !!this.menuNavigation.highlightedItem;};_proto.highlightItem = function highlightItem(index) {this.menuNavigation.highlightByIndex(index);};_proto.renderMain = function renderMain() {var _cx3, _cx4;if (this.isEmpty()) {return null;}var _this$getProps = this.getProps(),hasMargin = _this$getProps.hasMargin,maxHeight = _this$getProps.maxHeight,preventWindowScroll = _this$getProps.preventWindowScroll;var offsetY = { top: "" + this.theme.scrollContainerScrollBarOffsetY, right: 0, bottom: "" + this.theme.scrollContainerScrollBarOffsetY };var isMobile = this.isMobileLayout;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement("div", { "data-tid": MenuDataTids.root, className: (0, _Emotion.cx)(getAlignRightClass(this.props), (_cx3 = {}, _cx3[_Menu2.styles.root(this.theme)] = true, _cx3[_Menu2.styles.hasMargin(this.theme)] = hasMargin, _cx3[_Menu2.styles.mobileRoot(this.theme)] = isMobile, _cx3[_Menu2.styles.shadow(this.theme)] = !isMobile, _cx3)), style: this.getStyle(this.props), id: this.props.id, onKeyDown: this.handleKeyDown, tabIndex: 0 }, this.props.header && this.renderHeader(), /*#__PURE__*/_react.default.createElement(_ScrollContainer.ScrollContainer, { ref: this.refScrollContainer, maxHeight: maxHeight, preventWindowScroll: preventWindowScroll, onScrollStateChange: this.handleScrollStateChange, disabled: this.props.disableScrollContainer, offsetY: offsetY }, /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx4 = {}, _cx4[_Menu2.styles.scrollContainer(this.theme)] = true, _cx4[_Menu2.styles.scrollContainerMobile(this.theme)] = isMobile, _cx4)), ref: this.contentRef }, /*#__PURE__*/_react.default.createElement(_MenuContext.MenuContext.Provider, { value: { navigation: this.menuNavigation, onItemClick: this.props.onItemClick, enableIconPadding: this.state.enableIconPadding, setEnableIconPadding: this.setEnableIconPadding } }, this.props.children))), this.props.footer && this.renderFooter()));};_proto.move = function move(step) {if (this.unmounted) {// NOTE workaround, because `ComboBox` call `process.nextTick` in reducer
|
|
459
461
|
return;}var nextIndex = this.menuNavigation.move(step, this.getProps().cyclicSelection);this.scroll(nextIndex);};_proto.isEmpty = function isEmpty() {var children = this.props.children;return !children || !childrenToArray(children).filter(_utils.isNonNullable).length;};return Menu;}(_react.default.PureComponent), _Menu.__KONTUR_REACT_UI__ = 'Menu', _Menu.displayName = 'Menu', _Menu.defaultProps = { align: 'left', width: 'auto', maxHeight: 300, hasMargin: true, preventWindowScroll: true, cyclicSelection: true, initialSelectedItemIndex: -1 }, _Menu)) || _class) || _class;function childrenToArray(children) {var ret = []; // Use forEach instead of map to avoid cloning for key unifying.
|
|
460
462
|
_react.default.Children.forEach(children, function (child) {ret.push(child);});return ret;}var getAlignRightClass = function getAlignRightClass(props) {
|
|
461
463
|
if (props.align === 'right') {var _cx5;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_identifiers","_MenuSeparator","_ThemeFactory","_getDOMRect","_decorator","_utils","_ScrollContainer","_MenuItem","_ThemeContext","_Emotion","_rootNode2","_client","_createPropsGetter","_isInstanceOf","_Menu2","_MenuNavigation","_MenuContext","_class","_Menu","MenuDataTids","exports","root","Menu","responsiveLayout","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","highlightedIndex","maxHeight","scrollState","enableIconPadding","unmounted","contentRef","React","createRef","menuNavigation","MenuNavigation","MenuItemDataTids","content","focusOnRootElement","getRootNode","isInstanceOf","globalObject","HTMLElement","focus","renderHeader","_cx","default","createElement","className","cx","styles","wrapper","headerWrapper","ref","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","_cx2","footerWrapper","footer","ThemeContext","Provider","value","ThemeFactory","create","menuSeparatorMarginY","MenuSeparator","setInitialSelection","i","initialSelectedItemIndex","down","shouldRecalculateMaxHeight","prevProps","_this$props","children","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","Children","count","calculateMaxHeight","parsedMaxHeight","isBrowser","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","getDOMRect","height","setState","refScrollContainer","scrollContainer","scrollToSelected","highlightedItem","scrollTo","scrollToTop","scrollToBottom","scroll","nextIndex","items","handleKeyDown","event","onKeyDown","defaultPrevented","isKeyArrowUp","preventDefault","up","isKeyArrowDown","isKeyEnter","select","getStyle","align","maxWidth","width","minWidth","handleScrollStateChange","setEnableIconPadding","isIconPaddingEnabled","preventIconsOffset","_inheritsLoose2","_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","ScrollContainer","onScrollStateChange","disabled","disableScrollContainer","scrollContainerMobile","MenuContext","navigation","onItemClick","step","cyclicSelection","childrenToArray","filter","isNonNullable","PureComponent","__KONTUR_REACT_UI__","displayName","ret","forEach","child","push","_cx5","alignRight","isIE11","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","_interopRequireDefault","require","_globalObject","_identifiers","_MenuSeparator","_ThemeFactory","_getDOMRect","_decorator","_utils","_ScrollContainer","_MenuItem","_ThemeContext","_Emotion","_rootNode2","_client","_createPropsGetter","_isInstanceOf","_CommonWrapper","_Menu2","_MenuNavigation","_MenuContext","_class","_Menu","MenuDataTids","exports","root","Menu","responsiveLayout","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","highlightedIndex","maxHeight","scrollState","enableIconPadding","unmounted","contentRef","React","createRef","menuNavigation","MenuNavigation","MenuItemDataTids","content","focusOnRootElement","getRootNode","isInstanceOf","globalObject","HTMLElement","focus","renderHeader","_cx","default","createElement","className","cx","styles","wrapper","headerWrapper","ref","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","_cx2","footerWrapper","footer","ThemeContext","Provider","value","ThemeFactory","create","menuSeparatorMarginY","MenuSeparator","setInitialSelection","i","initialSelectedItemIndex","down","shouldRecalculateMaxHeight","prevProps","_this$props","children","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","Children","count","calculateMaxHeight","parsedMaxHeight","isBrowser","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","getDOMRect","height","setState","refScrollContainer","scrollContainer","scrollToSelected","highlightedItem","scrollTo","scrollToTop","scrollToBottom","scroll","nextIndex","items","handleKeyDown","event","onKeyDown","defaultPrevented","isKeyArrowUp","preventDefault","up","isKeyArrowDown","isKeyEnter","select","getStyle","align","maxWidth","width","minWidth","handleScrollStateChange","setEnableIconPadding","isIconPaddingEnabled","preventIconsOffset","_inheritsLoose2","_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","CommonWrapper","_extends2","rootNodeRef","setRootNode","getAlignRightClass","mobileRoot","shadow","style","id","tabIndex","ScrollContainer","onScrollStateChange","disabled","disableScrollContainer","scrollContainerMobile","MenuContext","navigation","onItemClick","step","cyclicSelection","childrenToArray","filter","isNonNullable","PureComponent","__KONTUR_REACT_UI__","displayName","ret","forEach","child","push","_cx5","alignRight","isIE11","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":[]}
|
|
@@ -23,7 +23,7 @@ export interface ZIndexProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
23
23
|
type DefaultProps = Required<Pick<ZIndexProps, 'delta' | 'priority' | 'style' | 'applyZIndex' | 'coverChildren' | 'createStackingContext' | 'useWrapper'>>;
|
|
24
24
|
interface ZIndexState {
|
|
25
25
|
zIndex: number;
|
|
26
|
-
|
|
26
|
+
DOMZIndexContext: {
|
|
27
27
|
parentLayerZIndex: number;
|
|
28
28
|
maxZIndex: number;
|
|
29
29
|
} | null;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.ZIndex = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
2
2
|
var _globalObject = require("@skbkontur/global-object");
|
|
3
|
+
var _lodash = _interopRequireDefault(require("lodash.isequal"));
|
|
3
4
|
|
|
4
5
|
var _callChildRef = require("../../lib/callChildRef/callChildRef");
|
|
5
6
|
var _rootNode = require("../../lib/rootNode");
|
|
@@ -88,7 +89,14 @@ ZIndex = exports.ZIndex = (0, _rootNode.rootNode)(_class = (_ZIndex = /*#__PURE_
|
|
|
88
89
|
|
|
89
90
|
|
|
90
91
|
function ZIndex(props) {var _this;
|
|
91
|
-
_this = _React$Component.call(this, props) || this;_this.state = { zIndex: 0,
|
|
92
|
+
_this = _React$Component.call(this, props) || this;_this.state = { zIndex: 0, DOMZIndexContext: null };_this.getProps = (0, _createPropsGetter.createPropsGetter)(ZIndex.defaultProps);_this.zIndexContext = null;_this.
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
92
100
|
|
|
93
101
|
|
|
94
102
|
|
|
@@ -183,8 +191,12 @@ ZIndex = exports.ZIndex = (0, _rootNode.rootNode)(_class = (_ZIndex = /*#__PURE_
|
|
|
183
191
|
};_this.
|
|
184
192
|
|
|
185
193
|
tryGetContextByDOM = function (element) {
|
|
186
|
-
if (
|
|
187
|
-
|
|
194
|
+
if (
|
|
195
|
+
_this.props.applyZIndex &&
|
|
196
|
+
(0, _lodash.default)(DEFAULT_ZINDEX_CONTEXT, _this.zIndexContext) &&
|
|
197
|
+
_this.state.DOMZIndexContext === null)
|
|
198
|
+
{var _element$parentElemen;
|
|
199
|
+
var DOMZIndexContext = DEFAULT_ZINDEX_CONTEXT;
|
|
188
200
|
var portal = (_element$parentElemen = element.parentElement) == null ? void 0 : _element$parentElemen.closest("[" + _RenderContainer.PORTAL_OUTLET_ATTR + "]");
|
|
189
201
|
|
|
190
202
|
if ((0, _isInstanceOf.isInstanceOf)(portal, _globalObject.globalObject.HTMLElement)) {var _globalObject$documen, _noscript$parentEleme;
|
|
@@ -201,10 +213,10 @@ ZIndex = exports.ZIndex = (0, _rootNode.rootNode)(_class = (_ZIndex = /*#__PURE_
|
|
|
201
213
|
maxZIndex = _this.calcZIndex(newZIndex, maxZIndex);
|
|
202
214
|
}
|
|
203
215
|
|
|
204
|
-
|
|
216
|
+
DOMZIndexContext = { maxZIndex: maxZIndex, parentLayerZIndex: newZIndex };
|
|
205
217
|
}
|
|
206
218
|
}
|
|
207
219
|
|
|
208
|
-
_this.setState({
|
|
220
|
+
_this.setState({ DOMZIndexContext: DOMZIndexContext });
|
|
209
221
|
}
|
|
210
|
-
};_this.state.zIndex = _this.increment();return _this;}(0, _inheritsLoose2.default)(ZIndex, _React$Component);var _proto = ZIndex.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (prevProps.priority !== this.props.priority || prevProps.delta !== this.props.delta) {(0, _ZIndexStorage.removeZIndex)(this.state.zIndex);this.setState({ zIndex: this.increment() });}};_proto.componentWillUnmount = function componentWillUnmount() {(0, _ZIndexStorage.removeZIndex)(this.state.zIndex);};_proto.render = function render() {var _this2 = this;var _this$getProps2 = this.getProps(),style = _this$getProps2.style,children = _this$getProps2.children,delta = _this$getProps2.delta,priority = _this$getProps2.priority,applyZIndex = _this$getProps2.applyZIndex,coverChildren = _this$getProps2.coverChildren,createStackingContext = _this$getProps2.createStackingContext,wrapperRef = _this$getProps2.wrapperRef,useWrapper = _this$getProps2.useWrapper,rest = (0, _objectWithoutPropertiesLoose2.default)(_this$getProps2, _excluded);var wrapperStyle = {};return /*#__PURE__*/_react.default.createElement(ZIndexContext.Consumer, null, function (context) {_this2.zIndexContext = context;var
|
|
222
|
+
};_this.state.zIndex = _this.increment();return _this;}(0, _inheritsLoose2.default)(ZIndex, _React$Component);var _proto = ZIndex.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (prevProps.priority !== this.props.priority || prevProps.delta !== this.props.delta) {(0, _ZIndexStorage.removeZIndex)(this.state.zIndex);this.setState({ zIndex: this.increment() });}};_proto.componentWillUnmount = function componentWillUnmount() {(0, _ZIndexStorage.removeZIndex)(this.state.zIndex);};_proto.render = function render() {var _this2 = this;var _this$getProps2 = this.getProps(),style = _this$getProps2.style,children = _this$getProps2.children,delta = _this$getProps2.delta,priority = _this$getProps2.priority,applyZIndex = _this$getProps2.applyZIndex,coverChildren = _this$getProps2.coverChildren,createStackingContext = _this$getProps2.createStackingContext,wrapperRef = _this$getProps2.wrapperRef,useWrapper = _this$getProps2.useWrapper,rest = (0, _objectWithoutPropertiesLoose2.default)(_this$getProps2, _excluded);var wrapperStyle = {};return /*#__PURE__*/_react.default.createElement(ZIndexContext.Consumer, null, function (context) {_this2.zIndexContext = context;var currentZIndexContext = _this2.state.DOMZIndexContext && (0, _lodash.default)(context, DEFAULT_ZINDEX_CONTEXT) ? _this2.state.DOMZIndexContext : context;var parentLayerZIndex = currentZIndexContext.parentLayerZIndex,maxZIndex = currentZIndexContext.maxZIndex;var newZIndexContext = currentZIndexContext;var newZIndex = 0;if (applyZIndex) {newZIndex = _this2.calcZIndex(parentLayerZIndex, maxZIndex);wrapperStyle.zIndex = newZIndex;newZIndexContext = coverChildren ? { parentLayerZIndex: parentLayerZIndex, maxZIndex: newZIndex } : { parentLayerZIndex: newZIndex, maxZIndex: Number.isFinite(maxZIndex) ? newZIndex : Infinity };if (createStackingContext) {(0, _globalObject.isBrowser)(_globalObject.globalObject) && 'isolation' in _globalObject.globalObject.document.body.style ? wrapperStyle.isolation = 'isolate' : wrapperStyle.transform = 'rotate(0)';}}var child = !useWrapper ? children : /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({ style: (0, _extends2.default)({}, style, wrapperStyle), ref: _this2.wrapperRef }, rest), children);return /*#__PURE__*/_react.default.createElement(ZIndexContext.Provider, { value: newZIndexContext }, child);});};_proto.calcZIndex = function calcZIndex(parentLayerZIndex, maxZIndex) {var newZIndex = this.state.zIndex;if (Number.isFinite(maxZIndex)) {var allowedValuesIntervalLength = maxZIndex - parentLayerZIndex;var scale = _ZIndexStorage.upperBorder / allowedValuesIntervalLength;newZIndex = Math.ceil(newZIndex / scale);}newZIndex += parentLayerZIndex;return newZIndex;};return ZIndex;}(_react.default.Component), _ZIndex.priorities = _ZIndexStorage.componentPriorities, _ZIndex.__KONTUR_REACT_UI__ = 'ZIndex', _ZIndex.displayName = 'ZIndex', _ZIndex.defaultProps = { delta: 10, priority: 0, style: {}, applyZIndex: true, coverChildren: false, createStackingContext: false, useWrapper: true }, _ZIndex.propTypes = { delta: function delta(props) {if ((props.delta || _ZIndex.defaultProps.delta) <= 0) {return new Error("[ZIndex]: Prop 'delta' must be greater than 0, received " + props.delta);}if (Math.trunc(props.delta || _ZIndex.defaultProps.delta) !== props.delta) {return new Error("[ZIndex]: Prop 'delta' must be integer, received " + props.delta);}} }, _ZIndex)) || _class;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_callChildRef","_rootNode","_createPropsGetter","_isInstanceOf","_Loader","_RenderContainer","_ZIndexStorage","_excluded","_class","_ZIndex","DEFAULT_ZINDEX_CONTEXT","parentLayerZIndex","maxZIndex","Infinity","ZIndexContext","React","createContext","displayName","ZIndex","exports","rootNode","_React$Component","props","_this","call","state","zIndex","savedZIndexContext","getProps","createPropsGetter","defaultProps","zIndexContext","wrapperRef","element","setRootNode","callChildRef","tryGetContextByDOM","increment","_this$getProps","priority","delta","incrementZIndex","_element$parentElemen","portal","parentElement","closest","PORTAL_OUTLET_ATTR","isInstanceOf","globalObject","HTMLElement","_globalObject$documen","_noscript$parentEleme","portalID","getAttribute","noscript","document","querySelector","PORTAL_INLET_ATTR","parent","_parent$parentElement","newZIndex","Number","style","dataset","tid","LoaderDataTids","veil","calcZIndex","setState","_inheritsLoose2","default","_proto","prototype","componentDidUpdate","prevProps","removeZIndex","componentWillUnmount","render","_this2","_this$getProps2","children","applyZIndex","coverChildren","createStackingContext","useWrapper","rest","_objectWithoutPropertiesLoose2","wrapperStyle","createElement","Consumer","context","_ref","zIndexContextValue","isFinite","isBrowser","body","isolation","transform","child","_extends2","ref","Provider","value","allowedValuesIntervalLength","scale","upperBorder","Math","ceil","Component","priorities","componentPriorities","__KONTUR_REACT_UI__","propTypes","Error","trunc"],"sources":["ZIndex.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { LoaderDataTids } from '../../components/Loader';\nimport { PORTAL_INLET_ATTR, PORTAL_OUTLET_ATTR } from '../RenderContainer';\n\nimport { incrementZIndex, removeZIndex, upperBorder, LayerComponentName, componentPriorities } from './ZIndexStorage';\n\nconst DEFAULT_ZINDEX_CONTEXT = { parentLayerZIndex: 0, maxZIndex: Infinity };\n\nconst ZIndexContext = React.createContext(DEFAULT_ZINDEX_CONTEXT);\n\nZIndexContext.displayName = 'ZIndexContext';\n\nexport interface ZIndexProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Приращение к z-index\n */\n delta?: number;\n priority?: number | LayerComponentName;\n style?: React.CSSProperties;\n createStackingContext?: boolean;\n coverChildren?: boolean;\n applyZIndex?: boolean;\n className?: string;\n wrapperRef?: React.Ref<HTMLDivElement> | undefined | null;\n\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<div/>`.\n * Для случаев, когда необходимо задать **только** контекст для области.\n *\n * @default true\n */\n useWrapper?: boolean;\n}\n\ntype DefaultProps = Required<\n Pick<\n ZIndexProps,\n 'delta' | 'priority' | 'style' | 'applyZIndex' | 'coverChildren' | 'createStackingContext' | 'useWrapper'\n >\n>;\n\ninterface ZIndexState {\n zIndex: number;\n savedZIndexContext: { parentLayerZIndex: number; maxZIndex: number } | null;\n}\n\n@rootNode\nexport class ZIndex extends React.Component<ZIndexProps, ZIndexState> {\n public static priorities = componentPriorities;\n public static __KONTUR_REACT_UI__ = 'ZIndex';\n public static displayName = 'ZIndex';\n\n public static defaultProps: DefaultProps = {\n delta: 10,\n priority: 0,\n style: {},\n applyZIndex: true,\n coverChildren: false,\n createStackingContext: false,\n useWrapper: true,\n };\n\n public state: ZIndexState = {\n zIndex: 0,\n savedZIndexContext: null,\n };\n\n private getProps = createPropsGetter(ZIndex.defaultProps);\n\n public static propTypes = {\n delta(props: ZIndexProps) {\n if ((props.delta || ZIndex.defaultProps.delta) <= 0) {\n return new Error(`[ZIndex]: Prop 'delta' must be greater than 0, received ${props.delta}`);\n }\n if (Math.trunc(props.delta || ZIndex.defaultProps.delta) !== props.delta) {\n return new Error(`[ZIndex]: Prop 'delta' must be integer, received ${props.delta}`);\n }\n },\n };\n\n private setRootNode!: TSetRootNode;\n private zIndexContext: { parentLayerZIndex: number; maxZIndex: number } | null = null;\n\n constructor(props: ZIndexProps) {\n super(props);\n this.state.zIndex = this.increment();\n }\n\n public componentDidUpdate(prevProps: Readonly<ZIndexProps>) {\n if (prevProps.priority !== this.props.priority || prevProps.delta !== this.props.delta) {\n removeZIndex(this.state.zIndex);\n this.setState({ zIndex: this.increment() });\n }\n }\n\n public componentWillUnmount() {\n removeZIndex(this.state.zIndex);\n }\n\n public render() {\n const {\n style,\n children,\n delta,\n priority,\n applyZIndex,\n coverChildren,\n createStackingContext,\n wrapperRef,\n useWrapper,\n ...rest\n } = this.getProps();\n\n const wrapperStyle: React.CSSProperties = {};\n\n return (\n <ZIndexContext.Consumer>\n {(context) => {\n this.zIndexContext = context;\n const { parentLayerZIndex, maxZIndex } = this.state.savedZIndexContext || context;\n let zIndexContextValue = { parentLayerZIndex, maxZIndex };\n let newZIndex = 0;\n if (applyZIndex) {\n newZIndex = this.calcZIndex(parentLayerZIndex, maxZIndex);\n wrapperStyle.zIndex = newZIndex;\n\n zIndexContextValue = coverChildren\n ? { parentLayerZIndex, maxZIndex: newZIndex }\n : { parentLayerZIndex: newZIndex, maxZIndex: Number.isFinite(maxZIndex) ? newZIndex : Infinity };\n\n if (createStackingContext) {\n isBrowser(globalObject) && 'isolation' in globalObject.document.body.style\n ? (wrapperStyle.isolation = 'isolate')\n : (wrapperStyle.transform = 'rotate(0)');\n }\n }\n\n const child = !useWrapper ? (\n children\n ) : (\n <div style={{ ...style, ...wrapperStyle }} ref={this.wrapperRef} {...rest}>\n {children}\n </div>\n );\n\n return <ZIndexContext.Provider value={zIndexContextValue}>{child}</ZIndexContext.Provider>;\n }}\n </ZIndexContext.Consumer>\n );\n }\n\n private wrapperRef = (element: HTMLDivElement | null) => {\n const { wrapperRef } = this.props;\n this.setRootNode(element);\n wrapperRef && callChildRef(wrapperRef, element);\n element && this.tryGetContextByDOM(element);\n };\n\n private calcZIndex(parentLayerZIndex: number, maxZIndex: number) {\n let newZIndex = this.state.zIndex;\n\n if (Number.isFinite(maxZIndex)) {\n const allowedValuesIntervalLength = maxZIndex - parentLayerZIndex;\n const scale = upperBorder / allowedValuesIntervalLength;\n newZIndex = Math.ceil(newZIndex / scale);\n }\n\n newZIndex += parentLayerZIndex;\n\n return newZIndex;\n }\n\n private increment = () => {\n const { priority, delta } = this.getProps();\n\n return incrementZIndex(priority, delta);\n };\n\n private tryGetContextByDOM = (element: HTMLDivElement) => {\n if (DEFAULT_ZINDEX_CONTEXT === this.zIndexContext && this.state.savedZIndexContext === null) {\n let savedZIndexContext = DEFAULT_ZINDEX_CONTEXT;\n const portal = element.parentElement?.closest(`[${PORTAL_OUTLET_ATTR}]`);\n\n if (isInstanceOf(portal, globalObject.HTMLElement)) {\n const portalID = portal.getAttribute(PORTAL_OUTLET_ATTR);\n const noscript = globalObject.document?.querySelector(`noscript[${PORTAL_INLET_ATTR}=\"${portalID}\"]`);\n const parent = noscript?.parentElement?.closest('[style*=z-index]');\n\n if (isInstanceOf(parent, globalObject.HTMLElement)) {\n const newZIndex = Number(parent.style.zIndex || 0);\n\n let maxZIndex = Infinity;\n\n if (parent.parentElement?.dataset.tid === LoaderDataTids.veil) {\n maxZIndex = this.calcZIndex(newZIndex, maxZIndex);\n }\n\n savedZIndexContext = { maxZIndex, parentLayerZIndex: newZIndex };\n }\n }\n\n this.setState({ savedZIndexContext });\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_lodash","_callChildRef","_rootNode","_createPropsGetter","_isInstanceOf","_Loader","_RenderContainer","_ZIndexStorage","_excluded","_class","_ZIndex","DEFAULT_ZINDEX_CONTEXT","parentLayerZIndex","maxZIndex","Infinity","ZIndexContext","React","createContext","displayName","ZIndex","exports","rootNode","_React$Component","props","_this","call","state","zIndex","DOMZIndexContext","getProps","createPropsGetter","defaultProps","zIndexContext","wrapperRef","element","setRootNode","callChildRef","tryGetContextByDOM","increment","_this$getProps","priority","delta","incrementZIndex","applyZIndex","isEqual","_element$parentElemen","portal","parentElement","closest","PORTAL_OUTLET_ATTR","isInstanceOf","globalObject","HTMLElement","_globalObject$documen","_noscript$parentEleme","portalID","getAttribute","noscript","document","querySelector","PORTAL_INLET_ATTR","parent","_parent$parentElement","newZIndex","Number","style","dataset","tid","LoaderDataTids","veil","calcZIndex","setState","_inheritsLoose2","default","_proto","prototype","componentDidUpdate","prevProps","removeZIndex","componentWillUnmount","render","_this2","_this$getProps2","children","coverChildren","createStackingContext","useWrapper","rest","_objectWithoutPropertiesLoose2","wrapperStyle","createElement","Consumer","context","currentZIndexContext","newZIndexContext","isFinite","isBrowser","body","isolation","transform","child","_extends2","ref","Provider","value","allowedValuesIntervalLength","scale","upperBorder","Math","ceil","Component","priorities","componentPriorities","__KONTUR_REACT_UI__","propTypes","Error","trunc"],"sources":["ZIndex.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\nimport isEqual from 'lodash.isequal';\n\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { LoaderDataTids } from '../../components/Loader';\nimport { PORTAL_INLET_ATTR, PORTAL_OUTLET_ATTR } from '../RenderContainer';\n\nimport { incrementZIndex, removeZIndex, upperBorder, LayerComponentName, componentPriorities } from './ZIndexStorage';\n\nconst DEFAULT_ZINDEX_CONTEXT = { parentLayerZIndex: 0, maxZIndex: Infinity };\n\nconst ZIndexContext = React.createContext(DEFAULT_ZINDEX_CONTEXT);\n\nZIndexContext.displayName = 'ZIndexContext';\n\nexport interface ZIndexProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Приращение к z-index\n */\n delta?: number;\n priority?: number | LayerComponentName;\n style?: React.CSSProperties;\n createStackingContext?: boolean;\n coverChildren?: boolean;\n applyZIndex?: boolean;\n className?: string;\n wrapperRef?: React.Ref<HTMLDivElement> | undefined | null;\n\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<div/>`.\n * Для случаев, когда необходимо задать **только** контекст для области.\n *\n * @default true\n */\n useWrapper?: boolean;\n}\n\ntype DefaultProps = Required<\n Pick<\n ZIndexProps,\n 'delta' | 'priority' | 'style' | 'applyZIndex' | 'coverChildren' | 'createStackingContext' | 'useWrapper'\n >\n>;\n\ninterface ZIndexState {\n zIndex: number;\n DOMZIndexContext: { parentLayerZIndex: number; maxZIndex: number } | null;\n}\n\n@rootNode\nexport class ZIndex extends React.Component<ZIndexProps, ZIndexState> {\n public static priorities = componentPriorities;\n public static __KONTUR_REACT_UI__ = 'ZIndex';\n public static displayName = 'ZIndex';\n\n public static defaultProps: DefaultProps = {\n delta: 10,\n priority: 0,\n style: {},\n applyZIndex: true,\n coverChildren: false,\n createStackingContext: false,\n useWrapper: true,\n };\n\n public state: ZIndexState = {\n zIndex: 0,\n DOMZIndexContext: null,\n };\n\n private getProps = createPropsGetter(ZIndex.defaultProps);\n\n public static propTypes = {\n delta(props: ZIndexProps) {\n if ((props.delta || ZIndex.defaultProps.delta) <= 0) {\n return new Error(`[ZIndex]: Prop 'delta' must be greater than 0, received ${props.delta}`);\n }\n if (Math.trunc(props.delta || ZIndex.defaultProps.delta) !== props.delta) {\n return new Error(`[ZIndex]: Prop 'delta' must be integer, received ${props.delta}`);\n }\n },\n };\n\n private setRootNode!: TSetRootNode;\n private zIndexContext: { parentLayerZIndex: number; maxZIndex: number } | null = null;\n\n constructor(props: ZIndexProps) {\n super(props);\n this.state.zIndex = this.increment();\n }\n\n public componentDidUpdate(prevProps: Readonly<ZIndexProps>) {\n if (prevProps.priority !== this.props.priority || prevProps.delta !== this.props.delta) {\n removeZIndex(this.state.zIndex);\n this.setState({ zIndex: this.increment() });\n }\n }\n\n public componentWillUnmount() {\n removeZIndex(this.state.zIndex);\n }\n\n public render() {\n const {\n style,\n children,\n delta,\n priority,\n applyZIndex,\n coverChildren,\n createStackingContext,\n wrapperRef,\n useWrapper,\n ...rest\n } = this.getProps();\n\n const wrapperStyle: React.CSSProperties = {};\n\n return (\n <ZIndexContext.Consumer>\n {(context) => {\n this.zIndexContext = context;\n\n const currentZIndexContext =\n this.state.DOMZIndexContext && isEqual(context, DEFAULT_ZINDEX_CONTEXT)\n ? this.state.DOMZIndexContext\n : context;\n const { parentLayerZIndex, maxZIndex } = currentZIndexContext;\n\n let newZIndexContext = currentZIndexContext;\n let newZIndex = 0;\n\n if (applyZIndex) {\n newZIndex = this.calcZIndex(parentLayerZIndex, maxZIndex);\n wrapperStyle.zIndex = newZIndex;\n\n newZIndexContext = coverChildren\n ? { parentLayerZIndex, maxZIndex: newZIndex }\n : { parentLayerZIndex: newZIndex, maxZIndex: Number.isFinite(maxZIndex) ? newZIndex : Infinity };\n\n if (createStackingContext) {\n isBrowser(globalObject) && 'isolation' in globalObject.document.body.style\n ? (wrapperStyle.isolation = 'isolate')\n : (wrapperStyle.transform = 'rotate(0)');\n }\n }\n\n const child = !useWrapper ? (\n children\n ) : (\n <div style={{ ...style, ...wrapperStyle }} ref={this.wrapperRef} {...rest}>\n {children}\n </div>\n );\n\n return <ZIndexContext.Provider value={newZIndexContext}>{child}</ZIndexContext.Provider>;\n }}\n </ZIndexContext.Consumer>\n );\n }\n\n private wrapperRef = (element: HTMLDivElement | null) => {\n const { wrapperRef } = this.props;\n this.setRootNode(element);\n wrapperRef && callChildRef(wrapperRef, element);\n element && this.tryGetContextByDOM(element);\n };\n\n private calcZIndex(parentLayerZIndex: number, maxZIndex: number) {\n let newZIndex = this.state.zIndex;\n\n if (Number.isFinite(maxZIndex)) {\n const allowedValuesIntervalLength = maxZIndex - parentLayerZIndex;\n const scale = upperBorder / allowedValuesIntervalLength;\n newZIndex = Math.ceil(newZIndex / scale);\n }\n\n newZIndex += parentLayerZIndex;\n\n return newZIndex;\n }\n\n private increment = () => {\n const { priority, delta } = this.getProps();\n\n return incrementZIndex(priority, delta);\n };\n\n private tryGetContextByDOM = (element: HTMLDivElement) => {\n if (\n this.props.applyZIndex &&\n isEqual(DEFAULT_ZINDEX_CONTEXT, this.zIndexContext) &&\n this.state.DOMZIndexContext === null\n ) {\n let DOMZIndexContext = DEFAULT_ZINDEX_CONTEXT;\n const portal = element.parentElement?.closest(`[${PORTAL_OUTLET_ATTR}]`);\n\n if (isInstanceOf(portal, globalObject.HTMLElement)) {\n const portalID = portal.getAttribute(PORTAL_OUTLET_ATTR);\n const noscript = globalObject.document?.querySelector(`noscript[${PORTAL_INLET_ATTR}=\"${portalID}\"]`);\n const parent = noscript?.parentElement?.closest('[style*=z-index]');\n\n if (isInstanceOf(parent, globalObject.HTMLElement)) {\n const newZIndex = Number(parent.style.zIndex || 0);\n\n let maxZIndex = Infinity;\n\n if (parent.parentElement?.dataset.tid === LoaderDataTids.veil) {\n maxZIndex = this.calcZIndex(newZIndex, maxZIndex);\n }\n\n DOMZIndexContext = { maxZIndex, parentLayerZIndex: newZIndex };\n }\n }\n\n this.setState({ DOMZIndexContext });\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -33,7 +33,8 @@ var PASS_PROPS = {
|
|
|
33
33
|
onMouseOver: true,
|
|
34
34
|
menuPos: true,
|
|
35
35
|
id: true,
|
|
36
|
-
'aria-describedby': true
|
|
36
|
+
'aria-describedby': true,
|
|
37
|
+
'aria-label': true
|
|
37
38
|
};
|
|
38
39
|
export var DropdownDataTids = {
|
|
39
40
|
root: 'Dropdown__root'
|
|
@@ -50,27 +51,26 @@ export var Dropdown = rootNode(_class = (_Dropdown = /*#__PURE__*/function (_Rea
|
|
|
50
51
|
args[_key] = arguments[_key];
|
|
51
52
|
}
|
|
52
53
|
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
|
|
53
|
-
_this.renderMain = function (
|
|
54
|
-
var
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
_this.renderMain = function () {
|
|
55
|
+
var _this$props = _this.props,
|
|
56
|
+
caption = _this$props.caption,
|
|
57
|
+
icon = _this$props.icon,
|
|
58
|
+
rest = _objectWithoutPropertiesLoose(_this$props, _excluded);
|
|
57
59
|
var items = React.Children.map(_this.props.children, function (item) {
|
|
58
60
|
return item;
|
|
59
61
|
}) || [];
|
|
60
62
|
return /*#__PURE__*/(
|
|
61
63
|
React.createElement(CommonWrapper, _extends({
|
|
62
64
|
rootNodeRef: _this.setRootNode
|
|
63
|
-
},
|
|
65
|
+
}, rest), /*#__PURE__*/
|
|
64
66
|
React.createElement(Select, _extends({
|
|
65
67
|
"data-tid": DropdownDataTids.root,
|
|
66
68
|
ref: _this._refSelect
|
|
67
|
-
}, filterProps(
|
|
69
|
+
}, filterProps(rest, PASS_PROPS), {
|
|
68
70
|
value: caption,
|
|
69
71
|
items: items,
|
|
70
72
|
_icon: icon,
|
|
71
|
-
renderValue: renderValue
|
|
72
|
-
size: _this.props.size,
|
|
73
|
-
"aria-label": _this.props['aria-label']
|
|
73
|
+
renderValue: renderValue
|
|
74
74
|
})))
|
|
75
75
|
);
|
|
76
76
|
};
|
|
@@ -87,7 +87,7 @@ export var Dropdown = rootNode(_class = (_Dropdown = /*#__PURE__*/function (_Rea
|
|
|
87
87
|
_this2.theme = getDropdownTheme(theme);
|
|
88
88
|
return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
|
|
89
89
|
value: _this2.theme
|
|
90
|
-
}, _this2.renderMain(
|
|
90
|
+
}, _this2.renderMain());
|
|
91
91
|
});
|
|
92
92
|
}; /**
|
|
93
93
|
* @public
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","PropTypes","filterProps","MenuHeader","MenuItem","MenuSeparator","Select","CommonWrapper","rootNode","ThemeContext","getDropdownTheme","PASS_PROPS","_renderButton","error","disabled","disablePortal","menuAlign","menuWidth","maxMenuHeight","use","size","warning","width","onOpen","onClose","onMouseEnter","onMouseLeave","onMouseOver","menuPos","id","DropdownDataTids","root","Dropdown","_class","_Dropdown","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","renderMain","_ref","caption","icon","props","_objectWithoutPropertiesLoose","_excluded","items","Children","map","children","item","createElement","_extends","rootNodeRef","setRootNode","ref","_refSelect","value","_icon","renderValue","element","_select","_inheritsLoose","_proto","prototype","render","_this2","Consumer","theme","Provider","open","close","Component","__KONTUR_REACT_UI__","displayName","Header","Separator","propTypes","node","isRequired","bool","number","oneOf","oneOfType","string","any","func"],"sources":["Dropdown.tsx"],"sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { filterProps } from '../../lib/filterProps';\nimport { MenuHeader } from '../MenuHeader';\nimport { MenuItem } from '../MenuItem';\nimport { MenuSeparator } from '../MenuSeparator';\nimport { Select } from '../Select';\nimport { Nullable } from '../../typings/utility-types';\nimport { ButtonUse } from '../Button';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { getDropdownTheme } from './getDropdownTheme';\n\nconst PASS_PROPS = {\n _renderButton: true,\n error: true,\n disabled: true,\n disablePortal: true,\n menuAlign: true,\n menuWidth: true,\n maxMenuHeight: true,\n use: true,\n size: true,\n warning: true,\n width: true,\n onOpen: true,\n onClose: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n menuPos: true,\n id: true,\n 'aria-describedby': true,\n};\n\nexport interface DropdownProps\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n /**\n * Подпись на кнопке.\n */\n caption: React.ReactNode;\n /**\n * Иконка слева от текста кнопки\n */\n icon?: React.ReactElement<any>;\n width?: React.CSSProperties['width'];\n\n /** @ignore */\n _renderButton?: (params: any) => JSX.Element;\n\n /**\n * Отключает использование портала\n */\n disablePortal?: boolean;\n\n /**\n * Визуально отключает Dropdown\n */\n disabled?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n maxMenuHeight?: number;\n /**\n * Позволяет вручную задать текущую позицию выпадающего окна\n */\n menuPos?: 'top' | 'bottom';\n menuAlign?: 'left' | 'right';\n menuWidth?: number | string;\n size?: SizeProp;\n\n /**\n * Смотри Button.\n */\n use?: ButtonUse;\n\n /**\n * Вызывается при закрытии меню.\n */\n onClose?: () => void;\n /**\n * Вызывается при открытии меню.\n */\n onOpen?: () => void;\n onMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseOver?: (event: React.MouseEvent<HTMLElement>) => void;\n}\n\ntype DropdownSelectType = Select<React.ReactNode, React.ReactNode>;\n\nexport const DropdownDataTids = {\n root: 'Dropdown__root',\n} as const;\n\n/**\n * Выпадающее меню.\n *\n */\n@rootNode\nexport class Dropdown extends React.Component<DropdownProps> {\n public static __KONTUR_REACT_UI__ = 'Dropdown';\n public static displayName = 'Dropdown';\n\n public static Header = MenuHeader;\n public static MenuItem = MenuItem;\n public static Separator = MenuSeparator;\n\n public static propTypes = {\n /**\n * Подпись на кнопке.\n */\n caption: PropTypes.node.isRequired,\n\n /**\n * Отключает использование портала\n */\n disablePortal: PropTypes.bool,\n\n /**\n * Визуально отключает Dropdown\n */\n disabled: PropTypes.bool,\n\n /**\n * Визуально показать наличие ошибки.\n */\n error: PropTypes.bool,\n\n /**\n * Иконка слева от текста кнопки\n */\n icon: PropTypes.node,\n\n maxMenuHeight: PropTypes.number,\n\n menuAlign: PropTypes.oneOf(['left', 'right']),\n\n menuWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n\n /**\n * Смотри Button.\n */\n use: PropTypes.any,\n\n /**\n * Визуально показать наличие предупреждения.\n */\n warning: PropTypes.bool,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Вызывается при закрытии меню.\n */\n onClose: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n\n /**\n * Вызывается при открытии меню.\n */\n onOpen: PropTypes.func,\n };\n\n private _select: Nullable<DropdownSelectType>;\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getDropdownTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain(this.props)}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = ({ caption, icon, ...props }: CommonWrapperRestProps<DropdownProps>) => {\n const items = React.Children.map(this.props.children, (item) => item) || [];\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Select<React.ReactNode, React.ReactNode>\n data-tid={DropdownDataTids.root}\n ref={this._refSelect}\n {...filterProps(props, PASS_PROPS)}\n value={caption}\n items={items}\n _icon={icon}\n renderValue={renderValue}\n size={this.props.size}\n aria-label={this.props['aria-label']}\n />\n </CommonWrapper>\n );\n };\n\n /**\n * @public\n */\n public open() {\n if (this._select) {\n this._select.open();\n }\n }\n\n /**\n * @public\n */\n public close() {\n if (this._select) {\n this._select.close();\n }\n }\n\n private _refSelect = (element: DropdownSelectType): void => {\n this._select = element;\n };\n}\n\nfunction renderValue(value: any) {\n return value;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","PropTypes","filterProps","MenuHeader","MenuItem","MenuSeparator","Select","CommonWrapper","rootNode","ThemeContext","getDropdownTheme","PASS_PROPS","_renderButton","error","disabled","disablePortal","menuAlign","menuWidth","maxMenuHeight","use","size","warning","width","onOpen","onClose","onMouseEnter","onMouseLeave","onMouseOver","menuPos","id","DropdownDataTids","root","Dropdown","_class","_Dropdown","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","renderMain","_this$props","props","caption","icon","rest","_objectWithoutPropertiesLoose","_excluded","items","Children","map","children","item","createElement","_extends","rootNodeRef","setRootNode","ref","_refSelect","value","_icon","renderValue","element","_select","_inheritsLoose","_proto","prototype","render","_this2","Consumer","theme","Provider","open","close","Component","__KONTUR_REACT_UI__","displayName","Header","Separator","propTypes","node","isRequired","bool","number","oneOf","oneOfType","string","any","func"],"sources":["Dropdown.tsx"],"sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { filterProps } from '../../lib/filterProps';\nimport { MenuHeader } from '../MenuHeader';\nimport { MenuItem } from '../MenuItem';\nimport { MenuSeparator } from '../MenuSeparator';\nimport { Select } from '../Select';\nimport { Nullable } from '../../typings/utility-types';\nimport { ButtonUse } from '../Button';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { getDropdownTheme } from './getDropdownTheme';\n\nconst PASS_PROPS = {\n _renderButton: true,\n error: true,\n disabled: true,\n disablePortal: true,\n menuAlign: true,\n menuWidth: true,\n maxMenuHeight: true,\n use: true,\n size: true,\n warning: true,\n width: true,\n onOpen: true,\n onClose: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n menuPos: true,\n id: true,\n 'aria-describedby': true,\n 'aria-label': true,\n};\n\nexport interface DropdownProps\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n /**\n * Подпись на кнопке.\n */\n caption: React.ReactNode;\n /**\n * Иконка слева от текста кнопки\n */\n icon?: React.ReactElement<any>;\n width?: React.CSSProperties['width'];\n\n /** @ignore */\n _renderButton?: (params: any) => JSX.Element;\n\n /**\n * Отключает использование портала\n */\n disablePortal?: boolean;\n\n /**\n * Визуально отключает Dropdown\n */\n disabled?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n maxMenuHeight?: number;\n /**\n * Позволяет вручную задать текущую позицию выпадающего окна\n */\n menuPos?: 'top' | 'bottom';\n menuAlign?: 'left' | 'right';\n menuWidth?: number | string;\n size?: SizeProp;\n\n /**\n * Смотри Button.\n */\n use?: ButtonUse;\n\n /**\n * Вызывается при закрытии меню.\n */\n onClose?: () => void;\n /**\n * Вызывается при открытии меню.\n */\n onOpen?: () => void;\n onMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseOver?: (event: React.MouseEvent<HTMLElement>) => void;\n}\n\ntype DropdownSelectType = Select<React.ReactNode, React.ReactNode>;\n\nexport const DropdownDataTids = {\n root: 'Dropdown__root',\n} as const;\n\n/**\n * Выпадающее меню.\n *\n */\n@rootNode\nexport class Dropdown extends React.Component<DropdownProps> {\n public static __KONTUR_REACT_UI__ = 'Dropdown';\n public static displayName = 'Dropdown';\n\n public static Header = MenuHeader;\n public static MenuItem = MenuItem;\n public static Separator = MenuSeparator;\n\n public static propTypes = {\n /**\n * Подпись на кнопке.\n */\n caption: PropTypes.node.isRequired,\n\n /**\n * Отключает использование портала\n */\n disablePortal: PropTypes.bool,\n\n /**\n * Визуально отключает Dropdown\n */\n disabled: PropTypes.bool,\n\n /**\n * Визуально показать наличие ошибки.\n */\n error: PropTypes.bool,\n\n /**\n * Иконка слева от текста кнопки\n */\n icon: PropTypes.node,\n\n maxMenuHeight: PropTypes.number,\n\n menuAlign: PropTypes.oneOf(['left', 'right']),\n\n menuWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n\n /**\n * Смотри Button.\n */\n use: PropTypes.any,\n\n /**\n * Визуально показать наличие предупреждения.\n */\n warning: PropTypes.bool,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Вызывается при закрытии меню.\n */\n onClose: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n\n /**\n * Вызывается при открытии меню.\n */\n onOpen: PropTypes.func,\n };\n\n private _select: Nullable<DropdownSelectType>;\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getDropdownTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = () => {\n const { caption, icon, ...rest } = this.props;\n const items = React.Children.map(this.props.children, (item) => item) || [];\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...rest}>\n <Select<React.ReactNode, React.ReactNode>\n data-tid={DropdownDataTids.root}\n ref={this._refSelect}\n {...filterProps(rest, PASS_PROPS)}\n value={caption}\n items={items}\n _icon={icon}\n renderValue={renderValue}\n />\n </CommonWrapper>\n );\n };\n\n /**\n * @public\n */\n public open() {\n if (this._select) {\n this._select.open();\n }\n }\n\n /**\n * @public\n */\n public close() {\n if (this._select) {\n this._select.close();\n }\n }\n\n private _refSelect = (element: DropdownSelectType): void => {\n this._select = element;\n };\n}\n\nfunction renderValue(value: any) {\n return value;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ import { MenuHeader } from '../MenuHeader';
|
|
|
4
4
|
import { MenuItem } from '../MenuItem';
|
|
5
5
|
import { MenuSeparator } from '../MenuSeparator';
|
|
6
6
|
import { ButtonUse } from '../Button';
|
|
7
|
-
import { CommonProps
|
|
7
|
+
import { CommonProps } from '../../internal/CommonWrapper';
|
|
8
8
|
import { SizeProp } from '../../lib/types/props';
|
|
9
9
|
export interface DropdownProps extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, CommonProps {
|
|
10
10
|
/**
|
|
@@ -121,7 +121,7 @@ export declare class Dropdown extends React.Component<DropdownProps> {
|
|
|
121
121
|
private setRootNode;
|
|
122
122
|
private theme;
|
|
123
123
|
render(): React.JSX.Element;
|
|
124
|
-
renderMain: (
|
|
124
|
+
renderMain: () => React.JSX.Element;
|
|
125
125
|
/**
|
|
126
126
|
* @public
|
|
127
127
|
*/
|