@skbkontur/react-ui 5.6.6 → 5.6.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/cjs/components/Calendar/CalendarDay.js +2 -2
- package/cjs/components/Calendar/CalendarDay.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +18 -19
- package/cjs/components/Dropdown/Dropdown.js +2 -3
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/FxInput/FxInput.js +1 -2
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoader.d.ts +20 -23
- package/cjs/components/GlobalLoader/GlobalLoader.js +4 -7
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +10 -10
- package/cjs/components/Kebab/Kebab.js +1 -2
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +9 -9
- package/cjs/components/Loader/Loader.js +3 -3
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +2 -2
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Tabs/Indicator.styles.d.ts +1 -0
- package/cjs/components/Tabs/Indicator.styles.js +8 -1
- package/cjs/components/Tabs/Indicator.styles.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +11 -10
- package/cjs/components/Tabs/Tab.js +3 -2
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +7 -12
- package/cjs/components/Tabs/Tabs.js +1 -6
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Toast/Toast.d.ts +4 -4
- package/cjs/components/Toast/Toast.js +2 -2
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +1 -1
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/internal/Menu/Menu.d.ts +1 -2
- package/cjs/internal/Menu/Menu.js +0 -1
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +3 -7
- package/cjs/internal/PopupMenu/PopupMenu.js +0 -4
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/components/Calendar/CalendarDay/CalendarDay.js +1 -1
- package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -1
- package/components/Dropdown/Dropdown/Dropdown.js +2 -2
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +18 -19
- package/components/FxInput/FxInput/FxInput.js +3 -1
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +4 -7
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader.d.ts +20 -23
- package/components/Kebab/Kebab/Kebab.js +1 -2
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +10 -10
- package/components/Loader/Loader/Loader.js +3 -3
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +9 -9
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +2 -2
- package/components/Tabs/Indicator.styles/Indicator.styles.js +4 -1
- package/components/Tabs/Indicator.styles/Indicator.styles.js.map +1 -1
- package/components/Tabs/Indicator.styles.d.ts +1 -0
- package/components/Tabs/Tab/Tab.js +3 -1
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +11 -10
- package/components/Tabs/Tabs/Tabs.js +1 -6
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +7 -12
- package/components/Toast/Toast/Toast.js +2 -2
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/Toast.d.ts +4 -4
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +1 -1
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +1 -2
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +3 -7
- package/package.json +1 -1
|
@@ -7,20 +7,20 @@ import type { CommonProps } from '../../internal/CommonWrapper';
|
|
|
7
7
|
import type { TGetRootNode } from '../../lib/rootNode';
|
|
8
8
|
import type { SizeProp } from '../../lib/types/props';
|
|
9
9
|
export interface KebabProps extends Pick<AriaAttributes, 'aria-label'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>, CommonProps {
|
|
10
|
-
/**
|
|
11
|
-
disabled?: boolean;
|
|
12
|
-
/** Задает размер контрола. */
|
|
10
|
+
/** Размер кнопки. */
|
|
13
11
|
size?: SizeProp;
|
|
14
|
-
/**
|
|
15
|
-
*
|
|
16
|
-
|
|
12
|
+
/** Список доступных позиций выпадающего меню относительно кнопки.
|
|
13
|
+
* @default ['bottom left', 'bottom right', 'top left', 'top right'].
|
|
14
|
+
*/
|
|
17
15
|
positions?: PopupPositionsType[];
|
|
18
16
|
positions2?: string;
|
|
19
|
-
/**
|
|
17
|
+
/** Максимальная высота меню. */
|
|
20
18
|
menuMaxHeight?: number | string;
|
|
21
|
-
/**
|
|
19
|
+
/** Блокирует кнопку. */
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
/** Отключает анимацию выпадающего меню. */
|
|
22
22
|
disableAnimations?: boolean;
|
|
23
|
-
/**
|
|
23
|
+
/** Заменяет иконку кебаба у кнопки. */
|
|
24
24
|
icon?: React.ReactNode;
|
|
25
25
|
/** @ignore */
|
|
26
26
|
'aria-describedby'?: AriaAttributes['aria-describedby'];
|
|
@@ -34,7 +34,7 @@ export interface KebabState {
|
|
|
34
34
|
}
|
|
35
35
|
type DefaultProps = Required<Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | 'disableAnimations'>>;
|
|
36
36
|
/**
|
|
37
|
-
* Кебаб-меню
|
|
37
|
+
* Кебаб-меню содержит действия с объектом.
|
|
38
38
|
*/
|
|
39
39
|
export declare class Kebab extends React.Component<KebabProps, KebabState> {
|
|
40
40
|
static __KONTUR_REACT_UI__: string;
|
|
@@ -70,11 +70,10 @@ var KebabDataTids = exports.KebabDataTids = {
|
|
|
70
70
|
|
|
71
71
|
|
|
72
72
|
/**
|
|
73
|
-
* Кебаб-меню
|
|
73
|
+
* Кебаб-меню содержит действия с объектом.
|
|
74
74
|
*/var
|
|
75
75
|
|
|
76
76
|
|
|
77
|
-
|
|
78
77
|
Kebab = exports.Kebab = (0, _rootNode.rootNode)(_class = (0, _SizeDecorator.withSize)(_class = (_Kebab = /*#__PURE__*/function (_React$Component) {function Kebab() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
|
|
79
78
|
|
|
80
79
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactIs","_globalObject","_utils","_identifiers","LayoutEvents","_interopRequireWildcard","_keyListener","_PopupMenu","_ThemeContext","_currentEnvironment","_ThemeFactory","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_getVisualStateDataAttributes","_SizeDecorator","_Kebab2","_KebabIcon","_class","_Kebab","KebabDataTids","exports","caption","Kebab","rootNode","withSize","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","anchor","listener","remove","undefined","renderCaption","captionProps","_this$getProps","disabled","size","handleCaptionKeyDown","event","openMenu","handleCaptionClick","toggleMenu","default","createElement","role","tabIndex","onClick","onKeyDown","onFocus","handleFocus","onBlur","handleBlur","className","cx","styles","kebab","theme","kebabSmall","kebabMedium","kebabLarge","opened","focused","props","renderIcon","e","someKeys","isKeyEnter","isKeySpace","isKeyArrowVertical","preventDefault","handleChangeMenuState","isOpened","restoreFocus","setState","globalObject","requestAnimationFrame","keyListener","isTabPressed","_inheritsLoose2","_proto","prototype","componentDidMount","addListener","componentWillUnmount","render","_this2","ThemeContext","Consumer","Provider","value","ThemeFactory","create","popupMargin","kebabMargin","renderMain","_this$getProps2","positions","disableAnimations","onOpen","onClose","CommonWrapper","_extends2","rootNodeRef","setRootNode","getVisualStateDataAttributes","PopupMenu","id","popupHasPin","preventIconsOffset","onChangeMenuState","menuMaxHeight","popupMenuId","children","_this$getProps3","_this$getProps3$icon","icon","KebabIcon","isElement","isKonturIcon","_icon$props$size","_icon$props$color","sizes","small","parseInt","kebabIconSizeSmall","medium","kebabIconSizeMedium","large","kebabIconSizeLarge","React","cloneElement","color","kebabIconColor","Component","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["Kebab.tsx"],"sourcesContent":["import type { AriaAttributes, ReactElement, HTMLAttributes } from 'react';\nimport React from 'react';\nimport { isElement } from 'react-is';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKonturIcon } from '../../lib/utils';\nimport { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { PopupMenuCaptionProps, PopupMenuProps } from '../../internal/PopupMenu';\nimport { PopupMenu } from '../../internal/PopupMenu';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { PopupPositionsType } from '../../internal/Popup';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles } from './Kebab.styles';\nimport { KebabIcon } from './KebabIcon';\n\nexport interface KebabProps\n extends Pick<AriaAttributes, 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>,\n CommonProps {\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Определяет список позиций, доступных для расположения выпадашки относительно `kebab`.\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n * @default ['bottom left', 'bottom right', 'top left', 'top right']. */\n positions?: PopupPositionsType[];\n positions2?: string;\n\n /** Задает максимальную высоту меню. */\n menuMaxHeight?: number | string;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n\n /** Добавляет иконку слева. */\n icon?: React.ReactNode;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const KebabDataTids = {\n caption: 'Kebab__caption',\n} as const;\n\nexport interface KebabState {\n anchor: Nullable<HTMLElement>;\n focusedByTab: boolean;\n}\n\ntype DefaultProps = Required<Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | 'disableAnimations'>>;\n\n/**\n * Кебаб-меню `Kebab` содержит действия с объектом.\n */\n\n@rootNode\n@withSize\nexport class Kebab extends React.Component<KebabProps, KebabState> {\n public static __KONTUR_REACT_UI__ = 'Kebab';\n public static displayName = 'Kebab';\n\n public static defaultProps: DefaultProps = {\n onOpen: () => undefined,\n onClose: () => undefined,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(Kebab.defaultProps);\n\n public state: KebabState = {\n focusedByTab: false,\n anchor: null,\n };\n\n private theme!: Theme;\n private size!: SizeProp;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n private listener: {\n remove: () => void;\n } = {\n remove: () => undefined,\n };\n\n public componentDidMount() {\n /** addListener'у нужен колбэк в аргумент */\n this.listener = LayoutEvents.addListener(() => undefined);\n }\n\n public componentWillUnmount() {\n this.listener.remove();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupMargin: theme.kebabMargin,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled } = this.props;\n const { positions, disableAnimations, onOpen, onClose } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props} {...getVisualStateDataAttributes({ disabled })}>\n <PopupMenu\n id={this.props.id}\n popupHasPin={false}\n preventIconsOffset={this.props.preventIconsOffset}\n positions={positions}\n onChangeMenuState={this.handleChangeMenuState}\n caption={this.renderCaption}\n disableAnimations={disableAnimations}\n menuMaxHeight={this.props.menuMaxHeight}\n onOpen={onOpen}\n onClose={onClose}\n popupMenuId={this.props.popupMenuId}\n aria-label={this.props['aria-label']}\n >\n {!disabled && this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n private renderCaption = (captionProps: PopupMenuCaptionProps) => {\n const { disabled } = this.getProps();\n const size = this.size;\n const handleCaptionKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled) {\n this.handleCaptionKeyDown(event, captionProps.openMenu);\n }\n };\n\n const handleCaptionClick = () => {\n if (!disabled) {\n captionProps.toggleMenu();\n }\n };\n\n return (\n <span\n role=\"button\"\n data-tid={KebabDataTids.caption}\n tabIndex={disabled ? -1 : 0}\n onClick={handleCaptionClick}\n onKeyDown={handleCaptionKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={cx(\n styles.kebab(this.theme),\n size === 'small' && styles.kebabSmall(this.theme),\n size === 'medium' && styles.kebabMedium(this.theme),\n size === 'large' && styles.kebabLarge(this.theme),\n captionProps.opened && styles.opened(this.theme),\n disabled && styles.disabled(),\n this.state.focusedByTab && styles.focused(this.theme),\n )}\n aria-describedby={this.props['aria-describedby']}\n >\n {this.renderIcon()}\n </span>\n );\n };\n\n private handleCaptionKeyDown = (\n e: React.KeyboardEvent<HTMLDivElement>,\n openMenu: PopupMenuCaptionProps['openMenu'],\n ) => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n openMenu(true);\n }\n };\n\n private handleChangeMenuState = (isOpened: boolean, restoreFocus: boolean): void => {\n this.setState({\n focusedByTab: !isOpened && restoreFocus,\n });\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n });\n };\n\n private renderIcon() {\n const { icon = <KebabIcon /> } = this.getProps();\n\n if (isElement(icon) && isKonturIcon(icon as ReactElement)) {\n const sizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.kebabIconSizeSmall),\n medium: parseInt(this.theme.kebabIconSizeMedium),\n large: parseInt(this.theme.kebabIconSizeLarge),\n };\n\n return React.cloneElement(icon as ReactElement, {\n size: icon.props.size ?? sizes[this.size],\n color: icon.props.color ?? this.theme.kebabIconColor,\n });\n }\n\n return icon;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactIs","_globalObject","_utils","_identifiers","LayoutEvents","_interopRequireWildcard","_keyListener","_PopupMenu","_ThemeContext","_currentEnvironment","_ThemeFactory","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_getVisualStateDataAttributes","_SizeDecorator","_Kebab2","_KebabIcon","_class","_Kebab","KebabDataTids","exports","caption","Kebab","rootNode","withSize","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","anchor","listener","remove","undefined","renderCaption","captionProps","_this$getProps","disabled","size","handleCaptionKeyDown","event","openMenu","handleCaptionClick","toggleMenu","default","createElement","role","tabIndex","onClick","onKeyDown","onFocus","handleFocus","onBlur","handleBlur","className","cx","styles","kebab","theme","kebabSmall","kebabMedium","kebabLarge","opened","focused","props","renderIcon","e","someKeys","isKeyEnter","isKeySpace","isKeyArrowVertical","preventDefault","handleChangeMenuState","isOpened","restoreFocus","setState","globalObject","requestAnimationFrame","keyListener","isTabPressed","_inheritsLoose2","_proto","prototype","componentDidMount","addListener","componentWillUnmount","render","_this2","ThemeContext","Consumer","Provider","value","ThemeFactory","create","popupMargin","kebabMargin","renderMain","_this$getProps2","positions","disableAnimations","onOpen","onClose","CommonWrapper","_extends2","rootNodeRef","setRootNode","getVisualStateDataAttributes","PopupMenu","id","popupHasPin","preventIconsOffset","onChangeMenuState","menuMaxHeight","popupMenuId","children","_this$getProps3","_this$getProps3$icon","icon","KebabIcon","isElement","isKonturIcon","_icon$props$size","_icon$props$color","sizes","small","parseInt","kebabIconSizeSmall","medium","kebabIconSizeMedium","large","kebabIconSizeLarge","React","cloneElement","color","kebabIconColor","Component","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["Kebab.tsx"],"sourcesContent":["import type { AriaAttributes, ReactElement, HTMLAttributes } from 'react';\nimport React from 'react';\nimport { isElement } from 'react-is';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKonturIcon } from '../../lib/utils';\nimport { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { PopupMenuCaptionProps, PopupMenuProps } from '../../internal/PopupMenu';\nimport { PopupMenu } from '../../internal/PopupMenu';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { PopupPositionsType } from '../../internal/Popup';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles } from './Kebab.styles';\nimport { KebabIcon } from './KebabIcon';\n\nexport interface KebabProps\n extends Pick<AriaAttributes, 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>,\n CommonProps {\n /** Размер кнопки. */\n size?: SizeProp;\n\n /** Список доступных позиций выпадающего меню относительно кнопки.\n * @default ['bottom left', 'bottom right', 'top left', 'top right'].\n */\n positions?: PopupPositionsType[];\n positions2?: string;\n\n /** Максимальная высота меню. */\n menuMaxHeight?: number | string;\n\n /** Блокирует кнопку. */\n disabled?: boolean;\n\n /** Отключает анимацию выпадающего меню. */\n disableAnimations?: boolean;\n\n /** Заменяет иконку кебаба у кнопки. */\n icon?: React.ReactNode;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const KebabDataTids = {\n caption: 'Kebab__caption',\n} as const;\n\nexport interface KebabState {\n anchor: Nullable<HTMLElement>;\n focusedByTab: boolean;\n}\n\ntype DefaultProps = Required<Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | 'disableAnimations'>>;\n\n/**\n * Кебаб-меню содержит действия с объектом.\n */\n@rootNode\n@withSize\nexport class Kebab extends React.Component<KebabProps, KebabState> {\n public static __KONTUR_REACT_UI__ = 'Kebab';\n public static displayName = 'Kebab';\n\n public static defaultProps: DefaultProps = {\n onOpen: () => undefined,\n onClose: () => undefined,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(Kebab.defaultProps);\n\n public state: KebabState = {\n focusedByTab: false,\n anchor: null,\n };\n\n private theme!: Theme;\n private size!: SizeProp;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n private listener: {\n remove: () => void;\n } = {\n remove: () => undefined,\n };\n\n public componentDidMount() {\n /** addListener'у нужен колбэк в аргумент */\n this.listener = LayoutEvents.addListener(() => undefined);\n }\n\n public componentWillUnmount() {\n this.listener.remove();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupMargin: theme.kebabMargin,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled } = this.props;\n const { positions, disableAnimations, onOpen, onClose } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props} {...getVisualStateDataAttributes({ disabled })}>\n <PopupMenu\n id={this.props.id}\n popupHasPin={false}\n preventIconsOffset={this.props.preventIconsOffset}\n positions={positions}\n onChangeMenuState={this.handleChangeMenuState}\n caption={this.renderCaption}\n disableAnimations={disableAnimations}\n menuMaxHeight={this.props.menuMaxHeight}\n onOpen={onOpen}\n onClose={onClose}\n popupMenuId={this.props.popupMenuId}\n aria-label={this.props['aria-label']}\n >\n {!disabled && this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n private renderCaption = (captionProps: PopupMenuCaptionProps) => {\n const { disabled } = this.getProps();\n const size = this.size;\n const handleCaptionKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled) {\n this.handleCaptionKeyDown(event, captionProps.openMenu);\n }\n };\n\n const handleCaptionClick = () => {\n if (!disabled) {\n captionProps.toggleMenu();\n }\n };\n\n return (\n <span\n role=\"button\"\n data-tid={KebabDataTids.caption}\n tabIndex={disabled ? -1 : 0}\n onClick={handleCaptionClick}\n onKeyDown={handleCaptionKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={cx(\n styles.kebab(this.theme),\n size === 'small' && styles.kebabSmall(this.theme),\n size === 'medium' && styles.kebabMedium(this.theme),\n size === 'large' && styles.kebabLarge(this.theme),\n captionProps.opened && styles.opened(this.theme),\n disabled && styles.disabled(),\n this.state.focusedByTab && styles.focused(this.theme),\n )}\n aria-describedby={this.props['aria-describedby']}\n >\n {this.renderIcon()}\n </span>\n );\n };\n\n private handleCaptionKeyDown = (\n e: React.KeyboardEvent<HTMLDivElement>,\n openMenu: PopupMenuCaptionProps['openMenu'],\n ) => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n openMenu(true);\n }\n };\n\n private handleChangeMenuState = (isOpened: boolean, restoreFocus: boolean): void => {\n this.setState({\n focusedByTab: !isOpened && restoreFocus,\n });\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n });\n };\n\n private renderIcon() {\n const { icon = <KebabIcon /> } = this.getProps();\n\n if (isElement(icon) && isKonturIcon(icon as ReactElement)) {\n const sizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.kebabIconSizeSmall),\n medium: parseInt(this.theme.kebabIconSizeMedium),\n large: parseInt(this.theme.kebabIconSizeLarge),\n };\n\n return React.cloneElement(icon as ReactElement, {\n size: icon.props.size ?? sizes[this.size],\n color: icon.props.color ?? this.theme.kebabIconColor,\n });\n }\n\n return icon;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,22 +8,22 @@ export type LoaderType = (typeof types)[number];
|
|
|
8
8
|
export interface LoaderProps extends CommonProps {
|
|
9
9
|
/** @ignore */
|
|
10
10
|
children?: React.ReactNode;
|
|
11
|
-
/**
|
|
11
|
+
/** Показывает лоадер.
|
|
12
12
|
* @default false */
|
|
13
13
|
active?: boolean;
|
|
14
|
-
/**
|
|
15
|
-
* @default "
|
|
14
|
+
/** Подпись под спиннером.
|
|
15
|
+
* @default ""
|
|
16
16
|
*/
|
|
17
17
|
caption?: SpinnerProps['caption'];
|
|
18
18
|
/** Задает компонент, заменяющий спиннер. */
|
|
19
19
|
component?: React.ReactNode;
|
|
20
|
-
/**
|
|
20
|
+
/** Размер спиннера и текста.
|
|
21
21
|
* @default normal. */
|
|
22
22
|
type?: LoaderType;
|
|
23
|
-
/**
|
|
23
|
+
/** Время в миллисекундах для показа вуали без спиннера.
|
|
24
24
|
* @default 300 */
|
|
25
25
|
delayBeforeSpinnerShow?: number;
|
|
26
|
-
/**
|
|
26
|
+
/** Минимальное время в миллисекундах для показа спиннера.
|
|
27
27
|
* @default 1000. */
|
|
28
28
|
minimalDelayBeforeSpinnerHide?: number;
|
|
29
29
|
}
|
|
@@ -40,9 +40,9 @@ export declare const LoaderDataTids: {
|
|
|
40
40
|
};
|
|
41
41
|
type DefaultProps = Required<Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>>;
|
|
42
42
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
43
|
+
* С помощью лоадера можно отобразить процесс выполнения задачи.
|
|
44
|
+
* Лоадер принимает в качестве дочернего элемента другой компонент или контент, который будет показан на экране.
|
|
45
|
+
* Когда происходит загрузка, поверх этого компонента или контента будет отображаться [Спиннер](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-spinner--docs).
|
|
46
46
|
*/
|
|
47
47
|
export declare class Loader extends React.Component<LoaderProps, LoaderState> {
|
|
48
48
|
static __KONTUR_REACT_UI__: string;
|
|
@@ -74,9 +74,9 @@ var LoaderDataTids = exports.LoaderDataTids = {
|
|
|
74
74
|
|
|
75
75
|
|
|
76
76
|
/**
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
77
|
+
* С помощью лоадера можно отобразить процесс выполнения задачи.
|
|
78
|
+
* Лоадер принимает в качестве дочернего элемента другой компонент или контент, который будет показан на экране.
|
|
79
|
+
* Когда происходит загрузка, поверх этого компонента или контента будет отображаться [Спиннер](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-spinner--docs).
|
|
80
80
|
*/var
|
|
81
81
|
|
|
82
82
|
Loader = exports.Loader = (0, _rootNode.rootNode)(_class = (_Loader = /*#__PURE__*/function (_React$Component) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","LayoutEvents","_interopRequireWildcard","_Spinner","_ThemeContext","_ZIndex","_CommonWrapper","_Emotion","_currentEnvironment","_taskWithDelayAndMinimalDuration","_tabbableHelpers","_rootNode","_getDOMRect2","_createPropsGetter","_Loader2","_class","_Loader","types","LoaderDataTids","exports","idle","veil","spinner","Loader","rootNode","_React$Component","props","_this","call","getProps","createPropsGetter","defaultProps","childrenRef","element","childrenContainerNode","spinnerRef","spinnerContainerNode","checkSpinnerPosition","isBrowser","globalObject","_getDOMRect","getDOMRect","containerTop","top","containerRight","right","containerBottom","bottom","containerLeft","left","containerHeight","height","containerWidth","width","windowHeight","innerHeight","windowWidth","innerWidth","setState","isStickySpinner","spinnerStyle","Math","abs","spinnerHeight","spinnerNode","disableChildrenFocus","childrenObserver","makeObservable","tabbableElements","getTabbableElements","forEach","el","hasAttribute","setAttribute","tabIndex","toString","enableChildrenFocus","_globalObject$documen","_globalObject$documen2","makeUnobservable","Array","from","document","querySelectorAll","_el$getAttribute","getAttribute","removeAttribute","target","MutationObserver","config","childList","subtree","observer","observe","_this$childrenObserve","disconnect","state","isSpinnerVisible","isLoaderActive","spinnerTask","TaskWithDelayAndMinimalDuration","delayBeforeTaskStart","delayBeforeSpinnerShow","durationOfTask","minimalDelayBeforeSpinnerHide","taskStartCallback","taskStopCallback","_inheritsLoose2","default","_proto","prototype","componentDidMount","active","start","layoutEvents","addListener","debounce","componentDidUpdate","prevProps","prevState","component","_this$getProps","update","stop","componentWillUnmount","remove","clearTask","getDerivedStateFromProps","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","_cx","_this$props","caption","type","CommonWrapper","_extends2","rootNodeRef","setRootNode","className","styles","loader","ZIndex","applyZIndex","coverChildren","style","wrapperRef","children","cx","renderSpinner","_cx2","_this3","spinnerContainer","spinnerContainerSticky","spinnerComponentWrapper","ref","undefined","Spinner","React","Component","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["Loader.tsx"],"sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport type { AnyObject } from '../../lib/utils';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { SpinnerProps } from '../Spinner';\nimport { Spinner } from '../Spinner';\nimport type { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Loader.styles';\n\nconst types = ['mini', 'normal', 'big'] as const;\n\nexport type LoaderType = (typeof types)[number];\n\nexport interface LoaderProps extends CommonProps {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Задает состояние лоадера.\n * @default false */\n active?: boolean;\n\n /** Задает подпись под спиннером.\n * @default \"Загрузка\"\n */\n caption?: SpinnerProps['caption'];\n\n /** Задает компонент, заменяющий спиннер. */\n component?: React.ReactNode;\n\n /** Задает размер спиннера и текста.\n * @default normal. */\n type?: LoaderType;\n\n /** Устанавливает время в миллисекундах для показа вуали без спиннера.\n * @default 300 */\n delayBeforeSpinnerShow?: number;\n\n /** Устанавливает минимальное время в миллисекундах для показа спиннера.\n * @default 1000. */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: AnyObject;\n}\n\nexport const LoaderDataTids = {\n idle: 'Loader__Idle',\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>\n>;\n\n/**\n * Компонент `Loader` принимает внутрь себя контент, поверх которого в активном состоянии `Loader`'а будет отрисован спиннер.\n *\n * Если вам нужен только сам спиннер без дополнительного функционала - используйте компонент Spinner.\n */\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n public static displayName = 'Loader';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n }\n\n public componentDidMount() {\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10));\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\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 private renderMain() {\n const { caption, component } = this.props;\n const type = this.getProps().type;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n className={styles.loader()}\n data-tid={this.props['data-tid'] || (isLoaderActive ? LoaderDataTids.veil : LoaderDataTids.idle)}\n >\n <ZIndex\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n className={cx({\n [styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: LoaderType, caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={cx(styles.spinnerContainer(), { [styles.spinnerContainerSticky()]: this.state.isStickySpinner })}\n style={this.state.spinnerStyle}\n >\n <div\n className={styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode || !isBrowser(globalObject)) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = globalObject.innerHeight;\n const windowWidth = globalObject.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n // NOTE: NodeList doesn't support 'forEach' method in IE11 and other older browsers\n Array.from(globalObject.document?.querySelectorAll('[origin-tabindex]') ?? []).forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target || !globalObject.MutationObserver) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new globalObject.MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"],"mappings":"ocAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;;;AAGA,IAAAG,YAAA,GAAAC,uBAAA,CAAAJ,OAAA;;AAEA,IAAAK,QAAA,GAAAL,OAAA;;AAEA,IAAAM,aAAA,GAAAN,OAAA;;AAEA,IAAAO,OAAA,GAAAP,OAAA;;AAEA,IAAAQ,cAAA,GAAAR,OAAA;AACA,IAAAS,QAAA,GAAAT,OAAA;AACA,IAAAU,mBAAA,GAAAV,OAAA;AACA,IAAAW,gCAAA,GAAAX,OAAA;AACA,IAAAY,gBAAA,GAAAZ,OAAA;;AAEA,IAAAa,SAAA,GAAAb,OAAA;AACA,IAAAc,YAAA,GAAAd,OAAA;AACA,IAAAe,kBAAA,GAAAf,OAAA;;AAEA,IAAAgB,QAAA,GAAAhB,OAAA,oBAAyC,IAAAiB,MAAA,EAAAC,OAAA;;AAEzC,IAAMC,KAAK,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCzC,IAAMC,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG;EAC5BE,IAAI,EAAE,cAAc;EACpBC,IAAI,EAAE,cAAc;EACpBC,OAAO,EAAE;AACX,CAAU;;;;;;AAMV;AACA;AACA;AACA;AACA,GAJA;;AAMaC,MAAM,GAAAJ,OAAA,CAAAI,MAAA,OADlBC,kBAAQ,EAAAT,MAAA,IAAAC,OAAA,0BAAAS,gBAAA;;;;;;;;;;;;;;;;;;;;;;;EAwBP,SAAAF,OAAYG,KAAkB,EAAE,KAAAC,KAAA;IAC9BA,KAAA,GAAAF,gBAAA,CAAAG,IAAA,OAAMF,KAAK,CAAC,SAACC,KAAA,CAbPE,QAAQ,GAAG,IAAAC,oCAAiB,EAACP,MAAM,CAACQ,YAAY,CAAC,CAAAJ,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiJjDK,WAAW,GAAG,UAACC,OAA8B,EAAK;MACxDN,KAAA,CAAKO,qBAAqB,GAAGD,OAAO;IACtC,CAAC,CAAAN,KAAA;;IAEOQ,UAAU,GAAG,UAACF,OAA8B,EAAK;MACvDN,KAAA,CAAKS,oBAAoB,GAAGH,OAAO;IACrC,CAAC,CAAAN,KAAA;;;;;;;;;;;;;;;;;;;;;IAqBOU,oBAAoB,GAAG,YAAM;MACnC,IAAI,CAACV,KAAA,CAAKS,oBAAoB,IAAI,CAAC,IAAAE,uBAAS,EAACC,0BAAY,CAAC,EAAE;QAC1D;MACF;;MAEA,IAAAC,WAAA;;;;;;;QAOI,IAAAC,uBAAU,EAACd,KAAA,CAAKS,oBAAoB,CAAC,CANlCM,YAAY,GAAAF,WAAA,CAAjBG,GAAG,CACIC,cAAc,GAAAJ,WAAA,CAArBK,KAAK,CACGC,eAAe,GAAAN,WAAA,CAAvBO,MAAM,CACAC,aAAa,GAAAR,WAAA,CAAnBS,IAAI,CACIC,eAAe,GAAAV,WAAA,CAAvBW,MAAM,CACCC,cAAc,GAAAZ,WAAA,CAArBa,KAAK;;MAGP,IAAMC,YAAY,GAAGf,0BAAY,CAACgB,WAAW;MAC7C,IAAMC,WAAW,GAAGjB,0BAAY,CAACkB,UAAU;;MAE3C;MACA;MACA,IAAIH,YAAY,IAAIJ,eAAe,IAAIM,WAAW,IAAIJ,cAAc,EAAE;QACpEzB,KAAA,CAAK+B,QAAQ,CAAC;UACZC,eAAe,EAAE,KAAK;UACtBC,YAAY,EAAE,CAAC;QACjB,CAAC,CAAC;QACF;MACF;;MAEA,IAAMA,YAKL;;;;;MAAG;QACFjB,GAAG,EAAE,EAAE;QACPE,KAAK,EAAE,CAAC;QACRE,MAAM,EAAE,EAAE;QACVE,IAAI,EAAE;MACR,CAAC;;MAED;MACA;MACA;MACA,IAAIP,YAAY,GAAG,CAAC,EAAE;QACpBkB,YAAY,CAACjB,GAAG,GAAGD,YAAY,GAAG,EAAE;MACtC;;MAEA;MACA;MACA,IAAII,eAAe,GAAGQ,YAAY,EAAE;QAClCM,YAAY,CAACb,MAAM,GAAGc,IAAI,CAACC,GAAG,CAACR,YAAY,GAAGR,eAAe,CAAC,GAAG,EAAE;MACrE;;MAEA;MACA;;MAEA,IAAMiB,aAAa,GAAG,IAAAtB,uBAAU,EAACd,KAAA,CAAKqC,WAAW,CAAC,CAACb,MAAM;;MAEzD,IAAIY,aAAa,IAAIH,YAAY,CAACb,MAAM,IAAIO,YAAY,GAAGS,aAAa,EAAE;QACxE,OAAOH,YAAY,CAACjB,GAAG;MACzB;;MAEA;MACA;MACA;MACA,IAAIK,aAAa,GAAG,CAAC,EAAE;QACrBY,YAAY,CAACX,IAAI,GAAGD,aAAa;MACnC;;MAEA;MACA;MACA,IAAIJ,cAAc,GAAGY,WAAW,EAAE;QAChCI,YAAY,CAACf,KAAK,GAAGW,WAAW,GAAGZ,cAAc;MACnD;;MAEAjB,KAAA,CAAK+B,QAAQ,CAAC;QACZC,eAAe,EAAE,IAAI;QACrBC,YAAY,EAAZA;MACF,CAAC,CAAC;IACJ,CAAC,CAAAjC,KAAA;;IAEOsC,oBAAoB,GAAG,YAAM;MACnC,IAAI,CAACtC,KAAA,CAAKuC,gBAAgB,EAAE;QAC1BvC,KAAA,CAAKwC,cAAc,CAAC,CAAC;MACvB;MACA,IAAMC,gBAAgB,GAAG,IAAAC,oCAAmB,EAAC1C,KAAA,CAAKO,qBAAqB,CAAC;MACxEkC,gBAAgB,CAACE,OAAO,CAAC,UAACC,EAAE,EAAK;QAC/B,IAAI,CAACA,EAAE,CAACC,YAAY,CAAC,iBAAiB,CAAC,EAAE;UACvCD,EAAE,CAACE,YAAY,CAAC,iBAAiB,EAAEF,EAAE,CAACG,QAAQ,CAACC,QAAQ,CAAC,CAAC,CAAC;QAC5D;QACAJ,EAAE,CAACG,QAAQ,GAAG,CAAC,CAAC;MAClB,CAAC,CAAC;IACJ,CAAC,CAAA/C,KAAA;;IAEOiD,mBAAmB,GAAG,YAAM,KAAAC,qBAAA,EAAAC,sBAAA;MAClCnD,KAAA,CAAKoD,gBAAgB,CAAC,CAAC;MACvB;MACAC,KAAK,CAACC,IAAI,EAAAJ,qBAAA,IAAAC,sBAAA,GAACvC,0BAAY,CAAC2C,QAAQ,qBAArBJ,sBAAA,CAAuBK,gBAAgB,CAAC,mBAAmB,CAAC,YAAAN,qBAAA,GAAI,EAAE,CAAC,CAACP,OAAO,CAAC,UAACC,EAAE,EAAK,KAAAa,gBAAA;QAC7Fb,EAAE,CAACE,YAAY,CAAC,UAAU,GAAAW,gBAAA,GAAEb,EAAE,CAACc,YAAY,CAAC,iBAAiB,CAAC,YAAAD,gBAAA,GAAI,GAAG,CAAC;QACtEb,EAAE,CAACe,eAAe,CAAC,iBAAiB,CAAC;MACvC,CAAC,CAAC;IACJ,CAAC,CAAA3D,KAAA;;IAEOwC,cAAc,GAAG,YAAM;MAC7B,IAAMoB,MAAM,GAAG5D,KAAA,CAAKO,qBAAqB;MACzC,IAAI,CAACqD,MAAM,IAAI,CAAChD,0BAAY,CAACiD,gBAAgB,EAAE;QAC7C;MACF;MACA,IAAMC,MAAM,GAAG;QACbC,SAAS,EAAE,IAAI;QACfC,OAAO,EAAE;MACX,CAAC;MACD,IAAMC,QAAQ,GAAG,IAAIrD,0BAAY,CAACiD,gBAAgB,CAAC7D,KAAA,CAAKsC,oBAAoB,CAAC;MAC7E2B,QAAQ,CAACC,OAAO,CAACN,MAAM,EAAEE,MAAM,CAAC;MAChC9D,KAAA,CAAKuC,gBAAgB,GAAG0B,QAAQ;IAClC,CAAC,CAAAjE,KAAA;;IAEOoD,gBAAgB,GAAG,YAAM,KAAAe,qBAAA;MAC/B,CAAAA,qBAAA,GAAAnE,KAAA,CAAKuC,gBAAgB,aAArB4B,qBAAA,CAAuBC,UAAU,CAAC,CAAC;MACnCpE,KAAA,CAAKuC,gBAAgB,GAAG,IAAI;IAC9B,CAAC,CApRCvC,KAAA,CAAKS,oBAAoB,GAAG,IAAI,CAChCT,KAAA,CAAKO,qBAAqB,GAAG,IAAI,CACjCP,KAAA,CAAKuC,gBAAgB,GAAG,IAAI,CAC5BvC,KAAA,CAAKqC,WAAW,GAAG,IAAI,CAEvBrC,KAAA,CAAKqE,KAAK,GAAG,EACXrC,eAAe,EAAE,KAAK,EACtBsC,gBAAgB,EAAE,KAAK,EACvBC,cAAc,EAAE,KAAK,CACvB,CAAC,CAEDvE,KAAA,CAAKwE,WAAW,GAAG,IAAIC,gEAA+B,CAAC,EACrDC,oBAAoB,EAAE1E,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAACyE,sBAAsB,EAC5DC,cAAc,EAAE5E,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAAC2E,6BAA6B,EAC7DC,iBAAiB,EAAE,SAAAA,kBAAA,UAAM9E,KAAA,CAAK+B,QAAQ,CAAC,EAAEuC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,IAClES,gBAAgB,EAAE,SAAAA,iBAAA,UAAM/E,KAAA,CAAK+B,QAAQ,CAAC,EAAEuC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,GACpE,CAAC,CAAC,CAAC,OAAAtE,KAAA,CACL,CAAC,IAAAgF,eAAA,CAAAC,OAAA,EAAArF,MAAA,EAAAE,gBAAA,MAAAoF,MAAA,GAAAtF,MAAA,CAAAuF,SAAA,CAAAD,MAAA,CAEME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAMC,MAAM,GAAG,IAAI,CAACnF,QAAQ,CAAC,CAAC,CAACmF,MAAM,CACrC,IAAI,CAAC3E,oBAAoB,CAAC,CAAC,CAC3B2E,MAAM,IAAI,IAAI,CAACb,WAAW,CAACc,KAAK,CAAC,CAAC,CAClC,IAAI,CAACC,YAAY,GAAGjH,YAAY,CAACkH,WAAW,CAAC,IAAAC,eAAQ,EAAC,IAAI,CAAC/E,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAErF,IAAI2E,MAAM,EAAE,CACV,IAAI,CAAC/C,oBAAoB,CAAC,CAAC,CAC7B,CACF,CAAC,CAAA4C,MAAA,CAEMQ,kBAAkB,GAAzB,SAAAA,mBAA0BC,SAAgC,EAAEC,SAAgC,EAAE,CAC5F,IAAQC,SAAS,GAAK,IAAI,CAAC9F,KAAK,CAAxB8F,SAAS,CACjB,IAAAC,cAAA,GAA0E,IAAI,CAAC5F,QAAQ,CAAC,CAAC,CAAjFmF,MAAM,GAAAS,cAAA,CAANT,MAAM,CAAEV,sBAAsB,GAAAmB,cAAA,CAAtBnB,sBAAsB,CAAEE,6BAA6B,GAAAiB,cAAA,CAA7BjB,6BAA6B,CACrE,IAAQN,cAAc,GAAK,IAAI,CAACF,KAAK,CAA7BE,cAAc,CAEtB,IAAKc,MAAM,IAAI,CAACM,SAAS,CAACN,MAAM,IAAKM,SAAS,CAACE,SAAS,KAAKA,SAAS,EAAE,CACtE,IAAI,CAACnF,oBAAoB,CAAC,CAAC,CAC7B,CAEA,IACEiE,sBAAsB,KAAKgB,SAAS,CAAChB,sBAAsB,IAC3DE,6BAA6B,KAAKc,SAAS,CAACd,6BAA6B,EACzE,CACA,IAAI,CAACL,WAAW,CAACuB,MAAM,CAAC,EACtBrB,oBAAoB,EAAEC,sBAAsB,EAC5CC,cAAc,EAAEC,6BAA6B,CAC/C,CAAC,CAAC,CACJ,CAEA,IAAIQ,MAAM,KAAKM,SAAS,CAACN,MAAM,EAAE,CAC/BA,MAAM,GAAG,IAAI,CAACb,WAAW,CAACc,KAAK,CAAC,CAAC,GAAG,IAAI,CAACd,WAAW,CAACwB,IAAI,CAAC,CAAC,CAC7D,CAEA,IAAIzB,cAAc,KAAKqB,SAAS,CAACrB,cAAc,EAAE,CAC/C,IAAIA,cAAc,EAAE,CAClB,IAAI,CAACjC,oBAAoB,CAAC,CAAC,CAC7B,CAAC,MAAM,CACL,IAAI,CAACW,mBAAmB,CAAC,CAAC,CAC5B,CACF,CACF,CAAC,CAAAiC,MAAA,CAEMe,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,CAC5B,IAAI,CAAC7C,gBAAgB,CAAC,CAAC,CACvB,IAAI,IAAI,CAACmC,YAAY,EAAE,CACrB,IAAI,CAACA,YAAY,CAACW,MAAM,CAAC,CAAC,CAC5B,CACA,IAAI,CAAC1B,WAAW,CAAC2B,SAAS,CAAC,CAAC,CAC9B,CAAC,CAAAvG,MAAA,CAEawG,wBAAwB,GAAtC,SAAAA,yBAAuCrG,KAAkB,EAAEsE,KAAkB,EAAwB,CACnG,IAAItE,KAAK,CAACsF,MAAM,IAAI,CAAChB,KAAK,CAACE,cAAc,EAAE,CACzC,OAAO,EACLA,cAAc,EAAE,IAAI,CACtB,CAAC,CACH,CACA,IAAIF,KAAK,CAACE,cAAc,IAAI,EAAExE,KAAK,CAACsF,MAAM,IAAIhB,KAAK,CAACC,gBAAgB,CAAC,EAAE,CACrE,OAAO,EACLC,cAAc,EAAE,KAAK,CACvB,CAAC,CACH,CAEA,OAAOF,KAAK,CACd,CAAC,CAAAa,MAAA,CAEMmB,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,oBACErI,MAAA,CAAAgH,OAAA,CAAAsB,aAAA,CAAC9H,aAAA,CAAA+H,YAAY,CAACC,QAAQ,QACnB,UAACC,KAAK,EAAK,CACVJ,MAAI,CAACI,KAAK,GAAGA,KAAK,CAClB,OAAOJ,MAAI,CAACK,UAAU,CAAC,CAAC,CAC1B,CACqB,CAAC,CAE5B,CAAC,CAAAzB,MAAA,CAEOyB,UAAU,GAAlB,SAAAA,WAAA,EAAqB,KAAAC,GAAA,CACnB,IAAAC,WAAA,GAA+B,IAAI,CAAC9G,KAAK,CAAjC+G,OAAO,GAAAD,WAAA,CAAPC,OAAO,CAAEjB,SAAS,GAAAgB,WAAA,CAAThB,SAAS,CAC1B,IAAMkB,IAAI,GAAG,IAAI,CAAC7G,QAAQ,CAAC,CAAC,CAAC6G,IAAI,CACjC,IAAQxC,cAAc,GAAK,IAAI,CAACF,KAAK,CAA7BE,cAAc,CAEtB,oBACEtG,MAAA,CAAAgH,OAAA,CAAAsB,aAAA,CAAC5H,cAAA,CAAAqI,aAAa,MAAAC,SAAA,CAAAhC,OAAA,IAACiC,WAAW,EAAE,IAAI,CAACC,WAAY,IAAK,IAAI,CAACpH,KAAK,gBAC1D9B,MAAA,CAAAgH,OAAA,CAAAsB,aAAA,UACEa,SAAS,EAAEC,eAAM,CAACC,MAAM,CAAC,CAAE,EAC3B,YAAU,IAAI,CAACvH,KAAK,CAAC,UAAU,CAAC,KAAKwE,cAAc,GAAGhF,cAAc,CAACG,IAAI,GAAGH,cAAc,CAACE,IAAI,CAAE,iBAEjGxB,MAAA,CAAAgH,OAAA,CAAAsB,aAAA,CAAC7H,OAAA,CAAA6I,MAAM,IACLC,WAAW,EAAEjD,cAAe,EAC5BkD,aAAa,EAAElD,cAAe,EAC9BmD,KAAK,EAAE,EAAElG,MAAM,EAAE,MAAM,CAAC,CAAE,EAC1BmG,UAAU,EAAE,IAAI,CAACtH,WAAY,IAE5B,IAAI,CAACN,KAAK,CAAC6H,QACN,CAAC,EACRrD,cAAc,iBACbtG,MAAA,CAAAgH,OAAA,CAAAsB,aAAA,CAAC7H,OAAA,CAAA6I,MAAM,IACLI,UAAU,EAAE,IAAI,CAACnH,UAAW,EAC5B4G,SAAS,EAAE,IAAAS,WAAE,GAAAjB,GAAA,OAAAA,GAAA,CACVS,eAAM,CAAChC,MAAM,CAAC,IAAI,CAACqB,KAAK,CAAC,IAAGnC,cAAc,EAAAqC,GAAA,CAC5C,CAAE,IAEF,IAAI,CAACvC,KAAK,CAACC,gBAAgB,IAAI,IAAI,CAACwD,aAAa,CAACf,IAAI,EAAED,OAAO,EAAEjB,SAAS,CACrE,CAEP,CACQ,CAAC,CAEpB,CAAC,CAAAX,MAAA,CAUO4C,aAAa,GAArB,SAAAA,cAAsBf,IAAiB,EAAED,OAAyB,EAAEjB,SAA2B,EAAE,KAAAkC,IAAA,CAAAC,MAAA,QAC/F,oBACE/J,MAAA,CAAAgH,OAAA,CAAAsB,aAAA,WACE,YAAUhH,cAAc,CAACI,OAAQ,EACjCyH,SAAS,EAAE,IAAAS,WAAE,EAACR,eAAM,CAACY,gBAAgB,CAAC,CAAC,GAAAF,IAAA,OAAAA,IAAA,CAAKV,eAAM,CAACa,sBAAsB,CAAC,CAAC,IAAG,IAAI,CAAC7D,KAAK,CAACrC,eAAe,EAAA+F,IAAA,CAAE,CAAE,EAC5GL,KAAK,EAAE,IAAI,CAACrD,KAAK,CAACpC,YAAa,iBAE/BhE,MAAA,CAAAgH,OAAA,CAAAsB,aAAA,UACEa,SAAS,EAAEC,eAAM,CAACc,uBAAuB,CAAC,CAAE,EAC5CC,GAAG,EAAE,SAAAA,IAAC9H,OAAO,EAAK,CAChB0H,MAAI,CAAC3F,WAAW,GAAG/B,OAAO,CAC5B,CAAE,IAEDuF,SAAS,KAAKwC,SAAS,GAAGxC,SAAS,gBAAG5H,MAAA,CAAAgH,OAAA,CAAAsB,aAAA,CAAC/H,QAAA,CAAA8J,OAAO,IAACvB,IAAI,EAAEA,IAAK,EAACD,OAAO,EAAEA,OAAQ,EAAE,CAC5E,CACD,CAAC,CAEX,CAAC,QAAAlH,MAAA,GArLyB2I,cAAK,CAACC,SAAS,GAAAnJ,OAAA,CAC3BoJ,mBAAmB,GAAG,QAAQ,EAAApJ,OAAA,CAC9BqJ,WAAW,GAAG,QAAQ,EAAArJ,OAAA,CAEtBe,YAAY,GAAiB,EACzC2G,IAAI,EAAE,QAAQ,EACd1B,MAAM,EAAE,KAAK,EACbV,sBAAsB,EAAEgE,6BAAS,GAAG,CAAC,GAAG,GAAG,EAC3C9D,6BAA6B,EAAE8D,6BAAS,GAAG,CAAC,GAAG,IAAI,CACrD,CAAC,EAAAtJ,OAAA,MAAAD,MAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","LayoutEvents","_interopRequireWildcard","_Spinner","_ThemeContext","_ZIndex","_CommonWrapper","_Emotion","_currentEnvironment","_taskWithDelayAndMinimalDuration","_tabbableHelpers","_rootNode","_getDOMRect2","_createPropsGetter","_Loader2","_class","_Loader","types","LoaderDataTids","exports","idle","veil","spinner","Loader","rootNode","_React$Component","props","_this","call","getProps","createPropsGetter","defaultProps","childrenRef","element","childrenContainerNode","spinnerRef","spinnerContainerNode","checkSpinnerPosition","isBrowser","globalObject","_getDOMRect","getDOMRect","containerTop","top","containerRight","right","containerBottom","bottom","containerLeft","left","containerHeight","height","containerWidth","width","windowHeight","innerHeight","windowWidth","innerWidth","setState","isStickySpinner","spinnerStyle","Math","abs","spinnerHeight","spinnerNode","disableChildrenFocus","childrenObserver","makeObservable","tabbableElements","getTabbableElements","forEach","el","hasAttribute","setAttribute","tabIndex","toString","enableChildrenFocus","_globalObject$documen","_globalObject$documen2","makeUnobservable","Array","from","document","querySelectorAll","_el$getAttribute","getAttribute","removeAttribute","target","MutationObserver","config","childList","subtree","observer","observe","_this$childrenObserve","disconnect","state","isSpinnerVisible","isLoaderActive","spinnerTask","TaskWithDelayAndMinimalDuration","delayBeforeTaskStart","delayBeforeSpinnerShow","durationOfTask","minimalDelayBeforeSpinnerHide","taskStartCallback","taskStopCallback","_inheritsLoose2","default","_proto","prototype","componentDidMount","active","start","layoutEvents","addListener","debounce","componentDidUpdate","prevProps","prevState","component","_this$getProps","update","stop","componentWillUnmount","remove","clearTask","getDerivedStateFromProps","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","_cx","_this$props","caption","type","CommonWrapper","_extends2","rootNodeRef","setRootNode","className","styles","loader","ZIndex","applyZIndex","coverChildren","style","wrapperRef","children","cx","renderSpinner","_cx2","_this3","spinnerContainer","spinnerContainerSticky","spinnerComponentWrapper","ref","undefined","Spinner","React","Component","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["Loader.tsx"],"sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport type { AnyObject } from '../../lib/utils';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { SpinnerProps } from '../Spinner';\nimport { Spinner } from '../Spinner';\nimport type { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Loader.styles';\n\nconst types = ['mini', 'normal', 'big'] as const;\n\nexport type LoaderType = (typeof types)[number];\n\nexport interface LoaderProps extends CommonProps {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Показывает лоадер.\n * @default false */\n active?: boolean;\n\n /** Подпись под спиннером.\n * @default \"\"\n */\n caption?: SpinnerProps['caption'];\n\n /** Задает компонент, заменяющий спиннер. */\n component?: React.ReactNode;\n\n /** Размер спиннера и текста.\n * @default normal. */\n type?: LoaderType;\n\n /** Время в миллисекундах для показа вуали без спиннера.\n * @default 300 */\n delayBeforeSpinnerShow?: number;\n\n /** Минимальное время в миллисекундах для показа спиннера.\n * @default 1000. */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: AnyObject;\n}\n\nexport const LoaderDataTids = {\n idle: 'Loader__Idle',\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>\n>;\n\n/**\n * С помощью лоадера можно отобразить процесс выполнения задачи.\n * Лоадер принимает в качестве дочернего элемента другой компонент или контент, который будет показан на экране.\n * Когда происходит загрузка, поверх этого компонента или контента будет отображаться [Спиннер](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-spinner--docs).\n */\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n public static displayName = 'Loader';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n }\n\n public componentDidMount() {\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10));\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\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 private renderMain() {\n const { caption, component } = this.props;\n const type = this.getProps().type;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n className={styles.loader()}\n data-tid={this.props['data-tid'] || (isLoaderActive ? LoaderDataTids.veil : LoaderDataTids.idle)}\n >\n <ZIndex\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n className={cx({\n [styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: LoaderType, caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={cx(styles.spinnerContainer(), { [styles.spinnerContainerSticky()]: this.state.isStickySpinner })}\n style={this.state.spinnerStyle}\n >\n <div\n className={styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode || !isBrowser(globalObject)) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = globalObject.innerHeight;\n const windowWidth = globalObject.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n // NOTE: NodeList doesn't support 'forEach' method in IE11 and other older browsers\n Array.from(globalObject.document?.querySelectorAll('[origin-tabindex]') ?? []).forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target || !globalObject.MutationObserver) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new globalObject.MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"],"mappings":"ocAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;;;AAGA,IAAAG,YAAA,GAAAC,uBAAA,CAAAJ,OAAA;;AAEA,IAAAK,QAAA,GAAAL,OAAA;;AAEA,IAAAM,aAAA,GAAAN,OAAA;;AAEA,IAAAO,OAAA,GAAAP,OAAA;;AAEA,IAAAQ,cAAA,GAAAR,OAAA;AACA,IAAAS,QAAA,GAAAT,OAAA;AACA,IAAAU,mBAAA,GAAAV,OAAA;AACA,IAAAW,gCAAA,GAAAX,OAAA;AACA,IAAAY,gBAAA,GAAAZ,OAAA;;AAEA,IAAAa,SAAA,GAAAb,OAAA;AACA,IAAAc,YAAA,GAAAd,OAAA;AACA,IAAAe,kBAAA,GAAAf,OAAA;;AAEA,IAAAgB,QAAA,GAAAhB,OAAA,oBAAyC,IAAAiB,MAAA,EAAAC,OAAA;;AAEzC,IAAMC,KAAK,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCzC,IAAMC,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG;EAC5BE,IAAI,EAAE,cAAc;EACpBC,IAAI,EAAE,cAAc;EACpBC,OAAO,EAAE;AACX,CAAU;;;;;;AAMV;AACA;AACA;AACA;AACA,GAJA;;AAMaC,MAAM,GAAAJ,OAAA,CAAAI,MAAA,OADlBC,kBAAQ,EAAAT,MAAA,IAAAC,OAAA,0BAAAS,gBAAA;;;;;;;;;;;;;;;;;;;;;;;EAwBP,SAAAF,OAAYG,KAAkB,EAAE,KAAAC,KAAA;IAC9BA,KAAA,GAAAF,gBAAA,CAAAG,IAAA,OAAMF,KAAK,CAAC,SAACC,KAAA,CAbPE,QAAQ,GAAG,IAAAC,oCAAiB,EAACP,MAAM,CAACQ,YAAY,CAAC,CAAAJ,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiJjDK,WAAW,GAAG,UAACC,OAA8B,EAAK;MACxDN,KAAA,CAAKO,qBAAqB,GAAGD,OAAO;IACtC,CAAC,CAAAN,KAAA;;IAEOQ,UAAU,GAAG,UAACF,OAA8B,EAAK;MACvDN,KAAA,CAAKS,oBAAoB,GAAGH,OAAO;IACrC,CAAC,CAAAN,KAAA;;;;;;;;;;;;;;;;;;;;;IAqBOU,oBAAoB,GAAG,YAAM;MACnC,IAAI,CAACV,KAAA,CAAKS,oBAAoB,IAAI,CAAC,IAAAE,uBAAS,EAACC,0BAAY,CAAC,EAAE;QAC1D;MACF;;MAEA,IAAAC,WAAA;;;;;;;QAOI,IAAAC,uBAAU,EAACd,KAAA,CAAKS,oBAAoB,CAAC,CANlCM,YAAY,GAAAF,WAAA,CAAjBG,GAAG,CACIC,cAAc,GAAAJ,WAAA,CAArBK,KAAK,CACGC,eAAe,GAAAN,WAAA,CAAvBO,MAAM,CACAC,aAAa,GAAAR,WAAA,CAAnBS,IAAI,CACIC,eAAe,GAAAV,WAAA,CAAvBW,MAAM,CACCC,cAAc,GAAAZ,WAAA,CAArBa,KAAK;;MAGP,IAAMC,YAAY,GAAGf,0BAAY,CAACgB,WAAW;MAC7C,IAAMC,WAAW,GAAGjB,0BAAY,CAACkB,UAAU;;MAE3C;MACA;MACA,IAAIH,YAAY,IAAIJ,eAAe,IAAIM,WAAW,IAAIJ,cAAc,EAAE;QACpEzB,KAAA,CAAK+B,QAAQ,CAAC;UACZC,eAAe,EAAE,KAAK;UACtBC,YAAY,EAAE,CAAC;QACjB,CAAC,CAAC;QACF;MACF;;MAEA,IAAMA,YAKL;;;;;MAAG;QACFjB,GAAG,EAAE,EAAE;QACPE,KAAK,EAAE,CAAC;QACRE,MAAM,EAAE,EAAE;QACVE,IAAI,EAAE;MACR,CAAC;;MAED;MACA;MACA;MACA,IAAIP,YAAY,GAAG,CAAC,EAAE;QACpBkB,YAAY,CAACjB,GAAG,GAAGD,YAAY,GAAG,EAAE;MACtC;;MAEA;MACA;MACA,IAAII,eAAe,GAAGQ,YAAY,EAAE;QAClCM,YAAY,CAACb,MAAM,GAAGc,IAAI,CAACC,GAAG,CAACR,YAAY,GAAGR,eAAe,CAAC,GAAG,EAAE;MACrE;;MAEA;MACA;;MAEA,IAAMiB,aAAa,GAAG,IAAAtB,uBAAU,EAACd,KAAA,CAAKqC,WAAW,CAAC,CAACb,MAAM;;MAEzD,IAAIY,aAAa,IAAIH,YAAY,CAACb,MAAM,IAAIO,YAAY,GAAGS,aAAa,EAAE;QACxE,OAAOH,YAAY,CAACjB,GAAG;MACzB;;MAEA;MACA;MACA;MACA,IAAIK,aAAa,GAAG,CAAC,EAAE;QACrBY,YAAY,CAACX,IAAI,GAAGD,aAAa;MACnC;;MAEA;MACA;MACA,IAAIJ,cAAc,GAAGY,WAAW,EAAE;QAChCI,YAAY,CAACf,KAAK,GAAGW,WAAW,GAAGZ,cAAc;MACnD;;MAEAjB,KAAA,CAAK+B,QAAQ,CAAC;QACZC,eAAe,EAAE,IAAI;QACrBC,YAAY,EAAZA;MACF,CAAC,CAAC;IACJ,CAAC,CAAAjC,KAAA;;IAEOsC,oBAAoB,GAAG,YAAM;MACnC,IAAI,CAACtC,KAAA,CAAKuC,gBAAgB,EAAE;QAC1BvC,KAAA,CAAKwC,cAAc,CAAC,CAAC;MACvB;MACA,IAAMC,gBAAgB,GAAG,IAAAC,oCAAmB,EAAC1C,KAAA,CAAKO,qBAAqB,CAAC;MACxEkC,gBAAgB,CAACE,OAAO,CAAC,UAACC,EAAE,EAAK;QAC/B,IAAI,CAACA,EAAE,CAACC,YAAY,CAAC,iBAAiB,CAAC,EAAE;UACvCD,EAAE,CAACE,YAAY,CAAC,iBAAiB,EAAEF,EAAE,CAACG,QAAQ,CAACC,QAAQ,CAAC,CAAC,CAAC;QAC5D;QACAJ,EAAE,CAACG,QAAQ,GAAG,CAAC,CAAC;MAClB,CAAC,CAAC;IACJ,CAAC,CAAA/C,KAAA;;IAEOiD,mBAAmB,GAAG,YAAM,KAAAC,qBAAA,EAAAC,sBAAA;MAClCnD,KAAA,CAAKoD,gBAAgB,CAAC,CAAC;MACvB;MACAC,KAAK,CAACC,IAAI,EAAAJ,qBAAA,IAAAC,sBAAA,GAACvC,0BAAY,CAAC2C,QAAQ,qBAArBJ,sBAAA,CAAuBK,gBAAgB,CAAC,mBAAmB,CAAC,YAAAN,qBAAA,GAAI,EAAE,CAAC,CAACP,OAAO,CAAC,UAACC,EAAE,EAAK,KAAAa,gBAAA;QAC7Fb,EAAE,CAACE,YAAY,CAAC,UAAU,GAAAW,gBAAA,GAAEb,EAAE,CAACc,YAAY,CAAC,iBAAiB,CAAC,YAAAD,gBAAA,GAAI,GAAG,CAAC;QACtEb,EAAE,CAACe,eAAe,CAAC,iBAAiB,CAAC;MACvC,CAAC,CAAC;IACJ,CAAC,CAAA3D,KAAA;;IAEOwC,cAAc,GAAG,YAAM;MAC7B,IAAMoB,MAAM,GAAG5D,KAAA,CAAKO,qBAAqB;MACzC,IAAI,CAACqD,MAAM,IAAI,CAAChD,0BAAY,CAACiD,gBAAgB,EAAE;QAC7C;MACF;MACA,IAAMC,MAAM,GAAG;QACbC,SAAS,EAAE,IAAI;QACfC,OAAO,EAAE;MACX,CAAC;MACD,IAAMC,QAAQ,GAAG,IAAIrD,0BAAY,CAACiD,gBAAgB,CAAC7D,KAAA,CAAKsC,oBAAoB,CAAC;MAC7E2B,QAAQ,CAACC,OAAO,CAACN,MAAM,EAAEE,MAAM,CAAC;MAChC9D,KAAA,CAAKuC,gBAAgB,GAAG0B,QAAQ;IAClC,CAAC,CAAAjE,KAAA;;IAEOoD,gBAAgB,GAAG,YAAM,KAAAe,qBAAA;MAC/B,CAAAA,qBAAA,GAAAnE,KAAA,CAAKuC,gBAAgB,aAArB4B,qBAAA,CAAuBC,UAAU,CAAC,CAAC;MACnCpE,KAAA,CAAKuC,gBAAgB,GAAG,IAAI;IAC9B,CAAC,CApRCvC,KAAA,CAAKS,oBAAoB,GAAG,IAAI,CAChCT,KAAA,CAAKO,qBAAqB,GAAG,IAAI,CACjCP,KAAA,CAAKuC,gBAAgB,GAAG,IAAI,CAC5BvC,KAAA,CAAKqC,WAAW,GAAG,IAAI,CAEvBrC,KAAA,CAAKqE,KAAK,GAAG,EACXrC,eAAe,EAAE,KAAK,EACtBsC,gBAAgB,EAAE,KAAK,EACvBC,cAAc,EAAE,KAAK,CACvB,CAAC,CAEDvE,KAAA,CAAKwE,WAAW,GAAG,IAAIC,gEAA+B,CAAC,EACrDC,oBAAoB,EAAE1E,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAACyE,sBAAsB,EAC5DC,cAAc,EAAE5E,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAAC2E,6BAA6B,EAC7DC,iBAAiB,EAAE,SAAAA,kBAAA,UAAM9E,KAAA,CAAK+B,QAAQ,CAAC,EAAEuC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,IAClES,gBAAgB,EAAE,SAAAA,iBAAA,UAAM/E,KAAA,CAAK+B,QAAQ,CAAC,EAAEuC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,GACpE,CAAC,CAAC,CAAC,OAAAtE,KAAA,CACL,CAAC,IAAAgF,eAAA,CAAAC,OAAA,EAAArF,MAAA,EAAAE,gBAAA,MAAAoF,MAAA,GAAAtF,MAAA,CAAAuF,SAAA,CAAAD,MAAA,CAEME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAMC,MAAM,GAAG,IAAI,CAACnF,QAAQ,CAAC,CAAC,CAACmF,MAAM,CACrC,IAAI,CAAC3E,oBAAoB,CAAC,CAAC,CAC3B2E,MAAM,IAAI,IAAI,CAACb,WAAW,CAACc,KAAK,CAAC,CAAC,CAClC,IAAI,CAACC,YAAY,GAAGjH,YAAY,CAACkH,WAAW,CAAC,IAAAC,eAAQ,EAAC,IAAI,CAAC/E,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAErF,IAAI2E,MAAM,EAAE,CACV,IAAI,CAAC/C,oBAAoB,CAAC,CAAC,CAC7B,CACF,CAAC,CAAA4C,MAAA,CAEMQ,kBAAkB,GAAzB,SAAAA,mBAA0BC,SAAgC,EAAEC,SAAgC,EAAE,CAC5F,IAAQC,SAAS,GAAK,IAAI,CAAC9F,KAAK,CAAxB8F,SAAS,CACjB,IAAAC,cAAA,GAA0E,IAAI,CAAC5F,QAAQ,CAAC,CAAC,CAAjFmF,MAAM,GAAAS,cAAA,CAANT,MAAM,CAAEV,sBAAsB,GAAAmB,cAAA,CAAtBnB,sBAAsB,CAAEE,6BAA6B,GAAAiB,cAAA,CAA7BjB,6BAA6B,CACrE,IAAQN,cAAc,GAAK,IAAI,CAACF,KAAK,CAA7BE,cAAc,CAEtB,IAAKc,MAAM,IAAI,CAACM,SAAS,CAACN,MAAM,IAAKM,SAAS,CAACE,SAAS,KAAKA,SAAS,EAAE,CACtE,IAAI,CAACnF,oBAAoB,CAAC,CAAC,CAC7B,CAEA,IACEiE,sBAAsB,KAAKgB,SAAS,CAAChB,sBAAsB,IAC3DE,6BAA6B,KAAKc,SAAS,CAACd,6BAA6B,EACzE,CACA,IAAI,CAACL,WAAW,CAACuB,MAAM,CAAC,EACtBrB,oBAAoB,EAAEC,sBAAsB,EAC5CC,cAAc,EAAEC,6BAA6B,CAC/C,CAAC,CAAC,CACJ,CAEA,IAAIQ,MAAM,KAAKM,SAAS,CAACN,MAAM,EAAE,CAC/BA,MAAM,GAAG,IAAI,CAACb,WAAW,CAACc,KAAK,CAAC,CAAC,GAAG,IAAI,CAACd,WAAW,CAACwB,IAAI,CAAC,CAAC,CAC7D,CAEA,IAAIzB,cAAc,KAAKqB,SAAS,CAACrB,cAAc,EAAE,CAC/C,IAAIA,cAAc,EAAE,CAClB,IAAI,CAACjC,oBAAoB,CAAC,CAAC,CAC7B,CAAC,MAAM,CACL,IAAI,CAACW,mBAAmB,CAAC,CAAC,CAC5B,CACF,CACF,CAAC,CAAAiC,MAAA,CAEMe,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,CAC5B,IAAI,CAAC7C,gBAAgB,CAAC,CAAC,CACvB,IAAI,IAAI,CAACmC,YAAY,EAAE,CACrB,IAAI,CAACA,YAAY,CAACW,MAAM,CAAC,CAAC,CAC5B,CACA,IAAI,CAAC1B,WAAW,CAAC2B,SAAS,CAAC,CAAC,CAC9B,CAAC,CAAAvG,MAAA,CAEawG,wBAAwB,GAAtC,SAAAA,yBAAuCrG,KAAkB,EAAEsE,KAAkB,EAAwB,CACnG,IAAItE,KAAK,CAACsF,MAAM,IAAI,CAAChB,KAAK,CAACE,cAAc,EAAE,CACzC,OAAO,EACLA,cAAc,EAAE,IAAI,CACtB,CAAC,CACH,CACA,IAAIF,KAAK,CAACE,cAAc,IAAI,EAAExE,KAAK,CAACsF,MAAM,IAAIhB,KAAK,CAACC,gBAAgB,CAAC,EAAE,CACrE,OAAO,EACLC,cAAc,EAAE,KAAK,CACvB,CAAC,CACH,CAEA,OAAOF,KAAK,CACd,CAAC,CAAAa,MAAA,CAEMmB,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,oBACErI,MAAA,CAAAgH,OAAA,CAAAsB,aAAA,CAAC9H,aAAA,CAAA+H,YAAY,CAACC,QAAQ,QACnB,UAACC,KAAK,EAAK,CACVJ,MAAI,CAACI,KAAK,GAAGA,KAAK,CAClB,OAAOJ,MAAI,CAACK,UAAU,CAAC,CAAC,CAC1B,CACqB,CAAC,CAE5B,CAAC,CAAAzB,MAAA,CAEOyB,UAAU,GAAlB,SAAAA,WAAA,EAAqB,KAAAC,GAAA,CACnB,IAAAC,WAAA,GAA+B,IAAI,CAAC9G,KAAK,CAAjC+G,OAAO,GAAAD,WAAA,CAAPC,OAAO,CAAEjB,SAAS,GAAAgB,WAAA,CAAThB,SAAS,CAC1B,IAAMkB,IAAI,GAAG,IAAI,CAAC7G,QAAQ,CAAC,CAAC,CAAC6G,IAAI,CACjC,IAAQxC,cAAc,GAAK,IAAI,CAACF,KAAK,CAA7BE,cAAc,CAEtB,oBACEtG,MAAA,CAAAgH,OAAA,CAAAsB,aAAA,CAAC5H,cAAA,CAAAqI,aAAa,MAAAC,SAAA,CAAAhC,OAAA,IAACiC,WAAW,EAAE,IAAI,CAACC,WAAY,IAAK,IAAI,CAACpH,KAAK,gBAC1D9B,MAAA,CAAAgH,OAAA,CAAAsB,aAAA,UACEa,SAAS,EAAEC,eAAM,CAACC,MAAM,CAAC,CAAE,EAC3B,YAAU,IAAI,CAACvH,KAAK,CAAC,UAAU,CAAC,KAAKwE,cAAc,GAAGhF,cAAc,CAACG,IAAI,GAAGH,cAAc,CAACE,IAAI,CAAE,iBAEjGxB,MAAA,CAAAgH,OAAA,CAAAsB,aAAA,CAAC7H,OAAA,CAAA6I,MAAM,IACLC,WAAW,EAAEjD,cAAe,EAC5BkD,aAAa,EAAElD,cAAe,EAC9BmD,KAAK,EAAE,EAAElG,MAAM,EAAE,MAAM,CAAC,CAAE,EAC1BmG,UAAU,EAAE,IAAI,CAACtH,WAAY,IAE5B,IAAI,CAACN,KAAK,CAAC6H,QACN,CAAC,EACRrD,cAAc,iBACbtG,MAAA,CAAAgH,OAAA,CAAAsB,aAAA,CAAC7H,OAAA,CAAA6I,MAAM,IACLI,UAAU,EAAE,IAAI,CAACnH,UAAW,EAC5B4G,SAAS,EAAE,IAAAS,WAAE,GAAAjB,GAAA,OAAAA,GAAA,CACVS,eAAM,CAAChC,MAAM,CAAC,IAAI,CAACqB,KAAK,CAAC,IAAGnC,cAAc,EAAAqC,GAAA,CAC5C,CAAE,IAEF,IAAI,CAACvC,KAAK,CAACC,gBAAgB,IAAI,IAAI,CAACwD,aAAa,CAACf,IAAI,EAAED,OAAO,EAAEjB,SAAS,CACrE,CAEP,CACQ,CAAC,CAEpB,CAAC,CAAAX,MAAA,CAUO4C,aAAa,GAArB,SAAAA,cAAsBf,IAAiB,EAAED,OAAyB,EAAEjB,SAA2B,EAAE,KAAAkC,IAAA,CAAAC,MAAA,QAC/F,oBACE/J,MAAA,CAAAgH,OAAA,CAAAsB,aAAA,WACE,YAAUhH,cAAc,CAACI,OAAQ,EACjCyH,SAAS,EAAE,IAAAS,WAAE,EAACR,eAAM,CAACY,gBAAgB,CAAC,CAAC,GAAAF,IAAA,OAAAA,IAAA,CAAKV,eAAM,CAACa,sBAAsB,CAAC,CAAC,IAAG,IAAI,CAAC7D,KAAK,CAACrC,eAAe,EAAA+F,IAAA,CAAE,CAAE,EAC5GL,KAAK,EAAE,IAAI,CAACrD,KAAK,CAACpC,YAAa,iBAE/BhE,MAAA,CAAAgH,OAAA,CAAAsB,aAAA,UACEa,SAAS,EAAEC,eAAM,CAACc,uBAAuB,CAAC,CAAE,EAC5CC,GAAG,EAAE,SAAAA,IAAC9H,OAAO,EAAK,CAChB0H,MAAI,CAAC3F,WAAW,GAAG/B,OAAO,CAC5B,CAAE,IAEDuF,SAAS,KAAKwC,SAAS,GAAGxC,SAAS,gBAAG5H,MAAA,CAAAgH,OAAA,CAAAsB,aAAA,CAAC/H,QAAA,CAAA8J,OAAO,IAACvB,IAAI,EAAEA,IAAK,EAACD,OAAO,EAAEA,OAAQ,EAAE,CAC5E,CACD,CAAC,CAEX,CAAC,QAAAlH,MAAA,GArLyB2I,cAAK,CAACC,SAAS,GAAAnJ,OAAA,CAC3BoJ,mBAAmB,GAAG,QAAQ,EAAApJ,OAAA,CAC9BqJ,WAAW,GAAG,QAAQ,EAAArJ,OAAA,CAEtBe,YAAY,GAAiB,EACzC2G,IAAI,EAAE,QAAQ,EACd1B,MAAM,EAAE,KAAK,EACbV,sBAAsB,EAAEgE,6BAAS,GAAG,CAAC,GAAG,GAAG,EAC3C9D,6BAA6B,EAAE8D,6BAAS,GAAG,CAAC,GAAG,IAAI,CACrD,CAAC,EAAAtJ,OAAA,MAAAD,MAAA","ignoreList":[]}
|
|
@@ -32,9 +32,9 @@ export interface PagingProps extends CommonProps {
|
|
|
32
32
|
/** Делает компонент недоступным. */
|
|
33
33
|
disabled?: boolean;
|
|
34
34
|
/** Отключает навигационные подсказки.
|
|
35
|
-
*
|
|
35
|
+
* По умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо элемент в фокусе, либо globalListeners === true). */
|
|
36
36
|
withoutNavigationHint?: boolean;
|
|
37
|
-
/**
|
|
37
|
+
/** Подпись у пейджинга. */
|
|
38
38
|
caption?: string;
|
|
39
39
|
/** Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.
|
|
40
40
|
* Если на странице используется несколько элементов **Paging** с useGlobalListener === true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_isInstanceOf","_identifiers","_decorators","_keyListener","_utils","_client","_ThemeContext","_ThemeHelpers","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_getVisualStateDataAttributes","_ResponsiveLayout","_Paging2","NavigationHelper","_interopRequireWildcard","_PagingHelper","_locale","_PagingDefaultComponent","_ForwardIcon","_DotsIcon","_dec","_class","_Paging","IGNORE_EVENT_TAGS","PagingDataTids","exports","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","locale","PagingLocaleHelper","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","_cx","default","createElement","className","cx","styles","theme","sizeClassNames","dotsDisabled","getDotsIcon","_cx2","classNames","pageLinkFocused","forwardLinkDisabled","Component","component","forward","forwardIcon","getForwardIcon","_extends2","onClick","emptyHandler","goForward","tabIndex","pageNumber","getVisualStateDataAttributes","isMobile","caption","_cx3","pageLinkDisabled","pageLinkCurrent","pageLinkCurrentDisabled","handleClick","goToPage","onMouseDown","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","hint","Fragment","transparent","getKeyName","pageLinkHint","handleMouseDown","setState","isIE11","globalObject","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isKeyArrowLeft","isArrowRight","isKeyArrowRight","isInstanceOf","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","isKeyEnter","executeItemAction","handleFocus","requestAnimationFrame","keyListener","isTabPressed","handleBlur","getItems","pagesCount","isItemFocusable","moveFocus","step","items","findIndex","x","onPageChange","addGlobalListener","_globalObject$documen","document","addEventListener","removeGlobalListener","_globalObject$documen2","removeEventListener","refContainer","element","getPagingSizeClassNames","size","getSize","pagingLegacy","dotsLegacy","forwardLinkLegacy","pageLinkLegacy","pagingSmall","dotsSmall","forwardLinkSmall","pageLinkSmall","pagingMedium","dotsMedium","forwardLinkMediumMobile","forwardLinkMedium","pageLinkMedium","pagingLarge","dotsLarge","forwardLinkLargeMobile","forwardLinkLarge","pageLinkLarge","TypeError","DotsIcon","iconSize","parseInt","pagingForwardIconSize","ForwardIconMobile","ForwardIcon","style","marginLeft","defaultSize","isThemeGTE","_inheritsLoose2","isForward","_proto","prototype","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","_this2","ThemeContext","Consumer","ResponsiveLayout","_ref","renderMain","_cx4","_this3","_this$getProps","CommonWrapper","rootNodeRef","setRootNode","paging","pagingMobile","pagingDisabled","onKeyDown","undefined","onFocus","onBlur","ref","map","React","PureComponent","__KONTUR_REACT_UI__","displayName","PagingDefaultComponent"],"sources":["Paging.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { isKeyArrowLeft, isKeyArrowRight, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport type { Nullable } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { emptyHandler } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport type { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport type { PagingLocale } from './locale';\nimport { PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\nimport { ForwardIcon, ForwardIconMobile } from './ForwardIcon';\nimport { DotsIcon } from './DotsIcon';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\nexport interface ItemComponentProps {\n /** Определяет, является ли страница текущей. */\n active: boolean;\n\n /** @ignore */\n children?: React.ReactNode;\n\n /** Задает HTML-атрибут class. */\n className: string;\n\n /** Задает функцию, которая вызывается при клике на элемент. */\n onClick: () => void;\n\n /** Задает номер текущей страницы. */\n pageNumber: number | 'forward';\n\n /** Задает HTML-атрибут `tabindex`. */\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n activePage: number;\n\n /** Компонент обертки по умолчанию.\n * @default <span/> */\n component?: React.ComponentType<ItemComponentProps>;\n\n /** Задает функцию, которая вызывается при переключении страницы. */\n onPageChange: (pageNumber: number) => void;\n\n /** Задает общее количество страниц. */\n pagesCount: number;\n\n /** Задает размер контрола.\n * @default 'small'. Проп поддерживается начиная с версии темы 5.3. */\n size?: SizeProp;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Отключает навигационные подсказки.\n * По-умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо элемент в фокусе, либо globalListeners === true). */\n withoutNavigationHint?: boolean;\n\n /** Задает подпить у пейджинга. */\n caption?: string;\n\n /** Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.\n * Если на странице используется несколько элементов **Paging** с useGlobalListener === true,\n * то обработчик keyDown будет вызываться на каждом из них. Такие случаи лучше обрабатывать отдельно. */\n useGlobalListener?: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\nexport const PagingDataTids = {\n root: 'Paging__root',\n dots: 'Paging__dots',\n forwardLink: 'Paging__forwardLink',\n pageLinkWrapper: 'Paging__pageLinkWrapper',\n pageLink: 'Paging__pageLink',\n} as const;\n\ntype DefaultProps = Required<Pick<PagingProps, 'component' | 'useGlobalListener'>>;\n\ninterface PagingSizeClassNames {\n root: string;\n dots: string;\n forwardLink: string;\n pageLink: string;\n}\n\n/**\n * Постраничная навигация `Paging` (пейджинг или пагинация) — способ представления большого количества однородной информации, когда контент разбивается на страницы.\n */\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n public static displayName = 'Paging';\n\n public static defaultProps: DefaultProps = {\n component: PagingDefaultComponent,\n useGlobalListener: false,\n };\n\n private getProps = createPropsGetter(Paging.defaultProps);\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public static isForward(pageNumber: number | 'forward'): boolean {\n return pageNumber === 'forward';\n }\n\n public state: PagingState = {\n focusedByTab: false,\n focusedItem: null,\n keyboardControl: this.getProps().useGlobalListener,\n };\n\n private theme!: Theme;\n private readonly locale!: PagingLocale;\n private isMobile!: boolean;\n private sizeClassNames!: PagingSizeClassNames;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n\n public componentDidMount() {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (!prevProps.useGlobalListener && useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== useGlobalListener) {\n this.setState({\n keyboardControl: useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2) {\n return null;\n }\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ResponsiveLayout>\n {({ isMobile }) => {\n this.isMobile = isMobile && isThemeGTE(this.theme, '5.3');\n this.sizeClassNames = this.getPagingSizeClassNames();\n return this.renderMain();\n }}\n </ResponsiveLayout>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { useGlobalListener } = this.getProps();\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...this.props}\n {...getVisualStateDataAttributes({ disabled: this.props.disabled })}\n >\n <span\n tabIndex={this.props.disabled ? -1 : 0}\n data-tid={PagingDataTids.root}\n className={cx(styles.paging(), this.sizeClassNames.root, {\n [styles.pagingMobile()]: this.isMobile,\n [styles.pagingDisabled()]: this.props.disabled,\n })}\n onKeyDown={useGlobalListener ? undefined : this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n ref={this.refContainer}\n >\n {this.getItems().map((item, index) => this.renderItem(item, index))}\n </span>\n </CommonWrapper>\n );\n }\n\n private renderItem = (item: ItemType, index: number) => {\n const focused = this.getFocusedItem() === item;\n switch (item) {\n case '.': {\n const key = `dots${index < 5 ? 'Left' : 'Right'}`;\n return this.renderDots(key);\n }\n case 'forward': {\n const disabled = this.isItemDisabled(item);\n return this.renderForwardLink(disabled, focused);\n }\n default: {\n const active = this.props.activePage === item;\n return this.renderPageLink(item, active, focused);\n }\n }\n };\n\n private renderDots = (key: string) => {\n return (\n <span\n data-tid={PagingDataTids.dots}\n key={key}\n className={cx(styles.dots(this.theme), this.sizeClassNames.dots, {\n [styles.dotsDisabled(this.theme)]: this.props.disabled,\n })}\n >\n {this.getDotsIcon()}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classNames = cx(\n styles.pageLink(this.theme),\n this.sizeClassNames.pageLink,\n styles.forwardLink(this.theme),\n this.sizeClassNames.forwardLink,\n {\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.forwardLinkDisabled(this.theme)]: disabled || this.props.disabled,\n },\n );\n const Component = this.getProps().component;\n const { forward } = this.locale;\n\n const forwardIcon = this.getForwardIcon();\n\n return (\n <Component\n key={'forward'}\n data-tid={PagingDataTids.forwardLink}\n active={false}\n className={classNames}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n {...getVisualStateDataAttributes({ disabled })}\n >\n {!this.isMobile && (this.props.caption || forward)}\n {forwardIcon}\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const disabled = this.props.disabled;\n const classNames = cx(styles.pageLink(this.theme), this.sizeClassNames.pageLink, {\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.pageLinkDisabled(this.theme)]: disabled,\n [styles.pageLinkCurrent(this.theme)]: active,\n [styles.pageLinkCurrentDisabled(this.theme)]: active && disabled,\n });\n const Component = this.getProps().component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid={PagingDataTids.pageLinkWrapper}\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n {...getVisualStateDataAttributes({ active, disabled })}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid={PagingDataTids.pageLink}\n active={active}\n className={classNames}\n onClick={handleClick}\n tabIndex={-1}\n pageNumber={pageNumber}\n >\n {pageNumber}\n </Component>\n {active && !this.isMobile && this.renderNavigationHint()}\n </span>\n );\n };\n\n private renderNavigationHint = () => {\n if (this.props.withoutNavigationHint) {\n return null;\n }\n\n const { keyboardControl } = this.state;\n const canGoBackward = this.canGoBackward();\n const canGoForward = this.canGoForward();\n\n let hint = null;\n if (keyboardControl && (canGoBackward || canGoForward)) {\n hint = (\n <>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName(this.theme)}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </>\n );\n }\n return <div className={styles.pageLinkHint(this.theme)}>{hint}</div>;\n };\n\n private handleMouseDown = () => {\n this.setState({ focusedByTab: false, focusedItem: null });\n };\n\n private handleMouseDownPageLink = () => {\n if (isIE11) {\n // Клик по span внутри контейнера с tabindex=\"0\" переносит фокус именно на этот span.\n // Поэтому горячие клавиши работают пока span существует на странице.\n globalObject.setTimeout(() => this.container && this.container.focus(), 0);\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLElement>) => {\n if (e.shiftKey) {\n return;\n }\n\n const target = e.target;\n\n const isArrowLeft = isKeyArrowLeft(e);\n const isArrowRight = isKeyArrowRight(e);\n\n if (\n isInstanceOf(target, globalObject.Element) &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e, this.theme) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e, this.theme) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.getProps().useGlobalListener || false,\n });\n };\n\n private getItems = (): ItemType[] => {\n return getItems(this.props.activePage, this.props.pagesCount, this.isMobile).concat('forward');\n };\n\n private getFocusedItem = (): Nullable<ItemType> => {\n if (!this.state.focusedByTab) {\n return null;\n }\n\n const { focusedItem } = this.state;\n if (focusedItem && this.getItems().includes(focusedItem) && this.isItemFocusable(focusedItem)) {\n return focusedItem;\n }\n\n return this.props.activePage;\n };\n\n private isItemFocusable = (item: ItemType) => {\n return !this.isItemDisabled(item);\n };\n\n private isItemDisabled = (item: ItemType) => {\n switch (item) {\n case '.':\n return true;\n case 'forward':\n return !this.canGoForward();\n default:\n return false;\n }\n };\n\n private executeItemAction = (item: Nullable<ItemType>) => {\n if (item === 'forward') {\n this.goForward();\n }\n if (typeof item === 'number') {\n this.goToPage(item);\n }\n };\n\n private moveFocusLeft = () => {\n this.moveFocus(-1);\n };\n\n private moveFocusRight = () => {\n this.moveFocus(1);\n };\n\n private moveFocus = (step: number) => {\n const focusedItem = this.getFocusedItem();\n const items = this.getItems();\n let index = items.findIndex((x) => x === focusedItem);\n do {\n index = (index + step + items.length) % items.length;\n } while (!this.isItemFocusable(items[index]));\n this.setState({ focusedItem: items[index] });\n };\n\n private canGoBackward = (): boolean => {\n return this.props.activePage > 1;\n };\n\n private canGoForward = (): boolean => {\n return this.props.activePage < this.props.pagesCount;\n };\n\n private goBackward = () => {\n this.goToPage(this.props.activePage - 1);\n };\n\n private goForward = () => {\n this.goToPage(this.props.activePage + 1);\n };\n\n private goToPage = (pageNumber: number) => {\n if (pageNumber >= 1 && pageNumber !== this.props.activePage && pageNumber <= this.props.pagesCount) {\n this.props.onPageChange(pageNumber);\n }\n };\n\n private addGlobalListener = () => {\n if (this.addedGlobalListener) {\n return;\n }\n\n globalObject.document?.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n globalObject.document?.removeEventListener('keydown', this.handleKeyDown);\n\n this.addedGlobalListener = false;\n }\n };\n\n private refContainer = (element: HTMLSpanElement | null) => {\n this.container = element;\n };\n\n private getPagingSizeClassNames = (): PagingSizeClassNames => {\n const size = this.getSize();\n switch (size) {\n case 'legacy':\n return {\n root: styles.pagingLegacy(this.theme),\n dots: styles.dotsLegacy(this.theme),\n forwardLink: styles.forwardLinkLegacy(this.theme),\n pageLink: styles.pageLinkLegacy(this.theme),\n };\n case 'small':\n return {\n root: styles.pagingSmall(this.theme),\n dots: styles.dotsSmall(this.theme),\n forwardLink: styles.forwardLinkSmall(this.theme),\n pageLink: styles.pageLinkSmall(this.theme),\n };\n case 'medium':\n return {\n root: styles.pagingMedium(this.theme),\n dots: styles.dotsMedium(this.theme),\n forwardLink: this.isMobile\n ? styles.forwardLinkMediumMobile(this.theme)\n : styles.forwardLinkMedium(this.theme),\n pageLink: styles.pageLinkMedium(this.theme),\n };\n case 'large':\n return {\n root: styles.pagingLarge(this.theme),\n dots: styles.dotsLarge(this.theme),\n forwardLink: this.isMobile ? styles.forwardLinkLargeMobile(this.theme) : styles.forwardLinkLarge(this.theme),\n pageLink: styles.pageLinkLarge(this.theme),\n };\n default:\n throw new TypeError(`Invalid size prop: '${this.props.size}'`);\n }\n };\n\n private getDotsIcon = () => {\n const size = this.getSize();\n return size === 'legacy' ? '...' : <DotsIcon size={size} />;\n };\n\n private getForwardIcon = () => {\n const size = this.getSize();\n const iconSize = size === 'legacy' ? parseInt(this.theme.pagingForwardIconSize) : size;\n return this.isMobile ? (\n <ForwardIconMobile size={iconSize} />\n ) : (\n <ForwardIcon size={iconSize} style={{ marginLeft: 4 }} />\n );\n };\n\n private getSize = () => {\n if (this.props.size) {\n return this.isMobile && this.props.size === 'small' ? 'medium' : this.props.size;\n }\n\n const defaultSize = isThemeGTE(this.theme, '5.3') ? 'small' : 'legacy';\n return this.isMobile && defaultSize === 'small' ? 'medium' : defaultSize;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_isInstanceOf","_identifiers","_decorators","_keyListener","_utils","_client","_ThemeContext","_ThemeHelpers","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_getVisualStateDataAttributes","_ResponsiveLayout","_Paging2","NavigationHelper","_interopRequireWildcard","_PagingHelper","_locale","_PagingDefaultComponent","_ForwardIcon","_DotsIcon","_dec","_class","_Paging","IGNORE_EVENT_TAGS","PagingDataTids","exports","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","locale","PagingLocaleHelper","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","_cx","default","createElement","className","cx","styles","theme","sizeClassNames","dotsDisabled","getDotsIcon","_cx2","classNames","pageLinkFocused","forwardLinkDisabled","Component","component","forward","forwardIcon","getForwardIcon","_extends2","onClick","emptyHandler","goForward","tabIndex","pageNumber","getVisualStateDataAttributes","isMobile","caption","_cx3","pageLinkDisabled","pageLinkCurrent","pageLinkCurrentDisabled","handleClick","goToPage","onMouseDown","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","hint","Fragment","transparent","getKeyName","pageLinkHint","handleMouseDown","setState","isIE11","globalObject","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isKeyArrowLeft","isArrowRight","isKeyArrowRight","isInstanceOf","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","isKeyEnter","executeItemAction","handleFocus","requestAnimationFrame","keyListener","isTabPressed","handleBlur","getItems","pagesCount","isItemFocusable","moveFocus","step","items","findIndex","x","onPageChange","addGlobalListener","_globalObject$documen","document","addEventListener","removeGlobalListener","_globalObject$documen2","removeEventListener","refContainer","element","getPagingSizeClassNames","size","getSize","pagingLegacy","dotsLegacy","forwardLinkLegacy","pageLinkLegacy","pagingSmall","dotsSmall","forwardLinkSmall","pageLinkSmall","pagingMedium","dotsMedium","forwardLinkMediumMobile","forwardLinkMedium","pageLinkMedium","pagingLarge","dotsLarge","forwardLinkLargeMobile","forwardLinkLarge","pageLinkLarge","TypeError","DotsIcon","iconSize","parseInt","pagingForwardIconSize","ForwardIconMobile","ForwardIcon","style","marginLeft","defaultSize","isThemeGTE","_inheritsLoose2","isForward","_proto","prototype","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","_this2","ThemeContext","Consumer","ResponsiveLayout","_ref","renderMain","_cx4","_this3","_this$getProps","CommonWrapper","rootNodeRef","setRootNode","paging","pagingMobile","pagingDisabled","onKeyDown","undefined","onFocus","onBlur","ref","map","React","PureComponent","__KONTUR_REACT_UI__","displayName","PagingDefaultComponent"],"sources":["Paging.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { isKeyArrowLeft, isKeyArrowRight, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport type { Nullable } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { emptyHandler } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport type { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport type { PagingLocale } from './locale';\nimport { PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\nimport { ForwardIcon, ForwardIconMobile } from './ForwardIcon';\nimport { DotsIcon } from './DotsIcon';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\nexport interface ItemComponentProps {\n /** Определяет, является ли страница текущей. */\n active: boolean;\n\n /** @ignore */\n children?: React.ReactNode;\n\n /** Задает HTML-атрибут class. */\n className: string;\n\n /** Задает функцию, которая вызывается при клике на элемент. */\n onClick: () => void;\n\n /** Задает номер текущей страницы. */\n pageNumber: number | 'forward';\n\n /** Задает HTML-атрибут `tabindex`. */\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n activePage: number;\n\n /** Компонент обертки по умолчанию.\n * @default <span/> */\n component?: React.ComponentType<ItemComponentProps>;\n\n /** Задает функцию, которая вызывается при переключении страницы. */\n onPageChange: (pageNumber: number) => void;\n\n /** Задает общее количество страниц. */\n pagesCount: number;\n\n /** Задает размер контрола.\n * @default 'small'. Проп поддерживается начиная с версии темы 5.3. */\n size?: SizeProp;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Отключает навигационные подсказки.\n * По умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо элемент в фокусе, либо globalListeners === true). */\n withoutNavigationHint?: boolean;\n\n /** Подпись у пейджинга. */\n caption?: string;\n\n /** Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.\n * Если на странице используется несколько элементов **Paging** с useGlobalListener === true,\n * то обработчик keyDown будет вызываться на каждом из них. Такие случаи лучше обрабатывать отдельно. */\n useGlobalListener?: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\nexport const PagingDataTids = {\n root: 'Paging__root',\n dots: 'Paging__dots',\n forwardLink: 'Paging__forwardLink',\n pageLinkWrapper: 'Paging__pageLinkWrapper',\n pageLink: 'Paging__pageLink',\n} as const;\n\ntype DefaultProps = Required<Pick<PagingProps, 'component' | 'useGlobalListener'>>;\n\ninterface PagingSizeClassNames {\n root: string;\n dots: string;\n forwardLink: string;\n pageLink: string;\n}\n\n/**\n * Постраничная навигация `Paging` (пейджинг или пагинация) — способ представления большого количества однородной информации, когда контент разбивается на страницы.\n */\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n public static displayName = 'Paging';\n\n public static defaultProps: DefaultProps = {\n component: PagingDefaultComponent,\n useGlobalListener: false,\n };\n\n private getProps = createPropsGetter(Paging.defaultProps);\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public static isForward(pageNumber: number | 'forward'): boolean {\n return pageNumber === 'forward';\n }\n\n public state: PagingState = {\n focusedByTab: false,\n focusedItem: null,\n keyboardControl: this.getProps().useGlobalListener,\n };\n\n private theme!: Theme;\n private readonly locale!: PagingLocale;\n private isMobile!: boolean;\n private sizeClassNames!: PagingSizeClassNames;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n\n public componentDidMount() {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (!prevProps.useGlobalListener && useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== useGlobalListener) {\n this.setState({\n keyboardControl: useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2) {\n return null;\n }\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ResponsiveLayout>\n {({ isMobile }) => {\n this.isMobile = isMobile && isThemeGTE(this.theme, '5.3');\n this.sizeClassNames = this.getPagingSizeClassNames();\n return this.renderMain();\n }}\n </ResponsiveLayout>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { useGlobalListener } = this.getProps();\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...this.props}\n {...getVisualStateDataAttributes({ disabled: this.props.disabled })}\n >\n <span\n tabIndex={this.props.disabled ? -1 : 0}\n data-tid={PagingDataTids.root}\n className={cx(styles.paging(), this.sizeClassNames.root, {\n [styles.pagingMobile()]: this.isMobile,\n [styles.pagingDisabled()]: this.props.disabled,\n })}\n onKeyDown={useGlobalListener ? undefined : this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n ref={this.refContainer}\n >\n {this.getItems().map((item, index) => this.renderItem(item, index))}\n </span>\n </CommonWrapper>\n );\n }\n\n private renderItem = (item: ItemType, index: number) => {\n const focused = this.getFocusedItem() === item;\n switch (item) {\n case '.': {\n const key = `dots${index < 5 ? 'Left' : 'Right'}`;\n return this.renderDots(key);\n }\n case 'forward': {\n const disabled = this.isItemDisabled(item);\n return this.renderForwardLink(disabled, focused);\n }\n default: {\n const active = this.props.activePage === item;\n return this.renderPageLink(item, active, focused);\n }\n }\n };\n\n private renderDots = (key: string) => {\n return (\n <span\n data-tid={PagingDataTids.dots}\n key={key}\n className={cx(styles.dots(this.theme), this.sizeClassNames.dots, {\n [styles.dotsDisabled(this.theme)]: this.props.disabled,\n })}\n >\n {this.getDotsIcon()}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classNames = cx(\n styles.pageLink(this.theme),\n this.sizeClassNames.pageLink,\n styles.forwardLink(this.theme),\n this.sizeClassNames.forwardLink,\n {\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.forwardLinkDisabled(this.theme)]: disabled || this.props.disabled,\n },\n );\n const Component = this.getProps().component;\n const { forward } = this.locale;\n\n const forwardIcon = this.getForwardIcon();\n\n return (\n <Component\n key={'forward'}\n data-tid={PagingDataTids.forwardLink}\n active={false}\n className={classNames}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n {...getVisualStateDataAttributes({ disabled })}\n >\n {!this.isMobile && (this.props.caption || forward)}\n {forwardIcon}\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const disabled = this.props.disabled;\n const classNames = cx(styles.pageLink(this.theme), this.sizeClassNames.pageLink, {\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.pageLinkDisabled(this.theme)]: disabled,\n [styles.pageLinkCurrent(this.theme)]: active,\n [styles.pageLinkCurrentDisabled(this.theme)]: active && disabled,\n });\n const Component = this.getProps().component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid={PagingDataTids.pageLinkWrapper}\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n {...getVisualStateDataAttributes({ active, disabled })}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid={PagingDataTids.pageLink}\n active={active}\n className={classNames}\n onClick={handleClick}\n tabIndex={-1}\n pageNumber={pageNumber}\n >\n {pageNumber}\n </Component>\n {active && !this.isMobile && this.renderNavigationHint()}\n </span>\n );\n };\n\n private renderNavigationHint = () => {\n if (this.props.withoutNavigationHint) {\n return null;\n }\n\n const { keyboardControl } = this.state;\n const canGoBackward = this.canGoBackward();\n const canGoForward = this.canGoForward();\n\n let hint = null;\n if (keyboardControl && (canGoBackward || canGoForward)) {\n hint = (\n <>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName(this.theme)}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </>\n );\n }\n return <div className={styles.pageLinkHint(this.theme)}>{hint}</div>;\n };\n\n private handleMouseDown = () => {\n this.setState({ focusedByTab: false, focusedItem: null });\n };\n\n private handleMouseDownPageLink = () => {\n if (isIE11) {\n // Клик по span внутри контейнера с tabindex=\"0\" переносит фокус именно на этот span.\n // Поэтому горячие клавиши работают пока span существует на странице.\n globalObject.setTimeout(() => this.container && this.container.focus(), 0);\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLElement>) => {\n if (e.shiftKey) {\n return;\n }\n\n const target = e.target;\n\n const isArrowLeft = isKeyArrowLeft(e);\n const isArrowRight = isKeyArrowRight(e);\n\n if (\n isInstanceOf(target, globalObject.Element) &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e, this.theme) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e, this.theme) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.getProps().useGlobalListener || false,\n });\n };\n\n private getItems = (): ItemType[] => {\n return getItems(this.props.activePage, this.props.pagesCount, this.isMobile).concat('forward');\n };\n\n private getFocusedItem = (): Nullable<ItemType> => {\n if (!this.state.focusedByTab) {\n return null;\n }\n\n const { focusedItem } = this.state;\n if (focusedItem && this.getItems().includes(focusedItem) && this.isItemFocusable(focusedItem)) {\n return focusedItem;\n }\n\n return this.props.activePage;\n };\n\n private isItemFocusable = (item: ItemType) => {\n return !this.isItemDisabled(item);\n };\n\n private isItemDisabled = (item: ItemType) => {\n switch (item) {\n case '.':\n return true;\n case 'forward':\n return !this.canGoForward();\n default:\n return false;\n }\n };\n\n private executeItemAction = (item: Nullable<ItemType>) => {\n if (item === 'forward') {\n this.goForward();\n }\n if (typeof item === 'number') {\n this.goToPage(item);\n }\n };\n\n private moveFocusLeft = () => {\n this.moveFocus(-1);\n };\n\n private moveFocusRight = () => {\n this.moveFocus(1);\n };\n\n private moveFocus = (step: number) => {\n const focusedItem = this.getFocusedItem();\n const items = this.getItems();\n let index = items.findIndex((x) => x === focusedItem);\n do {\n index = (index + step + items.length) % items.length;\n } while (!this.isItemFocusable(items[index]));\n this.setState({ focusedItem: items[index] });\n };\n\n private canGoBackward = (): boolean => {\n return this.props.activePage > 1;\n };\n\n private canGoForward = (): boolean => {\n return this.props.activePage < this.props.pagesCount;\n };\n\n private goBackward = () => {\n this.goToPage(this.props.activePage - 1);\n };\n\n private goForward = () => {\n this.goToPage(this.props.activePage + 1);\n };\n\n private goToPage = (pageNumber: number) => {\n if (pageNumber >= 1 && pageNumber !== this.props.activePage && pageNumber <= this.props.pagesCount) {\n this.props.onPageChange(pageNumber);\n }\n };\n\n private addGlobalListener = () => {\n if (this.addedGlobalListener) {\n return;\n }\n\n globalObject.document?.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n globalObject.document?.removeEventListener('keydown', this.handleKeyDown);\n\n this.addedGlobalListener = false;\n }\n };\n\n private refContainer = (element: HTMLSpanElement | null) => {\n this.container = element;\n };\n\n private getPagingSizeClassNames = (): PagingSizeClassNames => {\n const size = this.getSize();\n switch (size) {\n case 'legacy':\n return {\n root: styles.pagingLegacy(this.theme),\n dots: styles.dotsLegacy(this.theme),\n forwardLink: styles.forwardLinkLegacy(this.theme),\n pageLink: styles.pageLinkLegacy(this.theme),\n };\n case 'small':\n return {\n root: styles.pagingSmall(this.theme),\n dots: styles.dotsSmall(this.theme),\n forwardLink: styles.forwardLinkSmall(this.theme),\n pageLink: styles.pageLinkSmall(this.theme),\n };\n case 'medium':\n return {\n root: styles.pagingMedium(this.theme),\n dots: styles.dotsMedium(this.theme),\n forwardLink: this.isMobile\n ? styles.forwardLinkMediumMobile(this.theme)\n : styles.forwardLinkMedium(this.theme),\n pageLink: styles.pageLinkMedium(this.theme),\n };\n case 'large':\n return {\n root: styles.pagingLarge(this.theme),\n dots: styles.dotsLarge(this.theme),\n forwardLink: this.isMobile ? styles.forwardLinkLargeMobile(this.theme) : styles.forwardLinkLarge(this.theme),\n pageLink: styles.pageLinkLarge(this.theme),\n };\n default:\n throw new TypeError(`Invalid size prop: '${this.props.size}'`);\n }\n };\n\n private getDotsIcon = () => {\n const size = this.getSize();\n return size === 'legacy' ? '...' : <DotsIcon size={size} />;\n };\n\n private getForwardIcon = () => {\n const size = this.getSize();\n const iconSize = size === 'legacy' ? parseInt(this.theme.pagingForwardIconSize) : size;\n return this.isMobile ? (\n <ForwardIconMobile size={iconSize} />\n ) : (\n <ForwardIcon size={iconSize} style={{ marginLeft: 4 }} />\n );\n };\n\n private getSize = () => {\n if (this.props.size) {\n return this.isMobile && this.props.size === 'small' ? 'medium' : this.props.size;\n }\n\n const defaultSize = isThemeGTE(this.theme, '5.3') ? 'small' : 'legacy';\n return this.isMobile && defaultSize === 'small' ? 'medium' : defaultSize;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
var styles = exports.styles = (0, _Emotion.memoizeStyle)({
|
|
@@ -34,5 +34,12 @@ var styles = exports.styles = (0, _Emotion.memoizeStyle)({
|
|
|
34
34
|
return (0, _Emotion.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteralLoose2.default)(["\n background: ", ";\n "])),
|
|
35
35
|
t.tabColorError);
|
|
36
36
|
|
|
37
|
+
},
|
|
38
|
+
|
|
39
|
+
customizationExample: function customizationExample() {
|
|
40
|
+
return (0, _Emotion.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteralLoose2.default)(["\n height: 5px;\n background-color: orange;\n "])));
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
37
44
|
}
|
|
38
45
|
});
|