@skbkontur/react-ui 5.6.7-aa2dc.0 → 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.
Files changed (94) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/cjs/components/Calendar/CalendarDay.js +2 -2
  3. package/cjs/components/Calendar/CalendarDay.js.map +1 -1
  4. package/cjs/components/Dropdown/Dropdown.d.ts +18 -19
  5. package/cjs/components/Dropdown/Dropdown.js +2 -3
  6. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  7. package/cjs/components/FxInput/FxInput.js +1 -2
  8. package/cjs/components/FxInput/FxInput.js.map +1 -1
  9. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +20 -23
  10. package/cjs/components/GlobalLoader/GlobalLoader.js +4 -7
  11. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  12. package/cjs/components/Kebab/Kebab.d.ts +10 -10
  13. package/cjs/components/Kebab/Kebab.js +1 -2
  14. package/cjs/components/Kebab/Kebab.js.map +1 -1
  15. package/cjs/components/Loader/Loader.d.ts +9 -9
  16. package/cjs/components/Loader/Loader.js +3 -3
  17. package/cjs/components/Loader/Loader.js.map +1 -1
  18. package/cjs/components/Paging/Paging.d.ts +2 -2
  19. package/cjs/components/Paging/Paging.js.map +1 -1
  20. package/cjs/components/Tabs/Indicator.styles.d.ts +1 -0
  21. package/cjs/components/Tabs/Indicator.styles.js +8 -1
  22. package/cjs/components/Tabs/Indicator.styles.js.map +1 -1
  23. package/cjs/components/Tabs/Tab.d.ts +11 -10
  24. package/cjs/components/Tabs/Tab.js +3 -2
  25. package/cjs/components/Tabs/Tab.js.map +1 -1
  26. package/cjs/components/Tabs/Tabs.d.ts +7 -12
  27. package/cjs/components/Tabs/Tabs.js +1 -6
  28. package/cjs/components/Tabs/Tabs.js.map +1 -1
  29. package/cjs/components/Toast/Toast.d.ts +4 -4
  30. package/cjs/components/Toast/Toast.js +2 -2
  31. package/cjs/components/Toast/Toast.js.map +1 -1
  32. package/cjs/components/Tooltip/Tooltip.d.ts +1 -1
  33. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  34. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
  35. package/cjs/internal/CustomComboBox/ComboBoxView.js +0 -1
  36. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  37. package/cjs/internal/Menu/Menu.d.ts +1 -2
  38. package/cjs/internal/Menu/Menu.js +0 -1
  39. package/cjs/internal/Menu/Menu.js.map +1 -1
  40. package/cjs/internal/Popup/Popup.d.ts +0 -7
  41. package/cjs/internal/Popup/Popup.js +2 -44
  42. package/cjs/internal/Popup/Popup.js.map +1 -1
  43. package/cjs/internal/Popup/PopupHelper.d.ts +0 -27
  44. package/cjs/internal/Popup/PopupHelper.js +2 -125
  45. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  46. package/cjs/internal/PopupMenu/PopupMenu.d.ts +3 -7
  47. package/cjs/internal/PopupMenu/PopupMenu.js +0 -4
  48. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  49. package/components/Calendar/CalendarDay/CalendarDay.js +1 -1
  50. package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -1
  51. package/components/Dropdown/Dropdown/Dropdown.js +2 -2
  52. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  53. package/components/Dropdown/Dropdown.d.ts +18 -19
  54. package/components/FxInput/FxInput/FxInput.js +3 -1
  55. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  56. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +4 -7
  57. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  58. package/components/GlobalLoader/GlobalLoader.d.ts +20 -23
  59. package/components/Kebab/Kebab/Kebab.js +1 -2
  60. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  61. package/components/Kebab/Kebab.d.ts +10 -10
  62. package/components/Loader/Loader/Loader.js +3 -3
  63. package/components/Loader/Loader/Loader.js.map +1 -1
  64. package/components/Loader/Loader.d.ts +9 -9
  65. package/components/Paging/Paging/Paging.js.map +1 -1
  66. package/components/Paging/Paging.d.ts +2 -2
  67. package/components/Tabs/Indicator.styles/Indicator.styles.js +4 -1
  68. package/components/Tabs/Indicator.styles/Indicator.styles.js.map +1 -1
  69. package/components/Tabs/Indicator.styles.d.ts +1 -0
  70. package/components/Tabs/Tab/Tab.js +3 -1
  71. package/components/Tabs/Tab/Tab.js.map +1 -1
  72. package/components/Tabs/Tab.d.ts +11 -10
  73. package/components/Tabs/Tabs/Tabs.js +1 -6
  74. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  75. package/components/Tabs/Tabs.d.ts +7 -12
  76. package/components/Toast/Toast/Toast.js +2 -2
  77. package/components/Toast/Toast/Toast.js.map +1 -1
  78. package/components/Toast/Toast.d.ts +4 -4
  79. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  80. package/components/Tooltip/Tooltip.d.ts +1 -1
  81. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +0 -1
  82. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  83. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
  84. package/internal/Menu/Menu/Menu.js.map +1 -1
  85. package/internal/Menu/Menu.d.ts +1 -2
  86. package/internal/Popup/Popup/Popup.js +2 -26
  87. package/internal/Popup/Popup/Popup.js.map +1 -1
  88. package/internal/Popup/Popup.d.ts +0 -7
  89. package/internal/Popup/PopupHelper/PopupHelper.js +1 -114
  90. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  91. package/internal/Popup/PopupHelper.d.ts +0 -27
  92. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  93. package/internal/PopupMenu/PopupMenu.d.ts +3 -7
  94. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","globalObject","isInstanceOf","isKeyArrowLeft","isKeyArrowRight","isKeyEnter","locale","keyListener","emptyHandler","isIE11","ThemeContext","isThemeGTE","CommonWrapper","cx","rootNode","createPropsGetter","getVisualStateDataAttributes","ResponsiveLayout","styles","NavigationHelper","getItems","PagingLocaleHelper","PagingDefaultComponent","ForwardIcon","ForwardIconMobile","DotsIcon","IGNORE_EVENT_TAGS","PagingDataTids","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","_dec","_class","_Paging","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","_cx","createElement","className","theme","sizeClassNames","dotsDisabled","getDotsIcon","_cx2","classNames","pageLinkFocused","forwardLinkDisabled","Component","component","forward","forwardIcon","getForwardIcon","_extends","onClick","goForward","tabIndex","pageNumber","isMobile","caption","_cx3","pageLinkDisabled","pageLinkCurrent","pageLinkCurrentDisabled","handleClick","goToPage","onMouseDown","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","hint","Fragment","transparent","getKeyName","pageLinkHint","handleMouseDown","setState","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isArrowRight","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","executeItemAction","handleFocus","requestAnimationFrame","isTabPressed","handleBlur","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","iconSize","parseInt","pagingForwardIconSize","style","marginLeft","defaultSize","_inheritsLoose","isForward","_proto","prototype","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","_this2","Consumer","_ref","renderMain","_cx4","_this3","_this$getProps","rootNodeRef","setRootNode","paging","pagingMobile","pagingDisabled","onKeyDown","undefined","onFocus","onBlur","ref","map","PureComponent","__KONTUR_REACT_UI__","displayName"],"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","globalObject","isInstanceOf","isKeyArrowLeft","isKeyArrowRight","isKeyEnter","locale","keyListener","emptyHandler","isIE11","ThemeContext","isThemeGTE","CommonWrapper","cx","rootNode","createPropsGetter","getVisualStateDataAttributes","ResponsiveLayout","styles","NavigationHelper","getItems","PagingLocaleHelper","PagingDefaultComponent","ForwardIcon","ForwardIconMobile","DotsIcon","IGNORE_EVENT_TAGS","PagingDataTids","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","_dec","_class","_Paging","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","_cx","createElement","className","theme","sizeClassNames","dotsDisabled","getDotsIcon","_cx2","classNames","pageLinkFocused","forwardLinkDisabled","Component","component","forward","forwardIcon","getForwardIcon","_extends","onClick","goForward","tabIndex","pageNumber","isMobile","caption","_cx3","pageLinkDisabled","pageLinkCurrent","pageLinkCurrentDisabled","handleClick","goToPage","onMouseDown","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","hint","Fragment","transparent","getKeyName","pageLinkHint","handleMouseDown","setState","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isArrowRight","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","executeItemAction","handleFocus","requestAnimationFrame","isTabPressed","handleBlur","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","iconSize","parseInt","pagingForwardIconSize","style","marginLeft","defaultSize","_inheritsLoose","isForward","_proto","prototype","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","_this2","Consumer","_ref","renderMain","_cx4","_this3","_this$getProps","rootNodeRef","setRootNode","paging","pagingMobile","pagingDisabled","onKeyDown","undefined","onFocus","onBlur","ref","map","PureComponent","__KONTUR_REACT_UI__","displayName"],"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":"0JAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,QAAQ,0BAA0B;;AAEvD,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,cAAc,EAAEC,eAAe,EAAEC,UAAU,QAAQ,uCAAuC;AACnG,SAASC,MAAM,QAAQ,6BAA6B;;AAEpD,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,kBAAkB;AACzC,SAASC,YAAY,QAAQ,gCAAgC;;AAE7D,SAASC,UAAU,QAAQ,gCAAgC;;AAE3D,SAASC,aAAa,QAAQ,8BAA8B;AAC5D,SAASC,EAAE,QAAQ,2BAA2B;;AAE9C,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,iBAAiB,QAAQ,6BAA6B;AAC/D,SAASC,4BAA4B,QAAQ,iEAAiE;AAC9G,SAASC,gBAAgB,QAAQ,qBAAqB;;;AAGtD,SAASC,MAAM,QAAQ,iBAAiB;AACxC,OAAO,KAAKC,gBAAgB,MAAM,oBAAoB;AACtD,SAASC,QAAQ,QAAQ,gBAAgB;;AAEzC,SAASC,kBAAkB,QAAQ,UAAU;AAC7C,SAASC,sBAAsB,QAAQ,0BAA0B;AACjE,SAASC,WAAW,EAAEC,iBAAiB,QAAQ,eAAe;AAC9D,SAASC,QAAQ,QAAQ,YAAY;;AAErC,IAAMC,iBAAiB,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+D/C,OAAO,IAAMC,cAAc,GAAG;EAC5BC,IAAI,EAAE,cAAc;EACpBC,IAAI,EAAE,cAAc;EACpBC,WAAW,EAAE,qBAAqB;EAClCC,eAAe,EAAE,yBAAyB;EAC1CC,QAAQ,EAAE;AACZ,CAAU;;;;;;;;;;;AAWV;AACA;AACA;AACA;;AAEaC,MAAM,IAAAC,IAAA,GADlB5B,MAAM,CAAC,QAAQ,EAAEe,kBAAkB,CAAC,EADpCP,QAAQ,CAAAqB,MAAA,GAAAD,IAAA,CAAAC,MAAA,IAAAC,OAAA,0BAAAC,oBAAA,YAAAJ,OAAA,OAAAK,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,oBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,oBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;IAWCU,QAAQ,GAAGjC,iBAAiB,CAACkB,MAAM,CAACgB,YAAY,CAAC,CAAAX,KAAA;;;;;;;;;IASlDY,KAAK,GAAgB;MAC1BC,YAAY,EAAE,KAAK;MACnBC,WAAW,EAAE,IAAI;MACjBC,eAAe,EAAEf,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACM;IACnC,CAAC,CAAAhB,KAAA;;;;;;IAMOiB,mBAAmB,GAAG,KAAK,CAAAjB,KAAA;IAC3BkB,SAAS,GAA2B,IAAI,CAAAlB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgFxCmB,UAAU,GAAG,UAACC,IAAc,EAAEC,KAAa,EAAK;MACtD,IAAMC,OAAO,GAAGtB,KAAA,CAAKuB,cAAc,CAAC,CAAC,KAAKH,IAAI;MAC9C,QAAQA,IAAI;QACV,KAAK,GAAG,CAAE;YACR,IAAMI,GAAG,aAAUH,KAAK,GAAG,CAAC,GAAG,MAAM,GAAG,OAAO,CAAE;YACjD,OAAOrB,KAAA,CAAKyB,UAAU,CAACD,GAAG,CAAC;UAC7B;QACA,KAAK,SAAS,CAAE;YACd,IAAME,QAAQ,GAAG1B,KAAA,CAAK2B,cAAc,CAACP,IAAI,CAAC;YAC1C,OAAOpB,KAAA,CAAK4B,iBAAiB,CAACF,QAAQ,EAAEJ,OAAO,CAAC;UAClD;QACA,QAAS;YACP,IAAMO,MAAM,GAAG7B,KAAA,CAAK8B,KAAK,CAACC,UAAU,KAAKX,IAAI;YAC7C,OAAOpB,KAAA,CAAKgC,cAAc,CAACZ,IAAI,EAAES,MAAM,EAAEP,OAAO,CAAC;UACnD;MACF;IACF,CAAC,CAAAtB,KAAA;;IAEOyB,UAAU,GAAG,UAACD,GAAW,EAAK,KAAAS,GAAA;MACpC;QACEvE,KAAA,CAAAwE,aAAA;UACE,YAAU7C,cAAc,CAACE,IAAK;UAC9BiC,GAAG,EAAEA,GAAI;UACTW,SAAS,EAAE5D,EAAE,CAACK,MAAM,CAACW,IAAI,CAACS,KAAA,CAAKoC,KAAK,CAAC,EAAEpC,KAAA,CAAKqC,cAAc,CAAC9C,IAAI,GAAA0C,GAAA,OAAAA,GAAA;UAC5DrD,MAAM,CAAC0D,YAAY,CAACtC,KAAA,CAAKoC,KAAK,CAAC,IAAGpC,KAAA,CAAK8B,KAAK,CAACJ,QAAQ,EAAAO,GAAA;UACvD,CAAE;;QAEFjC,KAAA,CAAKuC,WAAW,CAAC;QACd,CAAC;;IAEX,CAAC,CAAAvC,KAAA;;IAEO4B,iBAAiB,GAAG,UAACF,QAAiB,EAAEJ,OAAgB,EAAkB,KAAAkB,IAAA;MAChF,IAAMC,UAAU,GAAGlE,EAAE;QACnBK,MAAM,CAACc,QAAQ,CAACM,KAAA,CAAKoC,KAAK,CAAC;QAC3BpC,KAAA,CAAKqC,cAAc,CAAC3C,QAAQ;QAC5Bd,MAAM,CAACY,WAAW,CAACQ,KAAA,CAAKoC,KAAK,CAAC;QAC9BpC,KAAA,CAAKqC,cAAc,CAAC7C,WAAW,GAAAgD,IAAA,OAAAA,IAAA;;QAE5B5D,MAAM,CAAC8D,eAAe,CAAC1C,KAAA,CAAKoC,KAAK,CAAC,IAAGd,OAAO,EAAAkB,IAAA;QAC5C5D,MAAM,CAAC+D,mBAAmB,CAAC3C,KAAA,CAAKoC,KAAK,CAAC,IAAGV,QAAQ,IAAI1B,KAAA,CAAK8B,KAAK,CAACJ,QAAQ,EAAAc,IAAA;;MAE7E,CAAC;MACD,IAAMI,SAAS,GAAG5C,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACmC,SAAS;MAC3C,IAAQC,OAAO,GAAK9C,KAAA,CAAKhC,MAAM,CAAvB8E,OAAO;;MAEf,IAAMC,WAAW,GAAG/C,KAAA,CAAKgD,cAAc,CAAC,CAAC;;MAEzC;QACEtF,KAAA,CAAAwE,aAAA,CAACU,SAAS,EAAAK,QAAA;UACRzB,GAAG,EAAE,SAAU;UACf,YAAUnC,cAAc,CAACG,WAAY;UACrCqC,MAAM,EAAE,KAAM;UACdM,SAAS,EAAEM,UAAW;UACtBS,OAAO,EAAExB,QAAQ,GAAGxD,YAAY,GAAG8B,KAAA,CAAKmD,SAAU;UAClDC,QAAQ,EAAE,CAAC,CAAE;UACbC,UAAU,EAAE,SAAmB;QAC3B3E,4BAA4B,CAAC,EAAEgD,QAAQ,EAARA,QAAQ,CAAC,CAAC,CAAC;;QAE7C,CAAC1B,KAAA,CAAKsD,QAAQ,KAAKtD,KAAA,CAAK8B,KAAK,CAACyB,OAAO,IAAIT,OAAO,CAAC;QACjDC;QACQ,CAAC;;IAEhB,CAAC,CAAA/C,KAAA;;IAEOgC,cAAc,GAAG,UAACqB,UAAkB,EAAExB,MAAe,EAAEP,OAAgB,EAAkB,KAAAkC,IAAA;MAC/F,IAAM9B,QAAQ,GAAG1B,KAAA,CAAK8B,KAAK,CAACJ,QAAQ;MACpC,IAAMe,UAAU,GAAGlE,EAAE,CAACK,MAAM,CAACc,QAAQ,CAACM,KAAA,CAAKoC,KAAK,CAAC,EAAEpC,KAAA,CAAKqC,cAAc,CAAC3C,QAAQ,GAAA8D,IAAA,OAAAA,IAAA;MAC5E5E,MAAM,CAAC8D,eAAe,CAAC1C,KAAA,CAAKoC,KAAK,CAAC,IAAGd,OAAO,EAAAkC,IAAA;MAC5C5E,MAAM,CAAC6E,gBAAgB,CAACzD,KAAA,CAAKoC,KAAK,CAAC,IAAGV,QAAQ,EAAA8B,IAAA;MAC9C5E,MAAM,CAAC8E,eAAe,CAAC1D,KAAA,CAAKoC,KAAK,CAAC,IAAGP,MAAM,EAAA2B,IAAA;MAC3C5E,MAAM,CAAC+E,uBAAuB,CAAC3D,KAAA,CAAKoC,KAAK,CAAC,IAAGP,MAAM,IAAIH,QAAQ,EAAA8B,IAAA;MACjE,CAAC;MACF,IAAMZ,SAAS,GAAG5C,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACmC,SAAS;MAC3C,IAAMe,WAAW,GAAG,SAAdA,WAAWA,CAAA,UAAS5D,KAAA,CAAK6D,QAAQ,CAACR,UAAU,CAAC;;MAEnD;QACE3F,KAAA,CAAAwE,aAAA,SAAAe,QAAA;UACE,YAAU5D,cAAc,CAACI,eAAgB;UACzC+B,GAAG,EAAE6B,UAAW;UAChBlB,SAAS,EAAEvD,MAAM,CAACa,eAAe,CAAC,CAAE;QAChCf,4BAA4B,CAAC,EAAEmD,MAAM,EAANA,MAAM,EAAEH,QAAQ,EAARA,QAAQ,CAAC,CAAC,CAAC;UACtDoC,WAAW,EAAE9D,KAAA,CAAK+D,uBAAwB;;QAE1CrG,KAAA,CAAAwE,aAAA,CAACU,SAAS;UACR,YAAUvD,cAAc,CAACK,QAAS;UAClCmC,MAAM,EAAEA,MAAO;UACfM,SAAS,EAAEM,UAAW;UACtBS,OAAO,EAAEU,WAAY;UACrBR,QAAQ,EAAE,CAAC,CAAE;UACbC,UAAU,EAAEA,UAAW;;QAEtBA;QACQ,CAAC;QACXxB,MAAM,IAAI,CAAC7B,KAAA,CAAKsD,QAAQ,IAAItD,KAAA,CAAKgE,oBAAoB,CAAC;QACnD,CAAC;;IAEX,CAAC,CAAAhE,KAAA;;IAEOgE,oBAAoB,GAAG,YAAM;MACnC,IAAIhE,KAAA,CAAK8B,KAAK,CAACmC,qBAAqB,EAAE;QACpC,OAAO,IAAI;MACb;;MAEA,IAAQlD,eAAe,GAAKf,KAAA,CAAKY,KAAK,CAA9BG,eAAe;MACvB,IAAMmD,aAAa,GAAGlE,KAAA,CAAKkE,aAAa,CAAC,CAAC;MAC1C,IAAMC,YAAY,GAAGnE,KAAA,CAAKmE,YAAY,CAAC,CAAC;;MAExC,IAAIC,IAAI,GAAG,IAAI;MACf,IAAIrD,eAAe,KAAKmD,aAAa,IAAIC,YAAY,CAAC,EAAE;QACtDC,IAAI;QACF1G,KAAA,CAAAwE,aAAA,CAAAxE,KAAA,CAAA2G,QAAA;QACE3G,KAAA,CAAAwE,aAAA,WAAMC,SAAS,EAAE+B,aAAa,GAAG,EAAE,GAAGtF,MAAM,CAAC0F,WAAW,CAAC,CAAE,IAAE,GAAU,CAAC;QACxE5G,KAAA,CAAAwE,aAAA,eAAOrD,gBAAgB,CAAC0F,UAAU,CAACvE,KAAA,CAAKoC,KAAK,CAAQ,CAAC;QACtD1E,KAAA,CAAAwE,aAAA,WAAMC,SAAS,EAAEgC,YAAY,GAAG,EAAE,GAAGvF,MAAM,CAAC0F,WAAW,CAAC,CAAE,IAAE,GAAU;QACtE,CACH;;MACH;MACA,oBAAO5G,KAAA,CAAAwE,aAAA,UAAKC,SAAS,EAAEvD,MAAM,CAAC4F,YAAY,CAACxE,KAAA,CAAKoC,KAAK,CAAE,IAAEgC,IAAU,CAAC;IACtE,CAAC,CAAApE,KAAA;;IAEOyE,eAAe,GAAG,YAAM;MAC9BzE,KAAA,CAAK0E,QAAQ,CAAC,EAAE7D,YAAY,EAAE,KAAK,EAAEC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAAd,KAAA;;IAEO+D,uBAAuB,GAAG,YAAM;MACtC,IAAI5F,MAAM,EAAE;QACV;QACA;QACAR,YAAY,CAACgH,UAAU,CAAC,oBAAM3E,KAAA,CAAKkB,SAAS,IAAIlB,KAAA,CAAKkB,SAAS,CAAC0D,KAAK,CAAC,CAAC,IAAE,CAAC,CAAC;MAC5E;IACF,CAAC,CAAA5E,KAAA;;IAEO6E,aAAa,GAAG,UAACC,CAAmD,EAAK;MAC/E,IAAIA,CAAC,CAACC,QAAQ,EAAE;QACd;MACF;;MAEA,IAAMC,MAAM,GAAGF,CAAC,CAACE,MAAM;;MAEvB,IAAMC,WAAW,GAAGpH,cAAc,CAACiH,CAAC,CAAC;MACrC,IAAMI,YAAY,GAAGpH,eAAe,CAACgH,CAAC,CAAC;;MAEvC;MACElH,YAAY,CAACoH,MAAM,EAAErH,YAAY,CAACwH,OAAO,CAAC;MACzC/F,iBAAiB,CAACgG,QAAQ,CAACJ,MAAM,CAACK,OAAO,CAACC,WAAW,CAAC,CAAC,CAAC,IAAKN,MAAM,CAAiBO,iBAAiB,CAAC;MACvG;QACA;MACF;;MAEA,IAAI1G,gBAAgB,CAAC2G,eAAe,CAACV,CAAC,EAAE9E,KAAA,CAAKoC,KAAK,CAAC,IAAI6C,WAAW,EAAE;QAClEjF,KAAA,CAAK0E,QAAQ,CAAC,EAAE5D,WAAW,EAAE,IAAI,CAAC,CAAC,EAAEd,KAAA,CAAKyF,UAAU,CAAC;QACrD;MACF;MACA,IAAI5G,gBAAgB,CAAC2G,eAAe,CAACV,CAAC,EAAE9E,KAAA,CAAKoC,KAAK,CAAC,IAAI8C,YAAY,EAAE;QACnElF,KAAA,CAAK0E,QAAQ,CAAC,EAAE5D,WAAW,EAAE,IAAI,CAAC,CAAC,EAAEd,KAAA,CAAKmD,SAAS,CAAC;QACpD;MACF;;MAEA,IAAInD,KAAA,CAAKkB,SAAS,IAAIlB,KAAA,CAAKkB,SAAS,KAAK4D,CAAC,CAACE,MAAM,EAAE;QACjD,IAAIC,WAAW,EAAE;UACfjF,KAAA,CAAK0E,QAAQ,CAAC,EAAE7D,YAAY,EAAE,IAAI,CAAC,CAAC,EAAEb,KAAA,CAAK0F,aAAa,CAAC;UACzD;QACF;QACA,IAAIR,YAAY,EAAE;UAChBlF,KAAA,CAAK0E,QAAQ,CAAC,EAAE7D,YAAY,EAAE,IAAI,CAAC,CAAC,EAAEb,KAAA,CAAK2F,cAAc,CAAC;UAC1D;QACF;QACA,IAAI5H,UAAU,CAAC+G,CAAC,CAAC,EAAE;UACjB9E,KAAA,CAAK4F,iBAAiB,CAAC5F,KAAA,CAAKuB,cAAc,CAAC,CAAC,CAAC;UAC7C;QACF;MACF;IACF,CAAC,CAAAvB,KAAA;;IAEO6F,WAAW,GAAG,YAAM;MAC1B,IAAI7F,KAAA,CAAK8B,KAAK,CAACJ,QAAQ,EAAE;QACvB;MACF;;MAEA1B,KAAA,CAAK0E,QAAQ,CAAC,EAAE3D,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;;MAExC;MACA;MACApD,YAAY,CAACmI,qBAAqB,YAAlCnI,YAAY,CAACmI,qBAAqB,CAAG,YAAM;QACzC,IAAI7H,WAAW,CAAC8H,YAAY,EAAE;UAC5B/F,KAAA,CAAK0E,QAAQ,CAAC,EAAE7D,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;QACvC;MACF,CAAC,CAAC;IACJ,CAAC,CAAAb,KAAA;;IAEOgG,UAAU,GAAG,YAAM;MACzBhG,KAAA,CAAK0E,QAAQ,CAAC;QACZ7D,YAAY,EAAE,KAAK;QACnBE,eAAe,EAAEf,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACM,iBAAiB,IAAI;MACxD,CAAC,CAAC;IACJ,CAAC,CAAAhB,KAAA;;IAEOlB,QAAQ,GAAG,YAAkB;MACnC,OAAOA,QAAQ,CAACkB,KAAA,CAAK8B,KAAK,CAACC,UAAU,EAAE/B,KAAA,CAAK8B,KAAK,CAACmE,UAAU,EAAEjG,KAAA,CAAKsD,QAAQ,CAAC,CAAC7C,MAAM,CAAC,SAAS,CAAC;IAChG,CAAC,CAAAT,KAAA;;IAEOuB,cAAc,GAAG,YAA0B;MACjD,IAAI,CAACvB,KAAA,CAAKY,KAAK,CAACC,YAAY,EAAE;QAC5B,OAAO,IAAI;MACb;;MAEA,IAAQC,WAAW,GAAKd,KAAA,CAAKY,KAAK,CAA1BE,WAAW;MACnB,IAAIA,WAAW,IAAId,KAAA,CAAKlB,QAAQ,CAAC,CAAC,CAACsG,QAAQ,CAACtE,WAAW,CAAC,IAAId,KAAA,CAAKkG,eAAe,CAACpF,WAAW,CAAC,EAAE;QAC7F,OAAOA,WAAW;MACpB;;MAEA,OAAOd,KAAA,CAAK8B,KAAK,CAACC,UAAU;IAC9B,CAAC,CAAA/B,KAAA;;IAEOkG,eAAe,GAAG,UAAC9E,IAAc,EAAK;MAC5C,OAAO,CAACpB,KAAA,CAAK2B,cAAc,CAACP,IAAI,CAAC;IACnC,CAAC,CAAApB,KAAA;;IAEO2B,cAAc,GAAG,UAACP,IAAc,EAAK;MAC3C,QAAQA,IAAI;QACV,KAAK,GAAG;UACN,OAAO,IAAI;QACb,KAAK,SAAS;UACZ,OAAO,CAACpB,KAAA,CAAKmE,YAAY,CAAC,CAAC;QAC7B;UACE,OAAO,KAAK;MAChB;IACF,CAAC,CAAAnE,KAAA;;IAEO4F,iBAAiB,GAAG,UAACxE,IAAwB,EAAK;MACxD,IAAIA,IAAI,KAAK,SAAS,EAAE;QACtBpB,KAAA,CAAKmD,SAAS,CAAC,CAAC;MAClB;MACA,IAAI,OAAO/B,IAAI,KAAK,QAAQ,EAAE;QAC5BpB,KAAA,CAAK6D,QAAQ,CAACzC,IAAI,CAAC;MACrB;IACF,CAAC,CAAApB,KAAA;;IAEO0F,aAAa,GAAG,YAAM;MAC5B1F,KAAA,CAAKmG,SAAS,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAAnG,KAAA;;IAEO2F,cAAc,GAAG,YAAM;MAC7B3F,KAAA,CAAKmG,SAAS,CAAC,CAAC,CAAC;IACnB,CAAC,CAAAnG,KAAA;;IAEOmG,SAAS,GAAG,UAACC,IAAY,EAAK;MACpC,IAAMtF,WAAW,GAAGd,KAAA,CAAKuB,cAAc,CAAC,CAAC;MACzC,IAAM8E,KAAK,GAAGrG,KAAA,CAAKlB,QAAQ,CAAC,CAAC;MAC7B,IAAIuC,KAAK,GAAGgF,KAAK,CAACC,SAAS,CAAC,UAACC,CAAC,UAAKA,CAAC,KAAKzF,WAAW,GAAC;MACrD,GAAG;QACDO,KAAK,GAAG,CAACA,KAAK,GAAG+E,IAAI,GAAGC,KAAK,CAAClG,MAAM,IAAIkG,KAAK,CAAClG,MAAM;MACtD,CAAC,QAAQ,CAACH,KAAA,CAAKkG,eAAe,CAACG,KAAK,CAAChF,KAAK,CAAC,CAAC;MAC5CrB,KAAA,CAAK0E,QAAQ,CAAC,EAAE5D,WAAW,EAAEuF,KAAK,CAAChF,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAArB,KAAA;;IAEOkE,aAAa,GAAG,YAAe;MACrC,OAAOlE,KAAA,CAAK8B,KAAK,CAACC,UAAU,GAAG,CAAC;IAClC,CAAC,CAAA/B,KAAA;;IAEOmE,YAAY,GAAG,YAAe;MACpC,OAAOnE,KAAA,CAAK8B,KAAK,CAACC,UAAU,GAAG/B,KAAA,CAAK8B,KAAK,CAACmE,UAAU;IACtD,CAAC,CAAAjG,KAAA;;IAEOyF,UAAU,GAAG,YAAM;MACzBzF,KAAA,CAAK6D,QAAQ,CAAC7D,KAAA,CAAK8B,KAAK,CAACC,UAAU,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAA/B,KAAA;;IAEOmD,SAAS,GAAG,YAAM;MACxBnD,KAAA,CAAK6D,QAAQ,CAAC7D,KAAA,CAAK8B,KAAK,CAACC,UAAU,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAA/B,KAAA;;IAEO6D,QAAQ,GAAG,UAACR,UAAkB,EAAK;MACzC,IAAIA,UAAU,IAAI,CAAC,IAAIA,UAAU,KAAKrD,KAAA,CAAK8B,KAAK,CAACC,UAAU,IAAIsB,UAAU,IAAIrD,KAAA,CAAK8B,KAAK,CAACmE,UAAU,EAAE;QAClGjG,KAAA,CAAK8B,KAAK,CAAC0E,YAAY,CAACnD,UAAU,CAAC;MACrC;IACF,CAAC,CAAArD,KAAA;;IAEOyG,iBAAiB,GAAG,YAAM,KAAAC,qBAAA;MAChC,IAAI1G,KAAA,CAAKiB,mBAAmB,EAAE;QAC5B;MACF;;MAEA,CAAAyF,qBAAA,GAAA/I,YAAY,CAACgJ,QAAQ,aAArBD,qBAAA,CAAuBE,gBAAgB,CAAC,SAAS,EAAE5G,KAAA,CAAK6E,aAAa,CAAC;MACtE7E,KAAA,CAAKiB,mBAAmB,GAAG,IAAI;IACjC,CAAC,CAAAjB,KAAA;;IAEO6G,oBAAoB,GAAG,YAAM;MACnC,IAAI7G,KAAA,CAAKiB,mBAAmB,EAAE,KAAA6F,sBAAA;QAC5B,CAAAA,sBAAA,GAAAnJ,YAAY,CAACgJ,QAAQ,aAArBG,sBAAA,CAAuBC,mBAAmB,CAAC,SAAS,EAAE/G,KAAA,CAAK6E,aAAa,CAAC;;QAEzE7E,KAAA,CAAKiB,mBAAmB,GAAG,KAAK;MAClC;IACF,CAAC,CAAAjB,KAAA;;IAEOgH,YAAY,GAAG,UAACC,OAA+B,EAAK;MAC1DjH,KAAA,CAAKkB,SAAS,GAAG+F,OAAO;IAC1B,CAAC,CAAAjH,KAAA;;IAEOkH,uBAAuB,GAAG,YAA4B;MAC5D,IAAMC,IAAI,GAAGnH,KAAA,CAAKoH,OAAO,CAAC,CAAC;MAC3B,QAAQD,IAAI;QACV,KAAK,QAAQ;UACX,OAAO;YACL7H,IAAI,EAAEV,MAAM,CAACyI,YAAY,CAACrH,KAAA,CAAKoC,KAAK,CAAC;YACrC7C,IAAI,EAAEX,MAAM,CAAC0I,UAAU,CAACtH,KAAA,CAAKoC,KAAK,CAAC;YACnC5C,WAAW,EAAEZ,MAAM,CAAC2I,iBAAiB,CAACvH,KAAA,CAAKoC,KAAK,CAAC;YACjD1C,QAAQ,EAAEd,MAAM,CAAC4I,cAAc,CAACxH,KAAA,CAAKoC,KAAK;UAC5C,CAAC;QACH,KAAK,OAAO;UACV,OAAO;YACL9C,IAAI,EAAEV,MAAM,CAAC6I,WAAW,CAACzH,KAAA,CAAKoC,KAAK,CAAC;YACpC7C,IAAI,EAAEX,MAAM,CAAC8I,SAAS,CAAC1H,KAAA,CAAKoC,KAAK,CAAC;YAClC5C,WAAW,EAAEZ,MAAM,CAAC+I,gBAAgB,CAAC3H,KAAA,CAAKoC,KAAK,CAAC;YAChD1C,QAAQ,EAAEd,MAAM,CAACgJ,aAAa,CAAC5H,KAAA,CAAKoC,KAAK;UAC3C,CAAC;QACH,KAAK,QAAQ;UACX,OAAO;YACL9C,IAAI,EAAEV,MAAM,CAACiJ,YAAY,CAAC7H,KAAA,CAAKoC,KAAK,CAAC;YACrC7C,IAAI,EAAEX,MAAM,CAACkJ,UAAU,CAAC9H,KAAA,CAAKoC,KAAK,CAAC;YACnC5C,WAAW,EAAEQ,KAAA,CAAKsD,QAAQ;YACtB1E,MAAM,CAACmJ,uBAAuB,CAAC/H,KAAA,CAAKoC,KAAK,CAAC;YAC1CxD,MAAM,CAACoJ,iBAAiB,CAAChI,KAAA,CAAKoC,KAAK,CAAC;YACxC1C,QAAQ,EAAEd,MAAM,CAACqJ,cAAc,CAACjI,KAAA,CAAKoC,KAAK;UAC5C,CAAC;QACH,KAAK,OAAO;UACV,OAAO;YACL9C,IAAI,EAAEV,MAAM,CAACsJ,WAAW,CAAClI,KAAA,CAAKoC,KAAK,CAAC;YACpC7C,IAAI,EAAEX,MAAM,CAACuJ,SAAS,CAACnI,KAAA,CAAKoC,KAAK,CAAC;YAClC5C,WAAW,EAAEQ,KAAA,CAAKsD,QAAQ,GAAG1E,MAAM,CAACwJ,sBAAsB,CAACpI,KAAA,CAAKoC,KAAK,CAAC,GAAGxD,MAAM,CAACyJ,gBAAgB,CAACrI,KAAA,CAAKoC,KAAK,CAAC;YAC5G1C,QAAQ,EAAEd,MAAM,CAAC0J,aAAa,CAACtI,KAAA,CAAKoC,KAAK;UAC3C,CAAC;QACH;UACE,MAAM,IAAImG,SAAS,0BAAwBvI,KAAA,CAAK8B,KAAK,CAACqF,IAAI,MAAG,CAAC;MAClE;IACF,CAAC,CAAAnH,KAAA;;IAEOuC,WAAW,GAAG,YAAM;MAC1B,IAAM4E,IAAI,GAAGnH,KAAA,CAAKoH,OAAO,CAAC,CAAC;MAC3B,OAAOD,IAAI,KAAK,QAAQ,GAAG,KAAK,gBAAGzJ,KAAA,CAAAwE,aAAA,CAAC/C,QAAQ,IAACgI,IAAI,EAAEA,IAAK,EAAE,CAAC;IAC7D,CAAC,CAAAnH,KAAA;;IAEOgD,cAAc,GAAG,YAAM;MAC7B,IAAMmE,IAAI,GAAGnH,KAAA,CAAKoH,OAAO,CAAC,CAAC;MAC3B,IAAMoB,QAAQ,GAAGrB,IAAI,KAAK,QAAQ,GAAGsB,QAAQ,CAACzI,KAAA,CAAKoC,KAAK,CAACsG,qBAAqB,CAAC,GAAGvB,IAAI;MACtF,OAAOnH,KAAA,CAAKsD,QAAQ;MAClB5F,KAAA,CAAAwE,aAAA,CAAChD,iBAAiB,IAACiI,IAAI,EAAEqB,QAAS,EAAE,CAAC;;MAErC9K,KAAA,CAAAwE,aAAA,CAACjD,WAAW,IAACkI,IAAI,EAAEqB,QAAS,EAACG,KAAK,EAAE,EAAEC,UAAU,EAAE,CAAC,CAAC,CAAE,EAAE,CACzD;;IACH,CAAC,CAAA5I,KAAA;;IAEOoH,OAAO,GAAG,YAAM;MACtB,IAAIpH,KAAA,CAAK8B,KAAK,CAACqF,IAAI,EAAE;QACnB,OAAOnH,KAAA,CAAKsD,QAAQ,IAAItD,KAAA,CAAK8B,KAAK,CAACqF,IAAI,KAAK,OAAO,GAAG,QAAQ,GAAGnH,KAAA,CAAK8B,KAAK,CAACqF,IAAI;MAClF;;MAEA,IAAM0B,WAAW,GAAGxK,UAAU,CAAC2B,KAAA,CAAKoC,KAAK,EAAE,KAAK,CAAC,GAAG,OAAO,GAAG,QAAQ;MACtE,OAAOpC,KAAA,CAAKsD,QAAQ,IAAIuF,WAAW,KAAK,OAAO,GAAG,QAAQ,GAAGA,WAAW;IAC1E,CAAC,QAAA7I,KAAA,EAAA8I,cAAA,CAAAnJ,MAAA,EAAAI,oBAAA,EAAAJ,MAAA,CAvcaoJ,SAAS,GAAvB,SAAAA,UAAwB1F,UAA8B,EAAW,CAC/D,OAAOA,UAAU,KAAK,SAAS,CACjC,CAAC,KAAA2F,MAAA,GAAArJ,MAAA,CAAAsJ,SAAA,CAAAD,MAAA,CAeME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAMlI,iBAAiB,GAAG,IAAI,CAACN,QAAQ,CAAC,CAAC,CAACM,iBAAiB,CAC3D,IAAIA,iBAAiB,EAAE,CACrB,IAAI,CAACyF,iBAAiB,CAAC,CAAC,CAC1B,CACF,CAAC,CAAAuC,MAAA,CAEMG,kBAAkB,GAAzB,SAAAA,mBAA0BC,SAAsB,EAAE,CAChD,IAAMpI,iBAAiB,GAAG,IAAI,CAACN,QAAQ,CAAC,CAAC,CAACM,iBAAiB,CAC3D,IAAI,CAACoI,SAAS,CAACpI,iBAAiB,IAAIA,iBAAiB,EAAE,CACrD,IAAI,CAACyF,iBAAiB,CAAC,CAAC,CAC1B,CAEA,IAAI2C,SAAS,CAACpI,iBAAiB,IAAI,CAACA,iBAAiB,EAAE,CACrD,IAAI,CAAC6F,oBAAoB,CAAC,CAAC,CAC7B,CAEA,IAAIuC,SAAS,CAACpI,iBAAiB,KAAKA,iBAAiB,EAAE,CACrD,IAAI,CAAC0D,QAAQ,CAAC,EACZ3D,eAAe,EAAEC,iBAAiB,CACpC,CAAC,CAAC,CACJ,CACF,CAAC,CAAAgI,MAAA,CAEMK,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,CAC5B,IAAI,CAACxC,oBAAoB,CAAC,CAAC,CAC7B,CAAC,CAAAmC,MAAA,CAEMM,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,IAAI,IAAI,CAACzH,KAAK,CAACmE,UAAU,GAAG,CAAC,EAAE,CAC7B,OAAO,IAAI,CACb,CAEA,oBACEvI,KAAA,CAAAwE,aAAA,CAAC9D,YAAY,CAACoL,QAAQ,QACnB,UAACpH,KAAK,EAAK,CACVmH,MAAI,CAACnH,KAAK,GAAGA,KAAK,CAClB,oBACE1E,KAAA,CAAAwE,aAAA,CAACvD,gBAAgB,QACd,UAAA8K,IAAA,EAAkB,KAAfnG,QAAQ,GAAAmG,IAAA,CAARnG,QAAQ,CACViG,MAAI,CAACjG,QAAQ,GAAGA,QAAQ,IAAIjF,UAAU,CAACkL,MAAI,CAACnH,KAAK,EAAE,KAAK,CAAC,CACzDmH,MAAI,CAAClH,cAAc,GAAGkH,MAAI,CAACrC,uBAAuB,CAAC,CAAC,CACpD,OAAOqC,MAAI,CAACG,UAAU,CAAC,CAAC,CAC1B,CACgB,CAAC,CAEvB,CACqB,CAAC,CAE5B,CAAC,CAAAV,MAAA,CAEOU,UAAU,GAAlB,SAAAA,WAAA,EAAqB,KAAAC,IAAA,CAAAC,MAAA,QACnB,IAAAC,cAAA,GAA8B,IAAI,CAACnJ,QAAQ,CAAC,CAAC,CAArCM,iBAAiB,GAAA6I,cAAA,CAAjB7I,iBAAiB,CACzB,oBACEtD,KAAA,CAAAwE,aAAA,CAAC5D,aAAa,EAAA2E,QAAA,GACZ6G,WAAW,EAAE,IAAI,CAACC,WAAY,IAC1B,IAAI,CAACjI,KAAK,EACVpD,4BAA4B,CAAC,EAAEgD,QAAQ,EAAE,IAAI,CAACI,KAAK,CAACJ,QAAQ,CAAC,CAAC,CAAC,gBAEnEhE,KAAA,CAAAwE,aAAA,WACEkB,QAAQ,EAAE,IAAI,CAACtB,KAAK,CAACJ,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAE,EACvC,YAAUrC,cAAc,CAACC,IAAK,EAC9B6C,SAAS,EAAE5D,EAAE,CAACK,MAAM,CAACoL,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC3H,cAAc,CAAC/C,IAAI,GAAAqK,IAAA,OAAAA,IAAA,CACpD/K,MAAM,CAACqL,YAAY,CAAC,CAAC,IAAG,IAAI,CAAC3G,QAAQ,EAAAqG,IAAA,CACrC/K,MAAM,CAACsL,cAAc,CAAC,CAAC,IAAG,IAAI,CAACpI,KAAK,CAACJ,QAAQ,EAAAiI,IAAA,CAC/C,CAAE,EACHQ,SAAS,EAAEnJ,iBAAiB,GAAGoJ,SAAS,GAAG,IAAI,CAACvF,aAAc,EAC9DwF,OAAO,EAAE,IAAI,CAACxE,WAAY,EAC1ByE,MAAM,EAAE,IAAI,CAACtE,UAAW,EACxBlC,WAAW,EAAE,IAAI,CAACW,eAAgB,EAClC8F,GAAG,EAAE,IAAI,CAACvD,YAAa,IAEtB,IAAI,CAAClI,QAAQ,CAAC,CAAC,CAAC0L,GAAG,CAAC,UAACpJ,IAAI,EAAEC,KAAK,UAAKuI,MAAI,CAACzI,UAAU,CAACC,IAAI,EAAEC,KAAK,CAAC,GAC9D,CACO,CAAC,CAEpB,CAAC,QAAA1B,MAAA,GA3GyBjC,KAAK,CAAC+M,aAAa,GAAA3K,OAAA,CAC/B4K,mBAAmB,GAAG,QAAQ,EAAA5K,OAAA,CAC9B6K,WAAW,GAAG,QAAQ,EAAA7K,OAAA,CAEtBa,YAAY,GAAiB,EACzCkC,SAAS,EAAE7D,sBAAsB,EACjCgC,iBAAiB,EAAE,KAAK,CAC1B,CAAC,EAAAlB,OAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
@@ -32,9 +32,9 @@ export interface PagingProps extends CommonProps {
32
32
  /** Делает компонент недоступным. */
33
33
  disabled?: boolean;
34
34
  /** Отключает навигационные подсказки.
35
- * По-умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо элемент в фокусе, либо globalListeners === true). */
35
+ * По умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо элемент в фокусе, либо globalListeners === true). */
36
36
  withoutNavigationHint?: boolean;
37
- /** Задает подпить у пейджинга. */
37
+ /** Подпись у пейджинга. */
38
38
  caption?: string;
39
39
  /** Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.
40
40
  * Если на странице используется несколько элементов **Paging** с useGlobalListener === true,
@@ -1,5 +1,5 @@
1
1
  import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
2
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
2
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
3
3
  import { css, memoizeStyle } from "../../../lib/theming/Emotion";
4
4
  export var styles = memoizeStyle({
5
5
  root: function root(t) {
@@ -16,5 +16,8 @@ export var styles = memoizeStyle({
16
16
  },
17
17
  error: function error(t) {
18
18
  return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n background: ", ";\n "])), t.tabColorError);
19
+ },
20
+ customizationExample: function customizationExample() {
21
+ return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n height: 5px;\n background-color: orange;\n "])));
19
22
  }
20
23
  });
@@ -1 +1 @@
1
- {"version":3,"names":["css","memoizeStyle","styles","root","t","_templateObject","_taggedTemplateLiteralLoose","tabColorFocus","tabBorderWidth","tabIndicatorBorderRadius","primary","_templateObject2","tabColorPrimary","success","_templateObject3","tabColorSuccess","warning","_templateObject4","tabColorWarning","error","_templateObject5","tabColorError"],"sources":["Indicator.styles.ts"],"sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n background: ${t.tabColorFocus};\n height: ${t.tabBorderWidth};\n position: absolute;\n transition: all 0.2s ease-out;\n border-radius: ${t.tabIndicatorBorderRadius};\n `;\n },\n\n primary(t: Theme) {\n return css`\n background: ${t.tabColorPrimary};\n `;\n },\n\n success(t: Theme) {\n return css`\n background: ${t.tabColorSuccess};\n `;\n },\n\n warning(t: Theme) {\n return css`\n background: ${t.tabColorWarning};\n `;\n },\n\n error(t: Theme) {\n return css`\n background: ${t.tabColorError};\n `;\n },\n});\n"],"mappings":"4LAAA,SAASA,GAAG,EAAEC,YAAY,QAAQ,2BAA2B;;;AAG7D,OAAO,IAAMC,MAAM,GAAGD,YAAY,CAAC;EACjCE,IAAI,WAAAA,KAACC,CAAQ,EAAE;IACb,OAAOJ,GAAG,CAAAK,eAAA,KAAAA,eAAA,GAAAC,2BAAA;IACMF,CAAC,CAACG,aAAa;IACnBH,CAAC,CAACI,cAAc;;;IAGTJ,CAAC,CAACK,wBAAwB;;EAE/C,CAAC;;EAEDC,OAAO,WAAAA,QAACN,CAAQ,EAAE;IAChB,OAAOJ,GAAG,CAAAW,gBAAA,KAAAA,gBAAA,GAAAL,2BAAA;IACMF,CAAC,CAACQ,eAAe;;EAEnC,CAAC;;EAEDC,OAAO,WAAAA,QAACT,CAAQ,EAAE;IAChB,OAAOJ,GAAG,CAAAc,gBAAA,KAAAA,gBAAA,GAAAR,2BAAA;IACMF,CAAC,CAACW,eAAe;;EAEnC,CAAC;;EAEDC,OAAO,WAAAA,QAACZ,CAAQ,EAAE;IAChB,OAAOJ,GAAG,CAAAiB,gBAAA,KAAAA,gBAAA,GAAAX,2BAAA;IACMF,CAAC,CAACc,eAAe;;EAEnC,CAAC;;EAEDC,KAAK,WAAAA,MAACf,CAAQ,EAAE;IACd,OAAOJ,GAAG,CAAAoB,gBAAA,KAAAA,gBAAA,GAAAd,2BAAA;IACMF,CAAC,CAACiB,aAAa;;EAEjC;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["css","memoizeStyle","styles","root","t","_templateObject","_taggedTemplateLiteralLoose","tabColorFocus","tabBorderWidth","tabIndicatorBorderRadius","primary","_templateObject2","tabColorPrimary","success","_templateObject3","tabColorSuccess","warning","_templateObject4","tabColorWarning","error","_templateObject5","tabColorError","customizationExample","_templateObject6"],"sources":["Indicator.styles.ts"],"sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n background: ${t.tabColorFocus};\n height: ${t.tabBorderWidth};\n position: absolute;\n transition: all 0.2s ease-out;\n border-radius: ${t.tabIndicatorBorderRadius};\n `;\n },\n\n primary(t: Theme) {\n return css`\n background: ${t.tabColorPrimary};\n `;\n },\n\n success(t: Theme) {\n return css`\n background: ${t.tabColorSuccess};\n `;\n },\n\n warning(t: Theme) {\n return css`\n background: ${t.tabColorWarning};\n `;\n },\n\n error(t: Theme) {\n return css`\n background: ${t.tabColorError};\n `;\n },\n\n customizationExample() {\n return css`\n height: 5px;\n background-color: orange;\n `;\n },\n});\n"],"mappings":"8MAAA,SAASA,GAAG,EAAEC,YAAY,QAAQ,2BAA2B;;;AAG7D,OAAO,IAAMC,MAAM,GAAGD,YAAY,CAAC;EACjCE,IAAI,WAAAA,KAACC,CAAQ,EAAE;IACb,OAAOJ,GAAG,CAAAK,eAAA,KAAAA,eAAA,GAAAC,2BAAA;IACMF,CAAC,CAACG,aAAa;IACnBH,CAAC,CAACI,cAAc;;;IAGTJ,CAAC,CAACK,wBAAwB;;EAE/C,CAAC;;EAEDC,OAAO,WAAAA,QAACN,CAAQ,EAAE;IAChB,OAAOJ,GAAG,CAAAW,gBAAA,KAAAA,gBAAA,GAAAL,2BAAA;IACMF,CAAC,CAACQ,eAAe;;EAEnC,CAAC;;EAEDC,OAAO,WAAAA,QAACT,CAAQ,EAAE;IAChB,OAAOJ,GAAG,CAAAc,gBAAA,KAAAA,gBAAA,GAAAR,2BAAA;IACMF,CAAC,CAACW,eAAe;;EAEnC,CAAC;;EAEDC,OAAO,WAAAA,QAACZ,CAAQ,EAAE;IAChB,OAAOJ,GAAG,CAAAiB,gBAAA,KAAAA,gBAAA,GAAAX,2BAAA;IACMF,CAAC,CAACc,eAAe;;EAEnC,CAAC;;EAEDC,KAAK,WAAAA,MAACf,CAAQ,EAAE;IACd,OAAOJ,GAAG,CAAAoB,gBAAA,KAAAA,gBAAA,GAAAd,2BAAA;IACMF,CAAC,CAACiB,aAAa;;EAEjC,CAAC;;EAEDC,oBAAoB,WAAAA,qBAAA,EAAG;IACrB,OAAOtB,GAAG,CAAAuB,gBAAA,KAAAA,gBAAA,GAAAjB,2BAAA;;;;EAIZ;AACF,CAAC,CAAC","ignoreList":[]}
@@ -5,4 +5,5 @@ export declare const styles: {
5
5
  success(t: Theme): string;
6
6
  warning(t: Theme): string;
7
7
  error(t: Theme): string;
8
+ customizationExample(): string;
8
9
  };
@@ -21,7 +21,9 @@ export var TabDataTids = {
21
21
  };
22
22
 
23
23
  /**
24
- * Вложенный элемент компонента Tabs.
24
+ * Табы группируют контент и помогают в навигации.
25
+ *
26
+ * Для создания группы табов используйте специальный контейнер - компонент [Tabs](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-tabs-tabs--docs).
25
27
  */
26
28
  export var Tab = rootNode(_class = (_Tab = /*#__PURE__*/function (_React$Component) {
27
29
  function Tab(props) {
@@ -1 +1 @@
1
- {"version":3,"names":["React","invariant","globalObject","ResizeDetector","isKeyArrow","isKeyArrowLeft","isKeyArrowUp","keyListener","isFunctionalComponent","ThemeContext","CommonWrapper","cx","rootNode","createPropsGetter","getVisualStateDataAttributes","TabsContext","TabsContextDefaultValue","globalClasses","horizontalStyles","styles","verticalStyles","TabDataTids","root","Tab","_class","_Tab","_React$Component","props","_this","call","context","getProps","defaultProps","state","focusedByKeyboard","tabComponent","getUnderlyingNode","getId","id","href","refTabComponent","instance","getTabInstance","switchTab","event","disabled","preventDefault","_this$getProps","component","onClick","defaultPrevented","handleKeyDown","e","onKeyDown","delta","shiftFocus","handleFocus","requestAnimationFrame","isTabPressed","isArrowPressed","setState","handleBlur","_inheritsLoose","_proto","prototype","componentDidMount","addTab","componentDidUpdate","activeTab","notifyUpdate","componentWillUnmount","removeTab","render","_this2","createElement","Consumer","theme","renderMain","getIndicators","error","Boolean","warning","success","primary","_cx","_cx2","_this$props","children","ariaDescribedby","ariaLabel","_this$getProps2","Component","isActive","isVertical","vertical","orientationStyles","_extends","rootNodeRef","setRootNode","active","className","rootSmall","size","rootMedium","rootLarge","verticalSmall","verticalMedium","verticalLarge","onBlur","onFocus","tabIndex","ref","onResize","focus","focusSmall","focusMedium","focusLarge","__KONTUR_REACT_UI__","displayName","contextType"],"sources":["Tab.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport invariant from 'invariant';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isKeyArrow, isKeyArrowLeft, isKeyArrowUp } from '../../lib/events/keyboard/identifiers';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { Nullable } from '../../typings/utility-types';\nimport { isFunctionalComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport type { TabsContextType } from './TabsContext';\nimport { TabsContext, TabsContextDefaultValue } from './TabsContext';\nimport { globalClasses, horizontalStyles, styles, verticalStyles } from './Tab.styles';\n\nexport interface TabIndicators {\n error: boolean;\n warning: boolean;\n success: boolean;\n primary: boolean;\n disabled: boolean;\n}\n\nexport const TabDataTids = {\n root: 'Tab__root',\n} as const;\n\nexport interface TabProps<T extends string = string>\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n CommonProps {\n /** Позволяет передавать свой компонент, строку или функцию, которая заменит собой элемент используемый в компоненте по умолчанию.\n * Реализует паттерн [render prop](https://www.patterns.dev/posts/render-props-pattern). */\n component?: React.ComponentType<any> | string;\n\n /** Задает HTML-атрибут `href` - адрес, на который следует перейти. */\n href?: string;\n\n /** Задает уникальный идентификатор таба. По нему компонент `<Tabs />` определяет какой `<Tab />` сейчас выбран. */\n id?: T;\n\n /**`HTML`-событие `onclick`. */\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /** `HTML`-событие `onkeydown`. */\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Устанавливает визульное состояние валидации \"успех\". */\n success?: boolean;\n\n /** Задает визульное состояние главного элемента. */\n primary?: boolean;\n}\n\nexport interface TabState {\n focusedByKeyboard: boolean;\n}\n\ntype DefaultProps = Required<Pick<TabProps, 'component' | 'href'>>;\n\n/**\n * Вложенный элемент компонента Tabs.\n */\n@rootNode\nexport class Tab<T extends string = string> extends React.Component<TabProps<T>, TabState> {\n public static __KONTUR_REACT_UI__ = 'Tab';\n public static displayName = 'Tab';\n\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public static defaultProps: DefaultProps = {\n component: 'a',\n href: '',\n };\n\n private getProps = createPropsGetter(Tab.defaultProps);\n\n public state: TabState = {\n focusedByKeyboard: false,\n };\n\n private theme!: Theme;\n private tabComponent: Nullable<React.ReactElement<Tab<T>>> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n constructor(props: TabProps<T>) {\n super(props);\n invariant(this.context !== TabsContextDefaultValue, 'Tab should be placed inside Tabs component');\n }\n\n public componentDidMount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.addTab(id, this.getTabInstance);\n }\n }\n\n public componentDidUpdate() {\n if (this.context.activeTab === this.props.id) {\n this.context.notifyUpdate();\n }\n }\n\n public componentWillUnmount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.removeTab(id);\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getIndicators() {\n return {\n error: Boolean(this.props.error),\n warning: Boolean(this.props.warning),\n success: Boolean(this.props.success),\n primary: Boolean(this.props.primary),\n disabled: Boolean(this.props.disabled),\n };\n }\n\n public getUnderlyingNode = () => this.tabComponent;\n\n private renderMain() {\n const {\n children,\n disabled,\n error,\n warning,\n success,\n primary,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n } = this.props;\n const { component: Component, href } = this.getProps();\n\n let isActive = false;\n let isVertical = false;\n\n const id = this.getId();\n if (typeof id === 'string') {\n isActive = this.context.activeTab === this.getId();\n isVertical = this.context.vertical;\n }\n const orientationStyles = isVertical ? verticalStyles : horizontalStyles;\n\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...getVisualStateDataAttributes({ active: isActive, disabled })}\n {...this.props}\n >\n <Component\n data-tid={TabDataTids.root}\n className={cx({\n [styles.rootSmall(this.theme)]: this.context.size === 'small',\n [styles.rootMedium(this.theme)]: this.context.size === 'medium',\n [styles.rootLarge(this.theme)]: this.context.size === 'large',\n [styles.verticalSmall(this.theme)]: !!isVertical && this.context.size === 'small',\n [styles.verticalMedium(this.theme)]: !!isVertical && this.context.size === 'medium',\n [styles.verticalLarge(this.theme)]: !!isVertical && this.context.size === 'large',\n [orientationStyles.primary(this.theme)]: !!primary,\n [orientationStyles.success(this.theme)]: !!success,\n [orientationStyles.warning(this.theme)]: !!warning,\n [orientationStyles.error(this.theme)]: !!error,\n [styles.active()]: !!isActive,\n [orientationStyles.active(this.theme)]: !!isActive,\n [styles.disabled(this.theme)]: !!disabled,\n [orientationStyles.disabled()]: !!disabled,\n })}\n onBlur={this.handleBlur}\n onClick={this.switchTab}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n tabIndex={disabled ? -1 : 0}\n ref={isFunctionalComponent(Component) ? null : this.refTabComponent}\n href={href}\n aria-describedby={ariaDescribedby}\n aria-label={ariaLabel}\n >\n <ResizeDetector onResize={this.context.notifyUpdate}>{children}</ResizeDetector>\n {this.state.focusedByKeyboard && (\n <div\n className={cx(globalClasses.focus, {\n [styles.focusSmall(this.theme)]: this.context.size === 'small',\n [styles.focusMedium(this.theme)]: this.context.size === 'medium',\n [styles.focusLarge(this.theme)]: this.context.size === 'large',\n })}\n />\n )}\n </Component>\n </CommonWrapper>\n );\n }\n\n private getId = () => this.props.id || this.getProps().href;\n\n private refTabComponent = (instance: React.ReactElement<any>) => {\n this.tabComponent = instance;\n };\n\n private getTabInstance = () => this;\n\n private switchTab = (event: React.MouseEvent<HTMLElement>) => {\n if (this.props.disabled) {\n event.preventDefault();\n return;\n }\n const { href, component } = this.getProps();\n\n const id = this.props.id || href;\n if (this.props.onClick) {\n this.props.onClick(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n if (typeof id === 'string') {\n this.context.switchTab(id);\n }\n if (component === 'a' && !href) {\n event.preventDefault();\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n if (e.defaultPrevented) {\n return;\n }\n }\n const id = this.getId();\n if (typeof id !== 'string') {\n return;\n }\n if (!isKeyArrow(e)) {\n return;\n }\n e.preventDefault();\n const delta = isKeyArrowLeft(e) || isKeyArrowUp(e) ? -1 : 1;\n this.context.shiftFocus(id, delta);\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n // focus event fires before keyDown eventlistener\n // so we should check focusKeyPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed || keyListener.isArrowPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n };\n\n private handleBlur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focusedByKeyboard: false });\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","invariant","globalObject","ResizeDetector","isKeyArrow","isKeyArrowLeft","isKeyArrowUp","keyListener","isFunctionalComponent","ThemeContext","CommonWrapper","cx","rootNode","createPropsGetter","getVisualStateDataAttributes","TabsContext","TabsContextDefaultValue","globalClasses","horizontalStyles","styles","verticalStyles","TabDataTids","root","Tab","_class","_Tab","_React$Component","props","_this","call","context","getProps","defaultProps","state","focusedByKeyboard","tabComponent","getUnderlyingNode","getId","id","href","refTabComponent","instance","getTabInstance","switchTab","event","disabled","preventDefault","_this$getProps","component","onClick","defaultPrevented","handleKeyDown","e","onKeyDown","delta","shiftFocus","handleFocus","requestAnimationFrame","isTabPressed","isArrowPressed","setState","handleBlur","_inheritsLoose","_proto","prototype","componentDidMount","addTab","componentDidUpdate","activeTab","notifyUpdate","componentWillUnmount","removeTab","render","_this2","createElement","Consumer","theme","renderMain","getIndicators","error","Boolean","warning","success","primary","_cx","_cx2","_this$props","children","ariaDescribedby","ariaLabel","_this$getProps2","Component","isActive","isVertical","vertical","orientationStyles","_extends","rootNodeRef","setRootNode","active","className","rootSmall","size","rootMedium","rootLarge","verticalSmall","verticalMedium","verticalLarge","onBlur","onFocus","tabIndex","ref","onResize","focus","focusSmall","focusMedium","focusLarge","__KONTUR_REACT_UI__","displayName","contextType"],"sources":["Tab.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport invariant from 'invariant';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isKeyArrow, isKeyArrowLeft, isKeyArrowUp } from '../../lib/events/keyboard/identifiers';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { Nullable } from '../../typings/utility-types';\nimport { isFunctionalComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport type { TabsContextType } from './TabsContext';\nimport { TabsContext, TabsContextDefaultValue } from './TabsContext';\nimport { globalClasses, horizontalStyles, styles, verticalStyles } from './Tab.styles';\n\nexport interface TabIndicators {\n error: boolean;\n warning: boolean;\n success: boolean;\n primary: boolean;\n disabled: boolean;\n}\n\nexport const TabDataTids = {\n root: 'Tab__root',\n} as const;\n\nexport interface TabProps<T extends string = string>\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n CommonProps {\n /** Компонент или тег для рендера корневого элемента. */\n component?: React.ComponentType<any> | string;\n\n /** HTML-атрибут `href`. */\n href?: string;\n\n /** Уникальный идентификатор таба. По нему компонент `<Tabs />` определяет выбранный таб. */\n id?: T;\n\n /**`HTML`-событие `onclick`. */\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /** `HTML`-событие `onkeydown`. */\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Делает таб недоступным. */\n disabled?: boolean;\n\n /** Переводит таб в состояние валидации \"Ошибка\". */\n error?: boolean;\n\n /** Переводит таб в состояние валидации \"Предупреждение\". */\n warning?: boolean;\n\n /** Переводит таб в состояние валидации \"Успех\". */\n success?: boolean;\n\n /** Задаёт визульное состояние главного элемента. */\n primary?: boolean;\n}\n\nexport interface TabState {\n focusedByKeyboard: boolean;\n}\n\ntype DefaultProps = Required<Pick<TabProps, 'component' | 'href'>>;\n\n/**\n * Табы группируют контент и помогают в навигации.\n *\n * Для создания группы табов используйте специальный контейнер - компонент [Tabs](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-tabs-tabs--docs).\n */\n@rootNode\nexport class Tab<T extends string = string> extends React.Component<TabProps<T>, TabState> {\n public static __KONTUR_REACT_UI__ = 'Tab';\n public static displayName = 'Tab';\n\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public static defaultProps: DefaultProps = {\n component: 'a',\n href: '',\n };\n\n private getProps = createPropsGetter(Tab.defaultProps);\n\n public state: TabState = {\n focusedByKeyboard: false,\n };\n\n private theme!: Theme;\n private tabComponent: Nullable<React.ReactElement<Tab<T>>> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n constructor(props: TabProps<T>) {\n super(props);\n invariant(this.context !== TabsContextDefaultValue, 'Tab should be placed inside Tabs component');\n }\n\n public componentDidMount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.addTab(id, this.getTabInstance);\n }\n }\n\n public componentDidUpdate() {\n if (this.context.activeTab === this.props.id) {\n this.context.notifyUpdate();\n }\n }\n\n public componentWillUnmount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.removeTab(id);\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getIndicators() {\n return {\n error: Boolean(this.props.error),\n warning: Boolean(this.props.warning),\n success: Boolean(this.props.success),\n primary: Boolean(this.props.primary),\n disabled: Boolean(this.props.disabled),\n };\n }\n\n public getUnderlyingNode = () => this.tabComponent;\n\n private renderMain() {\n const {\n children,\n disabled,\n error,\n warning,\n success,\n primary,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n } = this.props;\n const { component: Component, href } = this.getProps();\n\n let isActive = false;\n let isVertical = false;\n\n const id = this.getId();\n if (typeof id === 'string') {\n isActive = this.context.activeTab === this.getId();\n isVertical = this.context.vertical;\n }\n const orientationStyles = isVertical ? verticalStyles : horizontalStyles;\n\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...getVisualStateDataAttributes({ active: isActive, disabled })}\n {...this.props}\n >\n <Component\n data-tid={TabDataTids.root}\n className={cx({\n [styles.rootSmall(this.theme)]: this.context.size === 'small',\n [styles.rootMedium(this.theme)]: this.context.size === 'medium',\n [styles.rootLarge(this.theme)]: this.context.size === 'large',\n [styles.verticalSmall(this.theme)]: !!isVertical && this.context.size === 'small',\n [styles.verticalMedium(this.theme)]: !!isVertical && this.context.size === 'medium',\n [styles.verticalLarge(this.theme)]: !!isVertical && this.context.size === 'large',\n [orientationStyles.primary(this.theme)]: !!primary,\n [orientationStyles.success(this.theme)]: !!success,\n [orientationStyles.warning(this.theme)]: !!warning,\n [orientationStyles.error(this.theme)]: !!error,\n [styles.active()]: !!isActive,\n [orientationStyles.active(this.theme)]: !!isActive,\n [styles.disabled(this.theme)]: !!disabled,\n [orientationStyles.disabled()]: !!disabled,\n })}\n onBlur={this.handleBlur}\n onClick={this.switchTab}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n tabIndex={disabled ? -1 : 0}\n ref={isFunctionalComponent(Component) ? null : this.refTabComponent}\n href={href}\n aria-describedby={ariaDescribedby}\n aria-label={ariaLabel}\n >\n <ResizeDetector onResize={this.context.notifyUpdate}>{children}</ResizeDetector>\n {this.state.focusedByKeyboard && (\n <div\n className={cx(globalClasses.focus, {\n [styles.focusSmall(this.theme)]: this.context.size === 'small',\n [styles.focusMedium(this.theme)]: this.context.size === 'medium',\n [styles.focusLarge(this.theme)]: this.context.size === 'large',\n })}\n />\n )}\n </Component>\n </CommonWrapper>\n );\n }\n\n private getId = () => this.props.id || this.getProps().href;\n\n private refTabComponent = (instance: React.ReactElement<any>) => {\n this.tabComponent = instance;\n };\n\n private getTabInstance = () => this;\n\n private switchTab = (event: React.MouseEvent<HTMLElement>) => {\n if (this.props.disabled) {\n event.preventDefault();\n return;\n }\n const { href, component } = this.getProps();\n\n const id = this.props.id || href;\n if (this.props.onClick) {\n this.props.onClick(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n if (typeof id === 'string') {\n this.context.switchTab(id);\n }\n if (component === 'a' && !href) {\n event.preventDefault();\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n if (e.defaultPrevented) {\n return;\n }\n }\n const id = this.getId();\n if (typeof id !== 'string') {\n return;\n }\n if (!isKeyArrow(e)) {\n return;\n }\n e.preventDefault();\n const delta = isKeyArrowLeft(e) || isKeyArrowUp(e) ? -1 : 1;\n this.context.shiftFocus(id, delta);\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n // focus event fires before keyDown eventlistener\n // so we should check focusKeyPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed || keyListener.isArrowPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n };\n\n private handleBlur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focusedByKeyboard: false });\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -15,26 +15,25 @@ export declare const TabDataTids: {
15
15
  readonly root: "Tab__root";
16
16
  };
17
17
  export interface TabProps<T extends string = string> extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>, CommonProps {
18
- /** Позволяет передавать свой компонент, строку или функцию, которая заменит собой элемент используемый в компоненте по умолчанию.
19
- * Реализует паттерн [render prop](https://www.patterns.dev/posts/render-props-pattern). */
18
+ /** Компонент или тег для рендера корневого элемента. */
20
19
  component?: React.ComponentType<any> | string;
21
- /** Задает HTML-атрибут `href` - адрес, на который следует перейти. */
20
+ /** HTML-атрибут `href`. */
22
21
  href?: string;
23
- /** Задает уникальный идентификатор таба. По нему компонент `<Tabs />` определяет какой `<Tab />` сейчас выбран. */
22
+ /** Уникальный идентификатор таба. По нему компонент `<Tabs />` определяет выбранный таб. */
24
23
  id?: T;
25
24
  /**`HTML`-событие `onclick`. */
26
25
  onClick?: (event: React.MouseEvent<HTMLElement>) => void;
27
26
  /** `HTML`-событие `onkeydown`. */
28
27
  onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;
29
- /** Делает компонент недоступным. */
28
+ /** Делает таб недоступным. */
30
29
  disabled?: boolean;
31
- /** Переводит контрол в состояние валидации "ошибка". */
30
+ /** Переводит таб в состояние валидации "Ошибка". */
32
31
  error?: boolean;
33
- /** Переводит контрол в состояние валидации "предупреждение". */
32
+ /** Переводит таб в состояние валидации "Предупреждение". */
34
33
  warning?: boolean;
35
- /** Устанавливает визульное состояние валидации "успех". */
34
+ /** Переводит таб в состояние валидации "Успех". */
36
35
  success?: boolean;
37
- /** Задает визульное состояние главного элемента. */
36
+ /** Задаёт визульное состояние главного элемента. */
38
37
  primary?: boolean;
39
38
  }
40
39
  export interface TabState {
@@ -42,7 +41,9 @@ export interface TabState {
42
41
  }
43
42
  type DefaultProps = Required<Pick<TabProps, 'component' | 'href'>>;
44
43
  /**
45
- * Вложенный элемент компонента Tabs.
44
+ * Табы группируют контент и помогают в навигации.
45
+ *
46
+ * Для создания группы табов используйте специальный контейнер - компонент [Tabs](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-tabs-tabs--docs).
46
47
  */
47
48
  export declare class Tab<T extends string = string> extends React.Component<TabProps<T>, TabState> {
48
49
  static __KONTUR_REACT_UI__: string;
@@ -20,12 +20,7 @@ export var TabsDataTids = {
20
20
  };
21
21
 
22
22
  /**
23
- * Родитель компонента Tab. Связывает `Tab`'ы в группу и позволяет управлять их состоянием, помогают в навигации.
24
- *
25
- * Используйте `Tabs` для второстепенной навигации, для группировки или фильтрации контента.
26
- *
27
- * Не используйте `Tabs` для основной навигации. Для этого лучше подходит главное меню на цветной плашке — оно более заметно на странице.
28
- * Не используйте `Tabs` для переключения состояний — для этого есть RadioGroup, Toggle и Switcher.
23
+ * Контейнер для компонента [Tab](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-tabs-tab--doc). Группирует табы и позволяет управлять их состоянием.
29
24
  */
30
25
  export var Tabs = rootNode(_class = (_Tabs = /*#__PURE__*/function (_React$Component) {
31
26
  function Tabs() {
@@ -1 +1 @@
1
- {"version":3,"names":["React","globalObject","ThemeContext","CommonWrapper","cx","getRootNode","rootNode","createPropsGetter","isInstanceOf","Indicator","styles","TabsContext","Tab","TabsDataTids","root","indicatorRoot","Tabs","_class","_Tabs","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","tabs","tabUpdates","on","cb","index","listeners","push","splice","shiftFocus","fromTab","delta","_this2","findIndex","x","id","newIndex","Math","max","min","tab","tabNode","getNode","htmlNode","HTMLElement","focus","notifyUpdate","forEach","switchTab","_this$props","props","onValueChange","value","getTab","_ref","find","_ref$getNode","addTab","removeTab","filter","_inheritsLoose","_proto","prototype","render","_this3","_this$props2","width","children","indicatorClassName","ariaDescribedby","_this$getProps","vertical","size","createElement","Consumer","theme","_cx","_extends","rootNodeRef","setRootNode","className","rootSmall","rootMedium","rootLarge","style","Provider","activeTab","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Tabs.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { emptyHandler } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode } from '../../lib/rootNode/getRootNode';\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 { isInstanceOf } from '../../lib/isInstanceOf';\n\nimport { Indicator } from './Indicator';\nimport { styles } from './Tabs.styles';\nimport type { TabsContextType } from './TabsContext';\nimport { TabsContext } from './TabsContext';\nimport { Tab } from './Tab';\n\ntype ValueBaseType = string;\ninterface TabType<T extends ValueBaseType> {\n getNode: () => Tab<T> | null;\n id: T;\n}\n\nexport interface TabsProps<T extends ValueBaseType = string> extends CommonProps {\n /** Задает кастомный класс подчёркиванию таба. */\n indicatorClassName?: string;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Задает текущий активный `<Tab />`. Принимает `id` таба. */\n value: T;\n\n /** Задает функцию, изменяющую текущий активный `<Tab />`. */\n onValueChange?: (value: T) => void;\n\n /** Задает расположение элементов по вертикали.\n * @default false */\n vertical?: boolean;\n\n /** Задает ширину компонента Tabs. */\n width?: number | string;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const TabsDataTids = {\n root: 'Tabs__root',\n indicatorRoot: 'Indicator__root',\n} as const;\n\ntype DefaultProps = Required<Pick<TabsProps, 'vertical' | 'size'>>;\n\n/**\n * Родитель компонента Tab. Связывает `Tab`'ы в группу и позволяет управлять их состоянием, помогают в навигации.\n *\n * Используйте `Tabs` для второстепенной навигации, для группировки или фильтрации контента.\n *\n * Не используйте `Tabs` для основной навигации. Для этого лучше подходит главное меню на цветной плашке — оно более заметно на странице.\n * Не используйте `Tabs` для переключения состояний — для этого есть RadioGroup, Toggle и Switcher.\n */\n@rootNode\nexport class Tabs<T extends string = string> extends React.Component<TabsProps<T>> {\n public static __KONTUR_REACT_UI__ = 'Tabs';\n public static displayName = 'Tabs';\n\n public static defaultProps: DefaultProps = {\n vertical: false,\n size: 'large',\n };\n\n private getProps = createPropsGetter(Tabs.defaultProps);\n\n public static Tab = Tab;\n\n private theme!: Theme;\n\n private tabs: Array<TabType<T>> = [];\n\n private tabUpdates = {\n on: (cb: () => void) => {\n const index = this.listeners.push(cb);\n return () => {\n this.listeners.splice(index, 1);\n };\n },\n };\n\n private listeners: Array<typeof emptyHandler> = [];\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n const { value, width, children, indicatorClassName, 'aria-describedby': ariaDescribedby } = this.props;\n const { vertical, size } = this.getProps();\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={TabsDataTids.root}\n className={cx({\n [styles.rootSmall(this.theme)]: size === 'small',\n [styles.rootMedium(this.theme)]: size === 'medium',\n [styles.rootLarge(this.theme)]: size === 'large',\n [styles.vertical()]: vertical,\n })}\n style={{ width }}\n aria-describedby={ariaDescribedby}\n >\n <TabsContext.Provider\n value={{\n vertical,\n activeTab: value,\n size,\n getTab: this.getTab,\n addTab: this.addTab,\n removeTab: this.removeTab,\n notifyUpdate: this.notifyUpdate,\n shiftFocus: this.shiftFocus,\n switchTab: this.switchTab,\n }}\n >\n {children}\n <Indicator\n className={indicatorClassName}\n tabUpdates={this.tabUpdates}\n vertical={this.getProps().vertical}\n />\n </TabsContext.Provider>\n </div>\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private shiftFocus: TabsContextType<T>['shiftFocus'] = (fromTab, delta) => {\n const { tabs } = this;\n const index = tabs.findIndex((x) => x.id === fromTab);\n const newIndex = Math.max(0, Math.min(index + delta, tabs.length - 1));\n const tab = tabs[newIndex];\n\n const tabNode = tab.getNode();\n const htmlNode = getRootNode(tabNode);\n\n if (isInstanceOf(htmlNode, globalObject.HTMLElement) && typeof htmlNode.focus === 'function') {\n htmlNode.focus();\n }\n };\n\n private notifyUpdate: TabsContextType<T>['notifyUpdate'] = () => {\n this.listeners.forEach((cb) => cb());\n };\n\n private switchTab: TabsContextType<T>['switchTab'] = (id) => {\n const { onValueChange, value } = this.props;\n if (id !== value && onValueChange) {\n onValueChange(id);\n }\n };\n\n private getTab: TabsContextType<T>['getTab'] = (id) => {\n const { getNode = null } = this.tabs.find((x) => x.id === id) || {};\n return getNode && getNode();\n };\n\n private addTab: TabsContextType<T>['addTab'] = (id, getNode) => {\n this.tabs = this.tabs.concat({ id, getNode });\n };\n\n private removeTab: TabsContextType<T>['removeTab'] = (id) => {\n this.tabs = this.tabs.filter((tab) => tab.id !== id);\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","globalObject","ThemeContext","CommonWrapper","cx","getRootNode","rootNode","createPropsGetter","isInstanceOf","Indicator","styles","TabsContext","Tab","TabsDataTids","root","indicatorRoot","Tabs","_class","_Tabs","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","tabs","tabUpdates","on","cb","index","listeners","push","splice","shiftFocus","fromTab","delta","_this2","findIndex","x","id","newIndex","Math","max","min","tab","tabNode","getNode","htmlNode","HTMLElement","focus","notifyUpdate","forEach","switchTab","_this$props","props","onValueChange","value","getTab","_ref","find","_ref$getNode","addTab","removeTab","filter","_inheritsLoose","_proto","prototype","render","_this3","_this$props2","width","children","indicatorClassName","ariaDescribedby","_this$getProps","vertical","size","createElement","Consumer","theme","_cx","_extends","rootNodeRef","setRootNode","className","rootSmall","rootMedium","rootLarge","style","Provider","activeTab","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Tabs.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { emptyHandler } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode } from '../../lib/rootNode/getRootNode';\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 { isInstanceOf } from '../../lib/isInstanceOf';\n\nimport { Indicator } from './Indicator';\nimport { styles } from './Tabs.styles';\nimport type { TabsContextType } from './TabsContext';\nimport { TabsContext } from './TabsContext';\nimport { Tab } from './Tab';\n\ntype ValueBaseType = string;\ninterface TabType<T extends ValueBaseType> {\n getNode: () => Tab<T> | null;\n id: T;\n}\n\nexport interface TabsProps<T extends ValueBaseType = string> extends CommonProps {\n /** Кастомный класс для индикатора (подчёркивания) активного таба. */\n indicatorClassName?: string;\n\n /** Размер табов. */\n size?: SizeProp;\n\n /** Идентификатор активного таба. Совпадает с `id` выбранного `<Tab />`. */\n value: T;\n\n /** Вызывается при смене активного таба. */\n onValueChange?: (value: T) => void;\n\n /** Располагает табы вертикально.\n * @default false */\n vertical?: boolean;\n\n /** Ширина компонента. */\n width?: number | string;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const TabsDataTids = {\n root: 'Tabs__root',\n indicatorRoot: 'Indicator__root',\n} as const;\n\ntype DefaultProps = Required<Pick<TabsProps, 'vertical' | 'size'>>;\n\n/**\n * Контейнер для компонента [Tab](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-tabs-tab--doc). Группирует табы и позволяет управлять их состоянием.\n */\n@rootNode\nexport class Tabs<T extends string = string> extends React.Component<TabsProps<T>> {\n public static __KONTUR_REACT_UI__ = 'Tabs';\n public static displayName = 'Tabs';\n\n public static defaultProps: DefaultProps = {\n vertical: false,\n size: 'large',\n };\n\n private getProps = createPropsGetter(Tabs.defaultProps);\n\n public static Tab = Tab;\n\n private theme!: Theme;\n\n private tabs: Array<TabType<T>> = [];\n\n private tabUpdates = {\n on: (cb: () => void) => {\n const index = this.listeners.push(cb);\n return () => {\n this.listeners.splice(index, 1);\n };\n },\n };\n\n private listeners: Array<typeof emptyHandler> = [];\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n const { value, width, children, indicatorClassName, 'aria-describedby': ariaDescribedby } = this.props;\n const { vertical, size } = this.getProps();\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={TabsDataTids.root}\n className={cx({\n [styles.rootSmall(this.theme)]: size === 'small',\n [styles.rootMedium(this.theme)]: size === 'medium',\n [styles.rootLarge(this.theme)]: size === 'large',\n [styles.vertical()]: vertical,\n })}\n style={{ width }}\n aria-describedby={ariaDescribedby}\n >\n <TabsContext.Provider\n value={{\n vertical,\n activeTab: value,\n size,\n getTab: this.getTab,\n addTab: this.addTab,\n removeTab: this.removeTab,\n notifyUpdate: this.notifyUpdate,\n shiftFocus: this.shiftFocus,\n switchTab: this.switchTab,\n }}\n >\n {children}\n <Indicator\n className={indicatorClassName}\n tabUpdates={this.tabUpdates}\n vertical={this.getProps().vertical}\n />\n </TabsContext.Provider>\n </div>\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private shiftFocus: TabsContextType<T>['shiftFocus'] = (fromTab, delta) => {\n const { tabs } = this;\n const index = tabs.findIndex((x) => x.id === fromTab);\n const newIndex = Math.max(0, Math.min(index + delta, tabs.length - 1));\n const tab = tabs[newIndex];\n\n const tabNode = tab.getNode();\n const htmlNode = getRootNode(tabNode);\n\n if (isInstanceOf(htmlNode, globalObject.HTMLElement) && typeof htmlNode.focus === 'function') {\n htmlNode.focus();\n }\n };\n\n private notifyUpdate: TabsContextType<T>['notifyUpdate'] = () => {\n this.listeners.forEach((cb) => cb());\n };\n\n private switchTab: TabsContextType<T>['switchTab'] = (id) => {\n const { onValueChange, value } = this.props;\n if (id !== value && onValueChange) {\n onValueChange(id);\n }\n };\n\n private getTab: TabsContextType<T>['getTab'] = (id) => {\n const { getNode = null } = this.tabs.find((x) => x.id === id) || {};\n return getNode && getNode();\n };\n\n private addTab: TabsContextType<T>['addTab'] = (id, getNode) => {\n this.tabs = this.tabs.concat({ id, getNode });\n };\n\n private removeTab: TabsContextType<T>['removeTab'] = (id) => {\n this.tabs = this.tabs.filter((tab) => tab.id !== id);\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,18 +6,18 @@ import type { SizeProp } from '../../lib/types/props';
6
6
  import { Tab } from './Tab';
7
7
  type ValueBaseType = string;
8
8
  export interface TabsProps<T extends ValueBaseType = string> extends CommonProps {
9
- /** Задает кастомный класс подчёркиванию таба. */
9
+ /** Кастомный класс для индикатора (подчёркивания) активного таба. */
10
10
  indicatorClassName?: string;
11
- /** Задает размер контрола. */
11
+ /** Размер табов. */
12
12
  size?: SizeProp;
13
- /** Задает текущий активный `<Tab />`. Принимает `id` таба. */
13
+ /** Идентификатор активного таба. Совпадает с `id` выбранного `<Tab />`. */
14
14
  value: T;
15
- /** Задает функцию, изменяющую текущий активный `<Tab />`. */
15
+ /** Вызывается при смене активного таба. */
16
16
  onValueChange?: (value: T) => void;
17
- /** Задает расположение элементов по вертикали.
17
+ /** Располагает табы вертикально.
18
18
  * @default false */
19
19
  vertical?: boolean;
20
- /** Задает ширину компонента Tabs. */
20
+ /** Ширина компонента. */
21
21
  width?: number | string;
22
22
  /** @ignore */
23
23
  'aria-describedby'?: AriaAttributes['aria-describedby'];
@@ -28,12 +28,7 @@ export declare const TabsDataTids: {
28
28
  };
29
29
  type DefaultProps = Required<Pick<TabsProps, 'vertical' | 'size'>>;
30
30
  /**
31
- * Родитель компонента Tab. Связывает `Tab`'ы в группу и позволяет управлять их состоянием, помогают в навигации.
32
- *
33
- * Используйте `Tabs` для второстепенной навигации, для группировки или фильтрации контента.
34
- *
35
- * Не используйте `Tabs` для основной навигации. Для этого лучше подходит главное меню на цветной плашке — оно более заметно на странице.
36
- * Не используйте `Tabs` для переключения состояний — для этого есть RadioGroup, Toggle и Switcher.
31
+ * Контейнер для компонента [Tab](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-tabs-tab--doc). Группирует табы и позволяет управлять их состоянием.
37
32
  */
38
33
  export declare class Tabs<T extends string = string> extends React.Component<TabsProps<T>> {
39
34
  static __KONTUR_REACT_UI__: string;
@@ -17,7 +17,7 @@ import { ToastStatic } from "../ToastStatic";
17
17
  /**
18
18
  * Состояния тоста:
19
19
  *
20
- * - default стиль для отображения по-умолчанию
20
+ * - default стиль для отображения по умолчанию
21
21
  * - error стиль для отображения ошибок
22
22
  **/
23
23
 
@@ -25,7 +25,7 @@ import { ToastStatic } from "../ToastStatic";
25
25
 
26
26
  /** Объект с конфигурацией отображения Toast-а */
27
27
 
28
- /** TODO: Новый Api для метода push в Toast. Станет api по-умолчанию с версии 6.0. В мажоре нужно будет убрать New из названия */
28
+ /** TODO: Новый Api для метода push в Toast. Станет api по умолчанию с версии 6.0. В мажоре нужно будет убрать New из названия */
29
29
 
30
30
  export var ToastDataTids = {
31
31
  toastStatic: 'StaticToast',