{"version":3,"file":"static/chunks/7671-c941e0d7bedf6e0f.js","mappings":"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","sources":["webpack://_N_E/./src/features/domru-tv/packages/helpers/contentSubscriptionFormatter.ts","webpack://_N_E/./src/features/domru-tv/packages/store/selectors/index.tsx","webpack://_N_E/./src/store/actionCreators/vas.ts","webpack://_N_E/./src/store/actions/vas.ts","webpack://_N_E/../../packages/api-domru/src/api-profile/v1/vas/index.ts","webpack://_N_E/../../packages/api-domru/src/gamers-base/v1/profile/link.ts","webpack://_N_E/../../packages/ui-react/src/components/NukaCarousel/DefaultArrow/styled.tsx","webpack://_N_E/../../packages/ui-react/src/components/NukaCarousel/DefaultDots/styled.tsx","webpack://_N_E/../../packages/ui-react/src/components/NukaCarousel/DefaultArrow/index.tsx","webpack://_N_E/../../packages/ui-react/src/components/NukaCarousel/DefaultDots/index.tsx","webpack://_N_E/../../packages/ui-react/src/components/NukaCarousel/styled.tsx","webpack://_N_E/../../packages/ui-react/src/components/NukaCarousel/index.tsx","webpack://_N_E/../../packages/ui-react/src/components/NukaCarousel/DefaultArrow/arrow.svg"],"sourcesContent":["import { IPricesV2, IVasInfo } from '@r1-frontend/api-domru/api-profile/v1/vas/dto/ResponseDto';\n\nimport { IShopItem, IShopPriceV2 } from '~/src/api/content/shop/getShopItems';\nimport { IMultibundleAdditional, multiBundleId } from '~/src/store/selectors/vas';\n\nimport { IPriceOptions } from '../types';\n\nconst shopItemsPrices: IPriceOptions[] = [\n {\n count: 2,\n discount: 61,\n price: 290,\n },\n {\n count: 3,\n discount: 63,\n price: 390,\n },\n];\n\nconst getPromoPrice = (prices: IShopPriceV2[]): IPricesV2[] => {\n const prepared: IPricesV2[] = [];\n const promoPrice = prices.find(price => !!price.value && !!price.duration);\n if (promoPrice) {\n prepared.push({\n discount: 0,\n duration: promoPrice.duration,\n lifeTimePromoTypeId: 1,\n type: promoPrice.type,\n value: promoPrice.value,\n raGroups: [],\n });\n }\n\n return prepared;\n};\n\nexport const content2VasSubscription = (data: IShopItem[]): Partial>[] => {\n return data.map(subscriptionItem => {\n return {\n advertising: subscriptionItem.advertising,\n vasId: subscriptionItem.global_id,\n serviceId: subscriptionItem.global_id,\n body: subscriptionItem.body,\n nameVas: subscriptionItem.global_id === multiBundleId\n ? 'Подписки выгоднее, если брать сразу несколько'\n : subscriptionItem.title,\n activeVas: 0,\n buttonText: subscriptionItem.button_text,\n buttonLink: subscriptionItem.button_link,\n includedAgr: 0,\n image: subscriptionItem.image_widgets,\n imageWebp: subscriptionItem.image_widgets_webp,\n body_full: subscriptionItem.body_full,\n title: subscriptionItem.title,\n priceVas: subscriptionItem.pricesV2 ? subscriptionItem.pricesV2[0]?.value : 0,\n contentData: {\n alias: subscriptionItem.alias,\n body: subscriptionItem.body,\n },\n additionalProps: {\n priceOptions: shopItemsPrices,\n subscriptionsSocIds: {\n active: [],\n inactive: [],\n },\n },\n pricesV2: getPromoPrice(subscriptionItem.pricesV2),\n };\n });\n};\n","import { createSelector } from 'reselect';\n\nimport { content2VasSubscription } from '~/src/features/domru-tv/packages/helpers/contentSubscriptionFormatter';\nimport { TState } from '~/src/store';\n\nexport const selectFormattedSubscriptions = createSelector(\n (state: TState) => state.tvSubscriptions.items,\n subscriptions => content2VasSubscription(subscriptions),\n);\n\nexport const selectSubscriptions = createSelector(\n [\n (state: TState) => state.auth.isAuth,\n (state: TState) => state.vas.subscriptions,\n selectFormattedSubscriptions,\n ],\n (isAuth, subscriptions, shopItems) => isAuth ? subscriptions : shopItems,\n);\n","import { IVasInfo } from '@r1-frontend/api-domru/api-profile/v1/vas/dto/ResponseDto';\n\nimport { IAction } from '~/src/store';\nimport {\n VAS_ANTIVIRUS_LOAD_ERROR,\n VAS_ANTIVIRUS_LOADED,\n VAS_ANTIVIRUS_LOADING,\n VAS_DISABLING_STATUS_CHANGE,\n VAS_GAMERSBASE_URL,\n VAS_LOAD_ERROR,\n VAS_LOADED,\n VAS_LOADING,\n VAS_SET_VAS_ERROR,\n VAS_SUBSCRIPTIONS_LOAD_ERROR,\n VAS_SUBSCRIPTIONS_LOADED,\n VAS_SUBSCRIPTIONS_LOADING,\n} from '~/src/store/actionTypes/vas';\nimport { EVasDisablingStatus } from '~/src/store/reducers/vas';\n\nexport function loadingVas(): IAction {\n return {\n type: VAS_LOADING,\n payload: null,\n };\n}\n\nexport function vasLoaded(vasInfo: IVasInfo[]): IAction {\n return {\n type: VAS_LOADED,\n payload: vasInfo,\n };\n}\n\nexport function vasLoadError(): IAction {\n return {\n type: VAS_LOAD_ERROR,\n payload: null,\n };\n}\n\nexport function vasAntivirusLoading(): IAction {\n return {\n type: VAS_ANTIVIRUS_LOADING,\n payload: null,\n };\n}\n\nexport function vasAntivirusLoaded(vasInfo: IVasInfo[]): IAction {\n return {\n type: VAS_ANTIVIRUS_LOADED,\n payload: vasInfo,\n };\n}\n\nexport function vasAntivirusError(): IAction {\n return {\n type: VAS_ANTIVIRUS_LOAD_ERROR,\n payload: null,\n };\n}\n\nexport function vasSubscriptionsLoading(): IAction {\n return {\n type: VAS_SUBSCRIPTIONS_LOADING,\n payload: null,\n };\n}\n\nexport function vasSubscriptionsLoaded(vasInfo: IVasInfo[]): IAction {\n return {\n type: VAS_SUBSCRIPTIONS_LOADED,\n payload: vasInfo,\n };\n}\n\nexport function vasSubscriptionsError(): IAction {\n return {\n type: VAS_SUBSCRIPTIONS_LOAD_ERROR,\n payload: null,\n };\n}\n\nexport function vasDisablingStatusChange(status: EVasDisablingStatus): IAction {\n return {\n type: VAS_DISABLING_STATUS_CHANGE,\n payload: status,\n };\n}\n\nexport function setVasError(error: string): IAction {\n return {\n type: VAS_SET_VAS_ERROR,\n payload: error,\n };\n}\n\nexport function setGamersBaseUrl(url: string): IAction {\n return {\n type: VAS_GAMERSBASE_URL,\n payload: url,\n };\n}\n","import { batch } from 'react-redux';\nimport { captureException } from '@sentry/node';\nimport dayjs from 'dayjs';\n\nimport { doRequest } from '@r1-frontend/do-request';\nimport { vas } from '@r1-frontend/api-domru/api-profile/v1/vas';\nimport { IVasInfo } from '@r1-frontend/api-domru/api-profile/v1/vas/dto/ResponseDto';\nimport { IGetLinkResponseDto, profileLink } from '@r1-frontend/api-domru/gamers-base/v1/profile/link';\n\nimport { selectSubscriptions } from '~/src/features/domru-tv/packages/store/selectors';\nimport { EVasCategory, EVasContentType } from '~/src/features/lk/vases/types/EVasCategory';\nimport { TAppThunkDispatch, TDispatch, TGetState } from '~/src/store';\nimport {\n loadingVas,\n setGamersBaseUrl,\n vasAntivirusLoaded,\n vasAntivirusLoading,\n vasDisablingStatusChange,\n vasLoaded,\n vasLoadError,\n vasSubscriptionsError,\n vasSubscriptionsLoaded,\n vasSubscriptionsLoading,\n} from '~/src/store/actionCreators/vas';\nimport { EVasDisablingStatus } from '~/src/store/reducers/vas';\nimport { selectDomain } from '~/src/store/selectors/domain';\nimport selectProviderId from '~/src/store/selectors/selectProviderId';\nimport { selectTerminalResource } from '~/src/store/selectors/service';\n\nconst LOAD_TRESHOLD = 3000;\nconst GAMERS_BASE_SERVICE_IDS = [102718, 104873, 104879]; // ID сервисов Gamers Base\n\ntype TLoadVasOptions = {\n isSkipLoadCheck?: boolean,\n withAntiviruses?: boolean,\n}\n\nexport const prepareCategories = (categories: EVasCategory[]) => `${categories.join(';')};`;\n\nexport function loadVas(\n {\n isSkipLoadCheck = false,\n withAntiviruses = true,\n }: TLoadVasOptions = {},\n) {\n return async(dispatch: TAppThunkDispatch, getState: TGetState): Promise => {\n const state = getState();\n const loadTime = state.vas.loaded;\n\n if (\n !isSkipLoadCheck &&\n loadTime &&\n dayjs().unix() - loadTime < LOAD_TRESHOLD\n ) {\n return;\n }\n\n batch(() => {\n dispatch(vasAntivirusLoading());\n dispatch(loadingVas());\n });\n\n const domain = selectDomain(state);\n const trId = selectTerminalResource(state);\n const providerId = selectProviderId(state);\n\n const [vasResponse, gamesBaseLinkResponse] = await Promise.all([\n doRequest.apiProfile(\n vas({\n categories: prepareCategories([\n EVasCategory.antiviruses,\n EVasCategory.onlineCinemas,\n EVasCategory.watchControl,\n EVasCategory.watchEverywhere,\n EVasCategory.games,\n EVasCategory.multimedia,\n EVasCategory.speedBonuses,\n EVasCategory.tv,\n ]),\n withContentData: 1,\n withTVPacketsData: 1,\n trId,\n }),\n ),\n doRequest.gamersBase(\n profileLink(providerId, domain),\n ),\n ]);\n\n if (vasResponse.isSuccess) {\n const connected: IVasInfo[] = [];\n const antiviruses: IVasInfo[] = [];\n\n let isGamersBaseActive = false;\n\n for (const item of vasResponse.payload) {\n if (item.activeVas) {\n connected.push(item);\n }\n\n if (!item.activeVas && item.contentTypeId === EVasContentType.antiviruses && withAntiviruses) {\n antiviruses.push(item);\n }\n\n if (item.activeVas && GAMERS_BASE_SERVICE_IDS.includes(item.serviceId)) {\n isGamersBaseActive = true;\n }\n }\n\n batch(() => {\n dispatch(vasLoaded(connected));\n dispatch(vasAntivirusLoaded(antiviruses));\n\n if (gamesBaseLinkResponse.isSuccess && isGamersBaseActive) {\n dispatch(setGamersBaseUrl(gamesBaseLinkResponse.payload.url));\n }\n });\n } else {\n dispatch(vasLoadError());\n }\n };\n}\n\nexport function loadSubscriptions() {\n return async(dispatch: TDispatch, getState: TGetState): Promise => {\n const state = getState();\n const subscriptions = selectSubscriptions(state);\n\n if (subscriptions.length) {\n return;\n }\n\n dispatch(vasSubscriptionsLoading());\n\n const response = await doRequest.apiProfile(\n vas({\n categories: `${EVasCategory.onlineCinemas};`,\n mobileVas: 0,\n withContentData: 1,\n withTVPacketsData: 0,\n }),\n );\n\n if (response.isSuccess) {\n const subscriptions = response.payload\n .filter(vas => !!vas.image)\n .sort((a, b) => a.activeVas - b.activeVas);\n\n dispatch(vasSubscriptionsLoaded(subscriptions));\n } else {\n captureException(\n response.error,\n {\n extra: {\n message: response.error.message,\n url: 'api-profile/v1/vas',\n status: response.error.status,\n code: response.error.code,\n },\n tags: {\n place: 'api-profile',\n type: 'load-subscriptions',\n },\n },\n );\n dispatch(vasSubscriptionsError());\n }\n };\n}\n\nexport function loadVasIfChange() {\n return async(dispatch: TAppThunkDispatch, getState: TGetState): Promise => {\n const state = getState();\n\n if (state.vas.vasDisablingStatus !== EVasDisablingStatus.default) {\n dispatch(vasDisablingStatusChange(EVasDisablingStatus.default));\n dispatch(loadVas({ isSkipLoadCheck: true }));\n }\n };\n}\n","import { TRequestDto } from '@r1-frontend/api-domru/api-profile/v1/vas/dto/RequestDto';\n\nimport { IRequest } from '@r1-frontend/shared/types/IRequest';\n\n/**\n * Платный контент\n * {@link https://master.api-profile.sandbox.d2c.r-one.io/docs/v1#/Vas/b5916d3e49d1fa14d5518291ab8bc224 Documentation}\n */\nexport const vas = (queryParams: TRequestDto): IRequest => ({\n uri: 'v1/vas',\n method: 'GET',\n withProvider: true,\n queryParams,\n withAuth: true,\n});\n","import { IRequest } from '@r1-frontend/shared/types/IRequest';\n\nexport interface IGetLinkResponseDto {\n url: string,\n}\n\nexport const profileLink = (providerId: number, domain: string): IRequest => ({\n uri: `/api/v1/${providerId}/profile/link`,\n method: 'GET',\n withAuth: true,\n withProvider: true,\n queryParams: { domain },\n});\n","import styled, { css } from 'styled-components';\n\n// @ts-ignore\nimport svg from './arrow.svg';\n\nexport const Wrapper = styled.div`\n width: fit-content;\n height: 30px;\n opacity: 0.2;\n transition: opacity 0.2s ease-in;\n cursor: pointer;\n \n :hover {\n opacity: 1;\n }\n`;\n\nexport const ArrowSvg = styled.img.attrs({\n src: svg,\n})<{ type?: 'left' | 'right' }>`\n height: 100%;\n ${({ type }) => type === 'right' && css`transform: rotate(180deg);`}\n`;\n","import styled, { CSSObject, keyframes } from 'styled-components';\n\nimport { COLORS } from '../../../assets/js/constants';\n\nexport interface ICustomDotsStyles {\n dotsContainer?: CSSObject,\n dot?: CSSObject,\n dotContainer?: CSSObject,\n activeDot?: CSSObject,\n}\n\nexport const Dot = styled.div<{ active?: boolean, customStyles?: ICustomDotsStyles }>`\n height: 100%;\n width: 100%;\n border-radius: 2px;\n background: ${COLORS.black};\n opacity: 0.1;\n transition: opacity .3s ease;\n ${p => p.customStyles?.dot ?? ''};\n\n &:hover {\n opacity: ${({ active }) => active ? 1 : 0.45};\n }\n`;\n\nexport const DotContainer = styled.div<{ active?: boolean, customStyles?: ICustomDotsStyles }>`\n position: relative;\n width: ${({ active }) => active ? '48px' : '24px'};\n height: 4px;\n margin: 0 4px;\n cursor: pointer;\n transition: width .3s ease;\n ${p => p.customStyles?.dotContainer ?? ''};\n`;\n\nconst activeLineAnimation = keyframes`\n 0% { width: 0; }\n 100% { width: 100%; }\n`;\n\nexport const ActiveLine = styled.div<{ active?: boolean, time?: number, customStyles?: ICustomDotsStyles }>`\n display: ${({ active }) => active ? 'initial' : 'none'};\n position: absolute;\n top: 0;\n left: 0;\n background: ${COLORS.black};\n width: ${({ active }) => active ? '100%' : '0%'};\n height: 100%;\n border-radius: 2px;\n animation-name: ${activeLineAnimation};\n animation-duration: ${({ time }) => time || 0}s;\n animation-iteration-count: 1;\n ${p => p.customStyles?.activeDot ?? ''};\n`;\n\nexport const DotsContainer = styled.div< {customStyles?: ICustomDotsStyles }>`\n justify-content: center;\n width: 100%;\n margin-top: 10px;\n bottom: 26px;\n z-index: 10;\n flex-wrap: nowrap;\n ${p => p.customStyles?.dotsContainer ?? ''};\n`;\n","import React from 'react';\n\nimport * as ST from './styled';\n\nexport interface IArrowProps {\n previousSlide?: () => void,\n nextSlide?: () => void,\n}\n\nconst DefaultArrow = ({ previousSlide, nextSlide }: IArrowProps) => {\n return (\n \n \n \n );\n};\n\nexport default DefaultArrow;\n","import React, { FC } from 'react';\n\nimport * as ST from './styled';\n\nexport interface IDotsProps {\n goToSlide: (i: number) => void,\n slideCount: number,\n currentSlide: number,\n autoplayInterval: number,\n autoplay: boolean,\n customDotsStyles?: ST.ICustomDotsStyles,\n}\n\nconst DefaultDots: FC = ({\n goToSlide,\n slideCount,\n currentSlide,\n autoplayInterval,\n autoplay,\n customDotsStyles,\n}) => {\n return (\n \n {Array(slideCount).fill(null).map((_, index) => (\n goToSlide(index)}\n customStyles={customDotsStyles}\n >\n \n \n \n ))}\n \n );\n};\n\nexport default DefaultDots;\n","import styled from 'styled-components';\n\nexport const Container = styled.div<{ withoutDots?: boolean, withoutArrows?: boolean }>`\n display: flex;\n justify-content: center;\n width: 100%;\n height: fit-content;\n margin: 0 auto;\n padding-bottom: ${({ withoutDots }) => withoutDots ? 0 : 32}px;\n padding-right: ${({ withoutArrows }) => withoutArrows ? 0 : 32}px;\n padding-left: ${({ withoutArrows }) => withoutArrows ? 0 : 32}px;\n \n div:focus-visible {\n outline: none !important;\n }\n`;\n","import React, { FC, RefObject, useEffect, useRef, useState } from 'react';\nimport NukaSwiper, {\n CarouselControlContainerProp,\n CarouselProps,\n} from 'nuka-carousel';\n\nimport { ICustomDotsStyles } from './DefaultDots/styled';\nimport DefaultArrow, { IArrowProps } from './DefaultArrow';\nimport DefaultDots, { IDotsProps } from './DefaultDots';\n\nimport * as ST from './styled';\n\nexport interface ICarouselProps extends CarouselProps {\n withoutArrows?: boolean,\n withoutDots?: boolean,\n customArrow?: FC,\n customDots?: FC,\n customDotsStyles?: ICustomDotsStyles,\n}\n\ninterface INukaSwiperMethods {\n setDimensions: () => void,\n}\n\nconst DEFAULT_AUTOPLAY_INTERVAL = 3000;\nconst DOTS_PADDING = -20;\nconst ARROWS_PADDING = -32;\n\nconst getDefaultControlsContainerStyles = (key: CarouselControlContainerProp) => {\n switch (key) {\n case 'BottomCenter':\n return {\n bottom: DOTS_PADDING,\n };\n case 'CenterRight':\n return {\n right: `${ARROWS_PADDING}px`,\n };\n case 'CenterLeft':\n return {\n left: `${ARROWS_PADDING}px`,\n };\n default: return;\n }\n};\n\nconst NukaCarousel: FC = ({\n customArrow: CustomArrow,\n customDots: CustomDots,\n children,\n withoutArrows,\n withoutControls,\n withoutDots,\n autoplayInterval = DEFAULT_AUTOPLAY_INTERVAL,\n autoplay,\n className,\n customDotsStyles,\n ...props\n}) => {\n const [pausedAutoplay, setPausedAutoplay] = useState(false);\n const Arrow = CustomArrow || DefaultArrow;\n const Dots = CustomDots || DefaultDots;\n const swiperRef = useRef();\n\n useEffect(() => {\n swiperRef?.current?.setDimensions();\n }, [withoutArrows, withoutControls]);\n\n const handleMouseOver = () => {\n if (autoplay) {\n setPausedAutoplay(true);\n }\n };\n\n const handleMouseOut = () => {\n if (autoplay) {\n setPausedAutoplay(false);\n }\n };\n\n return (\n \n }\n // @ts-ignore\n getControlsContainerStyles={getDefaultControlsContainerStyles}\n renderCenterLeftControls={({ previousSlide }) => withoutArrows || }\n renderCenterRightControls={({ nextSlide }) => withoutArrows || }\n renderBottomCenterControls={(props) => withoutDots || (\n \n )}\n autoplayInterval={autoplayInterval}\n autoplay={autoplay}\n withoutControls={withoutControls}\n {...props}\n >\n {children}\n \n \n );\n};\n\nexport default NukaCarousel;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMjciIHZpZXdCb3g9IjAgMCAxNSAyNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjE0MjYgMjUuMTk5N0wxLjE0MjU4IDEzLjE5OTdMMTMuMTQyNiAxLjE5OTcxIiBzdHJva2U9IiMxYTFhMWEiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPg==\""],"names":["shopItemsPrices","count","discount","price","getPromoPrice","prices","prepared","promoPrice","find","value","duration","push","lifeTimePromoTypeId","type","raGroups","selectFormattedSubscriptions","createSelector","state","tvSubscriptions","items","subscriptions","map","subscriptionItem","advertising","vasId","global_id","serviceId","body","nameVas","multiBundleId","title","activeVas","buttonText","button_text","buttonLink","button_link","includedAgr","image","image_widgets","imageWebp","image_widgets_webp","body_full","priceVas","pricesV2","contentData","alias","additionalProps","priceOptions","subscriptionsSocIds","active","inactive","selectSubscriptions","auth","isAuth","vas","shopItems","loadingVas","VAS_LOADING","payload","vasLoaded","vasInfo","VAS_LOADED","vasLoadError","VAS_LOAD_ERROR","vasAntivirusLoading","VAS_ANTIVIRUS_LOADING","vasAntivirusLoaded","VAS_ANTIVIRUS_LOADED","vasSubscriptionsLoading","VAS_SUBSCRIPTIONS_LOADING","vasSubscriptionsLoaded","VAS_SUBSCRIPTIONS_LOADED","vasSubscriptionsError","VAS_SUBSCRIPTIONS_LOAD_ERROR","vasDisablingStatusChange","status","VAS_DISABLING_STATUS_CHANGE","setVasError","error","VAS_SET_VAS_ERROR","setGamersBaseUrl","url","VAS_GAMERSBASE_URL","GAMERS_BASE_SERVICE_IDS","prepareCategories","categories","join","loadVas","isSkipLoadCheck","withAntiviruses","dispatch","getState","loadTime","domain","trId","providerId","vasResponse","gamesBaseLinkResponse","connected","antiviruses","isGamersBaseActive","item","loaded","dayjs","unix","batch","selectDomain","selectTerminalResource","selectProviderId","Promise","all","doRequest","EVasCategory","withContentData","withTVPacketsData","profileLink","isSuccess","contentTypeId","EVasContentType","includes","loadSubscriptions","response","length","mobileVas","filter","sort","a","b","captureException","extra","message","code","tags","place","loadVasIfChange","vasDisablingStatus","EVasDisablingStatus","queryParams","uri","method","withProvider","withAuth","p","Wrapper","styled","ArrowSvg","src","svg","css","previousSlide","nextSlide","ST","onClick","Dot","COLORS","customStyles","dot","DotContainer","dotContainer","activeLineAnimation","keyframes","ActiveLine","time","activeDot","DotsContainer","dotsContainer","goToSlide","slideCount","currentSlide","autoplayInterval","autoplay","customDotsStyles","Array","fill","_","index","Container","withoutDots","withoutArrows","getDefaultControlsContainerStyles","key","bottom","right","left","customArrow","customDots","children","withoutControls","className","props","useState","pausedAutoplay","setPausedAutoplay","Arrow","CustomArrow","DefaultArrow","Dots","CustomDots","DefaultDots","swiperRef","useRef","useEffect","current","setDimensions","handleMouseOver","handleMouseOut","onTouchStart","onTouchEnd","onMouseOver","onMouseOut","NukaSwiper","ref","getControlsContainerStyles","renderCenterLeftControls","renderCenterRightControls","renderBottomCenterControls","module","exports"],"sourceRoot":""}