@skbkontur/react-ui-validations 2.3.4 → 2.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +63 -63
- package/index.js +14924 -93
- package/index.js.map +1 -1
- package/package.json +3 -3
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/utils/getValidationTextColor.ts","../../src/utils/isNonNullable/isNonNullable.ts","../../src/ReactUiDetection.ts","../../src/ValidationText.tsx","../../src/ValidationTooltip.tsx","../../src/ErrorRenderer.tsx","../../src/utils/createPropsGetter.ts","../../src/utils/utils.ts","../../src/utils/isNullable/isNullable.ts","../../src/FocusMode.tsx","../../src/ValidationContextWrapper.tsx","../../src/ValidationContainer.tsx","../../src/utils/getRootNode/getRootNode.ts","../../src/smoothScrollIntoView.ts","../../src/ValidationHelper.ts","../../src/utils/featureFlagsContext/ValidationsFeatureFlagsContext.tsx","../../src/utils/featureFlagsContext/FeatureFlagsHelpers.tsx","../../src/ValidationWrapperInternal.tsx","../../src/ValidationWrapper.tsx","../../src/Validations/ValidationBuilder.ts","../../src/Validations/ValidationReader.ts","../../src/Validations/ValidationWriter.ts","../../src/Validations/PathHelper.ts","../../src/Validations/index.ts"],"sourcesContent":["import type { ValidationLevel } from '../ValidationWrapperInternal';\nimport type { ThemeValidations } from '../../typings/theme-context';\n\nexport const DEFAULT_TEXT_COLOR = '#d43517';\n\nexport function getValidationTextColor(theme: ThemeValidations, level: ValidationLevel = 'error') {\n return (\n (level === 'warning' ? theme.validationsTextColorWarning : theme.validationsTextColorError) || DEFAULT_TEXT_COLOR\n );\n}\n","/**\n * Проверяет, не является ли переданный аргумент null или undefined и исключает типы null и undefined из типа аргумента\n *\n * @param value Значение, которое нужно проверить и исключить из него типы\n * @returns Возвращает true, если переданный аргумент не является null или undefined иначе false\n */\nexport const isNonNullable = <T>(value: T): value is NonNullable<T> => {\n return value !== null && value !== undefined;\n};\n","import type { ReactElement } from 'react';\nimport React from 'react';\n\nimport { isNonNullable } from '../src/utils/isNonNullable';\n\ndeclare function require(name: string): any;\n\nconst defaultOrNamed = (module: any, component: string) =>\n module && module.__esModule && module.default ? module.default : module[component];\n\nconst importContext = (module: any, component: string) => module[component] || React.createContext({});\n\nconst Tooltip = defaultOrNamed(require('__REACT_UI_PACKAGE__/components/Tooltip'), 'Tooltip');\nconst ThemeContext = importContext(require('__REACT_UI_PACKAGE__/lib/theming/ThemeContext'), 'ThemeContext');\n\nexport { Tooltip, ThemeContext };\n\nexport class ReactUiDetection {\n public static checkType(element: any, type: string) {\n return isNonNullable(element) && element.type?.__KONTUR_REACT_UI__ === type;\n }\n\n public static isDatePicker(element: any): boolean {\n return ReactUiDetection.checkType(element, 'DatePicker');\n }\n\n public static isRadioGroup(element: any): boolean {\n return ReactUiDetection.checkType(element, 'RadioGroup');\n }\n\n public static isTokenInput(element: any): boolean {\n return ReactUiDetection.checkType(element, 'TokenInput');\n }\n\n public static isSwitcher(element: any): boolean {\n return ReactUiDetection.checkType(element, 'Switcher');\n }\n\n public static isComboBox(element: any): boolean {\n return ReactUiDetection.checkType(element, 'ComboBox');\n }\n\n public static isRadio(element: any): boolean {\n return ReactUiDetection.checkType(element, 'Radio');\n }\n\n public static isCheckBox(element: any): boolean {\n return ReactUiDetection.checkType(element, 'Checkbox');\n }\n\n public static isToggle(element: any): boolean {\n return ReactUiDetection.checkType(element, 'Toggle');\n }\n\n public static isSelect(element: any): boolean {\n return ReactUiDetection.checkType(element, 'Select');\n }\n\n public static isSelectionControl(element: ReactElement): boolean {\n return (\n ReactUiDetection.isRadioGroup(element) ||\n ReactUiDetection.isRadio(element) ||\n ReactUiDetection.isCheckBox(element) ||\n ReactUiDetection.isToggle(element) ||\n ReactUiDetection.isSwitcher(element) ||\n ReactUiDetection.isSelect(element) ||\n ReactUiDetection.isComboBox(element)\n );\n }\n}\n","import React, { useContext } from 'react';\n\nimport type { Nullable } from '../typings/Types';\nimport type { ThemeValidations } from '../typings/theme-context';\n\nimport type { TextPosition, Validation } from './ValidationWrapperInternal';\nimport { getValidationTextColor } from './utils/getValidationTextColor';\nimport { ThemeContext } from './ReactUiDetection';\n\nexport interface ValidationTextProps {\n pos: TextPosition;\n children: React.ReactNode;\n validation: Nullable<Validation>;\n 'data-tid'?: string;\n}\n\nexport const ValidationText = ({ pos, children, validation, 'data-tid': dataTid }: ValidationTextProps) => {\n const theme = useContext<ThemeValidations>(ThemeContext);\n const color = getValidationTextColor(theme, validation?.level);\n\n if (pos === 'right') {\n const childrenAndValidationText = (\n <>\n {children}\n <span data-tid={dataTid} data-validation-message=\"text\" style={{ marginLeft: '10px', color }}>\n {(validation && validation.message) || ''}\n </span>\n </>\n );\n return <div style={{ display: 'inline-block' }}>{childrenAndValidationText}</div>;\n }\n\n const validationText = (\n <span\n data-tid={dataTid}\n data-validation-message=\"text\"\n style={{\n color,\n overflow: 'visible',\n whiteSpace: 'nowrap',\n position: 'absolute',\n top: '2px',\n left: 0,\n }}\n >\n {(validation && validation.message) || ''}\n </span>\n );\n\n const childrenAndValidationText = (\n <>\n {children}\n <span style={{ position: 'absolute', bottom: 0, left: 0, height: 0 }}>{validationText}</span>\n </>\n );\n\n return <div style={{ position: 'relative', display: 'inline-block' }}>{childrenAndValidationText}</div>;\n};\n\nValidationText.__KONTUR_REACT_UI__ = 'ValidationText';\nValidationText.displayName = 'ValidationText';\n","import React from 'react';\n\nimport { ReactUiDetection, Tooltip } from './ReactUiDetection';\n\nexport type TooltipPosition =\n | 'top left'\n | 'top center'\n | 'top right'\n | 'bottom left'\n | 'bottom center'\n | 'bottom right'\n | 'left top'\n | 'left middle'\n | 'left bottom'\n | 'right top'\n | 'right middle'\n | 'right bottom';\n\nexport interface ValidationTooltipProps {\n children: React.ReactElement<any>;\n error: boolean;\n pos?: TooltipPosition;\n render?: () => React.ReactNode;\n 'data-tid'?: string;\n}\n\nexport class ValidationTooltip extends React.Component<ValidationTooltipProps> {\n public static __KONTUR_REACT_UI__ = 'ValidationTooltip';\n public static displayName = 'ValidationTooltip';\n\n public render() {\n const { children, pos, error, render, ...rest } = this.props;\n\n const onlyChild = React.Children.only(children);\n const child = onlyChild && onlyChild.props ? onlyChild.props.children : null;\n\n return ReactUiDetection.isRadioGroup(child) ||\n ReactUiDetection.isTokenInput(child) ||\n ReactUiDetection.isSwitcher(child) ? (\n <Tooltip useWrapper={false} pos={pos} render={error && render} trigger={'hover&focus'} {...rest}>\n {child}\n </Tooltip>\n ) : (\n <Tooltip pos={pos} render={error && render} trigger={'hover&focus'} {...rest}>\n {children}\n </Tooltip>\n );\n }\n}\n","import React from 'react';\n\nimport { ValidationText } from './ValidationText';\nimport type { TooltipPosition } from './ValidationTooltip';\nimport { ValidationTooltip } from './ValidationTooltip';\nimport type { RenderErrorMessage, TextPosition } from './ValidationWrapperInternal';\n\nexport function tooltip(pos: TooltipPosition): RenderErrorMessage {\n return (control, hasError, validation) => {\n return (\n <ValidationTooltip\n pos={pos}\n error={hasError}\n render={() => {\n if (!validation || !validation.message) {\n return null;\n }\n return (validation && validation.message) || '';\n }}\n >\n {control}\n </ValidationTooltip>\n );\n };\n}\n\nexport function text(pos: TextPosition = 'right'): RenderErrorMessage {\n return (control, _hasError, validation) => {\n return (\n <ValidationText pos={pos} validation={validation}>\n {control}\n </ValidationText>\n );\n };\n}\n","import type React from 'react';\n\nexport type DefaultizedProps<P, DP> = P & DP;\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unnecessary-type-constraint\nexport function createPropsGetter<DP extends unknown>(defaultProps: DP) {\n return function <P, T extends React.Component<P>>(this: T) {\n return this.props as DefaultizedProps<T['props'], DP>;\n };\n}\n","const env: NodeJS.ProcessEnv = (typeof process === 'object' && process && process.env) || {};\nconst { enableReactTesting, NODE_ENV, REACT_UI_TEST, REACT_APP_REACT_UI_TEST, STORYBOOK_REACT_UI_TEST } = env;\n\nconst isReactUITestEnv =\n Boolean(REACT_UI_TEST) || // for cases when NODE_ENV is not usable (dev/prod)\n Boolean(REACT_APP_REACT_UI_TEST) || // for usage with CRA\n Boolean(STORYBOOK_REACT_UI_TEST) || // for usage with storybook\n Boolean(enableReactTesting); // deprecated, legacy variable\n\nexport const isTestEnv = NODE_ENV === 'test' || isReactUITestEnv;\n\nexport const isBrowser = typeof window !== 'undefined';\n\nexport function isElement(el: unknown): el is Element {\n return !!el && typeof el === 'object' && 'nodeType' in el && el.nodeType === Node.ELEMENT_NODE;\n}\n\nexport const getDoc = (node: Node): Document => node.ownerDocument ?? (node as Document);\nexport const getWin = (node: Node): (WindowProxy & typeof globalThis) | null => getDoc(node).defaultView;\n","/**\n * Checks if the value `null` or `undefined`.\n *\n * @param value Value to check for `null` and `undefined`.\n * @returns Returns `true` if `value` is `null` or `undefined`, else `false`.\n */\n// @ts-expect-error: TypeScript doesn't consider the check inside of the function.\nexport const isNullable = <T>(value: T): value is null | undefined => {\n return value === null || value === undefined;\n};\n","export enum FocusMode {\n 'Errors',\n 'ErrorsAndWarnings',\n 'None',\n}\n","import React from 'react';\n\nimport type { ValidationWrapperInternal } from './ValidationWrapperInternal';\nimport type { ScrollOffset, ValidateArgumentType } from './ValidationContainer';\nimport { isNullable } from './utils/isNullable';\nimport { FocusMode } from './FocusMode';\n\nexport interface ValidationContextSettings {\n scrollOffset: ScrollOffset;\n disableSmoothScroll: boolean;\n}\n\nexport interface ValidationContextWrapperProps {\n 'data-tid'?: string;\n children?: React.ReactNode;\n onValidationUpdated?: (isValid?: boolean) => void;\n scrollOffset?: number | ScrollOffset;\n disableSmoothScroll: boolean;\n}\n\nexport interface ValidationContextType {\n register: (wrapper: ValidationWrapperInternal) => void;\n unregister: (wrapper: ValidationWrapperInternal) => void;\n instanceProcessBlur: (wrapper: ValidationWrapperInternal) => void;\n onValidationUpdated: (wrapper: ValidationWrapperInternal, isValid: boolean) => void;\n getSettings: () => ValidationContextSettings;\n isAnyWrapperInChangingMode: () => boolean;\n isValidationCalled: () => boolean;\n}\n\nexport const ValidationContext = React.createContext<ValidationContextType>({\n register: () => undefined,\n unregister: () => undefined,\n instanceProcessBlur: () => undefined,\n onValidationUpdated: () => undefined,\n getSettings: () => ({\n scrollOffset: {},\n disableSmoothScroll: false,\n }),\n isAnyWrapperInChangingMode: () => false,\n isValidationCalled: () => false,\n});\n\nValidationContext.displayName = 'ValidationContext';\n\nexport class ValidationContextWrapper extends React.Component<ValidationContextWrapperProps> {\n public childWrappers: ValidationWrapperInternal[] = [];\n public validationHasBeenCalled: boolean = false;\n\n public getSettings(): ValidationContextSettings {\n let scrollOffset: ScrollOffset = {};\n\n if (typeof this.props.scrollOffset === 'number') {\n scrollOffset = { top: this.props.scrollOffset };\n } else {\n scrollOffset = isNullable(this.props.scrollOffset) ? {} : this.props.scrollOffset;\n }\n\n const { top = 50, bottom = 0 } = scrollOffset;\n return {\n scrollOffset: {\n top,\n bottom,\n },\n disableSmoothScroll: this.props.disableSmoothScroll,\n };\n }\n\n public register(wrapper: ValidationWrapperInternal) {\n this.childWrappers.push(wrapper);\n }\n\n public unregister(wrapper: ValidationWrapperInternal) {\n this.childWrappers.splice(this.childWrappers.indexOf(wrapper), 1);\n this.onValidationRemoved();\n }\n\n public instanceProcessBlur(instance: ValidationWrapperInternal) {\n for (const wrapper of this.childWrappers.filter((x) => x !== instance && !x.isIndependent())) {\n wrapper.processBlur();\n }\n }\n\n public onValidationUpdated(wrapper: ValidationWrapperInternal, isValid?: boolean) {\n const { onValidationUpdated } = this.props;\n if (onValidationUpdated) {\n const isValidResult = !this.childWrappers.find((x) => {\n if (x === wrapper) {\n return !isValid;\n }\n return x.hasError();\n });\n onValidationUpdated(isValidResult);\n }\n }\n\n public isAnyWrapperInChangingMode(): boolean {\n return this.childWrappers.some((x) => x.isChanging);\n }\n\n public isValidationCalled(): boolean {\n return this.validationHasBeenCalled;\n }\n\n public onValidationRemoved() {\n const { onValidationUpdated } = this.props;\n if (onValidationUpdated) {\n const isValidResult = !this.childWrappers.find((x) => x.hasError());\n onValidationUpdated(isValidResult);\n }\n }\n\n public getChildWrappersSortedByPosition(): ValidationWrapperInternal[] {\n const wrappersWithPosition = [...this.childWrappers].map((x) => ({\n target: x,\n position: x.getControlPosition(),\n }));\n wrappersWithPosition.sort((x, y) => {\n const xPosition = x.position;\n const yPosition = y.position;\n if (isNullable(xPosition) && isNullable(yPosition)) {\n return 0;\n }\n\n if (isNullable(xPosition)) {\n return 1;\n }\n if (isNullable(yPosition)) {\n return -1;\n }\n if (Math.sign(xPosition.x - yPosition.x) !== 0) {\n return Math.sign(xPosition.x - yPosition.x);\n }\n return Math.sign(xPosition.y - yPosition.y);\n });\n return wrappersWithPosition.map((x) => x.target);\n }\n\n public async validate(withoutFocusOrValidationSettings: ValidateArgumentType): Promise<boolean> {\n const focusMode = ValidationContextWrapper.getFocusMode(withoutFocusOrValidationSettings);\n\n await Promise.all(this.childWrappers.map((x) => x.processSubmit()));\n\n this.validationHasBeenCalled = true;\n\n const childrenWrappersSortedByPosition = this.getChildWrappersSortedByPosition();\n const firstError = childrenWrappersSortedByPosition.find((x) => x.hasError());\n if (focusMode === FocusMode.ErrorsAndWarnings) {\n childrenWrappersSortedByPosition.find((x) => x.hasError() || x.hasWarning())?.focus();\n }\n if (focusMode === FocusMode.Errors) {\n firstError?.focus();\n }\n if (this.props.onValidationUpdated) {\n this.props.onValidationUpdated(!firstError);\n }\n return !firstError;\n }\n\n private static getFocusMode(withoutFocusOrValidationSettings: ValidateArgumentType) {\n if (typeof withoutFocusOrValidationSettings === 'object' && 'focusMode' in withoutFocusOrValidationSettings) {\n return withoutFocusOrValidationSettings.focusMode;\n } else if (!withoutFocusOrValidationSettings) {\n return FocusMode.Errors;\n }\n return FocusMode.None;\n }\n\n private renderChildren = (children: ValidationContextWrapperProps['children']) => {\n if (React.isValidElement(children)) {\n return React.cloneElement(children as React.ReactElement, {\n 'data-tid': this.props['data-tid'],\n });\n }\n\n return children;\n };\n\n public render() {\n return (\n <ValidationContext.Provider value={this}>\n {this.renderChildren(<div style={{ display: 'inline' }}>{this.props.children}</div>)}\n </ValidationContext.Provider>\n );\n }\n}\n","import React from 'react';\nimport warning from 'warning';\n\nimport type { Nullable } from '../typings/Types';\n\nimport { createPropsGetter } from './utils/createPropsGetter';\nimport { isTestEnv } from './utils/utils';\nimport { ValidationContextWrapper } from './ValidationContextWrapper';\nimport { FocusMode } from './FocusMode';\n\nexport interface ScrollOffset {\n top?: number;\n bottom?: number;\n}\n\nexport interface ValidationSettings {\n focusMode: FocusMode;\n}\n\nexport type ValidateArgumentType = boolean | ValidationSettings;\n\nexport interface ValidationContainerProps {\n 'data-tid'?: string;\n children?: React.ReactNode;\n onValidationUpdated?: (isValid?: Nullable<boolean>) => void;\n scrollOffset?: number | ScrollOffset;\n disableSmoothScroll?: boolean;\n}\n\ntype DefaultProps = Required<Pick<ValidationContainerProps, 'disableSmoothScroll'>>;\n\nexport class ValidationContainer extends React.Component<ValidationContainerProps> {\n public static __KONTUR_REACT_UI__ = 'ValidationContainer';\n public static displayName = 'ValidationContainer';\n\n public static defaultProps: DefaultProps = {\n disableSmoothScroll: isTestEnv,\n };\n\n private getProps = createPropsGetter(ValidationContainer.defaultProps);\n private validateProps(scrollOffset: ValidationContainerProps['scrollOffset']): void {\n warning(\n typeof scrollOffset !== 'number',\n `[ValidationContainer]: scrollOffset as a number type has been deprecated, now use object { top?: number; bottom?: number; }`,\n );\n }\n\n private childContext: ValidationContextWrapper | null = null;\n\n public async submit(withoutFocus?: boolean): Promise<void>;\n public async submit(validationSettings?: ValidationSettings): Promise<void>;\n\n public async submit(\n withoutFocusOrValidationSettings: ValidateArgumentType = { focusMode: FocusMode.Errors },\n ): Promise<void> {\n if (!this.childContext) {\n throw new Error('childContext is not defined');\n }\n await this.childContext.validate(withoutFocusOrValidationSettings);\n }\n\n public async validate(withoutFocus?: boolean): Promise<boolean>;\n public async validate(validationSettings?: ValidationSettings): Promise<boolean>;\n\n public validate(\n withoutFocusOrValidationSettings: ValidateArgumentType = { focusMode: FocusMode.Errors },\n ): Promise<boolean> {\n if (!this.childContext) {\n throw new Error('childContext is not defined');\n }\n return this.childContext.validate(withoutFocusOrValidationSettings);\n }\n\n public componentDidMount() {\n this.validateProps(this.getProps().scrollOffset);\n }\n\n public componentDidUpdate() {\n const props = this.getProps();\n this.validateProps(props.scrollOffset);\n }\n\n public render() {\n return (\n <ValidationContextWrapper\n data-tid={this.props['data-tid']}\n ref={this.refChildContext}\n scrollOffset={this.props.scrollOffset}\n disableSmoothScroll={this.getProps().disableSmoothScroll}\n onValidationUpdated={this.props.onValidationUpdated}\n >\n {this.props.children}\n </ValidationContextWrapper>\n );\n }\n\n private refChildContext = (el: ValidationContextWrapper | null) => (this.childContext = el);\n}\n","import { findDOMNode } from 'react-dom';\nimport type React from 'react';\nimport warning from 'warning';\n\nimport type { Nullable } from '../../../typings/Types';\nimport { isElement } from '../utils';\n\nexport interface InstanceWithRootNode {\n getRootNode: () => Nullable<HTMLElement>;\n}\n\nconst isInstanceWithRootNode = (instance: unknown): instance is InstanceWithRootNode => {\n return Boolean(instance) && Object.prototype.hasOwnProperty.call(instance, 'getRootNode');\n};\n\n/**\n * Temporary duplicates @skbkontur/react-ui/lib/rootNode/getRootNode.ts\n * */\n\nexport const getRootNode = (instance: Nullable<React.ReactInstance>): Nullable<Element> => {\n /**\n * Options of what instance can be:\n * 1. null or undefined\n * 2. DOM Element\n * 3. class Component instance (object)\n * 4. literally anything, returned from useImperativeHandle\n */\n\n if (!instance) {\n // instance can be `null` if component was unmounted\n // also checking undefined for convenient usage\n return null;\n }\n\n if (isElement(instance)) {\n // instance can be an Element already if its coming\n // from Refs of intrinsic elements (<div />, <button />, etc.)\n return instance;\n }\n\n let rootNode;\n\n if (isInstanceWithRootNode(instance)) {\n rootNode = instance.getRootNode();\n }\n\n if (rootNode !== undefined) {\n // the getter exists and has returned something, it should be what we are looking for\n // probably its an Element or null (which is also OK, e.g. Popup/Tooltip/Hint before opening)\n return rootNode;\n }\n\n try {\n // rootNode is undefined, which means that the getter doesn't exists or returns the undefined\n // anyway, it tell us that the convention is not respected,\n // so, we have to fall back to the deprecated findDOMNode, which breaks StrictMode\n // instance can still be a class component or an imperative handle (i.e., anything, except null/undefined/Element)\n rootNode = findDOMNode(instance);\n } catch (e) {\n // but findDOMNode doesn`t accept everything that instance can be at this point,\n // so we have to handle exceptions\n // see https://github.com/facebook/react/blob/cae63505/packages/react-dom/src/__tests__/findDOMNode-test.js#L66-L86\n warning(\n false,\n '[getRootNode]: can`t fallback to findDOMNode.' +\n '\\n' +\n 'See https://github.com/skbkontur/retail-ui/blob/master/packages/react-ui/README.md#strictmode' +\n '\\n\\n' +\n e.message,\n );\n return null;\n }\n\n // the findDOMNode can also return Text, but we are only interested in Elements, so just filter it\n return isElement(rootNode) ? rootNode : null;\n};\n","import type { Nullable, Omit } from '../typings/Types';\n\nimport type { ScrollOffset } from './ValidationContainer';\nimport { getDoc, getWin, isBrowser, isElement } from './utils/utils';\nimport { isNullable } from './utils/isNullable';\n\nexport async function smoothScrollIntoView(element: Element, scrollOffset: ScrollOffset): Promise<void> {\n const activeDocument = getDoc(element);\n const activeWindow = getWin(element);\n const scrollableParent = findScrollableParent(element);\n const parentRects = scrollableParent.getBoundingClientRect();\n const clientRects = element.getBoundingClientRect();\n\n const topOffset = scrollOffset.top || 0;\n const bottomOffset = scrollOffset.bottom || 0;\n\n if (scrollableParent === activeDocument.body) {\n const html = activeDocument.documentElement || { clientHeight: 0, clientWidth: 0 };\n const viewportHeight = activeWindow?.innerHeight || html.clientHeight;\n const viewportWidth = activeWindow?.innerWidth || html.clientWidth;\n\n const isElementInViewport =\n clientRects.top >= topOffset &&\n clientRects.left >= 0 &&\n clientRects.bottom <= viewportHeight - bottomOffset &&\n clientRects.right <= viewportWidth;\n\n if (isElementInViewport) {\n return;\n }\n\n await scrollBy({\n element,\n left: clientRects.left,\n top: clientRects.top - topOffset,\n });\n } else {\n if (clientRects.top - topOffset + 50 > parentRects.top && clientRects.bottom < parentRects.bottom) {\n return;\n }\n\n await smoothScroll(\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top - topOffset,\n );\n await scrollBy({\n element,\n left: parentRects.left,\n top: parentRects.top,\n });\n }\n}\n\nfunction smoothScroll(element: Element, x: number, y: number): Promise<void> {\n const activeDocument = getDoc(element);\n const activeWindow = getWin(element);\n let context: Omit<StepContent, 'resolve'>;\n\n if (activeWindow) {\n if (element === getDocumentBodyStrict(activeDocument)) {\n context = {\n scrollable: element,\n startX: activeWindow.scrollX || activeWindow.pageXOffset,\n startY: activeWindow.scrollY || activeWindow.pageYOffset,\n method: getScrollWindow(element),\n startTime: getNow(element)(),\n x,\n y,\n };\n } else {\n context = {\n scrollable: element,\n startX: element.scrollLeft,\n startY: element.scrollTop,\n method: scrollElement,\n startTime: getNow(element)(),\n x,\n y,\n };\n }\n }\n\n return new Promise((resolve) => step({ ...context, resolve }));\n}\n\ninterface StepContent {\n scrollable: Element;\n startTime: number;\n startX: number;\n startY: number;\n x: number;\n y: number;\n method: (element: Element, x: number, y: number) => void;\n resolve: () => void;\n}\n\nfunction step({ scrollable, startX, startY, x, y, method, resolve, startTime }: StepContent) {\n const time = getNow(scrollable)();\n const scrollTime = 468;\n const elapsed = Math.min(1, (time - startTime) / scrollTime);\n const value = ease(elapsed);\n const activeWindow = getWin(scrollable);\n\n const currentX = startX + (x - startX) * value;\n const currentY = startY + (y - startY) * value;\n\n method(scrollable, currentX, currentY);\n\n if (currentX !== x || currentY !== y) {\n !!activeWindow &&\n activeWindow.requestAnimationFrame(() => step({ scrollable, startX, startY, x, y, method, resolve, startTime }));\n } else {\n resolve();\n }\n}\n\nconst getScrollWindow = (el: Element) => {\n const activeWindow = getWin(el);\n\n if (isBrowser) {\n if (typeof activeWindow?.scroll === 'function') {\n return (_: any, x: any, y: any) => activeWindow?.scroll(x, y);\n }\n }\n\n return () => undefined;\n};\n\nconst getNow = (el: Element) => {\n const activeWindow = getWin(el);\n return isBrowser && activeWindow?.performance && activeWindow?.performance.now\n ? activeWindow?.performance.now.bind(activeWindow?.performance)\n : Date.now;\n};\n\nfunction scrollElement(element: Element, x: number, y: number) {\n element.scrollLeft = x;\n element.scrollTop = y;\n}\n\nfunction ease(time: number): number {\n return 0.5 * (1 - Math.cos(Math.PI * time));\n}\n\nfunction getDocumentBodyStrict(activeDocument: Document): Element {\n if (isNullable(activeDocument.body)) {\n throw new Error('Scrolling can be used only in browser');\n }\n\n return activeDocument.body;\n}\n\nfunction findScrollableParent(el: Element): Element {\n let isBody: Nullable<boolean>;\n let hasScrollableSpace: Nullable<boolean>;\n let hasVisibleOverflow: Nullable<boolean>;\n let currentElement: Element = el;\n do {\n if (isNullable(currentElement.parentElement) || !isElement(currentElement.parentElement)) {\n return getDocumentBodyStrict(getDoc(currentElement));\n }\n currentElement = currentElement.parentElement;\n isBody = currentElement === getDoc(currentElement).body;\n hasScrollableSpace =\n currentElement.clientHeight < currentElement.scrollHeight ||\n currentElement.clientWidth < currentElement.scrollWidth;\n hasVisibleOverflow = getWin(currentElement)?.getComputedStyle(currentElement, null).overflow === 'visible';\n } while (!isBody && !(hasScrollableSpace && !hasVisibleOverflow));\n\n isBody = null;\n hasScrollableSpace = null;\n hasVisibleOverflow = null;\n\n return currentElement;\n}\n\nfunction scrollBy({ element, left, top }: { element: Element; left: number; top: number }): Promise<void> {\n const activeWindow = getWin(element);\n const activeDocument = getDoc(element);\n\n if (!activeWindow) {\n return new Promise((resolve) => resolve());\n }\n\n const x = Math.floor(left) + (activeWindow?.scrollX || activeWindow?.pageXOffset);\n const y = Math.floor(top) + (activeWindow?.scrollY || activeWindow?.pageYOffset);\n\n return smoothScroll(getDocumentBodyStrict(activeDocument), x, y);\n}\n","import type { Nullable } from '../typings/Types';\n\nimport type { Validation, ValidationBehaviour, ValidationLevel } from './ValidationWrapperInternal';\n\nexport function getVisibleValidation(\n visible: Nullable<Validation>,\n actual: Nullable<Validation>,\n changing: boolean,\n): Nullable<Validation> {\n const from = (type?: Nullable<ValidationBehaviour>): boolean => getType(visible) === type;\n const to = (type?: Nullable<ValidationBehaviour>): boolean => getType(actual) === type;\n\n if (to('immediate')) {\n return actual;\n }\n\n if (changing) {\n return from('immediate') ? null : visible;\n }\n\n if (from(null) && to('lostfocus')) {\n return null;\n }\n\n if (to('lostfocus')) {\n return actual;\n }\n\n if (from('submit') && to('submit')) {\n return visible;\n }\n\n return null;\n}\n\nexport function getType(validation: Nullable<Validation>): Nullable<ValidationBehaviour> {\n return validation ? validation.behaviour : null;\n}\n\nexport function getLevel(validation: Nullable<Validation>): Nullable<ValidationLevel> {\n return validation ? validation.level : null;\n}\n\nexport function getIndependent(validation: Nullable<Validation>): Nullable<boolean> {\n return validation ? validation.independent : null;\n}\n\nexport function isEqual(a: Nullable<Validation>, b: Nullable<Validation>): boolean {\n if (a === b) {\n return true;\n }\n return (\n !!a &&\n !!b &&\n a.behaviour === b.behaviour &&\n a.message === b.message &&\n a.independent === b.independent &&\n a.level === b.level\n );\n}\n","import React from 'react';\n\nexport interface ValidationsFeatureFlags {\n dropdownsDoNotOpenOnFocusByValidation?: boolean;\n hideTooltipOnSelectionControls?: boolean;\n validationWrapperValidateOnMount?: boolean;\n}\n\nexport const validationsFeatureFlagsDefault: ValidationsFeatureFlags = {\n dropdownsDoNotOpenOnFocusByValidation: false,\n hideTooltipOnSelectionControls: false,\n validationWrapperValidateOnMount: false,\n};\n\nexport const ValidationsFeatureFlagsContext =\n React.createContext<ValidationsFeatureFlags>(validationsFeatureFlagsDefault);\n\nValidationsFeatureFlagsContext.displayName = 'ValidationsFeatureFlagsContext';\nValidationsFeatureFlagsContext.__KONTUR_REACT_UI__ = 'ValidationsFeatureFlagsContext';\n","import type { ValidationsFeatureFlags } from './ValidationsFeatureFlagsContext';\nimport { validationsFeatureFlagsDefault } from './ValidationsFeatureFlagsContext';\n\nexport const getFullValidationsFlagsContext = (flags: ValidationsFeatureFlags) => {\n return { ...validationsFeatureFlagsDefault, ...flags };\n};\n","import type { ReactInstance } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport type { Nullable } from '../typings/Types';\n\nimport { getRootNode } from './utils/getRootNode';\nimport { isElement } from './utils/utils';\nimport { smoothScrollIntoView } from './smoothScrollIntoView';\nimport { getIndependent, getLevel, getType, getVisibleValidation, isEqual } from './ValidationHelper';\nimport { ReactUiDetection } from './ReactUiDetection';\nimport type { ValidationContextType } from './ValidationContextWrapper';\nimport { ValidationContext } from './ValidationContextWrapper';\nimport type { ValidationsFeatureFlags } from './utils/featureFlagsContext';\nimport { ValidationsFeatureFlagsContext } from './utils/featureFlagsContext';\n\nexport type ValidationBehaviour = 'immediate' | 'lostfocus' | 'submit';\n\nexport type ValidationLevel = 'error' | 'warning';\n\nexport type TextPosition = 'bottom' | 'right';\n\nexport interface Validation {\n level: ValidationLevel;\n behaviour: ValidationBehaviour;\n message: React.ReactNode;\n independent: boolean;\n}\n\nexport type RenderErrorMessage = (\n control: React.ReactElement<any>,\n hasError: boolean,\n validation: Nullable<Validation>,\n) => React.ReactElement<any>;\n\nexport interface ValidationWrapperInternalProps {\n children?: React.ReactElement<any>;\n validation: Nullable<Validation>;\n errorMessage: RenderErrorMessage;\n 'data-tid'?: string;\n}\n\ninterface ValidationWrapperInternalState {\n validation: Nullable<Validation>;\n}\n\ninterface Point {\n x: number;\n y: number;\n}\n\nexport class ValidationWrapperInternal extends React.Component<\n ValidationWrapperInternalProps,\n ValidationWrapperInternalState\n> {\n public state: ValidationWrapperInternalState = {\n validation: null,\n };\n\n public isChanging = false;\n private child: any; // todo type\n private rootNode: Nullable<Element>;\n\n public static contextType = ValidationContext;\n public context: ValidationContextType = this.context;\n private featureFlags!: ValidationsFeatureFlags;\n\n public componentDidMount() {\n warning(\n this.context,\n 'ValidationWrapper should appears as child of ValidationContainer.\\n' +\n 'https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs',\n );\n if (this.context) {\n this.context.register(this);\n }\n if (this.featureFlags.validationWrapperValidateOnMount && this.context.isValidationCalled()) {\n this.processSubmit();\n } else {\n this.applyValidation(this.props.validation);\n }\n }\n\n public componentWillUnmount() {\n this.context.unregister(this);\n }\n\n public componentDidUpdate() {\n this.applyValidation(this.props.validation);\n }\n\n public async focus(): Promise<void> {\n const htmlElement = this.getRootNode();\n if (isElement(htmlElement)) {\n const { disableSmoothScroll, scrollOffset } = this.context.getSettings();\n if (!disableSmoothScroll) {\n await smoothScrollIntoView(htmlElement, scrollOffset);\n }\n if (this.child && typeof this.child.focus === 'function') {\n this.child.focus({ withoutOpenDropdown: this.featureFlags.dropdownsDoNotOpenOnFocusByValidation });\n }\n }\n this.isChanging = false;\n }\n\n public render() {\n const { children, 'data-tid': dataTid } = this.props;\n const { validation } = this.state;\n\n let clonedChild: React.ReactElement<any> = children ? (\n React.cloneElement(children, {\n ref: this.customRef,\n error: !this.isChanging && getLevel(validation) === 'error',\n warning: !this.isChanging && getLevel(validation) === 'warning',\n onBlur: (...args: any[]) => {\n this.handleBlur();\n if (children.props && children.props.onBlur) {\n children.props.onBlur(...args);\n }\n },\n onChange: (...args: any[]) => {\n this.isChanging = true;\n if (children.props && children.props.onChange) {\n children.props.onChange(...args);\n }\n },\n onValueChange: (...args: any[]) => {\n this.isChanging = true;\n\n if (this.featureFlags.hideTooltipOnSelectionControls && ReactUiDetection.isSelectionControl(children)) {\n this.setValidation(null);\n }\n\n if (children.props && children.props.onValueChange) {\n children.props.onValueChange(...args);\n }\n },\n })\n ) : (\n <span ref={this.setRootNode} />\n );\n if (ReactUiDetection.isComboBox(clonedChild)) {\n clonedChild = React.cloneElement(clonedChild, {\n onInputValueChange: (...args: any[]) => {\n this.isChanging = true;\n this.forceUpdate();\n if (children && children.props && children.props.onInputValueChange) {\n return children.props.onInputValueChange(...args);\n }\n },\n });\n }\n\n return (\n <ValidationsFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = flags;\n return React.cloneElement(\n this.props.errorMessage(<div style={{ display: 'inline' }}>{clonedChild}</div>, !!validation, validation),\n {\n 'data-tid': dataTid,\n },\n );\n }}\n </ValidationsFeatureFlagsContext.Consumer>\n );\n }\n\n private customRef = (instance: Nullable<ReactInstance>) => {\n const { children } = this.props;\n\n this.setRootNode(instance);\n const child = children as any; // todo type or maybe React.Children.only\n if (child && child.ref) {\n if (typeof child.ref === 'function') {\n child.ref(instance);\n }\n if (Object.prototype.hasOwnProperty.call(child.ref, 'current')) {\n child.ref.current = instance;\n }\n }\n this.child = instance;\n };\n\n private setRootNode = (element: Nullable<ReactInstance>) => {\n this.rootNode = getRootNode(element);\n };\n\n public getRootNode = () => {\n return this.rootNode;\n };\n\n public getControlPosition(): Nullable<Point> {\n const htmlElement = this.getRootNode();\n if (isElement(htmlElement)) {\n const rect = htmlElement.getBoundingClientRect();\n return { x: rect.top, y: rect.left };\n }\n return null;\n }\n\n public processBlur() {\n const touched = this.isChanging;\n this.isChanging = false;\n const validation = this.getOnBlurValidation(touched);\n return this.setValidation(validation);\n }\n\n public async processSubmit(): Promise<void> {\n this.isChanging = false;\n return this.setValidation(this.props.validation);\n }\n\n public hasError(): boolean {\n return getLevel(this.state.validation) === 'error';\n }\n\n public hasWarning(): boolean {\n return getLevel(this.state.validation) === 'warning';\n }\n\n public isIndependent(): boolean {\n return getIndependent(this.state.validation || this.props.validation) === true;\n }\n\n private handleBlur() {\n setTimeout(() => {\n this.processBlur();\n if (!this.isIndependent()) {\n this.context.instanceProcessBlur(this);\n }\n this.setState({});\n });\n }\n\n private applyValidation(actual: Nullable<Validation>) {\n const visible = this.getVisibleValidation(actual);\n this.setValidation(visible);\n }\n\n private setValidation(validation: Nullable<Validation>): Promise<void> {\n const current = this.state.validation;\n\n if (current === validation) {\n return Promise.resolve();\n }\n\n return new Promise((resolve) => {\n this.setState({ validation }, () => {\n if (Boolean(current) !== Boolean(validation)) {\n this.context.onValidationUpdated(this, !validation);\n }\n resolve();\n });\n });\n }\n\n private getOnBlurValidation(touched: boolean): Nullable<Validation> {\n const actual = this.props.validation;\n if (getType(actual) === 'submit') {\n const visible = this.state.validation;\n return !touched && getType(visible) === 'submit' ? visible : null;\n }\n return actual;\n }\n\n private getVisibleValidation(actual: Nullable<Validation>): Nullable<Validation> {\n const visible = this.state.validation;\n if (isEqual(visible, actual)) {\n return visible;\n }\n const changing = this.context.isAnyWrapperInChangingMode();\n return getVisibleValidation(visible, actual, changing);\n }\n}\n","import React from 'react';\n\nimport type { Nullable } from '../typings/Types';\n\nimport { tooltip } from './ErrorRenderer';\nimport type {\n RenderErrorMessage,\n Validation,\n ValidationBehaviour,\n ValidationLevel,\n ValidationWrapperInternalProps,\n} from './ValidationWrapperInternal';\nimport { ValidationWrapperInternal } from './ValidationWrapperInternal';\n\nexport interface ValidationInfo {\n type?: Nullable<ValidationBehaviour>;\n level?: Nullable<ValidationLevel>;\n message: React.ReactNode;\n independent?: boolean;\n}\n\nexport interface ValidationWrapperProps extends Pick<ValidationWrapperInternalProps, 'data-tid'> {\n children?: React.ReactElement<any>;\n validationInfo: Nullable<ValidationInfo>;\n renderMessage?: Nullable<RenderErrorMessage>;\n}\n\nexport class ValidationWrapper extends React.Component<ValidationWrapperProps> {\n public static __KONTUR_REACT_UI__ = 'ValidationWrapper';\n public static displayName = 'ValidationWrapper';\n\n public render() {\n const { children, validationInfo, renderMessage, 'data-tid': datTid } = this.props;\n const validation: Nullable<Validation> = validationInfo\n ? {\n level: validationInfo.level || 'error',\n behaviour: validationInfo.type || 'lostfocus',\n message: validationInfo.message,\n independent: validationInfo.independent || false,\n }\n : null;\n\n return (\n <ValidationWrapperInternal\n data-tid={datTid}\n errorMessage={renderMessage || tooltip('right top')}\n validation={validation}\n >\n {children}\n </ValidationWrapperInternal>\n );\n }\n}\n","import type React from 'react';\n\nimport type { Nullable } from '../../typings/Types';\nimport type { ValidationBehaviour, ValidationLevel } from '../ValidationWrapperInternal';\nimport type { ValidationInfo } from '../ValidationWrapper';\nimport { isNullable } from '../utils/isNullable';\n\nimport type { LambdaPath, PathTokensCache } from './PathHelper';\nimport type { ValidationWriter } from './ValidationWriter';\nimport type { ItemValidationRule, ValidationRule } from './Types';\n\ninterface PathInfo<T> {\n data: T;\n path: string[];\n}\n\nexport class ValidationBuilder<TRoot, T> {\n // eslint-disable-next-line no-useless-constructor\n constructor(\n private readonly writer: ValidationWriter<TRoot>,\n private readonly tokens: PathTokensCache,\n private readonly path: string[],\n private readonly data: T,\n ) {}\n\n public prop<TChild>(lambdaPath: LambdaPath<T, TChild>, rule: ValidationRule<TRoot, TChild>): void {\n const info = this.getPathInfo(lambdaPath);\n if (isNullable(info)) {\n return;\n }\n\n const builder = new ValidationBuilder<TRoot, TChild>(this.writer, this.tokens, info.path, info.data);\n rule(builder, builder.data);\n }\n\n public array<TChild>(lambdaPath: LambdaPath<T, TChild[]>, rule: ItemValidationRule<TRoot, TChild>): void {\n const info = this.getPathInfo(lambdaPath);\n if (isNullable(info) || !Array.isArray(info.data)) {\n return;\n }\n\n const array = info.data;\n for (let i = 0; i < array.length; ++i) {\n const path = [...info.path, i.toString()];\n const builder = new ValidationBuilder<TRoot, TChild>(this.writer, this.tokens, path, array[i]);\n rule(builder, builder.data, i, array);\n }\n }\n\n public invalid(isInvalid: (value: T) => boolean, validationInfo: ValidationInfo): void;\n public invalid(\n isInvalid: (value: T) => boolean,\n message: React.ReactNode,\n type?: ValidationBehaviour,\n level?: ValidationLevel,\n independent?: boolean,\n ): void;\n\n public invalid(\n isInvalid: (value: T) => boolean,\n messageOrValidationInfo: React.ReactNode | ValidationInfo,\n type?: ValidationBehaviour,\n level?: ValidationLevel,\n independent?: boolean,\n ) {\n const validationWriter = this.writer.getNode<T>(this.path);\n if (validationWriter.isValidated()) {\n return;\n }\n\n const invalid = isInvalid(this.data);\n if (!invalid) {\n return;\n }\n\n if (isValidationInfo(messageOrValidationInfo)) {\n validationWriter.set(messageOrValidationInfo);\n } else {\n validationWriter.set({ message: messageOrValidationInfo, type, level, independent });\n }\n }\n\n private getPathInfo<TChild>(lambdaPath: LambdaPath<T, TChild>): Nullable<PathInfo<TChild>> {\n const path = this.tokens.getOrAdd(lambdaPath);\n\n let data: any = this.data;\n for (const part of path) {\n if (isNullable(data)) {\n return null;\n }\n data = data[part];\n }\n\n return { data, path: [...this.path, ...path] };\n }\n}\n\nconst isValidationInfo = (argument: unknown): argument is ValidationInfo =>\n typeof argument === 'object' && Object.prototype.hasOwnProperty.call(argument, 'message');\n","/* eslint-disable no-useless-constructor */\nimport type { ValidationInfo } from '../ValidationWrapper';\nimport type { ExtractItem, Nullable } from '../../typings/Types';\n\nimport type { ValidationNode } from './Types';\nimport type { LambdaPath, PathTokensCache } from './PathHelper';\n\nexport class ValidationReader<T> {\n constructor(\n private readonly node: Nullable<ValidationNode<T>>,\n private readonly tokens: PathTokensCache,\n ) {}\n\n public getNode<TChild>(lambdaPath: LambdaPath<T, TChild>): ValidationReader<TChild> {\n const path = this.tokens.getOrAdd(lambdaPath);\n return this.getReaderInternal<TChild>(path);\n }\n\n public getNodeByIndex(index: number): ValidationReader<ExtractItem<T>> {\n return this.getReaderInternal<ExtractItem<T>>([index.toString()]);\n }\n\n public getNodeByKey<TKey extends keyof T>(key: TKey): ValidationReader<T[TKey]> {\n return this.getReaderInternal<T[TKey]>([key.toString()]);\n }\n\n public get(): Nullable<ValidationInfo> {\n return this.node ? this.node.validation : null;\n }\n\n private getReaderInternal<TChild>(path: string[]): ValidationReader<TChild> {\n const node = this.getNodeInternal<TChild>(path);\n return new ValidationReader<TChild>(node, this.tokens);\n }\n\n private getNodeInternal<TChild>(path: string[]): Nullable<ValidationNode<TChild>> {\n let current: Nullable<ValidationNode<any>> = this.node;\n for (const part of path) {\n if (!current || !current.children) {\n return null;\n }\n current = current.children[part];\n }\n return current;\n }\n}\n","import type { ValidationInfo } from '../ValidationWrapper';\n\nimport type { ValidationNode } from './Types';\nimport { ValidationReader } from './ValidationReader';\nimport type { PathTokensCache } from './PathHelper';\n\nexport class ValidationWriter<T> {\n private readonly node: ValidationNode<T>;\n\n constructor(node?: ValidationNode<T>) {\n this.node = node || { validation: null, children: null };\n }\n\n public getReader(tokens: PathTokensCache): ValidationReader<T> {\n return new ValidationReader(this.node, tokens);\n }\n\n public set(validation: ValidationInfo): void {\n this.node.validation = validation;\n }\n\n public isValidated(): boolean {\n return !!this.node.validation;\n }\n\n public getNode<TChild>(path: string[]): ValidationWriter<TChild> {\n const node = this.getNodeInternal<TChild>(path);\n return new ValidationWriter<TChild>(node);\n }\n\n private getNodeInternal<TChild>(path: string[]): ValidationNode<TChild> {\n let node: ValidationNode<any> = this.node;\n for (const part of path) {\n if (!node.children) {\n node.children = {};\n }\n if (!node.children[part]) {\n node.children[part] = {\n validation: null,\n children: null,\n };\n }\n node = node.children[part];\n }\n return node;\n }\n}\n","const classicFunctionRegEx =\n /^\\s*function\\s*\\(\\s*([A-Za-z0-9_$]+)\\s*\\)\\s*\\{\\s*(?:(?:\"use strict\"|'use strict');?)?\\s*return\\s+\\1\\s*([.[].*?)?\\s*;?\\s*\\}\\s*$/;\nconst arrowFunctionRegEx = /^\\s*\\(?\\s*([A-Za-z0-9_$]+)\\s*\\)?\\s*=>\\s*\\1\\s*([.[].*?)?\\s*$/;\n\ntype NonNullableRecursive<T> = {\n [K in keyof T]-?: T[K] extends Record<string, unknown> ? NonNullable<NonNullableRecursive<T[K]>> : NonNullable<T[K]>;\n};\n\nexport type LambdaPath<T, TChild> = (x: NonNullable<NonNullableRecursive<T>>) => TChild;\n\nexport function extractPath(lambda: string): string {\n const match = classicFunctionRegEx.exec(lambda) || arrowFunctionRegEx.exec(lambda);\n if (match && match.length === 3) {\n return (match[2] || '').replace(/(^\\.\\s*)/g, '');\n }\n throw new Error(`Not supported or invalid path: <${lambda}>`);\n}\n\nexport function extractTokens(path: string): string[] {\n return path.split(/[\\s.[\\]]+/g).filter((x) => x);\n}\n\nexport class PathTokensCache {\n private readonly cache = new Map<string, string[]>();\n\n public getOrAdd<T, TChild>(lambdaPath: LambdaPath<T, TChild>): string[] {\n const lambdaString = lambdaPath.toString();\n\n if (!this.cache.has(lambdaString)) {\n const path = extractPath(lambdaString);\n const tokens = extractTokens(path);\n this.cache.set(lambdaString, tokens);\n }\n\n return this.cache.get(lambdaString) as string[];\n }\n\n public has<T, TChild>(lambdaPath: LambdaPath<T, TChild>): boolean {\n const lambdaString = lambdaPath.toString();\n return this.cache.has(lambdaString);\n }\n\n public get size(): number {\n return this.cache.size;\n }\n}\n","import { ValidationBuilder } from './ValidationBuilder';\nimport { ValidationWriter } from './ValidationWriter';\nimport { RootValidationRule, ValidationRule, ItemValidationRule } from './Types';\nimport { ValidationReader } from './ValidationReader';\nimport { PathTokensCache } from './PathHelper';\n\nfunction validate<T>(data: T, validationRule: RootValidationRule<T>, tokens: PathTokensCache): ValidationReader<T> {\n const validationWriter = new ValidationWriter<T>();\n const builder = new ValidationBuilder<T, T>(validationWriter, tokens, [], data);\n validationRule(builder, data);\n return validationWriter.getReader(tokens);\n}\n\nexport type Validator<T> = (value: T) => ValidationReader<T>;\n\nexport function createValidator<T>(rule: RootValidationRule<T>): Validator<T> {\n const tokens = new PathTokensCache();\n return (value: T): ValidationReader<T> => {\n return validate(value, rule, tokens);\n };\n}\n\nexport { ValidationReader, ValidationBuilder, RootValidationRule, ValidationRule, ItemValidationRule };\n"],"names":["useContext","FocusMode","findDOMNode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/utils/getValidationTextColor.ts","../../../../node_modules/@skbkontur/global-object/types.js","../../../../node_modules/@skbkontur/global-object/index.js","../../../react-ui/node_modules/react-is/cjs/react-is.production.min.js","../../../react-ui/node_modules/react-is/cjs/react-is.development.js","../../../react-ui/node_modules/react-is/index.js","../../../react-ui/lib/utils.ts","../../../react-ui/lib/theming/ThemeVersions.ts","../../../react-ui/lib/theming/ThemeHelpers.ts","../../../react-ui/lib/styles/ColorHelpers.ts","../../../react-ui/lib/styles/ColorKeywords.ts","../../../react-ui/lib/styles/ColorObject.ts","../../../react-ui/lib/styles/ColorFactory.ts","../../../react-ui/lib/styles/ColorFunctions.ts","../../../react-ui/internal/themes/BasicTheme.ts","../../../react-ui/internal/themes/LightTheme5_0.ts","../../../react-ui/internal/themes/LightTheme5_1.ts","../../../react-ui/internal/themes/LightTheme5_2.ts","../../../react-ui/internal/themes/LightTheme5_3.ts","../../../react-ui/internal/themes/consts.ts","../../../react-ui/internal/themes/LightTheme5_4.ts","../../../react-ui/lib/theming/themes/LightTheme.ts","../../../react-ui/lib/theming/ThemeFactory.ts","../../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../../../node_modules/react-is/cjs/react-is.production.min.js","../../../../node_modules/react-is/cjs/react-is.development.js","../../../../node_modules/react-is/index.js","../../../../node_modules/object-assign/index.js","../../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../../node_modules/prop-types/lib/has.js","../../../../node_modules/prop-types/checkPropTypes.js","../../../../node_modules/prop-types/factoryWithTypeCheckers.js","../../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../../node_modules/prop-types/index.js","../../../../node_modules/react-transition-group/esm/config.js","../../../../node_modules/react-transition-group/esm/utils/PropTypes.js","../../../../node_modules/react-transition-group/esm/TransitionGroupContext.js","../../../../node_modules/react-transition-group/esm/utils/reflow.js","../../../../node_modules/react-transition-group/esm/Transition.js","../../../react-ui/lib/dom/getDOMRect.ts","../../../react-ui/node_modules/eventemitter3/index.js","../../../react-ui/lib/LayoutEvents.ts","../../../react-ui/lib/callChildRef/callChildRef.ts","../../../react-ui/lib/rootNode/rootNodeDecorator.tsx","../../../react-ui/lib/rootNode/getRootNode.ts","../../../react-ui/lib/createPropsGetter.ts","../../../react-ui/lib/isInstanceOf.ts","../../../../node_modules/lodash.debounce/index.js","../../../react-ui/lib/theming/ThemeContext.ts","../../../react-ui/lib/client.ts","../../../react-ui/components/Spinner/SpinnerFallbackAnimation.ts","../../../react-ui/lib/currentEnvironment.ts","../../../../node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../../../../node_modules/stylis/src/Enum.js","../../../../node_modules/stylis/src/Utility.js","../../../../node_modules/stylis/src/Tokenizer.js","../../../../node_modules/stylis/src/Parser.js","../../../../node_modules/stylis/src/Serializer.js","../../../../node_modules/stylis/src/Middleware.js","../../../../node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js","../../../../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../../../node_modules/@emotion/cache/dist/emotion-cache.esm.js","../../../../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../../../../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../../../node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../../../../node_modules/@emotion/utils/dist/emotion-utils.esm.js","../../../../node_modules/@emotion/css/create-instance/dist/emotion-css-create-instance.esm.js","../../../../node_modules/stylis-plugin-extra-scope/dist/stylis-plugin-extra-scope.esm.js","../../../react-ui/lib/Upgrades.ts","../../../react-ui/lib/theming/Emotion.ts","../../../react-ui/internal/SpinnerIcon/SpinnerIcon.styles.ts","../../../react-ui/internal/SpinnerIcon/SpinnerIcon.tsx","../../../react-ui/internal/CommonWrapper/utils/extractCommonProps.ts","../../../react-ui/lib/toKebabCase.ts","../../../react-ui/internal/CommonWrapper/utils/getVisualStateDataAttributes.ts","../../../react-ui/internal/CommonWrapper/utils/tryGetBoolean.ts","../../../react-ui/internal/CommonWrapper/utils/getCommonVisualStateDataAttributes.ts","../../../react-ui/internal/CommonWrapper/CommonWrapper.tsx","../../../react-ui/lib/theming/AnimationKeyframes.ts","../../../react-ui/components/Spinner/Spinner.styles.ts","../../../react-ui/components/Spinner/Spinner.tsx","../../../react-ui/lib/taskWithDelayAndMinimalDuration.ts","../../../../node_modules/tabbable/dist/index.esm.js","../../../react-ui/lib/dom/tabbableHelpers.ts","../../../react-ui/components/Loader/Loader.styles.ts","../../../react-ui/components/Loader/Loader.tsx","../../../react-ui/internal/RenderContainer/RenderInnerContainer.tsx","../../../react-ui/internal/RenderContainer/RenderContainer.tsx","../../../react-ui/internal/ZIndex/ZIndexStorage.ts","../../../react-ui/internal/ZIndex/ZIndex.tsx","../../../react-ui/components/ResponsiveLayout/ResponsiveLayoutEvents.ts","../../../react-ui/components/ResponsiveLayout/useResponsiveLayout.ts","../../../react-ui/components/ResponsiveLayout/ResponsiveLayout.tsx","../../../react-ui/components/ResponsiveLayout/decorator.tsx","../../../react-ui/lib/dom/getScrollWidth.ts","../../../react-ui/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.tsx","../../../react-ui/lib/listenFocusOutside.ts","../../../react-ui/internal/RenderLayer/RenderLayer.tsx","../../../react-ui/internal/MobilePopup/MobilePopup.styles.ts","../../../react-ui/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.ts","../../../react-ui/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.tsx","../../../react-ui/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.ts","../../../react-ui/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.tsx","../../../react-ui/internal/MobilePopup/MobilePopup.tsx","../../../react-ui/lib/InstanceWithAnchorElement.ts","../../../react-ui/lib/featureFlagsContext/ReactUIFeatureFlagsContext.tsx","../../../react-ui/lib/featureFlagsContext/FeatureFlagsHelpers.tsx","../../../react-ui/lib/mergeRefs.ts","../../../react-ui/internal/Popup/PopupHelper.tsx","../../../react-ui/internal/Popup/PopupPinNew.styles.ts","../../../react-ui/internal/Popup/PopupPinNew.tsx","../../../react-ui/internal/Popup/Popup.styles.ts","../../../react-ui/internal/Popup/PopupPin.styles.ts","../../../react-ui/internal/Popup/PopupPin.tsx","../../../react-ui/internal/Popup/Popup.tsx","../../../react-ui/lib/events/keyboard/KeyboardEventCodes.ts","../../../react-ui/lib/events/keyboard/KeyboardMapKeys.ts","../../../react-ui/lib/events/keyboard/identifiers.ts","../../../react-ui/lib/events/keyListener.ts","../../../react-ui/internal/icons2022/iconConstants.ts","../../../react-ui/lib/styles/Mixins.ts","../../../react-ui/internal/CloseButtonIcon/CloseButtonIcon.styles.tsx","../../../react-ui/lib/forwardRefAndName.ts","../../../react-ui/internal/icons2022/iconSizer.tsx","../../../react-ui/lib/chars.ts","../../../react-ui/internal/icons2022/BaseIcon.styles.ts","../../../react-ui/internal/icons2022/BaseIcon.tsx","../../../react-ui/internal/icons2022/XIcon/XIcon20Light.tsx","../../../react-ui/internal/icons2022/XIcon/XIcon24Regular.tsx","../../../react-ui/internal/CloseButtonIcon/CrossIcon.tsx","../../../react-ui/internal/CloseButtonIcon/CloseButtonIcon.tsx","../../../react-ui/lib/size/constants.ts","../../../react-ui/lib/size/SizeControlContext.ts","../../../react-ui/lib/size/SizeDecorator.tsx","../../../react-ui/components/Tooltip/Tooltip.styles.ts","../../../react-ui/components/Tooltip/Tooltip.tsx","../../src/utils/isNonNullable/isNonNullable.ts","../../src/ReactUiDetection.ts","../../src/ValidationText.tsx","../../src/ValidationTooltip.tsx","../../src/ErrorRenderer.tsx","../../src/utils/createPropsGetter.ts","../../src/utils/utils.ts","../../src/utils/isNullable/isNullable.ts","../../src/FocusMode.tsx","../../src/ValidationContextWrapper.tsx","../../src/ValidationContainer.tsx","../../src/utils/getRootNode/getRootNode.ts","../../src/smoothScrollIntoView.ts","../../src/ValidationHelper.ts","../../src/utils/featureFlagsContext/ValidationsFeatureFlagsContext.tsx","../../src/utils/featureFlagsContext/FeatureFlagsHelpers.tsx","../../src/ValidationWrapperInternal.tsx","../../src/ValidationWrapper.tsx","../../src/Validations/ValidationBuilder.ts","../../src/Validations/ValidationReader.ts","../../src/Validations/ValidationWriter.ts","../../src/Validations/PathHelper.ts","../../src/Validations/index.ts"],"sourcesContent":["import type { ValidationLevel } from '../ValidationWrapperInternal';\nimport type { ThemeValidations } from '../../typings/theme-context';\n\nexport const DEFAULT_TEXT_COLOR = '#d43517';\n\nexport function getValidationTextColor(theme: ThemeValidations, level: ValidationLevel = 'error') {\n return (\n (level === 'warning' ? theme.validationsTextColorWarning : theme.validationsTextColorError) || DEFAULT_TEXT_COLOR\n );\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isInstanceOf = exports.isBrowser = exports.setWindow = exports.globalObject = void 0;\nexports.globalObject = (typeof window === 'object' && window) ||\n (typeof globalThis === 'object' && globalThis) ||\n (typeof global === 'object' && global) ||\n Function('return this')();\nvar setWindow = function (win) { return (exports.globalObject = win); };\nexports.setWindow = setWindow;\nvar isBrowser = function (obj) {\n return typeof window !== 'undefined' && obj === exports.globalObject;\n};\nexports.isBrowser = isBrowser;\nfunction isInstanceOf(instance, constructor) {\n return typeof constructor === 'function' && instance instanceof constructor;\n}\nexports.isInstanceOf = isInstanceOf;\n__exportStar(require(\"./types\"), exports);\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import type React from 'react';\nimport { isValidElement } from 'react';\nimport { isForwardRef } from 'react-is';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport type { CurrencyInputProps } from '../components/CurrencyInput';\nimport type { PasswordInputProps } from '../components/PasswordInput';\nimport type { InputProps } from '../components/Input';\nimport type { AutocompleteProps } from '../components/Autocomplete';\nimport type { FxInputProps } from '../components/FxInput';\nimport type { SelectProps } from '../components/Select';\nimport type { DropdownProps } from '../components/Dropdown';\nimport type { DropdownMenuProps } from '../components/DropdownMenu';\nimport type { ButtonProps } from '../components/Button';\nimport type { TooltipProps } from '../components/Tooltip';\nimport type { HintProps } from '../components/Hint';\n\nexport { delay } from './delay';\n\n// NOTE: Copy-paste from @types/react\nexport type Defaultize<P, D> = P extends any\n ? string extends keyof P\n ? P\n : Pick<P, Exclude<keyof P, keyof D>> &\n Partial<Pick<P, Extract<keyof P, keyof D>>> &\n Partial<Pick<D, Exclude<keyof D, keyof P>>>\n : never;\n\nexport type DefaultizeProps<C, P> = C extends { defaultProps: infer D } ? Defaultize<P, D> : P;\n\nexport type AnyObject = Record<string, unknown>;\n\nexport type NoInfer<T> = T extends infer U ? U : never;\n\nexport const emptyHandler = () => {\n /* noop */\n};\n\nexport class CancelationError extends Error {\n public code = 'CancelationError';\n}\n\nexport function taskWithDelay(task: () => void, ms: number) {\n let cancelationToken: () => void = () => null;\n\n new Promise((resolve, reject) => {\n cancelationToken = reject;\n globalObject.setTimeout(resolve, ms);\n })\n .then(task)\n .catch(() => null);\n\n return cancelationToken;\n}\n\nexport type FunctionWithParams<R = any> = (...args: any[]) => R;\n\nexport function isFunction<T>(x: T | FunctionWithParams): x is FunctionWithParams {\n return typeof x === 'function';\n}\n\nexport function isFunctionalComponent(Component: unknown): Component is React.ComponentType {\n return Boolean(typeof Component === 'function' && !(Component.prototype && Component.prototype.isReactComponent));\n}\n\nexport function isClassComponent(Component: unknown): Component is React.ComponentType {\n return Boolean(typeof Component === 'function' && Component.prototype && Component.prototype.isReactComponent);\n}\n\nexport function isIntrinsicElement(element: React.ReactElement): boolean {\n return typeof element.type === 'string';\n}\n\nexport function isRefableElement(element: React.ReactElement): boolean {\n return Boolean(isIntrinsicElement(element) || isClassComponent(element.type) || isForwardRef(element));\n}\n\nexport function escapeRegExpSpecChars(s: string): string {\n return s.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nexport const getRandomID = (): string => Math.random().toString(16).slice(2);\n\nexport const isExternalLink = (link: string): boolean => {\n return isBrowser(globalObject) && new RegExp(`^(https?:)?//(?!${globalObject.location.host})\\\\S+`, 'gi').test(link);\n};\n\n/**\n * Check if the given ReactNode is an element of the specified ReactUI component\n */\nexport const isReactUINode = (componentName: string, node: React.ReactNode): boolean => {\n if (isValidElement(node)) {\n return (\n Object.prototype.hasOwnProperty.call(node.type, '__KONTUR_REACT_UI__') &&\n // @ts-expect-error: React doesn't know about existence of __KONTUR_REACT_UI__.\n node.type.__KONTUR_REACT_UI__ === componentName\n );\n }\n\n return false;\n};\n\nconst KB = 1024;\nconst UNITS = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\nconst calculateDecimals = (decimals: number) => {\n if (decimals < 0) {\n return 0;\n }\n\n return 0;\n};\n\nexport const formatBytes = (bytes: number, decimals = 2): string | null => {\n if (bytes === 0) {\n return '0 Bytes';\n }\n\n if (!bytes) {\n return null;\n }\n\n const calculatedDecimals = calculateDecimals(decimals);\n\n const i = Math.floor(Math.log2(bytes) / Math.log2(KB));\n const formattedBytes = parseFloat((bytes / Math.pow(KB, i)).toFixed(calculatedDecimals));\n\n return `${formattedBytes} ${UNITS[i]}`;\n};\n\n/**\n * Проверяет, не является ли переданный аргумент null или undefined и исключает типы null и undefined из типа аргумента\n *\n * @param value Значение, которое нужно проверить и исключить из него типы\n * @returns Возвращает true, если переданный аргумент не является null или undefined иначе false\n */\nexport const isNonNullable = <T>(value: T): value is NonNullable<T> => {\n return value !== null && value !== undefined;\n};\n\n/**\n * Checks if the value `null` or `undefined`.\n *\n * @param value Value to check for `null` and `undefined`.\n * @returns Returns `true` if `value` is `null` or `undefined`, else `false`.\n */\nexport const isNullable = (value: unknown): value is null | undefined => {\n return value === null || value === undefined;\n};\n\n/**\n * Creates a function that checks if the given `child`\n * is an instance of some component specified by `name`.\n *\n * @param name Component name for which function will be created.\n * @returns A function that checks if the given `child` is an instance of the component specified by `name`.\n */\nexport const isReactUIComponent = <P = any>(name: string) => {\n return (child: React.ReactNode): child is React.ReactElement<P> => {\n // @ts-expect-error: Property `type` doesn't exist on type `React.ReactNode`, but exists on type `React.ReactElement` meanwhile `React.ReactElement` is not compatible with `React` `children` type.\n return child?.type?.__KONTUR_REACT_UI__ === name;\n };\n};\n\n/**\n * Checks if a component instance is a ReactUI component with the given name.\n *\n * @typeParam T Expected ReactUI component type.\n * @param instance Component instance.\n * @param componentName ReactUI component name.\n * @returns `true` if it matches, otherwise `false`.\n */\nexport const isReactUIInstance = <T extends React.Component>(\n instance: React.Component,\n componentName: string,\n): instance is T => {\n const constructor = instance?.constructor;\n return '__KONTUR_REACT_UI__' in constructor && constructor.__KONTUR_REACT_UI__ === componentName;\n};\n\n/** @deprecated Переехал в `lib/mergeRefs.ts`. Со следующей мажорной версии от сюда будет удален*/\nexport function mergeRefs<T = any>(refs: Array<React.MutableRefObject<T> | React.LegacyRef<T>>): React.RefCallback<T> {\n return (value) => {\n refs.forEach((ref) => {\n if (typeof ref === 'function') {\n return ref(value);\n } else if (isNonNullable(ref)) {\n return ((ref as React.MutableRefObject<T | null>).current = value);\n }\n });\n };\n}\n\n/**\n * Extracts all data attributes from props and returns them as well as props.\n *\n * @param props Props object to extract data attributes from.\n * @returns Separated data attributes and all other props.\n */\nexport const extractDataProps = <T extends Record<string, any>>(props: T) => {\n const dataProps: Record<string, any> = {};\n const restWithoutDataProps: Record<string, any> = {};\n\n Object.entries(props).map(([name, value]) => {\n if (name.startsWith('data-')) {\n return (dataProps[name] = value);\n }\n\n return (restWithoutDataProps[name] = value);\n });\n\n return { dataProps, restWithoutDataProps };\n};\n\n/**\n * Basically `.startsWith` for arrays.\n *\n * @param searchKeys Array of strings to test against `inputString`.\n * @param inputString String on which search will be performed.\n * @returns `true` if `inputString` starts with one of keys, else `false`.\n */\nexport const startsWithOneOf = (searchKeys: string[], inputString: string) => {\n const keyIndex = searchKeys.findIndex((key) => {\n return inputString.startsWith(key);\n });\n\n return keyIndex >= 0;\n};\n\nexport const isButton = isReactUIComponent<ButtonProps>('Button');\nexport const isInput = isReactUIComponent<InputProps>('Input');\nexport const isFxInput = isReactUIComponent<FxInputProps>('FxInput');\nexport const isAutocomplete = isReactUIComponent<AutocompleteProps>('Autocomplete');\nexport const isPasswordInput = isReactUIComponent<PasswordInputProps>('PasswordInput');\nexport const isCurrencyInput = isReactUIComponent<CurrencyInputProps>('CurrencyInput');\nexport const isSelect = isReactUIComponent<SelectProps<unknown, unknown>>('Select');\nexport const isDropdown = isReactUIComponent<DropdownProps>('Dropdown');\nexport const isDropdownMenu = isReactUIComponent<DropdownMenuProps>('DropdownMenu');\nexport const isHint = isReactUIComponent<HintProps>('Hint');\nexport const isTooltip = isReactUIComponent<TooltipProps>('Tooltip');\n\nexport const isKonturIcon = (icon: React.ReactElement) => {\n return Object.prototype.hasOwnProperty.call(icon?.type, '__KONTUR_ICON__');\n};\n\nexport function clickOutside(eventType: 'touchstart' | 'mousedown' | 'pointerup' = 'mousedown') {\n const event = document.createEvent('HTMLEvents');\n event.initEvent(eventType, true, true);\n document.body.dispatchEvent(event);\n}\n\nexport function isElement(el: unknown): el is Element {\n return !!el && typeof el === 'object' && 'nodeType' in el && el.nodeType === Node.ELEMENT_NODE;\n}\n\nexport function isDocument(node?: Document | null): node is Document {\n return !!node && typeof node === 'object' && node.nodeType === Node.DOCUMENT_NODE;\n}\n\nexport function isWindow(node?: Window | null): node is Window {\n return !!node && typeof node === 'object' && node.window === node;\n}\n\nexport function tryGetDocument(node?: Node | null): Document | null {\n return !!node && isDocument(node.ownerDocument) ? node.ownerDocument : null;\n}\n\nexport function tryGetWindow(node?: Node | null): Window | null {\n const doc = tryGetDocument(node);\n return isDocument(doc) ? doc.defaultView : null;\n}\n","export type ThemeVersions = '5.0' | '5.1' | '5.2' | '5.3' | '5.4';\nexport interface ThemeVersionParsed {\n major: number;\n minor: number;\n}\n\n/**\n * Converts a string theme version to the object with numbers\n * @param str A string with version (e.g. \"1.0\")\n * @param [separator=\".\"] Optional major and minor string separator. By default is \".\"\n * @returns An object of type { major: number; minor: number } or null, if the given string is invalid\n */\nexport const parseThemeVersion = (str: string, separator: string = '\\\\.'): ThemeVersionParsed | null => {\n const match = str.match(new RegExp(`(\\\\d+)${separator}(\\\\d+)`));\n const major = match?.[1];\n const minor = match?.[2];\n\n if (!major || !minor) {\n return null;\n }\n\n return {\n major: Number(major),\n minor: Number(minor),\n };\n};\n\n/**\n * Extracts a version from a theme name\n * @param name A string theme name (e.g. \"LIGHT_THEME_1_0\")\n * @returns An object of type { major: number; minor: number } or null, if the given string is invalid or contains no version\n */\nexport const parseVersionFromThemeName = (name: string): ThemeVersionParsed | null => {\n return parseThemeVersion(name, '_');\n};\n\n/**\n * Checks if one string theme version is \"greater or equal\" than another one\n * @param v1 The version being compared (e.g. \"1.0\")\n * @param v2 The version being compared to (e.g. \"2.0\")\n * @returns Boolean result\n */\nexport const isThemeVersionGTE = (v1: ThemeVersions, v2: ThemeVersions): boolean => {\n const parsedV1 = parseThemeVersion(v1);\n const parsedV2 = parseThemeVersion(v2);\n\n if (!parsedV1 || !parsedV2) {\n return false;\n }\n\n if (parsedV1.major > parsedV2.major) {\n return true;\n } else if (parsedV1.major === parsedV2.major) {\n return parsedV1.minor >= parsedV2.minor;\n }\n\n return false;\n};\n","import warning from 'warning';\n\nimport type { Nullable } from '../../typings/utility-types';\nimport { isNonNullable } from '../utils';\n\nimport type { Theme, ThemeIn } from './Theme';\nimport type { ThemeVersions } from './ThemeVersions';\nimport { isThemeVersionGTE } from './ThemeVersions';\n\nexport type Marker = (theme: Theme) => Theme;\nexport type Markers = Marker[];\n\n/**\n * Makes all computable theme variables (getters) visible to the Object.keys(theme)\n * @param theme Theme object\n * @returns The given theme object with all getters made enumerable\n */\nexport const exposeGetters = (theme: Theme): Theme => {\n const descriptors = Object.getOwnPropertyDescriptors(theme);\n Object.keys(descriptors).forEach((key) => {\n const descriptor = descriptors[key];\n if (typeof descriptor.get === 'function' && descriptor.configurable) {\n descriptor.enumerable = true;\n Object.defineProperty(theme, key, descriptor);\n }\n });\n return theme;\n};\n\nexport const REACT_UI_THEME_MARKERS: {\n darkTheme: {\n key: string;\n value: true;\n };\n themeVersion: {\n key: string;\n value: ThemeVersions | null;\n };\n} = {\n darkTheme: {\n key: '__IS_REACT_UI_DARK_THEME__',\n value: true,\n },\n themeVersion: {\n key: '__REACT_UI_THEME_VERSION__',\n value: null,\n },\n};\n\n// backward compatible\nexport const REACT_UI_DARK_THEME_KEY = REACT_UI_THEME_MARKERS.darkTheme.key;\n\nexport const isDarkTheme = (theme: Theme | ThemeIn): boolean => {\n // @ts-expect-error: internal value.\n return theme[REACT_UI_THEME_MARKERS.darkTheme.key] === REACT_UI_THEME_MARKERS.darkTheme.value;\n};\n\n/**\n * Marks the given theme as \"dark\"\n * @param theme Theme object\n * @returns The given theme object with a \"dark theme\" mark\n */\nexport const markAsDarkTheme: Marker = (theme) => {\n return Object.create(theme, {\n [REACT_UI_THEME_MARKERS.darkTheme.key]: {\n value: REACT_UI_THEME_MARKERS.darkTheme.value,\n writable: false,\n enumerable: false,\n configurable: false,\n },\n });\n};\n\n/**\n * Creates a marker for the theme, that will mark it with a version\n * @param version Theme version\n * @returns A marker that marks the given theme with the given version once applied\n */\nexport const markThemeVersion: (version: ThemeVersions) => Marker = (version) => (theme) => {\n return Object.create(theme, {\n [REACT_UI_THEME_MARKERS.themeVersion.key]: {\n value: version || REACT_UI_THEME_MARKERS.themeVersion.value,\n writable: false,\n enumerable: false,\n configurable: false,\n },\n });\n};\n\n/**\n * Checks if the given theme's version is \"greater or equal\" then the given version\n * @param theme Theme object\n * @param version A string version\n * @returns Boolean result\n */\nexport const isThemeGTE = (theme: Theme | ThemeIn, version: ThemeVersions): boolean => {\n const themeVersion: Nullable<ThemeVersions> =\n // @ts-expect-error: internal value.\n theme[REACT_UI_THEME_MARKERS.themeVersion.key];\n\n if (!themeVersion) {\n warning(true, `[ThemeHelpers]: The theme doesn't have a version. Checking for ${version}.`);\n return false;\n }\n\n return isThemeVersionGTE(themeVersion, version);\n};\n\n/**\n * Finds the given theme's object property descriptor by its name\n * @param theme Theme object\n * @param propName The property name\n * @returns The found descriptor or an empty object\n */\nexport function findPropertyDescriptor(theme: Theme, propName: string) {\n // TODO: Rewrite for loop.\n // TODO: Enable `no-param-reassign` rule.\n // eslint-disable-next-line no-param-reassign\n for (; isNonNullable(theme); theme = Object.getPrototypeOf(theme)) {\n if (Object.prototype.hasOwnProperty.call(theme, propName)) {\n return Object.getOwnPropertyDescriptor(theme, propName) || {};\n }\n }\n return {};\n}\n\n/**\n * Marks the given theme with the given markers\n * @param theme Theme object\n * @param markers Markers array\n * @returns The given theme marked with the given marks\n */\nexport function applyMarkers(theme: Theme, markers: Markers): Theme {\n return markers.reduce((markedTheme, marker) => {\n return marker(markedTheme);\n }, Object.create(theme));\n}\n\n/**\n * Creates a theme object out of the given class with variables\n * @param options Options object\n * @param options.themeClass A class with variables\n * @param [options.prototypeTheme] An optional prototype theme, that will be the base for the new theme\n * @param [options.themeMarkers] An optional array of markers, that new them will be marked of\n * @returns The new theme object\n */\nexport function createTheme(options: { themeClass: Theme; prototypeTheme?: Theme; themeMarkers?: Markers }): Theme {\n const { themeClass, prototypeTheme, themeMarkers = [] } = options;\n\n if (prototypeTheme) {\n Object.setPrototypeOf(themeClass, prototypeTheme);\n }\n\n const theme = applyMarkers(exposeGetters(themeClass), themeMarkers);\n\n return Object.freeze(theme);\n}\n","import { startsWithOneOf } from '../utils';\n\nexport function clamp(val: number, max = 1) {\n return Math.min(max, Math.max(0, val));\n}\n\nexport function integerFromPercent(n: string, size: number) {\n return Math.round((parseFloat(n) * size) / 100);\n}\n\nexport function floatFromPercent(n: string) {\n return parseFloat((parseFloat(n) / 100).toFixed(5));\n}\n\nexport function roundToPrecision(n: number, precision = 2) {\n return parseFloat(n.toFixed(precision));\n}\n\nexport function extractColorParts(input: string, regex: RegExp) {\n const parts = regex.exec(input);\n\n if (!parts) {\n throw new Error(`${input} does not match color patterns: [\n ${regex}\n ]`);\n }\n\n return parts;\n}\n\nexport function parseRGBParts(parts: string[]) {\n const r = parseToInteger(parts[1], 255);\n const g = parseToInteger(parts[2], 255);\n const b = parseToInteger(parts[3], 255);\n const a = parts[4] ? parseToFloat(parts[4]) : 1.0;\n\n if (isNaN(r)) {\n throw new Error(`Could not parse red=${parts[1]} to number`);\n }\n if (isNaN(g)) {\n throw new Error(`Could not parse green=${parts[2]} to number`);\n }\n if (isNaN(b)) {\n throw new Error(`Could not parse blue=${parts[3]} to number`);\n }\n if (isNaN(a)) {\n throw new Error(`Could not parse alpha=${parts[4]} to number`);\n }\n return { r, g, b, a };\n}\n\nexport function parseHSLParts(parts: string[]) {\n const h = parseInt(parts[1], 10);\n const s = parseToFloat(parts[2]);\n const l = parseToFloat(parts[3]);\n const a = parts[4] ? parseToFloat(parts[4]) : 1.0;\n\n if (isNaN(h)) {\n throw new Error(`Could not parse hue=${parts[1]} to number`);\n } else if (isNaN(s)) {\n throw new Error(`Could not parse saturation=${parts[2]} to number`);\n } else if (isNaN(l)) {\n throw new Error(`Could not parse lightness=${parts[3]} to number`);\n } else if (isNaN(a)) {\n throw new Error(`Could not parse alpha=${parts[4]} to number`);\n }\n\n return { h, s, l, a };\n}\n\nexport function parseToInteger(part: string, size: number) {\n return part.endsWith('%') ? integerFromPercent(part, size) : parseInt(part, 10);\n}\n\nexport function parseToFloat(part: string) {\n return part.endsWith('%') ? floatFromPercent(part) : parseFloat(part);\n}\n\nconst calculateHue = (hue: number) => {\n if (hue < 0) {\n return hue + 1;\n }\n\n if (hue > 1) {\n return hue - 1;\n }\n\n return hue;\n};\n\nexport function hue2rgb(hue: number, t1: number, t2: number) {\n const calculatedHue = calculateHue(hue);\n\n if (calculatedHue < 1 / 6) {\n return t2 + (t1 - t2) * 6 * calculatedHue;\n }\n\n if (calculatedHue < 1 / 2) {\n return t1;\n }\n\n if (calculatedHue < 2 / 3) {\n return t2 + (t1 - t2) * (2 / 3 - calculatedHue) * 6;\n }\n\n return t2;\n}\n\nexport const isColor = (input: string) => {\n const colorStarters = ['#', 'rgb', 'hsl'];\n\n if (input) {\n return startsWithOneOf(colorStarters, input);\n }\n\n return false;\n};\n","export const ColorKeywords = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgrey: '#a9a9a9',\n darkgreen: '#006400',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n gold: '#ffd700',\n goldenrod: '#daa520',\n gray: '#808080',\n grey: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavender: '#e6e6fa',\n lavenderblush: '#fff0f5',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgrey: '#d3d3d3',\n lightgreen: '#90ee90',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370d8',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#d87093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","import warning from 'warning';\n\nimport { clamp, roundToPrecision } from './ColorHelpers';\nimport type { ColorKeywords } from './ColorKeywords';\n\nexport type RGBTuple = [number, number, number];\nexport type ColorKeywordsType = keyof typeof ColorKeywords;\nexport type ColorType = 'rgb' | 'rgba' | 'hsl' | 'hsla' | 'hex' | 'transparent' | ColorKeywordsType;\n\ninterface ColorHSLA {\n h: number;\n s: number;\n l: number;\n a: number;\n}\n\ninterface ColorRGBA {\n r: number;\n g: number;\n b: number;\n a: number;\n}\n\nexport interface ColorObjectType {\n rgb: RGBTuple;\n alpha: number;\n type: ColorType;\n luma(): number;\n toRGB(): ColorRGBA;\n toHSL(): ColorHSLA;\n toHEXString(): string;\n toRGBString(): string;\n toHSLString(): string;\n}\n\nexport class ColorObject implements ColorObjectType {\n public rgb: RGBTuple;\n public alpha: number;\n public type: ColorType;\n\n constructor(rgb: RGBTuple, alpha: number, type: ColorType) {\n this.rgb = rgb;\n this.alpha = alpha;\n this.type = type;\n }\n\n public luma() {\n let r = this.rgb[0] / 255;\n let g = this.rgb[1] / 255;\n let b = this.rgb[2] / 255;\n\n r = r <= 0.03928 ? r / 12.92 : Math.pow((r + 0.055) / 1.055, 2.4);\n g = g <= 0.03928 ? g / 12.92 : Math.pow((g + 0.055) / 1.055, 2.4);\n b = b <= 0.03928 ? b / 12.92 : Math.pow((b + 0.055) / 1.055, 2.4);\n\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n }\n\n public toHEXString() {\n warning(this.alpha === 1, `There is an alpha channel=${this.alpha}, converting to HEX will discard opacity`);\n\n return (\n '#' +\n this.rgb\n .map((c) => {\n const clamped = clamp(Math.round(c), 255);\n\n return (clamped < 16 ? '0' : '') + clamped.toString(16);\n })\n .join('')\n );\n }\n\n public toRGB() {\n return { r: this.rgb[0], g: this.rgb[1], b: this.rgb[2], a: this.alpha };\n }\n\n public toRGBString() {\n return this.alpha < 1\n ? `rgba(${this.rgb[0]}, ${this.rgb[1]}, ${this.rgb[2]}, ${this.alpha})`\n : `rgb(${this.rgb[0]}, ${this.rgb[1]}, ${this.rgb[2]})`;\n }\n\n public toHSL() {\n const r = this.rgb[0] / 255;\n const g = this.rgb[1] / 255;\n const b = this.rgb[2] / 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n\n let hDeg = 0;\n let s = 0;\n const l = (max + min) / 2;\n\n if (max !== min) {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n hDeg = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n hDeg = (b - r) / d + 2;\n break;\n case b:\n hDeg = (r - g) / d + 4;\n break;\n }\n hDeg = Math.round(hDeg * 60);\n }\n\n return {\n h: hDeg,\n s: roundToPrecision(s, 2),\n l: roundToPrecision(l, 2),\n a: this.alpha,\n };\n }\n\n public toHSLString() {\n const hsl = this.toHSL();\n return hsl.a < 1\n ? `hsla(${hsl.h}, ${hsl.s * 100}%, ${hsl.l * 100}%, ${hsl.a})`\n : `hsl(${hsl.h}, ${hsl.s * 100}%, ${hsl.l * 100}%)`;\n }\n\n public toColorString(type: ColorType = this.type) {\n switch (type) {\n case 'rgb':\n case 'rgba': {\n return this.toRGBString();\n }\n case 'hsl':\n case 'hsla': {\n return this.toHSLString();\n }\n case 'transparent': {\n return `transparent`;\n }\n default:\n return this.toHEXString();\n }\n }\n\n public clone() {\n const { rgb, alpha, type } = this;\n return new ColorObject(rgb, alpha, type);\n }\n}\n","import warning from 'warning';\n\nimport { clamp, extractColorParts, hue2rgb, parseHSLParts, parseRGBParts } from './ColorHelpers';\nimport { ColorKeywords } from './ColorKeywords';\nimport type { ColorKeywordsType, ColorType, RGBTuple } from './ColorObject';\nimport { ColorObject } from './ColorObject';\n\ninterface ColorFactoryCacheType {\n [key: string]: ColorObject;\n}\n\nconst RGB_REGEX =\n /(?:rgba|rgb)\\(\\s*(\\d{1,3}(?:(?:\\.\\d+)?%)?)\\s*,?\\s*(\\d{1,3}(?:(?:\\.\\d+)?%)?)\\s*,?\\s*(\\d{1,3}(?:(?:\\.\\d+)?%)?)\\s*(?:\\)|(?:,|\\/)?\\s*(0|0\\.\\d+|1|1\\.0+|\\d{1,3}(?:(?:\\.\\d+)?%))\\s*\\))/;\nconst HSL_REGEX =\n /(?:hsla|hsl)\\(\\s*(\\d{1,3}(?:deg)?\\b)\\s*,?\\s*(\\d{1,3}\\.?\\d*%|[0-1](?:\\.\\d*)?\\b)\\s*,?\\s*(\\d{1,3}\\.?\\d*%|[0-1](?:\\.\\d*)?\\b)\\s*(?:\\)|(?:,|\\/)?\\s*(\\d{1,3}\\.?\\d*%|\\d+(?:\\.\\d*)?)\\s*\\))/;\nconst HEX_REGEX = /^#([0-9a-f]{3}|[0-9a-f]{6})$/;\n\nexport class ColorFactory {\n public static create(input: string) {\n if (!this.cache[input]) {\n this.cache[input] = Object.freeze(this.instantiate(input));\n }\n\n return this.cache[input];\n }\n\n private static cache: ColorFactoryCacheType = Object.create(null);\n\n private static instantiate(input: string) {\n if (typeof input !== 'string') {\n warning(false, `Invalid type of input (${typeof input}), expected a string. Returning transparent color`);\n return new ColorObject([0, 0, 0], 1.0, 'transparent');\n }\n const lowercasedTrimmedInput = input.toLowerCase().trim();\n\n if (lowercasedTrimmedInput === 'transparent') {\n return new ColorObject([0, 0, 0], 0, 'transparent');\n }\n\n if (this.isKeyword(lowercasedTrimmedInput)) {\n return this.fromKeyword(lowercasedTrimmedInput);\n }\n\n if (lowercasedTrimmedInput.startsWith('rgb')) {\n const parts = extractColorParts(lowercasedTrimmedInput, RGB_REGEX);\n let { r, g, b, a } = parseRGBParts(parts);\n\n r = clamp(r, 255);\n g = clamp(g, 255);\n b = clamp(b, 255);\n a = clamp(a, 1);\n\n return this.fromRGB(r, g, b, a);\n }\n\n if (lowercasedTrimmedInput.startsWith('hsl')) {\n const parts = extractColorParts(lowercasedTrimmedInput, HSL_REGEX);\n let { h, s, l, a } = parseHSLParts(parts);\n\n h = clamp(h, 360);\n s = clamp(s, 1);\n l = clamp(l, 1);\n a = clamp(a, 1);\n\n return this.fromHSL(h, s, l, a);\n }\n\n return this.fromHex(lowercasedTrimmedInput);\n }\n\n private static isKeyword(input: string): input is ColorKeywordsType {\n return Object.prototype.hasOwnProperty.call(ColorKeywords, input);\n }\n\n private static fromKeyword(keyword: ColorKeywordsType) {\n return this.fromHex(ColorKeywords[keyword], keyword);\n }\n\n private static fromHex(hexString: string, type: ColorType = 'hex') {\n if (!HEX_REGEX.test(hexString)) {\n throw new Error(`${hexString} is not a valid hex color string`);\n }\n\n const colorCode = hexString.substring(1);\n const rgb: RGBTuple = [0, 0, 0];\n if (colorCode.length === 6) {\n colorCode.match(/.{2}/g)?.forEach((c, i) => {\n rgb[i] = parseInt(c, 16);\n });\n } else if (colorCode.length === 3) {\n colorCode.split('').forEach((c, i) => {\n rgb[i] = parseInt(c + c, 16);\n });\n }\n return new ColorObject(rgb, 1.0, type);\n }\n\n private static fromRGB(r: number, g: number, b: number, a = 1.0) {\n return new ColorObject([r, g, b], a, a < 1 ? 'rgba' : 'rgb');\n }\n\n private static fromHSL(h: number, s: number, l: number, a = 1.0) {\n if (s === 0) {\n const gray = Math.round(l * 255);\n return new ColorObject([gray, gray, gray], a, a < 1 ? 'hsla' : 'hsl');\n }\n\n const hDeg = h / 360;\n const t1 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const t2 = l * 2 - t1;\n\n const r = hue2rgb(hDeg + 1 / 3, t1, t2);\n const g = hue2rgb(hDeg, t1, t2);\n const b = hue2rgb(hDeg - 1 / 3, t1, t2);\n\n const rgb: RGBTuple = [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];\n return new ColorObject(rgb, a, a < 1 ? 'hsla' : 'hsl');\n }\n}\n","import { clamp, floatFromPercent } from './ColorHelpers';\nimport { ColorFactory } from './ColorFactory';\nimport type { ColorObject } from './ColorObject';\n\ntype SignType = '+' | '-';\ntype MethodType = 'absolute' | 'relative';\n\nconst DEFAULT_DARK = ColorFactory.create('#333333');\nconst DEFAULT_LIGHT = ColorFactory.create('#fff');\nconst ColorFunctionsCache: { [key: string]: string } = Object.create(null);\n\nconst buildCacheKey = (name: string, ...args: any[]) => `${name}(${args.join()})`;\n\nconst shiftColor = (colorString: string, a: number | string, sign: SignType, method?: MethodType) => {\n if (!colorString) {\n return '';\n }\n\n if (colorString.toLowerCase() === 'transparent') {\n return 'transparent';\n }\n\n let amount: number;\n if (typeof a === 'string') {\n amount = a.endsWith('%') ? floatFromPercent(a) : parseFloat(a);\n } else {\n amount = a;\n }\n amount = clamp(amount, 1);\n\n const color = ColorFactory.create(colorString);\n const hsl = color.toHSL();\n\n if (sign === '+') {\n hsl.l += method === 'relative' ? hsl.l * amount : amount;\n } else {\n hsl.l -= method === 'relative' ? hsl.l * amount : amount;\n }\n\n hsl.l = clamp(hsl.l);\n\n let newColor: ColorObject;\n if (color.alpha < 1) {\n newColor = ColorFactory.create(`hsla(${hsl.h}, ${hsl.s}, ${hsl.l}, ${hsl.a})`);\n } else {\n newColor = ColorFactory.create(`hsl(${hsl.h}, ${hsl.s}, ${hsl.l})`);\n }\n return newColor.toColorString(color.type);\n};\n\nexport function lighten(colorString: string, amount: number | string, method?: MethodType) {\n const key = buildCacheKey('lighten', colorString, amount, method);\n if (ColorFunctionsCache[key] === undefined) {\n ColorFunctionsCache[key] = shiftColor(colorString, amount, '+', method);\n return ColorFunctionsCache[key];\n }\n return ColorFunctionsCache[key];\n}\nexport function darken(colorString: string, amount: number | string, method?: MethodType) {\n const key = buildCacheKey('darken', colorString, amount, method);\n if (ColorFunctionsCache[key] === undefined) {\n ColorFunctionsCache[key] = shiftColor(colorString, amount, '-', method);\n return ColorFunctionsCache[key];\n }\n\n return ColorFunctionsCache[key];\n}\nexport function contrast(colorString: string, darkString?: string, lightString?: string, threshold = 0.43) {\n const key = buildCacheKey('contrast', colorString, darkString, lightString, threshold);\n if (!colorString) {\n ColorFunctionsCache[key] = '';\n }\n if (ColorFunctionsCache[key] === undefined) {\n const color = ColorFactory.create(colorString);\n let dark = typeof darkString === 'undefined' ? DEFAULT_DARK : ColorFactory.create(darkString);\n let light = typeof lightString === 'undefined' ? DEFAULT_LIGHT : ColorFactory.create(lightString);\n\n // Figure out which is actually light and dark:\n if (dark.luma() > light.luma()) {\n [dark, light] = [light, dark];\n }\n\n if (color.luma() < threshold) {\n ColorFunctionsCache[key] = light.alpha < 1 ? light.toRGBString() : light.toHEXString();\n } else {\n ColorFunctionsCache[key] = dark.alpha < 1 ? dark.toRGBString() : dark.toHEXString();\n }\n }\n return ColorFunctionsCache[key];\n}\n\nexport const red = (colorString: string) => {\n const color = ColorFactory.create(colorString);\n return color.rgb[0];\n};\nexport const green = (colorString: string) => {\n const color = ColorFactory.create(colorString);\n return color.rgb[1];\n};\nexport const blue = (colorString: string) => {\n const color = ColorFactory.create(colorString);\n return color.rgb[2];\n};\nexport const alpha = (colorString: string) => {\n const color = ColorFactory.create(colorString);\n return color.alpha;\n};\nexport const isValid = (colorString: string) => {\n try {\n ColorFactory.create(colorString);\n return true;\n } catch (e) {\n return false;\n }\n};\nexport const fade = (colorString: string, alpha: number) => {\n const key = buildCacheKey('fade', colorString, alpha);\n\n if (ColorFunctionsCache[key] === undefined) {\n const color = ColorFactory.create(colorString).clone();\n color.alpha = alpha;\n ColorFunctionsCache[key] = color.toColorString(color.type === 'hex' ? 'rgba' : color.type);\n }\n return ColorFunctionsCache[key];\n};\n","import { createTheme } from '../../lib/theming/ThemeHelpers';\nimport * as ColorFunctions from '../../lib/styles/ColorFunctions';\n\nexport class BasicThemeClass {\n //#region Common variables\n public static baseFontFamily = '\"Lab Grotesque\", \"Lab Grotesque K\", Arial, sans-serif';\n public static labGrotesqueBaselineCompensation = '1';\n public static brand = '#2291ff';\n public static white = '#fff';\n public static grayXLight = '#ebebeb';\n public static gray = '#858585';\n public static grayDark = '#333';\n public static black = '#000';\n\n public static blueXxLight = '#cdedff';\n public static blueLight = '#1f87ef';\n public static blue = '#1874cf';\n\n public static greenXxLight = '#C7F9CC';\n public static green = '#1C8A3F';\n public static greenDark = '#197F39';\n\n public static red = '#FE4C4C';\n public static redXxLight = '#FFEBEB';\n public static redDark = '#CC2626';\n\n public static yellowXxLight = '#ffeec2';\n public static yellow = '#fcb73e';\n public static yellowDark = '#ef8b17';\n\n public static bgDefault = '#fff';\n public static get bgSecondary() {\n return this.bgDefault;\n }\n public static bgDisabled = '#F0F0F0';\n public static get errorMain() {\n return this.red;\n }\n public static get errorText() {\n return this.redDark;\n }\n public static get errorSecondary() {\n return this.redXxLight;\n }\n public static warningMain = '#fcb73e';\n public static warningSecondary = '#fff0bc';\n public static warningText = '#d97e00';\n public static borderColorFocusLight = '#cdedff';\n public static borderColorGrayDark = 'rgba(0, 0, 0, 0.28)';\n public static borderColorGrayLight = 'rgba(0, 0, 0, 0.16)';\n public static borderColorDisabled = 'rgba(0, 0, 0, 0.10)';\n public static placeholderColor = '#adadad';\n public static outlineColorFocus = '#fff';\n public static placeholderColorLight = '#cdcdcd';\n public static blinkColor = 'rgba(0, 136, 255, 0.2)';\n public static controlBorderWidth = '1px';\n public static controlOutlineWidth = '2px';\n public static controlLineHeightSmall = '20px';\n public static controlLineHeightMedium = '22px';\n public static controlLineHeightLarge = '24px';\n public static controlPaddingYSmall = '5px';\n public static controlPaddingYMedium = '8px';\n public static controlPaddingYLarge = '11px';\n public static textColorDefault = '#222222';\n public static textColorInvert = '#fff';\n public static textColorDisabled = '#adadad';\n public static textColorDisabledContrast = '#858585';\n public static fontSizeSmall = '14px';\n public static fontSizeMedium = '16px';\n public static fontSizeLarge = '18px';\n public static fontSizeMobile = '18px';\n public static lineHeightMobile = '24px';\n public static specificityLevel = '0';\n public static fixedPanelShadow = 'none';\n public static bgActive = '#141414';\n public static bgChecked = '#3D3D3D';\n public static borderColorFocus = '#3D3D3D';\n public static get borderColorError() {\n return this.errorMain;\n }\n public static get borderColorWarning() {\n return this.warningMain;\n }\n public static controlHeightSmall = '32px';\n public static controlHeightMedium = '40px';\n public static controlHeightLarge = '48px';\n public static mobileMediaQuery = '(max-width: 576px) and (pointer: coarse)';\n\n public static transitionDuration = '100ms';\n public static transitionTimingFunction = 'cubic-bezier(0.5, 1, 0.89, 1)';\n //#endregion Common variables\n //#region Link\n public static linkColor = '#222222';\n public static linkTextDecoration = 'underline';\n\n public static get linkHoverColor() {\n return this.linkColor;\n }\n public static linkActiveColor = '#141414';\n public static linkHoverTextDecoration = 'none';\n\n public static get linkSuccessColor() {\n return this.green;\n }\n public static get linkSuccessHoverColor() {\n return this.greenDark;\n }\n public static linkSuccessActiveColor = '#167333';\n\n public static get linkDangerColor() {\n return this.errorText;\n }\n public static linkDangerHoverColor = '#BB1919';\n public static linkDangerActiveColor = '#AB0D0D';\n\n public static linkIconMarginRight = '4px';\n public static linkIconMarginLeft = '4px';\n\n public static get linkDisabledColor() {\n return this.textColorDisabled;\n }\n public static linkGrayedColor = '#858585';\n public static linkGrayedHoverColor = '#292929';\n public static linkGrayedActiveColor = '#141414';\n\n public static linkButtonLineHeight = '34px';\n public static linkButtonPaddingX = '10px';\n\n public static linkTextDecorationStyle = 'solid';\n public static linkTextDecorationThickness = '1px';\n public static linkTextUnderlineOffset = '4px';\n public static get linkHoverTextDecorationStyle() {\n return this.linkTextDecorationStyle;\n }\n public static linkTextUnderlineOpacity = '0.5';\n public static linkTextDecorationColor = `color-mix(in srgb, currentColor ${\n parseFloat(this.linkTextUnderlineOpacity) * 100\n }%, transparent)`;\n public static linkLineBorderBottomStyle = 'solid';\n public static get linkLineHoverBorderBottomStyle() {\n return this.linkLineBorderBottomStyle;\n }\n public static linkLineBorderBottomWidth = '1px';\n public static linkLineBorderBottomOpacity = '0.5';\n public static linkLineBorderBottomColor = `color-mix(in srgb, currentColor ${\n parseFloat(this.linkLineBorderBottomOpacity) * 100\n }%, transparent)`;\n\n public static linkFocusOutlineColor = '#3D3D3D';\n public static get linkFocusOutlineWidth() {\n return this.controlOutlineWidth;\n }\n public static get linkFocusOutline() {\n return `${this.linkFocusOutlineWidth} solid ${this.linkFocusOutlineColor}`;\n }\n\n //#endregion Link\n //#region Token\n public static tokenDisabledBg = 'rgba(0, 0, 0, 0.05)';\n public static get tokenTextColorDisabled() {\n return this.textColorDisabled;\n }\n\n public static get tokenFontSizeSmall() {\n return this.fontSizeSmall;\n }\n public static get tokenFontSizeMedium() {\n return this.fontSizeMedium;\n }\n public static get tokenFontSizeLarge() {\n return this.fontSizeLarge;\n }\n\n public static tokenMarginYSmall = '2px';\n public static tokenMarginXSmall = '1px';\n public static tokenMarginYMedium = '2px';\n public static tokenMarginXMedium = '2px';\n public static tokenMarginYLarge = '2px';\n public static tokenMarginXLarge = '3px';\n\n public static get tokenLineHeightSmall() {\n return this.controlLineHeightSmall;\n }\n public static get tokenLineHeightMedium() {\n return this.controlLineHeightMedium;\n }\n public static get tokenLineHeightLarge() {\n return this.controlLineHeightLarge;\n }\n\n public static tokenPaddingYSmall = '1px';\n public static tokenPaddingXSmall = '3px';\n public static tokenPaddingYMedium = '2px';\n public static tokenPaddingXMedium = '5px';\n public static tokenPaddingYLarge = '3px';\n public static tokenPaddingXLarge = '7px';\n public static tokenMarginBeforeIcon = '4px';\n public static tokenRemoveIconSize = '16px';\n public static tokenRemoveIconPaddingY = '0px';\n public static tokenRemoveIconPaddingX = '0px';\n public static tokenRemoveIconGap = '4px';\n public static tokenRemoveIconBoxSizing = 'content-box';\n public static tokenBorderRadius = '2px';\n public static tokenBorderWidth = '1px';\n public static tokenBorderColorDisabled = 'transparent';\n public static get tokenBorderColorWarning() {\n return this.borderColorWarning;\n }\n public static get tokenBorderColorError() {\n return this.borderColorError;\n }\n public static tokenOutlineWidth = '1px';\n\n public static get tokenPaddingYDisabled() {\n return this.tokenPaddingYSmall;\n }\n public static get tokenPaddingXDisabled() {\n return this.tokenPaddingXSmall;\n }\n\n public static get tokenMarginYDisabled() {\n return this.tokenMarginYSmall;\n }\n public static get tokenMarginXDisabled() {\n return this.tokenMarginXSmall;\n }\n\n public static tokenShadowDisabled = '';\n\n public static tokenBg = 'rgba(0, 0, 0, 0.1)';\n public static tokenColor = '#222222';\n public static tokenBorderColor = 'rgba(0, 0, 0, 0.16)';\n public static tokenBgHover = 'rgba(0, 0, 0, 0.16)';\n public static tokenColorHover = '#222222';\n public static tokenBorderColorHover = 'rgba(0, 0, 0, 0.16)';\n public static tokenBgActive = '#3D3D3D';\n public static tokenColorActive = '#FFFFFF';\n public static tokenBorderColorActive = 'transparent';\n\n //#endregion Token\n //#region TokenInput\n\n public static get tokenInputLineHeightSmall() {\n return this.controlLineHeightSmall;\n }\n public static get tokenInputLineHeightMedium() {\n return this.controlLineHeightMedium;\n }\n public static get tokenInputLineHeightLarge() {\n return this.controlLineHeightLarge;\n }\n public static get tokenInputBorderColor() {\n return this.inputBorderColor;\n }\n public static get tokenInputBorderColorHover() {\n return this.inputBorderColorHover;\n }\n public static get tokenInputBorderColorFocus() {\n return this.inputBorderColorFocus;\n }\n public static get tokenInputBorderColorError() {\n return this.inputBorderColorError;\n }\n public static get tokenInputBorderColorWarning() {\n return this.inputBorderColorWarning;\n }\n public static get tokenInputBorderTopColor() {\n return this.inputBorderTopColor;\n }\n public static tokenInputBorderRadius = '2px';\n public static get tokenInputPlaceholderColor() {\n return this.inputPlaceholderColor;\n }\n public static get tokenInputPlaceholderColorLight() {\n return this.inputPlaceholderColorLight;\n }\n public static get tokenInputDisabledBg() {\n return this.inputDisabledBg;\n }\n public static get tokenInputDisabledBorderColor() {\n return this.inputDisabledBorderColor;\n }\n public static get tokenInputBorderWidth() {\n return this.inputBorderWidth;\n }\n public static get tokenInputOutlineWidth() {\n return this.inputOutlineWidth;\n }\n public static get tokenInputBg() {\n return this.inputBg;\n }\n public static tokenInputMenuPopupBg = 'transparent';\n public static get tokenInputShadow() {\n return this.inputShadow;\n }\n public static get tokenInputTextColor() {\n return this.inputTextColor;\n }\n public static get tokenInputTextColorDisabled() {\n return this.textColorDisabledContrast;\n }\n public static get tokenInputPlaceholderColorDisabled() {\n return this.textColorDisabledContrast;\n }\n\n public static tokenInputPaddingYSmall = '1px';\n public static tokenInputPaddingXSmall = '2px';\n\n public static tokenInputPaddingYMedium = '3px';\n public static tokenInputPaddingXMedium = '3px';\n\n public static tokenInputPaddingYLarge = '5px';\n public static tokenInputPaddingXLarge = '4px';\n\n public static tokenInputPopupOffset = '2px';\n public static tokenInputPopupMarginSmall = '7px';\n public static tokenInputPopupMarginMedium = '10px';\n public static tokenInputPopupMarginLarge = '13px';\n\n //#endregion TokenInput\n //#region Loader\n public static loaderBg = 'rgba(255, 255, 255, 0.8)';\n public static loaderOpacity = '0.8';\n public static loaderBorderRadius = '0px';\n //#endregion\n //#region Button\n public static btnBackgroundClip = 'padding-box';\n public static btnLinkBorderRadius = '2px';\n public static btnFocusShadowWidth = '2px';\n public static btnBorderColorTransition = '';\n public static btnDisabledBorderColor = 'rgba(0, 0, 0, 0.10)';\n public static btnCheckedBg = '#3D3D3D';\n public static btnCheckedDisabledBg = '#ADADAD';\n public static btnCheckedDisabledColor = '#E6E6E6';\n public static btnCheckedTextColor = '#fff';\n public static get btnCheckedDisabledBorderColor() {\n return this.btnCheckedDisabledBg;\n }\n public static btnCheckedShadow = 'none';\n public static btnCheckedDisabledShadow = 'none';\n\n public static btnBorderRadiusSmall = '8px';\n public static btnBorderRadiusMedium = '8px';\n public static btnBorderRadiusLarge = '8px';\n\n public static get btnBorderWidth() {\n return this.controlBorderWidth;\n }\n public static btnInsetWidth = '1px';\n public static get btnOutlineWidth() {\n return this.controlOutlineWidth;\n }\n public static btnPaddingXSmall = '12px';\n public static btnPaddingXMedium = '16px';\n public static btnPaddingXLarge = '20px';\n\n public static btnIconGapSmallLeft = '4px';\n public static get btnIconGapSmallRight() {\n return this.btnIconGapSmallLeft;\n }\n\n public static btnIconGapMediumLeft = '6px';\n public static get btnIconGapMediumRight() {\n return this.btnIconGapMediumLeft;\n }\n\n public static btnIconGapLargeLeft = '8px';\n public static get btnIconGapLargeRight() {\n return this.btnIconGapLargeLeft;\n }\n\n public static btnIconSizeSmall = '16px';\n public static btnIconSizeMedium = '20px';\n public static btnIconSizeLarge = '24px';\n public static btnDefaultBg = '#fff';\n public static btnDefaultBgStart = 'none';\n public static btnDefaultBgEnd = 'none';\n public static get btnDefaultCheckedBorderColor() {\n return this.btnCheckedBg;\n }\n public static get btnDefaultTextColor() {\n return this.textColorDefault;\n }\n public static btnDefaultHoverBg = '#F0F0F0';\n public static btnDefaultHoverBgStart = 'none';\n public static btnDefaultHoverBgEnd = 'none';\n public static btnDefaultActiveBg = '#E6E6E6';\n public static get btnDefaultHoverBorderColor() {\n return this.btnDefaultBorderColor;\n }\n public static btnDefaultHoverTextColor = '';\n public static get btnDefaultActiveBorderColor() {\n return this.btnDefaultBorderColor;\n }\n public static btnDefaultBorderColor = 'rgba(0, 0, 0, 0.16)';\n public static btnDefaultActiveShadow = 'none';\n public static btnSuccessBg = '#26AD50';\n public static btnSuccessBorderColor = '#26AD50';\n public static btnSuccessHoverBg = '#23A14A';\n public static btnSuccessHoverBorderColor = '#23A14A';\n public static btnSuccessHoverTextColor = '';\n public static btnSuccessBgStart = 'none';\n public static btnSuccessBgEnd = 'none';\n public static btnSuccessTextColor = '#fff';\n public static btnSuccessHoverBgStart = 'none';\n public static btnSuccessHoverBgEnd = 'none';\n public static btnSuccessActiveBg = '#209644';\n public static btnSuccessActiveBorderColor = '#209644';\n public static btnSuccessActiveShadow = 'none';\n\n public static btnPrimaryBg = '#3D3D3D';\n public static btnPrimaryHoverBg = '#292929';\n public static btnPrimaryActiveBg = '#141414';\n\n public static btnPrimaryHoverTextColor = '';\n public static btnPrimaryBorderColor = '#3D3D3D';\n public static btnPrimaryHoverBorderColor = '#292929';\n public static btnPrimaryActiveBorderColor = '#141414';\n\n public static btnPrimaryBgStart = 'none';\n public static btnPrimaryBgEnd = 'none';\n public static btnPrimaryTextColor = '#fff';\n public static btnPrimaryHoverBgStart = 'none';\n public static btnPrimaryHoverBgEnd = 'none';\n public static btnPrimaryActiveShadow = 'none';\n public static get btnDangerBg() {\n return this.errorMain;\n }\n public static get btnDangerBorderColor() {\n return this.btnDangerBg;\n }\n\n public static btnDangerHoverBg = '#ED3F3F';\n public static btnDangerHoverBorderColor = '#ED3F3F';\n\n public static btnDangerHoverTextColor = '';\n public static btnDangerBgStart = 'none';\n public static btnDangerBgEnd = 'none';\n public static btnDangerTextColor = '#fff';\n public static btnDangerHoverBgStart = 'none';\n public static btnDangerHoverBgEnd = 'none';\n public static btnDangerActiveBg = '#DD3333';\n public static get btnDangerActiveBorderColor() {\n return this.btnDangerActiveBg;\n }\n\n public static btnDangerActiveShadow = 'none';\n public static btnPayBg = '#fcb73e';\n public static btnPayHoverBg = '#fda70c';\n public static btnPayHoverBorderColor = '#fda70c';\n public static btnPayHoverTextColor = '';\n public static btnPayBorderColor = '#fcb73e';\n public static btnPayBgStart = 'none';\n public static btnPayBgEnd = 'none';\n public static get btnPayTextColor() {\n return this.textColorDefault;\n }\n public static btnPayHoverBgStart = 'none';\n public static btnPayHoverBgEnd = 'none';\n public static btnPayActiveBg = '#f69912';\n public static btnPayActiveBorderColor = '#f69912';\n public static btnPayActiveShadow = 'none';\n public static btnMenuArrowColor = '#a6a6a6';\n public static get btnFontSizeSmall() {\n return this.fontSizeSmall;\n }\n public static get btnFontSizeMedium() {\n return this.fontSizeMedium;\n }\n public static get btnFontSizeLarge() {\n return this.fontSizeLarge;\n }\n public static get btnLineHeightSmall() {\n return this.controlLineHeightSmall;\n }\n public static get btnLineHeightMedium() {\n return this.controlLineHeightMedium;\n }\n public static get btnLineHeightLarge() {\n return this.controlLineHeightLarge;\n }\n public static get btnPaddingYSmall() {\n return this.controlPaddingYSmall;\n }\n public static get btnPaddingYMedium() {\n return this.controlPaddingYMedium;\n }\n public static get btnPaddingYLarge() {\n return this.controlPaddingYLarge;\n }\n public static btnDisabledBg = 'rgba(0, 0, 0, 0.06)';\n\n public static get btnBorderColorWarning() {\n return this.borderColorWarning;\n }\n public static get btnBorderColorError() {\n return this.borderColorError;\n }\n public static get btnHeightSmall() {\n const borderWidth = parseInt(this.btnBorderWidth, 10) || 0;\n const padding = parseInt(this.btnPaddingYSmall, 10) || 0;\n const lineHeigh = parseInt(this.btnLineHeightSmall, 10) || 0;\n return `${2 * borderWidth + 2 * padding + lineHeigh}px`;\n }\n public static get btnHeightMedium() {\n const borderWidth = parseInt(this.btnBorderWidth, 10) || 0;\n const padding = parseInt(this.btnPaddingYMedium, 10) || 0;\n const lineHeigh = parseInt(this.btnLineHeightMedium, 10) || 0;\n return `${2 * borderWidth + 2 * padding + lineHeigh}px`;\n }\n public static get btnHeightLarge() {\n const borderWidth = parseInt(this.btnBorderWidth, 10) || 0;\n const padding = parseInt(this.btnPaddingYLarge, 10) || 0;\n const lineHeigh = parseInt(this.btnLineHeightLarge, 10) || 0;\n return `${2 * borderWidth + 2 * padding + lineHeigh}px`;\n }\n public static get btnLinkColor() {\n return this.linkColor;\n }\n public static get btnLinkHoverColor() {\n return this.linkHoverColor;\n }\n public static get btnLinkActiveColor() {\n return this.linkActiveColor;\n }\n public static get btnLinkHoverTextDecoration() {\n return this.linkHoverTextDecoration;\n }\n public static get btnLinkTextDecorationColor() {\n return this.linkTextDecorationColor;\n }\n public static get btnLinkTextDecorationStyle() {\n return this.linkTextDecorationStyle;\n }\n public static get btnLinkHoverTextDecorationStyle() {\n return this.linkTextDecorationStyle;\n }\n public static get btnLinkTextUnderlineOffset() {\n return this.linkTextUnderlineOffset;\n }\n public static get btnLinkTextDecorationThickness() {\n return this.linkTextDecorationThickness;\n }\n public static get btnLinkTextUnderlineOpacity() {\n return this.linkTextUnderlineOpacity;\n }\n public static get btnLinkLineBorderBottomStyle() {\n return this.linkLineBorderBottomStyle;\n }\n public static get btnLinkHoverLineBorderBottomStyle() {\n return this.btnLinkLineBorderBottomStyle;\n }\n public static get btnLinkLineBorderBottomWidth() {\n return this.linkLineBorderBottomWidth;\n }\n public static get btnLinkLineBorderBottomOpacity() {\n return this.linkLineBorderBottomOpacity;\n }\n\n public static get btnLinkIconMarginRight() {\n return this.linkIconMarginRight;\n }\n public static get btnLinkIconMarginLeft() {\n return this.linkIconMarginRight;\n }\n public static get btnErrorSecondary() {\n return this.errorSecondary;\n }\n public static get btnWarningSecondary() {\n return this.warningSecondary;\n }\n public static get btnOutlineColorFocus() {\n return this.outlineColorFocus;\n }\n public static btnInsetColor = '#fff';\n public static get btnBorderColorFocus() {\n return this.borderColorFocus;\n }\n public static get btnLinkDisabledColor() {\n return this.linkDisabledColor;\n }\n public static get btnDisabledTextColor() {\n return this.textColorDisabled;\n }\n public static btnBacklessBg = 'transparent';\n public static btnBacklessHoverBg = 'rgba(0, 0, 0, 0.06)';\n public static btnBacklessActiveBg = 'rgba(0, 0, 0, 0.1)';\n public static get btnBacklessActiveBorderColor() {\n return this.btnBacklessBorderColor;\n }\n public static get btnBacklessBorderColor() {\n return this.btnDefaultBorderColor;\n }\n public static get btnBacklessDisabledBorderColor() {\n return this.btnDisabledBorderColor;\n }\n public static get btnBacklessHoverBorderColor() {\n return this.btnBacklessBorderColor;\n }\n public static btnBacklessHoverTextColor = '';\n public static get btnBacklessTextColor() {\n return this.btnDefaultTextColor;\n }\n\n public static btnTextBg = 'transparent';\n public static btnTextHoverBg = 'rgba(0, 0, 0, 0.06)';\n public static btnTextActiveBg = 'rgba(0, 0, 0, 0.1)';\n public static get btnTextBorderColor() {\n return this.btnDefaultBorderColor;\n }\n public static get btnTextTextColor() {\n return this.btnDefaultTextColor;\n }\n public static btnTextHoverTextColor = '';\n public static get btnTextHoverBorderColor() {\n return this.btnTextHoverBg;\n }\n\n /** @deprecated use btnWithIconPadding[Small/Medium/Large] instead */\n public static get btnWithIconPaddingLeftSmall() {\n return this.btnWithIconPaddingSmall;\n }\n public static get btnWithIconPaddingLeftMedium() {\n return this.btnWithIconPaddingMedium;\n }\n public static get btnWithIconPaddingLeftLarge() {\n return this.btnWithIconPaddingLarge;\n }\n\n public static btnWithIconPaddingSmall = '8px';\n public static btnWithIconPaddingMedium = '10px';\n public static btnWithIconPaddingLarge = '12px';\n\n public static btnIconColor = '';\n public static btnIconHoverColor = '';\n public static btnIconDisabledColor = '';\n\n //#endregion Button\n //#region Select\n public static get selectDefaultBg() {\n return this.inputBg;\n }\n public static selectPlaceholderColor = '#adadad';\n public static get selectBorderWidth() {\n return this.controlBorderWidth;\n }\n public static get selectPlaceholderColorDisabled() {\n return this.textColorDisabled;\n }\n public static get selectOutlineWidth() {\n return this.controlOutlineWidth;\n }\n public static get selectLineHeightSmall() {\n return this.controlLineHeightSmall;\n }\n public static get selectFontSizeSmall() {\n return this.fontSizeSmall;\n }\n public static selectPaddingXSmall = '7px';\n public static get selectPaddingYSmall() {\n return this.controlPaddingYSmall;\n }\n public static get selectBorderRadiusSmall() {\n return this.inputBorderRadiusSmall;\n }\n public static get selectBorderRadiusMedium() {\n return this.inputBorderRadiusMedium;\n }\n public static get selectBorderRadiusLarge() {\n return this.inputBorderRadiusLarge;\n }\n public static get selectIconGapSmall() {\n return this.inputIconGapSmall;\n }\n public static get selectIconGapMedium() {\n return this.inputIconGapMedium;\n }\n public static get selectIconGapLarge() {\n return this.inputIconGapLarge;\n }\n\n public static get selectLineHeightMedium() {\n return this.controlLineHeightMedium;\n }\n public static get selectFontSizeMedium() {\n return this.fontSizeMedium;\n }\n public static selectPaddingXMedium = '11px';\n public static get selectPaddingYMedium() {\n return this.controlPaddingYMedium;\n }\n public static get selectLineHeightLarge() {\n return this.controlLineHeightLarge;\n }\n public static get selectFontSizeLarge() {\n return this.fontSizeLarge;\n }\n public static selectPaddingXLarge = '15px';\n public static get selectPaddingYLarge() {\n return this.controlPaddingYLarge;\n }\n public static get selectMenuArrowColor() {\n return this.btnMenuArrowColor;\n }\n public static get selectMenuArrowColorDisabled() {\n return this.textColorDisabled;\n }\n public static get selectIconSizeSmall() {\n return this.btnIconSizeSmall;\n }\n public static get selectIconSizeMedium() {\n return this.btnIconSizeMedium;\n }\n public static get selectIconSizeLarge() {\n return this.btnIconSizeLarge;\n }\n public static selectRootWidthMobile = 'auto';\n public static mobileSelectMaxWidth = '100%';\n public static get selectTextColorDisabled() {\n return this.btnDisabledTextColor;\n }\n public static get selectBgDisabled() {\n return this.inputDisabledBg;\n }\n public static get selectBorderColorDisabled() {\n return this.btnDisabledBorderColor;\n }\n public static get selectMenuOffsetY() {\n return this.menuOffsetY;\n }\n public static get selectBorderColorHover() {\n return this.btnDefaultHoverBorderColor;\n }\n public static selectBorderColorTransition = `box-shadow ${this.transitionDuration} ${this.transitionTimingFunction};`;\n\n //#endregion Select\n //#region Tooltip\n /** @deprecated Эта переменная устарела при появлении размеров у `Tooltip` и будет удалена в `6.0`.\n * @see {@link tooltipPaddingYSmall `tooltipPaddingYSmall`} */\n public static tooltipPaddingY = '16px';\n /** @deprecated Эта переменная устарела при появлении размеров у `Tooltip` и будет удалена в `6.0`.\n * @see {@link tooltipPaddingXSmall `tooltipPaddingXSmall`} */\n public static tooltipPaddingX = '16px';\n public static tooltipPaddingYSmall = '16px';\n public static tooltipPaddingXSmall = '16px';\n public static tooltipPaddingYMedium = '20px';\n public static tooltipPaddingXMedium = '20px';\n public static tooltipPaddingYLarge = '24px';\n public static tooltipPaddingXLarge = '24px';\n /** @deprecated Переменная устарела с появлением размеров у `Tooltip` и будет удалена в `6.0`.\n * @see {@link tooltipCloseBtnPaddingSmall `tooltipCloseBtnPaddingSmall`} */\n public static tooltipCloseBtnPadding = '4px';\n public static tooltipCloseBtnPaddingSmall = '4px';\n public static tooltipCloseBtnPaddingMedium = '6px';\n public static tooltipCloseBtnPaddingLarge = '8px';\n public static tooltipCloseBtnSide = '16px';\n public static tooltipCloseBtnColor = 'rgba(0, 0, 0, 0.32)';\n public static tooltipCloseBtnHoverColor = 'rgba(0, 0, 0, 0.5)';\n public static get tooltipTextColor() {\n return this.textColorDefault;\n }\n public static tooltipBg = '#fff';\n public static get tooltipBorder() {\n return this.popupBorder;\n }\n /** @deprecated Переменная устарела с появлением размеров у `Tooltip` и будет удалена в `6.0`.\n * @see {@link tooltipBorderRadiusSmall `tooltipBorderRadiusSmall`} */\n public static tooltipBorderRadius = '8px';\n public static tooltipBorderRadiusSmall = '8px';\n public static tooltipBorderRadiusMedium = '10px';\n public static tooltipBorderRadiusLarge = '12px';\n /** @deprecated Переменная устарела с появлением размеров у `Tooltip` и будет удалена в `6.0`.\n * @see {@link tooltipPinOffsetYSmall `tooltipPinOffsetYSmall`} */\n public static tooltipPinOffsetY = '18px';\n public static tooltipPinOffsetYSmall = '18px';\n public static tooltipPinOffsetYMedium = '21px';\n public static tooltipPinOffsetYLarge = '24px';\n /** @deprecated Переменная устарела с появлением размеров у `Tooltip` и будет удалена в `6.0`.\n * @see {@link tooltipPinOffsetXSmall `tooltipPinOffsetXSmall` */\n public static tooltipPinOffsetX = '16px';\n public static tooltipPinOffsetXSmall = '16px';\n public static tooltipPinOffsetXMedium = '20px';\n public static tooltipPinOffsetXLarge = '24px';\n /** @deprecated Переменная устарела с появлением размеров у `Tooltip` и будет удалена в `6.0`.\n * @see {@link tooltipMarginSmall `tooltipMarginSmall`} */\n public static tooltipMargin = '10px';\n public static tooltipMarginSmall = '10px';\n public static tooltipMarginMedium = '12px';\n public static tooltipMarginLarge = '14px';\n /** @deprecated Переменная устарела с появлением размеров у `Tooltip` и будет удалена в `6.0`.\n * @see {@link tooltipPinSizeSmall `tooltipPinSizeSmall`} */\n public static get tooltipPinSize() {\n return this.popupPinSize;\n }\n public static tooltipPinSizeSmall = '8px';\n public static tooltipPinSizeMedium = '10px';\n public static tooltipPinSizeLarge = '12px';\n /** @deprecated Переменная устарела с появлением размеров у `Tooltip` и будет удалена в `6.0`.\n * @see {@link tooltipFontSizeSmall `tooltipFontSizeSmall`} */\n public static get tooltipFontSize() {\n return this.fontSizeSmall;\n }\n public static get tooltipFontSizeSmall() {\n return this.fontSizeSmall;\n }\n public static get tooltipFontSizeMedium() {\n return this.fontSizeMedium;\n }\n public static get tooltipFontSizeLarge() {\n return this.fontSizeLarge;\n }\n /** @deprecated Переменная устарела с появлением размеров у `Tooltip` и будет удалена в `6.0`.\n * @see {@link tooltipLineHeightSmall `tooltipLineHeightSmall`} */\n public static get tooltipLineHeight() {\n return this.controlLineHeightSmall;\n }\n public static get tooltipLineHeightSmall() {\n return this.controlLineHeightSmall;\n }\n public static get tooltipLineHeightMedium() {\n return this.controlLineHeightMedium;\n }\n public static get tooltipLineHeightLarge() {\n return this.controlLineHeightLarge;\n }\n //#endregion Tooltip\n //#region TooltipMenu\n public static get tooltipMenuPinOffsetX() {\n return this.tooltipPinOffsetX;\n }\n public static get tooltipMenuPinOffsetY() {\n return this.tooltipPinOffsetY;\n }\n public static get tooltipMenuMargin() {\n return this.popupMargin;\n }\n public static get tooltipMenuPinSize() {\n return this.popupPinSize;\n }\n\n //#endregion\n //#region Kebab\n public static kebabMargin = '4px';\n public static kebabBackground = 'transparent';\n public static kebabBackgroundHover = 'rgba(0, 0, 0, 0.06)';\n public static kebabBackgroundActive = 'rgba(0, 0, 0, 0.10)';\n public static kebabBorderRadius = '50%';\n public static kebabBorder = '2px solid transparent';\n public static kebabSizeSmall = '24px';\n public static kebabSizeMedium = '32px';\n public static kebabSizeLarge = '40px';\n public static kebabIconSizeSmall = '16px';\n public static kebabIconSizeMedium = '20px';\n public static kebabIconSizeLarge = '24px';\n public static kebabIconColor = '#757575';\n\n //#endregion\n //#region Modal\n public static modalWindowShadow = '0px 16px 32px 0px rgba(0, 0, 0, 0.06)';\n public static modalBackBg = '#000';\n public static get modalBg() {\n return this.bgSecondary;\n }\n public static modalBackOpacity = '0.16';\n public static modalCloseButtonColor = 'rgba(0, 0, 0, 0.32)';\n public static modalCloseButtonDisabledColor = '#8b8b8b';\n public static modalCloseButtonHoverColor = 'rgba(0, 0, 0, 0.865)';\n public static modalCloseButtonPadding = '32px';\n public static modalCloseButtonBottomPadding = '20px';\n /** @deprecated use modalCloseButtonClickArea[Top/Bottom/Left/Right] instead */\n public static modalCloseButtonClickArea = '6px';\n public static modalCloseButtonClickAreaTop = '6px';\n public static modalCloseButtonClickAreaBottom = '6px';\n public static modalCloseButtonClickAreaLeft = '6px';\n public static modalCloseButtonClickAreaRight = '6px';\n public static modalCloseIconSize = '20px';\n public static modalBorderRadius = '16px';\n public static get modalFixedHeaderBg() {\n return this.bgSecondary;\n }\n public static get modalFixedHeaderShadow() {\n return this.fixedPanelShadow;\n }\n public static modalFixedHeaderBorder = 'none';\n public static modalFixedFooterBorder = 'none';\n public static get modalFixedFooterShadow() {\n return this.fixedPanelShadow;\n }\n public static modalFixedPanelShadow = 'none';\n public static get modalFooterBg() {\n return this.modalBg;\n }\n public static modalAdaptiveThreshold = '425px';\n public static modalPaddingTop = '24px';\n public static modalPaddingLeft = '32px';\n public static modalPaddingRight = '32px';\n public static modalHeaderFontSize = '24px';\n public static modalHeaderFontWeight = '700';\n public static get modalHeaderTextColor() {\n return this.textColorDefault;\n }\n public static modalHeaderLineHeight = '32px';\n public static modalHeaderPaddingBottom = '16px';\n public static modalHeaderPaddingTop = '24px';\n public static get modalHeaderAdditionalPaddingBottom() {\n return this.modalHeaderPaddingBottom;\n }\n public static modalFixedHeaderMarginBottom = '0px';\n public static get modalFixedHeaderPaddingBottom() {\n return this.modalHeaderPaddingBottom;\n }\n public static get modalFixedFooterPaddingTop() {\n return this.modalFooterPanelPaddingTop;\n }\n public static modalFixedFooterMarginTop = '0px';\n\n public static modalSeparatorBorderBottom = '1px solid #E6E6E6';\n public static modalSeparatorMargin = '0 32px';\n public static modalSeparatorFixedMargin = '0 16px';\n public static modalBodyTextColor = 'inherit';\n public static modalFooterTextColor = 'inherit';\n public static modalBodyPaddingTop = '0';\n public static modalBodyPaddingBottom = '20px';\n public static modalBodyBorderRadius = '0px';\n public static modalFooterPaddingTop = '0px';\n public static modalFooterPaddingBottom = '20px';\n public static modalPaddingBottom = '40px';\n public static modalFooterPanelPaddingTop = '20px';\n public static get modalFooterPanelPaddingBottom() {\n return this.modalFooterPaddingBottom;\n }\n public static mobileModalCloseButtonRightPadding = '16px';\n public static mobileModalCloseButtonTopPadding = '8px';\n public static mobileModalCloseButtonClickArea = '16px';\n public static mobileModalWithoutHeaderCloseButtonPadding = '10px';\n public static get mobileModalWithoutHeaderCloseButtonWidth() {\n return `${parseInt(this.modalCloseIconSize) + 2 * parseInt(this.mobileModalWithoutHeaderCloseButtonPadding)}px`;\n }\n public static mobileModalCloseIconSize = '20px';\n public static mobileModalHeaderFontSize = '24px';\n public static mobileModalHeaderLineHeight = '32px';\n public static mobileModalHeaderPadding = '16px';\n public static mobileModalBodyPadding = '0 16px 16px 16px';\n public static mobileModalBodyPaddingTop = '16px';\n public static mobileModalBodyPaddingBottom = '16px';\n public static mobileModalBodyFontSize = '16px';\n public static mobileModalFooterPadding = '16px';\n public static mobileModalPaddingBottom = '16px';\n public static mobileModalContainerHeight = '100%';\n public static mobileModalContainerMarginTop = '0';\n public static mobileModalContainerMarginRight = '0';\n public static mobileModalContainerMarginBottom = '0';\n public static mobileModalContainerMarginLeft = '0';\n //#endregion\n //#region SidePage\n public static get sidePageFooterPanelBg() {\n return this.sidePageBgDefault;\n }\n public static sidePageBackingBg = '#000';\n public static sidePageBackingBgOpacity = '0.16';\n public static sidePageCloseButtonColor = 'rgba(0, 0, 0, 0.374)';\n public static sidePageCloseButtonHoverColor = 'rgba(0, 0, 0, 0.5)';\n public static sidePageContainerShadow = '0 5px 10px rgba(0, 0, 0, 0.2)';\n public static mobileSidePagePaddingLeft = '16px';\n public static mobileSidePagePaddingRight = '16px';\n public static mobileSidePagePaddingTop = '16px';\n public static mobileSidePagePaddingBottom = '16px';\n public static mobileSidePageFooterPadding = '16px';\n public static sidePagePaddingLeft = '32px';\n public static sidePagePaddingRight = '36px';\n public static sidePagePaddingTop = '24px';\n public static sidePagePaddingBottom = '40px';\n public static sidePageFooterPaddingTop = '20px';\n public static sidePageFooterPaddingBottom = '20px';\n public static sidePageBgDefault = '#fff';\n public static get sidePageHeaderTextColor() {\n return this.textColorDefault;\n }\n public static sidePageBodyTextColor = 'inherit';\n public static sidePageFooterTextColor = 'inherit';\n public static sidePageHeaderFontSize = '24px';\n public static sidePageHeaderLineHeight = '32px';\n public static sidePageHeaderPaddingBottom = '16px';\n public static sidePageHeaderPaddingTop = '24px';\n public static sidePageHeaderFixedFontSize = '18px';\n public static sidePageHeaderFixedLineHeight = '28px';\n public static sidePageHeaderFixedPaddingY = '10px';\n public static sidePageHeaderStickyOffset = '9px';\n /** @deprecated use sidePageCloseButtonClickAreaLeft and sidePageCloseButtonClickAreaRight instead */\n public static sidePageCloseButtonPadding = '32px';\n public static mobileSidePageCloseButtonPadding = '16px';\n public static get sidePageFooterPanelPaddingTop() {\n return this.sidePageFooterPaddingTop;\n }\n public static get sidePageFooterPanelPaddingBottom() {\n return this.sidePageFooterPanelPaddingTop;\n }\n public static sidePageCloseIconSize = '20px';\n /** @deprecated use sidePageCloseButtonClickArea[Top/Bottom/Left/Right] instead */\n public static sidePageCloseButtonClickArea = '6px';\n public static sidePageCloseButtonClickAreaTop = '6px';\n public static sidePageCloseButtonClickAreaBottom = '6px';\n public static sidePageCloseButtonClickAreaLeft = '6px';\n public static sidePageCloseButtonClickAreaRight = '6px';\n public static get sidePageCloseButtonFixedClickAreaTop() {\n return this.sidePageCloseButtonFixedClickAreaBottom;\n }\n public static sidePageCloseButtonFixedClickAreaBottom = '14px';\n public static mobileSidePageCloseButtonClickArea = '16px';\n public static get sidePageFixedHeaderShadow() {\n return this.fixedPanelShadow;\n }\n public static get sidePageFixedFooterShadow() {\n return this.fixedPanelShadow;\n }\n public static sidePageFixedPanelShadow = 'none';\n public static mobileSidePageHeaderFontSize = '24px';\n public static mobileSidePageHeaderLineHeight = '32px';\n public static mobileSidePageHeaderPaddingBottom = '16px';\n public static mobileSidePageHeaderPaddingTop = '16px';\n /** @deprecated use mobileSidePageCloseButtonPadding instead */\n public static mobileSidePageCloseButtonRightPadding = '12px';\n public static sidePageHeaderFontWeight = 'bold';\n public static sidePageCloseButtonWrapperOffsetTop = '4px';\n public static sidePageCloseButtonWrapperFixedOffsetTop = '4px';\n //#endregion SidePage\n //#region DateInput\n public static get dateInputIconColor() {\n return this.textColorDefault;\n }\n public static dateInputMaskColor = '#b8b8b8';\n public static dateInputComponentSelectedBgColor = '';\n public static dateInputComponentSelectedTextColor = '';\n //#endregion DateInput\n //#region Calendar\n public static get calendarBottomSeparatorBorderColor() {\n return ColorFunctions.fade(this.calendarMonthTitleBorderBottomColor, 1);\n }\n public static get calendarBottomSeparatorBorderWidth() {\n return '1px';\n }\n public static get calendarBottomSeparatorBorder() {\n return `${this.calendarBottomSeparatorBorderWidth} solid ${this.calendarBottomSeparatorBorderColor}`;\n }\n public static get calendarBg() {\n return this.bgSecondary;\n }\n public static calendarBorderRadius = '8px';\n public static get calendarCellBg() {\n return this.bgSecondary;\n }\n public static calendarCellHoverColor = '';\n public static calendarCellActiveHoverColor = '';\n public static get calendarCellWeekendColor() {\n return this.errorText;\n }\n public static calendarCellTodayBorder = '1px solid';\n public static calendarCellBorderRadius = '9999px';\n public static calendarCellSelectedBgColor = '#E6E6E6';\n public static calendarCellSelectedFontColor = 'inherit';\n public static calendarCellHeight = '32px';\n public static get calendarCellWidth() {\n return this.calendarCellHeight;\n }\n public static calendarCellFontSize = '14px';\n public static get calendarCellLineHeight() {\n return `${parseInt(this.calendarCellHeight) - 2}px`;\n }\n public static get calendarMonthHeaderStickedBgColor() {\n return this.bgSecondary;\n }\n public static calendarMonthTitleBorderBottomColor = '#dfdede';\n public static calendarCellHoverBgColor = '#F0F0F0';\n public static calendarPaddingX = '18px';\n public static calendarMonthTitleLineHeight = '20px';\n public static calendarMonthTitlePaddingTop = '12px';\n public static calendarMonthTitlePaddingBottom = '8px';\n public static calendarMonthTitleMarginX = '6px';\n public static calendarMonthTitleMarginBottom = '6px';\n public static calendarWrapperHeight = ' 330px';\n public static calendarMonthMarginBottom = '6px';\n public static calendarMaxMonthsToAppendOnScroll = '5';\n public static calendarGridRowSpacing = '0px';\n //#endregion Calendar\n //#region DatePicker\n public static get datePickerOpenBtnColor() {\n return this.textColorDefault;\n }\n public static get datePickerMenuOffsetY() {\n return this.menuOffsetY;\n }\n public static pickerShadow = '0px 32px 32px -16px rgba(0, 0, 0, 0.08), 0px 0px 24px 0px rgba(0, 0, 0, 0.12)';\n\n public static mobileCalendarPaddingX = '16px';\n public static mobileCalendarCellWidth = '40px';\n public static mobileCalendarCellHeight = '40px';\n public static mobileCalendarCellBorderRadius = '20px';\n public static mobileCalendarCellFontSize = '16px';\n public static mobileCalendarGridRowSpacing = '8px';\n\n public static mobileCalendarWrapperHeight = '304px';\n //#endregion DatePicker\n\n //#region DateRangePicker\n public static rangeCalendarCellBg = '#f0f0f0';\n public static rangeCalendarCellEndBg = '#1e1e1e';\n public static rangeCalendarCellEndColor = 'white';\n public static rangeCalendarCellHoverBg = 'rgba(0, 0, 0, 0.1)';\n public static rangeCalendarWrapperHeight = '450px';\n\n public static mobileRangeCalendarCellHeight = '42px';\n public static mobileRangeCalendarCellWidth = '42px';\n public static mobileRangeCalendarGridRowSpacing = '0px';\n public static mobileRangeCalendarWrapperHeight = '400px';\n //#endregion\n\n //#region DateSelect\n public static get dateSelectMenuBg() {\n return this.bgSecondary;\n }\n public static dateSelectMenuItemBgActive = '#F0F0F0';\n public static get dateSelectMenuItemBgDisabled() {\n return this.bgSecondary;\n }\n public static dateSelectMenuItemFontActive = '';\n public static get dateSelectMenuItemFontSelected() {\n return this.textColorDefault;\n }\n public static get dateSelectMenuItemFontDisabled() {\n return this.textColorDisabled;\n }\n public static dateSelectLineHeight = '20px';\n public static dateSelectFontSize = '14px';\n public static dateSelectFontWeight = 'bold';\n public static dateSelectMenuItemBgSelected = '#ececec';\n public static get dateSelectTextColorDisabled() {\n return this.textColorDisabled;\n }\n public static get dateSelectTextColorDefault() {\n return this.textColorDefault;\n }\n public static get dateSelectLinkColor() {\n return this.linkColor;\n }\n public static get dateSelectPopupBoxShadow() {\n return this.popupBoxShadow;\n }\n public static dateSelectTextColorInvert = '';\n public static mobileDateSelectFontSize = '16px';\n public static mobileDateSelectLineHeight = '20px';\n //#endregion DateSelect\n //#region Paging\n /** @deprecated Это переменная старого размера `Paging` и будет удалена в `6.0`\n * @see {@link pagingFontSizeSmall `pagingFontSizeSmall`} */\n public static get pagingFontSize() {\n return this.fontSizeMedium;\n }\n public static get pagingFontSizeSmall() {\n return this.fontSizeSmall;\n }\n public static get pagingFontSizeMedium() {\n return this.fontSizeMedium;\n }\n public static get pagingFontSizeLarge() {\n return this.fontSizeLarge;\n }\n /** @deprecated Это переменная старого размера `Paging` и будет удалена в `6.0`\n * @see {@link pagingLineHeightSmall `pagingLineHeightSmall`} */\n public static pagingLineHeight = '22px';\n public static get pagingLineHeightSmall() {\n return this.controlLineHeightSmall;\n }\n public static get pagingLineHeightMedium() {\n return this.controlLineHeightMedium;\n }\n public static get pagingLineHeightLarge() {\n return this.controlLineHeightLarge;\n }\n public static pagingPageLinkBoxSizing = 'border-box';\n /** @deprecated Это переменная старого размера `Paging` и будет удалена в `6.0` */\n public static pagingPageLinkMinWidth = '0.75em';\n /** @deprecated Это переменная старого размера `Paging` и будет удалена в `6.0`\n * @see {@link pagingPageLinkPaddingYSmall `pagingPageLinkPaddingYSmall`} */\n public static pagingPageLinkPaddingY = '0.3125em';\n /** @deprecated Это переменная старого размера `Paging` и будет удалена в `6.0`\n * @see {@link pagingPageLinkPaddingXSmall `pagingPageLinkPaddingXSmall`} */\n public static pagingPageLinkPaddingX = '12px';\n public static pagingPageLinkPaddingYSmall = '6px';\n public static pagingPageLinkPaddingXSmall = '11.5px';\n public static pagingPageLinkPaddingYMedium = '9px';\n public static pagingPageLinkPaddingXMedium = '15px';\n public static pagingPageLinkPaddingYLarge = '12px';\n public static pagingPageLinkPaddingXLarge = '18.5px';\n /** @deprecated Это переменная старого размера `Paging` и будет удалена в `6.0` */\n public static pagingPageLinkMargin = '0px 1px';\n public static pagingPageLinkBorderRadius = '9999px';\n public static get pagingPageLinkColor() {\n return this.textColorDefault;\n }\n public static get pagingPageLinkActiveColor() {\n return this.textColorDefault;\n }\n public static pagingPageLinkActiveBg = 'rgba(0, 0, 0, 0.1)';\n public static pagingPageLinkDisabledActiveBg = 'rgba(0, 0, 0, 0.04)';\n public static pagingPageLinkHoverBg = 'rgba(0, 0, 0, 0.06)';\n /** @deprecated Это переменная старого размера `Paging` и будет удалена в `6.0` */\n public static pagingPageForwardLinkMarginTop = '';\n /** @deprecated Это переменная старого размера `Paging` и будет удалена в `6.0` */\n public static pagingPageForwardLinkMarginLeft = '0px';\n /** @deprecated Это переменная старого размера `Paging` и будет удалена в `6.0` */\n public static get pagingPageForwardLinkPaddingRight() {\n return this.pagingPageLinkPaddingX;\n }\n public static pagingForwardLinkPaddingSmall = '6px 8px 6px 12px';\n public static pagingForwardLinkPaddingMedium = '9px 12px 9px 16px';\n public static pagingForwardLinkPaddingLarge = '12px 16px 12px 20px';\n public static pagingForwardLinkPaddingMediumMobile = '10px';\n public static pagingForwardLinkPaddingLargeMobile = '12px';\n /** @deprecated Это переменная старого размера `Paging` и будет удалена в `6.0` */\n public static get pagingForwardIconSize() {\n return this.pagingFontSize;\n }\n public static get pagingForwardLinkColor() {\n return this.textColorDefault;\n }\n public static get pagingForwardLinkDisabledColor() {\n return this.linkDisabledColor;\n }\n /** @deprecated Это переменная старого размера `Paging` и будет удалена в `6.0`\n * @see {@link pagingDotsPaddingSmall `pagingDotsPaddingSmall`} */\n public static pagingDotsPadding = '0.375em 0.625em 0';\n public static pagingDotsPaddingSmall = '11px 8px 5px 8px';\n public static pagingDotsPaddingMedium = '14px 12px 10px 12px';\n public static pagingDotsPaddingLarge = '19px 16px 13px 16px';\n public static pagingDotsColor = '#ADADAD';\n public static get pagingDotsDisabledColor() {\n return this.textColorDisabled;\n }\n public static pagingPageLinkHintFontSize = '12px';\n public static pagingPageLinkHintLineHeight = '16px';\n public static pagingPageLinkHintMargin = '4px -20px 0px';\n public static get pagingPageLinkHintColor() {\n return this.placeholderColor;\n }\n //#endregion Paging\n //#region Hint\n public static get hintColor() {\n return this.textColorInvert;\n }\n public static get mobileHintColor() {\n return this.hintColor;\n }\n public static get hintFontSize() {\n return this.fontSizeSmall;\n }\n public static get hintLineHeight() {\n return this.controlLineHeightSmall;\n }\n public static hintMaxWidth = '200px';\n public static hintPaddingY = '4px';\n public static hintPaddingX = '8px';\n public static hintTextAlign = 'center';\n public static hintBgColor = 'rgba(0, 0, 0, 0.76)';\n public static hintBorder = 'none';\n public static hintBorderRadius = '6px';\n public static hintMargin = '8px';\n\n //#endregion Hint\n //#region Toast\n public static get toastFontSize() {\n return this.fontSizeSmall;\n }\n public static get toastLineHeight() {\n return this.controlLineHeightSmall;\n }\n public static toastPaddingY = '10px';\n public static toastPaddingX = '16px';\n public static toastBorderRadius = '8px';\n public static toastBorder = 'none';\n public static toastTop = '24px';\n public static toastBg = 'rgba(0, 0, 0, 0.76)';\n public static toastErrorBg = '#F63B3F';\n public static toastColor = 'white';\n public static toastColorError = '#fff';\n public static toastLinkColor = '#fff';\n public static toastLinkColorError = '#fff';\n public static toastLinkTextDecorationHover = '';\n public static toastLinkBgHover = 'rgba(255, 255, 255, 0.12)';\n public static toastLinkBgHoverError = 'rgba(255, 255, 255, 0.08)';\n public static toastLinkBgActive = 'rgba(0, 0, 0, 0.87)';\n public static toastLinkBgActiveError = 'rgba(255, 255, 255, 0.04)';\n public static toastLinkColorActiveError = 'rgba(255, 255, 255, 0.64)';\n public static toastLinkPadding = '12px';\n public static toastClosePadding = '16px';\n public static toastCloseColor = 'rgba(255, 255, 255, 0.6)';\n public static toastCloseColorError = 'rgba(255, 255, 255, 0.6)';\n public static toastCloseHoverColor = 'white';\n public static toastCloseHoverColorError = 'white';\n public static toastCloseSize = '16px';\n\n //#endregion Toast\n //#region Dropdown\n public static dropdownMenuBorderColorTransition = '';\n public static get dropdownMenuHoverBorderColor() {\n return this.btnDefaultHoverBorderColor;\n }\n public static get dropdownMenuOffsetY() {\n return this.menuOffsetY;\n }\n public static get dropdownMenuMenuOffsetY() {\n return this.menuOffsetY;\n }\n public static dropdownMenuMenuBoxSizing = 'content-box';\n public static dropdownButtonBorderRadiusSmall = '8px';\n public static dropdownButtonBorderRadiusMedium = '8px';\n public static dropdownButtonBorderRadiusLarge = '8px';\n\n public static get dropdownDefaultBg() {\n return this.btnDefaultBg;\n }\n public static get dropdownBorderWidth() {\n return this.btnBorderWidth;\n }\n public static get dropdownOutlineWidth() {\n return this.btnOutlineWidth;\n }\n public static get dropdownLineHeightSmall() {\n return this.btnLineHeightSmall;\n }\n public static get dropdownFontSizeSmall() {\n return this.btnFontSizeSmall;\n }\n public static get dropdownPaddingXSmall() {\n return this.btnPaddingXSmall;\n }\n public static get dropdownPaddingYSmall() {\n return this.btnPaddingYSmall;\n }\n public static get dropdownIconSizeSmall() {\n return this.btnIconSizeSmall;\n }\n public static get dropdownLineHeightMedium() {\n return this.btnLineHeightMedium;\n }\n public static get dropdownFontSizeMedium() {\n return this.btnFontSizeMedium;\n }\n public static get dropdownPaddingXMedium() {\n return this.btnPaddingXMedium;\n }\n public static get dropdownPaddingYMedium() {\n return this.btnPaddingYMedium;\n }\n public static get dropdownIconSizeMedium() {\n return this.btnIconSizeMedium;\n }\n public static get dropdownLineHeightLarge() {\n return this.btnLineHeightLarge;\n }\n public static get dropdownFontSizeLarge() {\n return this.btnFontSizeLarge;\n }\n public static get dropdownPaddingXLarge() {\n return this.btnPaddingXLarge;\n }\n public static get dropdownPaddingYLarge() {\n return this.btnPaddingYLarge;\n }\n public static get dropdownIconSizeLarge() {\n return this.btnIconSizeLarge;\n }\n public static get dropdownBgDisabled() {\n return this.btnDisabledBg;\n }\n public static get dropdownBorderColorDisabled() {\n return this.btnDisabledBorderColor;\n }\n public static get dropdownTextColorDisabled() {\n return this.btnDisabledTextColor;\n }\n //#endregion Dropdown\n //#region Menu\n public static get menuBgDefault() {\n return this.bgSecondary;\n }\n public static menuBorderRadius = '8px';\n public static menuBorder = 'none';\n public static menuShadow = '0px 32px 32px -16px rgba(0, 0, 0, 0.08), 0px 0px 24px 0px rgba(0, 0, 0, 0.12)';\n public static menuPaddingY = '0px';\n public static menuScrollContainerContentWrapperPaddingY = '4px';\n public static mobileMenuPaddingY = '0px';\n public static mobileMenuScrollContainerContentWrapperPaddingY = '0px';\n public static menuPaddingX = '4px';\n public static mobileMenuPaddingX = '8px';\n public static menuOffsetY = '4px';\n public static menuBoxSizing = 'border-box';\n // menuItem\n public static get menuItemTextColor() {\n return this.textColorDefault;\n }\n public static menuItemSelectedBg = '#E6E6E6';\n public static menuItemHoverBg = '#F0F0F0';\n\n public static menuItemIconWidthSmall = '16px';\n public static menuItemIconWidthMedium = '20px';\n public static menuItemIconWidthLarge = '24px';\n public static menuItemIconGap = '4px';\n\n public static get menuItemPaddingForIconSmall() {\n return `${\n parseInt(this.menuItemPaddingXSmall) + parseInt(this.menuItemIconWidthSmall) + parseInt(this.menuItemIconGap)\n }px`;\n }\n public static get menuItemPaddingForIconMedium() {\n return `${\n parseInt(this.menuItemPaddingXMedium) + parseInt(this.menuItemIconWidthMedium) + parseInt(this.menuItemIconGap)\n }px`;\n }\n public static get menuItemPaddingForIconLarge() {\n return `${\n parseInt(this.menuItemPaddingXLarge) + parseInt(this.menuItemIconWidthLarge) + parseInt(this.menuItemIconGap)\n }px`;\n }\n\n public static get menuItemLineHeightSmall() {\n return this.controlLineHeightSmall;\n }\n public static get menuItemLineHeightMedium() {\n return this.controlLineHeightMedium;\n }\n public static get menuItemLineHeightLarge() {\n return this.controlLineHeightLarge;\n }\n\n public static get menuItemFontSizeSmall() {\n return this.fontSizeSmall;\n }\n public static get menuItemFontSizeMedium() {\n return this.fontSizeMedium;\n }\n public static get menuItemFontSizeLarge() {\n return this.fontSizeLarge;\n }\n\n public static menuItemPaddingXSmall = '8px';\n public static menuItemPaddingYSmall = '6px';\n\n public static menuItemPaddingXMedium = '12px';\n public static menuItemPaddingYMedium = '9px';\n\n public static menuItemPaddingXLarge = '16px';\n public static menuItemPaddingYLarge = '12px';\n\n public static menuItemBorderRadius = '6px';\n public static get menuItemHoverColor() {\n return this.menuItemTextColor;\n }\n /**\n * @deprecated\n */\n public static get menuItemLinkColor() {\n return this.linkColor;\n }\n public static get menuItemCommentColor() {\n return this.menuItemTextColor;\n }\n public static menuItemCommentOpacity = '0.6';\n public static get menuItemCommentColorHover() {\n return this.menuItemTextColor;\n }\n public static menuItemDisplay = 'block';\n public static menuItemPaddingMobile = '12px 16px';\n public static get menuItemLineHeightMobile() {\n return this.lineHeightMobile;\n }\n public static get menuItemFontSizeMobile() {\n return this.fontSizeMobile;\n }\n public static get menuItemDisabledColor() {\n return this.textColorDisabled;\n }\n public static menuItemDisabledBg = 'transparent';\n // menuMessage\n public static get menuMessageTextColor() {\n return this.menuItemDisabledColor;\n }\n public static get menuMessageBg() {\n return this.menuItemDisabledBg;\n }\n public static get menuMessagePaddingY() {\n return this.menuItemPaddingYSmall;\n }\n public static get menuMessagePaddingX() {\n return this.menuItemPaddingXSmall;\n }\n public static get menuMessageDisplay() {\n return this.menuItemDisplay;\n }\n public static get menuMessagePaddingMobile() {\n return this.menuItemPaddingMobile;\n }\n\n public static get menuMessageLineHeightMobile() {\n return this.menuItemLineHeightMobile;\n }\n\n public static get menuMessageFontSizeMobile() {\n return this.menuItemFontSizeMobile;\n }\n public static get menuMessageFontSizeSmall() {\n return this.menuItemFontSizeSmall;\n }\n public static get menuMessageFontSizeMedium() {\n return this.menuItemFontSizeMedium;\n }\n public static get menuMessageFontSizeLarge() {\n return this.menuItemFontSizeLarge;\n }\n\n public static get menuMessageLineHeightSmall() {\n return this.menuItemLineHeightSmall;\n }\n public static get menuMessageLineHeightMedium() {\n return this.menuItemLineHeightMedium;\n }\n public static get menuMessageLineHeightLarge() {\n return this.menuItemLineHeightLarge;\n }\n public static menuItemGap = '1px';\n\n //menuHeader\n public static menuHeaderColor = '#757575';\n\n public static menuHeaderLineHeightSmall = '16px';\n public static menuHeaderLineHeightMedium = '20px';\n public static menuHeaderLineHeightLarge = '22px';\n\n public static menuHeaderFontSizeSmall = '12px';\n public static menuHeaderFontSizeMedium = '14px';\n public static menuHeaderFontSizeLarge = '16px';\n\n public static menuHeaderPaddingXSmall = '8px';\n public static menuHeaderPaddingTopSmall = '12px';\n public static menuHeaderPaddingBottomSmall = '4px';\n\n public static menuHeaderPaddingXMedium = '12px';\n public static menuHeaderPaddingTopMedium = '14px';\n public static menuHeaderPaddingBottomMedium = '6px';\n\n public static menuHeaderPaddingXLarge = '16px';\n public static menuHeaderPaddingTopLarge = '18px';\n public static menuHeaderPaddingBottomLarge = '8px';\n\n public static menuHeaderTotalCountPaddingTopSmall = '4px';\n public static menuHeaderTotalCountPaddingTopMedium = '6px';\n public static menuHeaderTotalCountPaddingTopLarge = '8px';\n\n public static menuHeaderTotalCountPaddingBottomSmall = '12px';\n public static menuHeaderTotalCountPaddingBottomMedium = '14px';\n public static menuHeaderTotalCountPaddingBottomLarge = '18px';\n\n //menuFooter\n public static get menuFooterColor() {\n return this.menuHeaderColor;\n }\n public static get menuFooterLineHeightSmall() {\n return this.menuHeaderLineHeightSmall;\n }\n public static get menuFooterLineHeightMedium() {\n return this.menuHeaderLineHeightMedium;\n }\n public static get menuFooterLineHeightLarge() {\n return this.menuHeaderLineHeightLarge;\n }\n\n public static get menuFooterFontSizeSmall() {\n return this.menuHeaderFontSizeSmall;\n }\n public static get menuFooterFontSizeMedium() {\n return this.menuHeaderFontSizeMedium;\n }\n public static get menuFooterFontSizeLarge() {\n return this.menuHeaderFontSizeLarge;\n }\n\n public static get menuFooterPaddingXSmall() {\n return this.menuHeaderPaddingXSmall;\n }\n public static get menuFooterPaddingXMedium() {\n return this.menuHeaderPaddingXMedium;\n }\n public static get menuFooterPaddingXLarge() {\n return this.menuHeaderPaddingXLarge;\n }\n\n public static get menuFooterPaddingTopSmall() {\n return this.menuHeaderPaddingBottomSmall;\n }\n public static get menuFooterPaddingTopMedium() {\n return this.menuHeaderPaddingBottomMedium;\n }\n public static get menuFooterPaddingTopLarge() {\n return this.menuHeaderPaddingBottomLarge;\n }\n\n public static get menuFooterPaddingBottomSmall() {\n return this.menuHeaderPaddingTopSmall;\n }\n public static get menuFooterPaddingBottomMedium() {\n return this.menuHeaderPaddingTopMedium;\n }\n public static get menuFooterPaddingBottomLarge() {\n return this.menuHeaderPaddingTopLarge;\n }\n\n //menuSeparator\n public static menuSeparatorBorderColor = '#ebebeb';\n public static menuSeparatorMarginY = '2px';\n public static menuSeparatorMarginX = '8px';\n public static menuSeparatorBorderWidth = '1px';\n // mobileMenuSeparator\n public static mobileMenuSeparatorMarginY = '4px';\n public static mobileMenuSeparatorMarginX = '24px';\n //#endregion Menu\n //#region Toggle\n public static get toggleLineHeightSmall() {\n return this.controlLineHeightSmall;\n }\n public static get toggleLineHeightMedium() {\n return this.controlLineHeightMedium;\n }\n public static get toggleLineHeightLarge() {\n return this.controlLineHeightLarge;\n }\n public static get toggleFontSizeSmall() {\n return this.fontSizeSmall;\n }\n public static get toggleFontSizeMedium() {\n return this.fontSizeMedium;\n }\n public static get toggleFontSizeLarge() {\n return this.fontSizeLarge;\n }\n public static get toggleTextColor() {\n return this.textColorDefault;\n }\n public static toggleHandleActiveWidthIncrement = '0px';\n public static get toggleHandleBorderRadiusSmall() {\n const height = parseInt(this.toggleHeightSmall, 10) || 0;\n const borderWidth = parseInt(this.toggleBorderWidth, 10) || 0;\n const handleSize = height - 2 * borderWidth;\n return `${handleSize / 2}px`;\n }\n public static get toggleHandleBorderRadiusMedium() {\n const height = parseInt(this.toggleHeightMedium, 10) || 0;\n const borderWidth = parseInt(this.toggleBorderWidth, 10) || 0;\n const handleSize = height - 2 * borderWidth;\n return `${handleSize / 2}px`;\n }\n public static get toggleHandleBorderRadiusLarge() {\n const height = parseInt(this.toggleHeightLarge, 10) || 0;\n const borderWidth = parseInt(this.toggleBorderWidth, 10) || 0;\n const handleSize = height - 2 * borderWidth;\n return `${handleSize / 2}px`;\n }\n\n public static toggleHeightSmall = '20px';\n public static toggleWidthSmall = '32px';\n\n public static toggleHeightMedium = '22px';\n public static toggleWidthMedium = '34px';\n\n public static toggleHeightLarge = '24px';\n public static toggleWidthLarge = '36px';\n\n public static get toggleBorderRadiusSmall() {\n return `calc(${this.toggleHeightSmall} * 0.5)`;\n }\n public static get toggleBorderRadiusMedium() {\n return `calc(${this.toggleHeightMedium} * 0.5)`;\n }\n public static get toggleBorderRadiusLarge() {\n return `calc(${this.toggleHeightLarge} * 0.5)`;\n }\n\n public static toggleBaseBg = '#fff';\n public static toggleBgHover = '#F0F0F0';\n\n public static get toggleBorderWidth() {\n return this.controlBorderWidth;\n }\n public static get toggleOutlineWidth() {\n const outlineWidth = parseInt(this.controlOutlineWidth, 10) || 0;\n const borderWidth = parseInt(this.toggleBorderWidth, 10) || 0;\n return `${outlineWidth + borderWidth}px`;\n }\n public static toggleBorderColor = 'rgba(0, 0, 0, 0.16)';\n public static get toggleBorderColorDisabled() {\n return this.toggleBorderColor;\n }\n\n public static toggleHandleSizeSmall = '14px';\n public static toggleHandleSizeMedium = '16px';\n public static toggleHandleSizeLarge = '18px';\n\n public static toggleHandleLeft = '3px';\n public static toggleHandleTop = '3px';\n\n public static toggleBgFocus = 'linear-gradient(-180deg, #f1f1f1, #dedede)';\n public static get toggleShadowColorError() {\n return this.errorMain;\n }\n public static get toggleShadowColorWarning() {\n return this.warningMain;\n }\n public static get toggleFocusShadowColor() {\n return this.borderColorFocus;\n }\n public static toggleCaptionGap = '8px';\n public static toggleButtonOffsetY = '0px';\n\n public static get toggleOutlineColorFocus() {\n return this.outlineColorFocus;\n }\n\n public static toggleContainerBg = '#FFFFFF';\n public static toggleHandleBg = '#FFFFFF';\n public static toggleHandleBoxShadow = '0 0 0 1px rgba(0, 0, 0, 0.16)';\n public static toggleContainerBoxShadow = 'inset 0 0 0 1px rgba(0, 0, 0, 0.16)';\n\n // idle :hover\n public static toggleContainerBoxShadowHover = 'inset 0 0 0 1px rgba(0, 0, 0, 0.16)';\n public static toggleHandleBgHover = '#FFFFFF';\n public static toggleHandleBoxShadowHover = '0 0 0 1px rgba(0, 0, 0, 0.16)';\n public static get toggleContainerBgHover() {\n return this.toggleBgHover;\n }\n\n // checked\n public static toggleContainerBoxShadowChecked = 'none';\n public static toggleHandleBoxShadowChecked = 'none';\n public static toggleHandleBgChecked = '#FFFFFF';\n public static toggleBgChecked = '#3D3D3D';\n public static get toggleContainerBgChecked() {\n return this.toggleBgChecked;\n }\n public static toggleCheckedBg = '#fff';\n public static toggleCheckedBgHover = '#fff';\n\n // checked :hover\n public static toggleContainerBoxShadowCheckedHover = 'none';\n public static toggleContainerBgCheckedHover = '#292929';\n public static toggleHandleBoxShadowCheckedHover = 'none';\n public static toggleHandleBgCheckedHover = '#F0F0F0';\n\n // disabled\n public static toggleContainerBgDisabled = '#F0F0F0';\n public static toggleHandleBgDisabled = 'transparent';\n public static toggleContainerBoxShadowDisabled = 'inset 0 0 0 1px rgba(0, 0, 0, 0.1)';\n public static toggleHandleBoxShadowDisabled = '0 0 0 1px rgba(0, 0, 0, 0.1)';\n public static toggleDisabledHandleBg = '#fff';\n public static get toggleBgDisabled() {\n return this.bgDisabled;\n }\n\n // disabled checked\n public static toggleContainerBgDisabledChecked = '#D6D6D6';\n public static toggleHandleBgDisabledChecked = '#F0F0F0';\n public static toggleContainerBoxShadowDisabledChecked = 'none';\n public static toggleHandleBoxShadowDisabledChecked = 'none';\n public static get toggleBorderColorDisabledChecked() {\n return this.toggleBorderColor;\n }\n public static toggleBgDisabledChecked = '#dadada';\n\n //#endregion Toggle\n //#region Popup\n public static popupBorder = 'none';\n public static popupBorderRadius = '8px';\n public static popupBorderColor = 'transparent';\n public static popupDropShadow =\n 'drop-shadow(0px 32px 32px rgba(0, 0, 0, 0.08)) drop-shadow(0px 0px 24px rgba(0, 0, 0, 0.12))';\n public static popupBoxShadow = '0px 32px 32px -16px rgba(0, 0, 0, 0.08), 0px 0px 24px 0px rgba(0, 0, 0, 0.12)';\n public static get popupTextColor() {\n return this.textColorDefault;\n }\n public static get popupBackground() {\n return this.bgSecondary;\n }\n public static popupPinOffsetX = '16px';\n public static popupPinOffsetY = '16px';\n public static popupMargin = '10px';\n public static popupPinSize = '8px';\n public static popupMenuMenuOffsetY = '0px';\n //#endregion\n //#region Input\n public static get inputTextColor() {\n return this.textColorDefault;\n }\n public static inputShadow = 'none';\n public static inputBg = 'white';\n public static inputIconColor = '#858585';\n public static get inputIconColorDisabled() {\n return this.textColorDisabled;\n }\n public static get inputFocusedIconColor() {\n return this.inputIconColor;\n }\n public static inputColor = 'inherit';\n public static inputWidth = '200px';\n public static get inputTextColorDisabled() {\n return this.textColorDisabled;\n }\n public static get inputPlaceholderColorDisabled() {\n return this.textColorDisabled;\n }\n public static get inputFontSizeSmall() {\n return this.fontSizeSmall;\n }\n public static get inputFontSizeMedium() {\n return this.fontSizeMedium;\n }\n public static get inputFontSizeLarge() {\n return this.fontSizeLarge;\n }\n public static get inputLineHeightSmall() {\n return this.controlLineHeightSmall;\n }\n public static get inputLineHeightMedium() {\n return this.controlLineHeightMedium;\n }\n public static get inputLineHeightLarge() {\n return this.controlLineHeightLarge;\n }\n public static get inputHeightSmall() {\n const borderWidth = parseInt(this.inputBorderWidth, 10) || 0;\n const padding = parseInt(this.inputPaddingYSmall, 10) || 0;\n const lineHeigh = parseInt(this.inputLineHeightSmall, 10) || 0;\n return `${2 * borderWidth + 2 * padding + lineHeigh}px`;\n }\n public static get inputHeightMedium() {\n const borderWidth = parseInt(this.inputBorderWidth, 10) || 0;\n const padding = parseInt(this.inputPaddingYMedium, 10) || 0;\n const lineHeigh = parseInt(this.inputLineHeightMedium, 10) || 0;\n return `${2 * borderWidth + 2 * padding + lineHeigh}px`;\n }\n public static get inputHeightLarge() {\n const borderWidth = parseInt(this.inputBorderWidth, 10) || 0;\n const padding = parseInt(this.inputPaddingYLarge, 10) || 0;\n const lineHeigh = parseInt(this.inputLineHeightLarge, 10) || 0;\n return `${2 * borderWidth + 2 * padding + lineHeigh}px`;\n }\n public static get inputPaddingYSmall() {\n return this.controlPaddingYSmall;\n }\n public static get inputPaddingYMedium() {\n return this.controlPaddingYMedium;\n }\n public static get inputPaddingYLarge() {\n return this.controlPaddingYLarge;\n }\n public static inputPaddingXSmall = '7px';\n public static inputPaddingXMedium = '11px';\n public static inputPaddingXLarge = '15px';\n\n public static inputIconGapSmall = '4px';\n public static inputIconGapMedium = '6px';\n public static inputIconGapLarge = '8px';\n\n public static inputIconSizeSmall = '16px';\n public static inputIconSizeMedium = '20px';\n public static inputIconSizeLarge = '24px';\n\n public static get inputFocusShadow() {\n return `0 0 0 ${this.inputOutlineWidth} ${this.borderColorFocus}`;\n }\n public static get inputFocusedBg() {\n return this.inputBg;\n }\n public static get inputDisabledBg() {\n return this.bgDisabled;\n }\n public static get inputDisabledBorderColor() {\n return this.borderColorDisabled;\n }\n public static get inputFocusOutline() {\n return this.borderColorFocus;\n }\n public static get inputBorderWidth() {\n return this.controlBorderWidth;\n }\n public static get inputOutlineWidth() {\n return `calc(${this.controlOutlineWidth} - 1px)`;\n }\n public static inputBackgroundClip = 'padding-box';\n public static inputBorderRadiusSmall = '2px';\n public static inputBorderRadiusMedium = '2px';\n public static inputBorderRadiusLarge = '2px';\n public static inputDisabledBackgroundClip = 'padding-box';\n public static inputBorderColor = 'rgba(0, 0, 0, 0.16)';\n\n public static inputBorderColorHover = 'rgba(0, 0, 0, 0.32)';\n public static get inputBorderColorFocus() {\n return this.borderColorFocus;\n }\n public static get inputBorderColorError() {\n return this.borderColorError;\n }\n public static get inputBorderColorWarning() {\n return this.borderColorWarning;\n }\n public static get inputBorderTopColor() {\n return this.inputBorderColor;\n }\n public static get inputPlaceholderColor() {\n return this.placeholderColor;\n }\n\n public static get inputPlaceholderColorLight() {\n return this.placeholderColorLight;\n }\n public static inputBlinkColor = 'rgba(61, 61, 61, 0.2)';\n public static inputColorScheme = 'light';\n\n //#endregion Input\n //#region Checkbox\n public static get checkboxFontSizeSmall() {\n return this.fontSizeSmall;\n }\n public static get checkboxFontSizeMedium() {\n return this.fontSizeMedium;\n }\n public static get checkboxFontSizeLarge() {\n return this.fontSizeLarge;\n }\n\n public static get checkboxLineHeightSmall() {\n return this.controlLineHeightSmall;\n }\n public static get checkboxLineHeightMedium() {\n return this.controlLineHeightMedium;\n }\n public static get checkboxLineHeightLarge() {\n return this.controlLineHeightLarge;\n }\n\n public static checkboxBoxSizeSmall = '16px';\n public static checkboxBoxSizeMedium = '20px';\n public static checkboxBoxSizeLarge = '24px';\n public static checkboxCaptionGap = '8px';\n\n public static get checkboxPaddingYSmall() {\n const controlHeight = parseInt(this.controlHeightSmall, 10) || 0;\n const lineHeight = parseInt(this.checkboxLineHeightSmall, 10) || 0;\n return `${(controlHeight - lineHeight) / 2}px`;\n }\n\n public static get checkboxPaddingYMedium() {\n const controlHeight = parseInt(this.controlHeightMedium, 10) || 0;\n const lineHeight = parseInt(this.checkboxLineHeightMedium, 10) || 0;\n return `${(controlHeight - lineHeight) / 2}px`;\n }\n public static get checkboxPaddingYLarge() {\n const controlHeight = parseInt(this.controlHeightLarge, 10) || 0;\n const lineHeight = parseInt(this.checkboxLineHeightLarge, 10) || 0;\n return `${(controlHeight - lineHeight) / 2}px`;\n }\n public static checkboxBoxOffsetY = '1px';\n public static checkboxBgStart = '#fdfdfd';\n public static checkboxBgEnd = '#ededed';\n public static get checkboxTextColorDefault() {\n return this.textColorDefault;\n }\n public static get checkboxTextColorDisabled() {\n return this.textColorDisabled;\n }\n public static get checkboxShadowDisabled() {\n return `0 0 0 ${this.checkboxBorderWidth} rgba(0, 0, 0, 0.1)`;\n }\n public static checkboxBorder = 'none';\n public static get checkboxBorderWidth() {\n return this.controlBorderWidth;\n }\n public static get checkboxShadow() {\n return `0 0 0 ${this.checkboxBorderWidth} rgba(0, 0, 0, 0.15)`;\n }\n public static get checkboxShadowHover() {\n return `0 0 0 ${this.checkboxBorderWidth} #c3c3c3`;\n }\n public static checkboxCheckedColor = '#fff';\n public static get checkboxOutlineColorFocus() {\n return this.outlineColorFocus;\n }\n public static get checkboxBorderColorWarning() {\n return this.borderColorWarning;\n }\n public static get checkboxBorderColorError() {\n return this.borderColorError;\n }\n public static get checkboxCheckedHoverShadow() {\n return `0 0 0 ${this.checkboxBorderWidth} ${this.checkboxCheckedHoverBg}`;\n }\n public static checkboxBorderRadius = '4px';\n public static get checkboxOutlineWidth() {\n return this.controlOutlineWidth;\n }\n public static get checkboxCheckedShadow() {\n return `0 0 0 ${this.checkboxBorderWidth} ${this.checkboxCheckedBg}`;\n }\n public static get checkboxCheckedActiveShadow() {\n return `0 0 0 ${this.checkboxBorderWidth} ${this.checkboxCheckedActiveBg}`;\n }\n public static get checkboxBorderColorFocus() {\n return this.borderColorFocus;\n }\n public static checkboxBg = '#fff';\n public static get checkboxHoverBg() {\n return this.btnDefaultHoverBg;\n }\n public static get checkboxActiveBg() {\n return this.btnDefaultActiveBg;\n }\n public static get checkboxCheckedBg() {\n return this.bgChecked;\n }\n public static get checkboxBgDisabled() {\n return this.bgDisabled;\n }\n public static checkboxCheckedHoverBg = '#292929';\n public static get checkboxCheckedActiveBg() {\n return ColorFunctions.darken(this.checkboxCheckedBg, '15%');\n }\n public static get checkboxShadowActive() {\n return `0 0 0 ${this.checkboxBorderWidth} #c3c3c3`;\n }\n //#endregion Checkbox\n //#region TextArea\n public static textareaBg = '#fff';\n public static get textareaColor() {\n return this.textColorDefault;\n }\n public static get textareaTextColorDisabled() {\n return this.textColorDisabled;\n }\n public static get textareaPlaceholderColorLight() {\n return this.placeholderColorLight;\n }\n public static get textareaPlaceholderColor() {\n return this.placeholderColor;\n }\n public static get textareaPlaceholderColorDisabled() {\n return this.textColorDisabled;\n }\n public static textareaShadow = 'none';\n public static textareaBackgroundClip = 'padding-box';\n\n public static get textareaFontSizeSmall() {\n return this.fontSizeSmall;\n }\n public static get textareaFontSizeMedium() {\n return this.fontSizeMedium;\n }\n public static get textareaFontSizeLarge() {\n return this.fontSizeLarge;\n }\n\n public static get textareaLineHeightSmall() {\n return this.controlLineHeightSmall;\n }\n public static get textareaLineHeightMedium() {\n return this.controlLineHeightMedium;\n }\n public static get textareaLineHeightLarge() {\n return this.controlLineHeightLarge;\n }\n public static textareaBorderRadius = '2px';\n public static get textareaBorderWidth() {\n return this.controlBorderWidth;\n }\n public static get textareaOutlineWidth() {\n const outlineWidth = parseInt(this.controlOutlineWidth, 10) || 0;\n const borderWidth = parseInt(this.textareaBorderWidth, 10) || 0;\n return `${outlineWidth - borderWidth}px`;\n }\n\n public static get textareaMinHeightSmall() {\n const lineHeight = parseInt(this.textareaLineHeightSmall, 10) || 0;\n const paddingY = parseInt(this.textareaPaddingYSmall, 10) || 0;\n const borderWidth = parseInt(this.textareaBorderWidth, 10) || 0;\n return `${lineHeight + paddingY * 2 + borderWidth * 2}px`;\n }\n\n public static get textareaMinHeightMedium() {\n const lineHeight = parseInt(this.textareaLineHeightMedium, 10) || 0;\n const paddingY = parseInt(this.textareaPaddingYMedium, 10) || 0;\n const borderWidth = parseInt(this.textareaBorderWidth, 10) || 0;\n return `${lineHeight + paddingY * 2 + borderWidth * 2}px`;\n }\n public static get textareaMinHeightLarge() {\n const lineHeight = parseInt(this.textareaLineHeightLarge, 10) || 0;\n const paddingY = parseInt(this.textareaPaddingYLarge, 10) || 0;\n const borderWidth = parseInt(this.textareaBorderWidth, 10) || 0;\n return `${lineHeight + paddingY * 2 + borderWidth * 2}px`;\n }\n\n public static textareaWidth = '250px';\n public static textareaPaddingXSmall = '7px';\n\n public static textareaPaddingXMedium = '11px';\n public static textareaPaddingXLarge = '15px';\n\n public static get textareaPaddingYSmall() {\n return this.controlPaddingYSmall;\n }\n\n public static get textareaPaddingYMedium() {\n return this.controlPaddingYMedium;\n }\n public static get textareaPaddingYLarge() {\n return this.controlPaddingYLarge;\n }\n\n public static get textareaBorderColor() {\n return this.borderColorGrayLight;\n }\n public static textareaBorderTopColor = 'rgba(0, 0, 0, 0.16)';\n public static get textareaBorderColorFocus() {\n return this.borderColorFocus;\n }\n public static get textareaBorderColorHover() {\n return this.inputBorderColorHover;\n }\n public static get textareaBorderColorWarning() {\n return this.borderColorWarning;\n }\n public static get textareaBorderColorError() {\n return this.borderColorError;\n }\n\n public static get textareaDisabledBg() {\n return this.inputDisabledBg;\n }\n public static get textareaDisabledBorderColor() {\n return this.borderColorDisabled;\n }\n public static get textareaCounterColor() {\n return this.gray;\n }\n public static get textareaCounterBg() {\n return ColorFunctions.fade(this.textareaBg, 0.9);\n }\n public static get textareaCounterErrorColor() {\n return this.errorText;\n }\n public static get textareaCounterHelpIconColor() {\n return this.linkColor;\n }\n public static textareaMargin = '';\n public static textareaVerticalAlign = 'middle';\n\n //#endregion Textarea\n //#region Radio\n public static radioBulletSizeSmall = '6px';\n public static radioBulletSizeMedium = '10px';\n public static radioBulletSizeLarge = '12px';\n public static get radioOutlineWidth() {\n return this.controlOutlineWidth;\n }\n public static get radioTextColor() {\n return this.textColorDefault;\n }\n\n public static radioSizeSmall = '16px';\n public static radioSizeMedium = '20px';\n public static radioSizeLarge = '24px';\n\n public static get radioFontSizeSmall() {\n return this.fontSizeSmall;\n }\n public static get radioFontSizeMedium() {\n return this.fontSizeMedium;\n }\n public static get radioFontSizeLarge() {\n return this.fontSizeLarge;\n }\n\n public static get radioLineHeightSmall() {\n return this.controlLineHeightSmall;\n }\n public static get radioLineHeightMedium() {\n return this.controlLineHeightMedium;\n }\n public static get radioLineHeightLarge() {\n return this.controlLineHeightLarge;\n }\n\n public static radioCaptionGap = '8px';\n\n public static get radioPaddingYSmall() {\n const controlHeight = parseInt(this.controlHeightSmall, 10) || 0;\n const lineHeight = parseInt(this.radioLineHeightSmall, 10) || 0;\n return `${(controlHeight - lineHeight) / 2}px`;\n }\n public static get radioPaddingYMedium() {\n const controlHeight = parseInt(this.controlHeightMedium, 10) || 0;\n const lineHeight = parseInt(this.radioLineHeightMedium, 10) || 0;\n return `${(controlHeight - lineHeight) / 2}px`;\n }\n public static get radioPaddingYLarge() {\n const controlHeight = parseInt(this.controlHeightLarge, 10) || 0;\n const lineHeight = parseInt(this.radioLineHeightLarge, 10) || 0;\n return `${(controlHeight - lineHeight) / 2}px`;\n }\n\n public static radioVerticalAlign = 'top';\n public static radioBgImage = 'none';\n public static radioBgColor = '#fff';\n public static get radioHoverBg() {\n return this.checkboxHoverBg;\n }\n public static get radioActiveBg() {\n return this.checkboxActiveBg;\n }\n public static get radioBorderWidth() {\n return this.controlBorderWidth;\n }\n public static get radioBorderColor() {\n return this.borderColorGrayLight;\n }\n public static radioBoxShadow = 'none';\n public static get radioBorder() {\n return `${this.radioBorderWidth} solid ${this.radioBorderColor}`;\n }\n public static get radioBorderColorFocus() {\n return this.borderColorFocus;\n }\n public static get radioBorderColorWarning() {\n return this.borderColorWarning;\n }\n public static get radioBorderColorError() {\n return this.borderColorError;\n }\n public static radioHoverShadow = 'none';\n public static radioActiveShadow = 'none';\n public static get radioFocusShadow() {\n return `inset 0 0 0 1px ${this.outlineColorFocus}`;\n }\n public static get radioCheckedBgColor() {\n return this.checkboxCheckedBg;\n }\n public static radioCheckedBorderColor = 'transparent';\n public static radioCheckedBulletColor = '#fff';\n public static get radioCheckedHoverBgColor() {\n return ColorFunctions.darken(this.checkboxCheckedBg, '5%');\n }\n public static radioDisabledBg = '#F0F0F0';\n public static get radioDisabledShadow() {\n return `0 0 0 ${this.radioBorderWidth} rgba(0, 0, 0, 0.1)`;\n }\n public static radioCaptionDisplay = 'inline-flex';\n public static radioBorderWidthCompensation = '0px';\n public static radioCircleOffsetY = '1px';\n public static get radioCheckedDisabledBulletBg() {\n return this.gray;\n }\n //#endregion\n //#region Tabs\n public static get tabFontSizeSmall() {\n return this.fontSizeSmall;\n }\n public static get tabFontSizeMedium() {\n return this.fontSizeMedium;\n }\n public static get tabFontSizeLarge() {\n return this.fontSizeLarge;\n }\n public static get tabLineHeightSmall() {\n return this.controlLineHeightSmall;\n }\n public static get tabLineHeightMedium() {\n return this.controlLineHeightMedium;\n }\n public static get tabLineHeightLarge() {\n return this.controlLineHeightLarge;\n }\n\n public static tabPaddingXSmall = '8px';\n public static tabPaddingXMedium = '10px';\n public static tabPaddingXLarge = '12px';\n\n public static get tabPaddingYSmall() {\n const paddingY = parseInt(this.controlPaddingYSmall);\n const borderWidth = parseInt(this.controlBorderWidth);\n return `${paddingY + borderWidth}px`;\n }\n public static get tabPaddingYMedium() {\n const paddingY = parseInt(this.controlPaddingYMedium);\n const borderWidth = parseInt(this.controlBorderWidth);\n return `${paddingY + borderWidth}px`;\n }\n public static get tabPaddingYLarge() {\n const paddingY = parseInt(this.controlPaddingYLarge);\n const borderWidth = parseInt(this.controlBorderWidth);\n return `${paddingY + borderWidth}px`;\n }\n public static tabBorderWidth = '2px';\n public static get tabOutlineWidth() {\n return this.controlOutlineWidth;\n }\n public static get tabTextColorDefault() {\n return this.textColorDefault;\n }\n public static get tabColorFocus() {\n return this.borderColorFocus;\n }\n public static get tabColorError() {\n return this.btnDangerBg;\n }\n public static get tabColorWarning() {\n return this.btnPayBg;\n }\n public static get tabColorSuccess() {\n return this.btnSuccessBg;\n }\n public static get tabColorPrimary() {\n return this.btnPrimaryBg;\n }\n public static tabColorHover = '#D6D6D6';\n public static get tabColorHoverError() {\n return ColorFunctions.lighten(this.tabColorError, '25%');\n }\n public static get tabColorHoverWarning() {\n return ColorFunctions.lighten(this.tabColorWarning, '25%');\n }\n public static get tabColorHoverSuccess() {\n return ColorFunctions.lighten(this.tabColorSuccess, '25%');\n }\n public static get tabColorHoverPrimary() {\n return ColorFunctions.lighten(this.tabColorPrimary, '25%');\n }\n public static tabIndicatorBorderRadius = '2px';\n //#endregion Tabs\n //#region Spinner\n public static get spinnerBgColor() {\n return this.grayXLight;\n }\n public static get spinnerColor() {\n return this.red;\n }\n public static get spinnerDimmedColor() {\n return this.gray;\n }\n public static get spinnerCaptionColor() {\n return this.gray;\n }\n public static get spinnerFontSizeSmall() {\n return this.fontSizeSmall;\n }\n public static get spinnerFontSizeMedium() {\n return this.fontSizeMedium;\n }\n public static get spinnerFontSizeLarge() {\n return this.fontSizeLarge;\n }\n public static get spinnerLineHeightSmall() {\n return this.controlLineHeightSmall;\n }\n public static get spinnerLineHeightMedium() {\n return this.controlLineHeightMedium;\n }\n public static get spinnerLineHeightLarge() {\n return this.controlLineHeightLarge;\n }\n public static spinnerCaptionGapSmall = '6px';\n public static spinnerCaptionGapMedium = '-4px';\n public static spinnerCaptionGapLarge = '-3px';\n public static spinnerCaptionMarginSmall = '0 0 0 6px';\n public static spinnerCaptionMarginMedium = '0 0 0 6px';\n public static spinnerCaptionMarginLarge = '0 0 0 6px';\n //#endregion\n //#region Switcher\n public static switcherBorderRadius = '8px';\n public static get switcherTextColor() {\n return this.textColorDefault;\n }\n public static get switcherOutlineWidth() {\n return this.btnOutlineWidth;\n }\n public static get switcherCaptionFontSizeSmall() {\n return this.btnFontSizeSmall;\n }\n public static get switcherCaptionFontSizeMedium() {\n return this.btnFontSizeMedium;\n }\n public static get switcherCaptionFontSizeLarge() {\n return this.btnFontSizeLarge;\n }\n public static get switcherCaptionLineHeightSmall() {\n return this.btnLineHeightSmall;\n }\n public static get switcherCaptionLineHeightMedium() {\n return this.btnLineHeightMedium;\n }\n public static get switcherCaptionLineHeightLarge() {\n return this.btnLineHeightLarge;\n }\n public static get switcherCaptionGapSmall() {\n return this.btnPaddingXSmall;\n }\n public static get switcherCaptionGapMedium() {\n return this.btnPaddingXMedium;\n }\n public static get switcherCaptionGapLarge() {\n return this.btnPaddingXLarge;\n }\n public static switcherButtonPaddingXSmall = '7px';\n public static switcherButtonPaddingXMedium = '11px';\n public static switcherButtonPaddingXLarge = '15px';\n public static get switcherButtonPaddingYSmall() {\n return this.btnPaddingYSmall;\n }\n public static get switcherButtonPaddingYMedium() {\n return this.btnPaddingYMedium;\n }\n public static get switcherButtonPaddingYLarge() {\n return this.btnPaddingYLarge;\n }\n public static get switcherButtonLineHeightSmall() {\n return this.btnLineHeightSmall;\n }\n public static get switcherButtonLineHeightMedium() {\n return this.btnLineHeightMedium;\n }\n public static get switcherButtonLineHeightLarge() {\n return this.btnLineHeightLarge;\n }\n public static get switcherButtonFontSizeSmall() {\n return this.btnFontSizeSmall;\n }\n public static get switcherButtonFontSizeMedium() {\n return this.btnFontSizeMedium;\n }\n public static get switcherButtonFontSizeLarge() {\n return this.btnFontSizeLarge;\n }\n public static get switcherButtonBorderRadiusSmall() {\n return this.btnBorderRadiusSmall;\n }\n public static get switcherButtonBorderRadiusMedium() {\n return this.btnBorderRadiusMedium;\n }\n public static get switcherButtonBorderRadiusLarge() {\n return this.btnBorderRadiusLarge;\n }\n public static get switcherButtonBorderWidth() {\n return this.btnBorderWidth;\n }\n public static switcherBtnDisabledBorderColor = 'rgba(0, 0, 0, 0.16)';\n public static get switcherButtonDisabledBorderColor() {\n return this.switcherBtnDisabledBorderColor;\n }\n public static get switcherButtonCheckedDisabledShadow() {\n return this.btnCheckedDisabledShadow;\n }\n //#endregion\n //#region MobilePopup\n public static mobilePopupTopPadding = '80px';\n public static mobilePopupContainerBottomPadding = '8px';\n public static mobilePopupHeaderPadding = '16px 16px 8px 16px';\n public static mobilePopupFooterPadding = '16px 16px 16px 16px';\n public static mobilePopupContainerBorderRadius = '16px';\n public static get mobilePopupHeaderFontSize() {\n return this.fontSizeMobile;\n }\n public static get mobilePopupHeaderLineHeight() {\n return this.lineHeightMobile;\n }\n public static mobilePopupHeaderFontWeight = '500';\n public static mobilePopupHeaderChildPadding = '12px';\n public static mobilePopupOuterIndentY = '24px';\n //#endregion\n //#region ScrollContainer\n public static scrollContainerScrollBarSize = '4px';\n public static scrollContainerScrollBarHoverSize = '10px';\n public static scrollContainerScrollBarColor = 'rgba(183, 183, 183, 0.7)';\n public static scrollContainerScrollBarInvertColor = 'rgba(255, 255, 255, 0.5)';\n public static scrollContainerScrollBarOffsetY = '4px';\n public static dropdownMenuScrollContainerScrollBarOffsetY = '0px';\n //#endregion\n //#region PasswordInput\n public static passwordInputVisibilityIconColor = '#000';\n public static passwordInputVisibilityIconOpacity = '0.6';\n public static passwordInputVisibilityIconHoverColor = '#000';\n public static passwordInputVisibilityIconHoverOpacity = '1';\n //#endregion\n //#region GlobalLoader\n public static get globalLoaderColor() {\n return this.blueLight;\n }\n public static globalLoaderHeight = '4px';\n public static globalLoaderWidth = '100%';\n public static globalLoaderPosition = 'fixed';\n public static globalLoaderTop = '0px';\n public static globalLoaderLeft = '0px';\n public static globalLoaderBottom = 'auto';\n public static globalLoaderRight = 'auto';\n public static globalLoaderBackgroundColor = 'transparent';\n public static globalLoaderTransitionToSpinnerDuration = '500'; //ms\n public static globalLoaderSpinnerAnimationDuration = '2000'; //ms\n public static globalLoaderSlowAnimationDuration = '20000'; //ms\n public static globalLoaderTransitionFromSpinnerDuration = '200'; //ms\n //#endregion\n //#region FileUploader\n public static fileUploaderWidth = '362px';\n public static fileUploaderBg = '';\n public static fileUploaderUploadButtonBg = '#fff';\n public static get fileUploaderPaddingXSmall() {\n return this.inputPaddingXSmall;\n }\n public static get fileUploaderPaddingXMedium() {\n return this.inputPaddingXMedium;\n }\n public static get fileUploaderPaddingXLarge() {\n return this.inputPaddingXLarge;\n }\n public static get fileUploaderFontSizeSmall() {\n return this.fontSizeSmall;\n }\n public static get fileUploaderFontSizeMedium() {\n return this.fontSizeMedium;\n }\n public static get fileUploaderFontSizeLarge() {\n return this.fontSizeLarge;\n }\n public static get fileUploaderLineHeightSmall() {\n return this.controlLineHeightSmall;\n }\n public static get fileUploaderLineHeightMedium() {\n return this.controlLineHeightMedium;\n }\n public static get fileUploaderLineHeightLarge() {\n return this.controlLineHeightLarge;\n }\n public static get fileUploaderPaddingYSmall() {\n return this.controlPaddingYSmall;\n }\n public static get fileUploaderPaddingYMedium() {\n return this.controlPaddingYMedium;\n }\n public static get fileUploaderPaddingYLarge() {\n return this.controlPaddingYLarge;\n }\n public static get fileUploaderTextColorDefault() {\n return this.textColorDefault;\n }\n public static fileUploaderBorderRadius = '8px';\n public static fileUploaderBorderColor = 'rgba(0, 0, 0, 0.37)';\n public static get fileUploaderBorderWidth() {\n return this.controlBorderWidth;\n }\n public static get fileUploaderDisabledBorder() {\n return `${this.fileUploaderBorderWidth} ${this.fileUploaderBorderStyle} ${this.fileUploaderDisabledBorderColor}`;\n }\n public static fileUploaderBorderStyle = 'dashed';\n public static get fileUploaderBorderColorFocus() {\n return this.borderColorFocus;\n }\n public static get fileUploaderLinkColor() {\n return this.textColorDefault;\n }\n public static fileUploaderAfterLinkColor = '#858585';\n public static fileUploaderIconSize = '14px';\n public static fileUploaderIconColor = '#222222';\n public static fileUploaderIconHoverColor = '#333';\n public static get fileUploaderBorderColorError() {\n return this.borderColorError;\n }\n public static get fileUploaderBorderColorWarning() {\n return this.borderColorWarning;\n }\n public static get fileUploaderDisabledBg() {\n return this.btnDisabledBg;\n }\n public static fileUploaderDisabledBgClip = 'padding-box';\n public static fileUploaderDisabledBorderColor = 'rgba(0, 0, 0, 0.16)';\n public static get fileUploaderDisabledTextColor() {\n return this.textColorDisabled;\n }\n public static get fileUploaderDisabledLinkColor() {\n return this.textColorDisabled;\n }\n public static get fileUploaderDisabledIconColor() {\n return this.textColorDisabled;\n }\n public static fileUploaderLinkHoverTextDecoration = 'none';\n public static fileUploaderHoveredBg = 'rgba(0, 0, 0, 0.06)';\n public static fileUploaderHoveredBorderColor = 'transparent';\n public static fileUploaderIconGapSmall = '4px';\n public static fileUploaderIconGapMedium = '6px';\n public static fileUploaderIconGapLarge = '8px';\n\n public static get fileUploaderDragOverBorderColor() {\n return this.borderColorFocus;\n }\n public static fileUploaderDragOverShadow =\n '0px 0px 0px 3px rgb(149, 149, 149), 0px 0px 0px 8px rgba(61, 61, 61, 0.2)';\n //#endregion FileUploader\n\n //#region ClearCrossIcon\n public static get clearCrossIconWidthSmall() {\n return this.inputHeightSmall;\n }\n public static get clearCrossIconWidthMedium() {\n return this.inputHeightMedium;\n }\n public static get clearCrossIconWidthLarge() {\n return this.inputHeightLarge;\n }\n public static get clearCrossIconHeightSmall() {\n return this.inputHeightSmall;\n }\n public static get clearCrossIconHeightMedium() {\n return this.inputHeightMedium;\n }\n public static get clearCrossIconHeightLarge() {\n return this.inputHeightLarge;\n }\n\n public static get clearCrossIconRightMarginSmall() {\n const inputPaddingXSmall = parseInt(this.inputPaddingXSmall);\n const inputBorderWidth = parseInt(this.inputBorderWidth);\n return `-${inputPaddingXSmall + inputBorderWidth}px`;\n }\n public static get clearCrossIconRightMarginMedium() {\n const inputPaddingXMedium = parseInt(this.inputPaddingXMedium);\n const inputBorderWidth = parseInt(this.inputBorderWidth);\n return `-${inputPaddingXMedium + inputBorderWidth}px`;\n }\n public static get clearCrossIconRightMarginLarge() {\n const inputPaddingXLarge = parseInt(this.inputPaddingXLarge);\n const inputBorderWidth = parseInt(this.inputBorderWidth);\n return `-${inputPaddingXLarge + inputBorderWidth}px`;\n }\n\n public static get clearCrossIconBorderRadiusSmall() {\n return this.inputBorderRadiusSmall;\n }\n public static get clearCrossIconBorderRadiusMedium() {\n return this.inputBorderRadiusMedium;\n }\n public static get clearCrossIconBorderRadiusLarge() {\n return this.inputBorderRadiusLarge;\n }\n\n public static clearCrossIconColor = 'rgba(0, 0, 0, 0.54)';\n public static clearCrossIconHoverColor = 'rgba(0, 0, 0, 0.87)';\n\n public static clearCrossIconAlign = 'center';\n\n //#endregion ClearCrossIcon\n\n //#region CloseIcon\n public static closeBtnIconColor = 'rgba(0, 0, 0, 0.32)';\n public static closeBtnIconDisabledColor = '#8b8b8b';\n public static closeBtnIconHoverColor = 'rgba(0, 0, 0, 0.865)';\n public static closeBtnIconBorderRadius = '4px';\n public static get closeBtnIconFocusShadow() {\n return `inset 0 0 0 1px ${this.borderColorFocus}, inset 0 0 0 2px ${this.outlineColorFocus}`;\n }\n //#endregion CloseIcon\n\n //#region Autocomplete\n public static get autocompleteMenuOffsetY() {\n return this.menuOffsetY;\n }\n //#endregion Autocomplete\n\n //#region Combobox\n public static get comboboxMenuOffsetY() {\n return this.menuOffsetY;\n }\n //#endregion Combobox\n\n //#region MiniModal\n public static miniModalHeaderPaddingBottom = '0';\n public static miniModalBodyPaddingTop = '16px';\n public static miniModalBodyPaddingBottom = '0';\n public static miniModalDescriptionFontSize = 'inherit';\n public static miniModalDescriptionLineHeight = 'normal';\n public static miniModalHeaderPaddingTop = '32px';\n public static miniModalActionGap = '8px';\n public static miniModalCancelIndent = '8px';\n public static miniModalFooterPaddingTop = '24px';\n public static miniModalFooterPaddingBottom = '32px';\n public static miniModalTitleMarginTop = '16px';\n public static miniModalHeightMobile = 'auto';\n public static miniModalMarginTopMobile = '80px';\n public static miniModalMarginLeftMobile = '24px';\n public static miniModalMarginRightMobile = '24px';\n public static miniModalFooterPaddingMobile = '24px 16px 16px';\n public static miniModalHeaderPaddingMobile = '32px 16px 0';\n public static miniModalBodyPaddingMobile = '16px 16px 0';\n //#endregion MiniModal\n\n //#region react-ui-validations\n public static get validationsTextColorError() {\n return this.errorText;\n }\n public static validationsTextColorWarning = '#ef8b17';\n //#endregion\n}\n\nexport const BasicTheme = createTheme({ themeClass: BasicThemeClass });\n\nexport const BasicThemeClassForExtension = class {} as typeof BasicThemeClass;\n","import { createTheme, markThemeVersion } from '../../lib/theming/ThemeHelpers';\n\nimport { BasicTheme, BasicThemeClassForExtension } from './BasicTheme';\n\nexport const LightTheme5_0 = createTheme({\n themeClass: class LightTheme5_0 extends BasicThemeClassForExtension {},\n prototypeTheme: BasicTheme,\n themeMarkers: [markThemeVersion('5.0')],\n});\n","import { createTheme, markThemeVersion } from '../../lib/theming/ThemeHelpers';\n\nimport { BasicThemeClassForExtension } from './BasicTheme';\nimport { LightTheme5_0 } from './LightTheme5_0';\n\nexport const LightTheme5_1 = createTheme({\n themeClass: class LightTheme5_1 extends BasicThemeClassForExtension {\n public static modalCloseButtonClickAreaTop = '30px';\n public static modalCloseButtonClickAreaBottom = '22px';\n public static modalCloseButtonClickAreaLeft = '24px';\n public static modalCloseButtonClickAreaRight = '28px';\n public static get mobileModalCloseButtonRightPadding() {\n return this.mobileModalCloseButtonClickArea;\n }\n public static get mobileModalCloseButtonTopPadding() {\n return this.mobileModalCloseButtonClickArea;\n }\n public static mobileModalCloseButtonClickArea = '22px';\n public static sidePageHeaderStickyOffset = '10px';\n public static get mobileSidePageCloseButtonPadding() {\n return this.mobileSidePageCloseButtonClickArea;\n }\n public static get sidePageCloseButtonClickAreaTop() {\n return this.modalCloseButtonClickAreaTop;\n }\n public static get sidePageCloseButtonClickAreaBottom() {\n return this.modalCloseButtonClickAreaBottom;\n }\n public static get sidePageCloseButtonClickAreaLeft() {\n return this.modalCloseButtonClickAreaLeft;\n }\n public static get sidePageCloseButtonClickAreaRight() {\n return this.modalCloseButtonClickAreaRight;\n }\n public static mobileSidePageCloseButtonClickArea = '22px';\n public static sidePageCloseButtonWrapperFixedOffsetTop = '4px';\n public static sidePageCloseButtonWrapperOffsetTop = '2px';\n },\n prototypeTheme: LightTheme5_0,\n themeMarkers: [markThemeVersion('5.1')],\n});\n","import { createTheme, markThemeVersion } from '../../lib/theming/ThemeHelpers';\n\nimport { BasicThemeClassForExtension } from './BasicTheme';\nimport { LightTheme5_1 } from './LightTheme5_1';\n\nexport const LightTheme5_2 = createTheme({\n themeClass: class LightTheme5_2 extends BasicThemeClassForExtension {\n public static get mobileModalCloseButtonRightPadding() {\n return this.mobileModalCloseButtonClickArea;\n }\n public static get mobileModalCloseButtonTopPadding() {\n return this.mobileModalCloseButtonClickArea;\n }\n public static mobileModalCloseButtonClickArea = '22px';\n public static mobileModalBodyPadding = '0 16px 0 16px';\n public static mobileModalContainerMarginTop = '16px';\n public static mobileModalContainerMarginRight = '16px';\n public static mobileModalContainerMarginBottom = '16px';\n public static mobileModalContainerMarginLeft = '16px';\n\n public static miniModalMarginTopMobile = '16px';\n public static miniModalMarginLeftMobile = '16px';\n public static miniModalMarginRightMobile = '16px';\n },\n prototypeTheme: LightTheme5_1,\n themeMarkers: [markThemeVersion('5.2')],\n});\n","import { createTheme, markThemeVersion } from '../../lib/theming/ThemeHelpers';\n\nimport { BasicThemeClassForExtension } from './BasicTheme';\nimport { LightTheme5_2 } from './LightTheme5_2';\n\nexport const LightTheme5_3 = createTheme({\n themeClass: class LightTheme5_3 extends BasicThemeClassForExtension {\n public static miniModalDescriptionFontSize = '16px';\n public static miniModalDescriptionLineHeight = '22px';\n },\n prototypeTheme: LightTheme5_2,\n themeMarkers: [markThemeVersion('5.3')],\n});\n","export const themeTokens5_4 = {\n clearCrossIconWidthSmall: '24px',\n clearCrossIconWidthMedium: '30px',\n clearCrossIconWidthLarge: '36px',\n clearCrossIconAlign: 'flex-start',\n textareaMargin: '0px', // обнуление вертикального браузерного margin в firefox\n textareaVerticalAlign: 'top',\n};\n","import { createTheme, markThemeVersion } from '../../lib/theming/ThemeHelpers';\n\nimport { BasicThemeClassForExtension } from './BasicTheme';\nimport { LightTheme5_3 } from './LightTheme5_3';\nimport { themeTokens5_4 } from './consts';\n\nexport const LightTheme5_4 = createTheme({\n themeClass: class LightTheme5_4 extends BasicThemeClassForExtension {\n public static textareaMargin = themeTokens5_4.textareaMargin;\n public static clearCrossIconWidthSmall = themeTokens5_4.clearCrossIconWidthSmall;\n public static clearCrossIconWidthMedium = themeTokens5_4.clearCrossIconWidthMedium;\n public static clearCrossIconWidthLarge = themeTokens5_4.clearCrossIconWidthLarge;\n public static clearCrossIconAlign = themeTokens5_4.clearCrossIconAlign;\n public static textareaVerticalAlign = themeTokens5_4.textareaVerticalAlign;\n },\n prototypeTheme: LightTheme5_3,\n themeMarkers: [markThemeVersion('5.4')],\n});\n","import { LightTheme5_0 } from '../../../internal/themes/LightTheme5_0';\nimport { LightTheme5_1 } from '../../../internal/themes/LightTheme5_1';\nimport { LightTheme5_2 } from '../../../internal/themes/LightTheme5_2';\nimport { LightTheme5_3 } from '../../../internal/themes/LightTheme5_3';\nimport { LightTheme5_4 } from '../../../internal/themes/LightTheme5_4';\n\nexport const LIGHT_THEME_5_0 = LightTheme5_0;\nexport const LIGHT_THEME_5_1 = LightTheme5_1;\nexport const LIGHT_THEME_5_2 = LightTheme5_2;\nexport const LIGHT_THEME_5_3 = LightTheme5_3;\nexport const LIGHT_THEME_5_4 = LightTheme5_4;\n\nexport const LIGHT_THEME = LIGHT_THEME_5_4;\n","import type { NoInfer } from '../utils';\nimport { isNonNullable } from '../utils';\n\nimport type { Theme, ThemeIn } from './Theme';\nimport { findPropertyDescriptor, REACT_UI_THEME_MARKERS } from './ThemeHelpers';\nimport { LIGHT_THEME } from './themes/LightTheme';\n\nexport class ThemeFactory {\n /**\n * The default theme created with Object.create() is needed for the \"overrideBaseTheme\" to work.\n *\n * Themes should be frozen objects. But it is not possible to define properties on frozen objects.\n * So, an object created by Object.create({ *frozen_object* }) acts as frozen too,\n * but allows to apply Object.defineProperty to his own properties.\n */\n private static readonly overridableDefaultTheme: Theme = Object.create(LIGHT_THEME);\n\n public static get defaultTheme(): Theme {\n return this.overridableDefaultTheme;\n }\n\n public static create<T>(theme: ThemeIn & NoInfer<T>, baseTheme?: Theme): Readonly<Theme & NoInfer<T>> {\n const base = baseTheme || this.defaultTheme;\n return this.constructTheme(base, theme);\n }\n\n public static overrideBaseTheme(theme: Theme) {\n // copying theme variables\n ThemeFactory.getKeys(this.defaultTheme).forEach((variableName) => {\n const descriptor = findPropertyDescriptor(theme, variableName);\n Object.defineProperty(this.defaultTheme, variableName, descriptor);\n });\n\n // copying theme markers\n Object.values(REACT_UI_THEME_MARKERS).forEach((marker) => {\n const descriptor = findPropertyDescriptor(theme, marker.key);\n Object.defineProperty(this.defaultTheme, marker.key, descriptor);\n });\n }\n\n public static getKeys<T extends Theme>(theme: T) {\n const keys: Array<keyof T> = [];\n while (isNonNullable(theme)) {\n (Object.keys(theme) as typeof keys).forEach((key) => {\n if (!keys.includes(key)) {\n keys.push(key);\n }\n });\n // TODO: Enable `no-param-reassign` rule.\n // eslint-disable-next-line no-param-reassign\n theme = Object.getPrototypeOf(theme);\n }\n\n return keys.sort();\n }\n\n private static constructTheme(base: Theme, theme: ThemeIn) {\n const newTheme = Object.create(base);\n Object.keys(theme).forEach((propName) => {\n const descriptor = Object.getOwnPropertyDescriptor(theme, propName);\n if (descriptor) {\n Object.defineProperty(newTheme, propName, descriptor);\n }\n });\n\n return Object.freeze(newTheme);\n }\n}\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export default {\n disabled: false\n};","import PropTypes from 'prop-types';\nexport var timeoutsShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n enter: PropTypes.number,\n exit: PropTypes.number,\n appear: PropTypes.number\n}).isRequired]) : null;\nexport var classNamesShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string,\n active: PropTypes.string\n}), PropTypes.shape({\n enter: PropTypes.string,\n enterDone: PropTypes.string,\n enterActive: PropTypes.string,\n exit: PropTypes.string,\n exitDone: PropTypes.string,\n exitActive: PropTypes.string\n})]) : null;","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `<CSSTransition>` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import type { Nullable } from '../../typings/utility-types';\ntype DOMRectDefaultValues = Omit<DOMRect, 'toJSON'>;\n/**\n * Возвращает размер элемента и его позицию относительно viewport\n *\n * @param element - ref элемента или сам элемент\n * @returns - возвращает размер элемента и его позицию относительно viewport\n */\nexport const getDOMRect = <T extends Element>(element: Nullable<T> | React.RefObject<T>): DOMRectDefaultValues => {\n const defaultValues: DOMRectDefaultValues = {\n width: 0,\n height: 0,\n x: 0,\n y: 0,\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n };\n if (element && 'current' in element) {\n return getRefRect(defaultValues, element);\n }\n return getElementRect(defaultValues, element);\n};\nconst getElementRect = (defaultValues: DOMRectDefaultValues, element: Nullable<Element>) => {\n if (element) {\n return element.getBoundingClientRect();\n }\n return defaultValues;\n};\nconst getRefRect = <T extends Element>(defaultValues: DOMRectDefaultValues, ref: React.RefObject<T>) => {\n if (ref?.current) {\n return ref.current.getBoundingClientRect();\n }\n return defaultValues;\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","import EventEmitter from 'eventemitter3';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport { globalObject } from '@skbkontur/global-object';\n\nlet emitterCache: EventEmitter;\nfunction getEmitter() {\n if (!emitterCache) {\n emitterCache = new EventEmitter();\n }\n return emitterCache;\n}\n\nfunction listenBrowserEvents() {\n globalObject.addEventListener?.('scroll', emit, { capture: true });\n globalObject.addEventListener?.('resize', emit, { capture: true });\n}\n\nfunction unlistenBrowserEvents() {\n globalObject.removeEventListener?.('scroll', emit, { capture: true });\n globalObject.removeEventListener?.('resize', emit, { capture: true });\n}\n\nexport function addListener(callback: () => void) {\n const emitter = getEmitter();\n if (emitter.listeners('layout').length === 0) {\n listenBrowserEvents();\n }\n emitter.addListener('layout', callback);\n return {\n remove() {\n emitter.removeListener('layout', callback);\n if (emitter.listeners('layout').length === 0) {\n unlistenBrowserEvents();\n }\n },\n };\n}\n\nexport function emit() {\n unstable_batchedUpdates(() => {\n getEmitter().emit('layout');\n });\n}\n","import type React from 'react';\n\nimport type { Nullable } from '../../typings/utility-types';\n\nexport const callChildRef = (\n componentRef: React.RefCallback<any> | React.RefObject<any>,\n instance: Nullable<React.ReactInstance>,\n) => {\n if (!componentRef) {\n return;\n }\n if (typeof componentRef === 'function') {\n componentRef(instance);\n }\n if (Object.prototype.hasOwnProperty.call(componentRef, 'current')) {\n // @ts-expect-error: will be fixed in #2807\n componentRef.current = instance;\n }\n};\n","import type React from 'react';\nimport EventEmitter from 'eventemitter3';\n\nimport type { Nullable } from '../../typings/utility-types';\n\nimport { getRootNode } from './getRootNode';\n\nexport type TGetRootNode = () => Nullable<Element>;\nexport type TSetRootNode = (e: Nullable<React.ReactInstance>) => void;\n\nexport interface TRootNodeSubscription {\n remove: () => void;\n}\n\nexport interface InstanceWithRootNode {\n getRootNode: TGetRootNode;\n addRootNodeChangeListener?: (callback: (node: Nullable<Element>) => void) => TRootNodeSubscription;\n}\n\ninterface ComponentWithDefaultRootNode {\n defaultRootNode?: Element | null;\n}\ninterface ComponentWithKonturReactUI {\n __KONTUR_REACT_UI__?: string;\n displayName?: string;\n}\n\ninterface DecoratableClassComponent extends ComponentWithDefaultRootNode, ComponentWithKonturReactUI {\n new (...args: any[]): React.Component;\n}\n\nexport function rootNode<T extends DecoratableClassComponent>(Component: T) {\n const rootNode = class extends Component implements InstanceWithRootNode {\n public static __KONTUR_REACT_UI__ = Component.__KONTUR_REACT_UI__;\n public static displayName = Component.displayName;\n\n public rootNode: Nullable<Element> = Component.defaultRootNode;\n public rootNodeEmitter = new EventEmitter();\n public constructor(...args: any[]) {\n super(args[0]);\n }\n\n public setRootNode = (instance: Nullable<React.ReactInstance>) => {\n const rootNode = getRootNode(instance);\n if (rootNode !== this.rootNode) {\n this.rootNode = rootNode;\n this.rootNodeEmitter.emit('change', rootNode);\n }\n };\n\n public getRootNode = (): Nullable<Element> => {\n return this.rootNode;\n };\n\n public addRootNodeChangeListener = (callback: (node: Nullable<Element>) => void): TRootNodeSubscription => {\n this.rootNodeEmitter.addListener('change', callback);\n return {\n remove: () => {\n this.rootNodeEmitter.removeListener('change', callback);\n },\n };\n };\n };\n\n const nameDescriptor = Object.getOwnPropertyDescriptor(rootNode, 'name');\n if (!nameDescriptor || nameDescriptor.configurable) {\n Object.defineProperty(rootNode, 'name', { value: Component.name });\n }\n\n return rootNode;\n}\n\nexport const isInstanceWithRootNode = (instance: unknown): instance is InstanceWithRootNode => {\n return Boolean(instance) && Object.prototype.hasOwnProperty.call(instance, 'getRootNode');\n};\n","import { findDOMNode } from 'react-dom';\nimport type React from 'react';\nimport warning from 'warning';\n\nimport type { Nullable } from '../../typings/utility-types';\nimport { isElement } from '../utils';\n\nimport { isInstanceWithRootNode } from './rootNodeDecorator';\n\n/**\n * Extracts component's root Element (HTMLElement/SVGElement) out of it's instance\n * following the \"StrictMode support convention\" (@see README.md#strictmode, #2518).\n *\n * Replaces findDOMNode but falls back to it if \"convention\" is not respected.\n *\n * @param instance Component's instance provided by React.Ref or `this` inside class-components.\n * @returns Component's root `Element` or null\n */\n\nexport const getRootNode = (instance: Nullable<React.ReactInstance>): Nullable<Element> => {\n /**\n * Options of what instance can be:\n * 1. null or undefined\n * 2. DOM Element\n * 3. class Component instance (object)\n * 4. literally anything, returned from useImperativeHandle\n */\n\n if (!instance) {\n // instance can be `null` if component was unmounted\n // also checking undefined for convenient usage\n return null;\n }\n\n if (isElement(instance)) {\n // instance can be an Element already if its coming\n // from Refs of intrinsic elements (<div />, <button />, etc.)\n return instance;\n }\n\n let rootNode;\n\n if (isInstanceWithRootNode(instance)) {\n rootNode = instance.getRootNode();\n }\n\n if (rootNode !== undefined) {\n // the getter exists and has returned something, it should be what we are looking for\n // probably its an Element or null (which is also OK, e.g. Popup/Tooltip/Hint before opening)\n return rootNode;\n }\n\n try {\n // rootNode is undefined, which means that the getter doesn't exists or returns the undefined\n // anyway, it tell us that the convention is not respected,\n // so, we have to fall back to the deprecated findDOMNode, which breaks StrictMode\n // instance can still be a class component or an imperative handle (i.e., anything, except null/undefined/Element)\n rootNode = findDOMNode(instance);\n } catch (e) {\n // but findDOMNode doesn`t accept everything that instance can be at this point,\n // so we have to handle exceptions\n // see https://github.com/facebook/react/blob/cae63505/packages/react-dom/src/__tests__/findDOMNode-test.js#L66-L86\n warning(\n false,\n '[getRootNode]: can`t fallback to findDOMNode.' +\n '\\n' +\n 'See https://github.com/skbkontur/retail-ui/blob/master/packages/react-ui/README.md#strictmode' +\n '\\n\\n' +\n e.message,\n );\n return null;\n }\n\n // the findDOMNode can also return Text, but we are only interested in Elements, so just filter it\n return isElement(rootNode) ? rootNode : null;\n};\n","import type React from 'react';\n\nexport type DefaultizedProps<P, DP> = P & DP;\n\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint, @typescript-eslint/no-unused-vars\nexport function createPropsGetter<DP extends unknown>(defaultProps: DP) {\n return function <P, T extends React.Component<P>>(this: T) {\n return this.props as DefaultizedProps<T['props'], DP>;\n };\n}\n","export function isInstanceOf<C extends new (...args: any) => any>(\n instance?: unknown,\n constructor?: C,\n): instance is InstanceType<C> {\n return !!constructor && instance instanceof constructor;\n}\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","import React from 'react';\n\nimport { ThemeFactory } from './ThemeFactory';\n\nexport const ThemeContext = React.createContext(ThemeFactory.defaultTheme);\n\nThemeContext.displayName = 'ThemeContext';\nThemeContext.__KONTUR_REACT_UI__ = 'ThemeContext';\n","import { globalObject } from '@skbkontur/global-object';\n\n// NOTE Some checks are used from https://github.com/arasatasaygin/is.js\nconst platform = (globalObject.navigator?.platform || '').toLowerCase();\nconst userAgent = (globalObject.navigator?.userAgent || '').toLowerCase();\nconst vendor = (globalObject.navigator?.vendor || '').toLowerCase();\n\nexport const isMac = platform.includes('mac');\nexport const isWindows = platform.includes('win');\n\nexport const isSafari = /version\\/(\\d+).+?safari/.test(userAgent);\nexport const isFirefox = /(?:firefox|fxios)\\/(\\d+)/.test(userAgent);\nexport const isOpera = /(?:^opera.+?version|opr)\\/(\\d+)/.test(userAgent);\nexport const isChrome = vendor.includes('google inc') && /(?:chrome|crios)\\/(\\d+)/.test(userAgent) && !isOpera;\nexport const isEdge = userAgent.includes('edge/');\nexport const isIE11 = userAgent.includes('trident/');\n\nexport const isMobile =\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent) &&\n globalObject.document &&\n 'ontouchstart' in globalObject.document.documentElement;\n\nexport const isIOS = /(ip[ao]d|iphone)/gi.test(userAgent);\n\nexport const isSafari17 = isSafari && userAgent.includes('version/17');\n\nconst is17_0v = userAgent.includes('version/17.0');\nconst is17_1v = userAgent.includes('version/17.1');\nconst is17_2v = userAgent.includes('version/17.2');\nconst is17_3v = userAgent.includes('version/17.3');\n\nexport const isSafariWithTextareaBug = isSafari && (is17_0v || is17_1v || is17_2v || is17_3v);\n","/* eslint-disable no-useless-constructor */\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ColorFactory } from '../../lib/styles/ColorFactory';\n\nexport class SpinnerFallbackAnimationRunner {\n private interval: ReturnType<typeof rafInterval> | null = null;\n\n constructor(\n private animations: Animation[],\n private FPS: number,\n ) {\n this.start();\n }\n\n public start = () => {\n this.animations.forEach((animation) => animation.start());\n this.interval = rafInterval(() => {\n this.animations.forEach((animation) => animation.step());\n }, this.FPS);\n };\n\n public stop = () => {\n if (this.interval) {\n this.interval.clear();\n this.animations.forEach((animation) => animation.finish());\n }\n };\n}\n\nconst rafInterval = (fn: () => void, delay: number) => {\n let lastcall = 0;\n let cleared = false;\n let rafId = 0;\n\n const interval = () => {\n if (cleared) {\n return;\n }\n\n const timestamp = new Date().getTime();\n if (!lastcall) {\n lastcall = timestamp;\n }\n if (timestamp - lastcall > delay) {\n fn();\n lastcall = timestamp;\n }\n if (globalObject.requestAnimationFrame) {\n rafId = globalObject.requestAnimationFrame(interval);\n }\n };\n interval();\n\n return {\n clear: () => {\n cleared = true;\n globalObject.cancelAnimationFrame?.(rafId);\n },\n };\n};\n\nclass Animation {\n private startTime = 0;\n private isFinished = false;\n\n constructor(\n private duration: number,\n private onProgress: (progress: number) => void,\n private onFinish?: (animation: Animation) => void,\n ) {}\n\n public step = () => {\n if (this.isFinished) {\n return;\n }\n\n const timestamp = new Date().getTime();\n if (!this.startTime) {\n this.startTime = timestamp;\n }\n const progress = (timestamp - this.startTime) / this.duration;\n\n this.onProgress(progress);\n\n if (progress >= 1) {\n this.finish();\n }\n };\n\n public reset = () => {\n this.startTime = 0;\n this.isFinished = false;\n };\n\n public finish = () => {\n this.isFinished = true;\n this.onFinish && this.onFinish(this);\n };\n\n public start = () => {\n if (!this.isFinished) {\n this.step();\n }\n };\n}\n\nexport const createOffsetAnimation = (\n from: number,\n to: number,\n duration: number,\n setStyleProperty: CSSStyleDeclaration['setProperty'],\n units = '',\n) => {\n return new Animation(\n duration,\n (progress) => {\n const current = from + (to - from) * progress;\n setStyleProperty('stroke-dashoffset', `${current}${units}`);\n },\n (animation) => {\n animation.reset();\n },\n );\n};\n\nexport const createLengthAnimation = (\n from: number[],\n to: number[],\n duration: number,\n setStyleProperty: CSSStyleDeclaration['setProperty'],\n units = '',\n) => {\n let reverse = false;\n return new Animation(\n duration,\n (progress) => {\n const p = reverse ? 1 - progress : progress;\n const current = [from[0] + (to[0] - from[0]) * p, from[1] + (to[1] - from[1]) * p];\n setStyleProperty('stroke-dasharray', `${current[0]}${units} ${current[1]}${units}`);\n },\n (animation) => {\n reverse = !reverse;\n animation.reset();\n },\n );\n};\n\nexport const createColorAnimation = (\n colors: string[],\n duration: number,\n setStyleProperty: CSSStyleDeclaration['setProperty'],\n) => {\n const rgbColors = colors.map((color) => ColorFactory.create(color).rgb);\n let currentIndex = 0;\n let nextIndex = 1;\n\n return new Animation(\n duration,\n (progress) => {\n const from = rgbColors[currentIndex];\n const to = rgbColors[nextIndex];\n if (from && to) {\n const current = [\n Math.round(from[0] + (to[0] - from[0]) * progress),\n Math.round(from[1] + (to[1] - from[1]) * progress),\n Math.round(from[2] + (to[2] - from[2]) * progress),\n ];\n setStyleProperty('stroke', `rgb(${current})`);\n }\n },\n (animation) => {\n animation.reset();\n currentIndex = nextIndex;\n nextIndex = (nextIndex + 1) % colors.length;\n },\n );\n};\n\nexport const createRotationAnimation = (\n from: number,\n to: number,\n duration: number,\n setStyleProperty: CSSStyleDeclaration['setProperty'],\n units = 'deg',\n) => {\n return new Animation(\n duration,\n (progress) => {\n const current = Math.round(from + (to - from) * progress);\n setStyleProperty('transform', `rotate(${current}${units})`);\n },\n (animation) => {\n animation.reset();\n },\n );\n};\n","// eslint-disable-next-line no-var\ndeclare var REACT_UI_TEST: unknown;\n\nconst isProcessEnvDefined = typeof process !== 'undefined' && typeof process.env !== 'undefined';\n\nconst isReactUITestEnv = () => {\n // usefull when process doesn't exist (webpack5/vite/etc)\n const isReactUITestDefined = typeof REACT_UI_TEST !== 'undefined';\n\n if (isReactUITestDefined && Boolean(REACT_UI_TEST)) {\n return true;\n }\n\n if (isProcessEnvDefined) {\n switch (true) {\n case Boolean(process.env.REACT_UI_TEST): // when NODE_ENV is not usable (e.g., already used for dev/prod)\n case Boolean(process.env.REACT_APP_REACT_UI_TEST): // for usage with CRA\n case Boolean(process.env.STORYBOOK_REACT_UI_TEST): // for usage with storybook\n case Boolean(process.env.enableReactTesting): // deprecated, legacy variable\n return true;\n }\n }\n\n return false;\n};\n\nconst isNodeTestEnv = isProcessEnvDefined && process.env.NODE_ENV === 'test';\nconst isNodeProductionEnv = isProcessEnvDefined && process.env.NODE_ENV === 'production';\nconst isNodeDevelopmentEnv = isProcessEnvDefined && process.env.NODE_ENV === 'development';\n\nexport const isTestEnv: boolean = isNodeTestEnv || isReactUITestEnv();\nexport const isProductionEnv: boolean = isNodeProductionEnv;\nexport const isDevelopmentEnv: boolean = isNodeDevelopmentEnv;\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexport { weakMemoize as default };\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, COMMENT, rulesheet, middleware, compile } from 'stylis';\nimport weakMemoize from '@emotion/weak-memoize';\nimport memoize from '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = !!element.parent; // in nested rules comments become children of the \"auto-inserted\" rule and that's always the `element.parent`\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? element.parent.children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar isBrowser = typeof document !== 'undefined';\nvar getServerStylisCache = isBrowser ? undefined : weakMemoize(function () {\n return memoize(function () {\n var cache = {};\n return function (name) {\n return cache[name];\n };\n });\n});\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if (isBrowser && key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n if (isBrowser) {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n if (isBrowser) {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n } else {\n var _finalizingPlugins = [stringify];\n\n var _serializer = middleware(omnipresentPlugins.concat(stylisPlugins, _finalizingPlugins));\n\n var _stylis = function _stylis(styles) {\n return serialize(compile(styles), _serializer);\n }; // $FlowFixMe\n\n\n var serverStylisCache = getServerStylisCache(stylisPlugins)(key);\n\n var getRules = function getRules(selector, serialized) {\n var name = serialized.name;\n\n if (serverStylisCache[name] === undefined) {\n serverStylisCache[name] = _stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n }\n\n return serverStylisCache[name];\n };\n\n _insert = function _insert(selector, serialized, sheet, shouldCache) {\n var name = serialized.name;\n var rules = getRules(selector, serialized);\n\n if (cache.compat === undefined) {\n // in regular mode, we don't set the styles on the inserted cache\n // since we don't need to and that would be wasting memory\n // we return them so that they are rendered in a style tag\n if (shouldCache) {\n cache.inserted[name] = true;\n }\n\n if ( // using === development instead of !== production\n // because if people do ssr in tests, the source maps showing up would be annoying\n process.env.NODE_ENV === 'development' && serialized.map !== undefined) {\n return rules + serialized.map;\n }\n\n return rules;\n } else {\n // in compat mode, we put the styles on the inserted cache so\n // that emotion-server can pull out the styles\n // except when we don't want to cache it which was in Global but now\n // is nowhere but we don't want to do a major right now\n // and just in case we're going to leave the case here\n // it's also not affecting client side bundle size\n // so it's really not a big deal\n if (shouldCache) {\n cache.inserted[name] = rules;\n } else {\n return rules;\n }\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","var isBrowser = typeof document !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var stylesForSSR = '';\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n if (!isBrowser && maybeStyles !== undefined) {\n stylesForSSR += maybeStyles;\n }\n\n current = current.next;\n } while (current !== undefined);\n\n if (!isBrowser && stylesForSSR.length !== 0) {\n return stylesForSSR;\n }\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import createCache from '@emotion/cache';\nimport { serializeStyles } from '@emotion/serialize';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\n\nfunction insertWithoutScoping(cache, serialized) {\n if (cache.inserted[serialized.name] === undefined) {\n return cache.insert('', serialized, cache.sheet, true);\n }\n}\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar createEmotion = function createEmotion(options) {\n var cache = createCache(options); // $FlowFixMe\n\n cache.sheet.speedy = function (value) {\n if (process.env.NODE_ENV !== 'production' && this.ctr !== 0) {\n throw new Error('speedy must be changed before any rules are inserted');\n }\n\n this.isSpeedy = value;\n };\n\n cache.compat = true;\n\n var css = function css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered, undefined);\n insertStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var keyframes = function keyframes() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n var animation = \"animation-\" + serialized.name;\n insertWithoutScoping(cache, {\n name: serialized.name,\n styles: \"@keyframes \" + animation + \"{\" + serialized.styles + \"}\"\n });\n return animation;\n };\n\n var injectGlobal = function injectGlobal() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n insertWithoutScoping(cache, serialized);\n };\n\n var cx = function cx() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n return {\n css: css,\n cx: cx,\n injectGlobal: injectGlobal,\n keyframes: keyframes,\n hydrate: function hydrate(ids) {\n ids.forEach(function (key) {\n cache.inserted[key] = true;\n });\n },\n flush: function flush() {\n cache.registered = {};\n cache.inserted = {};\n cache.sheet.flush();\n },\n // $FlowFixMe\n sheet: cache.sheet,\n cache: cache,\n getRegisteredStyles: getRegisteredStyles.bind(null, cache.registered),\n merge: merge.bind(null, cache.registered, css)\n };\n};\n\nvar classnames = function classnames(args) {\n var cls = '';\n\n for (var i = 0; i < args.length; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nexport { createEmotion as default };\n","function createExtraScopePlugin() {\n for (var _len = arguments.length, extra = new Array(_len), _key = 0; _key < _len; _key++) {\n extra[_key] = arguments[_key];\n }\n\n var scopes = extra.map(function (scope) {\n return scope.trim();\n });\n\n var extraScopePlugin = function extraScopePlugin(context, content, selectors, parents, line, column, length, type) {\n if (context !== -1) {\n return;\n }\n\n var selector = selectors[0];\n selectors[0] = scopes[0] + \" \" + selector;\n\n for (var i = 1; i < scopes.length; i++) {\n selectors.push(scopes[i] + \" \" + selector);\n }\n };\n\n return extraScopePlugin;\n}\n\nexport default createExtraScopePlugin;\n","import warning from 'warning';\nimport { setWindow } from '@skbkontur/global-object';\n\nlet specificityLevel = 0;\nlet canModifySpecificityLevel = true;\n\nlet specificityClassName = 'react-ui';\nlet canModifySpecificityClassName = true;\n\n//TODO Delete Upgrade in major release if it still doesn't work (https://github.com/skbkontur/retail-ui/blob/next/packages/react-ui/MIGRATION.md)\nexport const Upgrade = {\n getSpecificityLevel() {\n canModifySpecificityLevel = false;\n return specificityLevel;\n },\n setSpecificityLevel(level: number) {\n warning(\n false,\n \"setSpecificityLevel doesn't work. For more information please visit https://github.com/skbkontur/retail-ui/blob/master/packages/react-ui/MIGRATION.md\",\n );\n if (canModifySpecificityLevel) {\n specificityLevel = level;\n } else {\n warning(false, `specificityLevel=${specificityLevel} уже использован`);\n }\n },\n getSpecificityClassName() {\n canModifySpecificityClassName = false;\n return specificityClassName;\n },\n setSpecificityClassName(className: string) {\n if (canModifySpecificityClassName) {\n specificityClassName = className;\n } else {\n warning(false, `specificityClassName=${specificityClassName} уже использован`);\n }\n },\n setWindow,\n};\n","import createEmotion from '@emotion/css/create-instance';\nimport extraScopePlugin from 'stylis-plugin-extra-scope';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { Upgrade } from '../Upgrades';\nimport type { AnyObject, FunctionWithParams } from '../utils';\n\nimport type { Theme } from './Theme';\n\nconst REACT_UI_PREFIX = Upgrade.getSpecificityClassName();\n\nconst scope = new Array(Upgrade.getSpecificityLevel()).fill(`.${REACT_UI_PREFIX}`).join('');\n\nexport const { flush, hydrate, cx, merge, getRegisteredStyles, injectGlobal, keyframes, css, sheet, cache } =\n createEmotion({\n key: REACT_UI_PREFIX,\n prepend: true,\n stylisPlugins: scope ? [extraScopePlugin(scope)] : undefined,\n container: globalObject.document?.head,\n });\n\nfunction isZeroArgs<R, T extends FunctionWithParams<R>>(fn: T | FunctionWithParams<R>): fn is () => R {\n return fn.length === 0;\n}\n\nconst memoize = <A extends AnyObject, R>(fn: (() => R) | ((arg: A) => R)): (() => R) | ((arg: A) => R) => {\n if (isZeroArgs(fn)) {\n let isCalled = false;\n let result: R;\n return () => {\n if (!isCalled) {\n isCalled = true;\n result = fn();\n }\n return result;\n };\n }\n\n const cache = new WeakMap();\n return (arg: A) => {\n if (!cache.has(arg)) {\n cache.set(arg, fn(arg));\n }\n\n return cache.get(arg);\n };\n};\n\nexport const memoizeStyle = <S extends { [className: string]: (() => string) | ((t: Theme) => string) }>(\n styles: S,\n): S => {\n Object.keys(styles).forEach((className) => (styles[className as keyof S] = memoize(styles[className]) as S[keyof S]));\n return styles;\n};\n\nexport const prefix =\n (component: string, app = REACT_UI_PREFIX) =>\n <T extends Record<string, string>>(classes: T): T =>\n Object.keys(classes).reduce((acc, key) => {\n return { ...acc, [key]: `${app}-${component}-${classes[key]}` };\n }, {} as T);\n","import { css, memoizeStyle } from '../../lib/theming/Emotion';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n display: inline-block;\n margin-left: -1px;\n margin-right: -1px;\n `;\n },\n rootInline() {\n return css`\n margin-left: -0.0714285714285714em;\n margin-right: -0.0714285714285714em;\n `;\n },\n\n icon() {\n return css`\n margin-bottom: -3px;\n border-radius: 50%;\n overflow: visible;\n `;\n },\n\n iconInline() {\n return css`\n height: 1.1428571428571428em;\n width: 1.1428571428571428em;\n margin-bottom: -0.2428571428571428em;\n stroke-width: 0.10714285714285714em;\n `;\n },\n});\n","import React from 'react';\n\nimport { isIE11 } from '../../lib/client';\nimport {\n SpinnerFallbackAnimationRunner,\n createOffsetAnimation,\n createLengthAnimation,\n createColorAnimation,\n createRotationAnimation,\n} from '../../components/Spinner/SpinnerFallbackAnimation';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './SpinnerIcon.styles';\n\ninterface SpinnerIconSize {\n size: number;\n width: number;\n radius: number;\n}\n\nexport interface SpinnerIconProps {\n className?: string;\n size: SpinnerIconSize | keyof typeof sizes;\n dimmed?: boolean;\n inline?: boolean;\n width?: number;\n color?: React.CSSProperties['color'];\n}\n\nexport const sizes = {\n big: {\n size: 96,\n width: 4,\n radius: 32,\n },\n normal: {\n size: 48,\n width: 2,\n radius: 16,\n },\n mini: {\n size: 16,\n width: 1.5,\n radius: 6,\n },\n} as const;\n\nconst isSizeAlias = (size: unknown): size is keyof typeof sizes => {\n return typeof size === 'string' && size in sizes;\n};\n\nexport const SpinnerIcon = ({ size, className, dimmed, inline, width, color }: SpinnerIconProps) => {\n const _size = isSizeAlias(size) ? sizes[size] : size;\n const currentSize = inline ? sizes.mini : _size;\n const svgRef = React.useRef<SVGSVGElement>(null);\n\n if (isIE11 && !isTestEnv) {\n // This condition will not change during app's life time\n // So its OK to use hooks here\n // https://reactjs.org/docs/hooks-rules.html#only-call-hooks-at-the-top-level\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const fallbackAnimationRef = React.useRef<SpinnerFallbackAnimationRunner | null>(null);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { red, yellow, green, brand } = React.useContext(ThemeContext);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n const svg = svgRef.current;\n\n const setStyleProperty: CSSStyleDeclaration['setProperty'] = (...args) => {\n if (svg) {\n svg.style.setProperty(...args);\n }\n };\n\n fallbackAnimationRef.current = new SpinnerFallbackAnimationRunner(\n [\n createOffsetAnimation(0, -230, 1000, setStyleProperty, '%'),\n createLengthAnimation([62, 168], [187, 43], 2000, setStyleProperty, '%'),\n createRotationAnimation(0, 360, 2000, setStyleProperty),\n ...(dimmed ? [] : [createColorAnimation([red, yellow, green, brand], 1500, setStyleProperty)]),\n ],\n 1000 / 60,\n );\n\n return () => {\n const fallbackAnimation = fallbackAnimationRef.current;\n if (fallbackAnimation) {\n fallbackAnimation.stop();\n }\n if (svg) {\n svg.removeAttribute('style');\n }\n };\n }, [dimmed, red, yellow, green, brand]);\n }\n\n return (\n <span className={cx(styles.root(), { [styles.rootInline()]: inline })}>\n <svg\n viewBox={`0 0 ${currentSize.size} ${currentSize.size}`}\n className={cx(styles.icon(), className, {\n [styles.iconInline()]: inline,\n })}\n width={currentSize.size}\n height={currentSize.size}\n fill=\"none\"\n stroke={color}\n strokeDasharray={`${(10 * currentSize.radius) / 6}, ${(27 * currentSize.radius) / 6}`}\n strokeDashoffset=\"0\"\n strokeWidth={width || currentSize.width}\n ref={svgRef}\n focusable=\"false\"\n aria-hidden=\"true\"\n >\n <circle cx={currentSize.size / 2} cy={currentSize.size / 2} r={currentSize.radius} />\n </svg>\n </span>\n );\n};\n","import type { NotCommonProps } from '../types';\nimport type { CommonPropsWithRootNodeRef } from '../CommonWrapper';\n\nexport const extractCommonProps = <P extends CommonPropsWithRootNodeRef>(\n props: P,\n): [CommonPropsWithRootNodeRef, NotCommonProps<P>] => {\n const common = {} as CommonPropsWithRootNodeRef;\n const rest = {} as NotCommonProps<P>;\n\n for (const prop in props) {\n if (isCommonProp(prop as keyof CommonPropsWithRootNodeRef)) {\n // @ts-expect-error: See: https://github.com/skbkontur/retail-ui/pull/2257#discussion_r565275843 and https://github.com/skbkontur/retail-ui/pull/2257#discussion_r569542736.\n common[prop] = props[prop];\n } else {\n // @ts-expect-error: Read the comment above.\n rest[prop] = props[prop];\n }\n }\n\n return [common, rest];\n};\n\nconst isCommonProp = (prop: keyof CommonPropsWithRootNodeRef) => {\n switch (true) {\n case prop === 'className':\n case prop === 'style':\n case prop === 'rootNodeRef':\n case prop === 'children':\n case prop.indexOf('data-') === 0: // все data-атрибуты\n return true;\n default:\n return false;\n }\n};\n","export const toKebabCase = (value: string) => {\n if (!value) {\n return '';\n }\n\n return value\n .split(/\\.?(?=[A-Z])/)\n .join('-')\n .toLowerCase();\n};\n","import { toKebabCase } from '../../../lib/toKebabCase';\nimport type { Nullable } from '../../../typings/utility-types';\n\nexport type VisualStateDataAttributesResultType = Record<string, string>;\n\nconst prefix = `data-visual-state-`;\n\nfunction fillResult(result: VisualStateDataAttributesResultType, key: string, value: Nullable<boolean>) {\n if (value) {\n result[`${prefix}${toKebabCase(key)}`] = '';\n }\n\n return result;\n}\n\nexport function getVisualStateDataAttributes<T extends Record<string, Nullable<boolean>>>(\n attributes: T,\n): VisualStateDataAttributesResultType {\n return Object.entries(attributes).reduce(\n (previousValue, currentValue) => fillResult(previousValue, currentValue[0], currentValue[1]),\n {},\n );\n}\n","export const tryGetBoolean = (value: unknown): boolean | undefined => (typeof value === 'boolean' ? value : undefined);\n","import type { VisualStateDataAttributesResultType } from './getVisualStateDataAttributes';\nimport { getVisualStateDataAttributes } from './getVisualStateDataAttributes';\nimport { tryGetBoolean } from './tryGetBoolean';\n\nexport function getCommonVisualStateDataAttributes(\n componentProps: Record<string, unknown>,\n): VisualStateDataAttributesResultType {\n return getVisualStateDataAttributes({\n error: tryGetBoolean(componentProps['error']),\n warning: tryGetBoolean(componentProps['warning']),\n });\n}\n","import React from 'react';\n\nimport { isFunction, isRefableElement } from '../../lib/utils';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { TGetRootNode, TRootNodeSubscription, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, isInstanceWithRootNode, rootNode } from '../../lib/rootNode';\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\n\nimport type { CommonProps, CommonPropsRootNodeRef, CommonWrapperProps } from './types';\nimport { extractCommonProps } from './utils/extractCommonProps';\nimport { getCommonVisualStateDataAttributes } from './utils/getCommonVisualStateDataAttributes';\n\nexport type CommonPropsWithRootNodeRef = CommonProps & CommonPropsRootNodeRef;\n\n@rootNode\nexport class CommonWrapper<P extends CommonPropsWithRootNodeRef> extends React.Component<\n CommonWrapperProps<P> & CommonPropsRootNodeRef\n> {\n public static __KONTUR_REACT_UI__ = 'CommonWrapper';\n public static displayName = 'CommonWrapper';\n\n private child: React.ReactNode;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private rootNodeSubscription: Nullable<TRootNodeSubscription> = null;\n\n render() {\n const [{ className, style, children, rootNodeRef, ...dataProps }, { ...rest }] = extractCommonProps(this.props);\n this.child = isFunction(children) ? children(rest) : children;\n\n const getChildProps = (child: React.ReactElement<CommonProps & React.RefAttributes<any>>) => {\n const childProps: Record<string, unknown> = {\n ...getCommonVisualStateDataAttributes(rest),\n ...dataProps,\n };\n\n isRefableElement(child) && (childProps.ref = this.ref);\n\n const classNames: string = cx(child.props.className, className);\n classNames && (childProps.className = classNames);\n\n const styles: React.CSSProperties = { ...child.props.style, ...style };\n Object.keys(styles).length && (childProps.style = styles);\n\n return childProps;\n };\n\n return React.isValidElement<CommonProps & React.RefAttributes<any>>(this.child)\n ? React.cloneElement(this.child, getChildProps(this.child))\n : this.child;\n }\n\n private ref = (instance: Nullable<React.ReactInstance>) => {\n this.setRootNode(instance);\n this.props.rootNodeRef?.(getRootNode(instance));\n\n // refs are called when instances change,\n // so we have to renew or remove old subscription\n this.rootNodeSubscription?.remove();\n this.rootNodeSubscription = null;\n\n if (instance && isInstanceWithRootNode(instance)) {\n this.rootNodeSubscription = instance.addRootNodeChangeListener?.((node) => {\n this.setRootNode(node);\n this.props.rootNodeRef?.(node);\n });\n }\n\n const originalRef = (this.child as React.RefAttributes<any>)?.ref;\n if (typeof originalRef === 'function' || (originalRef && typeof originalRef === 'object')) {\n originalRef && callChildRef(originalRef, instance);\n }\n };\n}\n","import { keyframes } from './Emotion';\nimport type { Theme } from './Theme';\n\nexport const AnimationKeyframes = {\n spinnerCircleOffset() {\n return keyframes`\n 0% { stroke-dashoffset: 231.25%; }\n 100% { stroke-dashoffset: 0%; }\n `;\n },\n spinnerCircleLength() {\n return keyframes`\n 0% { stroke-dasharray: 62.5%, 168.75%; }\n 50% { stroke-dasharray: 187.5%, 43.75%; }\n 100% { stroke-dasharray: 62.5%, 168.75%; }\n `;\n },\n spinnerCircleRotate() {\n return keyframes`\n 100% { transform: rotate(360deg); }\n `;\n },\n spinnerColor(t: Theme) {\n return keyframes`\n 100%, 0% { stroke: ${t.red}; }\n 40% { stroke: ${t.yellow}; }\n 66% { stroke: ${t.green}; }\n 80%, 90% { stroke: ${t.brand}; }\n `;\n },\n};\n","import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { AnimationKeyframes } from '../../lib/theming/AnimationKeyframes';\nimport { isIE11 } from '../../lib/client';\n\nexport const styles = memoizeStyle({\n circle(t: Theme) {\n return css`\n stroke: ${t.spinnerColor};\n\n ${!isIE11 &&\n `\n animation: ${AnimationKeyframes.spinnerCircleOffset()} 1s cubic-bezier(0.5, 0.2, 0.5, 0.8) infinite,\n ${AnimationKeyframes.spinnerCircleLength()} 2s cubic-bezier(0.36, 0.14, 0.38, 0.69) infinite,\n ${AnimationKeyframes.spinnerCircleRotate()} 2s linear infinite,\n ${AnimationKeyframes.spinnerColor(t)} 6s ease-in-out infinite;\n `}\n `;\n },\n circleDimmedColor(t: Theme) {\n return css`\n stroke: ${t.spinnerDimmedColor};\n `;\n },\n circleWithoutColorAnimation() {\n return css`\n ${!isIE11 &&\n `\n animation: ${AnimationKeyframes.spinnerCircleOffset()} 1s cubic-bezier(0.5, 0.2, 0.5, 0.8) infinite,\n ${AnimationKeyframes.spinnerCircleLength()} 2s cubic-bezier(0.36, 0.14, 0.38, 0.69) infinite,\n ${AnimationKeyframes.spinnerCircleRotate()} 2s linear infinite;\n `}\n `;\n },\n\n captionColor(t: Theme) {\n return css`\n color: ${t.spinnerCaptionColor};\n `;\n },\n\n inline() {\n return css`\n font-size: inherit;\n line-height: inherit;\n `;\n },\n\n mini(t: Theme) {\n return css`\n margin-left: ${t.spinnerCaptionGapSmall};\n font-size: ${t.spinnerFontSizeSmall};\n line-height: ${t.spinnerLineHeightSmall};\n `;\n },\n\n small(t: Theme) {\n return css`\n margin: ${t.spinnerCaptionMarginSmall};\n font-size: ${t.spinnerFontSizeSmall};\n line-height: ${t.spinnerLineHeightSmall};\n `;\n },\n\n normal(t: Theme) {\n return css`\n display: block;\n font-size: ${t.spinnerFontSizeMedium};\n line-height: ${t.spinnerLineHeightMedium};\n margin-top: ${t.spinnerCaptionGapMedium};\n `;\n },\n\n medium(t: Theme) {\n return css`\n margin: ${t.spinnerCaptionMarginMedium};\n font-size: ${t.spinnerFontSizeMedium};\n line-height: ${t.spinnerLineHeightMedium};\n `;\n },\n\n big(t: Theme) {\n return css`\n display: block;\n font-size: ${t.spinnerFontSizeLarge};\n line-height: ${t.spinnerLineHeightLarge};\n margin-top: ${t.spinnerCaptionGapLarge};\n `;\n },\n\n large(t: Theme) {\n return css`\n font-size: ${t.spinnerFontSizeLarge};\n line-height: ${t.spinnerLineHeightLarge};\n margin: ${t.spinnerCaptionMarginLarge};\n `;\n },\n\n spinner() {\n return css`\n display: inline-block;\n text-align: center;\n line-height: normal;\n `;\n },\n\n inner() {\n return css`\n display: inline-block;\n `;\n },\n});\n","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","import type { SafeTimer } from '@skbkontur/global-object';\nimport { globalObject } from '@skbkontur/global-object';\n\nexport interface TaskWithDelayAndMinimalDurationProps {\n delayBeforeTaskStart: number;\n durationOfTask: number;\n taskStartCallback: () => void;\n taskStopCallback: () => void;\n}\n\nexport class TaskWithDelayAndMinimalDuration {\n private timeoutBeforeTaskStart: SafeTimer;\n private timeoutBeforeTaskStop: SafeTimer;\n private taskParams: TaskWithDelayAndMinimalDurationProps;\n private isTaskActive = false;\n\n constructor(initialValues: TaskWithDelayAndMinimalDurationProps) {\n this.taskParams = initialValues;\n }\n\n private setTimeoutBeforeTaskStart = () => {\n this.timeoutBeforeTaskStart = globalObject.setTimeout(() => {\n this.isTaskActive && this.taskParams.taskStartCallback();\n this.clearTimeoutBeforeTaskStart();\n this.setTimeoutBeforeTaskStop();\n }, this.taskParams.delayBeforeTaskStart);\n };\n\n private setTimeoutBeforeTaskStop = () => {\n this.timeoutBeforeTaskStop = globalObject.setTimeout(() => {\n !this.isTaskActive && this.taskParams.taskStopCallback();\n this.clearTimeoutBeforeTaskStop();\n }, this.taskParams.durationOfTask);\n };\n\n private clearTimeoutBeforeTaskStart = () => {\n this.timeoutBeforeTaskStart && globalObject.clearTimeout(this.timeoutBeforeTaskStart);\n this.timeoutBeforeTaskStart = null;\n };\n\n private clearTimeoutBeforeTaskStop = () => {\n this.timeoutBeforeTaskStop && globalObject.clearTimeout(this.timeoutBeforeTaskStop);\n this.timeoutBeforeTaskStop = null;\n };\n\n public start = () => {\n if (this.isTaskActive) {\n return;\n }\n\n this.isTaskActive = true;\n\n if (this.timeoutBeforeTaskStop) {\n return;\n }\n\n if (this.timeoutBeforeTaskStart) {\n this.clearTimeoutBeforeTaskStart();\n }\n\n this.setTimeoutBeforeTaskStart();\n };\n\n public update = (updateData: Partial<TaskWithDelayAndMinimalDurationProps>) => {\n this.taskParams = { ...this.taskParams, ...updateData };\n };\n\n public stop = () => {\n if (!this.isTaskActive) {\n return;\n }\n\n this.isTaskActive = false;\n\n if (!this.timeoutBeforeTaskStart && !this.timeoutBeforeTaskStop) {\n this.taskParams.taskStopCallback();\n }\n\n if (this.timeoutBeforeTaskStart) {\n this.clearTimeoutBeforeTaskStart();\n }\n };\n\n public clearTask = () => {\n this.isTaskActive = false;\n this.clearTimeoutBeforeTaskStart();\n this.clearTimeoutBeforeTaskStop();\n };\n}\n","/*!\n* tabbable 6.2.0\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\n// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\n// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes\n// the entire query to fail, resulting in no nodes found, which will break a lot\n// of things... so we have to rely on JS to identify nodes inside an inert container\nvar candidateSelectors = ['input:not([inert])', 'select:not([inert])', 'textarea:not([inert])', 'a[href]:not([inert])', 'button:not([inert])', '[tabindex]:not(slot):not([inert])', 'audio[controls]:not([inert])', 'video[controls]:not([inert])', '[contenteditable]:not([contenteditable=\"false\"]):not([inert])', 'details>summary:first-of-type:not([inert])', 'details:not([inert])'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function (element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Element} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nvar isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'inert');\n var inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`\n // so it likely would not support `:is([inert] *)` either...\n var result = inert || lookUp && node && isInert(node.parentNode); // recursive\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nvar isContentEditable = function isContentEditable(node) {\n var _node$getAttribute2;\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, 'contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert, all its children are inert\n if (isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidateScope>}\n */\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n var shadowRoot = element.shadowRoot ||\n // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\n\n/**\n * @private\n * Determines if the node has an explicitly specified `tabindex` attribute.\n * @param {HTMLElement} node\n * @returns {boolean} True if so; false if not.\n */\nvar hasTabIndex = function hasTabIndex(node) {\n return !isNaN(parseInt(node.getAttribute('tabindex'), 10));\n};\n\n/**\n * Determine the tab index of a given node.\n * @param {HTMLElement} node\n * @returns {number} Tab order (negative, 0, or positive number).\n * @throws {Error} If `node` is falsy.\n */\nvar getTabIndex = function getTabIndex(node) {\n if (!node) {\n throw new Error('No node provided');\n }\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) {\n return 0;\n }\n }\n return node.tabIndex;\n};\n\n/**\n * Determine the tab index of a given node __for sort order purposes__.\n * @param {HTMLElement} node\n * @param {boolean} [isScope] True for a custom element with shadow root or slot that, by default,\n * has tabIndex -1, but needs to be sorted by document order in order for its content to be\n * inserted into the correct sort position.\n * @returns {number} Tab order (negative, 0, or positive number).\n */\nvar getSortOrderTabIndex = function getSortOrderTabIndex(node, isScope) {\n var tabIndex = getTabIndex(node);\n if (tabIndex < 0 && isScope && !hasTabIndex(node)) {\n return 0;\n }\n return tabIndex;\n};\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n var radioScope = node.form || getRootNode(node);\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n var radioSet;\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\n// determines if a node is ultimately attached to the window's document\nvar isNodeAttached = function isNodeAttached(node) {\n var _nodeRoot;\n // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // To further complicate things, we have to look all the way up until we find a shadow HOST\n // that is attached (or find none) because the node might be in nested shadows...\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n // NOTE: If `nodeRootHost` or `node` happens to be the `document` itself (which is possible\n // if a tabbable/focusable node was quickly added to the DOM, focused, and then removed\n // from the DOM as in https://github.com/focus-trap/focus-trap-react/issues/905), then\n // `ownerDocument` will be `null`, hence the optional chaining on it.\n var nodeRoot = node && getRootNode(node);\n var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;\n\n // in some cases, a detached node will return itself as the root instead of a document or\n // shadow root object, in which case, we shouldn't try to look further up the host chain\n var attached = false;\n if (nodeRoot && nodeRoot !== node) {\n var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;\n attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));\n while (!attached && nodeRootHost) {\n var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;\n // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,\n // which means we need to get the host's host and check if that parent host is contained\n // in (i.e. attached to) the document\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;\n attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));\n }\n }\n return attached;\n};\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n return width === 0 && height === 0;\n};\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n if (!displayCheck || displayCheck === 'full' || displayCheck === 'legacy-full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n node = originalNode;\n }\n // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n if (isNodeAttached(node)) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n }\n\n // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n //\n // v6.0.0: As of this major release, the default 'full' option __no longer treats detached\n // nodes as visible with the 'none' fallback.__\n if (displayCheck !== 'legacy-full') {\n return true; // hidden\n }\n // else, fallback to 'none' mode and consider the node visible\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n }\n\n // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume\n // it's visible\n return false;\n};\n\n// form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement;\n // check if `node` is contained in a disabled <fieldset>\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n // when the first <legend> (in document order) is found\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n }\n // the disabled <fieldset> containing `node` has no <legend>\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n\n // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n return false;\n};\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled ||\n // we must do an inert look up to filter out any elements inside an inert ancestor\n // because we're limited in the type of selectors we can use in JSDom (see related\n // note related to `candidateSelectors`)\n isInert(node) || isHiddenInput(node) || isHidden(node, options) ||\n // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n};\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n};\nvar isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n return false;\n};\n\n/**\n * @param {Array.<Element|CandidateScope>} candidates\n * @returns Element[]\n */\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scopeParent;\n var element = isScope ? item.scopeParent : item;\n var candidateTabindex = getSortOrderTabIndex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\nvar tabbable = function tabbable(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return sortByOrder(candidates);\n};\nvar focusable = function focusable(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n};\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, getTabIndex, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","import type { FocusableElement } from 'tabbable';\nimport { tabbable, isFocusable } from 'tabbable';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { Nullable } from '../../typings/utility-types';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\n\n/**\n * Поиск всех элементов, у которых tabindex > -1, в переданном родителе\n * или на всей странице\n * @param {Element|Document|null} [parent=document] - Родительский элемент,\n * внутри которого осуществляется поиск.\n * @return {FocusableElement[]} - Массив найденных элементов\n */\n\nexport const getTabbableElements = (\n parent: Nullable<Element | Document> = globalObject.document,\n): FocusableElement[] => {\n if (!parent || !parent.children.length || !isInstanceOf(parent, globalObject.Element)) {\n return [];\n }\n return tabbable(parent);\n};\n\n/**\n * Поиск ближайшего фокусируемого элемента среди переданного и его родителей\n * @param {HTMLElement} current - Текущий элемент\n * @return {HTMLElement|null} - Найденный элемент или null\n *\n */\n\nexport const getClosestFocusableElement = (current: HTMLElement | null): HTMLElement | null => {\n if (!current) {\n return null;\n }\n\n return isFocusable(current) ? current : getClosestFocusableElement(current.parentElement);\n};\n","import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n active(t: Theme) {\n return css`\n border-radius: ${t.loaderBorderRadius};\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n\n background: ${t.loaderBg};\n `;\n },\n\n loader() {\n return css`\n box-sizing: border-box;\n display: inline-block;\n position: relative;\n width: 100%;\n z-index: inherit;\n `;\n },\n\n spinnerContainer() {\n return css`\n display: block;\n margin: auto;\n text-align: center;\n\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n\n &::before {\n content: ' ';\n display: inline-block;\n height: 100%;\n min-height: 100%;\n vertical-align: middle;\n }\n `;\n },\n\n spinnerContainerSticky() {\n return css`\n position: fixed;\n `;\n },\n\n spinnerComponentWrapper() {\n return css`\n display: inline-block;\n `;\n },\n});\n","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","import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport type { Nullable } from '../../typings/utility-types';\n\nimport type { PortalProps, RenderContainerProps } from './RenderContainerTypes';\nimport { PORTAL_INLET_ATTR } from './RenderContainer';\n\ninterface RenderInnerContainerProps extends RenderContainerProps {\n domContainer: Nullable<HTMLElement>;\n rootId: string;\n}\n\n// Заглушка нужна для корректной гидрации порталов после SSR,\n// которую реакт сам пока не поддерживает.\n// @see https://github.com/facebook/react/issues/13097\n// А также для вставки актуального render-container-id на клиенте.\n//\n// Дело в том, что во время гидрации, структура HTML на сервере\n// и на клиенте должна совпадать, иначе возможны артефакты.\n// Алгоритм там примерно такой. Клиент во время гидрации идет\n// по этим двум деревьям и сравнивает узлы. Элементы разных типов\n// он подменяет на свои. А те, что совпадают, он оставляет как есть\n// вместе со всеми атрибутами, навесив только обработчики событий.\n//\n// Поэтому, для портала, который рендерится только на клиенте,\n// нужно использовать серверную заглушку, чтобы при гидрации\n// он не испортил какой-то другой элемент. Null не подходит,\n// т.к. на сервере он тоже не рендерится.\n// А элемент с render-container-id нужно отрендерить с нуля.\n\nconst SSRPlaceholder = () => <script data-id=\"ssr-placeholder\" />;\n\nexport const Portal = ({ container, rt_rootID, children }: PortalProps) => {\n // container exists only in browser\n return (\n <React.Fragment>\n {container ? ReactDOM.createPortal(children, container) : <SSRPlaceholder />}\n {container ? <noscript {...{ [PORTAL_INLET_ATTR]: rt_rootID }} /> : <SSRPlaceholder />}\n </React.Fragment>\n );\n};\n\nexport class RenderInnerContainer extends React.Component<RenderInnerContainerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderInnerContainer';\n public static displayName = 'RenderInnerContainer';\n\n public render() {\n const { anchor, children, domContainer, rootId } = this.props;\n let inner = anchor;\n\n if (children) {\n inner = (\n <React.Fragment>\n {anchor}\n <Portal key=\"portal-ref\" rt_rootID={rootId} container={domContainer}>\n {children}\n </Portal>\n </React.Fragment>\n );\n }\n\n return inner;\n }\n}\n\nPortal.__KONTUR_REACT_UI__ = 'Portal';\nPortal.displayName = 'Portal';\n","import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { Nullable } from '../../typings/utility-types';\nimport { getRandomID } from '../../lib/utils';\nimport { Upgrade } from '../../lib/Upgrades';\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\n\nimport { RenderInnerContainer } from './RenderInnerContainer';\nimport type { RenderContainerProps } from './RenderContainerTypes';\n\ninterface GlobalWithReactTesting {\n ReactTesting?: any;\n}\n\nexport const PORTAL_INLET_ATTR = 'data-render-container-id';\nexport const PORTAL_OUTLET_ATTR = 'data-rendered-container-id';\n\nexport class RenderContainer extends React.Component<RenderContainerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderContainer';\n public static displayName = 'RenderContainer';\n\n private static getRootId = () => getRandomID();\n private domContainer: Nullable<HTMLElement> = null;\n\n private readonly rootId: string = RenderContainer.getRootId();\n\n public shouldComponentUpdate(nextProps: RenderContainerProps) {\n if (!this.props.children && nextProps.children) {\n this.mountContainer();\n }\n if (this.props.children && !nextProps.children) {\n this.unmountContainer();\n }\n return true;\n }\n\n public componentWillUnmount() {\n this.destroyContainer();\n }\n\n public render() {\n if (this.props.children) {\n this.mountContainer();\n }\n\n return <RenderInnerContainer {...this.props} domContainer={this.domContainer} rootId={this.rootId} />;\n }\n\n private createContainer() {\n const domContainer = globalObject.document?.createElement('div');\n if (domContainer) {\n domContainer.setAttribute('class', Upgrade.getSpecificityClassName());\n domContainer.setAttribute(PORTAL_OUTLET_ATTR, `${this.rootId}`);\n this.domContainer = domContainer;\n }\n }\n\n private mountContainer() {\n const globalWithReactTesting = globalObject as GlobalWithReactTesting;\n\n if (!this.domContainer) {\n this.createContainer();\n }\n if (this.domContainer && this.domContainer.parentNode !== globalObject.document?.body) {\n globalObject.document?.body.appendChild(this.domContainer);\n\n if (this.props.containerRef) {\n callChildRef(this.props.containerRef, this.domContainer);\n }\n if (globalWithReactTesting.ReactTesting) {\n globalWithReactTesting.ReactTesting.addRenderContainer(this.rootId, this);\n }\n }\n }\n\n private destroyContainer() {\n if (this.domContainer) {\n this.unmountContainer();\n this.domContainer = null;\n }\n }\n\n private unmountContainer() {\n if (this.domContainer && this.domContainer.parentNode) {\n this.domContainer.parentNode.removeChild(this.domContainer);\n\n if (this.props.containerRef) {\n callChildRef(this.props.containerRef, null);\n }\n\n const globalWithReactTesting = globalObject as GlobalWithReactTesting;\n if (globalWithReactTesting.ReactTesting) {\n globalWithReactTesting.ReactTesting.removeRenderContainer(this.rootId);\n }\n }\n }\n}\n","import { globalObject } from '@skbkontur/global-object';\n\nexport type Priority = number | LayerComponentName;\nconst calculatePriority = (priority: Priority) => {\n if (typeof priority === 'string') {\n return componentPriorities[priority];\n }\n\n return priority;\n};\n\nexport type LayerComponentName = keyof typeof componentPriorities;\n\nexport interface GlobalWithRetailUiZIndexes {\n __RetailUiZIndexes?: number[];\n}\n\nexport const componentPriorities = {\n MobilePopup: 9000,\n Toast: 10000,\n GlobalLoader: 10,\n Sidepage: 9,\n Modal: 9,\n Sticky: 7,\n PopupMenu: 5,\n Popup: 3,\n};\nconst priorityStep = 1000;\nconst globalWithRetailUiZIndexes = globalObject as GlobalWithRetailUiZIndexes;\nconst getZIndexes = (): number[] =>\n globalWithRetailUiZIndexes.__RetailUiZIndexes || (globalWithRetailUiZIndexes.__RetailUiZIndexes = [0]);\nconst getIndexPriority = (zIndex: number) => Math.trunc(zIndex / priorityStep);\nconst getMaxAllowedValue = (priority: number): number => (priority + 1) * priorityStep - 1;\n\nexport const upperBorder = getMaxAllowedValue(Math.max(...Object.values(componentPriorities)));\n\nexport function incrementZIndex(priority: Priority, delta: number): number {\n const calculatedPriority = calculatePriority(priority);\n\n const maxAllowedValue = getMaxAllowedValue(calculatedPriority);\n const zIndexes = getZIndexes();\n\n let prevIndexId = zIndexes.length - 1;\n while (zIndexes[prevIndexId] > maxAllowedValue && prevIndexId > 0) {\n prevIndexId--;\n }\n\n const zIndex =\n getIndexPriority(zIndexes[prevIndexId]) === calculatedPriority\n ? Math.min(zIndexes[prevIndexId] + delta, maxAllowedValue)\n : calculatedPriority * priorityStep;\n\n zIndexes.push(zIndex);\n zIndexes.sort((a, b) => a - b);\n return zIndex;\n}\n\nexport function removeZIndex(zIndex: number): void {\n const zIndexes = getZIndexes();\n const i = zIndexes.indexOf(zIndex);\n\n if (i !== -1) {\n zIndexes.splice(i, 1);\n }\n}\n","import React from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\nimport isEqual from 'lodash.isequal';\nimport warning from 'warning';\n\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { LoaderDataTids } from '../../components/Loader';\nimport { PORTAL_INLET_ATTR, PORTAL_OUTLET_ATTR } from '../RenderContainer';\n\nimport type { LayerComponentName } from './ZIndexStorage';\nimport { incrementZIndex, removeZIndex, upperBorder, componentPriorities } from './ZIndexStorage';\n\nconst DEFAULT_ZINDEX_CONTEXT = { parentLayerZIndex: 0, maxZIndex: Infinity };\n\nconst ZIndexContext = React.createContext(DEFAULT_ZINDEX_CONTEXT);\n\nZIndexContext.displayName = 'ZIndexContext';\n\nexport interface ZIndexProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Приращение к z-index\n */\n delta?: number;\n priority?: number | LayerComponentName;\n style?: React.CSSProperties;\n createStackingContext?: boolean;\n coverChildren?: boolean;\n applyZIndex?: boolean;\n className?: string;\n wrapperRef?: React.Ref<HTMLDivElement> | undefined | null;\n\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<div/>`.\n * Для случаев, когда необходимо задать **только** контекст для области.\n *\n * @default true\n */\n useWrapper?: boolean;\n}\n\ntype DefaultProps = Required<\n Pick<\n ZIndexProps,\n 'delta' | 'priority' | 'style' | 'applyZIndex' | 'coverChildren' | 'createStackingContext' | 'useWrapper'\n >\n>;\n\ninterface ZIndexState {\n zIndex: number;\n DOMZIndexContext: { parentLayerZIndex: number; maxZIndex: number } | null;\n}\n\n@rootNode\nexport class ZIndex extends React.Component<ZIndexProps, ZIndexState> {\n public static priorities = componentPriorities;\n public static __KONTUR_REACT_UI__ = 'ZIndex';\n public static displayName = 'ZIndex';\n\n public static defaultProps: DefaultProps = {\n delta: 10,\n priority: 0,\n style: {},\n applyZIndex: true,\n coverChildren: false,\n createStackingContext: false,\n useWrapper: true,\n };\n\n public state: ZIndexState = {\n zIndex: 0,\n DOMZIndexContext: null,\n };\n\n private getProps = createPropsGetter(ZIndex.defaultProps);\n private validateProps(delta: ZIndexProps['delta']): void {\n warning(\n (delta || ZIndex.defaultProps.delta) > 0,\n `[ZIndex]: Prop 'delta' must be greater than 0, received ${delta}`,\n );\n warning(\n Math.trunc(delta || ZIndex.defaultProps.delta) === delta,\n `[ZIndex]: Prop 'delta' must be integer, received ${delta}`,\n );\n }\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private zIndexContext: { parentLayerZIndex: number; maxZIndex: number } | null = null;\n\n constructor(props: ZIndexProps) {\n super(props);\n this.state.zIndex = this.increment();\n }\n\n public componentDidUpdate(prevProps: Readonly<ZIndexProps>) {\n const props = this.getProps();\n\n this.validateProps(props.delta);\n if (prevProps.priority !== props.priority || prevProps.delta !== props.delta) {\n removeZIndex(this.state.zIndex);\n this.setState({ zIndex: this.increment() });\n }\n }\n\n public componentWillUnmount() {\n removeZIndex(this.state.zIndex);\n }\n\n public render() {\n const {\n style,\n children,\n delta,\n priority,\n applyZIndex,\n coverChildren,\n createStackingContext,\n wrapperRef,\n useWrapper,\n ...rest\n } = this.getProps();\n\n const wrapperStyle: React.CSSProperties = {};\n\n return (\n <ZIndexContext.Consumer>\n {(context) => {\n this.zIndexContext = context;\n\n const currentZIndexContext =\n this.state.DOMZIndexContext && isEqual(context, DEFAULT_ZINDEX_CONTEXT)\n ? this.state.DOMZIndexContext\n : context;\n const { parentLayerZIndex, maxZIndex } = currentZIndexContext;\n\n let newZIndexContext = currentZIndexContext;\n let newZIndex = 0;\n\n if (applyZIndex) {\n newZIndex = this.calcZIndex(parentLayerZIndex, maxZIndex);\n wrapperStyle.zIndex = newZIndex;\n\n newZIndexContext = coverChildren\n ? { parentLayerZIndex, maxZIndex: newZIndex }\n : { parentLayerZIndex: newZIndex, maxZIndex: Number.isFinite(maxZIndex) ? newZIndex : Infinity };\n\n if (createStackingContext) {\n isBrowser(globalObject) && 'isolation' in globalObject.document.body.style\n ? (wrapperStyle.isolation = 'isolate')\n : (wrapperStyle.transform = 'rotate(0)');\n }\n }\n\n const child = !useWrapper ? (\n children\n ) : (\n <div style={{ ...style, ...wrapperStyle }} ref={this.wrapperRef} {...rest}>\n {children}\n </div>\n );\n\n return <ZIndexContext.Provider value={newZIndexContext}>{child}</ZIndexContext.Provider>;\n }}\n </ZIndexContext.Consumer>\n );\n }\n\n private wrapperRef = (element: HTMLDivElement | null) => {\n const { wrapperRef } = this.props;\n this.setRootNode(element);\n wrapperRef && callChildRef(wrapperRef, element);\n element && this.tryGetContextByDOM(element);\n };\n\n private calcZIndex(parentLayerZIndex: number, maxZIndex: number) {\n let newZIndex = this.state.zIndex;\n\n if (Number.isFinite(maxZIndex)) {\n const allowedValuesIntervalLength = maxZIndex - parentLayerZIndex;\n const scale = upperBorder / allowedValuesIntervalLength;\n newZIndex = Math.ceil(newZIndex / scale);\n }\n\n newZIndex += parentLayerZIndex;\n\n return newZIndex;\n }\n\n private increment = () => {\n const { priority, delta } = this.getProps();\n\n return incrementZIndex(priority, delta);\n };\n\n private tryGetContextByDOM = (element: HTMLDivElement) => {\n if (\n this.props.applyZIndex &&\n isEqual(DEFAULT_ZINDEX_CONTEXT, this.zIndexContext) &&\n this.state.DOMZIndexContext === null\n ) {\n let DOMZIndexContext = DEFAULT_ZINDEX_CONTEXT;\n const portal = element.parentElement?.closest(`[${PORTAL_OUTLET_ATTR}]`);\n\n if (isInstanceOf(portal, globalObject.HTMLElement)) {\n const portalID = portal.getAttribute(PORTAL_OUTLET_ATTR);\n const noscript = globalObject.document?.querySelector(`noscript[${PORTAL_INLET_ATTR}=\"${portalID}\"]`);\n const parent = noscript?.parentElement?.closest('[style*=z-index]');\n\n if (isInstanceOf(parent, globalObject.HTMLElement)) {\n const newZIndex = Number(parent.style.zIndex || 0);\n\n let maxZIndex = Infinity;\n\n if (parent.parentElement?.dataset.tid === LoaderDataTids.veil) {\n maxZIndex = this.calcZIndex(newZIndex, maxZIndex);\n }\n\n DOMZIndexContext = { maxZIndex, parentLayerZIndex: newZIndex };\n }\n }\n\n this.setState({ DOMZIndexContext });\n }\n };\n}\n","import { globalObject } from '@skbkontur/global-object';\n\ninterface mediaQueryData {\n mql: MediaQueryList;\n listeners: Array<(e: MediaQueryListEvent) => void>;\n}\n\nexport interface listenerToken {\n remove: () => void;\n}\n\nexport const eventListenersMap = new Map<string, mediaQueryData>();\n\nexport function addResponsiveLayoutListener(\n mediaQuery: string,\n callback: (e: MediaQueryListEvent) => void,\n): listenerToken {\n if (eventListenersMap.has(mediaQuery)) {\n addCallbackToMQListener(mediaQuery, callback);\n } else {\n createMQListener(mediaQuery, callback);\n }\n\n return {\n remove() {\n removeCallbackFromMQListener(mediaQuery, callback);\n },\n };\n}\n\nfunction addCallbackToMQListener(mediaQuery: string, callback: (e: MediaQueryListEvent) => void) {\n const eventListener = eventListenersMap.get(mediaQuery);\n\n if (eventListener) {\n eventListenersMap.set(mediaQuery, {\n ...eventListener,\n listeners: [...eventListener.listeners, callback],\n });\n }\n}\n\nfunction createMQListener(mediaQuery: string, callback: (e: MediaQueryListEvent) => void) {\n const mql = globalObject.matchMedia?.(mediaQuery);\n if (mql) {\n const newMediaQueryInfo: mediaQueryData = { mql, listeners: [callback] };\n\n eventListenersMap.set(mediaQuery, newMediaQueryInfo);\n if (mql.addEventListener) {\n mql.addEventListener('change', changeCallback);\n } else {\n mql.addListener(changeCallback);\n }\n }\n}\n\nfunction removeCallbackFromMQListener(mediaQuery: string, callback: (e: MediaQueryListEvent) => void) {\n if (eventListenersMap.has(mediaQuery)) {\n const eventListener = eventListenersMap.get(mediaQuery);\n\n if (eventListener) {\n const newListeners = eventListener.listeners.filter((listener) => listener !== callback);\n\n if (newListeners.length === 0) {\n if (eventListener.mql.removeEventListener) {\n eventListener.mql.removeEventListener('change', changeCallback);\n } else {\n eventListener.mql.removeListener(changeCallback);\n }\n eventListenersMap.delete(mediaQuery);\n return;\n }\n\n eventListenersMap.set(mediaQuery, {\n ...eventListener,\n listeners: [...newListeners],\n });\n }\n }\n}\n\nexport function checkMatches(mediaQuery: string) {\n if (!globalObject.matchMedia) {\n return false;\n }\n\n if (!eventListenersMap.has(mediaQuery)) {\n return !!globalObject.matchMedia(mediaQuery)?.matches;\n }\n\n const eventListener = eventListenersMap.get(mediaQuery);\n return eventListener?.mql.matches ?? false;\n}\n\nfunction changeCallback(e: MediaQueryListEvent) {\n const eventListener = eventListenersMap.get(e.media);\n\n if (eventListener) {\n eventListener.listeners.forEach((listener) => {\n listener(e);\n });\n }\n}\n","import type React from 'react';\nimport { createRef, useCallback, useContext, useEffect, useState } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport type { EmptyObject, MediaQueriesType, ResponsiveLayoutFlags, ResponsiveLayoutOptions } from './types';\nimport { addResponsiveLayoutListener, checkMatches } from './ResponsiveLayoutEvents';\n\nexport function useResponsiveLayout<T extends MediaQueriesType = EmptyObject>({\n customMediaQueries,\n}: ResponsiveLayoutOptions<T> = {}) {\n const theme = useContext(ThemeContext);\n\n const allMediaQueries = Object.entries({\n isMobile: theme.mobileMediaQuery,\n ...customMediaQueries,\n }).map(([key, value]) => ({\n flag: key,\n query: value,\n ref: createRef() as React.MutableRefObject<{ remove: () => void } | null>,\n }));\n\n const getLayoutFromGlobal = (): ResponsiveLayoutFlags<T> => {\n return allMediaQueries.reduce(\n (result, mediaQuery) => Object.assign(result, { [mediaQuery.flag]: checkMatches(mediaQuery.query) }),\n {},\n ) as ResponsiveLayoutFlags<T>;\n };\n\n const [state, setState] = useState(getLayoutFromGlobal());\n\n const prepareMediaQueries = useCallback(() => {\n if (!theme) {\n return;\n }\n\n allMediaQueries.forEach(\n (mediaQuery) =>\n (mediaQuery.ref.current = addResponsiveLayoutListener(mediaQuery.query, checkLayoutsMediaQueries)),\n );\n\n // Checking for SSR use case\n const globalLayout = getLayoutFromGlobal();\n const hasChangedQuery = Object.entries(globalLayout).find(([key, value]) => state[key] !== value);\n\n if (hasChangedQuery) {\n setState(globalLayout);\n }\n }, [theme]);\n\n const checkLayoutsMediaQueries = useCallback(\n (e: MediaQueryListEvent) => {\n if (!theme) {\n return;\n }\n\n allMediaQueries.forEach((mediaQuery) => {\n if (e.media === mediaQuery.query) {\n setState((prevState: ResponsiveLayoutFlags<T>) => ({\n ...prevState,\n [mediaQuery.flag]: e.matches,\n }));\n }\n });\n },\n [theme],\n );\n\n useEffect(() => {\n prepareMediaQueries();\n\n return () => {\n allMediaQueries.forEach((mediaQuery) => mediaQuery.ref.current?.remove());\n };\n }, []);\n\n return state;\n}\n","import React, { useEffect } from 'react';\n\nimport { isFunction } from '../../lib/utils';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\n\nimport type { EmptyObject, MediaQueriesType, ResponsiveLayoutFlags } from './types';\nimport { useResponsiveLayout } from './useResponsiveLayout';\n\ninterface ResponsiveLayoutProps<T extends MediaQueriesType = EmptyObject> {\n /** Задает функцию, которая вызывается при изменении лейаута. */\n onLayoutChange?: (layout: ResponsiveLayoutFlags<T>) => void;\n\n /** @ignore */\n children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags<T>) => React.ReactNode);\n\n /** Позволяет кастомизировать возвращаемые флаги. */\n customMediaQueries?: T;\n}\n\n/**\n * Компонент `ResponsiveLayout` для определения текущего лэйаута.\n */\nexport function ResponsiveLayout<T extends MediaQueriesType = EmptyObject>(props: ResponsiveLayoutProps<T>) {\n const layoutFlags = useResponsiveLayout<T>({ customMediaQueries: props.customMediaQueries });\n\n useEffect(() => {\n if (props.onLayoutChange) {\n props.onLayoutChange(layoutFlags);\n }\n }, [layoutFlags]);\n\n return (\n <CommonWrapper {...props}>\n {isFunction(props.children) ? props.children(layoutFlags) ?? null : props.children ?? null}\n </CommonWrapper>\n );\n}\n\nResponsiveLayout.__KONTUR_REACT_UI__ = 'ResponsiveLayout';\nResponsiveLayout.displayName = 'ResponsiveLayout';\n","import React from 'react';\n\nimport { ResponsiveLayout } from './ResponsiveLayout';\nimport type { ResponsiveLayoutFlags } from './types';\n\nexport function responsiveLayout<T extends new (...args: any[]) => React.Component>(WrappedComp: T) {\n const ComponentWithLayout = class extends WrappedComp {\n public layout!: ResponsiveLayoutFlags;\n\n public get currentLayout(): ResponsiveLayoutFlags {\n return this.layout;\n }\n\n public set currentLayout(value: ResponsiveLayoutFlags) {\n //\n }\n\n public get isMobileLayout(): boolean {\n return this.layout.isMobile;\n }\n\n public set isMobileLayout(value: boolean) {\n //\n }\n\n public renderWithLayout = (currentLayout: ResponsiveLayoutFlags) => {\n this.layout = currentLayout;\n\n return super.render();\n };\n\n public render() {\n return <ResponsiveLayout>{this.renderWithLayout}</ResponsiveLayout>;\n }\n };\n\n const nameDescriptor = Object.getOwnPropertyDescriptor(ComponentWithLayout, 'name');\n\n if (!nameDescriptor || nameDescriptor.configurable) {\n Object.defineProperty(ComponentWithLayout, 'name', { value: WrappedComp.name });\n }\n\n return ComponentWithLayout;\n}\n","import { globalObject } from '@skbkontur/global-object';\n\nlet scrollbarWidth: number | null = null;\n\nexport function getScrollWidth() {\n if (!globalObject.document) {\n return 0;\n }\n const { body } = globalObject.document;\n if (!body) {\n throw Error('There is no \"body\" element in \"document\"');\n }\n\n if (scrollbarWidth !== null) {\n return scrollbarWidth;\n }\n\n const div = globalObject.document.createElement('div');\n div.innerHTML = 'a'; // In IE clientWidth is 0 if this div is empty.\n div.style.overflowY = 'scroll';\n body.appendChild(div);\n // At least in jest it's NaN.\n scrollbarWidth = div.offsetWidth - div.clientWidth || 0;\n body.removeChild(div);\n\n return scrollbarWidth;\n}\n","import React from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { getScrollWidth } from '../../lib/dom/getScrollWidth';\nimport { css } from '../../lib/theming/Emotion';\n\nlet disposeDocumentStyle: (() => void) | null = null;\n\ninterface GlobalWithRetailUIVerticalScrollCounter {\n RetailUIVerticalScrollCounter?: number;\n}\n\nexport class HideBodyVerticalScroll extends React.Component {\n public static __KONTUR_REACT_UI__ = 'HideBodyVerticalScroll';\n public static displayName = 'HideBodyVerticalScroll';\n\n private initialScroll = 0;\n private master = false;\n\n public componentDidMount() {\n const counter = VerticalScrollCounter.increment();\n if (counter === 1) {\n this.master = true;\n this.initialScroll = globalObject.document?.documentElement ? globalObject.document.documentElement.scrollTop : 0;\n HideBodyVerticalScroll.updateScrollVisibility();\n globalObject.addEventListener?.('resize', HideBodyVerticalScroll.updateScrollVisibility);\n }\n }\n\n public componentDidUpdate() {\n if (this.master) {\n HideBodyVerticalScroll.updateScrollVisibility();\n }\n }\n\n public componentWillUnmount() {\n const counter = VerticalScrollCounter.decrement();\n if (counter === 0) {\n this.restoreStyles();\n globalObject.removeEventListener?.('resize', HideBodyVerticalScroll.updateScrollVisibility);\n }\n }\n\n public render() {\n return null;\n }\n\n public static updateScrollVisibility = () => {\n const shouldHide = !disposeDocumentStyle;\n if (shouldHide) {\n HideBodyVerticalScroll.hideScroll();\n }\n };\n\n public static hideScroll = () => {\n if (!isBrowser(globalObject)) {\n return;\n }\n const { documentElement } = globalObject.document;\n const { clientHeight, scrollHeight } = documentElement;\n const documentComputedStyle = globalObject.getComputedStyle(documentElement);\n const scrollbarConst = globalObject.getComputedStyle(documentElement).overflowY === 'scroll';\n const scrollWidth = clientHeight < scrollHeight || scrollbarConst ? getScrollWidth() : 0;\n const documentMargin = parseFloat(documentComputedStyle.marginRight || '');\n const className = generateDocumentStyle(documentMargin + scrollWidth);\n\n disposeDocumentStyle = HideBodyVerticalScroll.attachStyle(documentElement, className);\n };\n\n public static attachStyle = (element: HTMLElement, className: string) => {\n element.classList.add(className);\n return () => {\n element.classList.remove(className);\n };\n };\n\n private restoreStyles = () => {\n if (disposeDocumentStyle) {\n disposeDocumentStyle();\n disposeDocumentStyle = null;\n\n if (globalObject.document) {\n globalObject.document.documentElement.scrollTop = this.initialScroll;\n }\n }\n };\n}\n\nclass VerticalScrollCounter {\n public static increment = (): number => {\n const globalWithRetailUIVerticalScrollCounter = globalObject as GlobalWithRetailUIVerticalScrollCounter;\n const counter = globalWithRetailUIVerticalScrollCounter.RetailUIVerticalScrollCounter || 0;\n return (globalWithRetailUIVerticalScrollCounter.RetailUIVerticalScrollCounter = counter + 1);\n };\n\n public static decrement = (): number => {\n const globalWithRetailUIVerticalScrollCounter = globalObject as GlobalWithRetailUIVerticalScrollCounter;\n const counter = globalWithRetailUIVerticalScrollCounter.RetailUIVerticalScrollCounter || 0;\n return (globalWithRetailUIVerticalScrollCounter.RetailUIVerticalScrollCounter = counter - 1);\n };\n\n public static get = (): number => {\n const globalWithRetailUIVerticalScrollCounter = globalObject as GlobalWithRetailUIVerticalScrollCounter;\n return globalWithRetailUIVerticalScrollCounter.RetailUIVerticalScrollCounter || 0;\n };\n}\n\nfunction generateDocumentStyle(documentMargin: number) {\n return css`\n overflow: hidden !important;\n margin-right: ${documentMargin}px !important;\n height: 100%;\n `;\n}\n","import ReactDOM from 'react-dom';\nimport debounce from 'lodash.debounce';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { PORTAL_INLET_ATTR, PORTAL_OUTLET_ATTR } from '../internal/RenderContainer';\n\nimport { isInstanceOf } from './isInstanceOf';\nimport { isFirefox } from './client';\n\ninterface FocusOutsideEventHandler {\n elements: Element[] | (() => Element[]);\n callback: (event: Event) => void;\n}\n\nconst handlers: FocusOutsideEventHandler[] = [];\n\nfunction addHandleEvent() {\n /**\n * Firefox do not supports 'focusin' event.\n * Focus events bubbles multiple time\n * without possibilty to cancell bubbling.\n * Using debounce to capture only first focus event\n * Mozilla Firefix\n * ¯\\_(ツ)_/¯\n */\n globalObject.document?.body.addEventListener(\n isFirefox ? 'focus' : ('focusin' as 'focus'),\n isFirefox ? debounce(handleNativeFocus, 0, { leading: true, trailing: false }) : handleNativeFocus,\n { capture: true },\n );\n}\n\nif (globalObject.document?.readyState === 'complete') {\n addHandleEvent();\n} else {\n globalObject.addEventListener?.('load', addHandleEvent);\n}\n\nfunction handleNativeFocus(event: UIEvent) {\n // FIXME: not safe casting\n const target: Element = (event.target || event.srcElement) as Element;\n\n handlers.forEach((handler) => {\n let elements = handler.elements;\n if (typeof elements === 'function') {\n elements = elements();\n }\n\n if (elements.some(containsTargetOrRenderContainer(target))) {\n return;\n }\n ReactDOM.unstable_batchedUpdates(() => handler.callback(event));\n });\n}\n\nexport function containsTargetOrRenderContainer(target: Element) {\n return (element: Element) => {\n if (!element) {\n return false;\n }\n if (element.contains(target)) {\n return true;\n }\n const container = findRenderContainer(target, element);\n return !!container && element.contains(container);\n };\n}\n\n/**\n * Searches RenderContainer placed in \"rootNode\" for \"node\"\n */\nexport function findRenderContainer(node: Element, rootNode: Element, container?: Element): Element | null {\n const currentNode = node.parentNode;\n if (\n !currentNode ||\n node === rootNode ||\n currentNode === rootNode ||\n currentNode === globalObject.document?.body ||\n currentNode === globalObject.document?.documentElement ||\n !isInstanceOf(currentNode, globalObject.Element)\n ) {\n return container ? container : null;\n }\n\n const newContainerId = currentNode.getAttribute(PORTAL_OUTLET_ATTR);\n if (newContainerId) {\n const nextNode = globalObject.document?.querySelector(`[${PORTAL_INLET_ATTR}~=\"${newContainerId}\"]`);\n\n if (!nextNode) {\n throw Error(`Origin node for render container was not found`);\n }\n\n return findRenderContainer(nextNode, rootNode, nextNode);\n }\n\n return findRenderContainer(currentNode, rootNode, container);\n}\n\nexport function listen(elements: Element[] | (() => Element[]), callback: (event: Event) => void) {\n const handler = {\n elements,\n callback,\n };\n handlers.push(handler);\n\n return {\n remove() {\n const index = handlers.indexOf(handler);\n if (index > -1) {\n handlers.splice(index, 1);\n }\n },\n };\n}\n","import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { listen as listenFocusOutside, containsTargetOrRenderContainer } from '../../lib/listenFocusOutside';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport type { Nullable } from '../../typings/utility-types';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\n\nexport interface RenderLayerProps extends CommonProps {\n children: JSX.Element;\n onClickOutside?: (e: Event) => void;\n onFocusOutside?: (e: Event) => void;\n active?: boolean;\n getAnchorElement?: () => Nullable<Element>;\n}\n\ntype DefaultProps = Required<Pick<RenderLayerProps, 'active'>>;\n\n@rootNode\nexport class RenderLayer extends React.Component<RenderLayerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderLayer';\n public static displayName = 'RenderLayer';\n\n public static defaultProps: DefaultProps = {\n active: true,\n };\n\n private getProps = createPropsGetter(RenderLayer.defaultProps);\n\n private focusOutsideListenerToken: {\n remove: () => void;\n } | null = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.getProps().active) {\n this.attachListeners();\n }\n }\n\n public componentDidUpdate(prevProps: RenderLayerProps) {\n const { active } = this.getProps();\n\n if (!prevProps.active && active) {\n this.attachListeners();\n }\n if (prevProps.active && !active) {\n this.detachListeners();\n }\n }\n\n public componentWillUnmount() {\n if (this.getProps().active) {\n this.detachListeners();\n }\n }\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {React.Children.only(this.props.children)}\n </CommonWrapper>\n );\n }\n\n private getAnchorNode(): Nullable<Element> {\n const { getAnchorElement } = this.props;\n return getAnchorElement ? getAnchorElement() : getRootNode(this);\n }\n\n private attachListeners() {\n const node = this.getAnchorNode();\n if (!node) {\n return;\n }\n\n this.focusOutsideListenerToken = listenFocusOutside(() => [node], this.handleFocusOutside);\n globalObject.addEventListener?.('blur', this.handleFocusOutside);\n globalObject.document?.addEventListener(\n 'ontouchstart' in globalObject.document.documentElement && 'onpointerup' in globalObject.document.documentElement\n ? 'pointerup'\n : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n\n private detachListeners() {\n if (this.focusOutsideListenerToken) {\n this.focusOutsideListenerToken.remove();\n this.focusOutsideListenerToken = null;\n }\n\n globalObject.removeEventListener?.('blur', this.handleFocusOutside);\n globalObject.document?.removeEventListener(\n 'ontouchstart' in globalObject.document.documentElement && 'onpointerup' in globalObject.document.documentElement\n ? 'pointerup'\n : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n\n private handleFocusOutside = (event: Event) => {\n if (this.props.onFocusOutside) {\n this.props.onFocusOutside(event);\n }\n };\n\n private handleNativeDocClick = (event: Event) => {\n const target = event.target || event.srcElement;\n const node = this.getAnchorNode();\n\n if (!node || (isInstanceOf(target, globalObject.Element) && containsTargetOrRenderContainer(target)(node))) {\n return;\n }\n\n if (this.props.onClickOutside) {\n this.props.onClickOutside(event);\n }\n };\n}\n","import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\n\nconst styles = {\n root(t: Theme) {\n return css`\n width: 100%;\n height: 100%;\n flex-direction: column;\n display: flex;\n justify-content: flex-end;\n border-radius: ${t.mobilePopupContainerBorderRadius};\n overflow: hidden;\n padding-bottom: ${t.mobilePopupContainerBottomPadding};\n background: ${t.menuBgDefault};\n `;\n },\n\n wrapper() {\n return css`\n position: fixed;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n overflow: auto;\n `;\n },\n\n content(t: Theme) {\n return css`\n background-color: ${t.bgDefault};\n `;\n },\n\n container(t: Theme) {\n return css`\n position: absolute;\n top: ${t.mobilePopupTopPadding};\n left: ${t.mobilePopupOuterIndentY};\n right: ${t.mobilePopupOuterIndentY};\n z-index: 100000;\n `;\n },\n\n bg() {\n return css`\n position: fixed;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n z-index: 9999;\n background: #333333;\n pointer-events: none;\n opacity: 50%;\n `;\n },\n\n bottomIndent() {\n return css`\n height: 80px;\n `;\n },\n\n zIndex() {\n return css`\n position: relative;\n `;\n },\n};\n\nexport const jsStyles = memoizeStyle(styles);\n","import { css, memoizeStyle } from '../../../lib/theming/Emotion';\nimport type { Theme } from '../../../lib/theming/Theme';\n\nconst styles = {\n root(t: Theme) {\n return css`\n position: relative;\n padding: ${t.mobilePopupHeaderPadding};\n `;\n },\n\n rootWithoutContent() {\n return css`\n padding: 8px 0 0 0;\n `;\n },\n\n container() {\n return css`\n display: flex;\n flex-direction: column;\n `;\n },\n\n caption(t: Theme) {\n return css`\n font-size: ${t.mobilePopupHeaderFontSize};\n line-height: ${t.mobilePopupHeaderLineHeight};\n font-weight: ${t.mobilePopupHeaderFontWeight};\n color: ${t.textColorDefault};\n `;\n },\n\n captionWithChildren() {\n return css`\n padding-bottom: 8px;\n `;\n },\n};\n\nexport const jsStyles = memoizeStyle(styles);\n","import React from 'react';\n\nimport { isNonNullable } from '../../../lib/utils';\nimport type { Theme } from '../../../lib/theming/Theme';\nimport { cx } from '../../../lib/theming/Emotion';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext';\n\nimport { jsStyles } from './MobilePopupHeader.styles';\n\ninterface MobilePopupHeaderProps {\n /**\n * Заголовок шапки\n */\n caption?: string;\n}\n\nexport class MobilePopupHeader extends React.Component<React.PropsWithChildren<MobilePopupHeaderProps>> {\n public static __KONTUR_REACT_UI__ = 'MobileMenuHeader';\n public static displayName = 'MobileMenuHeader';\n\n private theme!: Theme;\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, children } = this.props;\n\n return (\n <div\n className={cx({\n [jsStyles.root(this.theme)]: true,\n [jsStyles.rootWithoutContent()]: !caption && !children,\n })}\n >\n <div className={jsStyles.container()}>\n {caption && (\n <div\n className={cx({\n [jsStyles.caption(this.theme)]: true,\n [jsStyles.captionWithChildren()]: isNonNullable(children),\n })}\n >\n {caption}\n </div>\n )}\n {React.isValidElement(children) && <div>{children}</div>}\n </div>\n </div>\n );\n }\n}\n","import { css, memoizeStyle } from '../../../lib/theming/Emotion';\nimport type { Theme } from '../../../lib/theming/Theme';\n\nconst styles = {\n root(t: Theme) {\n return css`\n position: relative;\n display: flex;\n flex-direction: column;\n padding: ${t.mobilePopupHeaderPadding};\n `;\n },\n};\n\nexport const jsStyles = memoizeStyle(styles);\n","import React from 'react';\n\nimport type { Theme } from '../../../lib/theming/Theme';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext';\n\nimport { jsStyles } from './MobilePopupFooter.styles';\n\nexport class MobilePopupFooter extends React.Component<React.PropsWithChildren> {\n public static __KONTUR_REACT_UI__ = 'MobileMenuFooter';\n\n private theme!: Theme;\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 { children } = this.props;\n\n if (!children || !React.isValidElement(children)) {\n return null;\n }\n\n return <div className={jsStyles.root(this.theme)}>{children}</div>;\n }\n}\n","import type { HTMLAttributes } from 'react';\nimport React from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { RenderContainer } from '../RenderContainer';\nimport { HideBodyVerticalScroll } from '../HideBodyVerticalScroll';\nimport { ZIndex } from '../ZIndex';\nimport { RenderLayer } from '../RenderLayer';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\n\nimport { jsStyles } from './MobilePopup.styles';\nimport { MobilePopupHeader } from './MobilePopupHeader';\nimport { MobilePopupFooter } from './MobilePopupFooter';\n\ninterface MobilePopupProps extends Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n /**\n * Функция, вызываемая при закрытии всплывающего окна\n */\n onClose?: () => void;\n /**\n * Заголовок всплывающего окна, располагается в шапке\n */\n caption?: string;\n /**\n * Шапка всплывающего окна\n */\n headerChildComponent?: React.ReactNode;\n /**\n * Подвал всплывающего окна\n */\n footerChildComponent?: React.ReactNode;\n /**\n * Позволяет получить контент всплывающего окна без обёртки в виде `RenderContainer`\n */\n withoutRenderContainer?: boolean;\n /**\n * Функция, вызываемая при клике по вуали\n */\n onCloseRequest?: () => void;\n /**\n * Позволяет контролировать текущее состояние всплывающего окна\n */\n opened: boolean;\n children?: React.ReactNode;\n}\n\nexport const MobilePopupDataTids = {\n root: 'MobilePopup__root',\n container: 'MobilePopup__container',\n} as const;\n\n@rootNode\nexport class MobilePopup extends React.Component<MobilePopupProps> {\n public static __KONTUR_REACT_UI__ = 'MobileMenuHeader';\n public static displayName = 'MobileMenuHeader';\n\n // see #2873 and #2895\n public static readonly defaultRootNode = null;\n\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 public renderMain() {\n const content = (\n <ZIndex id={this.props.id} className={jsStyles.zIndex()} priority={'MobilePopup'}>\n <Transition in={this.props.opened} onExited={this.props.onClose} mountOnEnter unmountOnExit timeout={0}>\n <div className={jsStyles.wrapper()}>\n <RenderLayer onClickOutside={this.close}>\n <div\n ref={this.setRootNode}\n data-tid={MobilePopupDataTids.container}\n className={jsStyles.container(this.theme)}\n >\n <div data-tid={MobilePopupDataTids.root} className={jsStyles.root(this.theme)}>\n <MobilePopupHeader caption={this.props.caption}>{this.props.headerChildComponent}</MobilePopupHeader>\n <div className={jsStyles.content(this.theme)}>{this.props.children}</div>\n <MobilePopupFooter>{this.props.footerChildComponent}</MobilePopupFooter>\n </div>\n <div onClick={this.close} className={jsStyles.bottomIndent()} />\n </div>\n </RenderLayer>\n <div className={jsStyles.bg()} />\n <HideBodyVerticalScroll />\n </div>\n </Transition>\n </ZIndex>\n );\n\n if (this.props.withoutRenderContainer) {\n return content;\n }\n\n return <RenderContainer>{content}</RenderContainer>;\n }\n\n public close = () => {\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest();\n }\n };\n}\n","import type { Nullable } from '../typings/utility-types';\n\nexport interface InstanceWithAnchorElement {\n getAnchorElement: () => Nullable<Element>;\n}\n\nexport const isInstanceWithAnchorElement = (instance: unknown): instance is InstanceWithAnchorElement => {\n return Boolean(instance) && Object.prototype.hasOwnProperty.call(instance, 'getAnchorElement');\n};\n","import React from 'react';\n\nexport interface ReactUIFeatureFlags {\n dateInputFixSameNumberTypingOnRefocus?: boolean;\n dateInputAllowInvalidValuesInDays?: boolean;\n comboBoxAllowValueChangeInEditingState?: boolean;\n stickyReduceLayoutEvents?: boolean;\n radioGroupRemoveBaselineSpacer?: boolean;\n groupAddHintAndTooltipSupport?: boolean;\n popupFixPinTearing?: boolean;\n autocompleteUseMaskedInput?: boolean;\n fxInputUseMaskedInput?: boolean;\n sidePageDisableHeaderShrink?: boolean;\n sidePageNotCutTitleOnStuckByDefault?: boolean;\n tokenInputCreateTokenOnBlurInWithoutReferenceMode?: boolean;\n textareaBaselineAlign?: boolean;\n}\n\nexport const reactUIFeatureFlagsDefault: ReactUIFeatureFlags = {\n dateInputFixSameNumberTypingOnRefocus: false,\n dateInputAllowInvalidValuesInDays: false,\n comboBoxAllowValueChangeInEditingState: false,\n stickyReduceLayoutEvents: false,\n radioGroupRemoveBaselineSpacer: false,\n groupAddHintAndTooltipSupport: false,\n popupFixPinTearing: false,\n autocompleteUseMaskedInput: false,\n fxInputUseMaskedInput: false,\n sidePageDisableHeaderShrink: false,\n sidePageNotCutTitleOnStuckByDefault: false,\n tokenInputCreateTokenOnBlurInWithoutReferenceMode: false,\n textareaBaselineAlign: false,\n};\n\nexport const ReactUIFeatureFlagsContext = React.createContext<ReactUIFeatureFlags>(reactUIFeatureFlagsDefault);\n\nReactUIFeatureFlagsContext.displayName = 'ReactUIFeatureFlagsContext';\nReactUIFeatureFlagsContext.__KONTUR_REACT_UI__ = 'ReactUIFeatureFlagsContext';\n","import type { ReactUIFeatureFlags } from './ReactUIFeatureFlagsContext';\nimport { reactUIFeatureFlagsDefault } from './ReactUIFeatureFlagsContext';\n\nexport const getFullReactUIFlagsContext = (flags: ReactUIFeatureFlags) => {\n return { ...reactUIFeatureFlagsDefault, ...flags };\n};\n","import type React from 'react';\n\nimport type { Nullable } from '../typings/utility-types';\n\nimport { isNonNullable, isNullable } from './utils';\n\ntype RefVariants<T> = Nullable<React.RefObject<T> | React.RefCallback<T>>;\ntype RefCallback<T> = ReturnType<typeof createRefCallback<T>>;\nconst CALLBACK_AS_KEY = { callbackAsKey: true };\n\ntype CacheKey<T> = NonNullable<RefVariants<T> | typeof CALLBACK_AS_KEY>;\ntype CacheValue<T> = RefCallback<T> | WeakMap<CacheKey<T>, CacheValue<T>>;\n\nconst cache = new WeakMap<CacheKey<any>, CacheValue<any>>();\n\n/**\n * Позволяет объединить несколько параметров ref в один вызов, в котором во все переданные параметры просетится ref.\n *\n * Кеширует результат возвращаемой функции, так что при одинаковых входных параметрах React-у будет возвращена одинаковая функция.\n * Это позволит не вызывать лишние commitAttachRef и commitDetachRef и не ловить сайдэффекты связанные со значением ref в моменте\n *\n * Не прокидывай в параметрах стрелочные функции, так результат не будет закеширован.\n *\n * @returns function that passed refs: (...refs) =>\n *\n * @example\n * const SomeComponent = forwardRef((props, ref) => {\n * const localRef = useRef();\n * return <div ref={mergeRefs(localRef, ref)} />;\n * });\n */\nexport function mergeRefs<T>(...refs: Array<RefVariants<T>>): RefCallback<T> {\n const cacheLevel = getLeafRefInCache(...refs);\n\n const cachedCallback = cacheLevel.get(CALLBACK_AS_KEY);\n if (cachedCallback && typeof cachedCallback === 'function') {\n return cachedCallback;\n }\n\n const newRefCallback = createRefCallback<T>(refs);\n cacheLevel.set(CALLBACK_AS_KEY, newRefCallback);\n\n return newRefCallback;\n}\n\nfunction createRefCallback<T>(refs: Array<RefVariants<T>>) {\n function applyRef(value: T) {\n refs.forEach((ref) => {\n if (typeof ref === 'function') {\n return ref(value);\n } else if (isNonNullable(ref)) {\n return ((ref as React.MutableRefObject<T>).current = value);\n }\n });\n }\n return applyRef;\n}\n\nfunction getLeafRefInCache<T>(...refs: Array<RefVariants<T>>) {\n let cacheLevel = cache;\n for (const ref of refs) {\n if (isNullable(ref)) {\n continue;\n }\n const child = cacheLevel.get(ref);\n\n if (child && typeof child !== 'function') {\n cacheLevel = child;\n } else {\n const leaf = new WeakMap();\n cacheLevel.set(ref, leaf);\n cacheLevel = leaf;\n }\n }\n return cacheLevel;\n}\n","import { globalObject } from '@skbkontur/global-object';\n\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport type { PopupPositionsType } from './Popup';\n\nexport interface Rect {\n top: number;\n left: number;\n width: number;\n height: number;\n}\n\nexport interface Offset {\n top: number;\n left: number;\n}\n\nexport interface PositionObject {\n direction: string;\n align: string;\n}\n\nfunction getPositionObject(position: string): PositionObject {\n const x = position.split(' ');\n\n return {\n direction: x[0],\n align: x[1],\n };\n}\n\nfunction getElementAbsoluteRect(element: Element): Rect {\n const rect = _getElementRelativeRect(element);\n return convertRectToAbsolute(rect);\n}\n\nfunction isAbsoluteRectFullyVisible(coordinates: Offset, popupRect: Rect): boolean {\n const windowRelativeRect = _getWindowRelativeRect();\n const windowAbsoluteRect = convertRectToAbsolute(windowRelativeRect);\n const absoluteRect = {\n top: coordinates.top,\n left: coordinates.left,\n height: popupRect.height,\n width: popupRect.width,\n };\n\n return _rectContainsRect(windowAbsoluteRect, absoluteRect);\n}\n\n// Can become fully visible by scrolling into viewport\nfunction canBecomeFullyVisible(positionName: PopupPositionsType, coordinates: Offset) {\n const position = getPositionObject(positionName);\n\n if (position.direction === 'top') {\n const availableScrollDistances = convertRectToAbsolute(_getWindowRelativeRect());\n return coordinates.top + availableScrollDistances.top >= 0;\n }\n\n if (position.direction === 'left') {\n const availableScrollDistances = convertRectToAbsolute(_getWindowRelativeRect());\n return coordinates.left + availableScrollDistances.left >= 0;\n }\n\n // NOTE: for bottom/right cases browser will always expand document size\n return true;\n}\n\nfunction _getElementRelativeRect(element: Element) {\n const rect = getDOMRect(element);\n\n return {\n top: rect.top,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n}\n\nfunction _getWindowRelativeRect(): Rect {\n return {\n top: 0,\n left: 0,\n width: _getViewProperty((x) => x.clientWidth) || globalObject.innerWidth || 0,\n height: _getViewProperty((x) => x.clientHeight) || globalObject.innerHeight || 0,\n };\n}\n\nfunction convertRectToAbsolute(rect: Rect): Rect {\n const offset = _getAbsoluteOffset();\n\n return {\n top: rect.top + offset.top,\n left: rect.left + offset.left,\n width: rect.width,\n height: rect.height,\n };\n}\n\nfunction _getAbsoluteOffset(): Offset {\n const scrollTop = globalObject.pageYOffset || _getViewProperty((x) => x.scrollTop);\n const scrollLeft = globalObject.pageXOffset || _getViewProperty((x) => x.scrollLeft);\n\n const clientTop = _getViewProperty((x) => x.clientTop);\n const clientLeft = _getViewProperty((x) => x.clientLeft);\n\n const top = scrollTop - clientTop;\n const left = scrollLeft - clientLeft;\n\n return {\n top,\n left,\n };\n}\n\nfunction _rectContainsRect(outerRect: Rect, innerRect: Rect): boolean {\n return (\n innerRect.top > outerRect.top &&\n innerRect.top + innerRect.height < outerRect.top + outerRect.height &&\n innerRect.left > outerRect.left &&\n innerRect.left + innerRect.width < outerRect.left + outerRect.width\n );\n}\n\nfunction _getViewProperty(getProperty: (e: Element) => number): number {\n const views = [globalObject.document?.documentElement, globalObject.document?.body];\n return views.map((x) => x && getProperty(x)).find(Boolean) || 0;\n}\n\nexport const PopupHelper = {\n getPositionObject,\n getElementAbsoluteRect,\n isFullyVisible: isAbsoluteRectFullyVisible,\n canBecomeFullyVisible,\n};\n","import { css, memoizeStyle } from '../../lib/theming/Emotion';\n\nexport const styles = memoizeStyle({\n pin() {\n return css`\n position: absolute;\n `;\n },\n\n pinTop() {\n return css`\n clip-path: polygon(0 0, 50% 100%, 100% 0);\n `;\n },\n\n pinBottom() {\n return css`\n clip-path: polygon(0 100%, 50% 0, 100% 100%);\n `;\n },\n\n pinLeft() {\n return css`\n clip-path: polygon(0 0, 100% 50%, 0 100%);\n `;\n },\n\n pinRight() {\n return css`\n clip-path: polygon(100% 0, 0 50%, 100% 100%);\n `;\n },\n});\n","import React from 'react';\n\nimport type { Nullable } from '../../typings/utility-types';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport type { PositionObject, Rect } from './PopupHelper';\nimport { PopupHelper } from './PopupHelper';\nimport { styles } from './PopupPinNew.styles';\nimport { PopupDataTids } from './Popup';\n\ninterface PopupPinProps {\n /** Цвет фона пина */\n backgroundColor: string;\n\n /** Смещение пина от края попапа. Край задаётся в пропе position вторым словом */\n offset: number;\n\n /** Ссылка на попап */\n popupElement?: Nullable<Element>;\n\n /** Позиция попапа, по которой будет вычислено положение пина */\n popupPosition: string;\n\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n size: number;\n}\n\nexport class PopupPinNew extends React.Component<PopupPinProps> {\n public static __KONTUR_REACT_UI__ = 'PopupPin';\n public static displayName = 'PopupPin';\n\n private positionObject!: PositionObject;\n\n public render() {\n if (!this.props.popupElement) {\n return null;\n }\n\n this.positionObject = PopupHelper.getPositionObject(this.props.popupPosition);\n\n const coords = this.getPinCoordinates(this.props.popupElement);\n if (!coords || !coords.left || !coords.top) {\n return null;\n }\n\n const inlineStyle = this.getPinInlineStyle(coords.left, coords.top);\n const directionalStyle = this.getPinDirectionalStyle();\n if (!inlineStyle || !directionalStyle) {\n return null;\n }\n\n return (\n <div data-tid={PopupDataTids.popupPin} className={cx(styles.pin(), directionalStyle)} style={inlineStyle}></div>\n );\n }\n\n private getPopupOppositeDirection() {\n const popupDirection = PopupHelper.getPositionObject(this.props.popupPosition).direction;\n switch (popupDirection) {\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n default:\n console.error(`Can't get opposite direction: invalid direction '${popupDirection}'`);\n }\n }\n\n private getPinInlineStyle = (left: number, top: number) => {\n const direction = this.getPopupOppositeDirection();\n if (!direction) {\n return;\n }\n\n // Добавляем запас в 1px, чтобы пофиксить случайные отделения пинов\n const correctedLeft = left - 1;\n const correctedTop = top - 1;\n const correctedSize = this.props.size + 1;\n\n switch (direction) {\n case 'top':\n case 'bottom':\n return {\n [direction]: -this.props.size + 'px',\n left: correctedLeft + 'px',\n width: correctedSize * 2 + 'px',\n height: correctedSize + 'px',\n backgroundColor: this.props.backgroundColor,\n };\n case 'left':\n case 'right':\n return {\n [direction]: -this.props.size + 'px',\n top: correctedTop + 'px',\n height: correctedSize * 2 + 'px',\n width: correctedSize + 'px',\n backgroundColor: this.props.backgroundColor,\n };\n default:\n console.error(`Can't get inline style: invalid direction '${direction}'. Returning default`);\n }\n };\n\n private getPinCoordinates = (popupElement: Element) => {\n const popupRect = PopupHelper.getElementAbsoluteRect(popupElement);\n const { direction, align } = this.positionObject;\n switch (direction) {\n case 'top':\n return {\n top: popupRect.height,\n left: this.getPinLeftCoordinate(popupRect, align),\n };\n case 'bottom':\n return {\n top: -2 * this.props.size,\n left: this.getPinLeftCoordinate(popupRect, align),\n };\n case 'left':\n return {\n top: this.getPinTopCoordinate(popupRect, align),\n left: popupRect.width,\n };\n case 'right':\n return {\n top: this.getPinTopCoordinate(popupRect, align),\n left: -2 * this.props.size,\n };\n default:\n console.error(`Can't get coordinate: invalid direction '${direction}'.`);\n }\n };\n\n private getPinTopCoordinate = (popupRect: Rect, align: string) => {\n switch (align) {\n case 'top':\n return this.props.offset;\n case 'middle':\n return popupRect.height / 2 - this.props.size;\n case 'bottom':\n return popupRect.height - this.props.offset - 2 * this.props.size;\n default:\n console.error(`Can't get coordinate: invalid align '${align}'.`);\n }\n };\n\n private getPinLeftCoordinate = (popupRect: Rect, align: string) => {\n switch (align) {\n case 'left':\n return this.props.offset;\n case 'center':\n return popupRect.width / 2 - this.props.size;\n case 'right':\n return popupRect.width - this.props.offset - 2 * this.props.size;\n default:\n console.error(`Can't get coordinate: invalid align '${align}'.`);\n }\n };\n\n private getPinDirectionalStyle = () => {\n switch (this.positionObject.direction) {\n case 'top':\n return styles.pinTop();\n case 'bottom':\n return styles.pinBottom();\n case 'left':\n return styles.pinLeft();\n case 'right':\n return styles.pinRight();\n default:\n console.error(`Can't get directional style: invalid direction '${this.positionObject.direction}'.`);\n }\n };\n}\n","import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n popup(t: Theme) {\n return css`\n position: absolute;\n border-radius: ${t.popupBorderRadius};\n border: ${t.popupBorder} ${t.popupBorderColor};\n display: flex;\n width: max-content;\n `;\n },\n\n popupIgnoreHover() {\n return css`\n pointer-events: none;\n `;\n },\n\n content(t: Theme) {\n return css`\n overflow: hidden;\n border-radius: ${t.popupBorderRadius};\n flex-shrink: 0;\n max-width: 100%;\n line-height: normal;\n `;\n },\n\n contentInner(t: Theme) {\n return css`\n color: ${t.popupTextColor};\n background: ${t.popupBackground};\n `;\n },\n\n shadow(t: Theme) {\n return css`\n box-shadow: ${t.popupBoxShadow};\n `;\n },\n\n transitionEnter() {\n return css`\n opacity: 0.01;\n `;\n },\n 'transition-enter-top'() {\n return css`\n transform: translateY(10px);\n `;\n },\n 'transition-enter-middle'() {\n return css``;\n },\n 'transition-enter-bottom'() {\n return css`\n transform: translateY(-10px);\n `;\n },\n 'transition-enter-left'() {\n return css`\n transform: translateX(10px);\n `;\n },\n 'transition-enter-right'() {\n return css`\n transform: translateX(-10px);\n `;\n },\n transitionEnterActive() {\n return css`\n transition:\n transform 0.18s cubic-bezier(0.22, 0.61, 0.36, 1),\n opacity 0.18s cubic-bezier(0.22, 0.61, 0.36, 1);\n opacity: 1;\n transform: translate(0, 0);\n `;\n },\n transitionExit() {\n return css`\n opacity: 0.01;\n transition: opacity 0.15s ease-out;\n transform: translate(0, 0);\n `;\n },\n absoluteParent() {\n return css`\n position: absolute;\n text-align: initial;\n `;\n },\n});\n","import { css, memoizeStyle } from '../../lib/theming/Emotion';\n\nexport const styles = memoizeStyle({\n wrapper() {\n return css`\n overflow: hidden;\n position: absolute;\n pointer-events: none;\n `;\n },\n});\n","import React from 'react';\n\nimport type { Nullable } from '../../typings/utility-types';\n\nimport type { PositionObject, Rect } from './PopupHelper';\nimport { PopupHelper } from './PopupHelper';\nimport { styles } from './PopupPin.styles';\nimport { PopupDataTids } from './Popup';\n\nconst borderStyles = {\n position: 'absolute',\n borderStyle: 'solid',\n borderTopColor: 'transparent',\n borderBottomColor: 'transparent',\n borderLeftColor: 'transparent',\n borderRightColor: 'transparent',\n};\n\ninterface Props {\n /**\n * Цвет фон пина\n */\n backgroundColor: string;\n /**\n * Цвет границы пина\n */\n borderColor: string;\n /**\n * Ширина границы пина\n */\n borderWidth: number;\n /**\n * Смещение пина от края попапа. Край задаётся в пропе position вторым словом\n */\n offset: number;\n /**\n * Ссылка на попап\n */\n popupElement: Nullable<Element>;\n /**\n * Позиция попапа, по которой будет вычислено положение пина\n */\n popupPosition: string;\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n size: number;\n}\n\nexport class PopupPin extends React.Component<Props> {\n public static __KONTUR_REACT_UI__ = 'PopupPin';\n public static displayName = 'PopupPin';\n\n public render() {\n if (!this.props.popupElement) {\n return null;\n }\n\n const options = this.getPinOptions(\n PopupHelper.getElementAbsoluteRect(this.props.popupElement),\n PopupHelper.getPositionObject(this.props.popupPosition),\n this.props.size,\n this.props.offset,\n this.props.borderWidth,\n );\n\n const styleOuter: React.CSSProperties = this.getOuterStyle(\n options.activeBorder,\n options.outerSize,\n this.props.borderColor,\n );\n\n const styleInner: React.CSSProperties = this.getInnerStyle(\n options.activeBorder,\n this.props.size,\n this.props.backgroundColor,\n );\n\n const styleWrapper = this.getWrapperStyle(options.outerLeft, options.outerTop, options.outerSize);\n\n return (\n <div data-tid={PopupDataTids.popupPin} className={styles.wrapper()} style={styleWrapper}>\n <div style={styleOuter}>\n <div style={styleInner} />\n </div>\n </div>\n );\n }\n\n private getPopupOppositeDirection(): 'bottom' | 'top' | 'left' | 'right' {\n const popupDirection = PopupHelper.getPositionObject(this.props.popupPosition).direction;\n switch (popupDirection) {\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n default:\n throw new TypeError('Unknown direction ' + popupDirection);\n }\n }\n\n private getWrapperStyle(left: number, top: number, borderWidth: number) {\n const direction = this.getPopupOppositeDirection();\n switch (direction) {\n case 'top':\n case 'bottom':\n return {\n [direction]: -borderWidth + 'px',\n left: left + 'px',\n width: borderWidth * 2 + 'px',\n height: borderWidth + 'px',\n };\n case 'left':\n case 'right':\n return {\n [direction]: -borderWidth + 'px',\n top: top + 'px',\n height: borderWidth * 2 + 'px',\n width: borderWidth + 'px',\n };\n default:\n throw new TypeError('Unknown direction ' + direction);\n }\n }\n\n private getOuterStyle(activeBorder: string, borderWitdth: number, borderColor: string): React.CSSProperties {\n const direction = this.getPopupOppositeDirection();\n switch (direction) {\n case 'top':\n case 'bottom':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 'px',\n left: '0px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n case 'left':\n case 'right':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 'px',\n top: '0px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n default:\n throw new TypeError('Unknown direction ' + direction);\n }\n }\n\n private getInnerStyle(activeBorder: string, borderWitdth: number, borderColor: string): React.CSSProperties {\n const direction = this.getPopupOppositeDirection();\n switch (direction) {\n case 'top':\n case 'bottom':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 2 + 'px',\n left: -borderWitdth + 'px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n case 'left':\n case 'right':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 2 + 'px',\n top: -borderWitdth + 'px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n default:\n throw new TypeError('Unknown direction ' + direction);\n }\n }\n\n private getPinOptions(\n popupRect: Rect,\n popupPosition: PositionObject,\n pinSize: number,\n pinOffset: number,\n borderWidth: number,\n ) {\n const bordersDelta = 2 * borderWidth;\n const outerSize = pinSize + bordersDelta;\n\n switch (popupPosition.direction) {\n case 'top':\n return {\n outerTop: popupRect.height,\n outerLeft: this.getPinLeftCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n innerTop: -outerSize,\n innerLeft: -outerSize + bordersDelta,\n activeBorder: 'Top',\n outerSize,\n };\n case 'bottom':\n return {\n outerTop: -2 * outerSize,\n outerLeft: this.getPinLeftCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n innerTop: -outerSize + 2 * bordersDelta,\n innerLeft: -outerSize + bordersDelta,\n activeBorder: 'Bottom',\n outerSize,\n };\n case 'left':\n return {\n outerTop: this.getPinTopCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n outerLeft: popupRect.width,\n innerTop: -outerSize + bordersDelta,\n innerLeft: -outerSize,\n activeBorder: 'Left',\n outerSize,\n };\n case 'right':\n return {\n outerTop: this.getPinTopCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n outerLeft: -2 * outerSize,\n innerTop: -outerSize + bordersDelta,\n innerLeft: -outerSize + 2 * bordersDelta,\n activeBorder: 'Right',\n outerSize,\n };\n default:\n throw new Error('Direction must be one of top, right, bottom, left');\n }\n }\n\n private getPinTopCoordinate(popupRect: Rect, align: string, pinHeight: number, pinOffset: number) {\n switch (align) {\n case 'top':\n return pinOffset;\n case 'middle':\n return popupRect.height / 2 - pinHeight;\n case 'bottom':\n return popupRect.height - pinOffset - 2 * pinHeight;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getPinLeftCoordinate(popupRect: Rect, align: string, pinHeight: number, pinOffset: number) {\n switch (align) {\n case 'left':\n return pinOffset;\n case 'center':\n return popupRect.width / 2 - pinHeight;\n case 'right':\n return popupRect.width - pinOffset - 2 * pinHeight;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n}\n","import type { HTMLAttributes, LegacyRef } from 'react';\nimport React from 'react';\nimport { Transition } from 'react-transition-group';\nimport warning from 'warning';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport type { Nullable } from '../../typings/utility-types';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Priority } from '../ZIndex';\nimport { ZIndex } from '../ZIndex';\nimport { RenderContainer } from '../RenderContainer';\nimport type { FocusEventType, MouseEventType } from '../../typings/event-types';\nimport { getRandomID, isFunction, isNonNullable, isNullable, isRefableElement } from '../../lib/utils';\nimport { isIE11, isEdge } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { MobilePopup } from '../MobilePopup';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { isInstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\nimport { mergeRefs } from '../../lib/mergeRefs';\nimport { getVisualStateDataAttributes } from '../CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { PopupPinNew } from './PopupPinNew';\nimport type { Offset, PositionObject, Rect } from './PopupHelper';\nimport { PopupHelper } from './PopupHelper';\nimport { styles } from './Popup.styles';\nimport { PopupPin } from './PopupPin';\n\nconst POPUP_BORDER_DEFAULT_COLOR = 'transparent';\nconst TRANSITION_TIMEOUT = { enter: 0, exit: 200 };\n\nexport const PopupNonPinnablePositions = ['middle center', 'middle left', 'middle right'];\n\nexport const PopupPinnablePositions = [\n 'top center',\n 'top left',\n 'top right',\n 'bottom center',\n 'bottom left',\n 'bottom right',\n 'left middle',\n 'left top',\n 'left bottom',\n 'right middle',\n 'right top',\n 'right bottom',\n];\n\nexport const PopupPositions = [...PopupPinnablePositions, ...PopupNonPinnablePositions] as const;\n\nexport const DefaultPosition = PopupPositions[0];\n\nexport type PopupPositionsType = (typeof PopupPositions)[number];\nexport type PopupPinnablePositionsType = (typeof PopupPinnablePositions)[number];\nexport type ShortPopupPositionsType = 'top' | 'bottom' | 'left' | 'right';\n\nexport const DUMMY_LOCATION: PopupLocation = {\n position: DefaultPosition,\n coordinates: {\n top: -9999,\n left: -9999,\n },\n isFullyVisible: false,\n};\n\nexport interface PopupHandlerProps {\n onMouseEnter?: (event: MouseEventType) => void;\n onMouseLeave?: (event: MouseEventType) => void;\n onClick?: (event: MouseEventType) => void;\n onFocus?: (event: FocusEventType) => void;\n onBlur?: (event: FocusEventType) => void;\n onOpen?: () => void;\n onClose?: () => void;\n}\n\nexport interface PopupProps\n extends Omit<CommonProps, 'children'>,\n PopupHandlerProps,\n Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n /**\n * Ссылка (ref) на элемент или React компонент, для которого рисуется попап\n */\n anchorElement: React.ReactNode | Element;\n /**\n * Фон попапа и пина\n */\n backgroundColor?: React.CSSProperties['backgroundColor'];\n borderColor?: React.CSSProperties['borderColor'];\n children: React.ReactNode | (() => React.ReactNode);\n /**\n * Показывать ли пин\n */\n hasPin?: boolean;\n /**\n * Применять ли box-shadow на попапе. При false отключает границу на пине\n */\n hasShadow?: boolean;\n disableAnimations?: boolean;\n /**\n * Отступ попапа от элемента\n */\n margin?: number;\n maxWidth?: number | string;\n /**\n * Показан или скрыт попап\n */\n opened: boolean;\n /**\n * Смещение пина от края попапа. Край задаётся в пропе position вторым словом\n */\n pinOffset?: number;\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n pinSize?: number;\n /**\n * смещение попапа относительно родительского элемента\n */\n popupOffset?: number;\n priority?: Priority;\n /**\n * С какой стороны показывать попап и край попапа,\n * на котором будет отображаться пин\n */\n positions?: Readonly<PopupPositionsType[]>;\n /**\n * Приоритетная позиция попапа\n */\n pos?: PopupPositionsType | ShortPopupPositionsType;\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper?: boolean;\n /**\n * Игнорировать ли события hover/click\n */\n ignoreHover?: boolean;\n width?: React.CSSProperties['width'];\n minWidth?: React.CSSProperties['minWidth'];\n /**\n * При очередном рендере пытаться сохранить первоначальную позицию попапа\n * (в том числе, когда он выходит за пределы экрана, но может быть проскролен в него).\n *\n * Нужен только для Tooltip. В остальных случаях позиция перестраивается автоматически.\n * @see https://github.com/skbkontur/retail-ui/pull/1195\n */\n tryPreserveFirstRenderedPosition?: boolean;\n withoutMobile?: boolean;\n /** @ignore */\n disablePortal?: boolean;\n mobileOnCloseRequest?: () => void;\n /**\n * Возвращает текущую позицию попапа\n */\n onPositionChange?: (pos: PopupPositionsType, isFullyVisible: boolean) => void;\n}\n\ninterface PopupLocation {\n coordinates: {\n left: number;\n top: number;\n };\n position: PopupPositionsType;\n isFullyVisible: boolean;\n}\n\nexport interface PopupState {\n location: Nullable<PopupLocation>;\n}\n\nexport const PopupDataTids = {\n root: 'Popup__root',\n content: 'PopupContent',\n contentInner: 'PopupContentInner',\n popupPin: 'PopupPin__root',\n} as const;\n\nexport const PopupIds = {\n root: PopupDataTids.root,\n};\n\ntype DefaultProps = Required<\n Pick<\n PopupProps,\n | 'popupOffset'\n | 'hasPin'\n | 'hasShadow'\n | 'disablePortal'\n | 'disableAnimations'\n | 'useWrapper'\n | 'ignoreHover'\n | 'width'\n | 'priority'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Popup extends React.Component<PopupProps, PopupState> {\n public static __KONTUR_REACT_UI__ = 'Popup';\n public static displayName = 'Popup';\n\n public static defaultProps: DefaultProps = {\n popupOffset: 0,\n hasPin: false,\n hasShadow: false,\n disableAnimations: isTestEnv,\n useWrapper: false,\n ignoreHover: false,\n disablePortal: false,\n width: 'auto',\n priority: ZIndex.priorities.Popup,\n };\n\n private getProps = createPropsGetter(Popup.defaultProps);\n\n // see #2873 and #2895\n public static readonly defaultRootNode = null;\n\n public state: PopupState = { location: this.props.opened ? DUMMY_LOCATION : null };\n private theme!: Theme;\n public featureFlags!: ReactUIFeatureFlags;\n private layoutEventsToken: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private locationUpdateId: Nullable<number> = null;\n private lastPopupContentElement: Nullable<Element>;\n private isMobileLayout!: boolean;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private refForTransition = React.createRef<HTMLDivElement>();\n private hasAnchorElementListeners = false;\n private rootId = PopupIds.root + getRandomID();\n\n public anchorElement: Nullable<Element> = null;\n private absoluteParent: Nullable<HTMLDivElement> = null;\n\n public componentDidMount() {\n this.updateLocation();\n this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent);\n\n if (!this.hasAnchorElementListeners) {\n this.addEventListeners(this.anchorElement);\n }\n }\n\n public static getDerivedStateFromProps(props: Readonly<PopupProps>, state: PopupState) {\n /**\n * Delaying updateLocation to ensure it happens after props update\n */\n if (props.opened) {\n if (!state.location) {\n return { location: DUMMY_LOCATION };\n }\n } else if (state.location) {\n return { location: DUMMY_LOCATION };\n }\n return state;\n }\n\n public componentDidUpdate(prevProps: PopupProps, prevState: PopupState) {\n const hadNoLocation = prevState.location === DUMMY_LOCATION;\n const hasLocation = this.state.location !== DUMMY_LOCATION;\n const wasClosed = prevProps.opened && !this.props.opened;\n\n if (this.isMobileLayout && prevState.location === null && this.state.location === null) {\n this.setState({ location: DUMMY_LOCATION });\n }\n\n if (this.props.opened && hadNoLocation && hasLocation && this.props.onOpen) {\n this.props.onOpen();\n }\n if (wasClosed && !hasLocation && this.props.onClose) {\n this.props.onClose();\n }\n if (this.props.opened) {\n this.delayUpdateLocation();\n }\n }\n\n public componentWillUnmount() {\n this.cancelDelayedUpdateLocation();\n if (this.hasAnchorElementListeners) {\n this.removeEventListeners(this.anchorElement);\n }\n if (this.layoutEventsToken) {\n this.layoutEventsToken.remove();\n this.layoutEventsToken = null;\n }\n if (this.state.location && this.props.onClose) {\n this.props.onClose();\n }\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n private renderMobile() {\n const { opened } = this.props;\n const children = this.renderChildren();\n\n return children ? (\n <CommonWrapper rootNodeRef={this.setRootNode}>\n <MobilePopup opened={opened} withoutRenderContainer onCloseRequest={this.props.mobileOnCloseRequest}>\n {this.content(children)}\n </MobilePopup>\n </CommonWrapper>\n ) : null;\n }\n\n private renderMain() {\n const { anchorElement } = this.props;\n const useWrapper = this.getProps().useWrapper;\n\n let anchor: Nullable<React.ReactNode> = null;\n if (isInstanceOf(anchorElement, globalObject.Element)) {\n this.updateAnchorElement(anchorElement);\n } else if (React.isValidElement(anchorElement)) {\n anchor = useWrapper ? <span>{anchorElement}</span> : anchorElement;\n } else {\n anchor = <span>{anchorElement}</span>;\n }\n\n const anchorWithRef =\n anchor && React.isValidElement(anchor) && isRefableElement(anchor)\n ? React.cloneElement(anchor, {\n ref: mergeRefs(\n (anchor as React.RefAttributes<typeof anchor>)?.ref as React.RefCallback<any>,\n this.updateAnchorElement,\n ),\n } as { ref: (instance: Nullable<React.ReactInstance>) => void })\n : null;\n // we need to get anchor's DOM node\n // so we either set our own ref on it via cloning\n // or relay on findDOMNode (inside getRootNode)\n // which should be called within updateAnchorElement\n // in the case when the anchor is not refable\n\n const canGetAnchorNode = !!anchorWithRef || isInstanceOf(anchorElement, globalObject.Element);\n const renderRef = canGetAnchorNode ? null : this.updateAnchorElement;\n const renderAnchor = anchorWithRef || anchor;\n\n return this.props.disablePortal\n ? this.renderWithoutPortal(renderAnchor, renderRef)\n : this.renderInPortal(renderAnchor, renderRef);\n }\n\n private renderInPortal = (anchor: React.ReactNode, ref: null | LegacyRef<RenderContainer>) => {\n const { location } = this.state;\n\n return (\n <RenderContainer anchor={anchor} ref={ref}>\n {this.isMobileLayout && !this.props.withoutMobile\n ? this.renderMobile()\n : location && this.renderContent(location)}\n </RenderContainer>\n );\n };\n\n private renderWithoutPortal = (anchor: React.ReactNode, ref: null | LegacyRef<EmptyWrapper>) => {\n const { location } = this.state;\n\n return (\n <EmptyWrapper ref={ref}>\n {anchor}\n {location && (\n <div ref={this.updateAbsoluteElement} className={styles.absoluteParent()}>\n {this.renderContent(location)}\n </div>\n )}\n </EmptyWrapper>\n );\n };\n\n private updateAnchorElement = (instance: Nullable<React.ReactInstance>) => {\n const childDomNode = isInstanceWithAnchorElement(instance) ? instance.getAnchorElement() : getRootNode(instance);\n const anchorElement = this.anchorElement;\n\n if (childDomNode !== anchorElement) {\n this.removeEventListeners(anchorElement);\n this.anchorElement = childDomNode;\n this.addEventListeners(childDomNode);\n }\n };\n\n private updateAbsoluteElement = (instance: HTMLDivElement) => {\n this.absoluteParent = instance;\n };\n\n private addEventListeners(element: Nullable<Element>) {\n if (element && isInstanceOf(element, globalObject.Element)) {\n // @ts-expect-error: Type ElementEventMap is missing events: https://github.com/skbkontur/retail-ui/pull/2946#discussion_r931072657\n element.addEventListener('mouseenter', this.handleMouseEnter);\n // @ts-expect-error: See the comment above\n element.addEventListener('mouseleave', this.handleMouseLeave);\n // @ts-expect-error: See the comment above\n element.addEventListener('click', this.handleClick);\n element.addEventListener('focusin', this.handleFocus as EventListener);\n element.addEventListener('focusout', this.handleBlur as EventListener);\n\n this.hasAnchorElementListeners = true;\n }\n }\n\n private removeEventListeners(element: Nullable<Element>) {\n if (element && isInstanceOf(element, globalObject.Element)) {\n // @ts-expect-error: Type ElementEventMap is missing events: https://github.com/skbkontur/retail-ui/pull/2946#discussion_r931072657\n element.removeEventListener('mouseenter', this.handleMouseEnter);\n // @ts-expect-error: See the comment above\n element.removeEventListener('mouseleave', this.handleMouseLeave);\n // @ts-expect-error: See the comment above\n element.removeEventListener('click', this.handleClick);\n element.removeEventListener('focusin', this.handleFocus as EventListener);\n element.removeEventListener('focusout', this.handleBlur as EventListener);\n\n this.hasAnchorElementListeners = false;\n }\n }\n\n private handleMouseEnter = (event: MouseEventType) => {\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(event);\n }\n };\n\n private handleMouseLeave = (event: MouseEventType) => {\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(event);\n }\n };\n\n private handleClick = (event: MouseEventType) => {\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n };\n\n private handleFocus = (event: FocusEventType) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: FocusEventType) => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private calculateWidth = (width: PopupProps['width']) => {\n if (typeof width === 'string' && width.includes('%')) {\n const anchorWidth = getDOMRect(this.anchorElement).width;\n\n return width.replace(/(\\d)+%/g, (percent: string) => `${(anchorWidth * parseFloat(percent)) / 100}px`);\n }\n return width;\n };\n\n private content = (children: React.ReactNode) => {\n const { backgroundColor } = this.props;\n const { width, minWidth } = this.getProps();\n\n return (\n <div\n className={styles.content(this.theme)}\n data-tid={PopupDataTids.content}\n ref={mergeRefs(this.refForTransition, this.refPopupContentElement)}\n >\n <div\n className={styles.contentInner(this.theme)}\n style={{ backgroundColor, width: this.calculateWidth(width), minWidth: this.calculateWidth(minWidth) }}\n data-tid={PopupDataTids.contentInner}\n >\n {children}\n </div>\n </div>\n );\n };\n\n private renderContent(location: PopupLocation) {\n const { maxWidth, opened } = this.props;\n const { hasShadow, disableAnimations, ignoreHover } = this.getProps();\n const children = this.renderChildren();\n\n const relativeShift = this.getRelativeShift();\n const { direction } = PopupHelper.getPositionObject(location.position);\n const rootStyle: React.CSSProperties = {\n maxWidth,\n top: location.coordinates.top + relativeShift.top,\n left: location.coordinates.left + relativeShift.left,\n };\n\n return (\n <Transition\n timeout={TRANSITION_TIMEOUT}\n appear={!disableAnimations}\n in={Boolean(opened && children)}\n mountOnEnter\n unmountOnExit\n enter={!disableAnimations}\n exit={!disableAnimations}\n onExited={this.resetLocation}\n nodeRef={this.refForTransition}\n >\n {(state: string) => (\n <CommonWrapper {...this.props} rootNodeRef={this.setRootNode} {...this.prepareDataVisualState()}>\n <ZIndex\n id={this.props.id ?? this.rootId}\n data-tid={PopupDataTids.root}\n priority={this.props.priority}\n className={cx({\n [styles.popup(this.theme)]: true,\n [styles.shadow(this.theme)]: hasShadow,\n [styles.popupIgnoreHover()]: ignoreHover,\n ...(disableAnimations\n ? {}\n : {\n [styles[`transition-enter-${direction}` as keyof typeof styles](this.theme)]: true,\n [styles.transitionEnter()]: state === 'entering',\n [styles.transitionEnterActive()]: state === 'entered',\n [styles.transitionExit()]: state === 'exiting',\n }),\n })}\n style={rootStyle}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n {this.content(children)}\n {(!this.isMobileLayout || this.props.withoutMobile) && this.renderPin(location.position)}\n </ZIndex>\n </CommonWrapper>\n )}\n </Transition>\n );\n }\n\n private prepareDataVisualState = () => {\n const position = this.state.location?.position;\n if (position) {\n const attrName = `position-` + position.replace(' ', '-');\n return getVisualStateDataAttributes({ [attrName]: true });\n }\n return {};\n };\n\n private resetLocation = () => {\n this.cancelDelayedUpdateLocation();\n this.state.location !== null && this.setState({ location: null });\n };\n\n private renderChildren() {\n return isFunction(this.props.children) ? this.props.children() : this.props.children;\n }\n\n private refPopupContentElement = (element: HTMLDivElement) => {\n this.lastPopupContentElement = element;\n };\n\n private renderPin(positionName: string): React.ReactNode {\n const isDefaultBorderColor = this.theme.popupBorderColor === POPUP_BORDER_DEFAULT_COLOR;\n const pinBorder = isIE11 && isDefaultBorderColor ? 'rgba(0, 0, 0, 0.09)' : this.theme.popupBorderColor;\n\n const { pinSize, backgroundColor, borderColor } = this.props;\n const { hasShadow, hasPin } = this.getProps();\n const position = PopupHelper.getPositionObject(positionName);\n\n return (\n hasPin &&\n !PopupNonPinnablePositions.includes(positionName) &&\n (this.featureFlags.popupFixPinTearing ? (\n <PopupPinNew\n popupElement={this.lastPopupContentElement}\n popupPosition={positionName}\n size={pinSize || parseInt(this.theme.popupPinSize)}\n offset={this.getPinOffset(position.align)}\n backgroundColor={backgroundColor || this.theme.popupBackground}\n />\n ) : (\n <PopupPin\n popupElement={this.lastPopupContentElement}\n popupPosition={positionName}\n size={pinSize || parseInt(this.theme.popupPinSize)}\n offset={this.getPinOffset(position.align)}\n borderWidth={hasShadow ? 1 : 0}\n backgroundColor={backgroundColor || this.theme.popupBackground}\n borderColor={borderColor || pinBorder}\n />\n ))\n );\n }\n\n private handleLayoutEvent = () => {\n if (!this.state.location) {\n return;\n }\n this.updateLocation();\n };\n\n private delayUpdateLocation() {\n this.cancelDelayedUpdateLocation();\n this.locationUpdateId = globalObject.requestAnimationFrame?.(this.updateLocation);\n }\n\n private cancelDelayedUpdateLocation() {\n if (this.locationUpdateId) {\n globalObject.cancelAnimationFrame?.(this.locationUpdateId);\n this.locationUpdateId = null;\n }\n }\n\n private updateLocation = () => {\n const popupContentElement = this.lastPopupContentElement;\n\n if (!popupContentElement) {\n return;\n }\n\n const location = this.getLocation(popupContentElement, this.state.location);\n if (location) {\n this.props.onPositionChange?.(location.position, location.isFullyVisible);\n }\n\n if (!this.locationEquals(this.state.location, location)) {\n this.setState({ location });\n }\n };\n\n private locationEquals(x: Nullable<PopupLocation>, y: Nullable<PopupLocation>) {\n if (x === y) {\n return true;\n }\n\n if (isNullable(x) || isNullable(y)) {\n return false;\n }\n\n if (!isIE11 && !isEdge) {\n return (\n x.coordinates.left === y.coordinates.left &&\n x.coordinates.top === y.coordinates.top &&\n x.position === y.position\n );\n }\n\n // Для ie/edge обновляем позицию только при разнице минимум в 1. Иначе есть вероятность\n // уйти в бесконечный ререндер\n\n return (\n x.position === y.position &&\n Math.abs(x.coordinates.top - y.coordinates.top) <= 1 &&\n Math.abs(x.coordinates.left - y.coordinates.left) <= 1\n );\n }\n\n private reorderPropsPositionsWithPriorityPos() {\n const positions = this.props.positions ? this.props.positions : PopupPinnablePositions;\n let pos_ = '';\n if (this.props.pos) {\n pos_ = this.props.pos;\n } else {\n pos_ = positions[0];\n }\n const index = positions.findIndex((position) => position.startsWith(pos_));\n if (index === -1) {\n warning(false, 'Unexpected position ' + pos_ + ' passed to Popup. Expected one of: ' + positions.join(', '));\n return positions;\n }\n return [...positions.slice(index), ...positions.slice(0, index)];\n }\n\n private getLocation(popupElement: Element, location?: Nullable<PopupLocation>): Nullable<PopupLocation> {\n const { tryPreserveFirstRenderedPosition } = this.getProps();\n const positions = this.reorderPropsPositionsWithPriorityPos();\n\n const anchorElement = this.anchorElement;\n\n warning(\n anchorElement && isInstanceOf(anchorElement, globalObject.Element),\n 'Anchor element is not defined or not instance of Element',\n );\n\n if (!(anchorElement && isInstanceOf(anchorElement, globalObject.Element))) {\n return location;\n }\n\n const anchorRect = PopupHelper.getElementAbsoluteRect(anchorElement);\n const popupRect = PopupHelper.getElementAbsoluteRect(popupElement);\n\n let position: PopupPositionsType;\n let coordinates: Offset;\n\n if (location && location !== DUMMY_LOCATION && location.position) {\n position = location.position;\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n\n const isFullyVisible = PopupHelper.isFullyVisible(coordinates, popupRect);\n const canBecomeVisible = !isFullyVisible && PopupHelper.canBecomeFullyVisible(position, coordinates);\n\n if (\n // если нужно сохранить первоначальную позицию и Попап целиком\n // находится в пределах вьюпорта (или может быть проскроллен в него)\n (tryPreserveFirstRenderedPosition && (isFullyVisible || canBecomeVisible)) ||\n // если Попап целиком во вьюпорте и в самой приоритетной позиции\n // (иначе нужно попытаться позицию сменить)\n (isFullyVisible && position === positions[0])\n ) {\n // сохраняем текущую позицию\n return { coordinates, position, isFullyVisible: true };\n }\n }\n\n for (position of positions) {\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n if (PopupHelper.isFullyVisible(coordinates, popupRect)) {\n return { coordinates, position, isFullyVisible: true };\n }\n }\n\n position = positions[0];\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n\n return { coordinates, position, isFullyVisible: false };\n }\n\n private getPinnedPopupOffset(anchorRect: Rect, position: PositionObject) {\n if (!this.getProps().hasPin || /center|middle/.test(position.align)) {\n return 0;\n }\n\n const anchorSize = /top|bottom/.test(position.direction) ? anchorRect.width : anchorRect.height;\n\n const { pinSize } = this.props;\n\n return Math.max(\n 0,\n this.getPinOffset(position.align) + (pinSize || parseInt(this.theme.popupPinSize)) - anchorSize / 2,\n );\n }\n\n private getRelativeShift = () => {\n const { absoluteParent } = this;\n\n if (!this.props.disablePortal || !absoluteParent) {\n return {\n top: 0,\n left: 0,\n };\n }\n\n const rect = PopupHelper.getElementAbsoluteRect(absoluteParent);\n\n return {\n top: -rect.top,\n left: -rect.left,\n };\n };\n\n private getCoordinates(anchorRect: Rect, popupRect: Rect, positionName: string) {\n const { margin: marginFromProps } = this.props;\n const margin =\n isNonNullable(marginFromProps) && !isNaN(marginFromProps)\n ? marginFromProps\n : parseInt(this.theme.popupMargin) || 0;\n const position = PopupHelper.getPositionObject(positionName);\n const popupOffset = this.getProps().popupOffset + this.getPinnedPopupOffset(anchorRect, position);\n\n switch (position.direction) {\n case 'top':\n return {\n top: anchorRect.top - popupRect.height - margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'middle':\n return {\n top: anchorRect.top + anchorRect.height / 2 - popupRect.height / 2,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'bottom':\n return {\n top: anchorRect.top + anchorRect.height + margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'left':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left - popupRect.width - margin,\n };\n case 'right':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left + anchorRect.width + margin,\n };\n default:\n throw new Error(`Unexpected direction '${position.direction}'`);\n }\n }\n\n private getPinOffset(align: string) {\n const { pinOffset } = this.props;\n\n switch (align) {\n case 'top':\n case 'bottom':\n return pinOffset || parseInt(this.theme.popupPinOffsetY);\n case 'left':\n case 'right':\n return pinOffset || parseInt(this.theme.popupPinOffsetX);\n case 'center':\n case 'middle':\n return 0;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getHorizontalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n switch (align) {\n case 'left':\n return anchorRect.left - popupOffset;\n case 'center':\n return anchorRect.left - (popupRect.width - anchorRect.width) / 2;\n case 'right':\n return anchorRect.left - (popupRect.width - anchorRect.width) + popupOffset;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getVerticalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n switch (align) {\n case 'top':\n return anchorRect.top - popupOffset;\n case 'middle':\n return anchorRect.top - (popupRect.height - anchorRect.height) / 2;\n case 'bottom':\n return anchorRect.top - (popupRect.height - anchorRect.height) + popupOffset;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n}\n\n// Нужно, чтобы получать по рефу dom-элемент, в который зарендерится anchor\ntype EmptyWrapperProps = Readonly<{\n children: React.ReactNode;\n}>;\n\nclass EmptyWrapper extends React.Component<EmptyWrapperProps> {\n public render() {\n return this.props.children;\n }\n}\n","export enum KeyboardEventCodes {\n Unidentified = 'Unidentified',\n Escape = 'Escape',\n KeyA = 'KeyA',\n KeyC = 'KeyC',\n KeyV = 'KeyV',\n KeyX = 'KeyX',\n Enter = 'Enter',\n Tab = 'Tab',\n CapsLock = 'CapsLock',\n Minus = 'Minus',\n Equal = 'Equal',\n Backspace = 'Backspace',\n Comma = 'Comma',\n Period = 'Period',\n Slash = 'Slash',\n Backslash = 'Backslash',\n IntlBackslash = 'IntlBackslash',\n Space = 'Space',\n Home = 'Home',\n End = 'End',\n Insert = 'Insert',\n Delete = 'Delete',\n PageUp = 'PageUp',\n PageDown = 'PageDown',\n NumpadDivide = 'NumpadDivide',\n NumpadSubtract = 'NumpadSubtract',\n NumpadDecimal = 'NumpadDecimal',\n NumpadEnter = 'NumpadEnter',\n}\n","import { KeyboardEventCodes as Codes } from './KeyboardEventCodes';\n\nexport type Location = number;\nexport type KeyCode = number;\nexport type KeyboardKey = [KeyCode, Location];\n\nconst STANDARD = 0; //KeyboardEvent.DOM_KEY_LOCATION_STANDARD;\nconst NUMPAD = 3; //KeyboardEvent.DOM_KEY_LOCATION_NUMPAD;\n\nexport const KeyboardMapKeys: { [code in Codes]: KeyboardKey[] } = {\n [Codes.Unidentified]: [[0, 0]],\n [Codes.End]: [[35, STANDARD]],\n [Codes.Escape]: [[27, STANDARD]],\n [Codes.Equal]: [[187, STANDARD]],\n [Codes.Backspace]: [[8, STANDARD]],\n [Codes.Enter]: [[13, STANDARD]],\n [Codes.NumpadEnter]: [[13, NUMPAD]],\n [Codes.Home]: [[36, STANDARD]],\n [Codes.Delete]: [[46, STANDARD]],\n [Codes.Insert]: [[45, STANDARD]],\n [Codes.PageUp]: [[33, STANDARD]],\n [Codes.PageDown]: [[34, STANDARD]],\n [Codes.Tab]: [[9, STANDARD]],\n [Codes.CapsLock]: [[20, STANDARD]],\n [Codes.KeyA]: [[65, STANDARD]],\n [Codes.KeyC]: [[67, STANDARD]],\n [Codes.KeyV]: [[86, STANDARD]],\n [Codes.KeyX]: [[88, STANDARD]],\n [Codes.NumpadDecimal]: [\n [110, NUMPAD],\n [46, NUMPAD],\n ],\n [Codes.NumpadSubtract]: [[109, NUMPAD]],\n [Codes.NumpadDivide]: [[111, NUMPAD]],\n [Codes.Comma]: [[188, STANDARD]],\n [Codes.Minus]: [[189, STANDARD]],\n [Codes.Period]: [[190, STANDARD]],\n [Codes.Slash]: [[191, STANDARD]],\n [Codes.Backslash]: [[220, STANDARD]],\n [Codes.IntlBackslash]: [[226, STANDARD]],\n [Codes.Space]: [[32, STANDARD]],\n};\n","import { globalObject } from '@skbkontur/global-object';\n\nimport { isMac } from '../../client';\nimport { isInstanceOf } from '../../isInstanceOf';\n\nimport { extractCode } from './extractCode';\nimport { KeyboardEventCodes as Codes } from './KeyboardEventCodes';\n\ntype E = React.KeyboardEvent<HTMLElement> | KeyboardEvent;\ntype IS = (e: E) => boolean;\ntype ISMod = (is?: IS) => IS;\ntype ISSome = (...is: IS[]) => IS;\n\n// IE 9+ supports char attribute\n// https://developer.mozilla.org/ru/docs/Web/API/KeyboardEvent\nconst getChar = (e: E & { char?: string; nativeEvent?: { char?: string } }) =>\n isInstanceOf(e, globalObject.KeyboardEvent) ? e.char : e.nativeEvent?.char;\n\nexport const isShortcutCopy: IS = (e) =>\n ((isMac ? e.metaKey : e.ctrlKey) && extractCode(e) === Codes.KeyC) ||\n (!isMac && e.ctrlKey && isKeyInsert(e)) ||\n e.key === 'Copy';\n\nexport const isShortcutPaste: IS = (e) =>\n ((isMac ? e.metaKey : e.ctrlKey) && extractCode(e) === Codes.KeyV) ||\n (!isMac && e.shiftKey && isKeyInsert(e)) ||\n e.key === 'Paste';\n\nexport const isShortcutCut: IS = (e) =>\n ((isMac ? e.metaKey : e.ctrlKey) && extractCode(e) === Codes.KeyX) ||\n (!isMac && e.shiftKey && isKeyDelete(e)) ||\n e.key === 'Cut';\n\nexport const isShortcutSelectAll: IS = (e) => (isMac ? e.metaKey : e.ctrlKey) && extractCode(e) === Codes.KeyA;\n\nexport const isShortcutJumpCaret: IS = (e) => (isMac ? e.altKey : e.ctrlKey) && isKeyArrowHorizontal(e);\n\nexport const isKeyEscape: IS = (e) => e.key === 'Escape' || e.key === 'Esc';\nexport const isKeyHome: IS = (e) => e.key === 'Home';\nexport const isKeyEnd: IS = (e) => e.key === 'End';\nexport const isKeyMeta: IS = (e) => e.key === 'Meta' || e.key === 'Win';\nexport const isKeyControl: IS = (e) => e.key === 'Control';\nexport const isKeyShift: IS = (e) => e.key === 'Shift';\nexport const isKeyAlt: IS = (e) => e.key === 'Alt';\nexport const isKeyDelete: IS = (e) => e.key === 'Delete' || e.key === 'Del';\nexport const isKeyBackspace: IS = (e) => e.key === 'Backspace';\nexport const isKeyCapsLock: IS = (e) => e.key === 'CapsLock';\nexport const isKeyInsert: IS = (e) => e.key === 'Insert';\nexport const isKeyTab: IS = (e) => e.key === 'Tab';\nexport const isKeyEnter: IS = (e) => e.key === 'Enter';\nexport const isKeyArrowUp: IS = (e) => e.key === 'ArrowUp' || e.key === 'Up';\nexport const isKeyArrowRight: IS = (e) => e.key === 'ArrowRight' || e.key === 'Right';\nexport const isKeyArrowDown: IS = (e) => e.key === 'ArrowDown' || e.key === 'Down';\nexport const isKeyArrowLeft: IS = (e) => e.key === 'ArrowLeft' || e.key === 'Left';\nexport const isKeySpace: IS = (e) => e.key === ' ' || e.key === 'Spacebar';\nexport const isKeyComma: IS = (e) => e.key === ',' || getChar(e) === ',';\n\nexport const isCodeMinus: IS = (e) => extractCode(e) === Codes.Minus;\nexport const isCodeNumpadDecimal: IS = (e) => extractCode(e) === Codes.NumpadDecimal;\nexport const isCodeNumpadDivide: IS = (e) => extractCode(e) === Codes.NumpadDivide;\nexport const isCodeNumpadSubtract: IS = (e) => extractCode(e) === Codes.NumpadSubtract;\nexport const isCodeSlash: IS = (e) => extractCode(e) === Codes.Slash;\nexport const isCodeBackslash: IS = (e) => extractCode(e) === Codes.Backslash;\nexport const isCodeIntlBackslash: IS = (e) => extractCode(e) === Codes.IntlBackslash;\nexport const isCodeComma: IS = (e) => extractCode(e) === Codes.Comma;\nexport const isCodePeriod: IS = (e) => extractCode(e) === Codes.Period;\n\nexport const isKeyArrowHorizontal: IS = (e) => isKeyArrowRight(e) || isKeyArrowLeft(e);\nexport const isKeyArrowVertical: IS = (e) => isKeyArrowUp(e) || isKeyArrowDown(e);\nexport const isKeyArrow: IS = (e) => isKeyArrowHorizontal(e) || isKeyArrowVertical(e);\nexport const isKeyNumber: IS = (e) => /^\\d+$/.test(e.key);\nexport const isKeyChar: IS = (e) => e.key.trim().length === 1;\nexport const isKeyFs: IS = (e) => /^(?:F[1-9]|F1[0-2]|Soft[1-4])$/.test(e.key);\n\nexport const isModified: ISMod = (is) => (e) =>\n (e.shiftKey || e.metaKey || e.ctrlKey || e.altKey) && (is ? is(e) : true);\nexport const isUnmodified: ISMod = (is) => (e) => !isModified()(e) && (is ? is(e) : true);\nexport const isModShift: ISMod = (is) => (e) => e.shiftKey && (is ? is(e) : true);\nexport const isModCtrl: ISMod = (is) => (e) => e.ctrlKey && (is ? is(e) : true);\nexport const isModAlt: ISMod = (is) => (e) => e.altKey && (is ? is(e) : true);\n\nexport const someKeys: ISSome =\n (...iss) =>\n (e) =>\n iss.some((is) => is(e));\n","import { globalObject } from '@skbkontur/global-object';\n\nimport { isKeyArrow, isKeyTab } from './keyboard/identifiers';\n\nclass KeyListener {\n public isTabPressed = false;\n public isArrowPressed = false;\n constructor() {\n globalObject.addEventListener?.('keydown', (e) => {\n this.isTabPressed = isKeyTab(e);\n this.isArrowPressed = isKeyArrow(e);\n });\n globalObject.addEventListener?.('mousedown', () => {\n this.isTabPressed = false;\n this.isArrowPressed = false;\n });\n }\n}\n\nexport const keyListener = new KeyListener();\n","export const ALIASES_TO_SIZES = {\n small: 16,\n medium: 20,\n large: 24,\n} as const;\n\nexport type IconSizeAliases = keyof typeof ALIASES_TO_SIZES;\n\nexport const DEFAULT_ICON_ALIAS: IconSizeAliases = 'small';\n\nexport const DEFAULT_ICON_SIZE: (typeof ALIASES_TO_SIZES)[IconSizeAliases] = 16;\n","import { css } from '../theming/Emotion';\n\nexport const resetButton = () => {\n return css`\n outline: none;\n border: none;\n margin: 0; /* Need for Safari. */\n padding: 0;\n width: auto;\n overflow: visible; /* On IE it's hidden by default. */\n background: transparent;\n\n /* inherit font & color from ancestor */\n color: inherit;\n font: inherit;\n\n /* Normalize 'line-height'. Cannot be changed from 'normal' in Firefox 4+. */\n line-height: normal;\n\n /* Corrects font smoothing for webkit */\n -webkit-font-smoothing: inherit;\n -moz-osx-font-smoothing: inherit;\n\n /* Corrects inability to style clickable 'input' types in iOS */\n -webkit-appearance: none;\n text-align: inherit;\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n `;\n};\n\nexport const resetText = () => {\n return css`\n letter-spacing: normal;\n line-height: normal;\n font-family: inherit;\n font-weight: normal;\n font-style: normal;\n font-variant: normal;\n font-stretch: normal;\n\n /* ie11 doesnt support 'initial' */\n text-align: left;\n text-align: initial;\n text-transform: none;\n text-shadow: none;\n `;\n};\n","import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { resetButton } from '../../lib/styles/Mixins';\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n ${resetButton()}\n display: inline-block;\n position: relative;\n border-radius: ${t.closeBtnIconBorderRadius};\n color: ${t.closeBtnIconColor};\n cursor: pointer;\n transition: color ${t.transitionDuration} ${t.transitionTimingFunction};\n\n &:enabled:focus,\n &:enabled:hover {\n color: ${t.closeBtnIconHoverColor};\n }\n `;\n },\n rootDisabled(t: Theme) {\n return css`\n color: ${t.closeBtnIconDisabledColor};\n `;\n },\n focus(t: Theme) {\n return css`\n box-shadow: ${t.closeBtnIconFocusShadow};\n `;\n },\n wrapper() {\n return css`\n box-sizing: content-box;\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n `;\n },\n});\n","import { forwardRef } from 'react';\n\nexport interface ReactUIComponentWithRef<T, P>\n extends React.NamedExoticComponent<React.PropsWithoutRef<P> & React.RefAttributes<T>> {\n __KONTUR_REACT_UI__: string;\n}\n\nfunction forwardName<ElementType, Props>(\n name: string,\n render: ReactUIComponentWithRef<ElementType, Props>,\n): ReactUIComponentWithRef<ElementType, Props> {\n render.displayName = name;\n render.__KONTUR_REACT_UI__ = name;\n return render;\n}\n\nexport function forwardRefAndName<ElementType, Props, Extra extends Record<string, unknown> = Record<never, never>>(\n name: string,\n render: React.ForwardRefRenderFunction<ElementType, Props>,\n): ReactUIComponentWithRef<ElementType, Props> & Extra {\n return forwardName<ElementType, Props>(\n name,\n forwardRef(render) as ReactUIComponentWithRef<ElementType, Props> & Extra,\n ) as ReactUIComponentWithRef<ElementType, Props> & Extra;\n}\n\nexport interface ReactUIIconWithRef<T, P> extends ReactUIComponentWithRef<T, P> {\n __KONTUR_ICON__: boolean;\n}\n\nfunction forwardIconName<ElementType, Props>(\n name: string,\n render: ReactUIIconWithRef<ElementType, Props>,\n): ReactUIIconWithRef<ElementType, Props> {\n render.displayName = name;\n render.__KONTUR_REACT_UI__ = name;\n render.__KONTUR_ICON__ = true;\n return render;\n}\n\nexport function forwardRefAndIconName<ElementType, Props>(\n name: string,\n render: React.ForwardRefRenderFunction<ElementType, Props>,\n): ReactUIIconWithRef<ElementType, Props> {\n return forwardIconName<ElementType, Props>(name, forwardRef(render) as ReactUIIconWithRef<ElementType, Props>);\n}\n","import React from 'react';\n\nimport { forwardRefAndIconName } from '../../lib/forwardRefAndName';\n\nimport type { IconProps as BaseIconProps } from './BaseIcon';\nimport type { IconSizeAliases } from './iconConstants';\nimport { ALIASES_TO_SIZES, DEFAULT_ICON_ALIAS } from './iconConstants';\n\ntype Sizes = Record<IconSizeAliases, () => React.ReactElement>;\n\ntype IconSizingProps = Omit<BaseIconProps, 'size'> & {\n size?: BaseIconProps['size'] | IconSizeAliases;\n};\n\nconst isAlias = (size: unknown): size is IconSizeAliases =>\n typeof size === 'string' && Object.keys(ALIASES_TO_SIZES).includes(size);\n\nconst getAliasFromSize = (size: number) =>\n Object.entries(ALIASES_TO_SIZES).sort(([, a], [, b]) =>\n Math.abs(size - a) > Math.abs(size - b) ? 1 : -1,\n )[0][0] as IconSizeAliases;\n\nexport const iconSizer = <T extends IconSizingProps>(sizes: Sizes, iconName: string) =>\n forwardRefAndIconName<SVGSVGElement, IconSizingProps & T>(\n iconName,\n ({ size = DEFAULT_ICON_ALIAS, ...props }, ref) => {\n let alias: IconSizeAliases = DEFAULT_ICON_ALIAS;\n if (size !== alias && isAlias(size)) {\n alias = size;\n } else if (typeof size === 'number') {\n alias = getAliasFromSize(size);\n }\n const Icon = sizes[alias]();\n\n return React.cloneElement(Icon, { ref, ...props });\n },\n );\n","/**\n * ZERO WIDTH SPACE\n *\n * Symbol to align to baseline\n *\n * @see https://www.fileformat.info/info/unicode/char/200b/index.htm\n */\nexport const ZERO_WIDTH_SPACE_CSS = '\\\\200B';\n","import { ZERO_WIDTH_SPACE_CSS } from '../../lib/chars';\nimport { css, memoizeStyle } from '../../lib/theming/Emotion';\n\nexport const styles = memoizeStyle({\n centeredIcon() {\n return css`\n display: inline-flex;\n align-items: center;\n\n &::before {\n content: '${ZERO_WIDTH_SPACE_CSS}';\n }\n `;\n },\n});\n","import React from 'react';\n\nimport type { ReactUIComponentWithRef } from '../../lib/forwardRefAndName';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\n\nimport { styles } from './BaseIcon.styles';\n\nexport interface SvgIconProps extends React.HTMLAttributes<HTMLSpanElement> {\n color?: string;\n size?: string | number;\n ref?: any;\n}\n\nexport type IconProps = {\n size?: number;\n viewBoxSize?: number;\n color?: string;\n align?: 'center' | 'baseline' | 'none';\n} & React.SVGAttributes<SVGElement>;\n\nexport type BothIconType =\n | ReactUIComponentWithRef<HTMLElement, SvgIconProps>\n | ReactUIComponentWithRef<SVGSVGElement, IconProps>;\n\nexport const BaseIcon = forwardRefAndName<SVGSVGElement, IconProps>(\n 'BaseIcon',\n (\n { color, size, style, 'aria-hidden': ariaHidden = true, viewBoxSize = 16, align = 'center', children, ...rest },\n ref,\n ) => {\n const icon = (\n <svg\n ref={ref}\n width={size || viewBoxSize}\n height={size || viewBoxSize}\n style={{\n fill: color ?? 'currentColor',\n marginBottom: align === 'none' || align === 'center' ? 0 : '-0.1875em',\n flexShrink: 0,\n ...style,\n }}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${viewBoxSize} ${viewBoxSize}`}\n aria-hidden={ariaHidden}\n {...rest}\n >\n {children}\n </svg>\n );\n\n if (align === 'center') {\n return <span className={styles.centeredIcon()}>{icon}</span>;\n }\n\n return icon;\n },\n);\n","import React from 'react';\n\nimport { forwardRefAndName } from '../../../lib/forwardRefAndName';\nimport type { IconProps } from '../BaseIcon';\nimport { BaseIcon } from '../BaseIcon';\n\nexport const XIcon20Light = forwardRefAndName<SVGSVGElement, IconProps>('XIcon20Light', (props, ref) => {\n return (\n <BaseIcon ref={ref} viewBoxSize={20} {...props}>\n <path d=\"M4.146 4.146a.5.5 0 0 1 .708 0L10 9.293l5.146-5.147a.5.5 0 1 1 .707.708L10.707 10l5.146 5.146a.5.5 0 1 1-.707.707L10 10.707l-5.146 5.146a.5.5 0 1 1-.708-.707L9.293 10 4.146 4.854a.5.5 0 0 1 0-.708Z\" />\n </BaseIcon>\n );\n});\n","import React from 'react';\n\nimport { forwardRefAndName } from '../../../lib/forwardRefAndName';\nimport type { IconProps } from '../BaseIcon';\nimport { BaseIcon } from '../BaseIcon';\n\nexport const XIcon24Regular = forwardRefAndName<SVGSVGElement, IconProps>('XIcon24Regular', (props, ref) => {\n return (\n <BaseIcon ref={ref} viewBoxSize={24} {...props}>\n <path d=\"M4.47 4.47a.75.75 0 0 1 1.06 0L12 10.94l6.47-6.47a.75.75 0 1 1 1.06 1.06L13.06 12l6.47 6.47a.75.75 0 1 1-1.06 1.06L12 13.06l-6.47 6.47a.75.75 0 0 1-1.06-1.06L10.94 12 4.47 5.53a.75.75 0 0 1 0-1.06Z\" />\n </BaseIcon>\n );\n});\n","import React from 'react';\n\nimport { iconSizer } from '../icons2022/iconSizer';\nimport { XIcon20Light } from '../icons2022/XIcon/XIcon20Light';\nimport { XIcon24Regular } from '../icons2022/XIcon/XIcon24Regular';\n\nexport const CrossIcon = iconSizer(\n {\n small: () => <XIcon20Light size={16} align=\"none\" />,\n medium: () => <XIcon20Light align=\"none\" />,\n large: () => <XIcon24Regular align=\"none\" />,\n },\n 'CrossIcon',\n);\n","import type { AriaAttributes, CSSProperties } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { cx } from '../../lib/theming/Emotion';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { DEFAULT_ICON_SIZE } from '../icons2022/iconConstants';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\n\nimport { styles } from './CloseButtonIcon.styles';\nimport { CrossIcon } from './CrossIcon';\n\nexport interface CloseButtonIconProps\n extends Pick<AriaAttributes, 'aria-label'>,\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n CommonProps {\n /**\n * Ширина и высота иконки крестика\n *\n * @default 16\n */\n size?: number;\n /**\n * Ширина и высота всей кнопки\n *\n * @default 16\n */\n side?: number;\n /**\n * Цвет иконки\n *\n * Переменная темы: `closeBtnIconColor`\n */\n color?: CSSProperties['color'];\n /**\n * Цвет иконки при наведении мышью и при фокусе\n *\n * Переменная темы: `closeBtnIconHoverColor`\n */\n colorHover?: CSSProperties['color'];\n /**\n * Возможность сфокусироваться на кнопке клавишей TAB\n *\n * @default true\n * */\n tabbable?: boolean;\n}\n\nexport const CloseButtonIcon: React.FunctionComponent<CloseButtonIconProps> = ({\n side = DEFAULT_ICON_SIZE,\n size = DEFAULT_ICON_SIZE,\n color,\n colorHover,\n tabbable = true,\n style,\n ...rest\n}) => {\n const _theme = React.useContext(ThemeContext);\n const theme = ThemeFactory.create(\n {\n closeBtnIconColor: color ?? _theme.closeBtnIconColor,\n closeBtnIconHoverColor: colorHover ?? _theme.closeBtnIconHoverColor,\n },\n _theme,\n );\n const [focusedByTab, setFocusedByTab] = React.useState(false);\n\n const handleFocus = () => {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n setFocusedByTab(true);\n }\n });\n };\n const handleBlur = () => setFocusedByTab(false);\n\n const tabIndex = !tabbable || rest.disabled ? -1 : 0;\n\n return (\n <CommonWrapper {...rest}>\n <button\n tabIndex={tabIndex}\n className={cx(\n styles.root(theme),\n !rest.disabled && focusedByTab && styles.focus(theme),\n rest.disabled && styles.rootDisabled(theme),\n )}\n style={{ ...style, width: side, height: side }}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...rest}\n >\n <span className={styles.wrapper()}>\n <CrossIcon size={side < size ? side : size} focusable={tabIndex >= 0} />\n </span>\n </button>\n </CommonWrapper>\n );\n};\n\nCloseButtonIcon.__KONTUR_REACT_UI__ = 'CloseButtonIcon';\nCloseButtonIcon.displayName = 'CloseButtonIcon';\n","import type { SizeProp } from '../types/props';\n\nexport const defaultSizeValue: SizeProp = 'small';\n","import React from 'react';\n\nimport type { SizeProp } from '../types/props';\n\nimport { defaultSizeValue } from './constants';\n\nexport interface SizeControlContextProps {\n size: SizeProp;\n}\n\nexport const SizeControlContext = React.createContext<SizeControlContextProps>({\n size: defaultSizeValue,\n});\n\nSizeControlContext.displayName = 'SizeContext';\nSizeControlContext.__KONTUR_REACT_UI__ = 'SizeContext';\n","import React from 'react';\n\nimport type { SizeProp } from '../types/props';\n\nimport { SizeControlContext } from './SizeControlContext';\nimport { defaultSizeValue } from './constants';\n\ntype Constructor<T = NonNullable<unknown>> = new (...args: any[]) => T;\n\ninterface WithSizeProps {\n size?: SizeProp;\n}\n\nexport function withSize<T extends Constructor<React.Component<WithSizeProps>>>(constructor: T) {\n const SizeDecorator = class extends constructor {\n public size: SizeProp = defaultSizeValue;\n\n public render(): React.ReactNode {\n return (\n <SizeControlContext.Consumer>\n {(context) => {\n this.size = this.props.size ?? context.size;\n const originalRender = super.render;\n if (typeof originalRender === 'function') {\n return originalRender.call(this);\n }\n\n return null;\n }}\n </SizeControlContext.Consumer>\n );\n }\n };\n\n const nameDescriptor = Object.getOwnPropertyDescriptor(SizeDecorator, 'name');\n if (!nameDescriptor || nameDescriptor.configurable) {\n Object.defineProperty(SizeDecorator, 'name', { value: constructor.name });\n }\n\n return SizeDecorator;\n}\n","import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n closeButton(t: Theme) {\n return css`\n position: absolute;\n box-sizing: content-box;\n right: 0;\n top: 0;\n width: ${t.tooltipCloseBtnSide};\n height: ${t.tooltipCloseBtnSide};\n color: ${t.tooltipCloseBtnColor};\n cursor: pointer;\n line-height: 0;\n\n &:hover {\n color: ${t.tooltipCloseBtnHoverColor};\n }\n `;\n },\n\n closeButtonSmall(t: Theme) {\n return css`\n padding: ${t.tooltipCloseBtnPaddingSmall};\n `;\n },\n\n closeButtonMedium(t: Theme) {\n return css`\n padding: ${t.tooltipCloseBtnPaddingMedium};\n `;\n },\n\n closeButtonLarge(t: Theme) {\n return css`\n padding: ${t.tooltipCloseBtnPaddingLarge};\n `;\n },\n\n tooltipContent(t: Theme) {\n return css`\n position: relative;\n color: ${t.tooltipTextColor};\n `;\n },\n\n tooltipContentSmall(t: Theme) {\n return css`\n padding: ${t.tooltipPaddingYSmall} ${t.tooltipPaddingXSmall};\n font-size: ${t.tooltipFontSizeSmall};\n line-height: ${t.tooltipLineHeightSmall};\n `;\n },\n\n tooltipContentMedium(t: Theme) {\n return css`\n padding: ${t.tooltipPaddingYMedium} ${t.tooltipPaddingXMedium};\n font-size: ${t.tooltipFontSizeMedium};\n line-height: ${t.tooltipLineHeightMedium};\n `;\n },\n\n tooltipContentLarge(t: Theme) {\n return css`\n padding: ${t.tooltipPaddingYLarge} ${t.tooltipPaddingXLarge};\n font-size: ${t.tooltipFontSizeLarge};\n line-height: ${t.tooltipLineHeightLarge};\n `;\n },\n});\n","import React from 'react';\nimport warning from 'warning';\nimport type { SafeTimer } from '@skbkontur/global-object';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { SizeProp } from '../../lib/types/props';\nimport { isNullable } from '../../lib/utils';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport type { PopupProps, PopupPositionsType, ShortPopupPositionsType } from '../../internal/Popup';\nimport { Popup } from '../../internal/Popup';\nimport type { RenderLayerProps } from '../../internal/RenderLayer';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { MouseEventType } from '../../typings/event-types';\nimport { containsTargetOrRenderContainer } from '../../lib/listenFocusOutside';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport type { InstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { CloseButtonIcon } from '../../internal/CloseButtonIcon/CloseButtonIcon';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles } from './Tooltip.styles';\n\nexport type TooltipTrigger =\n /** Наведение на children и на тултип */\n | 'hover'\n /** Клик на children */\n | 'click'\n /** Фокус на children */\n | 'focus'\n /** Наведение на children и на тултип и фокус на children */\n | 'hover&focus'\n /** Просто открыт */\n | 'opened'\n /** Просто закрыт */\n | 'closed'\n /** Наведение ТОЛЬКО на children, а не на тултип */\n | 'hoverAnchor'\n /** Управление через публичные функции show и hide */\n | 'manual';\n\nexport interface TooltipProps extends CommonProps {\n /** Указывает элемент, относительно которого позиционировать тултип. */\n anchorElement?: HTMLElement;\n\n /** @ignore */\n children?: React.ReactNode;\n\n /** Задает HTML-атрибут class. */\n className?: string;\n\n /** Отображает крестик для закрытия тултипа. По-умолчанию крестик виден, если проп *trigger* не равен `hover` или `focus`. */\n closeButton?: boolean;\n\n /** Задает функцию, которая возвращает содержимое тултипа. Если функция вернула `null`, то тултип не показывается. */\n render?: Nullable<() => React.ReactNode>;\n\n /** Задает приоритетное расположение подсказки относительно текста. */\n pos?: ShortPopupPositionsType | PopupPositionsType;\n\n /** Задает размер тултипа.\n * @default 'small' */\n size?: SizeProp;\n\n /** Задает триггер открытия тултипа. */\n trigger?: TooltipTrigger;\n\n /** Задает хендлер, который вызывается при клике по крестику. */\n onCloseClick?: React.MouseEventHandler<HTMLElement>;\n\n /** Задает хендлер, который вызывается при клике по крестику или снаружи тултипа. */\n onCloseRequest?: (event?: Event | React.MouseEvent) => void;\n\n /** Задает хендлер, который вызывается при закрытии тултипа. */\n onClose?: () => void;\n\n /** Задает хендлер, который вызывается при открытии тултипа. */\n onOpen?: () => void;\n\n /** Задает список позиций, которые тултип будет занимать.\n * Если положение тултипа в определенной позиции будет выходить за край экрана, то будет выбрана следующая позиция.\n * Обязательно должен включать позицию указанную в `pos`. */\n allowedPositions?: PopupPositionsType[];\n\n /** Отключает анимацию.\n * @default false */\n disableAnimations?: boolean;\n\n /** Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`.\n * Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически. */\n useWrapper?: boolean;\n\n /** Устанавливает задержку в миллисекундах до появления лоадера. */\n delayBeforeShow?: number;\n}\n\nconst DEFAULT_DELAY = 100;\n\nexport interface TooltipState {\n opened: boolean;\n focused: boolean;\n}\n\nexport const TooltipDataTids = {\n root: 'Tooltip__root',\n content: 'Tooltip__content',\n crossIcon: 'Tooltip__crossIcon',\n} as const;\n\nconst DefaultPositions: PopupPositionsType[] = [\n 'right bottom',\n 'right middle',\n 'right top',\n 'top right',\n 'top center',\n 'top left',\n 'left top',\n 'left middle',\n 'left bottom',\n 'bottom left',\n 'bottom center',\n 'bottom right',\n];\n\ninterface TooltipSizeVariables {\n closeButtonStyle: string;\n contentStyle: string;\n borderRadius: string;\n pinSize: string;\n pinOffsetX: string;\n pinOffsetY: string;\n margin: string;\n}\n\ntype DefaultProps = Required<Pick<TooltipProps, 'trigger' | 'disableAnimations' | 'useWrapper' | 'delayBeforeShow'>>;\n\n/**\n * `Tooltip` — это подсказка, которая объясняет состояние контрола или даёт контекстную справку.\n *\n * Открывается по клику, фокусом на элемент или по наведению. В отличие от `Hint`, `Tooltip` может содержать\n * изображения, кнопки, ссылки и прочие интерактивные элементы.\n */\n\n@rootNode\n@withSize\nexport class Tooltip extends React.PureComponent<TooltipProps, TooltipState> implements InstanceWithAnchorElement {\n public static __KONTUR_REACT_UI__ = 'Tooltip';\n public static displayName = 'Tooltip';\n\n public static defaultProps: DefaultProps = {\n trigger: 'hover',\n disableAnimations: isTestEnv,\n useWrapper: false,\n delayBeforeShow: DEFAULT_DELAY,\n };\n\n private getProps = createPropsGetter(Tooltip.defaultProps);\n private validateProps(props: TooltipProps): void {\n warning(\n props.children || props.anchorElement,\n `[Tooltip]: you must provide either 'children' or 'anchorElement' prop for Tooltip to work properly`,\n );\n }\n\n public static delay = DEFAULT_DELAY;\n private static triggersWithoutCloseButton: TooltipTrigger[] = ['hover', 'hoverAnchor', 'focus', 'hover&focus'];\n\n public state: TooltipState = { opened: false, focused: false };\n private theme!: Theme;\n private size!: SizeProp;\n private sizeVariables!: TooltipSizeVariables;\n public featureFlags!: ReactUIFeatureFlags;\n private hoverTimeout: SafeTimer;\n private contentElement: Nullable<HTMLElement> = null;\n private clickedOutside = true;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n private popupRef = React.createRef<Popup>();\n\n public getAllowedPositions() {\n return this.props.allowedPositions ? this.props.allowedPositions : DefaultPositions;\n }\n\n public componentDidMount(): void {\n this.validateProps(this.getProps());\n }\n\n public componentDidUpdate() {\n const { trigger } = this.getProps();\n\n this.validateProps(this.getProps());\n if (trigger === 'closed' && this.state.opened) {\n this.close();\n }\n }\n\n public componentWillUnmount() {\n this.clearHoverTimeout();\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n this.sizeVariables = this.getSizeVariables();\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupBackground: theme.tooltipBg,\n popupBorder: theme.tooltipBorder,\n popupBorderRadius: this.sizeVariables.borderRadius,\n popupPinSize: this.sizeVariables.pinSize,\n popupPinOffsetX: this.sizeVariables.pinOffsetX,\n popupPinOffsetY: this.sizeVariables.pinOffsetY,\n popupMargin: this.sizeVariables.margin,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n public renderContent = () => {\n const content = this.props.render ? this.props.render() : null;\n if (isNullable(content)) {\n return null;\n }\n\n return (\n <div\n ref={this.refContent}\n className={cx(styles.tooltipContent(this.theme), this.sizeVariables.contentStyle)}\n data-tid={TooltipDataTids.content}\n >\n {content}\n {this.renderCloseButton()}\n </div>\n );\n };\n\n public renderCloseButton() {\n const hasCross =\n this.props.closeButton === undefined\n ? !Tooltip.triggersWithoutCloseButton.includes(this.getProps().trigger)\n : this.props.closeButton;\n\n if (!hasCross) {\n return null;\n }\n\n const icon = (\n <CloseButtonIcon\n tabbable={false}\n side={parseInt(this.theme.tooltipCloseBtnSide)}\n color={this.theme.tooltipCloseBtnColor}\n colorHover={this.theme.tooltipCloseBtnHoverColor}\n />\n );\n\n return (\n <div\n className={cx(styles.closeButton(this.theme), this.sizeVariables.closeButtonStyle)}\n onClick={this.handleCloseButtonClick}\n data-tid={TooltipDataTids.crossIcon}\n >\n {icon}\n </div>\n );\n }\n\n public getAnchorElement = (): Nullable<Element> => {\n return this.popupRef.current?.anchorElement;\n };\n\n /**\n * Программно открывает тултип.\n * <p>Не действует если проп *trigger* `'opened'` или `'closed'`.</p>\n * @public\n */\n public show() {\n if (this.state.opened) {\n return;\n }\n const trigger = this.getProps().trigger;\n if (trigger === 'opened' || trigger === 'closed') {\n warning(true, `Function 'show' is not supported with trigger specified '${trigger}'`);\n return;\n }\n this.open();\n }\n\n /**\n * Программно закрывает тултип.\n * <p>Не действует если проп *trigger* `'opened'` или `'closed'`.</p>\n * @public\n */\n public hide() {\n const trigger = this.getProps().trigger;\n if (trigger === 'opened' || trigger === 'closed') {\n warning(true, `Function 'hide' is not supported with trigger specified '${trigger}'`);\n return;\n }\n this.close();\n }\n\n private renderMain() {\n const props = this.props;\n const content = this.renderContent();\n const { popupProps, layerProps = { active: false } } = this.getPopupAndLayerProps();\n const anchorElement = props.children || props.anchorElement;\n const popup = this.renderPopup(anchorElement, popupProps, content);\n\n return (\n <RenderLayer {...layerProps} getAnchorElement={this.getAnchorElement}>\n {popup}\n </RenderLayer>\n );\n }\n\n private renderPopup(\n anchorElement: React.ReactNode | HTMLElement,\n popupProps: Partial<PopupProps>,\n content: JSX.Element | null,\n ) {\n const { disableAnimations, trigger } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Popup\n data-tid={TooltipDataTids.root}\n anchorElement={anchorElement}\n hasPin\n hasShadow\n maxWidth=\"none\"\n opened={this.state.opened}\n disableAnimations={disableAnimations}\n positions={isThemeGTE(this.theme, '5.4') ? this.getPositions() : this.props.allowedPositions}\n pos={this.props.pos}\n ignoreHover={trigger === 'hoverAnchor'}\n onOpen={this.props.onOpen}\n onClose={this.props.onClose}\n tryPreserveFirstRenderedPosition\n ref={this.popupRef}\n withoutMobile\n {...popupProps}\n >\n {content}\n </Popup>\n </CommonWrapper>\n );\n }\n\n private getPositions = (): PopupPositionsType[] =>\n this.props.allowedPositions\n ? this.props.allowedPositions.filter((item) => DefaultPositions.includes(item))\n : DefaultPositions;\n\n private refContent = (node: HTMLElement | null) => {\n this.contentElement = node;\n };\n\n private getPopupAndLayerProps(): {\n layerProps?: Partial<RenderLayerProps>;\n popupProps: Partial<PopupProps>;\n } {\n const props = this.props;\n const useWrapper = !!props.children && this.getProps().useWrapper;\n const trigger = this.getProps().trigger;\n\n switch (trigger) {\n case 'opened':\n return {\n layerProps: {\n active: true,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n opened: true,\n useWrapper,\n },\n };\n\n case 'closed':\n return {\n popupProps: {\n opened: false,\n useWrapper,\n },\n };\n\n case 'hoverAnchor':\n case 'hover':\n return {\n popupProps: {\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n useWrapper,\n },\n };\n case 'manual':\n return {\n popupProps: {\n useWrapper,\n },\n };\n case 'click':\n return {\n layerProps: {\n active: this.state.opened,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n onClick: this.handleClick,\n useWrapper,\n },\n };\n\n case 'focus':\n return {\n popupProps: {\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n useWrapper,\n },\n };\n\n case 'hover&focus':\n return {\n layerProps: {\n active: this.state.opened,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n useWrapper,\n },\n };\n\n default:\n throw new Error('Unknown trigger specified: ' + trigger);\n }\n }\n\n private open = () => this.setState({ opened: true });\n\n private close = () => this.setState({ opened: false });\n\n private clearHoverTimeout() {\n if (this.hoverTimeout) {\n globalObject.clearTimeout(this.hoverTimeout);\n this.hoverTimeout = null;\n }\n }\n\n private handleMouseEnter = (event: MouseEventType) => {\n const isHoverAnchor = this.getProps().trigger === 'hoverAnchor';\n if (isHoverAnchor && event.target === this.contentElement) {\n return;\n }\n\n this.clearHoverTimeout();\n this.hoverTimeout = globalObject.setTimeout(this.open, this.getProps().delayBeforeShow);\n };\n\n private handleMouseLeave = (event: MouseEventType) => {\n const trigger = this.getProps().trigger;\n if (\n (trigger === 'hover&focus' && this.state.focused) ||\n (trigger === 'hover' && event.relatedTarget === this.contentElement)\n ) {\n return;\n }\n\n this.clearHoverTimeout();\n\n if (trigger === 'hoverAnchor') {\n this.close();\n } else {\n this.hoverTimeout = globalObject.setTimeout(this.close, Tooltip.delay);\n }\n };\n\n private handleClick = () => {\n this.open();\n };\n\n private handleClickOutsideAnchor = (event: Event) => {\n this.clickedOutside = this.isClickOutsideContent(event);\n if (this.clickedOutside) {\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest(event);\n }\n this.close();\n }\n };\n\n private isClickOutsideContent(event: Event) {\n if (this.contentElement && isInstanceOf(event.target, globalObject.Element)) {\n return !containsTargetOrRenderContainer(event.target)(this.contentElement);\n }\n\n return true;\n }\n\n private handleFocus = () => {\n this.setState({ focused: true });\n this.open();\n };\n\n private handleBlur = () => {\n const trigger = this.getProps().trigger;\n if (trigger === 'hover&focus' && this.clickedOutside) {\n this.close();\n }\n\n if (trigger === 'focus') {\n this.close();\n }\n\n this.clickedOutside = true;\n this.setState({ focused: false });\n };\n\n private handleCloseButtonClick = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n\n if (this.props.onCloseClick) {\n this.props.onCloseClick(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest(event);\n }\n\n this.close();\n };\n\n private getSizeVariables = (): TooltipSizeVariables => {\n switch (this.size) {\n case 'small':\n return {\n closeButtonStyle: styles.closeButtonSmall(this.theme),\n contentStyle: styles.tooltipContentSmall(this.theme),\n borderRadius: this.theme.tooltipBorderRadiusSmall,\n pinSize: this.theme.tooltipPinSizeSmall,\n pinOffsetX: this.theme.tooltipPinOffsetXSmall,\n pinOffsetY: this.theme.tooltipPinOffsetYSmall,\n margin: this.theme.tooltipMarginSmall,\n };\n case 'medium':\n return {\n closeButtonStyle: styles.closeButtonMedium(this.theme),\n contentStyle: styles.tooltipContentMedium(this.theme),\n borderRadius: this.theme.tooltipBorderRadiusMedium,\n pinSize: this.theme.tooltipPinSizeMedium,\n pinOffsetX: this.theme.tooltipPinOffsetXMedium,\n pinOffsetY: this.theme.tooltipPinOffsetYMedium,\n margin: this.theme.tooltipMarginMedium,\n };\n case 'large':\n return {\n closeButtonStyle: styles.closeButtonLarge(this.theme),\n contentStyle: styles.tooltipContentLarge(this.theme),\n borderRadius: this.theme.tooltipBorderRadiusLarge,\n pinSize: this.theme.tooltipPinSizeLarge,\n pinOffsetX: this.theme.tooltipPinOffsetXLarge,\n pinOffsetY: this.theme.tooltipPinOffsetYLarge,\n margin: this.theme.tooltipMarginLarge,\n };\n default:\n console.error(`Can't get size variables: invalid value in size prop '${this.size}'. Returning default`);\n return {\n closeButtonStyle: styles.closeButtonSmall(this.theme),\n contentStyle: styles.tooltipContentSmall(this.theme),\n borderRadius: this.theme.tooltipBorderRadiusSmall,\n pinSize: this.theme.tooltipPinSizeSmall,\n pinOffsetX: this.theme.tooltipPinOffsetXSmall,\n pinOffsetY: this.theme.tooltipPinOffsetYSmall,\n margin: this.theme.tooltipMarginSmall,\n };\n }\n };\n}\n","/**\n * Проверяет, не является ли переданный аргумент null или undefined и исключает типы null и undefined из типа аргумента\n *\n * @param value Значение, которое нужно проверить и исключить из него типы\n * @returns Возвращает true, если переданный аргумент не является null или undefined иначе false\n */\nexport const isNonNullable = <T>(value: T): value is NonNullable<T> => {\n return value !== null && value !== undefined;\n};\n","import type { ReactElement } from 'react';\nimport { Tooltip } from '@skbkontur/react-ui/components/Tooltip';\nimport { ThemeContext } from '@skbkontur/react-ui/lib/theming/ThemeContext';\n\nimport { isNonNullable } from '../src/utils/isNonNullable';\n\nexport { Tooltip, ThemeContext };\n\nexport class ReactUiDetection {\n public static checkType(element: any, type: string) {\n return isNonNullable(element) && element.type?.__KONTUR_REACT_UI__ === type;\n }\n\n public static isDatePicker(element: any): boolean {\n return ReactUiDetection.checkType(element, 'DatePicker');\n }\n\n public static isRadioGroup(element: any): boolean {\n return ReactUiDetection.checkType(element, 'RadioGroup');\n }\n\n public static isTokenInput(element: any): boolean {\n return ReactUiDetection.checkType(element, 'TokenInput');\n }\n\n public static isSwitcher(element: any): boolean {\n return ReactUiDetection.checkType(element, 'Switcher');\n }\n\n public static isComboBox(element: any): boolean {\n return ReactUiDetection.checkType(element, 'ComboBox');\n }\n\n public static isRadio(element: any): boolean {\n return ReactUiDetection.checkType(element, 'Radio');\n }\n\n public static isCheckBox(element: any): boolean {\n return ReactUiDetection.checkType(element, 'Checkbox');\n }\n\n public static isToggle(element: any): boolean {\n return ReactUiDetection.checkType(element, 'Toggle');\n }\n\n public static isSelect(element: any): boolean {\n return ReactUiDetection.checkType(element, 'Select');\n }\n\n public static isSelectionControl(element: ReactElement): boolean {\n return (\n ReactUiDetection.isRadioGroup(element) ||\n ReactUiDetection.isRadio(element) ||\n ReactUiDetection.isCheckBox(element) ||\n ReactUiDetection.isToggle(element) ||\n ReactUiDetection.isSwitcher(element) ||\n ReactUiDetection.isSelect(element) ||\n ReactUiDetection.isComboBox(element)\n );\n }\n}\n","import React, { useContext } from 'react';\n\nimport type { Nullable } from '../typings/Types';\n\nimport type { TextPosition, Validation } from './ValidationWrapperInternal';\nimport { getValidationTextColor } from './utils/getValidationTextColor';\nimport { ThemeContext } from './ReactUiDetection';\n\nexport interface ValidationTextProps {\n pos: TextPosition;\n children: React.ReactNode;\n validation: Nullable<Validation>;\n 'data-tid'?: string;\n}\n\nexport const ValidationText = ({ pos, children, validation, 'data-tid': dataTid }: ValidationTextProps) => {\n const theme = useContext(ThemeContext);\n const color = getValidationTextColor(theme, validation?.level);\n\n if (pos === 'right') {\n const childrenAndValidationText = (\n <>\n {children}\n <span data-tid={dataTid} data-validation-message=\"text\" style={{ marginLeft: '10px', color }}>\n {(validation && validation.message) || ''}\n </span>\n </>\n );\n return <div style={{ display: 'inline-block' }}>{childrenAndValidationText}</div>;\n }\n\n const validationText = (\n <span\n data-tid={dataTid}\n data-validation-message=\"text\"\n style={{\n color,\n overflow: 'visible',\n whiteSpace: 'nowrap',\n position: 'absolute',\n top: '2px',\n left: 0,\n }}\n >\n {(validation && validation.message) || ''}\n </span>\n );\n\n const childrenAndValidationText = (\n <>\n {children}\n <span style={{ position: 'absolute', bottom: 0, left: 0, height: 0 }}>{validationText}</span>\n </>\n );\n\n return <div style={{ position: 'relative', display: 'inline-block' }}>{childrenAndValidationText}</div>;\n};\n\nValidationText.__KONTUR_REACT_UI__ = 'ValidationText';\nValidationText.displayName = 'ValidationText';\n","import React from 'react';\n\nimport { ReactUiDetection, Tooltip } from './ReactUiDetection';\n\nexport type TooltipPosition =\n | 'top left'\n | 'top center'\n | 'top right'\n | 'bottom left'\n | 'bottom center'\n | 'bottom right'\n | 'left top'\n | 'left middle'\n | 'left bottom'\n | 'right top'\n | 'right middle'\n | 'right bottom';\n\nexport interface ValidationTooltipProps {\n children: React.ReactElement<any>;\n error: boolean;\n pos?: TooltipPosition;\n render?: () => React.ReactNode;\n 'data-tid'?: string;\n}\n\nexport class ValidationTooltip extends React.Component<ValidationTooltipProps> {\n public static __KONTUR_REACT_UI__ = 'ValidationTooltip';\n public static displayName = 'ValidationTooltip';\n\n public render() {\n const { children, pos, error, render, ...rest } = this.props;\n\n const onlyChild = React.Children.only(children);\n const child = onlyChild && onlyChild.props ? onlyChild.props.children : null;\n\n return ReactUiDetection.isRadioGroup(child) ||\n ReactUiDetection.isTokenInput(child) ||\n ReactUiDetection.isSwitcher(child) ? (\n <Tooltip useWrapper={false} pos={pos} render={error ? render : undefined} trigger={'hover&focus'} {...rest}>\n {child}\n </Tooltip>\n ) : (\n <Tooltip pos={pos} render={error ? render : undefined} trigger={'hover&focus'} {...rest}>\n {children}\n </Tooltip>\n );\n }\n}\n","import React from 'react';\n\nimport { ValidationText } from './ValidationText';\nimport type { TooltipPosition } from './ValidationTooltip';\nimport { ValidationTooltip } from './ValidationTooltip';\nimport type { RenderErrorMessage, TextPosition } from './ValidationWrapperInternal';\n\nexport function tooltip(pos: TooltipPosition): RenderErrorMessage {\n return (control, hasError, validation) => {\n return (\n <ValidationTooltip\n pos={pos}\n error={hasError}\n render={() => {\n if (!validation || !validation.message) {\n return null;\n }\n return (validation && validation.message) || '';\n }}\n >\n {control}\n </ValidationTooltip>\n );\n };\n}\n\nexport function text(pos: TextPosition = 'right'): RenderErrorMessage {\n return (control, _hasError, validation) => {\n return (\n <ValidationText pos={pos} validation={validation}>\n {control}\n </ValidationText>\n );\n };\n}\n","import type React from 'react';\n\nexport type DefaultizedProps<P, DP> = P & DP;\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unnecessary-type-constraint\nexport function createPropsGetter<DP extends unknown>(defaultProps: DP) {\n return function <P, T extends React.Component<P>>(this: T) {\n return this.props as DefaultizedProps<T['props'], DP>;\n };\n}\n","const env: NodeJS.ProcessEnv = (typeof process === 'object' && process && process.env) || {};\nconst { enableReactTesting, NODE_ENV, REACT_UI_TEST, REACT_APP_REACT_UI_TEST, STORYBOOK_REACT_UI_TEST } = env;\n\nconst isReactUITestEnv =\n Boolean(REACT_UI_TEST) || // for cases when NODE_ENV is not usable (dev/prod)\n Boolean(REACT_APP_REACT_UI_TEST) || // for usage with CRA\n Boolean(STORYBOOK_REACT_UI_TEST) || // for usage with storybook\n Boolean(enableReactTesting); // deprecated, legacy variable\n\nexport const isTestEnv = NODE_ENV === 'test' || isReactUITestEnv;\n\nexport const isBrowser = typeof window !== 'undefined';\n\nexport function isElement(el: unknown): el is Element {\n return !!el && typeof el === 'object' && 'nodeType' in el && el.nodeType === Node.ELEMENT_NODE;\n}\n\nexport const getDoc = (node: Node): Document => node.ownerDocument ?? (node as Document);\nexport const getWin = (node: Node): (WindowProxy & typeof globalThis) | null => getDoc(node).defaultView;\n","/**\n * Checks if the value `null` or `undefined`.\n *\n * @param value Value to check for `null` and `undefined`.\n * @returns Returns `true` if `value` is `null` or `undefined`, else `false`.\n */\n// @ts-expect-error: TypeScript doesn't consider the check inside of the function.\nexport const isNullable = <T>(value: T): value is null | undefined => {\n return value === null || value === undefined;\n};\n","export enum FocusMode {\n 'Errors',\n 'ErrorsAndWarnings',\n 'None',\n}\n","import React from 'react';\n\nimport type { ValidationWrapperInternal } from './ValidationWrapperInternal';\nimport type { ScrollOffset, ValidateArgumentType } from './ValidationContainer';\nimport { isNullable } from './utils/isNullable';\nimport { FocusMode } from './FocusMode';\n\nexport interface ValidationContextSettings {\n scrollOffset: ScrollOffset;\n disableSmoothScroll: boolean;\n}\n\nexport interface ValidationContextWrapperProps {\n 'data-tid'?: string;\n children?: React.ReactNode;\n onValidationUpdated?: (isValid?: boolean) => void;\n scrollOffset?: number | ScrollOffset;\n disableSmoothScroll: boolean;\n}\n\nexport interface ValidationContextType {\n register: (wrapper: ValidationWrapperInternal) => void;\n unregister: (wrapper: ValidationWrapperInternal) => void;\n instanceProcessBlur: (wrapper: ValidationWrapperInternal) => void;\n onValidationUpdated: (wrapper: ValidationWrapperInternal, isValid: boolean) => void;\n getSettings: () => ValidationContextSettings;\n isAnyWrapperInChangingMode: () => boolean;\n isValidationCalled: () => boolean;\n}\n\nexport const ValidationContext = React.createContext<ValidationContextType>({\n register: () => undefined,\n unregister: () => undefined,\n instanceProcessBlur: () => undefined,\n onValidationUpdated: () => undefined,\n getSettings: () => ({\n scrollOffset: {},\n disableSmoothScroll: false,\n }),\n isAnyWrapperInChangingMode: () => false,\n isValidationCalled: () => false,\n});\n\nValidationContext.displayName = 'ValidationContext';\n\nexport class ValidationContextWrapper extends React.Component<ValidationContextWrapperProps> {\n public childWrappers: ValidationWrapperInternal[] = [];\n public validationHasBeenCalled: boolean = false;\n\n public getSettings(): ValidationContextSettings {\n let scrollOffset: ScrollOffset = {};\n\n if (typeof this.props.scrollOffset === 'number') {\n scrollOffset = { top: this.props.scrollOffset };\n } else {\n scrollOffset = isNullable(this.props.scrollOffset) ? {} : this.props.scrollOffset;\n }\n\n const { top = 50, bottom = 0 } = scrollOffset;\n return {\n scrollOffset: {\n top,\n bottom,\n },\n disableSmoothScroll: this.props.disableSmoothScroll,\n };\n }\n\n public register(wrapper: ValidationWrapperInternal) {\n this.childWrappers.push(wrapper);\n }\n\n public unregister(wrapper: ValidationWrapperInternal) {\n this.childWrappers.splice(this.childWrappers.indexOf(wrapper), 1);\n this.onValidationRemoved();\n }\n\n public instanceProcessBlur(instance: ValidationWrapperInternal) {\n for (const wrapper of this.childWrappers.filter((x) => x !== instance && !x.isIndependent())) {\n wrapper.processBlur();\n }\n }\n\n public onValidationUpdated(wrapper: ValidationWrapperInternal, isValid?: boolean) {\n const { onValidationUpdated } = this.props;\n if (onValidationUpdated) {\n const isValidResult = !this.childWrappers.find((x) => {\n if (x === wrapper) {\n return !isValid;\n }\n return x.hasError();\n });\n onValidationUpdated(isValidResult);\n }\n }\n\n public isAnyWrapperInChangingMode(): boolean {\n return this.childWrappers.some((x) => x.isChanging);\n }\n\n public isValidationCalled(): boolean {\n return this.validationHasBeenCalled;\n }\n\n public onValidationRemoved() {\n const { onValidationUpdated } = this.props;\n if (onValidationUpdated) {\n const isValidResult = !this.childWrappers.find((x) => x.hasError());\n onValidationUpdated(isValidResult);\n }\n }\n\n public getChildWrappersSortedByPosition(): ValidationWrapperInternal[] {\n const wrappersWithPosition = [...this.childWrappers].map((x) => ({\n target: x,\n position: x.getControlPosition(),\n }));\n wrappersWithPosition.sort((x, y) => {\n const xPosition = x.position;\n const yPosition = y.position;\n if (isNullable(xPosition) && isNullable(yPosition)) {\n return 0;\n }\n\n if (isNullable(xPosition)) {\n return 1;\n }\n if (isNullable(yPosition)) {\n return -1;\n }\n if (Math.sign(xPosition.x - yPosition.x) !== 0) {\n return Math.sign(xPosition.x - yPosition.x);\n }\n return Math.sign(xPosition.y - yPosition.y);\n });\n return wrappersWithPosition.map((x) => x.target);\n }\n\n public async validate(withoutFocusOrValidationSettings: ValidateArgumentType): Promise<boolean> {\n const focusMode = ValidationContextWrapper.getFocusMode(withoutFocusOrValidationSettings);\n\n await Promise.all(this.childWrappers.map((x) => x.processSubmit()));\n\n this.validationHasBeenCalled = true;\n\n const childrenWrappersSortedByPosition = this.getChildWrappersSortedByPosition();\n const firstError = childrenWrappersSortedByPosition.find((x) => x.hasError());\n if (focusMode === FocusMode.ErrorsAndWarnings) {\n childrenWrappersSortedByPosition.find((x) => x.hasError() || x.hasWarning())?.focus();\n }\n if (focusMode === FocusMode.Errors) {\n firstError?.focus();\n }\n if (this.props.onValidationUpdated) {\n this.props.onValidationUpdated(!firstError);\n }\n return !firstError;\n }\n\n private static getFocusMode(withoutFocusOrValidationSettings: ValidateArgumentType) {\n if (typeof withoutFocusOrValidationSettings === 'object' && 'focusMode' in withoutFocusOrValidationSettings) {\n return withoutFocusOrValidationSettings.focusMode;\n } else if (!withoutFocusOrValidationSettings) {\n return FocusMode.Errors;\n }\n return FocusMode.None;\n }\n\n private renderChildren = (children: ValidationContextWrapperProps['children']) => {\n if (React.isValidElement(children)) {\n return React.cloneElement(children as React.ReactElement, {\n 'data-tid': this.props['data-tid'],\n });\n }\n\n return children;\n };\n\n public render() {\n return (\n <ValidationContext.Provider value={this}>\n {this.renderChildren(<div style={{ display: 'inline' }}>{this.props.children}</div>)}\n </ValidationContext.Provider>\n );\n }\n}\n","import React from 'react';\nimport warning from 'warning';\n\nimport type { Nullable } from '../typings/Types';\n\nimport { createPropsGetter } from './utils/createPropsGetter';\nimport { isTestEnv } from './utils/utils';\nimport { ValidationContextWrapper } from './ValidationContextWrapper';\nimport { FocusMode } from './FocusMode';\n\nexport interface ScrollOffset {\n top?: number;\n bottom?: number;\n}\n\nexport interface ValidationSettings {\n focusMode: FocusMode;\n}\n\nexport type ValidateArgumentType = boolean | ValidationSettings;\n\nexport interface ValidationContainerProps {\n 'data-tid'?: string;\n children?: React.ReactNode;\n onValidationUpdated?: (isValid?: Nullable<boolean>) => void;\n scrollOffset?: number | ScrollOffset;\n disableSmoothScroll?: boolean;\n}\n\ntype DefaultProps = Required<Pick<ValidationContainerProps, 'disableSmoothScroll'>>;\n\nexport class ValidationContainer extends React.Component<ValidationContainerProps> {\n public static __KONTUR_REACT_UI__ = 'ValidationContainer';\n public static displayName = 'ValidationContainer';\n\n public static defaultProps: DefaultProps = {\n disableSmoothScroll: isTestEnv,\n };\n\n private getProps = createPropsGetter(ValidationContainer.defaultProps);\n private validateProps(scrollOffset: ValidationContainerProps['scrollOffset']): void {\n warning(\n typeof scrollOffset !== 'number',\n `[ValidationContainer]: scrollOffset as a number type has been deprecated, now use object { top?: number; bottom?: number; }`,\n );\n }\n\n private childContext: ValidationContextWrapper | null = null;\n\n public async submit(withoutFocus?: boolean): Promise<void>;\n public async submit(validationSettings?: ValidationSettings): Promise<void>;\n\n public async submit(\n withoutFocusOrValidationSettings: ValidateArgumentType = { focusMode: FocusMode.Errors },\n ): Promise<void> {\n if (!this.childContext) {\n throw new Error('childContext is not defined');\n }\n await this.childContext.validate(withoutFocusOrValidationSettings);\n }\n\n public async validate(withoutFocus?: boolean): Promise<boolean>;\n public async validate(validationSettings?: ValidationSettings): Promise<boolean>;\n\n public validate(\n withoutFocusOrValidationSettings: ValidateArgumentType = { focusMode: FocusMode.Errors },\n ): Promise<boolean> {\n if (!this.childContext) {\n throw new Error('childContext is not defined');\n }\n return this.childContext.validate(withoutFocusOrValidationSettings);\n }\n\n public componentDidMount() {\n this.validateProps(this.getProps().scrollOffset);\n }\n\n public componentDidUpdate() {\n const props = this.getProps();\n this.validateProps(props.scrollOffset);\n }\n\n public render() {\n return (\n <ValidationContextWrapper\n data-tid={this.props['data-tid']}\n ref={this.refChildContext}\n scrollOffset={this.props.scrollOffset}\n disableSmoothScroll={this.getProps().disableSmoothScroll}\n onValidationUpdated={this.props.onValidationUpdated}\n >\n {this.props.children}\n </ValidationContextWrapper>\n );\n }\n\n private refChildContext = (el: ValidationContextWrapper | null) => (this.childContext = el);\n}\n","import { findDOMNode } from 'react-dom';\nimport type React from 'react';\nimport warning from 'warning';\n\nimport type { Nullable } from '../../../typings/Types';\nimport { isElement } from '../utils';\n\nexport interface InstanceWithRootNode {\n getRootNode: () => Nullable<HTMLElement>;\n}\n\nconst isInstanceWithRootNode = (instance: unknown): instance is InstanceWithRootNode => {\n return Boolean(instance) && Object.prototype.hasOwnProperty.call(instance, 'getRootNode');\n};\n\n/**\n * Temporary duplicates @skbkontur/react-ui/lib/rootNode/getRootNode.ts\n * */\n\nexport const getRootNode = (instance: Nullable<React.ReactInstance>): Nullable<Element> => {\n /**\n * Options of what instance can be:\n * 1. null or undefined\n * 2. DOM Element\n * 3. class Component instance (object)\n * 4. literally anything, returned from useImperativeHandle\n */\n\n if (!instance) {\n // instance can be `null` if component was unmounted\n // also checking undefined for convenient usage\n return null;\n }\n\n if (isElement(instance)) {\n // instance can be an Element already if its coming\n // from Refs of intrinsic elements (<div />, <button />, etc.)\n return instance;\n }\n\n let rootNode;\n\n if (isInstanceWithRootNode(instance)) {\n rootNode = instance.getRootNode();\n }\n\n if (rootNode !== undefined) {\n // the getter exists and has returned something, it should be what we are looking for\n // probably its an Element or null (which is also OK, e.g. Popup/Tooltip/Hint before opening)\n return rootNode;\n }\n\n try {\n // rootNode is undefined, which means that the getter doesn't exists or returns the undefined\n // anyway, it tell us that the convention is not respected,\n // so, we have to fall back to the deprecated findDOMNode, which breaks StrictMode\n // instance can still be a class component or an imperative handle (i.e., anything, except null/undefined/Element)\n rootNode = findDOMNode(instance);\n } catch (e) {\n // but findDOMNode doesn`t accept everything that instance can be at this point,\n // so we have to handle exceptions\n // see https://github.com/facebook/react/blob/cae63505/packages/react-dom/src/__tests__/findDOMNode-test.js#L66-L86\n warning(\n false,\n '[getRootNode]: can`t fallback to findDOMNode.' +\n '\\n' +\n 'See https://github.com/skbkontur/retail-ui/blob/master/packages/react-ui/README.md#strictmode' +\n '\\n\\n' +\n e.message,\n );\n return null;\n }\n\n // the findDOMNode can also return Text, but we are only interested in Elements, so just filter it\n return isElement(rootNode) ? rootNode : null;\n};\n","import type { Nullable, Omit } from '../typings/Types';\n\nimport type { ScrollOffset } from './ValidationContainer';\nimport { getDoc, getWin, isBrowser, isElement } from './utils/utils';\nimport { isNullable } from './utils/isNullable';\n\nexport async function smoothScrollIntoView(element: Element, scrollOffset: ScrollOffset): Promise<void> {\n const activeDocument = getDoc(element);\n const activeWindow = getWin(element);\n const scrollableParent = findScrollableParent(element);\n const parentRects = scrollableParent.getBoundingClientRect();\n const clientRects = element.getBoundingClientRect();\n\n const topOffset = scrollOffset.top || 0;\n const bottomOffset = scrollOffset.bottom || 0;\n\n if (scrollableParent === activeDocument.body) {\n const html = activeDocument.documentElement || { clientHeight: 0, clientWidth: 0 };\n const viewportHeight = activeWindow?.innerHeight || html.clientHeight;\n const viewportWidth = activeWindow?.innerWidth || html.clientWidth;\n\n const isElementInViewport =\n clientRects.top >= topOffset &&\n clientRects.left >= 0 &&\n clientRects.bottom <= viewportHeight - bottomOffset &&\n clientRects.right <= viewportWidth;\n\n if (isElementInViewport) {\n return;\n }\n\n await scrollBy({\n element,\n left: clientRects.left,\n top: clientRects.top - topOffset,\n });\n } else {\n if (clientRects.top - topOffset + 50 > parentRects.top && clientRects.bottom < parentRects.bottom) {\n return;\n }\n\n await smoothScroll(\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top - topOffset,\n );\n await scrollBy({\n element,\n left: parentRects.left,\n top: parentRects.top,\n });\n }\n}\n\nfunction smoothScroll(element: Element, x: number, y: number): Promise<void> {\n const activeDocument = getDoc(element);\n const activeWindow = getWin(element);\n let context: Omit<StepContent, 'resolve'>;\n\n if (activeWindow) {\n if (element === getDocumentBodyStrict(activeDocument)) {\n context = {\n scrollable: element,\n startX: activeWindow.scrollX || activeWindow.pageXOffset,\n startY: activeWindow.scrollY || activeWindow.pageYOffset,\n method: getScrollWindow(element),\n startTime: getNow(element)(),\n x,\n y,\n };\n } else {\n context = {\n scrollable: element,\n startX: element.scrollLeft,\n startY: element.scrollTop,\n method: scrollElement,\n startTime: getNow(element)(),\n x,\n y,\n };\n }\n }\n\n return new Promise((resolve) => step({ ...context, resolve }));\n}\n\ninterface StepContent {\n scrollable: Element;\n startTime: number;\n startX: number;\n startY: number;\n x: number;\n y: number;\n method: (element: Element, x: number, y: number) => void;\n resolve: () => void;\n}\n\nfunction step({ scrollable, startX, startY, x, y, method, resolve, startTime }: StepContent) {\n const time = getNow(scrollable)();\n const scrollTime = 468;\n const elapsed = Math.min(1, (time - startTime) / scrollTime);\n const value = ease(elapsed);\n const activeWindow = getWin(scrollable);\n\n const currentX = startX + (x - startX) * value;\n const currentY = startY + (y - startY) * value;\n\n method(scrollable, currentX, currentY);\n\n if (currentX !== x || currentY !== y) {\n !!activeWindow &&\n activeWindow.requestAnimationFrame(() => step({ scrollable, startX, startY, x, y, method, resolve, startTime }));\n } else {\n resolve();\n }\n}\n\nconst getScrollWindow = (el: Element) => {\n const activeWindow = getWin(el);\n\n if (isBrowser) {\n if (typeof activeWindow?.scroll === 'function') {\n return (_: any, x: any, y: any) => activeWindow?.scroll(x, y);\n }\n }\n\n return () => undefined;\n};\n\nconst getNow = (el: Element) => {\n const activeWindow = getWin(el);\n return isBrowser && activeWindow?.performance && activeWindow?.performance.now\n ? activeWindow?.performance.now.bind(activeWindow?.performance)\n : Date.now;\n};\n\nfunction scrollElement(element: Element, x: number, y: number) {\n element.scrollLeft = x;\n element.scrollTop = y;\n}\n\nfunction ease(time: number): number {\n return 0.5 * (1 - Math.cos(Math.PI * time));\n}\n\nfunction getDocumentBodyStrict(activeDocument: Document): Element {\n if (isNullable(activeDocument.body)) {\n throw new Error('Scrolling can be used only in browser');\n }\n\n return activeDocument.body;\n}\n\nfunction findScrollableParent(el: Element): Element {\n let isBody: Nullable<boolean>;\n let hasScrollableSpace: Nullable<boolean>;\n let hasVisibleOverflow: Nullable<boolean>;\n let currentElement: Element = el;\n do {\n if (isNullable(currentElement.parentElement) || !isElement(currentElement.parentElement)) {\n return getDocumentBodyStrict(getDoc(currentElement));\n }\n currentElement = currentElement.parentElement;\n isBody = currentElement === getDoc(currentElement).body;\n hasScrollableSpace =\n currentElement.clientHeight < currentElement.scrollHeight ||\n currentElement.clientWidth < currentElement.scrollWidth;\n hasVisibleOverflow = getWin(currentElement)?.getComputedStyle(currentElement, null).overflow === 'visible';\n } while (!isBody && !(hasScrollableSpace && !hasVisibleOverflow));\n\n isBody = null;\n hasScrollableSpace = null;\n hasVisibleOverflow = null;\n\n return currentElement;\n}\n\nfunction scrollBy({ element, left, top }: { element: Element; left: number; top: number }): Promise<void> {\n const activeWindow = getWin(element);\n const activeDocument = getDoc(element);\n\n if (!activeWindow) {\n return new Promise((resolve) => resolve());\n }\n\n const x = Math.floor(left) + (activeWindow?.scrollX || activeWindow?.pageXOffset);\n const y = Math.floor(top) + (activeWindow?.scrollY || activeWindow?.pageYOffset);\n\n return smoothScroll(getDocumentBodyStrict(activeDocument), x, y);\n}\n","import type { Nullable } from '../typings/Types';\n\nimport type { Validation, ValidationBehaviour, ValidationLevel } from './ValidationWrapperInternal';\n\nexport function getVisibleValidation(\n visible: Nullable<Validation>,\n actual: Nullable<Validation>,\n changing: boolean,\n): Nullable<Validation> {\n const from = (type?: Nullable<ValidationBehaviour>): boolean => getType(visible) === type;\n const to = (type?: Nullable<ValidationBehaviour>): boolean => getType(actual) === type;\n\n if (to('immediate')) {\n return actual;\n }\n\n if (changing) {\n return from('immediate') ? null : visible;\n }\n\n if (from(null) && to('lostfocus')) {\n return null;\n }\n\n if (to('lostfocus')) {\n return actual;\n }\n\n if (from('submit') && to('submit')) {\n return visible;\n }\n\n return null;\n}\n\nexport function getType(validation: Nullable<Validation>): Nullable<ValidationBehaviour> {\n return validation ? validation.behaviour : null;\n}\n\nexport function getLevel(validation: Nullable<Validation>): Nullable<ValidationLevel> {\n return validation ? validation.level : null;\n}\n\nexport function getIndependent(validation: Nullable<Validation>): Nullable<boolean> {\n return validation ? validation.independent : null;\n}\n\nexport function isEqual(a: Nullable<Validation>, b: Nullable<Validation>): boolean {\n if (a === b) {\n return true;\n }\n return (\n !!a &&\n !!b &&\n a.behaviour === b.behaviour &&\n a.message === b.message &&\n a.independent === b.independent &&\n a.level === b.level\n );\n}\n","import React from 'react';\n\nexport interface ValidationsFeatureFlags {\n dropdownsDoNotOpenOnFocusByValidation?: boolean;\n hideTooltipOnSelectionControls?: boolean;\n validationWrapperValidateOnMount?: boolean;\n}\n\nexport const validationsFeatureFlagsDefault: ValidationsFeatureFlags = {\n dropdownsDoNotOpenOnFocusByValidation: false,\n hideTooltipOnSelectionControls: false,\n validationWrapperValidateOnMount: false,\n};\n\nexport const ValidationsFeatureFlagsContext =\n React.createContext<ValidationsFeatureFlags>(validationsFeatureFlagsDefault);\n\nValidationsFeatureFlagsContext.displayName = 'ValidationsFeatureFlagsContext';\nValidationsFeatureFlagsContext.__KONTUR_REACT_UI__ = 'ValidationsFeatureFlagsContext';\n","import type { ValidationsFeatureFlags } from './ValidationsFeatureFlagsContext';\nimport { validationsFeatureFlagsDefault } from './ValidationsFeatureFlagsContext';\n\nexport const getFullValidationsFlagsContext = (flags: ValidationsFeatureFlags) => {\n return { ...validationsFeatureFlagsDefault, ...flags };\n};\n","import type { ReactInstance } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport type { Nullable } from '../typings/Types';\n\nimport { getRootNode } from './utils/getRootNode';\nimport { isElement } from './utils/utils';\nimport { smoothScrollIntoView } from './smoothScrollIntoView';\nimport { getIndependent, getLevel, getType, getVisibleValidation, isEqual } from './ValidationHelper';\nimport { ReactUiDetection } from './ReactUiDetection';\nimport type { ValidationContextType } from './ValidationContextWrapper';\nimport { ValidationContext } from './ValidationContextWrapper';\nimport type { ValidationsFeatureFlags } from './utils/featureFlagsContext';\nimport { ValidationsFeatureFlagsContext } from './utils/featureFlagsContext';\n\nexport type ValidationBehaviour = 'immediate' | 'lostfocus' | 'submit';\n\nexport type ValidationLevel = 'error' | 'warning';\n\nexport type TextPosition = 'bottom' | 'right';\n\nexport interface Validation {\n level: ValidationLevel;\n behaviour: ValidationBehaviour;\n message: React.ReactNode;\n independent: boolean;\n}\n\nexport type RenderErrorMessage = (\n control: React.ReactElement<any>,\n hasError: boolean,\n validation: Nullable<Validation>,\n) => React.ReactElement<any>;\n\nexport interface ValidationWrapperInternalProps {\n children?: React.ReactElement<any>;\n validation: Nullable<Validation>;\n errorMessage: RenderErrorMessage;\n 'data-tid'?: string;\n}\n\ninterface ValidationWrapperInternalState {\n validation: Nullable<Validation>;\n}\n\ninterface Point {\n x: number;\n y: number;\n}\n\nexport class ValidationWrapperInternal extends React.Component<\n ValidationWrapperInternalProps,\n ValidationWrapperInternalState\n> {\n public state: ValidationWrapperInternalState = {\n validation: null,\n };\n\n public isChanging = false;\n private child: any; // todo type\n private rootNode: Nullable<Element>;\n\n public static contextType = ValidationContext;\n public context: ValidationContextType = this.context;\n private featureFlags!: ValidationsFeatureFlags;\n\n public componentDidMount() {\n warning(\n this.context,\n 'ValidationWrapper should appears as child of ValidationContainer.\\n' +\n 'https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs',\n );\n if (this.context) {\n this.context.register(this);\n }\n if (this.featureFlags.validationWrapperValidateOnMount && this.context.isValidationCalled()) {\n this.processSubmit();\n } else {\n this.applyValidation(this.props.validation);\n }\n }\n\n public componentWillUnmount() {\n this.context.unregister(this);\n }\n\n public componentDidUpdate() {\n this.applyValidation(this.props.validation);\n }\n\n public async focus(): Promise<void> {\n const htmlElement = this.getRootNode();\n if (isElement(htmlElement)) {\n const { disableSmoothScroll, scrollOffset } = this.context.getSettings();\n if (!disableSmoothScroll) {\n await smoothScrollIntoView(htmlElement, scrollOffset);\n }\n if (this.child && typeof this.child.focus === 'function') {\n this.child.focus({ withoutOpenDropdown: this.featureFlags.dropdownsDoNotOpenOnFocusByValidation });\n }\n }\n this.isChanging = false;\n }\n\n public render() {\n const { children, 'data-tid': dataTid } = this.props;\n const { validation } = this.state;\n\n let clonedChild: React.ReactElement<any> = children ? (\n React.cloneElement(children, {\n ref: this.customRef,\n error: !this.isChanging && getLevel(validation) === 'error',\n warning: !this.isChanging && getLevel(validation) === 'warning',\n onBlur: (...args: any[]) => {\n this.handleBlur();\n if (children.props && children.props.onBlur) {\n children.props.onBlur(...args);\n }\n },\n onChange: (...args: any[]) => {\n this.isChanging = true;\n if (children.props && children.props.onChange) {\n children.props.onChange(...args);\n }\n },\n onValueChange: (...args: any[]) => {\n this.isChanging = true;\n\n if (this.featureFlags.hideTooltipOnSelectionControls && ReactUiDetection.isSelectionControl(children)) {\n this.setValidation(null);\n }\n\n if (children.props && children.props.onValueChange) {\n children.props.onValueChange(...args);\n }\n },\n })\n ) : (\n <span ref={this.setRootNode} />\n );\n if (ReactUiDetection.isComboBox(clonedChild)) {\n clonedChild = React.cloneElement(clonedChild, {\n onInputValueChange: (...args: any[]) => {\n this.isChanging = true;\n this.forceUpdate();\n if (children && children.props && children.props.onInputValueChange) {\n return children.props.onInputValueChange(...args);\n }\n },\n });\n }\n\n return (\n <ValidationsFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = flags;\n return React.cloneElement(\n this.props.errorMessage(<div style={{ display: 'inline' }}>{clonedChild}</div>, !!validation, validation),\n {\n 'data-tid': dataTid,\n },\n );\n }}\n </ValidationsFeatureFlagsContext.Consumer>\n );\n }\n\n private customRef = (instance: Nullable<ReactInstance>) => {\n const { children } = this.props;\n\n this.setRootNode(instance);\n const child = children as any; // todo type or maybe React.Children.only\n if (child && child.ref) {\n if (typeof child.ref === 'function') {\n child.ref(instance);\n }\n if (Object.prototype.hasOwnProperty.call(child.ref, 'current')) {\n child.ref.current = instance;\n }\n }\n this.child = instance;\n };\n\n private setRootNode = (element: Nullable<ReactInstance>) => {\n this.rootNode = getRootNode(element);\n };\n\n public getRootNode = () => {\n return this.rootNode;\n };\n\n public getControlPosition(): Nullable<Point> {\n const htmlElement = this.getRootNode();\n if (isElement(htmlElement)) {\n const rect = htmlElement.getBoundingClientRect();\n return { x: rect.top, y: rect.left };\n }\n return null;\n }\n\n public processBlur() {\n const touched = this.isChanging;\n this.isChanging = false;\n const validation = this.getOnBlurValidation(touched);\n return this.setValidation(validation);\n }\n\n public async processSubmit(): Promise<void> {\n this.isChanging = false;\n return this.setValidation(this.props.validation);\n }\n\n public hasError(): boolean {\n return getLevel(this.state.validation) === 'error';\n }\n\n public hasWarning(): boolean {\n return getLevel(this.state.validation) === 'warning';\n }\n\n public isIndependent(): boolean {\n return getIndependent(this.state.validation || this.props.validation) === true;\n }\n\n private handleBlur() {\n setTimeout(() => {\n this.processBlur();\n if (!this.isIndependent()) {\n this.context.instanceProcessBlur(this);\n }\n this.setState({});\n });\n }\n\n private applyValidation(actual: Nullable<Validation>) {\n const visible = this.getVisibleValidation(actual);\n this.setValidation(visible);\n }\n\n private setValidation(validation: Nullable<Validation>): Promise<void> {\n const current = this.state.validation;\n\n if (current === validation) {\n return Promise.resolve();\n }\n\n return new Promise((resolve) => {\n this.setState({ validation }, () => {\n if (Boolean(current) !== Boolean(validation)) {\n this.context.onValidationUpdated(this, !validation);\n }\n resolve();\n });\n });\n }\n\n private getOnBlurValidation(touched: boolean): Nullable<Validation> {\n const actual = this.props.validation;\n if (getType(actual) === 'submit') {\n const visible = this.state.validation;\n return !touched && getType(visible) === 'submit' ? visible : null;\n }\n return actual;\n }\n\n private getVisibleValidation(actual: Nullable<Validation>): Nullable<Validation> {\n const visible = this.state.validation;\n if (isEqual(visible, actual)) {\n return visible;\n }\n const changing = this.context.isAnyWrapperInChangingMode();\n return getVisibleValidation(visible, actual, changing);\n }\n}\n","import React from 'react';\n\nimport type { Nullable } from '../typings/Types';\n\nimport { tooltip } from './ErrorRenderer';\nimport type {\n RenderErrorMessage,\n Validation,\n ValidationBehaviour,\n ValidationLevel,\n ValidationWrapperInternalProps,\n} from './ValidationWrapperInternal';\nimport { ValidationWrapperInternal } from './ValidationWrapperInternal';\n\nexport interface ValidationInfo {\n type?: Nullable<ValidationBehaviour>;\n level?: Nullable<ValidationLevel>;\n message: React.ReactNode;\n independent?: boolean;\n}\n\nexport interface ValidationWrapperProps extends Pick<ValidationWrapperInternalProps, 'data-tid'> {\n children?: React.ReactElement<any>;\n validationInfo: Nullable<ValidationInfo>;\n renderMessage?: Nullable<RenderErrorMessage>;\n}\n\nexport class ValidationWrapper extends React.Component<ValidationWrapperProps> {\n public static __KONTUR_REACT_UI__ = 'ValidationWrapper';\n public static displayName = 'ValidationWrapper';\n\n public render() {\n const { children, validationInfo, renderMessage, 'data-tid': datTid } = this.props;\n const validation: Nullable<Validation> = validationInfo\n ? {\n level: validationInfo.level || 'error',\n behaviour: validationInfo.type || 'lostfocus',\n message: validationInfo.message,\n independent: validationInfo.independent || false,\n }\n : null;\n\n return (\n <ValidationWrapperInternal\n data-tid={datTid}\n errorMessage={renderMessage || tooltip('right top')}\n validation={validation}\n >\n {children}\n </ValidationWrapperInternal>\n );\n }\n}\n","import type React from 'react';\n\nimport type { Nullable } from '../../typings/Types';\nimport type { ValidationBehaviour, ValidationLevel } from '../ValidationWrapperInternal';\nimport type { ValidationInfo } from '../ValidationWrapper';\nimport { isNullable } from '../utils/isNullable';\n\nimport type { LambdaPath, PathTokensCache } from './PathHelper';\nimport type { ValidationWriter } from './ValidationWriter';\nimport type { ItemValidationRule, ValidationRule } from './Types';\n\ninterface PathInfo<T> {\n data: T;\n path: string[];\n}\n\nexport class ValidationBuilder<TRoot, T> {\n // eslint-disable-next-line no-useless-constructor\n constructor(\n private readonly writer: ValidationWriter<TRoot>,\n private readonly tokens: PathTokensCache,\n private readonly path: string[],\n private readonly data: T,\n ) {}\n\n public prop<TChild>(lambdaPath: LambdaPath<T, TChild>, rule: ValidationRule<TRoot, TChild>): void {\n const info = this.getPathInfo(lambdaPath);\n if (isNullable(info)) {\n return;\n }\n\n const builder = new ValidationBuilder<TRoot, TChild>(this.writer, this.tokens, info.path, info.data);\n rule(builder, builder.data);\n }\n\n public array<TChild>(lambdaPath: LambdaPath<T, TChild[]>, rule: ItemValidationRule<TRoot, TChild>): void {\n const info = this.getPathInfo(lambdaPath);\n if (isNullable(info) || !Array.isArray(info.data)) {\n return;\n }\n\n const array = info.data;\n for (let i = 0; i < array.length; ++i) {\n const path = [...info.path, i.toString()];\n const builder = new ValidationBuilder<TRoot, TChild>(this.writer, this.tokens, path, array[i]);\n rule(builder, builder.data, i, array);\n }\n }\n\n public invalid(isInvalid: (value: T) => boolean, validationInfo: ValidationInfo): void;\n public invalid(\n isInvalid: (value: T) => boolean,\n message: React.ReactNode,\n type?: ValidationBehaviour,\n level?: ValidationLevel,\n independent?: boolean,\n ): void;\n\n public invalid(\n isInvalid: (value: T) => boolean,\n messageOrValidationInfo: React.ReactNode | ValidationInfo,\n type?: ValidationBehaviour,\n level?: ValidationLevel,\n independent?: boolean,\n ) {\n const validationWriter = this.writer.getNode<T>(this.path);\n if (validationWriter.isValidated()) {\n return;\n }\n\n const invalid = isInvalid(this.data);\n if (!invalid) {\n return;\n }\n\n if (isValidationInfo(messageOrValidationInfo)) {\n validationWriter.set(messageOrValidationInfo);\n } else {\n validationWriter.set({ message: messageOrValidationInfo, type, level, independent });\n }\n }\n\n private getPathInfo<TChild>(lambdaPath: LambdaPath<T, TChild>): Nullable<PathInfo<TChild>> {\n const path = this.tokens.getOrAdd(lambdaPath);\n\n let data: any = this.data;\n for (const part of path) {\n if (isNullable(data)) {\n return null;\n }\n data = data[part];\n }\n\n return { data, path: [...this.path, ...path] };\n }\n}\n\nconst isValidationInfo = (argument: unknown): argument is ValidationInfo =>\n typeof argument === 'object' && Object.prototype.hasOwnProperty.call(argument, 'message');\n","/* eslint-disable no-useless-constructor */\nimport type { ValidationInfo } from '../ValidationWrapper';\nimport type { ExtractItem, Nullable } from '../../typings/Types';\n\nimport type { ValidationNode } from './Types';\nimport type { LambdaPath, PathTokensCache } from './PathHelper';\n\nexport class ValidationReader<T> {\n constructor(\n private readonly node: Nullable<ValidationNode<T>>,\n private readonly tokens: PathTokensCache,\n ) {}\n\n public getNode<TChild>(lambdaPath: LambdaPath<T, TChild>): ValidationReader<TChild> {\n const path = this.tokens.getOrAdd(lambdaPath);\n return this.getReaderInternal<TChild>(path);\n }\n\n public getNodeByIndex(index: number): ValidationReader<ExtractItem<T>> {\n return this.getReaderInternal<ExtractItem<T>>([index.toString()]);\n }\n\n public getNodeByKey<TKey extends keyof T>(key: TKey): ValidationReader<T[TKey]> {\n return this.getReaderInternal<T[TKey]>([key.toString()]);\n }\n\n public get(): Nullable<ValidationInfo> {\n return this.node ? this.node.validation : null;\n }\n\n private getReaderInternal<TChild>(path: string[]): ValidationReader<TChild> {\n const node = this.getNodeInternal<TChild>(path);\n return new ValidationReader<TChild>(node, this.tokens);\n }\n\n private getNodeInternal<TChild>(path: string[]): Nullable<ValidationNode<TChild>> {\n let current: Nullable<ValidationNode<any>> = this.node;\n for (const part of path) {\n if (!current || !current.children) {\n return null;\n }\n current = current.children[part];\n }\n return current;\n }\n}\n","import type { ValidationInfo } from '../ValidationWrapper';\n\nimport type { ValidationNode } from './Types';\nimport { ValidationReader } from './ValidationReader';\nimport type { PathTokensCache } from './PathHelper';\n\nexport class ValidationWriter<T> {\n private readonly node: ValidationNode<T>;\n\n constructor(node?: ValidationNode<T>) {\n this.node = node || { validation: null, children: null };\n }\n\n public getReader(tokens: PathTokensCache): ValidationReader<T> {\n return new ValidationReader(this.node, tokens);\n }\n\n public set(validation: ValidationInfo): void {\n this.node.validation = validation;\n }\n\n public isValidated(): boolean {\n return !!this.node.validation;\n }\n\n public getNode<TChild>(path: string[]): ValidationWriter<TChild> {\n const node = this.getNodeInternal<TChild>(path);\n return new ValidationWriter<TChild>(node);\n }\n\n private getNodeInternal<TChild>(path: string[]): ValidationNode<TChild> {\n let node: ValidationNode<any> = this.node;\n for (const part of path) {\n if (!node.children) {\n node.children = {};\n }\n if (!node.children[part]) {\n node.children[part] = {\n validation: null,\n children: null,\n };\n }\n node = node.children[part];\n }\n return node;\n }\n}\n","const classicFunctionRegEx =\n /^\\s*function\\s*\\(\\s*([A-Za-z0-9_$]+)\\s*\\)\\s*\\{\\s*(?:(?:\"use strict\"|'use strict');?)?\\s*return\\s+\\1\\s*([.[].*?)?\\s*;?\\s*\\}\\s*$/;\nconst arrowFunctionRegEx = /^\\s*\\(?\\s*([A-Za-z0-9_$]+)\\s*\\)?\\s*=>\\s*\\1\\s*([.[].*?)?\\s*$/;\n\ntype NonNullableRecursive<T> = {\n [K in keyof T]-?: T[K] extends Record<string, unknown> ? NonNullable<NonNullableRecursive<T[K]>> : NonNullable<T[K]>;\n};\n\nexport type LambdaPath<T, TChild> = (x: NonNullable<NonNullableRecursive<T>>) => TChild;\n\nexport function extractPath(lambda: string): string {\n const match = classicFunctionRegEx.exec(lambda) || arrowFunctionRegEx.exec(lambda);\n if (match && match.length === 3) {\n return (match[2] || '').replace(/(^\\.\\s*)/g, '');\n }\n throw new Error(`Not supported or invalid path: <${lambda}>`);\n}\n\nexport function extractTokens(path: string): string[] {\n return path.split(/[\\s.[\\]]+/g).filter((x) => x);\n}\n\nexport class PathTokensCache {\n private readonly cache = new Map<string, string[]>();\n\n public getOrAdd<T, TChild>(lambdaPath: LambdaPath<T, TChild>): string[] {\n const lambdaString = lambdaPath.toString();\n\n if (!this.cache.has(lambdaString)) {\n const path = extractPath(lambdaString);\n const tokens = extractTokens(path);\n this.cache.set(lambdaString, tokens);\n }\n\n return this.cache.get(lambdaString) as string[];\n }\n\n public has<T, TChild>(lambdaPath: LambdaPath<T, TChild>): boolean {\n const lambdaString = lambdaPath.toString();\n return this.cache.has(lambdaString);\n }\n\n public get size(): number {\n return this.cache.size;\n }\n}\n","import { ValidationBuilder } from './ValidationBuilder';\nimport { ValidationWriter } from './ValidationWriter';\nimport { RootValidationRule, ValidationRule, ItemValidationRule } from './Types';\nimport { ValidationReader } from './ValidationReader';\nimport { PathTokensCache } from './PathHelper';\n\nfunction validate<T>(data: T, validationRule: RootValidationRule<T>, tokens: PathTokensCache): ValidationReader<T> {\n const validationWriter = new ValidationWriter<T>();\n const builder = new ValidationBuilder<T, T>(validationWriter, tokens, [], data);\n validationRule(builder, data);\n return validationWriter.getReader(tokens);\n}\n\nexport type Validator<T> = (value: T) => ValidationReader<T>;\n\nexport function createValidator<T>(rule: RootValidationRule<T>): Validator<T> {\n const tokens = new PathTokensCache();\n return (value: T): ValidationReader<T> => {\n return validate(value, rule, tokens);\n };\n}\n\nexport { ValidationReader, ValidationBuilder, RootValidationRule, ValidationRule, ItemValidationRule };\n"],"names":["types","this","global","require$$0","reactIs_production_min","reactIs_development","reactIsModule","require$$1","isForwardRef","isNonNullable","isNullable","isElement","ColorFunctions.fade","ColorFunctions.darken","ColorFunctions.lighten","_a","setPrototypeOf","require$$2","require$$3","require$$4","propTypesModule","globalObject","unstable_batchedUpdates","getRootNode","isInstanceWithRootNode","findDOMNode","createPropsGetter","_b","isReactUITestEnv","isTestEnv","memoize","prefix","isBrowser","unitless","hashString","setWindow","extraScopePlugin","styles","templateObject_1","templateObject_2","templateObject_3","templateObject_4","templateObject_5","templateObject_12","templateObject_13","LayoutEvents.addListener","debounce","isEqual","useContext","createRef","useState","useCallback","useEffect","listenFocusOutside","templateObject_6","templateObject_7","jsStyles","templateObject_8","Codes","forwardRef","REACT_UI_TEST","FocusMode"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,49,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,84]}
|