@skbkontur/react-ui 5.0.2 → 5.0.3
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/Calendar/Calendar.md +2 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +1 -0
- package/cjs/components/MenuItem/MenuItem.js +3 -3
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/SingleToast/SingleToast.js +5 -1
- package/cjs/components/SingleToast/SingleToast.js.map +1 -1
- package/cjs/lib/dom/getParentOrShadowHost.d.ts +1 -0
- package/cjs/lib/dom/getParentOrShadowHost.js +3 -0
- package/cjs/lib/dom/getParentOrShadowHost.js.map +1 -0
- package/cjs/lib/dom/scrollYCenterIntoNearestScrollable.d.ts +2 -0
- package/cjs/lib/dom/scrollYCenterIntoNearestScrollable.js +48 -0
- package/cjs/lib/dom/scrollYCenterIntoNearestScrollable.js.map +1 -0
- package/components/Calendar/Calendar.md +2 -1
- package/components/MenuItem/MenuItem/MenuItem.js +3 -5
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +1 -0
- package/components/SingleToast/SingleToast/SingleToast.js +9 -4
- package/components/SingleToast/SingleToast/SingleToast.js.map +1 -1
- package/lib/dom/getParentOrShadowHost/getParentOrShadowHost.js +3 -0
- package/lib/dom/getParentOrShadowHost/getParentOrShadowHost.js.map +1 -0
- package/lib/dom/getParentOrShadowHost/package.json +6 -0
- package/lib/dom/getParentOrShadowHost.d.ts +1 -0
- package/lib/dom/scrollYCenterIntoNearestScrollable/package.json +6 -0
- package/lib/dom/scrollYCenterIntoNearestScrollable/scrollYCenterIntoNearestScrollable.js +40 -0
- package/lib/dom/scrollYCenterIntoNearestScrollable/scrollYCenterIntoNearestScrollable.js.map +1 -0
- package/lib/dom/scrollYCenterIntoNearestScrollable.d.ts +2 -0
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.0.3](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.2...@skbkontur/react-ui@5.0.3) (2024-11-22)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **Calendar,MenuItem:** page jumps when opening DateSelect ([#3543](https://github.com/skbkontur/retail-ui/issues/3543)) ([7b4acd6](https://github.com/skbkontur/retail-ui/commit/7b4acd61f1645298062cdd6294ab780eb49f8669))
|
|
12
|
+
* **SingleToast:** avoid flushSync error in react@16 ([#3546](https://github.com/skbkontur/retail-ui/issues/3546)) ([767c848](https://github.com/skbkontur/retail-ui/commit/767c848339591f1b26cacf7da2f0436c5535008a))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
6
18
|
## [5.0.2](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.1...@skbkontur/react-ui@5.0.2) (2024-11-19)
|
|
7
19
|
|
|
8
20
|
|
|
@@ -174,7 +174,8 @@ const [value, setValue] = React.useState(null);
|
|
|
174
174
|
|
|
175
175
|
<ThemeContext.Provider
|
|
176
176
|
value={ThemeFactory.create({
|
|
177
|
-
|
|
177
|
+
calendarCellWidth: '56px',
|
|
178
|
+
calendarCellHeight: '56px',
|
|
178
179
|
calendarCellLineHeight: '1.5',
|
|
179
180
|
calendarWrapperHeight: '600px',
|
|
180
181
|
calendarCellBorderRadius: '8px'
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
3
3
|
var _globalObject = require("@skbkontur/global-object");
|
|
4
4
|
|
|
5
|
+
var _scrollYCenterIntoNearestScrollable = require("../../lib/dom/scrollYCenterIntoNearestScrollable");
|
|
5
6
|
|
|
6
7
|
var _utils = require("../../lib/utils");
|
|
7
8
|
var _ThemeContext = require("../../lib/theming/ThemeContext");
|
|
@@ -98,6 +99,7 @@ var _MenuItem2 = require("./MenuItem.styles");var _excluded = ["link", "comment"
|
|
|
98
99
|
|
|
99
100
|
|
|
100
101
|
|
|
102
|
+
|
|
101
103
|
|
|
102
104
|
|
|
103
105
|
var MenuItemDataTids = exports.MenuItemDataTids = {
|
|
@@ -207,8 +209,6 @@ MenuItem = exports.MenuItem = (0, _rootNode.rootNode)(_class = (_MenuItem = /*#_
|
|
|
207
209
|
|
|
208
210
|
|
|
209
211
|
|
|
210
|
-
|
|
211
|
-
|
|
212
212
|
|
|
213
213
|
|
|
214
214
|
|
|
@@ -432,7 +432,7 @@ MenuItem = exports.MenuItem = (0, _rootNode.rootNode)(_class = (_MenuItem = /*#_
|
|
|
432
432
|
|
|
433
433
|
hasIconAmongItems = function () {var _this$context$navigat3;
|
|
434
434
|
return Boolean((_this$context$navigat3 = _this.context.navigation) == null ? void 0 : _this$context$navigat3.items.some(function (item) {return item.props.icon;}));
|
|
435
|
-
};return _this;}(0, _inheritsLoose2.default)(MenuItem, _React$Component);var _proto = MenuItem.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, (0, _getVisualStateDataAttributes.getVisualStateDataAttributes)({ hover: _this2.isHover, selected: _this2.isSelected }), _this2.props), _this2.renderMain(_this2.props));});};_proto.componentDidMount = function componentDidMount() {if (this.props.scrollIntoView
|
|
435
|
+
};return _this;}(0, _inheritsLoose2.default)(MenuItem, _React$Component);var _proto = MenuItem.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, (0, _getVisualStateDataAttributes.getVisualStateDataAttributes)({ hover: _this2.isHover, selected: _this2.isSelected }), _this2.props), _this2.renderMain(_this2.props));});};_proto.componentDidMount = function componentDidMount() {if (this.props.scrollIntoView && this.rootRef) {(0, _scrollYCenterIntoNearestScrollable.scrollYCenterIntoNearestScrollable)(this.rootRef);}if (this.rootRef && (0, _globalObject.isBrowser)(_globalObject.globalObject)) {this.setState({ iconOffsetTop: _globalObject.globalObject.getComputedStyle(this.rootRef).getPropertyValue('padding-top') });}if (this.contentRef.current && !this.props.isNotSelectable) {var _this$context$navigat4;(_this$context$navigat4 = this.context.navigation) == null || _this$context$navigat4.add(this.contentRef.current, this);}if (this.props.icon) {var _this$context$setEnab, _this$context;(_this$context$setEnab = (_this$context = this.context).setEnableIconPadding) == null || _this$context$setEnab.call(_this$context, true);}};_proto.componentWillUnmount = function componentWillUnmount() {if (this.contentRef.current) {var _this$context$navigat5, _this$context$setEnab2, _this$context2;!this.props.isNotSelectable && ((_this$context$navigat5 = this.context.navigation) == null ? void 0 : _this$context$navigat5.remove(this.contentRef.current));(_this$context$setEnab2 = (_this$context2 = this.context).setEnableIconPadding) == null || _this$context$setEnab2.call(_this$context2, this.hasIconAmongItems());}};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (prevProps.icon !== this.props.icon) {var _this$context$setEnab3, _this$context3;(_this$context$setEnab3 = (_this$context3 = this.context).setEnableIconPadding) == null || _this$context$setEnab3.call(_this$context3, !!this.props.icon || this.hasIconAmongItems());}if (this.contentRef.current && prevProps.isNotSelectable !== this.props.isNotSelectable) {if (this.props.isNotSelectable) {var _this$context$navigat6;this.unhighlight();(_this$context$navigat6 = this.context.navigation) == null || _this$context$navigat6.remove(this.contentRef.current);} else {var _this$context$navigat7;(_this$context$navigat7 = this.context.navigation) == null || _this$context$navigat7.add(this.contentRef.current, this);}}};_proto.getRootSizeClassName = function getRootSizeClassName() {switch (this.props.size) {case 'large':return _MenuItem2.styles.rootLarge(this.theme);case 'medium':return _MenuItem2.styles.rootMedium(this.theme);case 'small':default:return _MenuItem2.styles.rootSmall(this.theme);}};_proto.getIconSizeClassName = function getIconSizeClassName() {switch (this.props.size) {case 'large':return _MenuItem2.styles.iconLarge(this.theme);case 'medium':return _MenuItem2.styles.iconMedium(this.theme);case 'small':default:return _MenuItem2.styles.iconSmall(this.theme);}};_proto.getWithIconSizeClassName = function getWithIconSizeClassName() {switch (this.props.size) {case 'large':return _MenuItem2.styles.withIconLarge(this.theme);case 'medium':return _MenuItem2.styles.withIconMedium(this.theme);case 'small':default:return _MenuItem2.styles.withIconSmall(this.theme);}};return (0, _createClass2.default)(MenuItem, [{ key: "activeState", get: function get() {return this.state.highlighted ? 'hover' : this.props.state;} }, { key: "isHover", get: function get() {return (this.state.highlighted || this.props.state === 'hover') && !this.props.disabled;} }, { key: "isSelected", get: function get() {return this.props.state === 'selected' && !this.state.highlighted;} }]);}(_react.default.Component), _MenuItem.__KONTUR_REACT_UI__ = 'MenuItem', _MenuItem.displayName = 'MenuItem', _MenuItem.__MENU_ITEM__ = true, _MenuItem.propTypes = { comment: _propTypes.default.node, disabled: _propTypes.default.bool, href: _propTypes.default.string, icon: _propTypes.default.node, loose: _propTypes.default.bool, state: _propTypes.default.string, target: _propTypes.default.string, onClick: _propTypes.default.func, size: _propTypes.default.string }, _MenuItem.contextType = _MenuContext.MenuContext, _MenuItem)) || _class;
|
|
436
436
|
|
|
437
437
|
|
|
438
438
|
var isMenuItem = exports.isMenuItem = (0, _utils.isReactUIComponent)('MenuItem');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_propTypes","_globalObject","_utils","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_MenuContext","_getVisualStateDataAttributes","_MenuItem2","_excluded","_class","_MenuItem","MenuItemDataTids","exports","root","content","comment","MenuItem","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","iconOffsetTop","highlighted","mouseEntered","rootRef","contentRef","React","createRef","highlight","setState","unhighlight","select","event","handleClick","isEnabled","props","disabled","navigate","href","target","window","open","location","renderMain","_cx2","_cx3","_cx4","link","icon","loose","size","_enableIconPadding","component","onMouseEnter","onMouseLeave","isMobile","scrollIntoView","_props$rel","rel","isExternalLink","isNotSelectable","rest","_objectWithoutPropertiesLoose2","default","iconElement","_cx","createElement","style","top","className","cx","styles","getIconSizeClassName","theme","getRootSizeClassName","rootMobile","hover","isHover","selected","isSelected","getWithIconSizeClassName","Boolean","context","enableIconPadding","children","isFunction","Component","getComponent","_extends2","ref","setRootRef","activeState","onMouseOver","handleMouseEnterFix","handleMouseLeave","onClick","undefined","tabIndex","mobileContentWithIcon","isNonNullable","commentHover","e","_this$context$navigat","navigation","_this$context$navigat2","onItemClick","element","_this$props","hasIconAmongItems","_this$context$navigat3","items","some","item","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","CommonWrapper","rootNodeRef","setRootNode","getVisualStateDataAttributes","componentDidMount","_this$rootRef","block","isBrowser","globalObject","getComputedStyle","getPropertyValue","current","_this$context$navigat4","add","_this$context$setEnab","_this$context","setEnableIconPadding","componentWillUnmount","_this$context$navigat5","_this$context$setEnab2","_this$context2","remove","componentDidUpdate","prevProps","_this$context$setEnab3","_this$context3","_this$context$navigat6","_this$context$navigat7","rootLarge","rootMedium","rootSmall","iconLarge","iconMedium","iconSmall","withIconLarge","withIconMedium","withIconSmall","_createClass2","key","get","__KONTUR_REACT_UI__","displayName","__MENU_ITEM__","propTypes","PropTypes","node","bool","string","func","contextType","MenuContext","isMenuItem","isReactUIComponent"],"sources":["MenuItem.tsx"],"sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { isExternalLink, isFunction, isNonNullable, isReactUIComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { SizeProp } from '../../lib/types/props';\nimport { MenuContext, MenuContextType } from '../../internal/Menu/MenuContext';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './MenuItem.styles';\n\nexport type MenuItemState = null | 'hover' | 'selected' | void;\n\nexport interface MenuItemProps\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Omit<CommonProps, 'children'> {\n /**\n * @ignore\n */\n _enableIconPadding?: boolean;\n /**\n * Добавляет описание для элемента меню.\n */\n comment?: React.ReactNode;\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * Добавляет элементу меню иконку.\n */\n icon?: React.ReactElement<any>;\n /**\n * Меняет цвет текста на синий.\n */\n link?: boolean;\n /**\n * Размер\n */\n size?: SizeProp;\n /**\n * @ignore\n */\n loose?: boolean;\n /**\n * @ignore\n */\n state?: MenuItemState;\n /**\n * HTML-событие `onclick`.\n */\n onClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler;\n children?: React.ReactNode | ((state: MenuItemState) => React.ReactNode);\n /**\n * HTML-атрибут `target`.\n */\n target?: React.AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n /**\n * HTML-атрибут `title`.\n */\n title?: React.AnchorHTMLAttributes<HTMLAnchorElement>['title'];\n /**\n * HTML-атрибут `href`.\n */\n href?: React.AnchorHTMLAttributes<HTMLAnchorElement>['href'];\n /**\n * HTML-атрибут `rel`.\n *\n * Для внешних ссылок аттрибут rel по умолчанию равен \"noopener noreferrer\"\n */\n rel?: React.AnchorHTMLAttributes<HTMLAnchorElement>['rel'];\n /**\n * Заменяет корневой элемент, на компонент переданный в проп.\n *\n * По умолчанию корневой элемент рендерится как `button`. <br />Если передан `href`, то вместо `button` рендерится `a`.\n */\n component?: React.ComponentType<any>;\n /**\n * Запрещает выделение и выбор данного пункта меню\n *\n */\n isNotSelectable?: boolean;\n\n isMobile?: boolean;\n scrollIntoView?: boolean;\n}\n\nexport const MenuItemDataTids = {\n root: 'MenuItem__root',\n content: 'MenuItem__content',\n comment: 'MenuItem__comment',\n} as const;\n\n/**\n *\n * `MenuItem` - это вложенный компонент, задающий базовые стили для элемента меню и позволяющий навигироваться по элементам меню с помощью клавиатуры.\n *\n * Сущности в которых может быть использован `MenuItem`: [DropdownMenu](#/Components/DropdownMenu), [Kebab](#/Components/Kebab), [TooltipMenu](#/Components/TooltipMenu) и [Select](#/Components/Select).\n */\n@rootNode\nexport class MenuItem extends React.Component<MenuItemProps> {\n public static __KONTUR_REACT_UI__ = 'MenuItem';\n public static displayName = 'MenuItem';\n public static __MENU_ITEM__ = true;\n\n public static propTypes = {\n comment: PropTypes.node,\n\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.node,\n\n loose: PropTypes.bool,\n\n state: PropTypes.string,\n\n target: PropTypes.string,\n\n onClick: PropTypes.func,\n\n size: PropTypes.string,\n };\n\n public state = {\n iconOffsetTop: 0,\n highlighted: false,\n };\n\n private theme!: Theme;\n private mouseEntered = false;\n private setRootNode!: TSetRootNode;\n private rootRef: Nullable<HTMLElement> = null;\n private contentRef = React.createRef<HTMLElement>();\n static contextType = MenuContext;\n\n public context!: MenuContextType;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...getVisualStateDataAttributes({\n hover: this.isHover,\n selected: this.isSelected,\n })}\n {...this.props}\n >\n {this.renderMain(this.props)}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public componentDidMount() {\n if (this.props.scrollIntoView) {\n this.rootRef?.scrollIntoView({\n block: 'center',\n });\n }\n if (this.rootRef && isBrowser(globalObject)) {\n this.setState({ iconOffsetTop: globalObject.getComputedStyle(this.rootRef).getPropertyValue('padding-top') });\n }\n if (this.contentRef.current && !this.props.isNotSelectable) {\n this.context.navigation?.add(this.contentRef.current, this);\n }\n if (this.props.icon) {\n this.context.setEnableIconPadding?.(true);\n }\n }\n\n public componentWillUnmount() {\n if (this.contentRef.current) {\n !this.props.isNotSelectable && this.context.navigation?.remove(this.contentRef.current);\n this.context.setEnableIconPadding?.(this.hasIconAmongItems());\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<MenuItemProps>) {\n if (prevProps.icon !== this.props.icon) {\n this.context.setEnableIconPadding?.(!!this.props.icon || this.hasIconAmongItems());\n }\n if (this.contentRef.current && prevProps.isNotSelectable !== this.props.isNotSelectable) {\n if (this.props.isNotSelectable) {\n this.unhighlight();\n this.context.navigation?.remove(this.contentRef.current);\n } else {\n this.context.navigation?.add(this.contentRef.current, this);\n }\n }\n }\n\n public highlight = () => {\n this.setState({ highlighted: true });\n };\n\n public unhighlight = () => {\n this.setState({ highlighted: false });\n };\n\n public select = (event: React.SyntheticEvent<HTMLElement>) => {\n this.handleClick(event as React.MouseEvent<HTMLElement>);\n };\n\n public isEnabled = () => {\n return !this.props.disabled;\n };\n\n public navigate = () => {\n if (!this.props.href) {\n return;\n }\n if (this.props.target) {\n window.open(this.props.href, this.props.target);\n } else {\n location.href = this.props.href;\n }\n };\n\n private getRootSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getIconSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.iconLarge(this.theme);\n case 'medium':\n return styles.iconMedium(this.theme);\n case 'small':\n default:\n return styles.iconSmall(this.theme);\n }\n }\n\n private getWithIconSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.withIconLarge(this.theme);\n case 'medium':\n return styles.withIconMedium(this.theme);\n case 'small':\n default:\n return styles.withIconSmall(this.theme);\n }\n }\n\n private renderMain = (props: CommonWrapperRestProps<MenuItemProps>) => {\n const {\n link,\n comment,\n icon,\n loose,\n state,\n size,\n _enableIconPadding,\n component,\n onMouseEnter,\n onMouseLeave,\n isMobile,\n href,\n disabled,\n scrollIntoView,\n rel = this.props.href && isExternalLink(this.props.href) ? 'noopener noreferrer' : this.props.rel,\n isNotSelectable,\n ...rest\n } = props;\n\n let iconElement = null;\n if (icon) {\n iconElement = (\n <div\n style={{ top: this.state.iconOffsetTop }}\n className={cx({\n [styles.icon()]: true,\n [this.getIconSizeClassName()]: true,\n })}\n >\n {icon}\n </div>\n );\n }\n\n const className = cx({\n [styles.root(this.theme)]: true,\n [this.getRootSizeClassName()]: true,\n [styles.rootMobile(this.theme)]: isMobile,\n [styles.loose()]: !!loose,\n [styles.hover(this.theme)]: this.isHover,\n [styles.selected(this.theme)]: this.isSelected,\n [styles.link(this.theme)]: !!link,\n [this.getWithIconSizeClassName()]: Boolean(iconElement) || !!_enableIconPadding || this.context.enableIconPadding,\n [styles.disabled(this.theme)]: !!this.props.disabled,\n });\n\n const { children } = this.props;\n\n let content = children;\n if (isFunction(children)) {\n content = children(this.props.state);\n }\n\n const Component = this.getComponent();\n\n return (\n <Component\n ref={this.setRootRef}\n data-tid={MenuItemDataTids.root}\n {...rest}\n disabled={disabled}\n state={this.activeState}\n onMouseOver={this.handleMouseEnterFix}\n onMouseLeave={this.handleMouseLeave}\n onClick={this.handleClick}\n className={className}\n href={href}\n rel={href ? rel : undefined}\n tabIndex={-1}\n >\n {iconElement}\n <span\n className={cx({\n [styles.mobileContentWithIcon()]: isMobile && isNonNullable(icon),\n })}\n ref={this.contentRef}\n data-tid={MenuItemDataTids.content}\n >\n {typeof content === 'function' ? content() : content}\n </span>\n {this.props.comment && (\n <div\n data-tid={MenuItemDataTids.comment}\n className={cx({\n [styles.comment(this.theme)]: true,\n [styles.commentHover(this.theme)]: this.isHover,\n })}\n >\n {comment}\n </div>\n )}\n </Component>\n );\n };\n\n private get activeState() {\n return this.state.highlighted ? 'hover' : this.props.state;\n }\n\n private get isHover(): boolean {\n return (this.state.highlighted || this.props.state === 'hover') && !this.props.disabled;\n }\n\n private get isSelected(): boolean {\n return this.props.state === 'selected' && !this.state.highlighted;\n }\n\n // https://github.com/facebook/react/issues/10109\n // Mouseenter event not triggered when cursor moves from disabled button\n private handleMouseEnterFix = (e: React.MouseEvent<HTMLElement>) => {\n if (!this.mouseEntered) {\n this.mouseEntered = true;\n this.props.onMouseEnter?.(e);\n !this.props.isNotSelectable && this.context.navigation?.highlight(this);\n }\n };\n\n private handleMouseLeave = (e: React.MouseEvent<HTMLElement>) => {\n this.mouseEntered = false;\n this.props.onMouseLeave?.(e);\n !this.props.isNotSelectable && this.context.navigation?.unhighlight();\n };\n\n private handleClick = (e: React.MouseEvent<HTMLElement>) => {\n if (this.props.isNotSelectable) {\n return;\n }\n this.props.onClick?.(e);\n this.context.onItemClick?.(e);\n };\n\n private setRootRef = (element: HTMLElement) => {\n this.rootRef = element;\n };\n\n private getComponent = () => {\n const { disabled, component, href } = this.props;\n\n if (component) {\n return component;\n }\n\n if (disabled) {\n return 'button';\n }\n\n if (href) {\n return 'a';\n }\n\n return 'button';\n };\n\n private hasIconAmongItems = () => {\n return Boolean(this.context.navigation?.items.some((item) => item.props.icon));\n };\n}\n\nexport const isMenuItem = isReactUIComponent('MenuItem');\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_propTypes","_globalObject","_scrollYCenterIntoNearestScrollable","_utils","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_MenuContext","_getVisualStateDataAttributes","_MenuItem2","_excluded","_class","_MenuItem","MenuItemDataTids","exports","root","content","comment","MenuItem","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","iconOffsetTop","highlighted","mouseEntered","rootRef","contentRef","React","createRef","highlight","setState","unhighlight","select","event","handleClick","isEnabled","props","disabled","navigate","href","target","window","open","location","renderMain","_cx2","_cx3","_cx4","link","icon","loose","size","_enableIconPadding","component","onMouseEnter","onMouseLeave","isMobile","scrollIntoView","_props$rel","rel","isExternalLink","isNotSelectable","rest","_objectWithoutPropertiesLoose2","default","iconElement","_cx","createElement","style","top","className","cx","styles","getIconSizeClassName","theme","getRootSizeClassName","rootMobile","hover","isHover","selected","isSelected","getWithIconSizeClassName","Boolean","context","enableIconPadding","children","isFunction","Component","getComponent","_extends2","ref","setRootRef","activeState","onMouseOver","handleMouseEnterFix","handleMouseLeave","onClick","undefined","tabIndex","mobileContentWithIcon","isNonNullable","commentHover","e","_this$context$navigat","navigation","_this$context$navigat2","onItemClick","element","_this$props","hasIconAmongItems","_this$context$navigat3","items","some","item","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","CommonWrapper","rootNodeRef","setRootNode","getVisualStateDataAttributes","componentDidMount","scrollYCenterIntoNearestScrollable","isBrowser","globalObject","getComputedStyle","getPropertyValue","current","_this$context$navigat4","add","_this$context$setEnab","_this$context","setEnableIconPadding","componentWillUnmount","_this$context$navigat5","_this$context$setEnab2","_this$context2","remove","componentDidUpdate","prevProps","_this$context$setEnab3","_this$context3","_this$context$navigat6","_this$context$navigat7","rootLarge","rootMedium","rootSmall","iconLarge","iconMedium","iconSmall","withIconLarge","withIconMedium","withIconSmall","_createClass2","key","get","__KONTUR_REACT_UI__","displayName","__MENU_ITEM__","propTypes","PropTypes","node","bool","string","func","contextType","MenuContext","isMenuItem","isReactUIComponent"],"sources":["MenuItem.tsx"],"sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { scrollYCenterIntoNearestScrollable } from '../../lib/dom/scrollYCenterIntoNearestScrollable';\nimport { Nullable } from '../../typings/utility-types';\nimport { isExternalLink, isFunction, isNonNullable, isReactUIComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { SizeProp } from '../../lib/types/props';\nimport { MenuContext, MenuContextType } from '../../internal/Menu/MenuContext';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './MenuItem.styles';\n\nexport type MenuItemState = null | 'hover' | 'selected' | void;\n\nexport interface MenuItemProps\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Omit<CommonProps, 'children'> {\n /**\n * @ignore\n */\n _enableIconPadding?: boolean;\n /**\n * Добавляет описание для элемента меню.\n */\n comment?: React.ReactNode;\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * Добавляет элементу меню иконку.\n */\n icon?: React.ReactElement<any>;\n /**\n * Меняет цвет текста на синий.\n */\n link?: boolean;\n /**\n * Размер\n */\n size?: SizeProp;\n /**\n * @ignore\n */\n loose?: boolean;\n /**\n * @ignore\n */\n state?: MenuItemState;\n /**\n * HTML-событие `onclick`.\n */\n onClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler;\n children?: React.ReactNode | ((state: MenuItemState) => React.ReactNode);\n /**\n * HTML-атрибут `target`.\n */\n target?: React.AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n /**\n * HTML-атрибут `title`.\n */\n title?: React.AnchorHTMLAttributes<HTMLAnchorElement>['title'];\n /**\n * HTML-атрибут `href`.\n */\n href?: React.AnchorHTMLAttributes<HTMLAnchorElement>['href'];\n /**\n * HTML-атрибут `rel`.\n *\n * Для внешних ссылок аттрибут rel по умолчанию равен \"noopener noreferrer\"\n */\n rel?: React.AnchorHTMLAttributes<HTMLAnchorElement>['rel'];\n /**\n * Заменяет корневой элемент, на компонент переданный в проп.\n *\n * По умолчанию корневой элемент рендерится как `button`. <br />Если передан `href`, то вместо `button` рендерится `a`.\n */\n component?: React.ComponentType<any>;\n /**\n * Запрещает выделение и выбор данного пункта меню\n *\n */\n isNotSelectable?: boolean;\n\n isMobile?: boolean;\n /** @ignore */\n scrollIntoView?: boolean;\n}\n\nexport const MenuItemDataTids = {\n root: 'MenuItem__root',\n content: 'MenuItem__content',\n comment: 'MenuItem__comment',\n} as const;\n\n/**\n *\n * `MenuItem` - это вложенный компонент, задающий базовые стили для элемента меню и позволяющий навигироваться по элементам меню с помощью клавиатуры.\n *\n * Сущности в которых может быть использован `MenuItem`: [DropdownMenu](#/Components/DropdownMenu), [Kebab](#/Components/Kebab), [TooltipMenu](#/Components/TooltipMenu) и [Select](#/Components/Select).\n */\n@rootNode\nexport class MenuItem extends React.Component<MenuItemProps> {\n public static __KONTUR_REACT_UI__ = 'MenuItem';\n public static displayName = 'MenuItem';\n public static __MENU_ITEM__ = true;\n\n public static propTypes = {\n comment: PropTypes.node,\n\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.node,\n\n loose: PropTypes.bool,\n\n state: PropTypes.string,\n\n target: PropTypes.string,\n\n onClick: PropTypes.func,\n\n size: PropTypes.string,\n };\n\n public state = {\n iconOffsetTop: 0,\n highlighted: false,\n };\n\n private theme!: Theme;\n private mouseEntered = false;\n private setRootNode!: TSetRootNode;\n private rootRef: Nullable<HTMLElement> = null;\n private contentRef = React.createRef<HTMLElement>();\n static contextType = MenuContext;\n\n public context!: MenuContextType;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...getVisualStateDataAttributes({\n hover: this.isHover,\n selected: this.isSelected,\n })}\n {...this.props}\n >\n {this.renderMain(this.props)}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public componentDidMount() {\n if (this.props.scrollIntoView && this.rootRef) {\n scrollYCenterIntoNearestScrollable(this.rootRef);\n }\n if (this.rootRef && isBrowser(globalObject)) {\n this.setState({ iconOffsetTop: globalObject.getComputedStyle(this.rootRef).getPropertyValue('padding-top') });\n }\n if (this.contentRef.current && !this.props.isNotSelectable) {\n this.context.navigation?.add(this.contentRef.current, this);\n }\n if (this.props.icon) {\n this.context.setEnableIconPadding?.(true);\n }\n }\n\n public componentWillUnmount() {\n if (this.contentRef.current) {\n !this.props.isNotSelectable && this.context.navigation?.remove(this.contentRef.current);\n this.context.setEnableIconPadding?.(this.hasIconAmongItems());\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<MenuItemProps>) {\n if (prevProps.icon !== this.props.icon) {\n this.context.setEnableIconPadding?.(!!this.props.icon || this.hasIconAmongItems());\n }\n if (this.contentRef.current && prevProps.isNotSelectable !== this.props.isNotSelectable) {\n if (this.props.isNotSelectable) {\n this.unhighlight();\n this.context.navigation?.remove(this.contentRef.current);\n } else {\n this.context.navigation?.add(this.contentRef.current, this);\n }\n }\n }\n\n public highlight = () => {\n this.setState({ highlighted: true });\n };\n\n public unhighlight = () => {\n this.setState({ highlighted: false });\n };\n\n public select = (event: React.SyntheticEvent<HTMLElement>) => {\n this.handleClick(event as React.MouseEvent<HTMLElement>);\n };\n\n public isEnabled = () => {\n return !this.props.disabled;\n };\n\n public navigate = () => {\n if (!this.props.href) {\n return;\n }\n if (this.props.target) {\n window.open(this.props.href, this.props.target);\n } else {\n location.href = this.props.href;\n }\n };\n\n private getRootSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getIconSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.iconLarge(this.theme);\n case 'medium':\n return styles.iconMedium(this.theme);\n case 'small':\n default:\n return styles.iconSmall(this.theme);\n }\n }\n\n private getWithIconSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.withIconLarge(this.theme);\n case 'medium':\n return styles.withIconMedium(this.theme);\n case 'small':\n default:\n return styles.withIconSmall(this.theme);\n }\n }\n\n private renderMain = (props: CommonWrapperRestProps<MenuItemProps>) => {\n const {\n link,\n comment,\n icon,\n loose,\n state,\n size,\n _enableIconPadding,\n component,\n onMouseEnter,\n onMouseLeave,\n isMobile,\n href,\n disabled,\n scrollIntoView,\n rel = this.props.href && isExternalLink(this.props.href) ? 'noopener noreferrer' : this.props.rel,\n isNotSelectable,\n ...rest\n } = props;\n\n let iconElement = null;\n if (icon) {\n iconElement = (\n <div\n style={{ top: this.state.iconOffsetTop }}\n className={cx({\n [styles.icon()]: true,\n [this.getIconSizeClassName()]: true,\n })}\n >\n {icon}\n </div>\n );\n }\n\n const className = cx({\n [styles.root(this.theme)]: true,\n [this.getRootSizeClassName()]: true,\n [styles.rootMobile(this.theme)]: isMobile,\n [styles.loose()]: !!loose,\n [styles.hover(this.theme)]: this.isHover,\n [styles.selected(this.theme)]: this.isSelected,\n [styles.link(this.theme)]: !!link,\n [this.getWithIconSizeClassName()]: Boolean(iconElement) || !!_enableIconPadding || this.context.enableIconPadding,\n [styles.disabled(this.theme)]: !!this.props.disabled,\n });\n\n const { children } = this.props;\n\n let content = children;\n if (isFunction(children)) {\n content = children(this.props.state);\n }\n\n const Component = this.getComponent();\n\n return (\n <Component\n ref={this.setRootRef}\n data-tid={MenuItemDataTids.root}\n {...rest}\n disabled={disabled}\n state={this.activeState}\n onMouseOver={this.handleMouseEnterFix}\n onMouseLeave={this.handleMouseLeave}\n onClick={this.handleClick}\n className={className}\n href={href}\n rel={href ? rel : undefined}\n tabIndex={-1}\n >\n {iconElement}\n <span\n className={cx({\n [styles.mobileContentWithIcon()]: isMobile && isNonNullable(icon),\n })}\n ref={this.contentRef}\n data-tid={MenuItemDataTids.content}\n >\n {typeof content === 'function' ? content() : content}\n </span>\n {this.props.comment && (\n <div\n data-tid={MenuItemDataTids.comment}\n className={cx({\n [styles.comment(this.theme)]: true,\n [styles.commentHover(this.theme)]: this.isHover,\n })}\n >\n {comment}\n </div>\n )}\n </Component>\n );\n };\n\n private get activeState() {\n return this.state.highlighted ? 'hover' : this.props.state;\n }\n\n private get isHover(): boolean {\n return (this.state.highlighted || this.props.state === 'hover') && !this.props.disabled;\n }\n\n private get isSelected(): boolean {\n return this.props.state === 'selected' && !this.state.highlighted;\n }\n\n // https://github.com/facebook/react/issues/10109\n // Mouseenter event not triggered when cursor moves from disabled button\n private handleMouseEnterFix = (e: React.MouseEvent<HTMLElement>) => {\n if (!this.mouseEntered) {\n this.mouseEntered = true;\n this.props.onMouseEnter?.(e);\n !this.props.isNotSelectable && this.context.navigation?.highlight(this);\n }\n };\n\n private handleMouseLeave = (e: React.MouseEvent<HTMLElement>) => {\n this.mouseEntered = false;\n this.props.onMouseLeave?.(e);\n !this.props.isNotSelectable && this.context.navigation?.unhighlight();\n };\n\n private handleClick = (e: React.MouseEvent<HTMLElement>) => {\n if (this.props.isNotSelectable) {\n return;\n }\n this.props.onClick?.(e);\n this.context.onItemClick?.(e);\n };\n\n private setRootRef = (element: HTMLElement) => {\n this.rootRef = element;\n };\n\n private getComponent = () => {\n const { disabled, component, href } = this.props;\n\n if (component) {\n return component;\n }\n\n if (disabled) {\n return 'button';\n }\n\n if (href) {\n return 'a';\n }\n\n return 'button';\n };\n\n private hasIconAmongItems = () => {\n return Boolean(this.context.navigation?.items.some((item) => item.props.icon));\n };\n}\n\nexport const isMenuItem = isReactUIComponent('MenuItem');\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,6 +18,10 @@ SingleToast = exports.SingleToast = /*#__PURE__*/function (_React$Component) {fu
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
21
25
|
render = function () {
|
|
22
26
|
return /*#__PURE__*/_react.default.createElement(_Toast.Toast, (0, _extends2.default)({ ref: SingleToast.ref }, _this.props));
|
|
23
|
-
};return _this;}(0, _inheritsLoose2.default)(SingleToast, _React$Component);return SingleToast;}(_react.default.Component);_SingleToast = SingleToast;SingleToast.__KONTUR_REACT_UI__ = 'SingleToast';SingleToast.displayName = 'SingleToast';SingleToast.ref = /*#__PURE__*/_react.default.createRef();SingleToast.push = function () {var _SingleToast$ref$curr;_SingleToast.close();for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {args[_key2] = arguments[_key2];}(_SingleToast$ref$curr = _SingleToast.ref.current) == null || _SingleToast$ref$curr.push.apply(_SingleToast$ref$curr, args);};SingleToast.close = function () {_reactDom.default.flushSync(function () {var _SingleToast$ref$curr2;return (_SingleToast$ref$curr2 = _SingleToast.ref.current) == null ? void 0 : _SingleToast$ref$curr2.close();});};
|
|
27
|
+
};return _this;}(0, _inheritsLoose2.default)(SingleToast, _React$Component);return SingleToast;}(_react.default.Component);_SingleToast = SingleToast;SingleToast.__KONTUR_REACT_UI__ = 'SingleToast';SingleToast.displayName = 'SingleToast';SingleToast.ref = /*#__PURE__*/_react.default.createRef();SingleToast.push = function () {var _SingleToast$ref$curr;_SingleToast.close();for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {args[_key2] = arguments[_key2];}(_SingleToast$ref$curr = _SingleToast.ref.current) == null || _SingleToast$ref$curr.push.apply(_SingleToast$ref$curr, args);};SingleToast.close = function () {if (_react.default.version.search('18') === 0) {_reactDom.default.flushSync(function () {var _SingleToast$ref$curr2;return (_SingleToast$ref$curr2 = _SingleToast.ref.current) == null ? void 0 : _SingleToast$ref$curr2.close();});} else {var _SingleToast$ref$curr3;(_SingleToast$ref$curr3 = _SingleToast.ref.current) == null || _SingleToast$ref$curr3.close();}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactDom","_Toast","_SingleToast","SingleToast","exports","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","render","default","createElement","Toast","_extends2","ref","props","_inheritsLoose2","React","Component","__KONTUR_REACT_UI__","displayName","createRef","push","_SingleToast$ref$curr","close","_len2","_key2","current","ReactDOM","flushSync","_SingleToast$ref$curr2"],"sources":["SingleToast.tsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Toast, ToastProps } from '../Toast/Toast';\n\n/**\n * Позволяет вызывать тосты с помощью статических методов. В отличие от статических методов из компонента `<Toast>` - их можно кастомизировать и они работают с `React@18`.\n */\nexport class SingleToast extends React.Component<ToastProps> {\n public static __KONTUR_REACT_UI__ = 'SingleToast';\n public static displayName = 'SingleToast';\n\n public static ref = React.createRef<Toast>();\n public static push: typeof Toast.push = (...args) => {\n SingleToast.close();\n SingleToast.ref.current?.push(...args);\n };\n public static close: typeof Toast.close = () => {\n ReactDOM.flushSync(() => SingleToast.ref.current?.close());\n };\n render = () => {\n return <Toast ref={SingleToast.ref} {...this.props} />;\n };\n}\n"],"mappings":"iVAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;;AAEA,IAAAE,MAAA,GAAAF,OAAA,mBAAmD,IAAAG,YAAA;;AAEnD;AACA;AACA,GAFA;AAGaC,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAAE,gBAAA,YAAAF,YAAA,OAAAG,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactDom","_Toast","_SingleToast","SingleToast","exports","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","render","default","createElement","Toast","_extends2","ref","props","_inheritsLoose2","React","Component","__KONTUR_REACT_UI__","displayName","createRef","push","_SingleToast$ref$curr","close","_len2","_key2","current","version","search","ReactDOM","flushSync","_SingleToast$ref$curr2","_SingleToast$ref$curr3"],"sources":["SingleToast.tsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Toast, ToastProps } from '../Toast/Toast';\n\n/**\n * Позволяет вызывать тосты с помощью статических методов. В отличие от статических методов из компонента `<Toast>` - их можно кастомизировать и они работают с `React@18`.\n */\nexport class SingleToast extends React.Component<ToastProps> {\n public static __KONTUR_REACT_UI__ = 'SingleToast';\n public static displayName = 'SingleToast';\n\n public static ref = React.createRef<Toast>();\n public static push: typeof Toast.push = (...args) => {\n SingleToast.close();\n SingleToast.ref.current?.push(...args);\n };\n public static close: typeof Toast.close = () => {\n if (React.version.search('18') === 0) {\n ReactDOM.flushSync(() => SingleToast.ref.current?.close());\n } else {\n SingleToast.ref.current?.close();\n }\n };\n render = () => {\n return <Toast ref={SingleToast.ref} {...this.props} />;\n };\n}\n"],"mappings":"iVAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;;AAEA,IAAAE,MAAA,GAAAF,OAAA,mBAAmD,IAAAG,YAAA;;AAEnD;AACA;AACA,GAFA;AAGaC,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAAE,gBAAA,YAAAF,YAAA,OAAAG,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;;;;;;;IAgBtBU,MAAM,GAAG,YAAM;MACb,oBAAOnB,MAAA,CAAAoB,OAAA,CAAAC,aAAA,CAACjB,MAAA,CAAAkB,KAAK,MAAAC,SAAA,CAAAH,OAAA,IAACI,GAAG,EAAElB,WAAW,CAACkB,GAAI,IAAKf,KAAA,CAAKgB,KAAK,CAAG,CAAC;IACxD,CAAC,QAAAhB,KAAA,MAAAiB,eAAA,CAAAN,OAAA,EAAAd,WAAA,EAAAE,gBAAA,SAAAF,WAAA,GAlB8BqB,cAAK,CAACC,SAAS,EAAAvB,YAAA,GAAnCC,WAAW,CAAXA,WAAW,CACRuB,mBAAmB,GAAG,aAAa,CADtCvB,WAAW,CAERwB,WAAW,GAAG,aAAa,CAF9BxB,WAAW,CAIRkB,GAAG,gBAAGG,cAAK,CAACI,SAAS,CAAQ,CAAC,CAJjCzB,WAAW,CAKR0B,IAAI,GAAsB,YAAa,KAAAC,qBAAA,CACnD3B,YAAW,CAAC4B,KAAK,CAAC,CAAC,CAAC,SAAAC,KAAA,GAAAxB,SAAA,CAAAC,MAAA,EADsBC,IAAI,OAAAC,KAAA,CAAAqB,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA,KAAJvB,IAAI,CAAAuB,KAAA,IAAAzB,SAAA,CAAAyB,KAAA,GAE9C,CAAAH,qBAAA,GAAA3B,YAAW,CAACkB,GAAG,CAACa,OAAO,aAAvBJ,qBAAA,CAAyBD,IAAI,CAAAf,KAAA,CAAAgB,qBAAA,EAAIpB,IAAI,CAAC,CACxC,CAAC,CARUP,WAAW,CASR4B,KAAK,GAAuB,YAAM,CAC9C,IAAIP,cAAK,CAACW,OAAO,CAACC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACpCC,iBAAQ,CAACC,SAAS,CAAC,iBAAAC,sBAAA,SAAAA,sBAAA,GAAMpC,YAAW,CAACkB,GAAG,CAACa,OAAO,qBAAvBK,sBAAA,CAAyBR,KAAK,CAAC,CAAC,GAAC,CAC5D,CAAC,MAAM,KAAAS,sBAAA,CACL,CAAAA,sBAAA,GAAArC,YAAW,CAACkB,GAAG,CAACa,OAAO,aAAvBM,sBAAA,CAAyBT,KAAK,CAAC,CAAC,CAClC,CACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getParentOrShadowHost(element: Element): Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getParentOrShadowHost","element","parentElement","getRootNode","host"],"sources":["getParentOrShadowHost.ts"],"sourcesContent":["export function getParentOrShadowHost(element: Element) {\n return element.parentElement || (element.getRootNode() as ShadowRoot).host;\n}\n"],"mappings":"6FAAO,SAASA,qBAAqBA,CAACC,OAAgB,EAAE;EACtD,OAAOA,OAAO,CAACC,aAAa,IAAKD,OAAO,CAACE,WAAW,CAAC,CAAC,CAAgBC,IAAI;AAC5E","ignoreList":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";exports.__esModule = true;exports.findNearestScrollableParent = findNearestScrollableParent;exports.scrollYCenterIntoNearestScrollable = scrollYCenterIntoNearestScrollable;var _globalObject = require("@skbkontur/global-object");
|
|
2
|
+
|
|
3
|
+
var _getParentOrShadowHost = require("./getParentOrShadowHost");
|
|
4
|
+
|
|
5
|
+
function scrollYCenterIntoNearestScrollable(element) {
|
|
6
|
+
if (!(0, _globalObject.isBrowser)(_globalObject.globalObject)) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
var parent = findNearestScrollableParent(element);
|
|
11
|
+
|
|
12
|
+
if (!parent) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
var elementRect = element.getBoundingClientRect();
|
|
17
|
+
var parentRect = parent.getBoundingClientRect();
|
|
18
|
+
|
|
19
|
+
var scrollTopPos = elementRect.top - parentRect.top;
|
|
20
|
+
var scrollBottomPos = elementRect.bottom - parentRect.bottom;
|
|
21
|
+
var scrollCenterPos = (scrollTopPos + scrollBottomPos) / 2;
|
|
22
|
+
|
|
23
|
+
if (scrollCenterPos !== 0) {
|
|
24
|
+
parent.scrollTo({ top: scrollCenterPos });
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function findNearestScrollableParent(element) {
|
|
29
|
+
if (!(0, _globalObject.isBrowser)(_globalObject.globalObject)) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
var parent = (0, _getParentOrShadowHost.getParentOrShadowHost)(element);
|
|
34
|
+
|
|
35
|
+
while (parent) {
|
|
36
|
+
var _globalObject$getComp = _globalObject.globalObject.getComputedStyle(parent),overflow = _globalObject$getComp.overflow;
|
|
37
|
+
var overflowValues = overflow.split(' ');
|
|
38
|
+
var isScrollbale = overflowValues.every(function (val) {return val === 'auto' || val === 'scroll';});
|
|
39
|
+
|
|
40
|
+
if (isScrollbale) {
|
|
41
|
+
return parent;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
parent = (0, _getParentOrShadowHost.getParentOrShadowHost)(parent);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return _globalObject.globalObject.document.documentElement;
|
|
48
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_globalObject","require","_getParentOrShadowHost","scrollYCenterIntoNearestScrollable","element","isBrowser","globalObject","parent","findNearestScrollableParent","elementRect","getBoundingClientRect","parentRect","scrollTopPos","top","scrollBottomPos","bottom","scrollCenterPos","scrollTo","getParentOrShadowHost","_globalObject$getComp","getComputedStyle","overflow","overflowValues","split","isScrollbale","every","val","document","documentElement"],"sources":["scrollYCenterIntoNearestScrollable.ts"],"sourcesContent":["import { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { getParentOrShadowHost } from './getParentOrShadowHost';\n\nexport function scrollYCenterIntoNearestScrollable(element: HTMLElement) {\n if (!isBrowser(globalObject)) {\n return;\n }\n\n const parent = findNearestScrollableParent(element);\n\n if (!parent) {\n return;\n }\n\n const elementRect = element.getBoundingClientRect();\n const parentRect = parent.getBoundingClientRect();\n\n const scrollTopPos = elementRect.top - parentRect.top;\n const scrollBottomPos = elementRect.bottom - parentRect.bottom;\n const scrollCenterPos = (scrollTopPos + scrollBottomPos) / 2;\n\n if (scrollCenterPos !== 0) {\n parent.scrollTo({ top: scrollCenterPos });\n }\n}\n\nexport function findNearestScrollableParent(element: HTMLElement) {\n if (!isBrowser(globalObject)) {\n return;\n }\n\n let parent = getParentOrShadowHost(element);\n\n while (parent) {\n const { overflow } = globalObject.getComputedStyle(parent);\n const overflowValues = overflow.split(' ');\n const isScrollbale = overflowValues.every((val) => val === 'auto' || val === 'scroll');\n\n if (isScrollbale) {\n return parent;\n }\n\n parent = getParentOrShadowHost(parent);\n }\n\n return globalObject.document.documentElement;\n}\n"],"mappings":"yLAAA,IAAAA,aAAA,GAAAC,OAAA;;AAEA,IAAAC,sBAAA,GAAAD,OAAA;;AAEO,SAASE,kCAAkCA,CAACC,OAAoB,EAAE;EACvE,IAAI,CAAC,IAAAC,uBAAS,EAACC,0BAAY,CAAC,EAAE;IAC5B;EACF;;EAEA,IAAMC,MAAM,GAAGC,2BAA2B,CAACJ,OAAO,CAAC;;EAEnD,IAAI,CAACG,MAAM,EAAE;IACX;EACF;;EAEA,IAAME,WAAW,GAAGL,OAAO,CAACM,qBAAqB,CAAC,CAAC;EACnD,IAAMC,UAAU,GAAGJ,MAAM,CAACG,qBAAqB,CAAC,CAAC;;EAEjD,IAAME,YAAY,GAAGH,WAAW,CAACI,GAAG,GAAGF,UAAU,CAACE,GAAG;EACrD,IAAMC,eAAe,GAAGL,WAAW,CAACM,MAAM,GAAGJ,UAAU,CAACI,MAAM;EAC9D,IAAMC,eAAe,GAAG,CAACJ,YAAY,GAAGE,eAAe,IAAI,CAAC;;EAE5D,IAAIE,eAAe,KAAK,CAAC,EAAE;IACzBT,MAAM,CAACU,QAAQ,CAAC,EAAEJ,GAAG,EAAEG,eAAe,CAAC,CAAC,CAAC;EAC3C;AACF;;AAEO,SAASR,2BAA2BA,CAACJ,OAAoB,EAAE;EAChE,IAAI,CAAC,IAAAC,uBAAS,EAACC,0BAAY,CAAC,EAAE;IAC5B;EACF;;EAEA,IAAIC,MAAM,GAAG,IAAAW,4CAAqB,EAACd,OAAO,CAAC;;EAE3C,OAAOG,MAAM,EAAE;IACb,IAAAY,qBAAA,GAAqBb,0BAAY,CAACc,gBAAgB,CAACb,MAAM,CAAC,CAAlDc,QAAQ,GAAAF,qBAAA,CAARE,QAAQ;IAChB,IAAMC,cAAc,GAAGD,QAAQ,CAACE,KAAK,CAAC,GAAG,CAAC;IAC1C,IAAMC,YAAY,GAAGF,cAAc,CAACG,KAAK,CAAC,UAACC,GAAG,UAAKA,GAAG,KAAK,MAAM,IAAIA,GAAG,KAAK,QAAQ,GAAC;;IAEtF,IAAIF,YAAY,EAAE;MAChB,OAAOjB,MAAM;IACf;;IAEAA,MAAM,GAAG,IAAAW,4CAAqB,EAACX,MAAM,CAAC;EACxC;;EAEA,OAAOD,0BAAY,CAACqB,QAAQ,CAACC,eAAe;AAC9C","ignoreList":[]}
|
|
@@ -174,7 +174,8 @@ const [value, setValue] = React.useState(null);
|
|
|
174
174
|
|
|
175
175
|
<ThemeContext.Provider
|
|
176
176
|
value={ThemeFactory.create({
|
|
177
|
-
|
|
177
|
+
calendarCellWidth: '56px',
|
|
178
|
+
calendarCellHeight: '56px',
|
|
178
179
|
calendarCellLineHeight: '1.5',
|
|
179
180
|
calendarWrapperHeight: '600px',
|
|
180
181
|
calendarCellBorderRadius: '8px'
|
|
@@ -7,6 +7,7 @@ var _class, _MenuItem;
|
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
9
9
|
import { globalObject, isBrowser } from '@skbkontur/global-object';
|
|
10
|
+
import { scrollYCenterIntoNearestScrollable } from "../../../lib/dom/scrollYCenterIntoNearestScrollable";
|
|
10
11
|
import { isExternalLink, isFunction, isNonNullable, isReactUIComponent } from "../../../lib/utils";
|
|
11
12
|
import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
12
13
|
import { CommonWrapper } from "../../../internal/CommonWrapper";
|
|
@@ -197,11 +198,8 @@ export var MenuItem = rootNode(_class = (_MenuItem = /*#__PURE__*/function (_Rea
|
|
|
197
198
|
});
|
|
198
199
|
};
|
|
199
200
|
_proto.componentDidMount = function componentDidMount() {
|
|
200
|
-
if (this.props.scrollIntoView) {
|
|
201
|
-
|
|
202
|
-
(_this$rootRef = this.rootRef) == null || _this$rootRef.scrollIntoView({
|
|
203
|
-
block: 'center'
|
|
204
|
-
});
|
|
201
|
+
if (this.props.scrollIntoView && this.rootRef) {
|
|
202
|
+
scrollYCenterIntoNearestScrollable(this.rootRef);
|
|
205
203
|
}
|
|
206
204
|
if (this.rootRef && isBrowser(globalObject)) {
|
|
207
205
|
this.setState({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","PropTypes","globalObject","isBrowser","isExternalLink","isFunction","isNonNullable","isReactUIComponent","ThemeContext","CommonWrapper","cx","rootNode","MenuContext","getVisualStateDataAttributes","styles","MenuItemDataTids","root","content","comment","MenuItem","_class","_MenuItem","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","iconOffsetTop","highlighted","mouseEntered","rootRef","contentRef","createRef","highlight","setState","unhighlight","select","event","handleClick","isEnabled","props","disabled","navigate","href","target","window","open","location","renderMain","_cx2","_cx3","_cx4","link","icon","loose","size","_enableIconPadding","component","onMouseEnter","onMouseLeave","isMobile","scrollIntoView","_props$rel","rel","isNotSelectable","rest","_objectWithoutPropertiesLoose","_excluded","iconElement","_cx","createElement","style","top","className","getIconSizeClassName","theme","getRootSizeClassName","rootMobile","hover","isHover","selected","isSelected","getWithIconSizeClassName","Boolean","context","enableIconPadding","children","Component","getComponent","_extends","ref","setRootRef","activeState","onMouseOver","handleMouseEnterFix","handleMouseLeave","onClick","undefined","tabIndex","mobileContentWithIcon","commentHover","e","_this$context$navigat","navigation","_this$context$navigat2","onItemClick","element","_this$props","hasIconAmongItems","_this$context$navigat3","items","some","item","_inheritsLoose","_proto","prototype","render","_this2","Consumer","rootNodeRef","setRootNode","componentDidMount","_this$rootRef","block","getComputedStyle","getPropertyValue","current","_this$context$navigat4","add","_this$context$setEnab","_this$context","setEnableIconPadding","componentWillUnmount","_this$context$navigat5","_this$context$setEnab2","_this$context2","remove","componentDidUpdate","prevProps","_this$context$setEnab3","_this$context3","_this$context$navigat6","_this$context$navigat7","rootLarge","rootMedium","rootSmall","iconLarge","iconMedium","iconSmall","withIconLarge","withIconMedium","withIconSmall","_createClass","key","get","__KONTUR_REACT_UI__","displayName","__MENU_ITEM__","propTypes","node","bool","string","func","contextType","isMenuItem"],"sources":["MenuItem.tsx"],"sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { isExternalLink, isFunction, isNonNullable, isReactUIComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { SizeProp } from '../../lib/types/props';\nimport { MenuContext, MenuContextType } from '../../internal/Menu/MenuContext';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './MenuItem.styles';\n\nexport type MenuItemState = null | 'hover' | 'selected' | void;\n\nexport interface MenuItemProps\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Omit<CommonProps, 'children'> {\n /**\n * @ignore\n */\n _enableIconPadding?: boolean;\n /**\n * Добавляет описание для элемента меню.\n */\n comment?: React.ReactNode;\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * Добавляет элементу меню иконку.\n */\n icon?: React.ReactElement<any>;\n /**\n * Меняет цвет текста на синий.\n */\n link?: boolean;\n /**\n * Размер\n */\n size?: SizeProp;\n /**\n * @ignore\n */\n loose?: boolean;\n /**\n * @ignore\n */\n state?: MenuItemState;\n /**\n * HTML-событие `onclick`.\n */\n onClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler;\n children?: React.ReactNode | ((state: MenuItemState) => React.ReactNode);\n /**\n * HTML-атрибут `target`.\n */\n target?: React.AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n /**\n * HTML-атрибут `title`.\n */\n title?: React.AnchorHTMLAttributes<HTMLAnchorElement>['title'];\n /**\n * HTML-атрибут `href`.\n */\n href?: React.AnchorHTMLAttributes<HTMLAnchorElement>['href'];\n /**\n * HTML-атрибут `rel`.\n *\n * Для внешних ссылок аттрибут rel по умолчанию равен \"noopener noreferrer\"\n */\n rel?: React.AnchorHTMLAttributes<HTMLAnchorElement>['rel'];\n /**\n * Заменяет корневой элемент, на компонент переданный в проп.\n *\n * По умолчанию корневой элемент рендерится как `button`. <br />Если передан `href`, то вместо `button` рендерится `a`.\n */\n component?: React.ComponentType<any>;\n /**\n * Запрещает выделение и выбор данного пункта меню\n *\n */\n isNotSelectable?: boolean;\n\n isMobile?: boolean;\n scrollIntoView?: boolean;\n}\n\nexport const MenuItemDataTids = {\n root: 'MenuItem__root',\n content: 'MenuItem__content',\n comment: 'MenuItem__comment',\n} as const;\n\n/**\n *\n * `MenuItem` - это вложенный компонент, задающий базовые стили для элемента меню и позволяющий навигироваться по элементам меню с помощью клавиатуры.\n *\n * Сущности в которых может быть использован `MenuItem`: [DropdownMenu](#/Components/DropdownMenu), [Kebab](#/Components/Kebab), [TooltipMenu](#/Components/TooltipMenu) и [Select](#/Components/Select).\n */\n@rootNode\nexport class MenuItem extends React.Component<MenuItemProps> {\n public static __KONTUR_REACT_UI__ = 'MenuItem';\n public static displayName = 'MenuItem';\n public static __MENU_ITEM__ = true;\n\n public static propTypes = {\n comment: PropTypes.node,\n\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.node,\n\n loose: PropTypes.bool,\n\n state: PropTypes.string,\n\n target: PropTypes.string,\n\n onClick: PropTypes.func,\n\n size: PropTypes.string,\n };\n\n public state = {\n iconOffsetTop: 0,\n highlighted: false,\n };\n\n private theme!: Theme;\n private mouseEntered = false;\n private setRootNode!: TSetRootNode;\n private rootRef: Nullable<HTMLElement> = null;\n private contentRef = React.createRef<HTMLElement>();\n static contextType = MenuContext;\n\n public context!: MenuContextType;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...getVisualStateDataAttributes({\n hover: this.isHover,\n selected: this.isSelected,\n })}\n {...this.props}\n >\n {this.renderMain(this.props)}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public componentDidMount() {\n if (this.props.scrollIntoView) {\n this.rootRef?.scrollIntoView({\n block: 'center',\n });\n }\n if (this.rootRef && isBrowser(globalObject)) {\n this.setState({ iconOffsetTop: globalObject.getComputedStyle(this.rootRef).getPropertyValue('padding-top') });\n }\n if (this.contentRef.current && !this.props.isNotSelectable) {\n this.context.navigation?.add(this.contentRef.current, this);\n }\n if (this.props.icon) {\n this.context.setEnableIconPadding?.(true);\n }\n }\n\n public componentWillUnmount() {\n if (this.contentRef.current) {\n !this.props.isNotSelectable && this.context.navigation?.remove(this.contentRef.current);\n this.context.setEnableIconPadding?.(this.hasIconAmongItems());\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<MenuItemProps>) {\n if (prevProps.icon !== this.props.icon) {\n this.context.setEnableIconPadding?.(!!this.props.icon || this.hasIconAmongItems());\n }\n if (this.contentRef.current && prevProps.isNotSelectable !== this.props.isNotSelectable) {\n if (this.props.isNotSelectable) {\n this.unhighlight();\n this.context.navigation?.remove(this.contentRef.current);\n } else {\n this.context.navigation?.add(this.contentRef.current, this);\n }\n }\n }\n\n public highlight = () => {\n this.setState({ highlighted: true });\n };\n\n public unhighlight = () => {\n this.setState({ highlighted: false });\n };\n\n public select = (event: React.SyntheticEvent<HTMLElement>) => {\n this.handleClick(event as React.MouseEvent<HTMLElement>);\n };\n\n public isEnabled = () => {\n return !this.props.disabled;\n };\n\n public navigate = () => {\n if (!this.props.href) {\n return;\n }\n if (this.props.target) {\n window.open(this.props.href, this.props.target);\n } else {\n location.href = this.props.href;\n }\n };\n\n private getRootSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getIconSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.iconLarge(this.theme);\n case 'medium':\n return styles.iconMedium(this.theme);\n case 'small':\n default:\n return styles.iconSmall(this.theme);\n }\n }\n\n private getWithIconSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.withIconLarge(this.theme);\n case 'medium':\n return styles.withIconMedium(this.theme);\n case 'small':\n default:\n return styles.withIconSmall(this.theme);\n }\n }\n\n private renderMain = (props: CommonWrapperRestProps<MenuItemProps>) => {\n const {\n link,\n comment,\n icon,\n loose,\n state,\n size,\n _enableIconPadding,\n component,\n onMouseEnter,\n onMouseLeave,\n isMobile,\n href,\n disabled,\n scrollIntoView,\n rel = this.props.href && isExternalLink(this.props.href) ? 'noopener noreferrer' : this.props.rel,\n isNotSelectable,\n ...rest\n } = props;\n\n let iconElement = null;\n if (icon) {\n iconElement = (\n <div\n style={{ top: this.state.iconOffsetTop }}\n className={cx({\n [styles.icon()]: true,\n [this.getIconSizeClassName()]: true,\n })}\n >\n {icon}\n </div>\n );\n }\n\n const className = cx({\n [styles.root(this.theme)]: true,\n [this.getRootSizeClassName()]: true,\n [styles.rootMobile(this.theme)]: isMobile,\n [styles.loose()]: !!loose,\n [styles.hover(this.theme)]: this.isHover,\n [styles.selected(this.theme)]: this.isSelected,\n [styles.link(this.theme)]: !!link,\n [this.getWithIconSizeClassName()]: Boolean(iconElement) || !!_enableIconPadding || this.context.enableIconPadding,\n [styles.disabled(this.theme)]: !!this.props.disabled,\n });\n\n const { children } = this.props;\n\n let content = children;\n if (isFunction(children)) {\n content = children(this.props.state);\n }\n\n const Component = this.getComponent();\n\n return (\n <Component\n ref={this.setRootRef}\n data-tid={MenuItemDataTids.root}\n {...rest}\n disabled={disabled}\n state={this.activeState}\n onMouseOver={this.handleMouseEnterFix}\n onMouseLeave={this.handleMouseLeave}\n onClick={this.handleClick}\n className={className}\n href={href}\n rel={href ? rel : undefined}\n tabIndex={-1}\n >\n {iconElement}\n <span\n className={cx({\n [styles.mobileContentWithIcon()]: isMobile && isNonNullable(icon),\n })}\n ref={this.contentRef}\n data-tid={MenuItemDataTids.content}\n >\n {typeof content === 'function' ? content() : content}\n </span>\n {this.props.comment && (\n <div\n data-tid={MenuItemDataTids.comment}\n className={cx({\n [styles.comment(this.theme)]: true,\n [styles.commentHover(this.theme)]: this.isHover,\n })}\n >\n {comment}\n </div>\n )}\n </Component>\n );\n };\n\n private get activeState() {\n return this.state.highlighted ? 'hover' : this.props.state;\n }\n\n private get isHover(): boolean {\n return (this.state.highlighted || this.props.state === 'hover') && !this.props.disabled;\n }\n\n private get isSelected(): boolean {\n return this.props.state === 'selected' && !this.state.highlighted;\n }\n\n // https://github.com/facebook/react/issues/10109\n // Mouseenter event not triggered when cursor moves from disabled button\n private handleMouseEnterFix = (e: React.MouseEvent<HTMLElement>) => {\n if (!this.mouseEntered) {\n this.mouseEntered = true;\n this.props.onMouseEnter?.(e);\n !this.props.isNotSelectable && this.context.navigation?.highlight(this);\n }\n };\n\n private handleMouseLeave = (e: React.MouseEvent<HTMLElement>) => {\n this.mouseEntered = false;\n this.props.onMouseLeave?.(e);\n !this.props.isNotSelectable && this.context.navigation?.unhighlight();\n };\n\n private handleClick = (e: React.MouseEvent<HTMLElement>) => {\n if (this.props.isNotSelectable) {\n return;\n }\n this.props.onClick?.(e);\n this.context.onItemClick?.(e);\n };\n\n private setRootRef = (element: HTMLElement) => {\n this.rootRef = element;\n };\n\n private getComponent = () => {\n const { disabled, component, href } = this.props;\n\n if (component) {\n return component;\n }\n\n if (disabled) {\n return 'button';\n }\n\n if (href) {\n return 'a';\n }\n\n return 'button';\n };\n\n private hasIconAmongItems = () => {\n return Boolean(this.context.navigation?.items.some((item) => item.props.icon));\n };\n}\n\nexport const isMenuItem = isReactUIComponent('MenuItem');\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","PropTypes","globalObject","isBrowser","scrollYCenterIntoNearestScrollable","isExternalLink","isFunction","isNonNullable","isReactUIComponent","ThemeContext","CommonWrapper","cx","rootNode","MenuContext","getVisualStateDataAttributes","styles","MenuItemDataTids","root","content","comment","MenuItem","_class","_MenuItem","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","iconOffsetTop","highlighted","mouseEntered","rootRef","contentRef","createRef","highlight","setState","unhighlight","select","event","handleClick","isEnabled","props","disabled","navigate","href","target","window","open","location","renderMain","_cx2","_cx3","_cx4","link","icon","loose","size","_enableIconPadding","component","onMouseEnter","onMouseLeave","isMobile","scrollIntoView","_props$rel","rel","isNotSelectable","rest","_objectWithoutPropertiesLoose","_excluded","iconElement","_cx","createElement","style","top","className","getIconSizeClassName","theme","getRootSizeClassName","rootMobile","hover","isHover","selected","isSelected","getWithIconSizeClassName","Boolean","context","enableIconPadding","children","Component","getComponent","_extends","ref","setRootRef","activeState","onMouseOver","handleMouseEnterFix","handleMouseLeave","onClick","undefined","tabIndex","mobileContentWithIcon","commentHover","e","_this$context$navigat","navigation","_this$context$navigat2","onItemClick","element","_this$props","hasIconAmongItems","_this$context$navigat3","items","some","item","_inheritsLoose","_proto","prototype","render","_this2","Consumer","rootNodeRef","setRootNode","componentDidMount","getComputedStyle","getPropertyValue","current","_this$context$navigat4","add","_this$context$setEnab","_this$context","setEnableIconPadding","componentWillUnmount","_this$context$navigat5","_this$context$setEnab2","_this$context2","remove","componentDidUpdate","prevProps","_this$context$setEnab3","_this$context3","_this$context$navigat6","_this$context$navigat7","rootLarge","rootMedium","rootSmall","iconLarge","iconMedium","iconSmall","withIconLarge","withIconMedium","withIconSmall","_createClass","key","get","__KONTUR_REACT_UI__","displayName","__MENU_ITEM__","propTypes","node","bool","string","func","contextType","isMenuItem"],"sources":["MenuItem.tsx"],"sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { scrollYCenterIntoNearestScrollable } from '../../lib/dom/scrollYCenterIntoNearestScrollable';\nimport { Nullable } from '../../typings/utility-types';\nimport { isExternalLink, isFunction, isNonNullable, isReactUIComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { SizeProp } from '../../lib/types/props';\nimport { MenuContext, MenuContextType } from '../../internal/Menu/MenuContext';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './MenuItem.styles';\n\nexport type MenuItemState = null | 'hover' | 'selected' | void;\n\nexport interface MenuItemProps\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Omit<CommonProps, 'children'> {\n /**\n * @ignore\n */\n _enableIconPadding?: boolean;\n /**\n * Добавляет описание для элемента меню.\n */\n comment?: React.ReactNode;\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * Добавляет элементу меню иконку.\n */\n icon?: React.ReactElement<any>;\n /**\n * Меняет цвет текста на синий.\n */\n link?: boolean;\n /**\n * Размер\n */\n size?: SizeProp;\n /**\n * @ignore\n */\n loose?: boolean;\n /**\n * @ignore\n */\n state?: MenuItemState;\n /**\n * HTML-событие `onclick`.\n */\n onClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler;\n children?: React.ReactNode | ((state: MenuItemState) => React.ReactNode);\n /**\n * HTML-атрибут `target`.\n */\n target?: React.AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n /**\n * HTML-атрибут `title`.\n */\n title?: React.AnchorHTMLAttributes<HTMLAnchorElement>['title'];\n /**\n * HTML-атрибут `href`.\n */\n href?: React.AnchorHTMLAttributes<HTMLAnchorElement>['href'];\n /**\n * HTML-атрибут `rel`.\n *\n * Для внешних ссылок аттрибут rel по умолчанию равен \"noopener noreferrer\"\n */\n rel?: React.AnchorHTMLAttributes<HTMLAnchorElement>['rel'];\n /**\n * Заменяет корневой элемент, на компонент переданный в проп.\n *\n * По умолчанию корневой элемент рендерится как `button`. <br />Если передан `href`, то вместо `button` рендерится `a`.\n */\n component?: React.ComponentType<any>;\n /**\n * Запрещает выделение и выбор данного пункта меню\n *\n */\n isNotSelectable?: boolean;\n\n isMobile?: boolean;\n /** @ignore */\n scrollIntoView?: boolean;\n}\n\nexport const MenuItemDataTids = {\n root: 'MenuItem__root',\n content: 'MenuItem__content',\n comment: 'MenuItem__comment',\n} as const;\n\n/**\n *\n * `MenuItem` - это вложенный компонент, задающий базовые стили для элемента меню и позволяющий навигироваться по элементам меню с помощью клавиатуры.\n *\n * Сущности в которых может быть использован `MenuItem`: [DropdownMenu](#/Components/DropdownMenu), [Kebab](#/Components/Kebab), [TooltipMenu](#/Components/TooltipMenu) и [Select](#/Components/Select).\n */\n@rootNode\nexport class MenuItem extends React.Component<MenuItemProps> {\n public static __KONTUR_REACT_UI__ = 'MenuItem';\n public static displayName = 'MenuItem';\n public static __MENU_ITEM__ = true;\n\n public static propTypes = {\n comment: PropTypes.node,\n\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.node,\n\n loose: PropTypes.bool,\n\n state: PropTypes.string,\n\n target: PropTypes.string,\n\n onClick: PropTypes.func,\n\n size: PropTypes.string,\n };\n\n public state = {\n iconOffsetTop: 0,\n highlighted: false,\n };\n\n private theme!: Theme;\n private mouseEntered = false;\n private setRootNode!: TSetRootNode;\n private rootRef: Nullable<HTMLElement> = null;\n private contentRef = React.createRef<HTMLElement>();\n static contextType = MenuContext;\n\n public context!: MenuContextType;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...getVisualStateDataAttributes({\n hover: this.isHover,\n selected: this.isSelected,\n })}\n {...this.props}\n >\n {this.renderMain(this.props)}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public componentDidMount() {\n if (this.props.scrollIntoView && this.rootRef) {\n scrollYCenterIntoNearestScrollable(this.rootRef);\n }\n if (this.rootRef && isBrowser(globalObject)) {\n this.setState({ iconOffsetTop: globalObject.getComputedStyle(this.rootRef).getPropertyValue('padding-top') });\n }\n if (this.contentRef.current && !this.props.isNotSelectable) {\n this.context.navigation?.add(this.contentRef.current, this);\n }\n if (this.props.icon) {\n this.context.setEnableIconPadding?.(true);\n }\n }\n\n public componentWillUnmount() {\n if (this.contentRef.current) {\n !this.props.isNotSelectable && this.context.navigation?.remove(this.contentRef.current);\n this.context.setEnableIconPadding?.(this.hasIconAmongItems());\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<MenuItemProps>) {\n if (prevProps.icon !== this.props.icon) {\n this.context.setEnableIconPadding?.(!!this.props.icon || this.hasIconAmongItems());\n }\n if (this.contentRef.current && prevProps.isNotSelectable !== this.props.isNotSelectable) {\n if (this.props.isNotSelectable) {\n this.unhighlight();\n this.context.navigation?.remove(this.contentRef.current);\n } else {\n this.context.navigation?.add(this.contentRef.current, this);\n }\n }\n }\n\n public highlight = () => {\n this.setState({ highlighted: true });\n };\n\n public unhighlight = () => {\n this.setState({ highlighted: false });\n };\n\n public select = (event: React.SyntheticEvent<HTMLElement>) => {\n this.handleClick(event as React.MouseEvent<HTMLElement>);\n };\n\n public isEnabled = () => {\n return !this.props.disabled;\n };\n\n public navigate = () => {\n if (!this.props.href) {\n return;\n }\n if (this.props.target) {\n window.open(this.props.href, this.props.target);\n } else {\n location.href = this.props.href;\n }\n };\n\n private getRootSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getIconSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.iconLarge(this.theme);\n case 'medium':\n return styles.iconMedium(this.theme);\n case 'small':\n default:\n return styles.iconSmall(this.theme);\n }\n }\n\n private getWithIconSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.withIconLarge(this.theme);\n case 'medium':\n return styles.withIconMedium(this.theme);\n case 'small':\n default:\n return styles.withIconSmall(this.theme);\n }\n }\n\n private renderMain = (props: CommonWrapperRestProps<MenuItemProps>) => {\n const {\n link,\n comment,\n icon,\n loose,\n state,\n size,\n _enableIconPadding,\n component,\n onMouseEnter,\n onMouseLeave,\n isMobile,\n href,\n disabled,\n scrollIntoView,\n rel = this.props.href && isExternalLink(this.props.href) ? 'noopener noreferrer' : this.props.rel,\n isNotSelectable,\n ...rest\n } = props;\n\n let iconElement = null;\n if (icon) {\n iconElement = (\n <div\n style={{ top: this.state.iconOffsetTop }}\n className={cx({\n [styles.icon()]: true,\n [this.getIconSizeClassName()]: true,\n })}\n >\n {icon}\n </div>\n );\n }\n\n const className = cx({\n [styles.root(this.theme)]: true,\n [this.getRootSizeClassName()]: true,\n [styles.rootMobile(this.theme)]: isMobile,\n [styles.loose()]: !!loose,\n [styles.hover(this.theme)]: this.isHover,\n [styles.selected(this.theme)]: this.isSelected,\n [styles.link(this.theme)]: !!link,\n [this.getWithIconSizeClassName()]: Boolean(iconElement) || !!_enableIconPadding || this.context.enableIconPadding,\n [styles.disabled(this.theme)]: !!this.props.disabled,\n });\n\n const { children } = this.props;\n\n let content = children;\n if (isFunction(children)) {\n content = children(this.props.state);\n }\n\n const Component = this.getComponent();\n\n return (\n <Component\n ref={this.setRootRef}\n data-tid={MenuItemDataTids.root}\n {...rest}\n disabled={disabled}\n state={this.activeState}\n onMouseOver={this.handleMouseEnterFix}\n onMouseLeave={this.handleMouseLeave}\n onClick={this.handleClick}\n className={className}\n href={href}\n rel={href ? rel : undefined}\n tabIndex={-1}\n >\n {iconElement}\n <span\n className={cx({\n [styles.mobileContentWithIcon()]: isMobile && isNonNullable(icon),\n })}\n ref={this.contentRef}\n data-tid={MenuItemDataTids.content}\n >\n {typeof content === 'function' ? content() : content}\n </span>\n {this.props.comment && (\n <div\n data-tid={MenuItemDataTids.comment}\n className={cx({\n [styles.comment(this.theme)]: true,\n [styles.commentHover(this.theme)]: this.isHover,\n })}\n >\n {comment}\n </div>\n )}\n </Component>\n );\n };\n\n private get activeState() {\n return this.state.highlighted ? 'hover' : this.props.state;\n }\n\n private get isHover(): boolean {\n return (this.state.highlighted || this.props.state === 'hover') && !this.props.disabled;\n }\n\n private get isSelected(): boolean {\n return this.props.state === 'selected' && !this.state.highlighted;\n }\n\n // https://github.com/facebook/react/issues/10109\n // Mouseenter event not triggered when cursor moves from disabled button\n private handleMouseEnterFix = (e: React.MouseEvent<HTMLElement>) => {\n if (!this.mouseEntered) {\n this.mouseEntered = true;\n this.props.onMouseEnter?.(e);\n !this.props.isNotSelectable && this.context.navigation?.highlight(this);\n }\n };\n\n private handleMouseLeave = (e: React.MouseEvent<HTMLElement>) => {\n this.mouseEntered = false;\n this.props.onMouseLeave?.(e);\n !this.props.isNotSelectable && this.context.navigation?.unhighlight();\n };\n\n private handleClick = (e: React.MouseEvent<HTMLElement>) => {\n if (this.props.isNotSelectable) {\n return;\n }\n this.props.onClick?.(e);\n this.context.onItemClick?.(e);\n };\n\n private setRootRef = (element: HTMLElement) => {\n this.rootRef = element;\n };\n\n private getComponent = () => {\n const { disabled, component, href } = this.props;\n\n if (component) {\n return component;\n }\n\n if (disabled) {\n return 'button';\n }\n\n if (href) {\n return 'a';\n }\n\n return 'button';\n };\n\n private hasIconAmongItems = () => {\n return Boolean(this.context.navigation?.items.some((item) => item.props.icon));\n };\n}\n\nexport const isMenuItem = isReactUIComponent('MenuItem');\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -38,8 +38,13 @@ SingleToast.push = function () {
|
|
|
38
38
|
(_SingleToast$ref$curr = _SingleToast.ref.current) == null || _SingleToast$ref$curr.push.apply(_SingleToast$ref$curr, args);
|
|
39
39
|
};
|
|
40
40
|
SingleToast.close = function () {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
if (React.version.search('18') === 0) {
|
|
42
|
+
ReactDOM.flushSync(function () {
|
|
43
|
+
var _SingleToast$ref$curr2;
|
|
44
|
+
return (_SingleToast$ref$curr2 = _SingleToast.ref.current) == null ? void 0 : _SingleToast$ref$curr2.close();
|
|
45
|
+
});
|
|
46
|
+
} else {
|
|
47
|
+
var _SingleToast$ref$curr3;
|
|
48
|
+
(_SingleToast$ref$curr3 = _SingleToast.ref.current) == null || _SingleToast$ref$curr3.close();
|
|
49
|
+
}
|
|
45
50
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","ReactDOM","Toast","SingleToast","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","render","createElement","_extends","ref","props","_inheritsLoose","Component","_SingleToast","__KONTUR_REACT_UI__","displayName","createRef","push","_SingleToast$ref$curr","close","_len2","_key2","current","flushSync","_SingleToast$ref$curr2"],"sources":["SingleToast.tsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Toast, ToastProps } from '../Toast/Toast';\n\n/**\n * Позволяет вызывать тосты с помощью статических методов. В отличие от статических методов из компонента `<Toast>` - их можно кастомизировать и они работают с `React@18`.\n */\nexport class SingleToast extends React.Component<ToastProps> {\n public static __KONTUR_REACT_UI__ = 'SingleToast';\n public static displayName = 'SingleToast';\n\n public static ref = React.createRef<Toast>();\n public static push: typeof Toast.push = (...args) => {\n SingleToast.close();\n SingleToast.ref.current?.push(...args);\n };\n public static close: typeof Toast.close = () => {\n ReactDOM.flushSync(() => SingleToast.ref.current?.close());\n };\n render = () => {\n return <Toast ref={SingleToast.ref} {...this.props} />;\n };\n}\n"],"mappings":"iJAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,QAAQ,MAAM,WAAW;;AAEhC,SAASC,KAAK,QAAoB,gBAAgB;;AAElD;AACA;AACA;AACA,WAAaC,WAAW,0BAAAC,gBAAA,YAAAD,YAAA,OAAAE,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA
|
|
1
|
+
{"version":3,"names":["React","ReactDOM","Toast","SingleToast","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","render","createElement","_extends","ref","props","_inheritsLoose","Component","_SingleToast","__KONTUR_REACT_UI__","displayName","createRef","push","_SingleToast$ref$curr","close","_len2","_key2","current","version","search","flushSync","_SingleToast$ref$curr2","_SingleToast$ref$curr3"],"sources":["SingleToast.tsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Toast, ToastProps } from '../Toast/Toast';\n\n/**\n * Позволяет вызывать тосты с помощью статических методов. В отличие от статических методов из компонента `<Toast>` - их можно кастомизировать и они работают с `React@18`.\n */\nexport class SingleToast extends React.Component<ToastProps> {\n public static __KONTUR_REACT_UI__ = 'SingleToast';\n public static displayName = 'SingleToast';\n\n public static ref = React.createRef<Toast>();\n public static push: typeof Toast.push = (...args) => {\n SingleToast.close();\n SingleToast.ref.current?.push(...args);\n };\n public static close: typeof Toast.close = () => {\n if (React.version.search('18') === 0) {\n ReactDOM.flushSync(() => SingleToast.ref.current?.close());\n } else {\n SingleToast.ref.current?.close();\n }\n };\n render = () => {\n return <Toast ref={SingleToast.ref} {...this.props} />;\n };\n}\n"],"mappings":"iJAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,QAAQ,MAAM,WAAW;;AAEhC,SAASC,KAAK,QAAoB,gBAAgB;;AAElD;AACA;AACA;AACA,WAAaC,WAAW,0BAAAC,gBAAA,YAAAD,YAAA,OAAAE,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;;;;;;;IAgBtBU,MAAM,GAAG,YAAM;MACb,oBAAOf,KAAA,CAAAgB,aAAA,CAACd,KAAK,EAAAe,QAAA,GAACC,GAAG,EAAEf,WAAW,CAACe,GAAI,IAAKb,KAAA,CAAKc,KAAK,CAAG,CAAC;IACxD,CAAC,QAAAd,KAAA,EAAAe,cAAA,CAAAjB,WAAA,EAAAC,gBAAA,SAAAD,WAAA,GAlB8BH,KAAK,CAACqB,SAAS,EAmB/CC,YAAA,GAnBYnB,WAAW,CAAXA,WAAW,CACRoB,mBAAmB,GAAG,aAAa,CADtCpB,WAAW,CAERqB,WAAW,GAAG,aAAa,CAF9BrB,WAAW,CAIRe,GAAG,gBAAGlB,KAAK,CAACyB,SAAS,CAAQ,CAAC,CAJjCtB,WAAW,CAKRuB,IAAI,GAAsB,YAAa,KAAAC,qBAAA,CACnDxB,YAAW,CAACyB,KAAK,CAAC,CAAC,CAAC,SAAAC,KAAA,GAAAtB,SAAA,CAAAC,MAAA,EADsBC,IAAI,OAAAC,KAAA,CAAAmB,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA,KAAJrB,IAAI,CAAAqB,KAAA,IAAAvB,SAAA,CAAAuB,KAAA,GAE9C,CAAAH,qBAAA,GAAAxB,YAAW,CAACe,GAAG,CAACa,OAAO,aAAvBJ,qBAAA,CAAyBD,IAAI,CAAAb,KAAA,CAAAc,qBAAA,EAAIlB,IAAI,CAAC,CACxC,CAAC,CARUN,WAAW,CASRyB,KAAK,GAAuB,YAAM,CAC9C,IAAI5B,KAAK,CAACgC,OAAO,CAACC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACpChC,QAAQ,CAACiC,SAAS,CAAC,iBAAAC,sBAAA,SAAAA,sBAAA,GAAMhC,YAAW,CAACe,GAAG,CAACa,OAAO,qBAAvBI,sBAAA,CAAyBP,KAAK,CAAC,CAAC,GAAC,CAC5D,CAAC,MAAM,KAAAQ,sBAAA,CACL,CAAAA,sBAAA,GAAAjC,YAAW,CAACe,GAAG,CAACa,OAAO,aAAvBK,sBAAA,CAAyBR,KAAK,CAAC,CAAC,CAClC,CACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getParentOrShadowHost","element","parentElement","getRootNode","host"],"sources":["getParentOrShadowHost.ts"],"sourcesContent":["export function getParentOrShadowHost(element: Element) {\n return element.parentElement || (element.getRootNode() as ShadowRoot).host;\n}\n"],"mappings":"AAAA,OAAO,SAASA,qBAAqBA,CAACC,OAAgB,EAAE;EACtD,OAAOA,OAAO,CAACC,aAAa,IAAKD,OAAO,CAACE,WAAW,CAAC,CAAC,CAAgBC,IAAI;AAC5E","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getParentOrShadowHost(element: Element): Element;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { globalObject, isBrowser } from '@skbkontur/global-object';
|
|
2
|
+
import { getParentOrShadowHost } from "../getParentOrShadowHost";
|
|
3
|
+
export function scrollYCenterIntoNearestScrollable(element) {
|
|
4
|
+
if (!isBrowser(globalObject)) {
|
|
5
|
+
return;
|
|
6
|
+
}
|
|
7
|
+
var parent = findNearestScrollableParent(element);
|
|
8
|
+
if (!parent) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
var elementRect = element.getBoundingClientRect();
|
|
12
|
+
var parentRect = parent.getBoundingClientRect();
|
|
13
|
+
var scrollTopPos = elementRect.top - parentRect.top;
|
|
14
|
+
var scrollBottomPos = elementRect.bottom - parentRect.bottom;
|
|
15
|
+
var scrollCenterPos = (scrollTopPos + scrollBottomPos) / 2;
|
|
16
|
+
if (scrollCenterPos !== 0) {
|
|
17
|
+
parent.scrollTo({
|
|
18
|
+
top: scrollCenterPos
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export function findNearestScrollableParent(element) {
|
|
23
|
+
if (!isBrowser(globalObject)) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
var parent = getParentOrShadowHost(element);
|
|
27
|
+
while (parent) {
|
|
28
|
+
var _globalObject$getComp = globalObject.getComputedStyle(parent),
|
|
29
|
+
overflow = _globalObject$getComp.overflow;
|
|
30
|
+
var overflowValues = overflow.split(' ');
|
|
31
|
+
var isScrollbale = overflowValues.every(function (val) {
|
|
32
|
+
return val === 'auto' || val === 'scroll';
|
|
33
|
+
});
|
|
34
|
+
if (isScrollbale) {
|
|
35
|
+
return parent;
|
|
36
|
+
}
|
|
37
|
+
parent = getParentOrShadowHost(parent);
|
|
38
|
+
}
|
|
39
|
+
return globalObject.document.documentElement;
|
|
40
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["globalObject","isBrowser","getParentOrShadowHost","scrollYCenterIntoNearestScrollable","element","parent","findNearestScrollableParent","elementRect","getBoundingClientRect","parentRect","scrollTopPos","top","scrollBottomPos","bottom","scrollCenterPos","scrollTo","_globalObject$getComp","getComputedStyle","overflow","overflowValues","split","isScrollbale","every","val","document","documentElement"],"sources":["scrollYCenterIntoNearestScrollable.ts"],"sourcesContent":["import { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { getParentOrShadowHost } from './getParentOrShadowHost';\n\nexport function scrollYCenterIntoNearestScrollable(element: HTMLElement) {\n if (!isBrowser(globalObject)) {\n return;\n }\n\n const parent = findNearestScrollableParent(element);\n\n if (!parent) {\n return;\n }\n\n const elementRect = element.getBoundingClientRect();\n const parentRect = parent.getBoundingClientRect();\n\n const scrollTopPos = elementRect.top - parentRect.top;\n const scrollBottomPos = elementRect.bottom - parentRect.bottom;\n const scrollCenterPos = (scrollTopPos + scrollBottomPos) / 2;\n\n if (scrollCenterPos !== 0) {\n parent.scrollTo({ top: scrollCenterPos });\n }\n}\n\nexport function findNearestScrollableParent(element: HTMLElement) {\n if (!isBrowser(globalObject)) {\n return;\n }\n\n let parent = getParentOrShadowHost(element);\n\n while (parent) {\n const { overflow } = globalObject.getComputedStyle(parent);\n const overflowValues = overflow.split(' ');\n const isScrollbale = overflowValues.every((val) => val === 'auto' || val === 'scroll');\n\n if (isScrollbale) {\n return parent;\n }\n\n parent = getParentOrShadowHost(parent);\n }\n\n return globalObject.document.documentElement;\n}\n"],"mappings":"AAAA,SAASA,YAAY,EAAEC,SAAS,QAAQ,0BAA0B;;AAElE,SAASC,qBAAqB,QAAQ,yBAAyB;;AAE/D,OAAO,SAASC,kCAAkCA,CAACC,OAAoB,EAAE;EACvE,IAAI,CAACH,SAAS,CAACD,YAAY,CAAC,EAAE;IAC5B;EACF;;EAEA,IAAMK,MAAM,GAAGC,2BAA2B,CAACF,OAAO,CAAC;;EAEnD,IAAI,CAACC,MAAM,EAAE;IACX;EACF;;EAEA,IAAME,WAAW,GAAGH,OAAO,CAACI,qBAAqB,CAAC,CAAC;EACnD,IAAMC,UAAU,GAAGJ,MAAM,CAACG,qBAAqB,CAAC,CAAC;;EAEjD,IAAME,YAAY,GAAGH,WAAW,CAACI,GAAG,GAAGF,UAAU,CAACE,GAAG;EACrD,IAAMC,eAAe,GAAGL,WAAW,CAACM,MAAM,GAAGJ,UAAU,CAACI,MAAM;EAC9D,IAAMC,eAAe,GAAG,CAACJ,YAAY,GAAGE,eAAe,IAAI,CAAC;;EAE5D,IAAIE,eAAe,KAAK,CAAC,EAAE;IACzBT,MAAM,CAACU,QAAQ,CAAC,EAAEJ,GAAG,EAAEG,eAAe,CAAC,CAAC,CAAC;EAC3C;AACF;;AAEA,OAAO,SAASR,2BAA2BA,CAACF,OAAoB,EAAE;EAChE,IAAI,CAACH,SAAS,CAACD,YAAY,CAAC,EAAE;IAC5B;EACF;;EAEA,IAAIK,MAAM,GAAGH,qBAAqB,CAACE,OAAO,CAAC;;EAE3C,OAAOC,MAAM,EAAE;IACb,IAAAW,qBAAA,GAAqBhB,YAAY,CAACiB,gBAAgB,CAACZ,MAAM,CAAC,CAAlDa,QAAQ,GAAAF,qBAAA,CAARE,QAAQ;IAChB,IAAMC,cAAc,GAAGD,QAAQ,CAACE,KAAK,CAAC,GAAG,CAAC;IAC1C,IAAMC,YAAY,GAAGF,cAAc,CAACG,KAAK,CAAC,UAACC,GAAG,UAAKA,GAAG,KAAK,MAAM,IAAIA,GAAG,KAAK,QAAQ,GAAC;;IAEtF,IAAIF,YAAY,EAAE;MAChB,OAAOhB,MAAM;IACf;;IAEAA,MAAM,GAAGH,qBAAqB,CAACG,MAAM,CAAC;EACxC;;EAEA,OAAOL,YAAY,CAACwB,QAAQ,CAACC,eAAe;AAC9C","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skbkontur/react-ui",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.3",
|
|
4
4
|
"description": "UI Components",
|
|
5
5
|
"main": "cjs/index.js",
|
|
6
6
|
"module": "index.js",
|
|
7
7
|
"sideEffects": false,
|
|
8
|
-
"homepage": "https://tech.skbkontur.ru/react-ui/5.0.
|
|
8
|
+
"homepage": "https://tech.skbkontur.ru/react-ui/5.0.3/",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
11
|
"url": "git@github.com:skbkontur/retail-ui.git"
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"fix:prettier": "yarn prettier --write .",
|
|
41
41
|
"test": "jest --detectOpenHandles",
|
|
42
42
|
"test:watch": "yarn test --watch",
|
|
43
|
-
"creevey": "
|
|
43
|
+
"creevey": "node ../../scripts/creevey-prepare.js .creevey/config.js && cross-env BABEL_ENV=cjs creevey -c .creevey/config.js",
|
|
44
44
|
"creevey:update": "cross-env BABEL_ENV=cjs creevey -c .creevey/config.js --update",
|
|
45
45
|
"creevey:ui": "yarn creevey --ui",
|
|
46
46
|
"report:eslint": "yarn eslint -f eslint-html-reporter/reporter.js -o reports/eslint/index.html"
|