{"version":3,"file":"76701.99b125eb.es5.js","mappings":"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,QAAQ,WAAa,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,aAAe,QAAQ,aAAe,QAAQ,aAAe,QAAQ,aAAe,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,eAAiB,QAAQ,eAAiB,QAAQ,eAAiB,QAAQ,eAAiB,QAAQ,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,YAAc,SAAS,YAAc,SAAS,YAAc,SAAS,YAAc,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,YAAc,SAAS,YAAc,SAAS,YAAc,SAAS,YAAc,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,e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","sources":["webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-helpers-common/src/browser/send-event/helpers.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-helpers-common/src/browser/send-event/index.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-stack/src/config.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-stack/src/stacking-context.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-stack/src/stack.tsx","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-tabs/src/components/headers/tabs-header/components/rendered-header.tsx","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-tabs/src/components/headers/tabs-header/config.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-tabs/src/components/headers/tabs-header/helpers/get-handlers.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-tabs/src/components/headers/tabs-header/hooks/use-tabs-header.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-util-create-widget/src/create-widget.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-util-create-widget/src/styles/common.css","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-util-create-widget/src/generate-style.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-util-create-widget/src/helpers.tsx","webpack://assr-alfaleasing/./node_modules/classnames/index.js","webpack://assr-alfaleasing/./node_modules/lodash/_baseTrim.js","webpack://assr-alfaleasing/./node_modules/lodash/_trimmedEndIndex.js","webpack://assr-alfaleasing/./node_modules/lodash/debounce.js","webpack://assr-alfaleasing/./node_modules/lodash/now.js","webpack://assr-alfaleasing/./node_modules/lodash/throttle.js","webpack://assr-alfaleasing/./node_modules/lodash/toNumber.js","webpack://assr-alfaleasing/./node_modules/react-use/lib/misc/util.js","webpack://assr-alfaleasing/./node_modules/react-use/lib/useEvent.js","webpack://assr-alfaleasing/./node_modules/react-use/lib/useFirstMountState.js","webpack://assr-alfaleasing/./node_modules/react-use/lib/useUpdateEffect.js"],"sourcesContent":["import isEmpty from 'lodash/isEmpty';\n\nimport type { TWindowWithDataLayer, TWindowWithYandexMetric } from './models';\n\nexport const hasYandexMetric = (obj: unknown): obj is TWindowWithYandexMetric =>\n !!obj && typeof (obj as TWindowWithYandexMetric).ym === 'function';\n\nexport const hasDataLayer = (obj: unknown): obj is TWindowWithDataLayer =>\n !!(obj && (obj as TWindowWithDataLayer).dataLayer);\n\nexport const isNotEmpty = (obj: T): obj is NonNullable => !isEmpty(obj);\n","import type { TEvent } from './models';\nimport { hasDataLayer, hasYandexMetric, isNotEmpty } from './helpers';\n\nexport const sendEvent = (evt: TEvent = {}): void => {\n const globalContext = window;\n const { ymEvent, ...gaEvent } = evt;\n\n if (process.env.NODE_ENV === 'development') {\n if (isNotEmpty(gaEvent)) {\n console.info('Google Event:\\n', gaEvent);\n }\n if (isNotEmpty(ymEvent)) {\n const ymEvents = [ymEvent].flat();\n ymEvents.forEach(event => {\n const { method = 'reachGoal', params } = event;\n console.info('Yandex Event:\\n', method, ...[params].flat());\n });\n }\n }\n\n if (hasDataLayer(globalContext) && isNotEmpty(gaEvent)) {\n const completeEvt = {\n path: globalContext.location.pathname,\n ...gaEvent,\n };\n\n globalContext.dataLayer.push(completeEvt);\n }\n\n if (hasYandexMetric(globalContext) && isNotEmpty(ymEvent)) {\n const ymEvents = [ymEvent].flat();\n ymEvents.forEach(event => {\n const { method = 'reachGoal', params } = event;\n\n globalContext.ym(`${process.env.CUSTOM_YTM_ID}`, method, ...[params].flat());\n });\n }\n};\n","/**\n * Набор констант для z-index соответствующих классов компонентов.\n * Значения выбраны по приоритету. Например, модальное окно с оверлеем должно всегда быть выше других компонентов.\n */\nexport const stackingOrder = {\n /**\n * Для компонентов с возможностью фокуса: кнопки, поля ввода\n */\n FOCUSED: 2,\n /**\n * Значение по-умолчанию\n */\n DEFAULT: 5,\n /**\n * Компоненты, которые управляют своей позицией, например, тултипы\n */\n POSITIONER: 20,\n /**\n * Для модальных окон с оверлеем\n */\n OVERLAY: 30,\n};\n\nexport const config = {\n stackingOrder,\n};\n","import { createContext } from 'react';\n\nimport { stackingOrder } from './config';\n\nexport const StackingContext = createContext(stackingOrder.DEFAULT);\n","import type { FC } from 'react';\nimport React, { cloneElement } from 'react';\n\nimport { stackingOrder } from './config';\nimport { StackingContext } from './stacking-context';\nimport type { IProps } from './models';\n\n/**\n * Компонент управляет stacking order других компонентов через [React.Context](https://reactjs.org/docs/context.html).\n */\nexport const Stack: FC = ({\n children,\n /**\n * Значение z-index по-умолчанию.\n * Если StackingContext.Consumer передал большее значение, то будет использоваться оно.\n */\n value = stackingOrder.DEFAULT,\n ...transitProps\n}) => (\n \n {previousValue => {\n const currentValue = Math.max(value, previousValue);\n const nextValue = currentValue + 1;\n\n return (\n \n {cloneElement(children(currentValue), { ...transitProps })}\n \n );\n }}\n \n);\n","import React from 'react';\nimport type { CSSProperties } from 'react';\nimport cn from 'classnames';\nimport { Stack } from '@alfa-bank/site-stack';\nimport { IconViewSuperEllipse } from '@alfa-bank/site-icon-view/super-ellipse';\n\nimport type { TUseTabHeaderResult } from '../hooks/use-tabs-header';\nimport { DEFAULT_BROWSER } from '../../../config';\nimport type { IHeaderPrivateProps, IHeaderPublicProps } from '../../../../models';\nimport type { ITabsHeaderPublicProps } from '../../../tabs/models';\nimport type { TTabsPanelHeaderProps } from '../../panel-header/models';\nimport type stylesTabsHeaders from '../styles/tabs-headers.css';\nimport type stylesPanelHeaderMobile from '../../panel-header/mobile/styles/styles.css';\n\nexport type TRenderedHeader = Pick &\n IHeaderPublicProps &\n (ITabsHeaderPublicProps | TTabsPanelHeaderProps) &\n TUseTabHeaderResult & {\n className?: string;\n iconBackgroundColor?: CSSProperties['backgroundColor'];\n onTabMouseDown?: (event: React.MouseEvent) => void;\n onTabMouseUp?: (event: React.MouseEvent) => void;\n styles: typeof stylesTabsHeaders | typeof stylesPanelHeaderMobile;\n tabInlineStyle?: CSSProperties;\n };\n\nexport const RenderedHeader = ({\n alignStyle,\n browser = DEFAULT_BROWSER,\n className,\n dataTestId,\n headerContainer,\n headerList,\n iconBackgroundColor,\n linePosition,\n lineWidth,\n onClick,\n onTouchEnd,\n onTouchStart,\n onTabMouseDown,\n onTabMouseUp,\n selectedID,\n selectedTab,\n styles,\n tabInlineStyle,\n themeStyle,\n titles,\n translateX,\n}: TRenderedHeader) => {\n return (\n \n \n \n {zIndex => (\n \n )}\n \n\n {titles.map(item => (\n \n {zIndex => (\n onClick(event, item.id, item.dataLayer)}\n onKeyDown={() => {}}\n onMouseDown={e => onTabMouseDown?.(e)}\n onMouseUp={e => onTabMouseUp?.(e)}\n role=\"tab\"\n style={{ zIndex, ...tabInlineStyle }}\n tabIndex={-1}\n >\n {item.iconSrc && (\n \n )}\n {item.title}\n \n )}\n \n ))}\n \n \n );\n};\n","import type { TTheme } from './models';\n\nexport const DEFAULT_THEME: TTheme = 'white';\n\nexport const MARGIN = 45;\n\n/** Время инициализации табов, навешивания listeners */\nexport const INIT_TIME = 350;\n","/* eslint-disable no-param-reassign */\nimport type { Dispatch, MouseEvent, MutableRefObject, RefObject, SetStateAction } from 'react';\nimport type React from 'react';\nimport { useCallback } from 'react';\n\nimport type { IState } from '../hooks/use-tabs-header';\nimport { MARGIN } from '../config';\nimport type { ITitle } from '../../../tabs/models';\nimport type { IBrowser } from '../../../../models';\n\ninterface IInputs {\n /** Браузер */\n browser: IBrowser;\n\n /** Координаты */\n coords: MutableRefObject<{ x: number; y: number }>;\n\n /** Ref на заголовок */\n headerContainer: RefObject;\n\n /** Ширина заголовка */\n headerContainerWidth: MutableRefObject;\n\n /** Ref на список в заголовке */\n headerList: RefObject;\n\n /** Работает ли скрол */\n isScrollable: MutableRefObject;\n\n /** Минимальный translateX */\n minxtranslateX: MutableRefObject;\n\n /** Включена ли анимация */\n move: MutableRefObject;\n\n /** Выбранный id */\n selectedID: string | number;\n\n /** Ref на Выбранный таб */\n selectedTab: RefObject;\n\n /** Ф-ия установки стейта */\n setState: Dispatch>;\n\n /** Старт */\n start: MutableRefObject;\n\n /** Стейт */\n state: IState;\n\n /** Массив тайтлов */\n titles: ITitle[];\n}\n\ntype TOnStart = Pick;\n\nexport interface ICustomWindow extends Window {\n /** Ф-ия DOMMatrix */\n DOMMatrix: new (init: string | number[]) => DOMMatrix;\n\n /** Ф-ия MSCSSMatrix */\n MSCSSMatrix: new (init: string | number[]) => DOMMatrix;\n\n /** Ф-ия WebKitCSSMatrix */\n WebKitCSSMatrix: new (init: string | number[]) => DOMMatrix;\n}\n\ndeclare let window: ICustomWindow;\n\n/** Функция возвращает обработчики событий\n * Код ниже невозможно протестировать\n * потому что jest dom не реализовывает CSSMatrixConstructor\n * мокать слишком дорого и не имеет смысла\n */\n/* istanbul ignore next */\nexport const useHandlers = ({\n browser,\n coords,\n headerContainer,\n headerContainerWidth,\n headerList,\n isScrollable,\n minxtranslateX,\n move,\n selectedID,\n selectedTab,\n setState,\n start,\n state,\n titles,\n}: IInputs) => {\n const onStart = ({ clientX, clientY }: TOnStart) => {\n const headerListCurrent = headerList.current;\n\n if (!headerListCurrent) return;\n\n coords.current = {\n x: clientX,\n y: clientY,\n };\n\n start.current = true;\n\n const { transform } = window.getComputedStyle(headerListCurrent);\n\n const CSSMatrixConstructor = window.WebKitCSSMatrix;\n\n const { e: currentTranslateX } = new CSSMatrixConstructor(transform);\n\n setState(value => {\n const { translateX } = value;\n\n return {\n ...value,\n translateX: translateX === currentTranslateX ? translateX : currentTranslateX,\n };\n });\n };\n\n const onEnd = (clientX: number) => {\n if (!start.current) return;\n\n if (!move.current) {\n start.current = false;\n\n return;\n }\n\n move.current = false;\n start.current = false;\n\n setState(value => {\n let { translateX } = value;\n\n translateX += clientX - coords.current.x;\n\n coords.current = {\n ...coords.current,\n x: clientX,\n };\n\n if (translateX < minxtranslateX.current) {\n translateX = minxtranslateX.current;\n }\n\n if (translateX > 0) {\n translateX = 0;\n }\n\n return { ...value, translateX };\n });\n };\n\n const onTouchStart = (event: React.TouchEvent) => {\n if (!isScrollable.current) return;\n\n // eslint-disable-next-line prefer-destructuring\n const { clientX, clientY } = event.changedTouches[0];\n\n if (event.touches.length !== 1) return;\n\n onStart({ clientX, clientY });\n };\n\n const onTouchEnd = (event: React.TouchEvent) => {\n if (!isScrollable.current) return;\n\n // eslint-disable-next-line prefer-destructuring\n const { clientX } = event.changedTouches[0];\n\n onEnd(clientX);\n };\n\n const changePositionToSelectedID = useCallback(\n // eslint-disable-next-line sonarjs/cognitive-complexity\n (selectedIDCurrent: number | string, prevSelectedID?: number | string) => {\n const tab = selectedTab.current;\n\n if (!tab) return;\n\n const id = titles.findIndex(title => selectedIDCurrent === title.id);\n let prevID = titles.findIndex(title => prevSelectedID === title.id);\n\n prevID = prevID === -1 ? 0 : prevID;\n\n const direction = prevID - id;\n\n const width = tab.offsetWidth;\n\n const parent = selectedTab.current?.parentElement;\n const parentX = parent?.getBoundingClientRect().left ?? 0;\n const tabX = selectedTab.current?.getBoundingClientRect().left ?? 0;\n const position = tabX - parentX;\n\n let translateX = 0;\n\n if (isScrollable.current) {\n if (direction < 0) {\n translateX = MARGIN - position;\n\n if (translateX < minxtranslateX.current) {\n translateX = minxtranslateX.current;\n }\n }\n\n if (direction > 0) {\n translateX = headerContainerWidth.current - (position + width + MARGIN);\n\n if (translateX > 0) {\n translateX = 0;\n }\n }\n }\n\n setState({\n selectedID,\n translateX,\n lineWidth: width,\n linePosition: position,\n });\n },\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [selectedTab.current, titles]\n );\n\n const onMove = (clientX: number) => {\n if (coords.current.x === clientX) return;\n\n move.current = true;\n\n setState(value => {\n let { translateX } = value;\n\n translateX += clientX - coords.current.x;\n\n coords.current = { ...coords.current, x: clientX };\n\n if (translateX < minxtranslateX.current - 100) {\n translateX = minxtranslateX.current - 100;\n }\n\n if (translateX > 100) {\n translateX = 100;\n }\n\n return { ...value, translateX };\n });\n };\n\n const onTouchMove = (event: TouchEvent) => {\n const [{ clientX, clientY }] = event.changedTouches;\n\n if (!start.current || event.touches.length !== 1) return;\n\n if (\n !move.current &&\n Math.abs(coords.current.x - clientX) < Math.abs(coords.current.y - clientY)\n ) {\n start.current = false;\n\n return;\n }\n\n event.preventDefault();\n\n onMove(clientX);\n };\n\n const addEventListener = () => {\n const headerContainerCurrent = headerContainer.current;\n\n if (!browser.mobile || !headerContainerCurrent) return;\n\n headerContainerCurrent.addEventListener('touchmove', onTouchMove);\n };\n\n const removeEventListener = () => {\n const headerContainerCurrent = headerContainer.current;\n\n if (!headerContainerCurrent) return;\n\n headerContainerCurrent.removeEventListener('touchmove', onTouchMove);\n };\n\n const init = () => {\n const headerContainerCurrent = headerContainer.current;\n const headerListCurrent = headerList.current;\n if (!headerContainerCurrent) return;\n\n if (!headerListCurrent) return;\n\n const headerListWidth = headerListCurrent.getBoundingClientRect().width;\n\n const headerContainerWidthCurrent = headerContainerCurrent.getBoundingClientRect().width;\n const { selectedID: selectedIDCurrent } = state;\n\n if (headerContainerWidth.current === headerContainerWidthCurrent) return;\n\n headerContainerWidth.current = headerContainerWidthCurrent;\n minxtranslateX.current = headerContainerWidthCurrent - headerListWidth;\n\n if (minxtranslateX.current >= 0) {\n isScrollable.current = false;\n removeEventListener();\n } else {\n isScrollable.current = true;\n addEventListener();\n }\n\n changePositionToSelectedID(selectedIDCurrent);\n };\n\n return {\n init,\n onTouchStart,\n onTouchEnd,\n changePositionToSelectedID,\n };\n};\n","import type { MouseEvent } from 'react';\nimport { sendEvent } from '@alfa-bank/site-helpers-common/browser/send-event';\nimport throttle from 'lodash/throttle';\nimport { useEffect, useRef, useState } from 'react';\nimport useEvent from 'react-use/lib/useEvent';\nimport useUpdateEffect from 'react-use/lib/useUpdateEffect';\n\nimport { DEFAULT_THEME, INIT_TIME } from '../config';\nimport { useHandlers } from '../helpers/get-handlers';\nimport { DEFAULT_BROWSER } from '../../../config';\nimport type { IHeaderPrivateProps, IHeaderPublicProps } from '../../../../models';\nimport type { ITitle, TThemes } from '../../../tabs/models';\nimport type { TPanelHeaderMobileTheme } from '../../panel-header/models';\nimport type { TTabHeadersTheme } from '../models';\n\ntype TThemeStyles = TTabHeadersTheme & TPanelHeaderMobileTheme;\n\nexport interface IState {\n linePosition: number;\n lineWidth: number;\n selectedID: number | string;\n translateX: number;\n}\nexport type TUseTabsHeaderProps = Pick &\n Pick & {\n theme: TThemes;\n };\n\nexport type TUseTabHeaderResult = {\n alignStyle?: string;\n headerContainer: React.RefObject;\n headerList: React.RefObject;\n linePosition: number;\n lineWidth: number;\n onClick: (\n event: MouseEvent,\n id: number | string,\n dataLayer?:\n | {\n [key: string]: string;\n }\n | undefined\n ) => void;\n onTouchEnd: (event: React.TouchEvent) => void;\n onTouchStart: (event: React.TouchEvent) => void;\n selectedTab: React.RefObject;\n themeStyle: TThemeStyles;\n translateX: number;\n withIcon?: boolean;\n};\n\nexport type TUseTabsHeader = (props: TUseTabsHeaderProps) => TUseTabHeaderResult;\n\nexport const useTabsHeader: TUseTabsHeader = ({\n align,\n browser = DEFAULT_BROWSER,\n onChange,\n selectedID,\n theme = DEFAULT_THEME,\n titles,\n}) => {\n const [{ id: titleFirstId }] = titles;\n\n const withIcon =\n titles.reduce((acc: number, item: ITitle) => {\n if (item.iconSrc) {\n return acc + 1;\n }\n\n return acc;\n }, 0) > 0;\n\n const headerContainer = useRef(null);\n\n const headerList = useRef(null);\n\n const selectedTab = useRef(null);\n\n const start = useRef(false);\n\n const move = useRef(false);\n\n const isScrollable = useRef(false);\n\n const coords = useRef({\n x: 0,\n y: 0,\n });\n\n const headerContainerWidth = useRef(0);\n\n const minxtranslateX = useRef(0);\n\n const [state, setState] = useState({\n translateX: 0,\n lineWidth: 0,\n linePosition: 0,\n selectedID: selectedID || selectedID === 0 ? selectedID : titleFirstId,\n });\n\n const { changePositionToSelectedID, init, onTouchEnd, onTouchStart } = useHandlers({\n browser,\n coords,\n headerList,\n headerContainer,\n headerContainerWidth,\n isScrollable,\n minxtranslateX,\n move,\n selectedID: selectedID ?? titleFirstId,\n selectedTab,\n setState,\n start,\n state,\n titles,\n });\n\n /** Если приходит новый список заголовков, делаем подскролл */\n useUpdateEffect(() => {\n if (selectedID) {\n changePositionToSelectedID(selectedID);\n }\n }, [titles.length, headerContainerWidth]);\n\n useEffect(() => {\n setTimeout(init, INIT_TIME);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (selectedID && selectedID !== state.selectedID) {\n changePositionToSelectedID(selectedID, state.selectedID);\n }\n }, [changePositionToSelectedID, selectedID, state.selectedID]);\n\n const resize = throttle(init);\n\n useEvent('resize', resize);\n\n const onClick = (\n event: MouseEvent,\n id: number | string,\n dataLayer?: { [key: string]: string }\n ) => {\n if (dataLayer) {\n sendEvent(dataLayer);\n }\n\n onChange({ event, id });\n };\n\n const { linePosition, lineWidth, translateX } = state;\n\n const themeStyle = `${theme}Theme` as TThemeStyles;\n const alignStyle = `${align}Align`;\n\n return {\n alignStyle,\n headerContainer,\n headerList,\n linePosition,\n lineWidth,\n onClick,\n onTouchEnd,\n onTouchStart,\n selectedTab,\n translateX,\n themeStyle,\n withIcon,\n };\n};\n","import { ComponentType } from 'react';\n\nimport { ICreateWidget } from './models';\nimport { hoist, createWrapper } from './helpers';\n\n/**\n * Функция hoc, для создания виджета, принимает объект зависимостей\n * и возвращает компонент с внедренными зависимостями\n */\nexport const createWidget: ICreateWidget =\n (dependencies?: T) =>\n (Widget: ComponentType) =>\n hoist(createWrapper(Widget, dependencies), Widget);\n","// extracted by mini-css-extract-plugin\nexport default {\"borderRadius0\":\"aG2mw\",\"borderRadius4\":\"bG2mw\",\"borderRadius8\":\"cG2mw\",\"borderRadius12\":\"dG2mw\",\"marginTop0\":\"eG2mw\",\"marginTop2\":\"fG2mw\",\"marginTop4\":\"gG2mw\",\"marginTop8\":\"hG2mw\",\"marginTop12\":\"iG2mw\",\"marginTop16\":\"jG2mw\",\"marginTop20\":\"kG2mw\",\"marginTop24\":\"lG2mw\",\"marginTop28\":\"mG2mw\",\"marginTop32\":\"nG2mw\",\"marginTop36\":\"oG2mw\",\"marginTop40\":\"pG2mw\",\"marginTop44\":\"qG2mw\",\"marginTop48\":\"rG2mw\",\"marginTop52\":\"sG2mw\",\"marginTop56\":\"tG2mw\",\"marginTop60\":\"uG2mw\",\"marginTop64\":\"vG2mw\",\"marginTop68\":\"wG2mw\",\"marginTop72\":\"xG2mw\",\"marginRight0\":\"yG2mw\",\"marginRight2\":\"zG2mw\",\"marginRight4\":\"AG2mw\",\"marginRight8\":\"BG2mw\",\"marginRight12\":\"CG2mw\",\"marginRight16\":\"DG2mw\",\"marginRight20\":\"EG2mw\",\"marginRight24\":\"FG2mw\",\"marginRight28\":\"GG2mw\",\"marginRight32\":\"HG2mw\",\"marginRight36\":\"IG2mw\",\"marginRight40\":\"JG2mw\",\"marginRight44\":\"KG2mw\",\"marginRight48\":\"LG2mw\",\"marginRight52\":\"MG2mw\",\"marginRight56\":\"NG2mw\",\"marginRight60\":\"OG2mw\",\"marginRight64\":\"PG2mw\",\"marginRight68\":\"QG2mw\",\"marginRight72\":\"RG2mw\",\"marginBottom0\":\"SG2mw\",\"marginBottom2\":\"TG2mw\",\"marginBottom4\":\"UG2mw\",\"marginBottom8\":\"VG2mw\",\"marginBottom12\":\"WG2mw\",\"marginBottom16\":\"XG2mw\",\"marginBottom20\":\"YG2mw\",\"marginBottom24\":\"ZG2mw\",\"marginBottom28\":\"__G2mw\",\"marginBottom32\":\"_0G2mw\",\"marginBottom36\":\"_1G2mw\",\"marginBottom40\":\"_2G2mw\",\"marginBottom44\":\"_3G2mw\",\"marginBottom48\":\"_4G2mw\",\"marginBottom52\":\"_5G2mw\",\"marginBottom56\":\"_6G2mw\",\"marginBottom60\":\"_7G2mw\",\"marginBottom64\":\"_8G2mw\",\"marginBottom68\":\"_9G2mw\",\"marginBottom72\":\"_-G2mw\",\"marginLeft0\":\"aaG2mw\",\"marginLeft2\":\"abG2mw\",\"marginLeft4\":\"acG2mw\",\"marginLeft8\":\"adG2mw\",\"marginLeft12\":\"aeG2mw\",\"marginLeft16\":\"afG2mw\",\"marginLeft20\":\"agG2mw\",\"marginLeft24\":\"ahG2mw\",\"marginLeft28\":\"aiG2mw\",\"marginLeft32\":\"ajG2mw\",\"marginLeft36\":\"akG2mw\",\"marginLeft40\":\"alG2mw\",\"marginLeft44\":\"amG2mw\",\"marginLeft48\":\"anG2mw\",\"marginLeft52\":\"aoG2mw\",\"marginLeft56\":\"apG2mw\",\"marginLeft60\":\"aqG2mw\",\"marginLeft64\":\"arG2mw\",\"marginLeft68\":\"asG2mw\",\"marginLeft72\":\"atG2mw\",\"paddingTop0\":\"auG2mw\",\"paddingTop2\":\"avG2mw\",\"paddingTop4\":\"awG2mw\",\"paddingTop8\":\"axG2mw\",\"paddingTop12\":\"ayG2mw\",\"paddingTop16\":\"azG2mw\",\"paddingTop20\":\"aAG2mw\",\"paddingTop24\":\"aBG2mw\",\"paddingTop28\":\"aCG2mw\",\"paddingTop32\":\"aDG2mw\",\"paddingTop36\":\"aEG2mw\",\"paddingTop40\":\"aFG2mw\",\"paddingTop44\":\"aGG2mw\",\"paddingTop48\":\"aHG2mw\",\"paddingTop52\":\"aIG2mw\",\"paddingTop56\":\"aJG2mw\",\"paddingTop60\":\"aKG2mw\",\"paddingTop64\":\"aLG2mw\",\"paddingTop68\":\"aMG2mw\",\"paddingTop72\":\"aNG2mw\",\"paddingRight0\":\"aOG2mw\",\"paddingRight2\":\"aPG2mw\",\"paddingRight4\":\"aQG2mw\",\"paddingRight8\":\"aRG2mw\",\"paddingRight12\":\"aSG2mw\",\"paddingRight16\":\"aTG2mw\",\"paddingRight20\":\"aUG2mw\",\"paddingRight24\":\"aVG2mw\",\"paddingRight28\":\"aWG2mw\",\"paddingRight32\":\"aXG2mw\",\"paddingRight36\":\"aYG2mw\",\"paddingRight40\":\"aZG2mw\",\"paddingRight44\":\"a_G2mw\",\"paddingRight48\":\"a0G2mw\",\"paddingRight52\":\"a1G2mw\",\"paddingRight56\":\"a2G2mw\",\"paddingRight60\":\"a3G2mw\",\"paddingRight64\":\"a4G2mw\",\"paddingRight68\":\"a5G2mw\",\"paddingRight72\":\"a6G2mw\",\"paddingBottom0\":\"a7G2mw\",\"paddingBottom2\":\"a8G2mw\",\"paddingBottom4\":\"a9G2mw\",\"paddingBottom8\":\"a-G2mw\",\"paddingBottom12\":\"baG2mw\",\"paddingBottom16\":\"bbG2mw\",\"paddingBottom20\":\"bcG2mw\",\"paddingBottom24\":\"bdG2mw\",\"paddingBottom28\":\"beG2mw\",\"paddingBottom32\":\"bfG2mw\",\"paddingBottom36\":\"bgG2mw\",\"paddingBottom40\":\"bhG2mw\",\"paddingBottom44\":\"biG2mw\",\"paddingBottom48\":\"bjG2mw\",\"paddingBottom52\":\"bkG2mw\",\"paddingBottom56\":\"blG2mw\",\"paddingBottom60\":\"bmG2mw\",\"paddingBottom64\":\"bnG2mw\",\"paddingBottom68\":\"boG2mw\",\"paddingBottom72\":\"bpG2mw\",\"paddingLeft0\":\"bqG2mw\",\"paddingLeft2\":\"brG2mw\",\"paddingLeft4\":\"bsG2mw\",\"paddingLeft8\":\"btG2mw\",\"paddingLeft12\":\"buG2mw\",\"paddingLeft16\":\"bvG2mw\",\"paddingLeft20\":\"bwG2mw\",\"paddingLeft24\":\"bxG2mw\",\"paddingLeft28\":\"byG2mw\",\"paddingLeft32\":\"bzG2mw\",\"paddingLeft36\":\"bAG2mw\",\"paddingLeft40\":\"bBG2mw\",\"paddingLeft44\":\"bCG2mw\",\"paddingLeft48\":\"bDG2mw\",\"paddingLeft52\":\"bEG2mw\",\"paddingLeft56\":\"bFG2mw\",\"paddingLeft60\":\"bGG2mw\",\"paddingLeft64\":\"bHG2mw\",\"paddingLeft68\":\"bIG2mw\",\"paddingLeft72\":\"bJG2mw\"};","import isEmpty from 'lodash/isEmpty';\n\nimport styles from './styles/common.css';\nimport { IStyler } from './models';\n\ntype TStyle = keyof typeof styles;\n\nconst RULES: Array<[keyof IStyler, keyof IStyler]> = [\n ['borderRadius', 'borderRadius'],\n ['marginTop', 'margin'],\n ['marginRight', 'margin'],\n ['marginBottom', 'margin'],\n ['marginLeft', 'margin'],\n ['paddingTop', 'padding'],\n ['paddingRight', 'padding'],\n ['paddingBottom', 'padding'],\n ['paddingLeft', 'padding'],\n];\n\nexport const generateStyle = (\n styler: IStyler = {},\n injectedClassName?: string\n): { className: string } | undefined => {\n const classNames: string[] = [];\n\n if (isEmpty(styler)) {\n return injectedClassName ? { className: injectedClassName } : undefined;\n }\n\n for (const [rule, fallback] of RULES) {\n if (styler[rule] !== undefined) {\n classNames.push(styles[`${rule}${styler[rule]}` as TStyle]);\n } else if (styler[fallback] !== undefined) {\n classNames.push(styles[`${rule}${styler[fallback]}` as TStyle]);\n }\n }\n\n if (injectedClassName) {\n classNames.push(injectedClassName);\n }\n\n if (classNames.length) return { className: classNames.join(' ') };\n\n return undefined;\n};\n","import React, { ComponentType } from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\n\nimport { generateStyle } from './generate-style';\nimport { TWrapper } from './models';\n\n/**\n * Вернуть объект с названием виджета\n */\nexport const getDisplayName = (TargetWidget: ComponentType) => ({\n displayName: TargetWidget.displayName || TargetWidget.name || 'UnnamedWidget',\n});\n\n/**\n * Создать обертку, добавляющую стайлер и зависимости\n */\nexport const createWrapper =\n (Widget: ComponentType, dependencies?: T): ComponentType> =>\n ({ className, styler, ...props }) =>\n ;\n\n/**\n * Добавить изначальные свойства виджета, displayName и любые дополнительные\n */\nexport const hoist = (\n Wrapper: ComponentType,\n Widget: ComponentType,\n ...rest: any[]\n): ComponentType =>\n Object.assign(hoistStatics(Wrapper, Widget), getDisplayName(Widget), ...rest);\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\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 * 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 timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\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 clearTimeout(timerId);\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\nmodule.exports = debounce;\n","var root = require('./_root');\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\nmodule.exports = now;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` 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 throttled 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 `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\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/**\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 = baseTrim(value);\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 = toNumber;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNavigator = exports.isBrowser = exports.off = exports.on = exports.noop = void 0;\nvar noop = function () { };\nexports.noop = noop;\nfunction on(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.addEventListener) {\n obj.addEventListener.apply(obj, args);\n }\n}\nexports.on = on;\nfunction off(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.removeEventListener) {\n obj.removeEventListener.apply(obj, args);\n }\n}\nexports.off = off;\nexports.isBrowser = typeof window !== 'undefined';\nexports.isNavigator = typeof navigator !== 'undefined';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar util_1 = require(\"./misc/util\");\nvar defaultTarget = util_1.isBrowser ? window : null;\nvar isListenerType1 = function (target) {\n return !!target.addEventListener;\n};\nvar isListenerType2 = function (target) {\n return !!target.on;\n};\nvar useEvent = function (name, handler, target, options) {\n if (target === void 0) { target = defaultTarget; }\n react_1.useEffect(function () {\n if (!handler) {\n return;\n }\n if (!target) {\n return;\n }\n if (isListenerType1(target)) {\n util_1.on(target, name, handler, options);\n }\n else if (isListenerType2(target)) {\n target.on(name, handler, options);\n }\n return function () {\n if (isListenerType1(target)) {\n util_1.off(target, name, handler, options);\n }\n else if (isListenerType2(target)) {\n target.off(name, handler, options);\n }\n };\n }, [name, handler, target, JSON.stringify(options)]);\n};\nexports.default = useEvent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFirstMountState = void 0;\nvar react_1 = require(\"react\");\nfunction useFirstMountState() {\n var isFirst = react_1.useRef(true);\n if (isFirst.current) {\n isFirst.current = false;\n return true;\n }\n return isFirst.current;\n}\nexports.useFirstMountState = useFirstMountState;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar useFirstMountState_1 = require(\"./useFirstMountState\");\nvar useUpdateEffect = function (effect, deps) {\n var isFirstMount = useFirstMountState_1.useFirstMountState();\n react_1.useEffect(function () {\n if (!isFirstMount) {\n return effect();\n }\n }, deps);\n};\nexports.default = useUpdateEffect;\n"],"names":["isNotEmpty","obj","isEmpty","sendEvent","evt","globalContext","window","ymEvent","gaEvent","dataLayer","completeEvt","path","location","pathname","push","ym","hasYandexMetric","flat","forEach","event","method","params","process","CUSTOM_YTM_ID","stackingOrder","FOCUSED","DEFAULT","POSITIONER","OVERLAY","StackingContext","createContext","Stack","children","value","transitProps","Consumer","previousValue","currentValue","Math","max","nextValue","Provider","cloneElement","RenderedHeader","alignStyle","browser","DEFAULT_BROWSER","className","dataTestId","headerContainer","headerList","iconBackgroundColor","linePosition","lineWidth","onClick","onTouchEnd","onTouchStart","onTabMouseDown","onTabMouseUp","selectedID","selectedTab","styles","tabInlineStyle","themeStyle","titles","translateX","ref","cn","role","style","transform","zIndex","indicator","width","map","item","key","id","header","selected","mobile","onKeyDown","onMouseDown","e","onMouseUp","tabIndex","iconSrc","backgroundColor","imageUrl","size","title","DEFAULT_THEME","MARGIN","INIT_TIME","useHandlers","coords","headerContainerWidth","isScrollable","minxtranslateX","move","setState","start","state","changePositionToSelectedID","useCallback","selectedIDCurrent","prevSelectedID","tab","current","findIndex","prevID","direction","offsetWidth","parent","parentElement","parentX","getBoundingClientRect","left","position","onTouchMove","changedTouches","clientX","clientY","touches","length","abs","x","y","preventDefault","onMove","init","headerContainerCurrent","headerListCurrent","headerListWidth","headerContainerWidthCurrent","removeEventListener","addEventListener","getComputedStyle","currentTranslateX","CSSMatrixConstructor","WebKitCSSMatrix","onStart","onEnd","useTabsHeader","align","onChange","theme","titleFirstId","withIcon","reduce","acc","useRef","useState","useUpdateEffect","useEffect","setTimeout","resize","throttle","useEvent","createWidget","dependencies","Widget","hoist","createWrapper","RULES","getDisplayName","TargetWidget","displayName","name","styler","props","injectedClassName","classNames","undefined","rule","fallback","join","generateStyle","Wrapper","rest","Object","assign","hoistStatics","hasOwn","hasOwnProperty","classes","i","arguments","arg","argType","Array","isArray","inner","apply","toString","prototype","call","module","exports","default","trimmedEndIndex","reTrimStart","string","slice","replace","reWhitespace","index","test","charAt","isObject","now","toNumber","nativeMax","nativeMin","min","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","this","clearTimeout","cancel","flush","root","Date","debounce","baseTrim","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","other","valueOf","isBinary","defineProperty","isNavigator","isBrowser","off","on","noop","_i","navigator","react_1","util_1","defaultTarget","isListenerType1","target","isListenerType2","handler","JSON","stringify","useFirstMountState","isFirst","useFirstMountState_1","effect","deps","isFirstMount"],"sourceRoot":""}