@skbkontur/react-ui 5.6.7-aa2dc.0 → 5.6.8

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 (115) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/cjs/components/Calendar/Calendar.js +2 -31
  3. package/cjs/components/Calendar/Calendar.js.map +1 -1
  4. package/cjs/components/Calendar/CalendarDay.js +2 -2
  5. package/cjs/components/Calendar/CalendarDay.js.map +1 -1
  6. package/cjs/components/Dropdown/Dropdown.d.ts +18 -19
  7. package/cjs/components/Dropdown/Dropdown.js +2 -3
  8. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  9. package/cjs/components/FxInput/FxInput.js +1 -2
  10. package/cjs/components/FxInput/FxInput.js.map +1 -1
  11. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +20 -23
  12. package/cjs/components/GlobalLoader/GlobalLoader.js +4 -7
  13. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  14. package/cjs/components/Kebab/Kebab.d.ts +10 -10
  15. package/cjs/components/Kebab/Kebab.js +1 -2
  16. package/cjs/components/Kebab/Kebab.js.map +1 -1
  17. package/cjs/components/Loader/Loader.d.ts +9 -9
  18. package/cjs/components/Loader/Loader.js +3 -3
  19. package/cjs/components/Loader/Loader.js.map +1 -1
  20. package/cjs/components/Paging/Paging.d.ts +23 -22
  21. package/cjs/components/Paging/Paging.js +1 -0
  22. package/cjs/components/Paging/Paging.js.map +1 -1
  23. package/cjs/components/Spinner/Spinner.d.ts +28 -16
  24. package/cjs/components/Spinner/Spinner.js +17 -5
  25. package/cjs/components/Spinner/Spinner.js.map +1 -1
  26. package/cjs/components/Tabs/Indicator.styles.d.ts +1 -0
  27. package/cjs/components/Tabs/Indicator.styles.js +8 -1
  28. package/cjs/components/Tabs/Indicator.styles.js.map +1 -1
  29. package/cjs/components/Tabs/Tab.d.ts +11 -10
  30. package/cjs/components/Tabs/Tab.js +3 -2
  31. package/cjs/components/Tabs/Tab.js.map +1 -1
  32. package/cjs/components/Tabs/Tabs.d.ts +7 -12
  33. package/cjs/components/Tabs/Tabs.js +1 -6
  34. package/cjs/components/Tabs/Tabs.js.map +1 -1
  35. package/cjs/components/Textarea/Textarea.styles.js +2 -3
  36. package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
  37. package/cjs/components/Toast/Toast.d.ts +4 -4
  38. package/cjs/components/Toast/Toast.js +2 -2
  39. package/cjs/components/Toast/Toast.js.map +1 -1
  40. package/cjs/components/Tooltip/Tooltip.d.ts +1 -1
  41. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  42. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
  43. package/cjs/internal/CustomComboBox/ComboBoxView.js +0 -1
  44. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  45. package/cjs/internal/Menu/Menu.d.ts +1 -2
  46. package/cjs/internal/Menu/Menu.js +0 -1
  47. package/cjs/internal/Menu/Menu.js.map +1 -1
  48. package/cjs/internal/Popup/Popup.d.ts +0 -7
  49. package/cjs/internal/Popup/Popup.js +2 -44
  50. package/cjs/internal/Popup/Popup.js.map +1 -1
  51. package/cjs/internal/Popup/PopupHelper.d.ts +0 -27
  52. package/cjs/internal/Popup/PopupHelper.js +2 -125
  53. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  54. package/cjs/internal/PopupMenu/PopupMenu.d.ts +3 -7
  55. package/cjs/internal/PopupMenu/PopupMenu.js +0 -4
  56. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  57. package/cjs/internal/themes/BasicTheme.d.ts +1 -0
  58. package/cjs/internal/themes/BasicTheme.js +2 -1
  59. package/cjs/internal/themes/BasicTheme.js.map +1 -1
  60. package/components/Calendar/Calendar/Calendar.js +2 -28
  61. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  62. package/components/Calendar/CalendarDay/CalendarDay.js +1 -1
  63. package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -1
  64. package/components/Dropdown/Dropdown/Dropdown.js +2 -2
  65. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  66. package/components/Dropdown/Dropdown.d.ts +18 -19
  67. package/components/FxInput/FxInput/FxInput.js +3 -1
  68. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  69. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +4 -7
  70. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  71. package/components/GlobalLoader/GlobalLoader.d.ts +20 -23
  72. package/components/Kebab/Kebab/Kebab.js +1 -2
  73. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  74. package/components/Kebab/Kebab.d.ts +10 -10
  75. package/components/Loader/Loader/Loader.js +3 -3
  76. package/components/Loader/Loader/Loader.js.map +1 -1
  77. package/components/Loader/Loader.d.ts +9 -9
  78. package/components/Paging/Paging/Paging.js.map +1 -1
  79. package/components/Paging/Paging.d.ts +23 -22
  80. package/components/Spinner/Spinner/Spinner.js +0 -5
  81. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  82. package/components/Spinner/Spinner.d.ts +28 -16
  83. package/components/Tabs/Indicator.styles/Indicator.styles.js +4 -1
  84. package/components/Tabs/Indicator.styles/Indicator.styles.js.map +1 -1
  85. package/components/Tabs/Indicator.styles.d.ts +1 -0
  86. package/components/Tabs/Tab/Tab.js +3 -1
  87. package/components/Tabs/Tab/Tab.js.map +1 -1
  88. package/components/Tabs/Tab.d.ts +11 -10
  89. package/components/Tabs/Tabs/Tabs.js +1 -6
  90. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  91. package/components/Tabs/Tabs.d.ts +7 -12
  92. package/components/Textarea/Textarea.styles/Textarea.styles.js +1 -1
  93. package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
  94. package/components/Toast/Toast/Toast.js +2 -2
  95. package/components/Toast/Toast/Toast.js.map +1 -1
  96. package/components/Toast/Toast.d.ts +4 -4
  97. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  98. package/components/Tooltip/Tooltip.d.ts +1 -1
  99. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +0 -1
  100. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  101. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
  102. package/internal/Menu/Menu/Menu.js.map +1 -1
  103. package/internal/Menu/Menu.d.ts +1 -2
  104. package/internal/Popup/Popup/Popup.js +2 -26
  105. package/internal/Popup/Popup/Popup.js.map +1 -1
  106. package/internal/Popup/Popup.d.ts +0 -7
  107. package/internal/Popup/PopupHelper/PopupHelper.js +1 -114
  108. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  109. package/internal/Popup/PopupHelper.d.ts +0 -27
  110. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  111. package/internal/PopupMenu/PopupMenu.d.ts +3 -7
  112. package/internal/themes/BasicTheme/BasicTheme.js +2 -0
  113. package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
  114. package/internal/themes/BasicTheme.d.ts +1 -0
  115. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","LayoutEvents","_interopRequireWildcard","_Spinner","_ThemeContext","_ZIndex","_CommonWrapper","_Emotion","_currentEnvironment","_taskWithDelayAndMinimalDuration","_tabbableHelpers","_rootNode","_getDOMRect2","_createPropsGetter","_Loader2","_class","_Loader","types","LoaderDataTids","exports","idle","veil","spinner","Loader","rootNode","_React$Component","props","_this","call","getProps","createPropsGetter","defaultProps","childrenRef","element","childrenContainerNode","spinnerRef","spinnerContainerNode","checkSpinnerPosition","isBrowser","globalObject","_getDOMRect","getDOMRect","containerTop","top","containerRight","right","containerBottom","bottom","containerLeft","left","containerHeight","height","containerWidth","width","windowHeight","innerHeight","windowWidth","innerWidth","setState","isStickySpinner","spinnerStyle","Math","abs","spinnerHeight","spinnerNode","disableChildrenFocus","childrenObserver","makeObservable","tabbableElements","getTabbableElements","forEach","el","hasAttribute","setAttribute","tabIndex","toString","enableChildrenFocus","_globalObject$documen","_globalObject$documen2","makeUnobservable","Array","from","document","querySelectorAll","_el$getAttribute","getAttribute","removeAttribute","target","MutationObserver","config","childList","subtree","observer","observe","_this$childrenObserve","disconnect","state","isSpinnerVisible","isLoaderActive","spinnerTask","TaskWithDelayAndMinimalDuration","delayBeforeTaskStart","delayBeforeSpinnerShow","durationOfTask","minimalDelayBeforeSpinnerHide","taskStartCallback","taskStopCallback","_inheritsLoose2","default","_proto","prototype","componentDidMount","active","start","layoutEvents","addListener","debounce","componentDidUpdate","prevProps","prevState","component","_this$getProps","update","stop","componentWillUnmount","remove","clearTask","getDerivedStateFromProps","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","_cx","_this$props","caption","type","CommonWrapper","_extends2","rootNodeRef","setRootNode","className","styles","loader","ZIndex","applyZIndex","coverChildren","style","wrapperRef","children","cx","renderSpinner","_cx2","_this3","spinnerContainer","spinnerContainerSticky","spinnerComponentWrapper","ref","undefined","Spinner","React","Component","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["Loader.tsx"],"sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport type { AnyObject } from '../../lib/utils';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { SpinnerProps } from '../Spinner';\nimport { Spinner } from '../Spinner';\nimport type { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Loader.styles';\n\nconst types = ['mini', 'normal', 'big'] as const;\n\nexport type LoaderType = (typeof types)[number];\n\nexport interface LoaderProps extends CommonProps {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Задает состояние лоадера.\n * @default false */\n active?: boolean;\n\n /** Задает подпись под спиннером.\n * @default \"Загрузка\"\n */\n caption?: SpinnerProps['caption'];\n\n /** Задает компонент, заменяющий спиннер. */\n component?: React.ReactNode;\n\n /** Задает размер спиннера и текста.\n * @default normal. */\n type?: LoaderType;\n\n /** Устанавливает время в миллисекундах для показа вуали без спиннера.\n * @default 300 */\n delayBeforeSpinnerShow?: number;\n\n /** Устанавливает минимальное время в миллисекундах для показа спиннера.\n * @default 1000. */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: AnyObject;\n}\n\nexport const LoaderDataTids = {\n idle: 'Loader__Idle',\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>\n>;\n\n/**\n * Компонент `Loader` принимает внутрь себя контент, поверх которого в активном состоянии `Loader`'а будет отрисован спиннер.\n *\n * Если вам нужен только сам спиннер без дополнительного функционала - используйте компонент Spinner.\n */\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n public static displayName = 'Loader';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n }\n\n public componentDidMount() {\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10));\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption, component } = this.props;\n const type = this.getProps().type;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n className={styles.loader()}\n data-tid={this.props['data-tid'] || (isLoaderActive ? LoaderDataTids.veil : LoaderDataTids.idle)}\n >\n <ZIndex\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n className={cx({\n [styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: LoaderType, caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={cx(styles.spinnerContainer(), { [styles.spinnerContainerSticky()]: this.state.isStickySpinner })}\n style={this.state.spinnerStyle}\n >\n <div\n className={styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode || !isBrowser(globalObject)) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = globalObject.innerHeight;\n const windowWidth = globalObject.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n // NOTE: NodeList doesn't support 'forEach' method in IE11 and other older browsers\n Array.from(globalObject.document?.querySelectorAll('[origin-tabindex]') ?? []).forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target || !globalObject.MutationObserver) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new globalObject.MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","LayoutEvents","_interopRequireWildcard","_Spinner","_ThemeContext","_ZIndex","_CommonWrapper","_Emotion","_currentEnvironment","_taskWithDelayAndMinimalDuration","_tabbableHelpers","_rootNode","_getDOMRect2","_createPropsGetter","_Loader2","_class","_Loader","types","LoaderDataTids","exports","idle","veil","spinner","Loader","rootNode","_React$Component","props","_this","call","getProps","createPropsGetter","defaultProps","childrenRef","element","childrenContainerNode","spinnerRef","spinnerContainerNode","checkSpinnerPosition","isBrowser","globalObject","_getDOMRect","getDOMRect","containerTop","top","containerRight","right","containerBottom","bottom","containerLeft","left","containerHeight","height","containerWidth","width","windowHeight","innerHeight","windowWidth","innerWidth","setState","isStickySpinner","spinnerStyle","Math","abs","spinnerHeight","spinnerNode","disableChildrenFocus","childrenObserver","makeObservable","tabbableElements","getTabbableElements","forEach","el","hasAttribute","setAttribute","tabIndex","toString","enableChildrenFocus","_globalObject$documen","_globalObject$documen2","makeUnobservable","Array","from","document","querySelectorAll","_el$getAttribute","getAttribute","removeAttribute","target","MutationObserver","config","childList","subtree","observer","observe","_this$childrenObserve","disconnect","state","isSpinnerVisible","isLoaderActive","spinnerTask","TaskWithDelayAndMinimalDuration","delayBeforeTaskStart","delayBeforeSpinnerShow","durationOfTask","minimalDelayBeforeSpinnerHide","taskStartCallback","taskStopCallback","_inheritsLoose2","default","_proto","prototype","componentDidMount","active","start","layoutEvents","addListener","debounce","componentDidUpdate","prevProps","prevState","component","_this$getProps","update","stop","componentWillUnmount","remove","clearTask","getDerivedStateFromProps","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","_cx","_this$props","caption","type","CommonWrapper","_extends2","rootNodeRef","setRootNode","className","styles","loader","ZIndex","applyZIndex","coverChildren","style","wrapperRef","children","cx","renderSpinner","_cx2","_this3","spinnerContainer","spinnerContainerSticky","spinnerComponentWrapper","ref","undefined","Spinner","React","Component","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["Loader.tsx"],"sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport type { AnyObject } from '../../lib/utils';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { SpinnerProps } from '../Spinner';\nimport { Spinner } from '../Spinner';\nimport type { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Loader.styles';\n\nconst types = ['mini', 'normal', 'big'] as const;\n\nexport type LoaderType = (typeof types)[number];\n\nexport interface LoaderProps extends CommonProps {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Показывает лоадер.\n * @default false */\n active?: boolean;\n\n /** Подпись под спиннером.\n * @default \"\"\n */\n caption?: SpinnerProps['caption'];\n\n /** Задает компонент, заменяющий спиннер. */\n component?: React.ReactNode;\n\n /** Размер спиннера и текста.\n * @default normal. */\n type?: LoaderType;\n\n /** Время в миллисекундах для показа вуали без спиннера.\n * @default 300 */\n delayBeforeSpinnerShow?: number;\n\n /** Минимальное время в миллисекундах для показа спиннера.\n * @default 1000. */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: AnyObject;\n}\n\nexport const LoaderDataTids = {\n idle: 'Loader__Idle',\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>\n>;\n\n/**\n * С помощью лоадера можно отобразить процесс выполнения задачи.\n * Лоадер принимает в качестве дочернего элемента другой компонент или контент, который будет показан на экране.\n * Когда происходит загрузка, поверх этого компонента или контента будет отображаться [Спиннер](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-spinner--docs).\n */\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n public static displayName = 'Loader';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n }\n\n public componentDidMount() {\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10));\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption, component } = this.props;\n const type = this.getProps().type;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n className={styles.loader()}\n data-tid={this.props['data-tid'] || (isLoaderActive ? LoaderDataTids.veil : LoaderDataTids.idle)}\n >\n <ZIndex\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n className={cx({\n [styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: LoaderType, caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={cx(styles.spinnerContainer(), { [styles.spinnerContainerSticky()]: this.state.isStickySpinner })}\n style={this.state.spinnerStyle}\n >\n <div\n className={styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode || !isBrowser(globalObject)) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = globalObject.innerHeight;\n const windowWidth = globalObject.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n // NOTE: NodeList doesn't support 'forEach' method in IE11 and other older browsers\n Array.from(globalObject.document?.querySelectorAll('[origin-tabindex]') ?? []).forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target || !globalObject.MutationObserver) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new globalObject.MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,41 +4,42 @@ import type { CommonProps } from '../../internal/CommonWrapper';
4
4
  import type { TGetRootNode } from '../../lib/rootNode';
5
5
  import type { SizeProp } from '../../lib/types/props';
6
6
  export interface ItemComponentProps {
7
- /** Определяет, является ли страница текущей. */
8
- active: boolean;
9
7
  /** @ignore */
10
8
  children?: React.ReactNode;
11
- /** Задает HTML-атрибут class. */
12
- className: string;
13
- /** Задает функцию, которая вызывается при клике на элемент. */
14
- onClick: () => void;
15
- /** Задает номер текущей страницы. */
9
+ /** Определяет, является ли страница текущей. */
10
+ active: boolean;
11
+ /** Номер страницы. */
16
12
  pageNumber: number | 'forward';
17
- /** Задает HTML-атрибут `tabindex`. */
13
+ /** Вызывается при клике на элемент. */
14
+ onClick: () => void;
15
+ /** HTML-атрибут `class`. */
16
+ className: string;
17
+ /** HTML-атрибут `tabindex`. */
18
18
  tabIndex: number;
19
19
  }
20
20
  export interface PagingProps extends CommonProps {
21
+ /** Количество страниц. */
22
+ pagesCount: number;
23
+ /** Номер текущей страницы. */
21
24
  activePage: number;
22
- /** Компонент обертки по умолчанию.
23
- * @default <span/> */
24
- component?: React.ComponentType<ItemComponentProps>;
25
- /** Задает функцию, которая вызывается при переключении страницы. */
25
+ /** Вызывается при переключении страницы. */
26
26
  onPageChange: (pageNumber: number) => void;
27
- /** Задает общее количество страниц. */
28
- pagesCount: number;
29
- /** Задает размер контрола.
30
- * @default 'small'. Проп поддерживается начиная с версии темы 5.3. */
27
+ /** Размер пейджинга.
28
+ *
29
+ * *Проп поддерживается начиная с версии 5.3.*
30
+ * @default 'small' */
31
31
  size?: SizeProp;
32
32
  /** Делает компонент недоступным. */
33
33
  disabled?: boolean;
34
+ /** Подпись у кнопки перехода на следующую страницу. */
35
+ caption?: string;
36
+ /** Компонент обёртки страниц.
37
+ * @default <span/> */
38
+ component?: React.ComponentType<ItemComponentProps>;
34
39
  /** Отключает навигационные подсказки.
35
- * По-умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо элемент в фокусе, либо globalListeners === true). */
40
+ * По умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо контрол в фокусе, либо globalListeners === true). */
36
41
  withoutNavigationHint?: boolean;
37
- /** Задает подпить у пейджинга. */
38
- caption?: string;
39
- /** Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.
40
- * Если на странице используется несколько элементов **Paging** с useGlobalListener === true,
41
- * то обработчик keyDown будет вызываться на каждом из них. Такие случаи лучше обрабатывать отдельно. */
42
+ /** Включает глобальный слушатель `keyDown`, для навигации клавишами без фокуса на контроле. */
42
43
  useGlobalListener?: boolean;
43
44
  }
44
45
  export interface PagingState {
@@ -91,6 +91,7 @@ var IGNORE_EVENT_TAGS = ['input', 'textarea'];
91
91
 
92
92
 
93
93
 
94
+
94
95
 
95
96
 
96
97
  var PagingDataTids = exports.PagingDataTids = {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_isInstanceOf","_identifiers","_decorators","_keyListener","_utils","_client","_ThemeContext","_ThemeHelpers","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_getVisualStateDataAttributes","_ResponsiveLayout","_Paging2","NavigationHelper","_interopRequireWildcard","_PagingHelper","_locale","_PagingDefaultComponent","_ForwardIcon","_DotsIcon","_dec","_class","_Paging","IGNORE_EVENT_TAGS","PagingDataTids","exports","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","locale","PagingLocaleHelper","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","_cx","default","createElement","className","cx","styles","theme","sizeClassNames","dotsDisabled","getDotsIcon","_cx2","classNames","pageLinkFocused","forwardLinkDisabled","Component","component","forward","forwardIcon","getForwardIcon","_extends2","onClick","emptyHandler","goForward","tabIndex","pageNumber","getVisualStateDataAttributes","isMobile","caption","_cx3","pageLinkDisabled","pageLinkCurrent","pageLinkCurrentDisabled","handleClick","goToPage","onMouseDown","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","hint","Fragment","transparent","getKeyName","pageLinkHint","handleMouseDown","setState","isIE11","globalObject","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isKeyArrowLeft","isArrowRight","isKeyArrowRight","isInstanceOf","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","isKeyEnter","executeItemAction","handleFocus","requestAnimationFrame","keyListener","isTabPressed","handleBlur","getItems","pagesCount","isItemFocusable","moveFocus","step","items","findIndex","x","onPageChange","addGlobalListener","_globalObject$documen","document","addEventListener","removeGlobalListener","_globalObject$documen2","removeEventListener","refContainer","element","getPagingSizeClassNames","size","getSize","pagingLegacy","dotsLegacy","forwardLinkLegacy","pageLinkLegacy","pagingSmall","dotsSmall","forwardLinkSmall","pageLinkSmall","pagingMedium","dotsMedium","forwardLinkMediumMobile","forwardLinkMedium","pageLinkMedium","pagingLarge","dotsLarge","forwardLinkLargeMobile","forwardLinkLarge","pageLinkLarge","TypeError","DotsIcon","iconSize","parseInt","pagingForwardIconSize","ForwardIconMobile","ForwardIcon","style","marginLeft","defaultSize","isThemeGTE","_inheritsLoose2","isForward","_proto","prototype","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","_this2","ThemeContext","Consumer","ResponsiveLayout","_ref","renderMain","_cx4","_this3","_this$getProps","CommonWrapper","rootNodeRef","setRootNode","paging","pagingMobile","pagingDisabled","onKeyDown","undefined","onFocus","onBlur","ref","map","React","PureComponent","__KONTUR_REACT_UI__","displayName","PagingDefaultComponent"],"sources":["Paging.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { isKeyArrowLeft, isKeyArrowRight, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport type { Nullable } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { emptyHandler } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport type { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport type { PagingLocale } from './locale';\nimport { PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\nimport { ForwardIcon, ForwardIconMobile } from './ForwardIcon';\nimport { DotsIcon } from './DotsIcon';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\nexport interface ItemComponentProps {\n /** Определяет, является ли страница текущей. */\n active: boolean;\n\n /** @ignore */\n children?: React.ReactNode;\n\n /** Задает HTML-атрибут class. */\n className: string;\n\n /** Задает функцию, которая вызывается при клике на элемент. */\n onClick: () => void;\n\n /** Задает номер текущей страницы. */\n pageNumber: number | 'forward';\n\n /** Задает HTML-атрибут `tabindex`. */\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n activePage: number;\n\n /** Компонент обертки по умолчанию.\n * @default <span/> */\n component?: React.ComponentType<ItemComponentProps>;\n\n /** Задает функцию, которая вызывается при переключении страницы. */\n onPageChange: (pageNumber: number) => void;\n\n /** Задает общее количество страниц. */\n pagesCount: number;\n\n /** Задает размер контрола.\n * @default 'small'. Проп поддерживается начиная с версии темы 5.3. */\n size?: SizeProp;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Отключает навигационные подсказки.\n * По-умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо элемент в фокусе, либо globalListeners === true). */\n withoutNavigationHint?: boolean;\n\n /** Задает подпить у пейджинга. */\n caption?: string;\n\n /** Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.\n * Если на странице используется несколько элементов **Paging** с useGlobalListener === true,\n * то обработчик keyDown будет вызываться на каждом из них. Такие случаи лучше обрабатывать отдельно. */\n useGlobalListener?: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\nexport const PagingDataTids = {\n root: 'Paging__root',\n dots: 'Paging__dots',\n forwardLink: 'Paging__forwardLink',\n pageLinkWrapper: 'Paging__pageLinkWrapper',\n pageLink: 'Paging__pageLink',\n} as const;\n\ntype DefaultProps = Required<Pick<PagingProps, 'component' | 'useGlobalListener'>>;\n\ninterface PagingSizeClassNames {\n root: string;\n dots: string;\n forwardLink: string;\n pageLink: string;\n}\n\n/**\n * Постраничная навигация `Paging` (пейджинг или пагинация) — способ представления большого количества однородной информации, когда контент разбивается на страницы.\n */\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n public static displayName = 'Paging';\n\n public static defaultProps: DefaultProps = {\n component: PagingDefaultComponent,\n useGlobalListener: false,\n };\n\n private getProps = createPropsGetter(Paging.defaultProps);\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public static isForward(pageNumber: number | 'forward'): boolean {\n return pageNumber === 'forward';\n }\n\n public state: PagingState = {\n focusedByTab: false,\n focusedItem: null,\n keyboardControl: this.getProps().useGlobalListener,\n };\n\n private theme!: Theme;\n private readonly locale!: PagingLocale;\n private isMobile!: boolean;\n private sizeClassNames!: PagingSizeClassNames;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n\n public componentDidMount() {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (!prevProps.useGlobalListener && useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== useGlobalListener) {\n this.setState({\n keyboardControl: useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2) {\n return null;\n }\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ResponsiveLayout>\n {({ isMobile }) => {\n this.isMobile = isMobile && isThemeGTE(this.theme, '5.3');\n this.sizeClassNames = this.getPagingSizeClassNames();\n return this.renderMain();\n }}\n </ResponsiveLayout>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { useGlobalListener } = this.getProps();\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...this.props}\n {...getVisualStateDataAttributes({ disabled: this.props.disabled })}\n >\n <span\n tabIndex={this.props.disabled ? -1 : 0}\n data-tid={PagingDataTids.root}\n className={cx(styles.paging(), this.sizeClassNames.root, {\n [styles.pagingMobile()]: this.isMobile,\n [styles.pagingDisabled()]: this.props.disabled,\n })}\n onKeyDown={useGlobalListener ? undefined : this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n ref={this.refContainer}\n >\n {this.getItems().map((item, index) => this.renderItem(item, index))}\n </span>\n </CommonWrapper>\n );\n }\n\n private renderItem = (item: ItemType, index: number) => {\n const focused = this.getFocusedItem() === item;\n switch (item) {\n case '.': {\n const key = `dots${index < 5 ? 'Left' : 'Right'}`;\n return this.renderDots(key);\n }\n case 'forward': {\n const disabled = this.isItemDisabled(item);\n return this.renderForwardLink(disabled, focused);\n }\n default: {\n const active = this.props.activePage === item;\n return this.renderPageLink(item, active, focused);\n }\n }\n };\n\n private renderDots = (key: string) => {\n return (\n <span\n data-tid={PagingDataTids.dots}\n key={key}\n className={cx(styles.dots(this.theme), this.sizeClassNames.dots, {\n [styles.dotsDisabled(this.theme)]: this.props.disabled,\n })}\n >\n {this.getDotsIcon()}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classNames = cx(\n styles.pageLink(this.theme),\n this.sizeClassNames.pageLink,\n styles.forwardLink(this.theme),\n this.sizeClassNames.forwardLink,\n {\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.forwardLinkDisabled(this.theme)]: disabled || this.props.disabled,\n },\n );\n const Component = this.getProps().component;\n const { forward } = this.locale;\n\n const forwardIcon = this.getForwardIcon();\n\n return (\n <Component\n key={'forward'}\n data-tid={PagingDataTids.forwardLink}\n active={false}\n className={classNames}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n {...getVisualStateDataAttributes({ disabled })}\n >\n {!this.isMobile && (this.props.caption || forward)}\n {forwardIcon}\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const disabled = this.props.disabled;\n const classNames = cx(styles.pageLink(this.theme), this.sizeClassNames.pageLink, {\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.pageLinkDisabled(this.theme)]: disabled,\n [styles.pageLinkCurrent(this.theme)]: active,\n [styles.pageLinkCurrentDisabled(this.theme)]: active && disabled,\n });\n const Component = this.getProps().component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid={PagingDataTids.pageLinkWrapper}\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n {...getVisualStateDataAttributes({ active, disabled })}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid={PagingDataTids.pageLink}\n active={active}\n className={classNames}\n onClick={handleClick}\n tabIndex={-1}\n pageNumber={pageNumber}\n >\n {pageNumber}\n </Component>\n {active && !this.isMobile && this.renderNavigationHint()}\n </span>\n );\n };\n\n private renderNavigationHint = () => {\n if (this.props.withoutNavigationHint) {\n return null;\n }\n\n const { keyboardControl } = this.state;\n const canGoBackward = this.canGoBackward();\n const canGoForward = this.canGoForward();\n\n let hint = null;\n if (keyboardControl && (canGoBackward || canGoForward)) {\n hint = (\n <>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName(this.theme)}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </>\n );\n }\n return <div className={styles.pageLinkHint(this.theme)}>{hint}</div>;\n };\n\n private handleMouseDown = () => {\n this.setState({ focusedByTab: false, focusedItem: null });\n };\n\n private handleMouseDownPageLink = () => {\n if (isIE11) {\n // Клик по span внутри контейнера с tabindex=\"0\" переносит фокус именно на этот span.\n // Поэтому горячие клавиши работают пока span существует на странице.\n globalObject.setTimeout(() => this.container && this.container.focus(), 0);\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLElement>) => {\n if (e.shiftKey) {\n return;\n }\n\n const target = e.target;\n\n const isArrowLeft = isKeyArrowLeft(e);\n const isArrowRight = isKeyArrowRight(e);\n\n if (\n isInstanceOf(target, globalObject.Element) &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e, this.theme) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e, this.theme) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.getProps().useGlobalListener || false,\n });\n };\n\n private getItems = (): ItemType[] => {\n return getItems(this.props.activePage, this.props.pagesCount, this.isMobile).concat('forward');\n };\n\n private getFocusedItem = (): Nullable<ItemType> => {\n if (!this.state.focusedByTab) {\n return null;\n }\n\n const { focusedItem } = this.state;\n if (focusedItem && this.getItems().includes(focusedItem) && this.isItemFocusable(focusedItem)) {\n return focusedItem;\n }\n\n return this.props.activePage;\n };\n\n private isItemFocusable = (item: ItemType) => {\n return !this.isItemDisabled(item);\n };\n\n private isItemDisabled = (item: ItemType) => {\n switch (item) {\n case '.':\n return true;\n case 'forward':\n return !this.canGoForward();\n default:\n return false;\n }\n };\n\n private executeItemAction = (item: Nullable<ItemType>) => {\n if (item === 'forward') {\n this.goForward();\n }\n if (typeof item === 'number') {\n this.goToPage(item);\n }\n };\n\n private moveFocusLeft = () => {\n this.moveFocus(-1);\n };\n\n private moveFocusRight = () => {\n this.moveFocus(1);\n };\n\n private moveFocus = (step: number) => {\n const focusedItem = this.getFocusedItem();\n const items = this.getItems();\n let index = items.findIndex((x) => x === focusedItem);\n do {\n index = (index + step + items.length) % items.length;\n } while (!this.isItemFocusable(items[index]));\n this.setState({ focusedItem: items[index] });\n };\n\n private canGoBackward = (): boolean => {\n return this.props.activePage > 1;\n };\n\n private canGoForward = (): boolean => {\n return this.props.activePage < this.props.pagesCount;\n };\n\n private goBackward = () => {\n this.goToPage(this.props.activePage - 1);\n };\n\n private goForward = () => {\n this.goToPage(this.props.activePage + 1);\n };\n\n private goToPage = (pageNumber: number) => {\n if (pageNumber >= 1 && pageNumber !== this.props.activePage && pageNumber <= this.props.pagesCount) {\n this.props.onPageChange(pageNumber);\n }\n };\n\n private addGlobalListener = () => {\n if (this.addedGlobalListener) {\n return;\n }\n\n globalObject.document?.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n globalObject.document?.removeEventListener('keydown', this.handleKeyDown);\n\n this.addedGlobalListener = false;\n }\n };\n\n private refContainer = (element: HTMLSpanElement | null) => {\n this.container = element;\n };\n\n private getPagingSizeClassNames = (): PagingSizeClassNames => {\n const size = this.getSize();\n switch (size) {\n case 'legacy':\n return {\n root: styles.pagingLegacy(this.theme),\n dots: styles.dotsLegacy(this.theme),\n forwardLink: styles.forwardLinkLegacy(this.theme),\n pageLink: styles.pageLinkLegacy(this.theme),\n };\n case 'small':\n return {\n root: styles.pagingSmall(this.theme),\n dots: styles.dotsSmall(this.theme),\n forwardLink: styles.forwardLinkSmall(this.theme),\n pageLink: styles.pageLinkSmall(this.theme),\n };\n case 'medium':\n return {\n root: styles.pagingMedium(this.theme),\n dots: styles.dotsMedium(this.theme),\n forwardLink: this.isMobile\n ? styles.forwardLinkMediumMobile(this.theme)\n : styles.forwardLinkMedium(this.theme),\n pageLink: styles.pageLinkMedium(this.theme),\n };\n case 'large':\n return {\n root: styles.pagingLarge(this.theme),\n dots: styles.dotsLarge(this.theme),\n forwardLink: this.isMobile ? styles.forwardLinkLargeMobile(this.theme) : styles.forwardLinkLarge(this.theme),\n pageLink: styles.pageLinkLarge(this.theme),\n };\n default:\n throw new TypeError(`Invalid size prop: '${this.props.size}'`);\n }\n };\n\n private getDotsIcon = () => {\n const size = this.getSize();\n return size === 'legacy' ? '...' : <DotsIcon size={size} />;\n };\n\n private getForwardIcon = () => {\n const size = this.getSize();\n const iconSize = size === 'legacy' ? parseInt(this.theme.pagingForwardIconSize) : size;\n return this.isMobile ? (\n <ForwardIconMobile size={iconSize} />\n ) : (\n <ForwardIcon size={iconSize} style={{ marginLeft: 4 }} />\n );\n };\n\n private getSize = () => {\n if (this.props.size) {\n return this.isMobile && this.props.size === 'small' ? 'medium' : this.props.size;\n }\n\n const defaultSize = isThemeGTE(this.theme, '5.3') ? 'small' : 'legacy';\n return this.isMobile && defaultSize === 'small' ? 'medium' : defaultSize;\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_isInstanceOf","_identifiers","_decorators","_keyListener","_utils","_client","_ThemeContext","_ThemeHelpers","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_getVisualStateDataAttributes","_ResponsiveLayout","_Paging2","NavigationHelper","_interopRequireWildcard","_PagingHelper","_locale","_PagingDefaultComponent","_ForwardIcon","_DotsIcon","_dec","_class","_Paging","IGNORE_EVENT_TAGS","PagingDataTids","exports","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","locale","PagingLocaleHelper","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","_cx","default","createElement","className","cx","styles","theme","sizeClassNames","dotsDisabled","getDotsIcon","_cx2","classNames","pageLinkFocused","forwardLinkDisabled","Component","component","forward","forwardIcon","getForwardIcon","_extends2","onClick","emptyHandler","goForward","tabIndex","pageNumber","getVisualStateDataAttributes","isMobile","caption","_cx3","pageLinkDisabled","pageLinkCurrent","pageLinkCurrentDisabled","handleClick","goToPage","onMouseDown","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","hint","Fragment","transparent","getKeyName","pageLinkHint","handleMouseDown","setState","isIE11","globalObject","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isKeyArrowLeft","isArrowRight","isKeyArrowRight","isInstanceOf","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","isKeyEnter","executeItemAction","handleFocus","requestAnimationFrame","keyListener","isTabPressed","handleBlur","getItems","pagesCount","isItemFocusable","moveFocus","step","items","findIndex","x","onPageChange","addGlobalListener","_globalObject$documen","document","addEventListener","removeGlobalListener","_globalObject$documen2","removeEventListener","refContainer","element","getPagingSizeClassNames","size","getSize","pagingLegacy","dotsLegacy","forwardLinkLegacy","pageLinkLegacy","pagingSmall","dotsSmall","forwardLinkSmall","pageLinkSmall","pagingMedium","dotsMedium","forwardLinkMediumMobile","forwardLinkMedium","pageLinkMedium","pagingLarge","dotsLarge","forwardLinkLargeMobile","forwardLinkLarge","pageLinkLarge","TypeError","DotsIcon","iconSize","parseInt","pagingForwardIconSize","ForwardIconMobile","ForwardIcon","style","marginLeft","defaultSize","isThemeGTE","_inheritsLoose2","isForward","_proto","prototype","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","_this2","ThemeContext","Consumer","ResponsiveLayout","_ref","renderMain","_cx4","_this3","_this$getProps","CommonWrapper","rootNodeRef","setRootNode","paging","pagingMobile","pagingDisabled","onKeyDown","undefined","onFocus","onBlur","ref","map","React","PureComponent","__KONTUR_REACT_UI__","displayName","PagingDefaultComponent"],"sources":["Paging.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { isKeyArrowLeft, isKeyArrowRight, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport type { Nullable } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { emptyHandler } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport type { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport type { PagingLocale } from './locale';\nimport { PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\nimport { ForwardIcon, ForwardIconMobile } from './ForwardIcon';\nimport { DotsIcon } from './DotsIcon';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\nexport interface ItemComponentProps {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Определяет, является ли страница текущей. */\n active: boolean;\n\n /** Номер страницы. */\n pageNumber: number | 'forward';\n\n /** Вызывается при клике на элемент. */\n onClick: () => void;\n\n /** HTML-атрибут `class`. */\n className: string;\n\n /** HTML-атрибут `tabindex`. */\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n /** Количество страниц. */\n pagesCount: number;\n\n /** Номер текущей страницы. */\n activePage: number;\n\n /** Вызывается при переключении страницы. */\n onPageChange: (pageNumber: number) => void;\n\n /** Размер пейджинга.\n *\n * *Проп поддерживается начиная с версии 5.3.*\n * @default 'small' */\n size?: SizeProp;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Подпись у кнопки перехода на следующую страницу. */\n caption?: string;\n\n /** Компонент обёртки страниц.\n * @default <span/> */\n component?: React.ComponentType<ItemComponentProps>;\n\n /** Отключает навигационные подсказки.\n * По умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо контрол в фокусе, либо globalListeners === true). */\n withoutNavigationHint?: boolean;\n\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":[]}
@@ -4,21 +4,38 @@ import type { TGetRootNode } from '../../lib/rootNode';
4
4
  declare const types: readonly ["big", "mini", "normal"];
5
5
  export type SpinnerType = (typeof types)[number];
6
6
  export interface SpinnerProps extends CommonProps {
7
- /** Задает подпись под спиннером.
8
- * @default "Загрузка" */
7
+ /**
8
+ * Подпись спиннера
9
+ */
9
10
  caption?: React.ReactNode;
10
- /** Переводит спиннер в "затемнённый режим".
11
- * Цвет спиннера в "затемнённом режиме" определяется переменной `spinnerDimmedColor`. */
12
- dimmed?: boolean;
13
- /** Задает размер спиннера и текста.
14
- * @default normal. */
11
+ /**
12
+ * Размер индикатора и текста
13
+ *
14
+ * @default normal
15
+ */
15
16
  type?: SpinnerType;
16
- /** Уменьшает спиннер для вставки в инлайн элемент. При type = "big"|"normal" размер спиннера уменьшается. */
17
+ /**
18
+ * Одноцветный режим. Удобная альтернатива пропа `dimmed`
19
+ */
20
+ color?: React.CSSProperties['color'];
21
+ /**
22
+ * Уменьшает размер индикатора для работы в строках. Если задан, то размер индикитора из `type` игнорируется
23
+ *
24
+ * @default false
25
+ */
17
26
  inline?: boolean;
18
- /** Задает толщину спиннера. */
27
+ /**
28
+ * Толщина индикатора в пикселях.
29
+ *
30
+ * @default 2
31
+ */
19
32
  width?: number;
20
- /** Задает цвет спиннера. Не работает с пропом dimmed. */
21
- color?: React.CSSProperties['color'];
33
+ /**
34
+ * Одноцветный режим. Цвет спиннера не переливается. Можно кастомизировать переменной `spinnerDimmedColor`
35
+ *
36
+ * @default false
37
+ */
38
+ dimmed?: boolean;
22
39
  }
23
40
  export declare const SpinnerDataTids: {
24
41
  readonly root: "Spinner__root";
@@ -26,11 +43,6 @@ export declare const SpinnerDataTids: {
26
43
  type DefaultProps = Required<Pick<SpinnerProps, 'type'>>;
27
44
  /**
28
45
  * `Spinner` — это зацикленный индикатор, не отображающий прогресс выполнения задачи.
29
- *
30
- * Используйте `Spinner`, чтобы показать, что система выполняет команду, которую дал пользователь.
31
- * Не применяйте `Spinner` для заполнения паузы при загрузке контента, для этого предназначен GlobalLoader.
32
- *
33
- * Используйте компонент `Spinner`, если вам нужен спиннер, без дополнительного функционала, который предоставляет компонент Loader.
34
46
  */
35
47
  export declare class Spinner extends React.Component<SpinnerProps> {
36
48
  static __KONTUR_REACT_UI__: string;
@@ -33,6 +33,23 @@ var types = ['big', 'mini', 'normal'];
33
33
 
34
34
 
35
35
 
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
36
53
 
37
54
 
38
55
 
@@ -47,11 +64,6 @@ var SpinnerDataTids = exports.SpinnerDataTids = {
47
64
 
48
65
  /**
49
66
  * `Spinner` — это зацикленный индикатор, не отображающий прогресс выполнения задачи.
50
- *
51
- * Используйте `Spinner`, чтобы показать, что система выполняет команду, которую дал пользователь.
52
- * Не применяйте `Spinner` для заполнения паузы при загрузке контента, для этого предназначен GlobalLoader.
53
- *
54
- * Используйте компонент `Spinner`, если вам нужен спиннер, без дополнительного функционала, который предоставляет компонент Loader.
55
67
  */var
56
68
 
57
69
  Spinner = exports.Spinner = (0, _rootNode.rootNode)(_class = (_Spinner = /*#__PURE__*/function (_React$Component) {function Spinner() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_ThemeContext","_SpinnerIcon","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_Spinner2","_class","_Spinner","types","SpinnerDataTids","exports","root","Spinner","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","renderSpinner","type","dimmed","inline","_cx","default","createElement","SpinnerIcon","size","className","cx","styles","circle","theme","props","color","circleDimmedColor","circleWithoutColorAnimation","width","renderCaption","caption","captionColor","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","renderMain","_this$props","_this$props$caption","CommonWrapper","_extends2","rootNodeRef","setRootNode","spinner","inner","React","Component","__KONTUR_REACT_UI__","displayName","Types","Object","assign","map","_ref"],"sources":["Spinner.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { SpinnerIcon } from '../../internal/SpinnerIcon/SpinnerIcon';\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';\n\nimport { styles } from './Spinner.styles';\n\nconst types = ['big', 'mini', 'normal'] as const;\n\nexport type SpinnerType = (typeof types)[number];\n\nexport interface SpinnerProps extends CommonProps {\n /** Задает подпись под спиннером.\n * @default \"Загрузка\" */\n caption?: React.ReactNode;\n\n /** Переводит спиннер в \"затемнённый режим\".\n * Цвет спиннера в \"затемнённом режиме\" определяется переменной `spinnerDimmedColor`. */\n dimmed?: boolean;\n\n /** Задает размер спиннера и текста.\n * @default normal. */\n type?: SpinnerType;\n\n /** Уменьшает спиннер для вставки в инлайн элемент. При type = \"big\"|\"normal\" размер спиннера уменьшается. */\n inline?: boolean;\n\n /** Задает толщину спиннера. */\n width?: number;\n\n /** Задает цвет спиннера. Не работает с пропом dimmed. */\n color?: React.CSSProperties['color'];\n}\n\nexport const SpinnerDataTids = {\n root: 'Spinner__root',\n} as const;\n\ntype DefaultProps = Required<Pick<SpinnerProps, 'type'>>;\n\n/**\n * `Spinner` — это зацикленный индикатор, не отображающий прогресс выполнения задачи.\n *\n * Используйте `Spinner`, чтобы показать, что система выполняет команду, которую дал пользователь.\n * Не применяйте `Spinner` для заполнения паузы при загрузке контента, для этого предназначен GlobalLoader.\n *\n * Используйте компонент `Spinner`, если вам нужен спиннер, без дополнительного функционала, который предоставляет компонент Loader.\n */\n@rootNode\nexport class Spinner extends React.Component<SpinnerProps> {\n public static __KONTUR_REACT_UI__ = 'Spinner';\n public static displayName = 'Spinner';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n };\n\n private getProps = createPropsGetter(Spinner.defaultProps);\n\n public static Types: Record<SpinnerType, SpinnerType> = Object.assign({}, ...types.map((type) => ({ [type]: type })));\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption = null, dimmed, inline } = this.props;\n const type = this.getProps().type;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SpinnerDataTids.root} className={styles.spinner()}>\n <span className={styles.inner()}>{this.renderSpinner(type, dimmed, inline)}</span>\n {caption && this.renderCaption(type, caption)}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderSpinner = (type: SpinnerType, dimmed?: boolean, inline?: boolean) => {\n return (\n <SpinnerIcon\n size={type}\n className={cx({\n [styles.circle(this.theme)]: !dimmed && !this.props.color,\n [styles.circleDimmedColor(this.theme)]: dimmed,\n [styles.circleWithoutColorAnimation()]: dimmed || !!this.props.color,\n })}\n dimmed={dimmed}\n width={this.props.width}\n color={this.props.color}\n inline={inline}\n />\n );\n };\n\n private renderCaption = (type: SpinnerType, caption: React.ReactNode) => (\n <span className={cx(styles[type](this.theme), styles.captionColor(this.theme))}>{caption}</span>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_ThemeContext","_SpinnerIcon","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_Spinner2","_class","_Spinner","types","SpinnerDataTids","exports","root","Spinner","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","renderSpinner","type","dimmed","inline","_cx","default","createElement","SpinnerIcon","size","className","cx","styles","circle","theme","props","color","circleDimmedColor","circleWithoutColorAnimation","width","renderCaption","caption","captionColor","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","renderMain","_this$props","_this$props$caption","CommonWrapper","_extends2","rootNodeRef","setRootNode","spinner","inner","React","Component","__KONTUR_REACT_UI__","displayName","Types","Object","assign","map","_ref"],"sources":["Spinner.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { SpinnerIcon } from '../../internal/SpinnerIcon/SpinnerIcon';\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';\n\nimport { styles } from './Spinner.styles';\n\nconst types = ['big', 'mini', 'normal'] as const;\n\nexport type SpinnerType = (typeof types)[number];\n\nexport interface SpinnerProps extends CommonProps {\n /**\n * Подпись спиннера\n */\n caption?: React.ReactNode;\n\n /**\n * Размер индикатора и текста\n *\n * @default normal\n */\n type?: SpinnerType;\n\n /**\n * Одноцветный режим. Удобная альтернатива пропа `dimmed`\n */\n color?: React.CSSProperties['color'];\n\n /**\n * Уменьшает размер индикатора для работы в строках. Если задан, то размер индикитора из `type` игнорируется\n *\n * @default false\n */\n inline?: boolean;\n\n /**\n * Толщина индикатора в пикселях.\n *\n * @default 2\n */\n width?: number;\n\n /**\n * Одноцветный режим. Цвет спиннера не переливается. Можно кастомизировать переменной `spinnerDimmedColor`\n *\n * @default false\n */\n dimmed?: boolean;\n}\n\nexport const SpinnerDataTids = {\n root: 'Spinner__root',\n} as const;\n\ntype DefaultProps = Required<Pick<SpinnerProps, 'type'>>;\n\n/**\n * `Spinner` — это зацикленный индикатор, не отображающий прогресс выполнения задачи.\n */\n@rootNode\nexport class Spinner extends React.Component<SpinnerProps> {\n public static __KONTUR_REACT_UI__ = 'Spinner';\n public static displayName = 'Spinner';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n };\n\n private getProps = createPropsGetter(Spinner.defaultProps);\n\n public static Types: Record<SpinnerType, SpinnerType> = Object.assign({}, ...types.map((type) => ({ [type]: type })));\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption = null, dimmed, inline } = this.props;\n const type = this.getProps().type;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SpinnerDataTids.root} className={styles.spinner()}>\n <span className={styles.inner()}>{this.renderSpinner(type, dimmed, inline)}</span>\n {caption && this.renderCaption(type, caption)}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderSpinner = (type: SpinnerType, dimmed?: boolean, inline?: boolean) => {\n return (\n <SpinnerIcon\n size={type}\n className={cx({\n [styles.circle(this.theme)]: !dimmed && !this.props.color,\n [styles.circleDimmedColor(this.theme)]: dimmed,\n [styles.circleWithoutColorAnimation()]: dimmed || !!this.props.color,\n })}\n dimmed={dimmed}\n width={this.props.width}\n color={this.props.color}\n inline={inline}\n />\n );\n };\n\n private renderCaption = (type: SpinnerType, caption: React.ReactNode) => (\n <span className={cx(styles[type](this.theme), styles.captionColor(this.theme))}>{caption}</span>\n );\n}\n"],"mappings":"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","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
  };
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
2
2
 
3
3
 
4
4
  var styles = exports.styles = (0, _Emotion.memoizeStyle)({
@@ -34,5 +34,12 @@ var styles = exports.styles = (0, _Emotion.memoizeStyle)({
34
34
  return (0, _Emotion.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteralLoose2.default)(["\n background: ", ";\n "])),
35
35
  t.tabColorError);
36
36
 
37
+ },
38
+
39
+ customizationExample: function customizationExample() {
40
+ return (0, _Emotion.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteralLoose2.default)(["\n height: 5px;\n background-color: orange;\n "])));
41
+
42
+
43
+
37
44
  }
38
45
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_Emotion","require","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","styles","exports","memoizeStyle","root","t","css","_taggedTemplateLiteralLoose2","default","tabColorFocus","tabBorderWidth","tabIndicatorBorderRadius","primary","tabColorPrimary","success","tabColorSuccess","warning","tabColorWarning","error","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":"oRAAA,IAAAA,QAAA,GAAAC,OAAA,8BAA8D,IAAAC,eAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA;;;AAGvD,IAAMC,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,IAAAE,qBAAY,EAAC;EACjCC,IAAI,WAAAA,KAACC,CAAQ,EAAE;IACb,WAAOC,YAAG,EAAAV,eAAA,KAAAA,eAAA,OAAAW,4BAAA,CAAAC,OAAA;IACMH,CAAC,CAACI,aAAa;IACnBJ,CAAC,CAACK,cAAc;;;IAGTL,CAAC,CAACM,wBAAwB;;EAE/C,CAAC;;EAEDC,OAAO,WAAAA,QAACP,CAAQ,EAAE;IAChB,WAAOC,YAAG,EAAAT,gBAAA,KAAAA,gBAAA,OAAAU,4BAAA,CAAAC,OAAA;IACMH,CAAC,CAACQ,eAAe;;EAEnC,CAAC;;EAEDC,OAAO,WAAAA,QAACT,CAAQ,EAAE;IAChB,WAAOC,YAAG,EAAAR,gBAAA,KAAAA,gBAAA,OAAAS,4BAAA,CAAAC,OAAA;IACMH,CAAC,CAACU,eAAe;;EAEnC,CAAC;;EAEDC,OAAO,WAAAA,QAACX,CAAQ,EAAE;IAChB,WAAOC,YAAG,EAAAP,gBAAA,KAAAA,gBAAA,OAAAQ,4BAAA,CAAAC,OAAA;IACMH,CAAC,CAACY,eAAe;;EAEnC,CAAC;;EAEDC,KAAK,WAAAA,MAACb,CAAQ,EAAE;IACd,WAAOC,YAAG,EAAAN,gBAAA,KAAAA,gBAAA,OAAAO,4BAAA,CAAAC,OAAA;IACMH,CAAC,CAACc,aAAa;;EAEjC;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_Emotion","require","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","styles","exports","memoizeStyle","root","t","css","_taggedTemplateLiteralLoose2","default","tabColorFocus","tabBorderWidth","tabIndicatorBorderRadius","primary","tabColorPrimary","success","tabColorSuccess","warning","tabColorWarning","error","tabColorError","customizationExample"],"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":"oRAAA,IAAAA,QAAA,GAAAC,OAAA,8BAA8D,IAAAC,eAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA;;;AAGvD,IAAMC,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,IAAAE,qBAAY,EAAC;EACjCC,IAAI,WAAAA,KAACC,CAAQ,EAAE;IACb,WAAOC,YAAG,EAAAX,eAAA,KAAAA,eAAA,OAAAY,4BAAA,CAAAC,OAAA;IACMH,CAAC,CAACI,aAAa;IACnBJ,CAAC,CAACK,cAAc;;;IAGTL,CAAC,CAACM,wBAAwB;;EAE/C,CAAC;;EAEDC,OAAO,WAAAA,QAACP,CAAQ,EAAE;IAChB,WAAOC,YAAG,EAAAV,gBAAA,KAAAA,gBAAA,OAAAW,4BAAA,CAAAC,OAAA;IACMH,CAAC,CAACQ,eAAe;;EAEnC,CAAC;;EAEDC,OAAO,WAAAA,QAACT,CAAQ,EAAE;IAChB,WAAOC,YAAG,EAAAT,gBAAA,KAAAA,gBAAA,OAAAU,4BAAA,CAAAC,OAAA;IACMH,CAAC,CAACU,eAAe;;EAEnC,CAAC;;EAEDC,OAAO,WAAAA,QAACX,CAAQ,EAAE;IAChB,WAAOC,YAAG,EAAAR,gBAAA,KAAAA,gBAAA,OAAAS,4BAAA,CAAAC,OAAA;IACMH,CAAC,CAACY,eAAe;;EAEnC,CAAC;;EAEDC,KAAK,WAAAA,MAACb,CAAQ,EAAE;IACd,WAAOC,YAAG,EAAAP,gBAAA,KAAAA,gBAAA,OAAAQ,4BAAA,CAAAC,OAAA;IACMH,CAAC,CAACc,aAAa;;EAEjC,CAAC;;EAEDC,oBAAoB,WAAAA,qBAAA,EAAG;IACrB,WAAOd,YAAG,EAAAN,gBAAA,KAAAA,gBAAA,OAAAO,4BAAA,CAAAC,OAAA;;;;EAIZ;AACF,CAAC,CAAC","ignoreList":[]}