{"version":3,"file":"static/chunks/2051-641a5c3ab0488941.js","mappings":"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","sources":["webpack://_N_E/./src/components/AdaptiveNukaCarousel/styled.ts","webpack://_N_E/./src/components/AdaptiveNukaCarousel/index.tsx","webpack://_N_E/./src/features/equipment/pageBlocks/Routers/styled.ts","webpack://_N_E/./src/features/equipment/pageBlocks/Routers/index.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Characteristics/styled.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Characteristics/index.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/TestDrive/components/Banner.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Credit/context/actions/actionTypes.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Credit/context/actions/setIsShowDetails.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Credit/context/actions/setIsShowOptionSelect.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Credit/context/actions/setSelectedCreditCondtition.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Credit/context/reducer/index.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Credit/context/index.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Credit/context/hooks/useContextDispatch.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Credit/context/hooks/useContextSelector.ts","webpack://_N_E/../../packages/ui-react/src/components/svg/delivery/Truck.tsx","webpack://_N_E/../../packages/ui-react/src/components/svg/money/ReceiptItem.tsx","webpack://_N_E/../../packages/ui-react/src/components/svg/users/PersonalCard.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Credit/components/Details/styled.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Credit/components/Details/index.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Credit/hooks/useCreditGuide.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Credit/components/SelectCreditOptionPopup/styled.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Credit/components/SelectCreditOptionPopup/index.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Credit/components/SelectCreditOptionPopup/helpers/getCreditOptions.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Credit/helpers/getSelectedCreditCondition.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Credit/CreditWrapper.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Credit/helpers/getBannerData.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Credit/index.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Detail/styled.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/TestDrive/context/actions/actionTypes.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/Detail/index.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/TestDrive/context/reducer/index.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/TestDrive/helpers/getBannerData.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/TestDrive/context/index.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/TestDrive/context/actions/setIsShowDetails.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/TestDrive/context/actions/setIsShowOptionSelect.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/TestDrive/context/hooks/useContextDispatch.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/TestDrive/context/hooks/useContextSelector.ts","webpack://_N_E/../../packages/ui-react/src/components/svg/main/Crown.tsx","webpack://_N_E/../../packages/ui-react/src/components/svg/support/Like.tsx","webpack://_N_E/../../packages/ui-react/src/components/svg/support/MessageQuestion.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/TestDrive/hooks/useTestDriveGuide.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/TestDrive/helpers/getTestDriveOptions.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/TestDrive/components/Details.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/TestDrive/helpers/getDetailsByEquipmentCategory.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/TestDrive/TestDriveWrapper.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Description/components/TestDrive/index.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Description/index.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Slider/styled.ts","webpack://_N_E/./src/features/work-in-home-ab/components/Slider/index.tsx","webpack://_N_E/./src/features/work-in-home-ab/components/Slider/SliderControls.tsx","webpack://_N_E/./src/features/work-in-home-ab/styled.ts","webpack://_N_E/./src/features/work-in-home-ab/ContentPage.tsx","webpack://_N_E/./src/features/equipment/shop/[itemId].tsx","webpack://_N_E/./src/features/equipment/shop/helpers/getItemDetailsInitialProps.ts","webpack://_N_E/./src/features/equipment/shop/helpers/getOrderHandler.ts","webpack://_N_E/./src/features/equipment/styled.ts","webpack://_N_E/./src/features/specialOffersContainer/store/actions/setErrorMessage.ts","webpack://_N_E/./src/features/specialOffersContainer/store/actions/setIsLoadingOffers.ts","webpack://_N_E/./src/features/specialOffersContainer/store/actions/setIsPopupOpened.ts","webpack://_N_E/./src/features/specialOffersContainer/store/actions/setOffers.ts","webpack://_N_E/./src/features/specialOffersContainer/store/actions/setOfferTransaction.ts","webpack://_N_E/./src/features/specialOffersContainer/store/actions/setPopupState.ts","webpack://_N_E/./src/features/specialOffersContainer/store/actions/setSelectedOfferId.ts","webpack://_N_E/./src/helpers/hooks/usePrepareQueryData.tsx","webpack://_N_E/./src/helpers/hooks/useRouterChange.tsx","webpack://_N_E/../../packages/api-domru/src/payments/v1/credits/condition/index.ts","webpack://_N_E/../../packages/shared/src/hooks/useResizeObserver.tsx","webpack://_N_E/../../packages/ui-react/src/components/Guide/GuideItem/index.tsx","webpack://_N_E/../../packages/ui-react/src/components/Guide/index.tsx","webpack://_N_E/../../packages/ui-react/src/components/svg/content/ClipboardTick.tsx","webpack://_N_E/../../packages/ui-react/src/components/svg/delivery/CloseBox.tsx","webpack://_N_E/../../packages/ui-react/src/components/svg/money/Coin.tsx","webpack://_N_E/../../packages/ui-react/src/components/svg/time/Timer.tsx","webpack://_N_E/../../packages/ui-react/src/components/typography/controlElement/ControlElement.tsx","webpack://_N_E/../../packages/ui-react/src/components/typography/controlElement/index.tsx","webpack://_N_E/./static/images/equipment/credit/banner.png","webpack://_N_E/./static/images/equipment/credit/banner.webp","webpack://_N_E/./static/images/equipment/test-drive/banner.png","webpack://_N_E/./static/images/equipment/test-drive/banner.webp","webpack://_N_E/./static/images/equipment/test-drive/movix.png","webpack://_N_E/./static/images/equipment/test-drive/movix.webp","webpack://_N_E/./static/images/equipment/test-drive/router.png","webpack://_N_E/./static/images/equipment/test-drive/router.webp","webpack://_N_E/./static/images/equipment/test-drive/yandex-station.png","webpack://_N_E/./static/images/equipment/test-drive/yandex-station.webp"],"sourcesContent":["import styled from 'styled-components';\n\nimport NukaCarousel from '@r1-frontend/ui-react/components/NukaCarousel';\n\nexport const CustomSwiper = styled(NukaCarousel)`\n padding-left: 0 !important;\n padding-right: 0 !important;\n \n & section,\n & div {\n outline: none;\n }\n\n & > section > div.slider-frame {\n padding: 24px 0 !important;\n\n div.slider-list {\n cursor: default !important;\n }\n }\n`;\n","import { ReactNode, useEffect, useState } from 'react';\nimport { CarouselProps } from 'nuka-carousel';\n\nimport { useMatchMedia } from '@r1-frontend/shared/hooks/useMatchMedia';\n\nimport { CustomSwiper } from './styled';\n\nenum EMediaWidth {\n desktop = '(min-width: 1600px)',\n sDesktop = '(max-width: 1599px) and (min-width: 1280px)',\n laptop = '(max-width: 1279px) and (min-width: 768px)',\n mobile = '(max-width: 767px)',\n}\n\ntype TBreakpoint = 'desktop' | 'sDesktop' | 'laptop' | 'mobile';\n\ntype TVisibleSlides = {\n [key in TBreakpoint]: number;\n};\n\ninterface IProps extends CarouselProps {\n children: Array,\n desktopSlideWidth?: string,\n mobileSlideWidth?: string,\n visibleSlides?: TVisibleSlides,\n [key: string]: unknown,\n}\n\nconst defaultVisibleSlides: TVisibleSlides = {\n desktop: 4,\n sDesktop: 3,\n laptop: 2,\n mobile: 1,\n};\n\n/**\n * Адаптив карусели Nuka-Carousel\n * @param items - массив компонентов (TariffCard, ProductCard, etc)\n * @param desktopSlideWidth - ширина слайда карусели на десктопе\n * @param mobileSlideWidth - ширина слайда карусели на мобилках\n * @param visibleSlides - количество целых видимых слайдов в карусели\n * @returns Function{}\n */\n// todo: move to ui-react\nconst AdaptiveNukaCarousel = ({\n children,\n desktopSlideWidth = '304px',\n mobileSlideWidth = '288px',\n visibleSlides = defaultVisibleSlides,\n ...props\n}: IProps): JSX.Element => {\n const [hideArrows, setHideArrows] = useState(false);\n const [hideDots, setHideDots] = useState(false);\n const [slideWidth, setSlideWidth] = useState(desktopSlideWidth);\n\n const isDesktop = useMatchMedia(EMediaWidth.desktop);\n const isSDesktop = useMatchMedia(EMediaWidth.sDesktop);\n const isLaptop = useMatchMedia(EMediaWidth.laptop);\n const isMobile = useMatchMedia(EMediaWidth.mobile);\n\n useEffect(() => {\n if (isMobile) {\n setSlideWidth(mobileSlideWidth);\n setHideArrows(true);\n if (children.length > visibleSlides.mobile) {\n setHideDots(false);\n } else {\n setHideDots(true);\n }\n } else {\n setSlideWidth(desktopSlideWidth);\n if ((isLaptop && children.length > visibleSlides.laptop) ||\n (isSDesktop && children.length > visibleSlides.sDesktop) ||\n (isDesktop && children.length > visibleSlides.desktop)) {\n setHideArrows(false);\n setHideDots(false);\n } else {\n setHideArrows(true);\n setHideDots(true);\n }\n }\n }, [\n isDesktop,\n isSDesktop,\n isLaptop,\n isMobile,\n children,\n desktopSlideWidth,\n mobileSlideWidth,\n visibleSlides,\n ]);\n\n return (\n \n {children}\n \n );\n};\n\nexport default AdaptiveNukaCarousel;\n","import styled from 'styled-components';\n\nexport const NoSsrWrapper = styled.div`\n gap: 20px;\n`;\n","import { useEffect, useState } from 'react';\n\nimport { IEquipment } from '@r1-frontend/api-domru/full-buy/v1/equipment/dto/Equipment.dto';\n\nimport { isClientSide } from '@r1-frontend/shared/helpers/ssr';\n\nimport AdaptiveNukaCarousel from '~/src/components/AdaptiveNukaCarousel';\nimport DeviceGridItem from '~/src/components/Equipment/internet/DeviceGridItem';\n\nimport { NoSsrWrapper } from './styled';\n\ninterface IRoutersProps {\n routers: IEquipment[],\n cellSpacing?: number,\n isDecoder?: boolean,\n baseRoute?: string,\n}\n\nconst Routers = ({ routers, cellSpacing, isDecoder, baseRoute }: IRoutersProps): JSX.Element => {\n const [onClientSide, setOnClientSide] = useState(false);\n\n useEffect(() => {\n setOnClientSide(isClientSide());\n }, []);\n\n const getRoutersCards = () => {\n return (\n routers.map(router => (\n \n ))\n );\n };\n\n return (onClientSide\n ? \n {getRoutersCards()}\n \n : \n {getRoutersCards()}\n \n );\n};\n\nexport default Routers;\n","import styled from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport Tabs from '@r1-frontend/ui-react/components/tabs/tabs';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nexport const AliasContent = styled.div`\n display: flex;\n flex-direction: column;\n max-width: 1280px;\n color: black;\n ${FONTS.XS};\n white-space: pre-wrap;\n\n @media (min-width: ${wideBreakpoints.mobile}) {\n ${FONTS.S};\n padding: 0 16px;\n }\n\n a {\n color: ${COLORS.Link};\n }\n`;\n\nexport const ContentWrapper = styled.div`\n display: flex;\n flex-direction: row;\n margin-top: 6px;\n`;\n\nexport const ContentLabel = styled.div`\n color: ${COLORS.GRAY_DARK};\n display: flex;\n margin-right: 5px;\n`;\n\nexport const StyledTabs = styled(Tabs)`\n > div:first-child {\n width: fit-content;\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n > div:first-child {\n width: 100%;\n overflow-x: scroll;\n }\n\n > div:last-child {\n padding-left: 16px;\n padding-right: 16px;\n }\n\n & > div:not(:last-child) {\n transition: color 0.3s ease 0s;\n padding-left: 16px;\n padding-right: 16px;\n margin: 0px;\n color: ${COLORS.TextPrimary};\n }\n }\n`;\n","import React, { useState } from 'react';\n\nimport { IEquipmentProp } from '@r1-frontend/api-domru/full-buy/v1/equipment/dto/EquipmentProp.dto';\nimport { IEquipmentUrl } from '@r1-frontend/api-domru/full-buy/v1/equipment/dto/EquipmentUrl.dto';\n\nimport Tab from '@r1-frontend/ui-react/components/tabs/tab';\n\nimport * as ST from './styled';\n\nexport interface ICharacteristics {\n specifications?: IEquipmentProp[],\n howItWorks?: string,\n urls?: IEquipmentUrl[],\n description?: string,\n}\n\nconst Characteristics = ({ specifications, urls, description }: ICharacteristics) => {\n const [activeTabLabel, setActiveTabLabel] = useState(description ? 'Полное описание' : 'Технические характеристики');\n\n const instructionUrl = urls?.filter(({ type, url }) => type === 'doc' && !!url);\n\n /**\n * TODO\n * Временный костыль, пока не разделят интерфейсы.\n * Подробнее тут: https://ticket.ertelecom.ru/browse/WEB-42073\n */\n const prepareSpecifications = (specifications || []).filter(spec => spec.title !== 'Предлагать в полной покупке' && spec.title !== 'Идентификатор provisioning');\n\n return (\n \n {!!description &&\n \n \n }\n {prepareSpecifications.length &&\n \n \n {prepareSpecifications\n .map((item) => (\n \n {item.title}:\n {item.value}\n \n ))\n }\n \n }\n {instructionUrl && instructionUrl?.length > 0 &&\n \n {instructionUrl.map((item) =>\n \n {item.name}\n )}\n }\n \n );\n};\n\nexport default Characteristics;\n","import { ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { H4 } from '@r1-frontend/ui-react/components/typography/heading';\nimport { Paragraph5 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport TextWrapper from '@r1-frontend/ui-react/components/typography/TextWrapper';\nimport WebpImage from '@r1-frontend/ui-react/components/WebpImage';\nimport { FullWidthListContainer, IndentContainer, NonStaticContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\ninterface IBannerProps {\n title: string,\n image: {\n url: string,\n urlWebp?: string,\n },\n\n description?: string | JSX.Element | ReactNode,\n className?: string,\n onBannerClick?: () => void,\n}\n\nconst TestDriveBanner = ({ title, image, description, onBannerClick, className }: IBannerProps): JSX.Element => {\n return (\n \n \n \n

{title}

\n {description && (\n typeof description === 'string'\n ? \n : description\n )}\n
\n
\n \n \n Изображение баннера\n \n \n \n );\n};\n\nexport default styled(TestDriveBanner)`\n position: relative;\n height: 112px;\n background-color: ${COLORS.BgSurface};\n border-radius: ${BorderRadius.OuterBlockRadius};\n cursor: pointer;\n\n & > ${NonStaticContainer} {\n align-self: flex-end;\n\n img,\n picture {\n width: 128px;\n height: 128px;\n object-position: center;\n object-fit: contain;\n }\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n height: 96px;\n border-radius: ${BorderRadius.InnerBlockRadius};\n\n & > ${NonStaticContainer} {\n img,\n picture {\n width: 112px;\n height: 112px;\n }\n }\n }\n`;\n","export const enum ECrediteActions {\n SetIsShowDetails = '@credit/SetIsShowDetails',\n SetIsShowOptionSelect = '@credit/SetIsShowOptionSelect',\n SetSelectedCreditCondition = '@credit/SetSelectedCreditCondition',\n}\n","import { IAction } from '~/src/store';\n\nimport { ECrediteActions } from './actionTypes';\n\nexport const setIsShowDetails = (isShow: boolean): IAction => ({\n type: ECrediteActions.SetIsShowDetails,\n payload: isShow,\n});\n","import { IAction } from '~/src/store';\n\nimport { ECrediteActions } from './actionTypes';\n\nexport const setIsShowOptionSelect = (isShow: boolean): IAction => ({\n type: ECrediteActions.SetIsShowOptionSelect,\n payload: isShow,\n});\n","import { ICreditCondition } from '@r1-frontend/api-domru/payments/v1/credits/condition';\n\nimport { IAction } from '~/src/store';\n\nimport { ECrediteActions } from './actionTypes';\n\nexport const setSelectedCreditCondition = (creditCondition: ICreditCondition): IAction => ({\n type: ECrediteActions.SetSelectedCreditCondition,\n payload: creditCondition,\n});\n","import { ICreditCondition } from '@r1-frontend/api-domru/payments/v1/credits/condition';\n\nimport { InferValueTypes } from '~/src/store';\n\nimport * as actions from '../actions';\nimport { ECrediteActions } from '../actions/actionTypes';\n\nexport type TAction = ReturnType>\n\nexport interface ICreditInitialState {\n isShowDetails: boolean,\n isShowOptionSelect: boolean,\n selectedCreditCondition: ICreditCondition | null,\n}\n\nexport const initialState: ICreditInitialState = {\n isShowDetails: false,\n isShowOptionSelect: false,\n selectedCreditCondition: null,\n};\n\nexport const reducer = (state: ICreditInitialState = initialState, action: TAction): ICreditInitialState => {\n switch (action.type) {\n case ECrediteActions.SetIsShowDetails:\n return {\n ...state,\n isShowDetails: action.payload,\n };\n case ECrediteActions.SetIsShowOptionSelect:\n return {\n ...state,\n isShowOptionSelect: action.payload,\n };\n case ECrediteActions.SetSelectedCreditCondition:\n return {\n ...state,\n selectedCreditCondition: action.payload,\n };\n default:\n return { ...state };\n }\n};\n","import { createContext, ReactNode } from 'react';\nimport useThunkReducer, { ThunkDispatch } from 'react-hook-thunk-reducer';\n\nimport { ICreditInitialState, initialState, reducer, TAction } from './reducer';\n\nexport type TContextDispatch = ThunkDispatch\n\ninterface IContext {\n debugMode?: boolean,\n state: ICreditInitialState,\n dispatch: TContextDispatch,\n}\n\nexport const CreditContext = createContext({\n debugMode: false,\n state: initialState,\n dispatch: () => null,\n});\n\nconst CreditContextContainer = ({ debugMode = false, children }: { debugMode?: boolean, children: ReactNode }): JSX.Element => {\n const [state, dispatch] = useThunkReducer(reducer, initialState);\n\n debugMode && console.table(state);\n\n return (\n \n {children}\n \n );\n};\n\nexport default CreditContextContainer;\n","import { useContext } from 'react';\n\nimport { CreditContext, TContextDispatch } from '../index';\n\nexport const useContextDispatch = (): TContextDispatch => {\n const { dispatch } = useContext(CreditContext);\n return dispatch;\n};\n","import { useContext } from 'react';\n\nimport { CreditContext } from '../index';\nimport { ICreditInitialState } from '../reducer';\n\nexport const useContextSelector = (selector: (state: ICreditInitialState) => T) => {\n const { state } = useContext(CreditContext);\n\n return selector(state);\n};\n","import { createSvg } from '@r1-frontend/ui-react/components/svg/createSvg';\n\nconst Truck = (\n {\n strokeWidth = 1.5,\n },\n): JSX.Element => {\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default createSvg(\n Truck,\n 'Truck',\n);\n","import { createSvg } from '@r1-frontend/ui-react/components/svg/createSvg';\n\nconst ReceiptItem = (\n {\n strokeWidth = 1.5,\n },\n): JSX.Element => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default createSvg(\n ReceiptItem,\n 'receipt-item',\n);\n","import { createSvg } from '@r1-frontend/ui-react/components/svg/createSvg';\n\nconst PersonalCard = (\n {\n strokeWidth = 1.5,\n },\n): JSX.Element => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default createSvg(\n PersonalCard,\n 'personal-card',\n);\n","import styled from 'styled-components';\n\nimport { IndentContainer } from '@r1-frontend/ui-react/experimental/containers';\n\nexport const Content = styled(IndentContainer)`\n position: relative;\n height: 100%;\n transition: all .25s;\n overflow: hidden;\n`;\n\nexport const ScrollbarCustomStyles = {\n view: { paddingRight: 0, paddingBottom: 0 },\n trackVertical: { top: '24px', bottom: '24px' },\n thumbVertical: { height: '20px' },\n};\n","import Button from '@r1-frontend/ui-react/components/buttons/button';\nimport CustomScrollbar from '@r1-frontend/ui-react/components/CustomScrollbar';\nimport { Guide } from '@r1-frontend/ui-react/components/Guide';\nimport { H3 } from '@r1-frontend/ui-react/components/typography/heading';\nimport { Paragraph4 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport TextWrapper from '@r1-frontend/ui-react/components/typography/TextWrapper';\nimport { FullWidthListContainer, IndentContainer, ListContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nimport { Drawer, Footer } from '~/src/components/Drawer';\nimport { setIsShowDetails } from '~/src/features/work-in-home-ab/components/Description/components/Credit/context/actions';\nimport { useContextDispatch, useContextSelector } from '~/src/features/work-in-home-ab/components/Description/components/Credit/context/hooks';\nimport { useCreditGuide } from '~/src/features/work-in-home-ab/components/Description/components/Credit/hooks/useCreditGuide';\n\nimport * as ST from './styled';\n\ninterface IProps {\n onOrder: () => void,\n}\n\nconst CreditDetails = ({ onOrder }: IProps): JSX.Element => {\n const dispatch = useContextDispatch();\n const { isShow, selectedCreditCondition } = useContextSelector(state => ({\n isShow: state.isShowDetails,\n selectedCreditCondition: state.selectedCreditCondition,\n }));\n\n const guide = useCreditGuide(selectedCreditCondition);\n\n return (\n dispatch(setIsShowDetails(false))}>\n \n \n \n \n

Рассрочка от банка-партнёра

\n Пользуйтесь оборудованием сразу, а платите за него постепенно.
\n Подробнее о банке\n
\n
\n\n \n \n \n
\n
\n
\n
\n \n
\n
\n );\n};\n\nexport default CreditDetails;\n","import { useMemo } from 'react';\n\nimport { ICreditCondition } from '@r1-frontend/api-domru/payments/v1/credits/condition';\n\nimport Button from '@r1-frontend/ui-react/components/buttons/button';\nimport { ButtonGroup } from '@r1-frontend/ui-react/components/buttons/buttonGroup/ButtonGroup';\nimport format from '@r1-frontend/ui-react/components/costs/Cost/format';\nimport { TGuideItem } from '@r1-frontend/ui-react/components/Guide/GuideItem';\nimport { ClipboardTick } from '@r1-frontend/ui-react/components/svg/content';\nimport { Truck } from '@r1-frontend/ui-react/components/svg/delivery';\nimport { Coin, ReceiptItem } from '@r1-frontend/ui-react/components/svg/money';\nimport { Timer } from '@r1-frontend/ui-react/components/svg/time';\nimport { PersonalCard } from '@r1-frontend/ui-react/components/svg/users';\nimport { Paragraph4 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport { ListContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { MDASH, NBSP } from '@r1-frontend/ui-react/tokens/symbols';\n\nimport { setIsShowOptionSelect } from '~/src/features/work-in-home-ab/components/Description/components/Credit/context/actions';\nimport { useContextDispatch } from '~/src/features/work-in-home-ab/components/Description/components/Credit/context/hooks';\n\nexport const useCreditGuide = (selectedCreditCondition: ICreditCondition | null): TGuideItem[] => {\n const dispatch = useContextDispatch();\n\n const guideItems: TGuideItem[] = useMemo(() => {\n return [\n {\n isActive: true,\n Icon: Coin,\n title: 'Выберите рассрочку как вариант приобретения',\n description: \n \n Минимальный платёж и период предоставления рассрочки будут точно рассчитаны после заполнения анкеты.\n \n {selectedCreditCondition && (\n \n \n \n )}\n ,\n },\n {\n isActive: false,\n Icon: PersonalCard,\n title: 'Заполните анкету',\n description: `Загрузите свои данные с${NBSP}Госуслуг${NBSP}${MDASH} это может занять около 3-5${NBSP}минут. Или заполните анкету самостоятельно.`,\n },\n {\n isActive: false,\n Icon: Timer,\n title: 'Дождитесь одобрения банка',\n description: `После заполнения заявки дождитесь ответа банка в${NBSP}смс. Обычно это занимает около 3${NBSP}минут.`,\n },\n {\n isActive: false,\n Icon: ClipboardTick,\n title: `Оформите заявку на${NBSP}визит инженера`,\n // eslint-disable-next-line max-len\n description: `После одобрения заявки, вы${NBSP}сможете выбрать время для визита инженера. Он${NBSP}привезёт оборудование, все нужные документы, сделает фото паспорта и${NBSP}всё настроит.`,\n },\n {\n isActive: false,\n Icon: Truck,\n title: 'Получите заказ',\n description: `Главное, чтобы заказ получали вы${NBSP}по${NBSP}своему паспорту. Кто-то другой заказ получить не${NBSP}сможет.`,\n },\n {\n isActive: false,\n Icon: ReceiptItem,\n title: `Платите в${NBSP}рассрочку`,\n description: (\n \n В течение выбранного срока с{NBSP}вашего счета в{NBSP}банке будут списываться ежемесячные платежи.{' '}\n \n Подробнее\n \n \n ),\n },\n ];\n }, [selectedCreditCondition]);\n\n return guideItems;\n};\n","import { IDefaultPopupCustomStyles } from '@r1-frontend/ui-react/components/popups/defaultPopup';\n\nexport const PopupCustomStyles: IDefaultPopupCustomStyles = {\n popup: {\n default: {\n margin: '32px',\n maxHeight: 'calc(100% - 64px)',\n },\n mobile: {\n margin: '16px',\n maxHeight: 'calc(100% - 32px)',\n },\n },\n};\n","import { useEffect, useMemo, useState } from 'react';\n\nimport { ICreditCondition } from '@r1-frontend/api-domru/payments/v1/credits/condition';\n\nimport Button from '@r1-frontend/ui-react/components/buttons/button';\nimport { ButtonGroup } from '@r1-frontend/ui-react/components/buttons/buttonGroup/ButtonGroup';\nimport OptionList, { IOptionVariant } from '@r1-frontend/ui-react/components/OptionList';\nimport DefaultPopup from '@r1-frontend/ui-react/components/popups/defaultPopup';\nimport { H3 } from '@r1-frontend/ui-react/components/typography/heading';\nimport { FullWidthListContainer, IndentContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { ListContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nimport { EPriceOperationTypes } from '~/src/entities/price';\nimport { useContextSelector } from '~/src/features/work-in-home-ab/components/Description/components/Credit/context/hooks';\n\nimport { getCreditOptions } from './helpers';\n\nimport { PopupCustomStyles } from './styled';\n\ninterface IProps {\n onConfirmSelect: (params: { payOption: { optionId: string, variantId: string | number } }) => void,\n creditConditions: ICreditCondition[],\n onClose: () => void,\n}\nexport const SelectCreditOptionPopup = ({ onClose, creditConditions, onConfirmSelect }: IProps): JSX.Element | null => {\n const [selectedOption, setSelectedOption] = useState();\n const [selectedPayOptionId, setSelectedPayOptionId] = useState('');\n\n const { isShow, selectedCreditCondition } = useContextSelector(state => ({\n isShow: state.isShowOptionSelect,\n selectedCreditCondition: state.selectedCreditCondition,\n }));\n\n const creditOptions = useMemo(() => getCreditOptions(creditConditions), [creditConditions]);\n\n useEffect(() => {\n if (selectedCreditCondition) {\n setSelectedPayOptionId(selectedCreditCondition.duration);\n const currentCreditCondition = creditOptions.find(item => item.id === selectedCreditCondition.duration);\n setSelectedOption(currentCreditCondition);\n }\n }, [creditOptions, selectedCreditCondition]);\n\n const onConfirmSelectHandler = () => {\n if (selectedOption) {\n onConfirmSelect({\n payOption: {\n optionId: EPriceOperationTypes.Credit,\n variantId: selectedPayOptionId,\n },\n });\n }\n };\n\n const selectOptionHandler = (optionId: string | number) => {\n setSelectedPayOptionId(optionId);\n\n const currentCreditCondition = creditOptions.find(item => item.id === optionId);\n setSelectedOption(currentCreditCondition);\n };\n return (\n \n \n \n

Условия рассрочки

\n \n \n \n \n \n \n
\n
\n \n );\n};\n","import orderBy from 'lodash/orderBy';\n\nimport { ICreditCondition } from '@r1-frontend/api-domru/payments/v1/credits/condition';\n\nimport format from '@r1-frontend/ui-react/components/costs/Cost/format';\nimport { IOptionVariant } from '@r1-frontend/ui-react/components/OptionList';\nimport { MDASH, NBSP } from '@r1-frontend/ui-react/tokens/symbols';\n\nexport const getCreditOptions = (creditConditions: ICreditCondition[]): IOptionVariant[] => {\n const variants: IOptionVariant[] = orderBy(creditConditions, ['duration'], ['asc'])\n .map(({ duration, cost, pay }) => {\n return {\n id: duration,\n label: `Полная стоимость ${NBSP}${MDASH} ${format(cost)}`,\n value: pay,\n valueStr: `${format(pay, { monthly: true })} на ${duration} мес.`,\n };\n });\n return variants;\n};\n","import { ICreditCondition } from '@r1-frontend/api-domru/payments/v1/credits/condition';\n\nexport const getSelectedCreditCondition = (creditConditions: ICreditCondition[], selectedOptionId: string | number): ICreditCondition | undefined => {\n if (!creditConditions.length || Number.isNaN(Number(selectedOptionId))) {\n return;\n }\n const [minCreditByDuration] = creditConditions.sort((a, b) => a.duration - b.duration);\n return creditConditions.find(item => item.duration === Number(selectedOptionId)) || minCreditByDuration;\n};\n","import { useEffect } from 'react';\n\nimport { ICreditCondition } from '@r1-frontend/api-domru/payments/v1/credits/condition';\n\nimport { fullBuyEquipAnalyticsBase } from '~/src/analytics';\nimport CreditBanner from '~/src/features/work-in-home-ab/components/Description/components/TestDrive/components/Banner';\n\nimport CreditDetails from './components/Details';\nimport { SelectCreditOptionPopup } from './components/SelectCreditOptionPopup';\nimport { setIsShowDetails, setIsShowOptionSelect, setSelectedCreditCondition } from './context/actions';\nimport { useContextDispatch } from './context/hooks';\nimport { getBannerData, getSelectedCreditCondition } from './helpers';\n\nexport interface IProps {\n creditConditions: ICreditCondition[],\n onChangeOption: (optionId: string | number, variantId: string | number) => void,\n selectedOptionId: string | number,\n onOrder: () => void,\n dataLayerLabel: string,\n}\nconst CreditWrapper = ({ creditConditions, onChangeOption, onOrder, selectedOptionId, dataLayerLabel }: IProps): JSX.Element => {\n const { title, description, image } = getBannerData();\n\n const dispatch = useContextDispatch();\n\n useEffect(() => {\n const selectedCreditCondition = getSelectedCreditCondition(creditConditions, selectedOptionId);\n if (selectedCreditCondition) {\n dispatch(setSelectedCreditCondition(selectedCreditCondition));\n }\n }, [creditConditions, selectedOptionId]);\n\n const onBannerClick = () => {\n fullBuyEquipAnalyticsBase.clickToBanner(dataLayerLabel);\n dispatch(setIsShowDetails(true));\n };\n\n const onHideSelect = () => {\n dispatch(setIsShowOptionSelect(false));\n };\n\n const onConfirmSelect = ({ payOption: { optionId, variantId } }: { payOption: { optionId: string, variantId: string | number } }) => {\n onChangeOption(optionId, variantId);\n const selectedCreditCondition = getSelectedCreditCondition(creditConditions, variantId);\n if (selectedCreditCondition) {\n dispatch(setSelectedCreditCondition(selectedCreditCondition));\n }\n onHideSelect();\n };\n\n return (\n <>\n \n \n \n \n );\n};\n\nexport default CreditWrapper;\n","import ControlElement from '@r1-frontend/ui-react/components/typography/controlElement';\nimport { Paragraph5 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport { NBSP } from '@r1-frontend/ui-react/tokens/symbols';\n\n\nexport const getBannerData = (): { title: string, description: JSX.Element, image: { url: string, urlWebp: string } } => {\n return {\n title: `Рассрочка от${NBSP}банка-партнёра`,\n description: \n Пользуйтесь сразу, а платите постепенно. Подробнее\n ,\n image: {\n url: require('~/static/images/equipment/credit/banner.png'),\n urlWebp: require('~/static/images/equipment/credit/banner.webp'),\n },\n };\n};\n","import CreditWrapper, { IProps } from './CreditWrapper';\n\nconst Credit = (props: IProps): JSX.Element => {\n return (\n \n );\n};\n\nexport default Credit;\n","import styled, { css } from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nexport const DetailContainer = styled.div<{ marginBottom?: number }>`\n display: flex;\n flex-direction: column;\n padding: 0;\n margin-bottom: ${(props) => props.marginBottom ? `${props.marginBottom}px` : '24px'};\n padding: 0 32px;\n max-width: 100%;\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n padding: 0 24px;\n }\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n padding: 0;\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n padding: 0 16px;\n }\n`;\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: column;\n margin-bottom: 16px;\n`;\n\nexport const CharContainer = styled.div`\n display: flex;\n flex-direction: column;\n margin-bottom: 24px;\n`;\n\nexport const RowContainer = styled.div`\n display: flex;\n flex-direction: row;\n position: relative;\n`;\n\nexport const DetailLabel = styled.span`\n ${FONTS.H4};\n color: ${COLORS.TextPrimary};\n margin-bottom: 8px;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.H5};\n }\n`;\n\nexport const DetailInfo = styled.span<{ showAllLines?: boolean, linesNumber?: number, maxWidth?: boolean }>`\n ${FONTS.S};\n color: ${COLORS.TextSecondary};\n display: -webkit-box;\n -webkit-line-clamp: ${(props) => props.showAllLines ? 'inherit' : (props.linesNumber || 6)};\n -webkit-box-orient: vertical;\n overflow: hidden;\n word-break: break-word;\n position: relative;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.XS};\n }\n\n ${props => props.maxWidth && css`\n -webkit-line-clamp: 1;\n max-width: 45%;\n padding-right: 5px;\n `}\n`;\n\nexport const DetailInfoHover = styled.span`\n position: absolute;\n right: 0;\n top: 0;\n background-color: ${COLORS.BgSurface};\n ${FONTS.S};\n color: ${COLORS.TextSecondary};\n z-index: 1;\n width: fit-content;\n cursor: pointer;\n padding: 0 5px;\n border-radius: 5px;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.XS};\n }\n`;\n\nexport const DotsComponent = styled.div`\n flex-grow: 1;\n border-bottom: 0.5px dashed ${COLORS.TextSecondary};\n height: 80%;\n margin: 0 2px;\n`;\n\nexport const ShowLessButton = styled.span`\n ${FONTS.S};\n color: ${COLORS.Link};\n cursor: pointer;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.XS};\n }\n`;\n\nexport const RowIconsContainer = styled.div`\n display: flex;\n flex-direction: row;\n margin-bottom: 28px;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n margin-bottom: 16px;\n }\n\n &:last-of-type {\n margin-bottom: 0;\n }\n`;\n\nexport const IconInfoText = styled.span`\n height: 100%;\n display: flex;\n align-items: center;\n ${FONTS.S};\n color: ${COLORS.TextPrimary};\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.XS};\n }\n`;\n\nexport const Icon = styled.div<{ imgUrl: string }>`\n width: 24px;\n height: 24px;\n background-image: url('${(props) => props.imgUrl}');\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n margin-right: 8px;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n width: 20px;\n height: 20px;\n }\n`;\n","export enum ETestDriveActions {\n SetIsShowDetails = '@test-drive/SetIsShowDetails',\n SetIsShowOptionSelect = '@test-drive/SetIsShowOptionSelect',\n}\n","import React, { useMemo, useRef, useState } from 'react';\n\nimport { ICharacteristics } from '@r1-frontend/api-domru/full-buy/v1/equipment/dto/EquipmentProp.dto';\nimport { ICurrentCity } from '@r1-frontend/entities/City/models/ICurrentCity';\n\nimport { EMediaWidth } from '@r1-frontend/ui-react/tokens/mediaWidth';\nimport { truncate } from '@r1-frontend/shared/helpers/truncate';\nimport { useMatchMedia } from '@r1-frontend/shared/hooks/useMatchMedia';\nimport { useResizeObserver } from '@r1-frontend/shared/hooks/useResizeObserver';\n\nimport * as ST from './styled';\n\nexport interface IDetail {\n city?: ICurrentCity,\n description?: string,\n characteristics?: ICharacteristics[],\n marginBottom?: number,\n}\n\nconst deliveryIcon = '/static/images/work-in-home/delivery.svg';\nconst settingIcon = '/static/images/work-in-home/setting.svg';\n\nconst Detail = ({ city, description, characteristics, marginBottom }: IDetail) => {\n const [descShowAllLines, setDescShowAllLines] = useState(false);\n const [charShowAllLines, setCharShowAllLines] = useState(false);\n const isMobile = useMatchMedia(EMediaWidth.mobile);\n\n const [hoverIndex, setHoverIndex] = useState(-1);\n\n const characteristicsToShow: ICharacteristics[] | undefined = useMemo(() => {\n if (!characteristics) {\n return undefined;\n }\n const charArrToShow = characteristics.filter(line => line.asIs);\n return charArrToShow.length > 0 ? charArrToShow : undefined;\n }, [characteristics]);\n\n const ref = useRef(null);\n\n const { width } = useResizeObserver(ref);\n\n const isOverflowing = useMemo((): boolean => {\n const el: HTMLSpanElement | null = ref.current;\n if (el) {\n const curOverf = el.style.overflow;\n if (!curOverf || curOverf === 'visible') {\n el.style.overflow = 'hidden';\n }\n const isOverflowing = el.clientWidth < el.scrollWidth || el.clientHeight < el.scrollHeight;\n el.style.overflow = curOverf;\n const divHeight = el.offsetHeight;\n const lineHeight = isMobile ? 20 : 24;\n const lines = divHeight / lineHeight;\n return isOverflowing || lines > 3;\n }\n return true;\n }, [width, isMobile]);\n\n const hasFreeDeliveryAndInstallation = useMemo(() => {\n return !!city?.hasFreeDeliveryAndInstallation;\n }, [city]);\n\n const maxChars = isMobile ? 9 : 20;\n\n return (\n \n {\n description && \n {'Описание'}\n \n {isOverflowing && setDescShowAllLines(prev => !prev)}>\n {descShowAllLines ? 'Свернуть' : 'Показать больше'}\n }\n \n }\n {\n characteristicsToShow && \n {'Основные характеристики'}\n {\n characteristicsToShow.map((character, index) => {\n if (!charShowAllLines && index > 2) {\n return null;\n }\n return (\n {character.title}\n \n setHoverIndex(index)}\n maxWidth={true}\n >\n {truncate(character.value, maxChars)}\n \n {hoverIndex === index && setHoverIndex(-1)}>\n {character.value}\n }\n );\n })\n }\n {characteristicsToShow.length > 3 &&\n setCharShowAllLines(prev => !prev)}>\n {charShowAllLines ? 'Свернуть' : 'Показать больше'}\n }\n \n }\n {hasFreeDeliveryAndInstallation && <>\n \n \n {'Бесплатная доставка'}\n \n \n \n {'Бесплатная настройка'}\n \n \n }\n \n );\n};\n\nexport default Detail;\n","import { InferValueTypes } from '~/src/store';\n\nimport * as actions from '../actions';\nimport { ETestDriveActions } from '../actions/actionTypes';\n\nexport type TAction = ReturnType>\n\nexport interface ITestDriveInitialState {\n isShowDetails: boolean,\n isShowOptionSelect: boolean,\n}\n\nexport const initialState: ITestDriveInitialState = {\n isShowDetails: false,\n isShowOptionSelect: false,\n};\n\nexport const reducer = (state: ITestDriveInitialState = initialState, action: TAction): ITestDriveInitialState => {\n switch (action.type) {\n case ETestDriveActions.SetIsShowDetails:\n return {\n ...state,\n isShowDetails: action.payload,\n };\n case ETestDriveActions.SetIsShowOptionSelect:\n return {\n ...state,\n isShowOptionSelect: action.payload,\n };\n default:\n return { ...state };\n }\n};\n","import { EShopCategory } from '@r1-frontend/api-domru/api-content/v1/shop/items/requestDto';\nimport { IEquipmentCategory } from '@r1-frontend/api-domru/full-buy/v1/equipment/dto/EquipmentCategory.dto';\nimport { IEquipmentTestDrive } from '@r1-frontend/api-domru/full-buy/v1/equipment/dto/EquipmentTestDrive.dto';\n\nimport format from '@r1-frontend/ui-react/components/costs/Cost/format';\nimport ControlElement from '@r1-frontend/ui-react/components/typography/controlElement';\nimport { Paragraph5 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport { NBSP } from '@r1-frontend/ui-react/tokens/symbols';\nimport { getPluralize } from '@r1-frontend/shared/helpers/pluralize';\nimport { dayPluralize } from '@r1-frontend/shared/helpers/pluralize/predifined';\n\nconst equipmentTextByCategory: Record = {\n [EShopCategory.Routers]: 'роутера',\n [EShopCategory.YandexStation]: 'умной колонки',\n [EShopCategory.YandexStationLite]: 'умной колонки',\n [EShopCategory.Decoders]: 'приставки',\n};\n\nconst pluralizeDays = getPluralize(dayPluralize);\n\nexport const getBannerData = (testDrive: IEquipmentTestDrive, category?: IEquipmentCategory) => {\n const { duration, priceDuring } = testDrive;\n const { name = '' } = category || {};\n\n return {\n title: `Тест-драйв на${NBSP}${duration}${NBSP}${pluralizeDays(duration)}`,\n description: \n Протестируйте все возможности {equipmentTextByCategory[name] ?? 'оборудования'} за {format(priceDuring)}. Подробнее\n ,\n image: {\n url: require('~/static/images/equipment/test-drive/banner.png'),\n urlWebp: require('~/static/images/equipment/test-drive/banner.webp'),\n },\n };\n};\n","import { createContext, ReactNode } from 'react';\nimport useThunkReducer, { ThunkDispatch } from 'react-hook-thunk-reducer';\n\nimport { initialState, ITestDriveInitialState, reducer, TAction } from './reducer';\n\nexport type TContextDispatch = ThunkDispatch\n\ninterface IContext {\n debugMode?: boolean,\n state: ITestDriveInitialState,\n dispatch: TContextDispatch,\n}\n\nexport const TestDriveContext = createContext({\n debugMode: false,\n state: initialState,\n dispatch: () => null,\n});\n\nconst TestDriveContextContainer = ({ debugMode = false, children }: { debugMode?: boolean, children: ReactNode }): JSX.Element => {\n const [state, dispatch] = useThunkReducer(reducer, initialState);\n\n debugMode && console.table(state);\n\n return (\n \n {children}\n \n );\n};\n\nexport default TestDriveContextContainer;\n","import { IAction } from '~/src/store';\n\nimport { ETestDriveActions } from './actionTypes';\n\nexport const setIsShowDetails = (isShow: boolean): IAction => ({\n type: ETestDriveActions.SetIsShowDetails,\n payload: isShow,\n});\n","import { IAction } from '~/src/store';\n\nimport { ETestDriveActions } from './actionTypes';\n\nexport const setIsShowOptionSelect = (isShow: boolean): IAction => ({\n type: ETestDriveActions.SetIsShowOptionSelect,\n payload: isShow,\n});\n","import { useContext } from 'react';\n\nimport { TContextDispatch, TestDriveContext } from '../index';\n\nexport const useContextDispatch = (): TContextDispatch => {\n const { dispatch } = useContext(TestDriveContext);\n return dispatch;\n};\n","import { useContext } from 'react';\n\nimport { TestDriveContext } from '../index';\nimport { ITestDriveInitialState } from '../reducer';\n\nexport const useContextSelector = (selector: (state: ITestDriveInitialState) => T) => {\n const { state } = useContext(TestDriveContext);\n\n return selector(state);\n};\n","import { createSvg } from '../createSvg';\n\nconst Crown = ({ strokeWidth = 1.5 }): JSX.Element => {\n return (\n <>\n \n \n \n \n \n \n \n \n );\n};\n\nexport default createSvg(Crown, 'crown');\n","import { createSvg } from '@r1-frontend/ui-react/components/svg/createSvg';\n\nconst Like = ({ strokeWidth = 1.5 }): JSX.Element => {\n return (\n \n \n \n \n );\n};\n\nexport default createSvg(Like, 'like');\n","import { createSvg } from '@r1-frontend/ui-react/components/svg/createSvg';\n\nconst MessageQuestion = ({ strokeWidth = 1.5 }): JSX.Element => {\n return (\n <>\n \n \n \n \n \n \n \n \n );\n};\n\nexport default createSvg(MessageQuestion, 'message-question');\n","import { useCallback, useMemo } from 'react';\nimport { batch } from 'react-redux';\nimport Link from 'next/link';\n\nimport { IEquipmentTestDrive } from '@r1-frontend/api-domru/full-buy/v1/equipment/dto/EquipmentTestDrive.dto';\n\nimport format from '@r1-frontend/ui-react/components/costs/Cost/format';\nimport { TGuideItem } from '@r1-frontend/ui-react/components/Guide/GuideItem';\nimport { CloseBox } from '@r1-frontend/ui-react/components/svg/delivery';\nimport { Crown } from '@r1-frontend/ui-react/components/svg/main';\nimport { Like, MessageQuestion } from '@r1-frontend/ui-react/components/svg/support';\nimport ControlElement from '@r1-frontend/ui-react/components/typography/controlElement';\nimport { Paragraph4 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport { ListContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { NBSP } from '@r1-frontend/ui-react/tokens/symbols';\nimport { getPluralize } from '@r1-frontend/shared/helpers/pluralize';\nimport { dayPluralize, monthPluralize } from '@r1-frontend/shared/helpers/pluralize/predifined';\n\nimport { IPurchaseOption } from '~/src/features/work-in-home-ab/components/Description/components/TestDrive/components/Details';\nimport { setIsShowDetails, setIsShowOptionSelect } from '~/src/features/work-in-home-ab/components/Description/components/TestDrive/context/actions';\nimport { useContextDispatch } from '~/src/features/work-in-home-ab/components/Description/components/TestDrive/context/hooks';\n\nconst pluralizeDays = getPluralize(dayPluralize);\nconst pluralizeMonths = getPluralize(monthPluralize);\n\ninterface IParams {\n testDrive?: IEquipmentTestDrive,\n purchaseOption?: IPurchaseOption,\n}\n\nexport const useTestDriveGuide = ({ testDrive, purchaseOption }: IParams): TGuideItem[] => {\n const dispatch = useContextDispatch();\n\n const changeOptionHandler = useCallback(() => {\n batch(() => {\n dispatch(setIsShowDetails(false));\n dispatch(setIsShowOptionSelect(true));\n });\n }, []);\n\n const guideItems: TGuideItem[] = useMemo(() => {\n const { duration = 14, howItWorksText, includingSubscriptionsText } = testDrive || {};\n const { price = 0, value: leasingDuration } = purchaseOption || {};\n\n const items: TGuideItem[] = [];\n\n if (howItWorksText) {\n items.push({\n isActive: false,\n Icon: Crown,\n title: 'Как работает тест-драйв',\n description: howItWorksText,\n info: includingSubscriptionsText ?
: undefined,\n });\n }\n\n const formattedPrice = format(price, leasingDuration ? { monthly: true } : undefined);\n\n const textByLeasingDuration = leasingDuration\n ? <>\n  — в рассрочку {formattedPrice} на {leasingDuration} {pluralizeMonths(leasingDuration)}\n \n : ` за${NBSP}${formattedPrice}`;\n\n items.push(\n {\n isActive: false,\n Icon: Like,\n title: `Кто установит и${NBSP}настроит`,\n description: 'Возьмите оборудование в тест-драйв, а об остальном позаботимся мы — приедем, бесплатно всё установим и настроим.',\n },\n {\n isActive: false,\n Icon: MessageQuestion,\n title: `Что произойдёт через ${duration}${NBSP}${pluralizeDays(duration)} тест-драйва`,\n description: \n \n Когда тестовый период закончится, оборудование перейдёт к вам в собственность{textByLeasingDuration}.\n \n Изменить условия\n ,\n },\n {\n isActive: false,\n Icon: CloseBox,\n title: 'Как работает возврат',\n description: \n \n За 3 дня до окончания тестового периода вам придёт смс с напоминанием.\n Вернуть оборудование можно в течение 14 дней после завершения тест-драйва через Почту России.\n \n \n Подробные условия\n \n ,\n },\n );\n\n return items;\n }, [changeOptionHandler, purchaseOption, testDrive]);\n\n return guideItems;\n};\n","import orderBy from 'lodash/orderBy';\n\nimport { IEquipmentTestDrive } from '@r1-frontend/api-domru/full-buy/v1/equipment/dto/EquipmentTestDrive.dto';\n\nimport format from '@r1-frontend/ui-react/components/costs/Cost/format';\nimport { IOptionVariant } from '@r1-frontend/ui-react/components/OptionList';\nimport { ICustomOptions } from '@r1-frontend/ui-react/components/OptionList/CustomOptionList';\nimport { RubleSymbol } from '@r1-frontend/ui-react/tokens/symbols';\nimport { getPluralize } from '@r1-frontend/shared/helpers/pluralize';\nimport { dayPluralize } from '@r1-frontend/shared/helpers/pluralize/predifined';\nimport { EPriceTypes } from '@r1-frontend/shared/types/EPriceTypes';\n\nimport { EPriceOperationTypes } from '~/src/entities/price';\nimport type { PriceOptionProps } from '~/src/features/work-in-home-ab/types';\n\ntype TTestDriveOption = (ICustomOptions & { description: string }) | undefined\n\nconst day = getPluralize(dayPluralize);\n\nexport const getTestDriveOptions = (equipmentTestDrive: IEquipmentTestDrive | undefined, priceOptions: PriceOptionProps[]): TTestDriveOption => {\n if (!equipmentTestDrive) {\n return;\n }\n\n const { duration, priceDuring, pricesAfter } = equipmentTestDrive;\n\n const variants: IOptionVariant[] = orderBy(pricesAfter, ['type', 'duration'], ['desc', 'desc'])\n .map(variant => {\n const { id, type, duration: variantDuration, value } = variant;\n\n const isLeasing = type === EPriceTypes.Leasing;\n\n const indexOfUniqueTestDriveVariant = priceOptions.findIndex(option => option.id === id);\n\n if (indexOfUniqueTestDriveVariant < 0) {\n priceOptions.push({\n id,\n label: isLeasing ? `Рассрочка на ${variantDuration} мес.` : 'Полная стоимость',\n operType: variantDuration > 0 ? EPriceOperationTypes.Leasing : EPriceOperationTypes.Possess,\n price: value,\n type,\n value: variantDuration,\n });\n }\n\n return {\n id: variantDuration,\n label: isLeasing ? `Рассрочка на ${variantDuration} мес.` : 'Полная стоимость',\n value,\n valueStr: format(value, isLeasing ? { monthly: true } : undefined),\n };\n });\n\n return {\n id: EPriceOperationTypes.TestDrive,\n value: `${priceDuring} ${RubleSymbol} на ${duration} ${day(duration)}`,\n description: `Тестируйте оборудование ${duration} ${day(duration)}. Условия покупки оборудования после окончания тест-драйва:`,\n variants,\n };\n};\n","import { IEquipment } from '@r1-frontend/api-domru/full-buy/v1/equipment/dto/Equipment.dto';\n\nimport Button from '@r1-frontend/ui-react/components/buttons/button';\nimport { Guide } from '@r1-frontend/ui-react/components/Guide';\nimport { H3 } from '@r1-frontend/ui-react/components/typography/heading';\nimport { Paragraph4 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport TextWrapper from '@r1-frontend/ui-react/components/typography/TextWrapper';\nimport { FullWidthListContainer, IndentContainer, ListContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nimport { Content, Drawer, Footer, HeaderImage } from '~/src/components/Drawer';\nimport { setIsShowDetails } from '~/src/features/work-in-home-ab/components/Description/components/TestDrive/context/actions';\nimport { useContextDispatch, useContextSelector } from '~/src/features/work-in-home-ab/components/Description/components/TestDrive/context/hooks';\nimport { useTestDriveGuide } from '~/src/features/work-in-home-ab/components/Description/components/TestDrive/hooks/useTestDriveGuide';\n\nimport { getDetailsByEquipmentCategory } from '../helpers';\n\nexport interface IPurchaseOption {\n price: number,\n value: number,\n}\n\ninterface IProps {\n equipment: IEquipment,\n onOrder: () => void,\n purchaseOption?: IPurchaseOption,\n}\n\nconst TestDriveDetails = ({ equipment, onOrder, purchaseOption }: IProps): JSX.Element => {\n const dispatch = useContextDispatch();\n\n const { isShowDetails } = useContextSelector(state => state);\n\n const { title, category, testDrive } = equipment;\n\n const { image, description } = getDetailsByEquipmentCategory({ title, categoryName: category?.name });\n\n const guide = useTestDriveGuide({ testDrive, purchaseOption });\n\n const onClose = () => {\n dispatch(setIsShowDetails(false));\n };\n\n return (\n \n \n \n \n \n\n \n \n \n

Условия тест-драйва

\n {description}\n
\n\n \n \n \n
\n
\n
\n\n
\n \n\n \n
\n
\n );\n};\n\nexport default TestDriveDetails;\n","import { EShopCategory } from '@r1-frontend/api-domru/api-content/v1/shop/items/requestDto';\nimport { IEquipment } from '@r1-frontend/api-domru/full-buy/v1/equipment/dto/Equipment.dto';\nimport { IEquipmentCategory } from '@r1-frontend/api-domru/full-buy/v1/equipment/dto/EquipmentCategory.dto';\n\nimport { NBSP } from '@r1-frontend/ui-react/tokens/symbols';\n\ninterface IParams {\n title: IEquipment['title'],\n categoryName?: IEquipmentCategory['name'],\n}\n\nexport const getDetailsByEquipmentCategory = ({ title, categoryName = '' }: IParams) => {\n switch (categoryName) {\n case EShopCategory.Decoders:\n return {\n image: {\n url: require('~/static/images/equipment/test-drive/movix.png'),\n urlWebp: require('~/static/images/equipment/test-drive/movix.webp'),\n alt: 'Изображение пульта приставки Movix',\n },\n description: `Возьмите ТВ-приставку ${title} в${NBSP}тест-драйв, чтобы оценить все её${NBSP}возможности.`,\n };\n case EShopCategory.YandexStation:\n case EShopCategory.YandexStationLite:\n return {\n image: {\n url: require('~/static/images/equipment/test-drive/yandex-station.png'),\n urlWebp: require('~/static/images/equipment/test-drive/yandex-station.webp'),\n alt: 'Изображение Яндекс.Станции',\n },\n description: `Возьмите умную колонку ${title} в${NBSP}тест-драйв, чтобы оценить все её${NBSP}возможности.`,\n };\n case EShopCategory.Routers:\n default:\n return {\n image: {\n url: require('~/static/images/equipment/test-drive/router.png'),\n urlWebp: require('~/static/images/equipment/test-drive/router.webp'),\n alt: 'Изображение роутера',\n },\n description: `Возьмите роутер ${title} в${NBSP}тест-драйв, чтобы оценить все его${NBSP}возможности.`,\n };\n }\n};\n","import { batch } from 'react-redux';\n\nimport { IEquipment } from '@r1-frontend/api-domru/full-buy/v1/equipment/dto/Equipment.dto';\n\nimport { SelectPurchaseOptionPopup } from '~/src/components/SelectPurchaseOptionPopup';\nimport { TConfirmParams } from '~/src/components/SelectPurchaseOptionPopup/types';\nimport { setIsShowDetails, setIsShowOptionSelect } from '~/src/features/work-in-home-ab/components/Description/components/TestDrive/context/actions';\nimport { useContextDispatch, useContextSelector } from '~/src/features/work-in-home-ab/components/Description/components/TestDrive/context/hooks';\n\nimport TestDriveBanner from './components/Banner';\nimport TestDriveDetails, { IPurchaseOption } from './components/Details';\nimport { getBannerData } from './helpers';\n\nexport interface IProps {\n equipment: IEquipment,\n onChangeOption: (optionId: string | number, variantId: string | number) => void,\n onOrder: () => void,\n\n purchaseOption?: IPurchaseOption,\n}\n\nconst TestDriveWrapper = ({ equipment, onChangeOption, onOrder, purchaseOption }: IProps): JSX.Element | null => {\n const dispatch = useContextDispatch();\n\n const { isShowOptionSelect } = useContextSelector(state => state);\n\n const { category, testDrive } = equipment;\n\n if (!testDrive) {\n return null;\n }\n\n const bannerData = getBannerData(testDrive, category);\n\n const onShowDetails = () => {\n dispatch(setIsShowDetails(true));\n };\n\n const onHideSelect = () => {\n batch(() => {\n dispatch(setIsShowOptionSelect(false));\n dispatch(setIsShowDetails(true));\n });\n };\n\n const onConfirmSelect = ({ payOption: { optionId, variantId } }: TConfirmParams) => {\n onChangeOption(optionId, variantId);\n onHideSelect();\n };\n\n return (\n <>\n \n \n \n \n );\n};\n\nexport default TestDriveWrapper;\n","import TestDriveContextContainer from './context';\nimport TestDriveWrapper, { IProps } from './TestDriveWrapper';\n\nconst TestDrive = (props: IProps): JSX.Element => {\n return (\n \n \n \n );\n};\n\nexport default TestDrive;\n","/* eslint-disable complexity */\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { batch, shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useRouter } from 'next/router';\n\nimport { doRequest } from '@r1-frontend/do-request';\nimport { getConnectPrice, IGetConnectPriceResponseDto } from '@r1-frontend/api-domru/api-request/v1/get-connect-price';\nimport { condition, ICreditCondition } from '@r1-frontend/api-domru/payments/v1/credits/condition';\n\nimport { dataLayerPush } from '@r1-frontend/analytics/dataLayerPush';\n\nimport { btnTypes } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport OptionList, { TOption } from '@r1-frontend/ui-react/components/OptionList';\nimport CustomOptionList from '@r1-frontend/ui-react/components/OptionList/CustomOptionList';\nimport { FullWidthListContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { EVENTS } from '@r1-frontend/shared/constants/analytics';\nimport { EPriceTypes } from '@r1-frontend/shared/types/EPriceTypes';\n\nimport { fullBuyEquipAnalyticsBase } from '~/src/analytics';\nimport { USER_LOGIN_ROUTE } from '~/src/constants/routes';\nimport { getPriceOptions } from '~/src/entities/equipment';\nimport { convertShopPrices, EPriceOperationTypes } from '~/src/entities/price';\nimport LkPromotionalPopup from '~/src/features/specialOffersContainer/containers/LkPromotionalPopup';\nimport SpecOfferDetails from '~/src/features/specialOffersContainer/containers/SpecOfferDetails';\nimport { isNewDetailsDesign } from '~/src/features/specialOffersContainer/helpers';\nimport { setIsPopupOpened, setPopupState } from '~/src/features/specialOffersContainer/store/actions';\nimport { loadOffer, updateOffer } from '~/src/features/specialOffersContainer/store/actions/thunk';\nimport { selectOffer } from '~/src/features/specialOffersContainer/store/selectors';\nimport { IProps } from '~/src/features/specialOffersContainer/types';\nimport Credit from '~/src/features/work-in-home-ab/components/Description/components/Credit';\nimport { isCreditAbnEnabled } from '~/src/features/work-in-home-ab/components/Description/components/Credit/constants/abnVariants';\nimport Detail from '~/src/features/work-in-home-ab/components/Description/components/Detail';\nimport TestDrive from '~/src/features/work-in-home-ab/components/Description/components/TestDrive';\nimport { getTestDriveOptions } from '~/src/features/work-in-home-ab/components/Description/components/TestDrive/helpers';\nimport type { IDescription, PriceOptionProps } from '~/src/features/work-in-home-ab/types';\nimport FeedbackForm from '~/src/features/yandex-landing/FeedbackForm';\nimport { sortFunctionWithRequestIdOnTop } from '~/src/helpers/functions';\nimport { usePrepareQueryData } from '~/src/helpers/hooks/usePrepareQueryData';\nimport { useRouterChange } from '~/src/helpers/hooks/useRouterChange';\nimport type { TState } from '~/src/store';\n\nimport { setSelectedCreditCondition } from './components/Credit/context/actions';\nimport { useContextDispatch } from './components/Credit/context/hooks';\nimport { getSelectedCreditCondition } from './components/Credit/helpers';\nimport { checkAvailableDeliveryByPost, getPayOptions, getProductNeedsParams, ISelectedElement } from './functions';\n\nimport * as ST from './styled';\n\nconst INSTALLATION_VARIANT = 'installation';\n\nconst Description = ({ item, orderHandler, isEngineerDeliveryAvailable }: IDescription) => {\n const Router = useRouter();\n\n const dispatch = useDispatch();\n const contextDispatch = useContextDispatch();\n\n const {\n auth: { isAuth, clientProducts },\n city,\n isPopupOpened,\n popupOffer,\n } = useSelector((state: TState) => ({\n auth: state.auth,\n city: state.city.currentCity,\n isPopupOpened: state.specOffers.isPopupOpened,\n popupOffer: selectOffer(state),\n }), shallowEqual);\n\n const { services } = clientProducts || {};\n\n const [referrerPath, setReferrerPath] = useState('');\n const [selectedOption, setSelectedOption] = useState(undefined);\n const [isAvailablePost, setIsAvailablePost] = useState(false);\n const [creditConditions, setCreditConditions] = useState([]);\n const [selectedPayOption, setSelectedPayOption] = useState({\n optionId: 'sale',\n variantId: '',\n });\n\n const [isLoadingCallbackButton] = useRouterChange({\n only: [USER_LOGIN_ROUTE, '/full-buy-equip'],\n });\n\n const { withOption, duration: queryDuration, testDrive } = usePrepareQueryData();\n\n const priceOptions = useMemo(() => {\n const basePrices = getPriceOptions(\n convertShopPrices(item),\n null,\n false,\n (a, b) => sortFunctionWithRequestIdOnTop(a, b),\n );\n\n const fullPriceOption = basePrices.find(option => option.operType === EPriceOperationTypes.Possess);\n\n if (isCreditAbnEnabled() && item.isLoanAvailable && creditConditions && creditConditions.length > 0) {\n const creditOptions = creditConditions?.map(condition => ({\n id: `credit_${condition.duration}`,\n value: condition.duration,\n label: `Рассрочка на ${condition.duration} мес.`,\n price: condition.pay,\n type: EPriceTypes.Leasing,\n operType: EPriceOperationTypes.Leasing,\n }));\n\n return [...creditOptions, fullPriceOption];\n }\n\n return basePrices;\n }, [item, creditConditions]);\n\n const payOptions = useMemo(() => getPayOptions(priceOptions), [priceOptions]);\n\n const testDriveOptions = useMemo(() => getTestDriveOptions(item.testDrive, priceOptions), [item.testDrive, priceOptions]);\n\n useEffect(() => {\n if (priceOptions) {\n const queryOption = Number(withOption);\n const priceOption = priceOptions.find(option => option.value === Number(queryDuration)) ??\n priceOptions[queryOption < priceOptions.length ? queryOption : 0];\n\n setSelectedOption(priceOption);\n\n if (Number(testDrive) && testDriveOptions) {\n setSelectedPayOption({\n optionId: testDriveOptions.id,\n variantId: priceOption.value,\n });\n } else if (payOptions) {\n setSelectedPayOption({\n optionId: priceOption.operType,\n variantId: priceOption.value,\n });\n }\n }\n }, [priceOptions, payOptions, testDriveOptions, testDrive, withOption, queryDuration]);\n\n useEffect(() => {\n if (window) {\n setReferrerPath(`?referrer=${location.pathname}&forceRedirect=true`);\n }\n }, []);\n\n useEffect(() => {\n (async() => {\n if (!isCreditAbnEnabled() || !item.prices.possess || item.prices.possess > 20000 || !item.isLoanAvailable) {\n return;\n }\n const response = await doRequest.payments(\n condition(item.prices.possess),\n );\n if (response.isSuccess) {\n setCreditConditions(response.payload);\n }\n })();\n }, [item.prices.possess]);\n\n useEffect(() => {\n (async() => {\n const productNeedsParams = getProductNeedsParams(Number(item.restrictions[0]?.productId));\n\n const resp = await doRequest.apiRequest(\n getConnectPrice({\n ...productNeedsParams,\n int100: 0,\n install: 2,\n }),\n );\n\n if (resp.isSuccess) {\n const { leftovers, showForDelivery, checkProductId } = item;\n\n const _isAvailablePost = checkAvailableDeliveryByPost({\n services,\n neededProductId: checkProductId || 0,\n leftovers: leftovers || 0,\n showForDelivery: !!showForDelivery,\n });\n setIsAvailablePost(_isAvailablePost);\n }\n })();\n }, [isAvailablePost, item, services]);\n\n const onRequestHandle = useCallback(() => {\n if (item && selectedOption) {\n const { requestId } = selectedOption;\n\n orderHandler(\n item,\n selectedOption,\n INSTALLATION_VARIANT,\n Number(selectedPayOption.optionId === EPriceOperationTypes.TestDrive),\n requestId,\n );\n }\n }, [orderHandler, item, selectedOption, selectedPayOption]);\n\n const setLabel = (variantId: string | number) => {\n return fullBuyEquipAnalyticsBase.buildDataLayerLabel({\n equipmentTitle: item.title,\n category: item.category?.parentName || item.category?.name || '', // the parentName is used as an actual category name when it's not empty (e.g. for yandex-stanciya)\n leasing: selectedOption?.value || 0,\n cost: selectedOption?.price,\n deliveryType: variantId === INSTALLATION_VARIANT ? 'serviceEngineerDelivery' : 'russianPost',\n testDrive: Number(testDrive),\n });\n };\n\n const onClickPayOption = (optionId: string | number, variantId: string | number) => {\n setSelectedPayOption({\n optionId: optionId,\n variantId: variantId,\n });\n\n const priceOption = priceOptions.find(el => Number(el.value) === Number(variantId));\n const selectedCreditCondition = getSelectedCreditCondition(creditConditions, variantId);\n if (selectedCreditCondition) {\n contextDispatch(setSelectedCreditCondition(selectedCreditCondition));\n }\n setSelectedOption(priceOption);\n };\n\n const onClickHandler = useCallback(() => {\n if (isAuth) {\n onRequestHandle();\n } else {\n dataLayerPush({\n event: EVENTS.UAevent,\n category: 'authorization',\n action: 'clicked login btn on _user_login page',\n });\n Router.push(USER_LOGIN_ROUTE + referrerPath);\n }\n }, [isAuth, onRequestHandle, referrerPath, Router]);\n\n const onClickPromoLabel = useCallback(\n (id: string | number) => {\n const index = priceOptions.findIndex(el => Number(el.value) === Number(id));\n\n if (~index) {\n const { requestId } = priceOptions[index];\n requestId && dispatch(loadOffer(requestId));\n }\n },\n [priceOptions, dispatch],\n );\n\n const onCloseSpecOffer = useCallback(\n () => {\n batch(() => {\n dispatch(setPopupState('none'));\n dispatch(setIsPopupOpened(false));\n });\n },\n [dispatch],\n );\n\n const selectedTestDriveOption = useMemo(\n () => {\n if (!testDriveOptions) {\n return undefined;\n }\n\n if (selectedPayOption.optionId !== EPriceOperationTypes.TestDrive) {\n const [{ id }] = testDriveOptions.variants;\n return priceOptions.find(el => Number(el.value) === Number(id));\n }\n\n return selectedOption;\n },\n [testDriveOptions, selectedOption, selectedPayOption, priceOptions],\n );\n\n const onClickTestDriveOrder = useCallback(\n () => {\n if (!item || !selectedTestDriveOption) {\n return;\n }\n\n /*\n * @todo Передавать аргументы обьектом, чтобы не добавлять комментарии/лишние переменные для понимания\n * */\n orderHandler(\n item,\n selectedTestDriveOption,\n INSTALLATION_VARIANT,\n 1, // testDrive\n selectedTestDriveOption.requestId,\n );\n },\n [item, orderHandler, selectedTestDriveOption],\n );\n\n const isNewOfferDetails = useMemo(\n () => popupOffer?.isShowNewDetail && isNewDetailsDesign(),\n [popupOffer?.isShowNewDetail],\n );\n\n const promoPopupProps: IProps<'onActivate'> = {\n isPopupOpen: isPopupOpened,\n offer: popupOffer,\n callbackMap: {\n onActivate: () => ({\n callback: async() => {\n dispatch(updateOffer());\n },\n }),\n onEquipment: (offer) => ({\n on: () => offer.navigation?.type === 'equipment',\n loader: 'local',\n callback: async() => {\n onRequestHandle();\n onCloseSpecOffer();\n },\n }),\n },\n onClose: onCloseSpecOffer,\n };\n\n return (\n <>\n \n \n\n {creditConditions.length > 0 && (\n \n \n \n )}\n\n {testDriveOptions && (\n \n \n \n )}\n\n \n {payOptions && (\n \n \n Варианты покупки\n \n \n {testDriveOptions && (\n \n )}\n \n )}\n\n {(!isAuth || !isEngineerDeliveryAvailable && !isAvailablePost) && (\n \n )}\n\n {((isAuth && (isEngineerDeliveryAvailable || isAvailablePost)) || !isAuth) && (\n \n )}\n \n \n\n {isNewOfferDetails\n ? \n : \n }\n \n );\n};\n\nexport default Description;\n","import { LazyLoadImage } from 'react-lazy-load-image-component';\nimport styled from 'styled-components';\n\nimport { Label } from '@r1-frontend/ui-react/components/label';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport NukaCarousel from '@r1-frontend/ui-react/components/NukaCarousel';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nexport const FullPreviewWrapper = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: fit-content;\n`;\n\nexport const ImageContainer = styled.div`\n position: relative;\n width: 100%;\n height: fit-content;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n display: flex;\n flex-direction: row;\n justify-content: center;\n }\n`;\n\nexport const Image = styled(LazyLoadImage)`\n position: relative;\n width: 75%;\n max-width: 480px;\n height: fit-content;\n height: auto;\n margin: 10px auto;\n`;\n\nexport const FullPreview = styled(LazyLoadImage)`\n transition: opacity 0.3s ease;\n width: 61%;\n margin: 38px auto;\n\n @media (max-width: ${wideBreakpoints.sDesktop}) {\n width: 61%;\n margin: 32px auto;\n }\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n width: 64%;\n margin: 16px auto;\n }\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n width: 67%;\n min-width: 480px;\n margin: 15px auto;\n }\n`;\n\nexport const LabelsContainer = styled.div`\n position: absolute;\n gap: 8px;\n top: -12px;\n left: 0;\n z-index: 1;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n left: 16px;\n top: -16px;\n }\n`;\n\nexport const StyledLabel = styled(Label)`\n padding: 4px 8px;\n`;\n\nexport const FullPreviewContainer = styled.div`\n position: relative;\n width: 100%;\n height: fit-content;\n margin-bottom: 77px;\n\n .slider .slider-control-bottomcenter {\n position: relative !important;\n bottom: 0px !important;;\n }\n`;\n\nexport const StyledNukaCarousel = styled(NukaCarousel)`\n padding: 4px 8px;\n height: 100%;\n`;\n\nexport const CaruselContainer = styled.div`\n margin-bottom: -110px;\n height: 112px;\n width: max-content;\n gap: 8px;\n`;\n\nexport const ContainerPreview = styled.div`\n height: 52px;\n width: 78px;\n`;\n\nexport const Preview = styled.div<{ url: string, active?: boolean }>`\n background: no-repeat center / cover url(\"${p => p.url}\") ${COLORS.BgMain};\n border: 1px solid ${p => p.active ? COLORS.GRAY_DARK : COLORS.GRAY_LIGHT};\n border-radius: 4px;\n height: 52px;\n width: 78px;\n cursor: pointer;\n`;\n","import React, { useEffect, useRef, useState } from 'react';\n\nimport { IEquipmentLabel } from '@r1-frontend/api-domru/full-buy/v1/equipment/dto/EquipmentLabel.dto';\n\nimport { useMatchMedia } from '@r1-frontend/shared/hooks/useMatchMedia';\n\nimport SliderControls from './SliderControls';\n\nimport * as ST from './styled';\n\nexport interface ISlider {\n images?: string[],\n title?: string,\n labels?: IEquipmentLabel[],\n}\n\nexport interface IControlsCallback {\n goToSlide: (index: number) => void,\n currentSlide: number,\n}\n\nenum EMediaWidth {\n mobile = '(max-width: 767px)',\n}\n\nconst Slider = ({ images, title, labels }: ISlider) => {\n const isMobile = useMatchMedia(EMediaWidth.mobile);\n const swiperRef = useRef(null);\n const [props, setProps] = useState({});\n\n useEffect(() => {\n if (isMobile) {\n setProps({});\n } else {\n setProps({\n renderBottomCenterControls: ({ goToSlide, currentSlide }: IControlsCallback) => {\n return \n {\n goToSlide(index);\n }}\n />\n ;\n },\n });\n }\n }, [isMobile, images]);\n\n return (\n \n {labels && \n {\n labels.map(label => {\n return (\n {label.title}\n );\n })\n }\n }\n {images &&\n \n 1}\n disableEdgeSwiping={true}\n innerRef={swiperRef}\n withoutDots={!isMobile}\n wrapAround={true}\n dragging={images.length > 1}\n {...props}\n >\n {\n images.map((url) => (\n {isMobile\n ? \n : \n }\n ))\n }\n \n \n }\n \n );\n};\n\nexport default Slider;\n","import React from 'react';\n\nimport * as ST from './styled';\n\nexport interface ISliderControls {\n images: string[],\n activeImageIndex: number,\n onClick: (index: number) => void,\n}\n\nconst SliderControls = ({ images, activeImageIndex, onClick }: ISliderControls) => {\n\n return (<>\n {images.map((url, index) => (\n \n onClick(index)}\n active={activeImageIndex === index}\n />\n \n ))}\n );\n};\n\nexport default SliderControls;\n","import styled, { css } from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport WideContainer from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nexport const StyledWideContainer = styled(WideContainer)`\n @media (max-width: ${wideBreakpoints.laptop}) {\n width: 100%\n }\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n padding: 0 32px;\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n padding: 0 16px;\n }\n`;\n\nexport const ComponentWrapper = styled.div<{ isAuth: boolean }>`\n width: 100%;\n position: relative;\n padding-top: ${(props) => props.isAuth ? '232px' : '222px'};\n display: flex;\n flex-direction: column;\n margin: -150px 0 -50px;\n\n @media (max-width: ${wideBreakpoints.sDesktop}) {\n padding-top: ${(props) => props.isAuth ? '232px' : '231px'};\n }\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n padding-top: ${(props) => props.isAuth ? '301px' : '195px'};\n }\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n padding-top: ${(props) => props.isAuth ? '301px' : '195px'};\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n padding-top: 155px;\n }\n\n @media (max-width: 650px) {\n padding-top: 215px;\n }\n`;\n\nexport const ProductCategory = styled.span`\n color: ${COLORS.TextInfo};\n ${FONTS.XS};\n`;\n\nexport const ProductTitle = styled.h1`\n color: ${COLORS.TextPrimary};\n ${FONTS.H2};\n`;\n\nexport const ComponentGrid = styled.div`\n position: relative;\n display: grid;\n width: 100%;\n height: fit-content;\n grid-template-areas: 'slider description'\n 'characteristics description';\n grid-template-rows: auto 1fr;\n grid-template-columns: 61% auto;\n margin-top: 32px;\n\n @media (max-width: ${wideBreakpoints.sDesktop}) {\n grid-template-columns: 60% auto;\n }\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n grid-template-columns: 52% auto;\n }\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n grid-template-areas:\n 'slider'\n 'description'\n 'characteristics';\n grid-template-rows: auto;\n grid-template-columns: auto;\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n margin: 24px -16px 0;\n width: calc(100% + 32px);\n padding: 0 0 40px;\n }\n`;\n\nexport const SliderWrapper = styled.div`\n position: relative;\n grid-area: slider;\n width: 100%;\n height: 100%;\n margin-bottom: 60px;\n\n @media (max-width: ${wideBreakpoints.sDesktop}) {\n margin-bottom: 48px;\n }\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n margin-bottom: 28px;\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n margin-bottom: 24px;\n }\n`;\n\nexport const CharacteristicsWrapper = styled.div`\n position: relative;\n grid-area: characteristics;\n width: 100%;\n height: 100%;\n z-index: 2;\n overflow: auto;\n`;\n\nexport const DescriptionWrapper = styled.div`\n position: relative;\n grid-area: description;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n`;\n\nexport const RoutersContainer = styled.div<{ isBlock?: boolean }>`\n position: relative;\n width: 100%;\n\n ${({ isBlock }) => isBlock && css`\n display: block;\n `}\n\n @media (max-width: ${wideBreakpoints.sDesktop}) {\n padding: 0;\n }\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n padding: 0 44px;\n }\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n padding: 0 16px;\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n padding: 0 16px;\n }\n`;\n","import React, { useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useRouter } from 'next/router';\n\nimport { useMatchMedia } from '@r1-frontend/shared/hooks/useMatchMedia';\nimport { EProductsId } from '@r1-frontend/shared/types/EProductsId';\n\nimport { SegmentedBannerGrid } from '~/src/components/SegmentedBanner/SegmentedBannerGrid';\nimport Routers from '~/src/features/equipment/pageBlocks/Routers';\nimport { getOrderHandler } from '~/src/features/equipment/shop/helpers';\nimport type { TState } from '~/src/store';\n\nimport Characteristics from './components/Characteristics';\nimport Description from './components/Description';\nimport CreditContextContainer from './components/Description/components/Credit/context';\nimport Slider from './components/Slider';\nimport type { IContentPage } from './types';\n\nimport { BlockTitle, BlockWrapper } from '~/src/features/equipment/styled';\nimport * as ST from './styled';\n\nconst sMobile = '(max-width: 320px)';\n\nconst ContentPage = ({ item, category, productId, products }: IContentPage): JSX.Element => {\n const { isAuth, services } = useSelector((state: TState) => ({\n isAuth: state.auth.isAuth,\n services: state.auth.clientProducts?.services || [],\n }));\n\n const isSMobile = useMatchMedia(sMobile);\n\n const { image = '', images = [], bodyFull, category: itemCategory, props, labels, title, urls } = item;\n\n const imagesList = useMemo(() => {\n const list = [image, ...images];\n return list.length > 0 ? list : undefined;\n }, [image, images]);\n\n const router = useRouter();\n\n const isDecoder = useMemo(() => !!(router.pathname.indexOf('domru-tv') > -1), [router]);\n\n const isEngineerDeliveryAvailable: boolean = useMemo(() => {\n if (isDecoder) {\n return services.some(service => service.productId === EProductsId.tv);\n }\n return services.some(service => service.productId === EProductsId.internet || service.productId === EProductsId.tv);\n }, [isDecoder, services]);\n\n const baseRoute = router.pathname.replace('/[itemId]', '').replace('/_site/[city]', '');\n\n return (\n <>\n \n \n {itemCategory && {itemCategory.title}}\n {title && {title}}\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n {!!products?.length && (\n \n {'Оборудование для любых задач'}\n \n \n \n \n )}\n \n \n \n );\n};\n\nexport default ContentPage;\n","import Script from 'next/script';\n\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { EProductsId } from '@r1-frontend/shared/types/EProductsId';\n\nimport ErrorPage from '~/pages/_error';\nimport { getPriceOptions } from '~/src/entities/equipment';\nimport { convertShopPrices } from '~/src/entities/price';\nimport Layout from '~/src/features/_layout';\nimport { TEquipmentDetailsProps } from '~/src/features/equipment/shop/helpers';\nimport ContentPage from '~/src/features/work-in-home-ab/ContentPage';\nimport { capitalize } from '~/src/helpers/string';\n\ntype TProps = TEquipmentDetailsProps & {\n productId: EProductsId,\n}\n\nconst ItemDetailPage = ({\n errorCode,\n\n city,\n companyName,\n category,\n basePath,\n productId,\n\n equipment,\n products,\n}: TProps) => {\n if (!equipment) {\n return ;\n }\n\n const { callCenter, cityIn } = city;\n\n const {\n alias,\n globalId,\n image,\n prices: {\n leasing: [{ duration: leasingDuration = 0 } = {}],\n },\n props,\n title,\n } = equipment;\n\n const colorValue = props.find(item => item.name === 'colour')?.value;\n const color = Array.isArray(colorValue) ? colorValue[0] : (colorValue ?? '');\n const priceOptions = getPriceOptions(convertShopPrices(equipment));\n const purchaseMethodText = leasingDuration > 0 ? `в рассрочку на ${leasingDuration} месяцев` : 'купить';\n\n const linkedData = JSON.stringify({\n '@context': 'http://schema.org/',\n '@type': 'Product',\n brand: 'Дом.ру',\n name: title,\n description: `${capitalize(color)} ${title} ${purchaseMethodText} на официальном сайте ${companyName} в ${cityIn}: оформите заявку на получение оборудования на сайте или по ☎ ${callCenter}`.trim(),\n image,\n offers: {\n '@type': 'Offer',\n url: `${basePath}/${alias || globalId}`,\n availability: 'http://schema.org/InStock',\n priceCurrency: 'RUB',\n price: `${priceOptions[0].price}`,\n priceValidUntil: '2020-12-31',\n },\n });\n\n return (\n <>\n \n \n \n \n \n );\n};\n\nexport default ItemDetailPage;\n","import { NextPageContext } from 'next';\n\nimport { equipment } from '@r1-frontend/api-domru/full-buy/v1/equipment';\nimport { IEquipment } from '@r1-frontend/api-domru/full-buy/v1/equipment/dto/Equipment.dto';\nimport { ICharacteristics } from '@r1-frontend/api-domru/full-buy/v1/equipment/dto/EquipmentProp.dto';\nimport { ICurrentCity } from '@r1-frontend/entities/City/models/ICurrentCity';\n\nimport { EShopCategory, IShopItem } from '~/src/api/content/shop/getShopItems';\nimport { calculateEquipmentProps } from '~/src/api/content/shop/helpers';\nimport { initialProps } from '~/src/helpers/basePageFunc';\nimport getRequester from '~/src/helpers/getRequester';\nimport { nonPermanentRedirect } from '~/src/helpers/url';\nimport { selectCompanyName } from '~/src/store/selectors/city';\n\ninterface IParams {\n category: EShopCategory,\n basePath: string,\n}\n\ninterface ICommonProps {\n city: ICurrentCity,\n companyName: string,\n category: EShopCategory,\n basePath: string,\n}\n\nexport type TEquipmentDetailsProps = ICommonProps & ({\n products: IEquipment[],\n equipment: IEquipment,\n\n errorCode?: never,\n} | {\n errorCode: number,\n\n products?: never,\n equipment?: never,\n});\n\nexport const getItemDetailsInitialProps = async(options: NextPageContext, params: IParams): Promise => {\n await initialProps(options);\n\n const { category, basePath } = params;\n const { store, query: { itemId }, res, req } = options;\n const alias = Array.isArray(itemId) ? itemId[0] : (itemId ?? '');\n\n const state = store.getState();\n const { city: { currentCity: city, provider: { providerId } } } = state;\n const companyName = selectCompanyName(state);\n\n const commonProps: ICommonProps = { city, companyName, category, basePath };\n\n const doRequest = getRequester(req);\n\n const response = await doRequest.fullBuy(\n equipment({\n providerId,\n categories: [category],\n }),\n );\n\n if (response.isSuccess) {\n const equipmentData = response.payload.find(product => product.alias === alias);\n\n if (!equipmentData) {\n nonPermanentRedirect({ res, location: basePath });\n\n return {\n errorCode: 404,\n ...commonProps,\n };\n } else {\n const { props, category: equipmentCategory } = equipmentData;\n\n const calculatedProps = calculateEquipmentProps({ props, category: equipmentCategory } as IShopItem)\n .reduce((acc: ICharacteristics[], prop) => {\n const value = Array.isArray(prop.value) ? prop.value[0] : (prop.value ?? '');\n\n if (value) {\n acc.push({ ...prop, value, asIs: prop.asIs ?? 0 });\n }\n\n return acc;\n }, []);\n\n return {\n products: response.payload,\n equipment: { ...equipmentData, props: calculatedProps },\n ...commonProps,\n };\n }\n } else {\n nonPermanentRedirect({ res, location: basePath });\n\n return {\n errorCode: Number(response.error.code) || 404,\n ...commonProps,\n };\n }\n};\n","import Router from 'next/router';\nimport { stringify } from 'qs';\n\nimport { EProductsId } from '@r1-frontend/shared/types/EProductsId';\n\nimport { fullBuyEquipAnalyticsBase } from '~/src/analytics';\n\ninterface Installment {\n value: number,\n label: string,\n price: number,\n}\n\ninterface IItem {\n globalId: number,\n title: string,\n alias: string,\n}\n\ntype TOrderHandlerParameters = {\n item: IItem,\n installment: Installment,\n deliveryId: string,\n testDrive: number,\n category: string,\n productId: EProductsId,\n requestId?: number,\n}\n\n/**\n * Роутинг на страницу оформления доствки почтой или через инженера\n */\n const orderHandler = ({\n item,\n installment,\n deliveryId,\n testDrive,\n category,\n productId,\n requestId,\n }: TOrderHandlerParameters) => {\n const { globalId: ensId, title, alias } = item;\n const { value: duration = 0, price } = installment;\n\n const byEngeneer = `/full-buy-equip?${stringify({\n ensId,\n productId,\n duration,\n category,\n deliveryId,\n testDrive,\n requestId,\n })}`;\n\n const byPost = `/lk/purchase/${category}/${alias}?duration=${duration}`;\n\n const route = deliveryId === 'post' ? byPost : byEngeneer;\n\n Router.push(route);\n\n fullBuyEquipAnalyticsBase.clickOrderDetails({\n equipmentTitle: title,\n category,\n leasing: duration,\n cost: price,\n testDrive,\n });\n};\n\n/**\n * Возвращает обработчик с заданной категорией продукта и типом\n * @param category тип продукта из EShopCategory (приставка, роутер, яндекс-станция)\n * @param productId условные типы продукта EProductsId (интернет, тв)\n * @returns функция\n */\n export const getOrderHandler =\n (category: string, productId: EProductsId) =>\n (\n item: IItem,\n installment: Installment,\n deliveryId: string,\n testDrive: number,\n requestId?: number,\n ) => {\n orderHandler({\n item,\n installment,\n deliveryId,\n testDrive,\n category,\n productId,\n requestId,\n });\n };\n","import styled, { css } from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nexport const BlockWrapper = styled.div<{ isSmallCards?: boolean }>`\n width: 100%;\n flex-direction: column;\n margin-bottom: 64px;\n\n ${p => p.isSmallCards && css`\n padding-left: 16px;\n `}\n`;\n\nexport const BlockTitle = styled.h2<{ withCarousel?: boolean }>`\n ${FONTS.H2};\n margin-bottom: ${({ withCarousel }) => withCarousel ? '8px' : '32px'};\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n ${FONTS.H3};\n margin-bottom: ${({ withCarousel }) => withCarousel ? 0 : '24px'};\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n margin-bottom: ${({ withCarousel }) => withCarousel ? '8px' : '32px'};\n }\n\n @media (max-width: ${wideBreakpoints.sMobile}) {\n max-width: 95%;\n }\n`;\n","import { IAction } from '~/src/store';\n\nimport { ESpecOfferActionTypes } from './constants';\n\nexport const setErrorMessage = (message: string | null): IAction => ({\n type: ESpecOfferActionTypes.setErrorMessage,\n payload: message,\n});\n","import { IAction } from '~/src/store';\n\nimport { ESpecOfferActionTypes } from './constants';\n\nexport const setIsLoadingOffers = (state: boolean): IAction => ({\n type: ESpecOfferActionTypes.setIsLoading,\n payload: state,\n});\n","import { IAction } from '~/src/store';\n\nimport { ESpecOfferActionTypes } from './constants';\n\nexport const setIsPopupOpened = (state: boolean): IAction => ({\n type: ESpecOfferActionTypes.setIsPopupOpened,\n payload: state,\n});\n","import { TSpecOffer } from '~/src/features/specialOffersContainer/types';\nimport { IAction } from '~/src/store';\n\nimport { ESpecOfferActionTypes } from './constants';\n\nexport const setOffers = (state: TSpecOffer[]): IAction => ({\n type: ESpecOfferActionTypes.setOffers,\n payload: state,\n});\n","import { IAction } from '~/src/store';\n\nimport { ESpecOfferActionTypes } from './constants';\n\nexport const setOfferTransaction = (state: string | null): IAction => ({\n type: ESpecOfferActionTypes.setOfferTransaction,\n payload: state,\n});\n","import { TPopupState } from '~/src/features/specialOffersContainer/types';\nimport { IAction } from '~/src/store';\n\nimport { ESpecOfferActionTypes } from './constants';\n\nexport const setPopupState = (state: TPopupState): IAction => ({\n type: ESpecOfferActionTypes.setPopupState,\n payload: state,\n});\n","import { ISpecOffer } from '@r1-frontend/api-domru/spec-offer/v1/spec-offers';\n\nimport { IAction } from '~/src/store';\n\nimport { ESpecOfferActionTypes } from './constants';\n\nexport const setSelectedOfferId = (state: ISpecOffer['requestId']): IAction => ({\n type: ESpecOfferActionTypes.setSelectedOfferId,\n payload: state,\n});\n","import { useRouter } from 'next/router';\n\n/**\n * @deprecated использовать useRouter\n */\nexport const usePrepareQueryData = (): Record => {\n const { query } = useRouter();\n const _query: Record = {};\n\n for (const key in query) {\n const _value = query[key];\n _query[key] = _value ? (typeof _value === 'string' ? _value : _value[0]) : '';\n }\n\n return _query;\n};\n","import { useEffect, useState } from 'react';\nimport { useRouter } from 'next/router';\n\nexport type TRouterChangeOptions = Partial<{\n onStart: (next: string) => void,\n onComplete: () => void,\n\n /**\n * Фильтрует страницы, при переходе на которые\n * будет изменятся параметр `isLoading`. По умолчанию\n * `isLoading` изменяется для всех страниц\n */\n only: string[],\n}>\n\nexport const useRouterChange = (options: TRouterChangeOptions = {}): [boolean, string] => {\n const router = useRouter();\n const [isLoading, setIsLoading] = useState(false);\n const [nextUrl, setNextUrl] = useState('');\n\n useEffect(() => {\n const { onStart, onComplete, only } = options;\n\n const onShow = (navUrl: string) => {\n setIsLoading(\n !only?.length || only.some(url => navUrl.startsWith(url)),\n );\n setNextUrl(navUrl);\n onStart && onStart(navUrl);\n };\n\n const onHide = () => {\n setIsLoading(false);\n onComplete && onComplete();\n };\n\n router.events.on('routeChangeStart', onShow);\n router.events.on('routeChangeComplete', onHide);\n\n return () => {\n router.events.off('routeChangeStart', onShow);\n router.events.off('routeChangeComplete', onHide);\n };\n\n }, [router.events]);\n\n return [isLoading, nextUrl];\n};\n","import { IRequest } from '@r1-frontend/shared/types/IRequest';\n\nexport type { ICreditCondition } from './dto/ResponseDto';\n/**\n * Получение условий по кредиту\n * https://master.payments.sandbox.d2c.r-one.io/docs#/Credits/CreditsController_getCondition\n * @returns ICreditCondition[]\n */\nexport const condition = (loanSum: number): IRequest => ({\n uri: '/api/v1/credits/condition',\n method: 'GET',\n withProvider: true,\n withAuth: true,\n queryParams: {\n loanSum,\n },\n});\n","import { RefObject, useCallback, useState } from 'react';\n\nimport { useIsomorphicLayoutEffect } from '@r1-frontend/shared/hooks/useIsomorphicLayoutEffect';\n\ninterface IResult {\n height: number | undefined,\n width: number | undefined,\n}\n\nexport const useResizeObserver = (\n ref: RefObject,\n callback?: (entry: DOMRectReadOnly) => void,\n): IResult => {\n const [width, setWidth] = useState();\n const [height, setHeight] = useState();\n\n const handleResize = useCallback(\n (entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n\n const entry = entries[0];\n setWidth(entry.contentRect.width);\n setHeight(entry.contentRect.height);\n\n if (callback) {\n callback(entry.contentRect);\n }\n },\n [callback],\n );\n\n useIsomorphicLayoutEffect(() => {\n if (!ref.current) {\n return;\n }\n\n let RO: ResizeObserver | null = new ResizeObserver((entries) => window.requestAnimationFrame(() => handleResize(entries)));\n RO.observe(ref.current);\n\n return () => {\n RO?.disconnect();\n RO = null;\n };\n }, [ref]);\n\n return { width, height };\n};\n","import React, { ReactNode, useState } from 'react';\nimport styled from 'styled-components';\n\nimport { SingleArrowDown, SingleArrowUp } from '@r1-frontend/ui-react/components/svg/arrows';\nimport { TSvgProps } from '@r1-frontend/ui-react/components/svg/createSvg';\nimport Svg from '@r1-frontend/ui-react/components/svg/Svg';\nimport ControlElement from '@r1-frontend/ui-react/components/typography/controlElement';\nimport { H4 } from '@r1-frontend/ui-react/components/typography/heading';\nimport { Paragraph4 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport TextWrapper from '@r1-frontend/ui-react/components/typography/TextWrapper';\nimport WebpImage from '@r1-frontend/ui-react/components/WebpImage';\nimport { BlockContainer, IndentContainer, RounderContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\ninterface IImageProps {\n url: string,\n urlWebp?: string,\n}\n\ntype TGiudeImage = {\n image: IImageProps,\n Icon?: never,\n} | {\n image?: never,\n Icon: (props: TSvgProps) => JSX.Element,\n}\n\nexport type TGuideItem = TGiudeImage & {\n isActive: boolean,\n title: string,\n\n description?: string | JSX.Element | ReactNode,\n info?: string | JSX.Element | ReactNode,\n}\nconst checkActiveInfo = (isActive: TGuideItem['isActive'], info: TGuideItem['info']) => !!(isActive && info);\n\nconst GuideItem = ({\n image,\n Icon,\n title,\n description,\n info,\n isActive,\n ...props\n}: TGuideItem) =>{\n const [open, setOpen] = useState(() => checkActiveInfo(isActive, info));\n\n const onToggle = () => {\n setOpen(!open);\n };\n\n return (\n <>\n
\n \n {Icon && }\n {image && (\n \n Иконка элемента списка\n \n )}\n \n \n \n

{title}

\n {description && (\n typeof description === 'string'\n ? \n : description\n )}\n
\n {info && (\n \n {open ? 'Скрыть подробности' : 'Подробнее'}\n \n )}\n
\n
\n\n {open && (\n \n \n \n {info}\n \n \n \n )}\n \n );\n};\n\nexport const StyledGuideItem = styled(GuideItem).attrs(props => ({ className: props.isActive ? 'active' : '' }))`\n margin-bottom: 16px;\n flex-wrap: nowrap;\n position: relative;\n\n ${Paragraph4} {\n margin-bottom: 8px;\n }\n\n ${RounderContainer} {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n padding: 8px;\n justify-content: center;\n align-items: center;\n border-radius: 12px;\n margin-right: 24px;\n background: ${props=> props.isActive ? COLORS.ButtonPrimary : COLORS.BgSurface};\n\n ${Svg} {\n #contour,\n #guts {\n stroke: ${props=> props.isActive ? COLORS.TextWhite : COLORS.TextPrimary};\n }\n }\n\n img,\n picture {\n width: 24px;\n height: 24px;\n }\n\n .active ~ & {\n ${Svg} {\n #contour,\n #guts {\n stroke: ${COLORS.GRAY_DARK}\n }\n }\n background: ${COLORS.BgLight};\n &::after {\n background-color: ${COLORS.BgLight}\n }\n }\n\n &::after {\n content: \"\";\n position: absolute;\n bottom: -9px;\n height: calc(100% - 37px);\n width: 2px;\n background-color: ${props=> props.isActive ? COLORS.ButtonPrimary : COLORS.BgSurface};\n }\n }\n \n &:last-child {\n ${RounderContainer} {\n &::after{\n content: \"\";\n height: 0;\n }\n }\n }\n`;\n","import { StyledGuideItem, TGuideItem } from '@r1-frontend/ui-react/components/Guide/GuideItem';\n\nexport interface IGuide {\n items: TGuideItem[],\n}\n\nexport const Guide = ({ items }: IGuide) => {\n return (\n <>\n {items.map(item => )}\n \n );\n};\n","import { createSvg } from '../createSvg';\n\nconst ClipboardTick = (\n {\n strokeWidth = 1.5,\n },\n): JSX.Element => {\n return \n \n \n \n ;\n};\n\nexport default createSvg(\n ClipboardTick,\n 'clipboard-tick',\n);\n","import { createSvg } from '../createSvg';\n\nconst CloseBox = ({ strokeWidth = 1.5 }): JSX.Element => {\n return <>\n \n \n \n \n \n \n ;\n};\n\nexport default createSvg(\n CloseBox,\n 'close-box',\n);\n","import { createSvg } from '@r1-frontend/ui-react/components/svg/createSvg';\n\nconst Coin = (\n {\n strokeWidth = 1.5,\n },\n): JSX.Element => {\n return (\n <>\n \n \n \n \n \n \n );\n};\n\nexport default createSvg(\n Coin,\n 'coin',\n);\n","import { createSvg } from '@r1-frontend/ui-react/components/svg/createSvg';\n\nconst Timer = (\n {\n strokeWidth = 1.5,\n },\n): JSX.Element => {\n return (\n \n \n \n \n \n );\n};\n\nexport default createSvg(\n Timer,\n 'timer',\n);\n","import { ReactNode } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { TSvgProps } from '@r1-frontend/ui-react/components/svg/createSvg';\nimport Svg from '@r1-frontend/ui-react/components/svg/Svg';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\nimport { useMatchMedia } from '@r1-frontend/shared/hooks/useMatchMedia';\n\nexport const controlElementTypes = ['small', 'medium', 'large'] as const;\n\nexport type TControlElementType = typeof controlElementTypes[number];\n\nexport type TControlElementProps = {\n type?: TControlElementType,\n $customFont?: FONTS.MediumS | FONTS.MediumXS | FONTS.MediumXXS,\n Icon?: (props: TSvgProps) => JSX.Element,\n children?: string | ReactNode | JSX.Element,\n onClick?: () => void,\n}\n\nconst ControlElement = (\n {\n children,\n Icon,\n\n ...rest\n }: Pick,\n): JSX.Element => {\n const isMobile = useMatchMedia(`(max-width: ${wideBreakpoints.mobile})`);\n return (\n \n {Boolean(children) && children}\n {Icon && ()}\n \n );\n};\n\nconst getFontByType = (type: TControlElementType): { mobile: FONTS, desktop: FONTS } => {\n switch (type) {\n case 'large': {\n return { mobile: FONTS.MediumXS, desktop: FONTS.MediumS };\n }\n case 'medium': {\n return { mobile: FONTS.MediumXXS, desktop: FONTS.MediumXS };\n }\n case 'small': {\n return { mobile: FONTS.MediumXXS, desktop: FONTS.MediumXXS };\n }\n }\n};\n\nconst StyledControlElement = styled(ControlElement)`\n display: inline-flex;\n\n justify-content: flex-start;\n align-items: center;\n flex-direction: row;\n gap: 5px;\n\n color: ${COLORS.Link};\n cursor: pointer;\n\n ${Svg} {\n #guts, #contour {\n stroke: ${COLORS.Link};\n }\n }\n\n ${({ type = 'large', $customFont }) => {\n if ($customFont) {\n return css`${$customFont};`;\n }\n\n if (!$customFont && type) {\n const { mobile, desktop } = getFontByType(type);\n\n return css`\n ${mobile};\n\n @media (min-width: ${wideBreakpoints.mobile}) {\n ${desktop};\n }\n `;\n }\n }}\n`;\n\nexport default StyledControlElement;\n","import ControlElement from './ControlElement';\n\nexport default ControlElement;\n","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/webp;base64,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\"","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.13/frontend/_next/static/images/banner-b10ac11b234914692de10413044f333d.png\";","module.exports = \"data:image/webp;base64,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\"","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.13/frontend/_next/static/images/movix-417fa4fff76292e8764031ee6aa89df3.png\";","module.exports = \"data:image/webp;base64,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\"","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.13/frontend/_next/static/images/router-dcec14c67f4500b3640d6bbdbc503b63.png\";","module.exports = \"data:image/webp;base64,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\"","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.13/frontend/_next/static/images/yandex-station-325817c2d8ef40cc3522d60cbc7b328d.png\";","module.exports = \"data:image/webp;base64,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\""],"names":["CustomSwiper","styled","NukaCarousel","EMediaWidth","defaultVisibleSlides","desktop","sDesktop","laptop","mobile","children","desktopSlideWidth","mobileSlideWidth","visibleSlides","props","useState","hideArrows","setHideArrows","hideDots","setHideDots","slideWidth","setSlideWidth","isDesktop","useMatchMedia","isSDesktop","isLaptop","isMobile","useEffect","length","withoutArrows","withoutDots","NoSsrWrapper","routers","cellSpacing","isDecoder","baseRoute","onClientSide","setOnClientSide","isClientSide","getRoutersCards","map","router","DeviceGridItem","item","isCharacteristics","id","AdaptiveNukaCarousel","slidesToScroll","data-test","AliasContent","FONTS","wideBreakpoints","COLORS","ContentWrapper","ContentLabel","StyledTabs","Tabs","specifications","urls","description","activeTabLabel","setActiveTabLabel","instructionUrl","filter","type","url","prepareSpecifications","spec","title","ST","activeTab","onSwitchTab","Tab","label","dangerouslySetInnerHTML","__html","value","name","a","href","target","rel","image","onBannerClick","className","FullWidthListContainer","$size","$direction","$wrap","$justifyContent","$alignItems","onClick","IndentContainer","$desktop","$mobile","TextWrapper","$lastIndent","H4","$withIndent","$smaller","Paragraph5","NonStaticContainer","$united","$position","$left","$bottom","$right","WebpImage","urlWebp","img","src","alt","BorderRadius","ECrediteActions","setIsShowDetails","isShow","SetIsShowDetails","payload","setIsShowOptionSelect","SetIsShowOptionSelect","setSelectedCreditCondition","creditCondition","SetSelectedCreditCondition","initialState","isShowDetails","isShowOptionSelect","selectedCreditCondition","reducer","state","action","CreditContext","createContext","debugMode","dispatch","useThunkReducer","console","table","Provider","useContextDispatch","useContext","useContextSelector","selector","createSvg","strokeWidth","g","path","d","strokeLinecap","strokeLinejoin","ScrollbarCustomStyles","view","paddingRight","paddingBottom","trackVertical","top","bottom","thumbVertical","height","onOrder","guide","useMemo","isActive","Icon","Coin","ListContainer","Paragraph4","$color","ButtonGroup","Button","size","bType","format","pay","monthly","duration","PersonalCard","NBSP","MDASH","Timer","ClipboardTick","Truck","ReceiptItem","useCreditGuide","Drawer","isOpen","onClose","CustomScrollbar","customStyles","H3","br","Guide","items","Footer","PopupCustomStyles","popup","default","margin","maxHeight","SelectCreditOptionPopup","creditConditions","onConfirmSelect","selectedOption","setSelectedOption","selectedPayOptionId","setSelectedPayOptionId","creditOptions","orderBy","cost","valueStr","getCreditOptions","currentCreditCondition","find","DefaultPopup","justify","align","color","OptionList","options","selectedOptionId","selectedVariantId","onClickOption","optionId","payOption","EPriceOperationTypes","variantId","getSelectedCreditCondition","Number","isNaN","minCreditByDuration","sort","b","onChangeOption","dataLayerLabel","getBannerData","ControlElement","require","onHideSelect","CreditBanner","fullBuyEquipAnalyticsBase","CreditDetails","CreditWrapper","DetailContainer","marginBottom","Container","CharContainer","RowContainer","DetailLabel","DetailInfo","showAllLines","linesNumber","maxWidth","css","DetailInfoHover","DotsComponent","ShowLessButton","RowIconsContainer","IconInfoText","imgUrl","city","characteristics","descShowAllLines","setDescShowAllLines","charShowAllLines","setCharShowAllLines","hoverIndex","setHoverIndex","characteristicsToShow","charArrToShow","line","asIs","undefined","ref","useRef","useResizeObserver","width","isOverflowing","el","current","curOverf","style","overflow","clientWidth","scrollWidth","clientHeight","scrollHeight","divHeight","offsetHeight","hasFreeDeliveryAndInstallation","maxChars","prev","character","index","onMouseEnter","truncate","onMouseLeave","ETestDriveActions","TestDriveContext","strokeMiterlimit","pluralizeDays","getPluralize","dayPluralize","pluralizeMonths","monthPluralize","equipmentTextByCategory","EShopCategory","day","equipment","purchaseOption","category","testDrive","getDetailsByEquipmentCategory","categoryName","changeOptionHandler","useCallback","batch","guideItems","howItWorksText","includingSubscriptionsText","price","push","Crown","info","div","formattedPrice","leasingDuration","textByLeasingDuration","Like","MessageQuestion","CloseBox","Link","passHref","as","useTestDriveGuide","Content","HeaderImage","bannerData","priceDuring","TestDriveBanner","TestDriveDetails","SelectPurchaseOptionPopup","isOnlyTestDrive","TestDriveContextContainer","TestDriveWrapper","INSTALLATION_VARIANT","orderHandler","isEngineerDeliveryAvailable","Router","useRouter","useDispatch","contextDispatch","useSelector","auth","currentCity","isPopupOpened","specOffers","popupOffer","selectOffer","shallowEqual","isAuth","clientProducts","services","referrerPath","setReferrerPath","isAvailablePost","setIsAvailablePost","setCreditConditions","selectedPayOption","setSelectedPayOption","isLoadingCallbackButton","useRouterChange","only","USER_LOGIN_ROUTE","usePrepareQueryData","withOption","priceOptions","basePrices","getPriceOptions","convertShopPrices","sortFunctionWithRequestIdOnTop","fullPriceOption","option","operType","isCreditAbnEnabled","isLoanAvailable","condition","EPriceTypes","payOptions","getPayOptions","testDriveOptions","equipmentTestDrive","pricesAfter","variants","variant","isLeasing","findIndex","variantDuration","RubleSymbol","getTestDriveOptions","queryOption","priceOption","queryDuration","window","location","pathname","response","prices","possess","doRequest","isSuccess","productNeedsParams","leftovers","showForDelivery","checkProductId","_isAvailablePost","getProductNeedsParams","restrictions","productId","getConnectPrice","int100","install","checkAvailableDeliveryByPost","neededProductId","onRequestHandle","requestId","setLabel","equipmentTitle","parentName","leasing","deliveryType","onClickPayOption","onClickHandler","dataLayerPush","event","EVENTS","onClickPromoLabel","loadOffer","onCloseSpecOffer","setPopupState","setIsPopupOpened","selectedTestDriveOption","onClickTestDriveOrder","isNewOfferDetails","isShowNewDetail","isNewDetailsDesign","promoPopupProps","isPopupOpen","offer","callbackMap","onActivate","callback","updateOffer","onEquipment","on","navigation","loader","Detail","body","Credit","TestDrive","onClickOptionChip","reverseVariants","CustomOptionList","FeedbackForm","TitleComponent","subtitle","FormWrapper","InputWrapperComponent","InputNameComponent","InputPhoneComponent","ButtonWrapperComponent","ButtonComponent","buttonTitle","namePlaceholder","buttonType","btnTypes","agreeAboveButton","text","withTopSpace","isLoading","SpecOfferDetails","LkPromotionalPopup","FullPreviewWrapper","ImageContainer","Image","LazyLoadImage","FullPreview","LabelsContainer","StyledLabel","Label","FullPreviewContainer","StyledNukaCarousel","CaruselContainer","ContainerPreview","Preview","p","active","images","activeImageIndex","labels","swiperRef","setProps","renderBottomCenterControls","goToSlide","currentSlide","SliderControls","bgColor","textColor","colorText","autoplay","disableEdgeSwiping","innerRef","wrapAround","dragging","StyledWideContainer","WideContainer","ComponentWrapper","ProductCategory","ProductTitle","ComponentGrid","SliderWrapper","CharacteristicsWrapper","DescriptionWrapper","RoutersContainer","isBlock","products","isSMobile","bodyFull","imagesList","list","indexOf","some","service","EProductsId","replace","itemCategory","Slider","CreditContextContainer","Description","getOrderHandler","Characteristics","SegmentedBannerGrid","alias","BlockTitle","withCarousel","BlockWrapper","isSmallCards","Routers","errorCode","companyName","basePath","ErrorPage","statusCode","callCenter","cityIn","globalId","colorValue","Array","isArray","purchaseMethodText","linkedData","JSON","stringify","brand","capitalize","trim","offers","availability","priceCurrency","priceValidUntil","Script","Layout","toLocaleLowerCase","withMenu","withChat","withFooter","ContentPage","getItemDetailsInitialProps","params","store","itemId","res","req","providerId","commonProps","equipmentData","equipmentCategory","calculatedProps","initialProps","query","getState","provider","selectCompanyName","getRequester","fullBuy","categories","product","nonPermanentRedirect","calculateEquipmentProps","reduce","acc","prop","error","code","installment","deliveryId","byEngeneer","ensId","byPost","route","setErrorMessage","message","ESpecOfferActionTypes","setIsLoadingOffers","setOffers","setOfferTransaction","setSelectedOfferId","_query","key","_value","setIsLoading","nextUrl","setNextUrl","onStart","onComplete","onShow","navUrl","startsWith","onHide","events","off","loanSum","uri","method","withProvider","withAuth","queryParams","setWidth","setHeight","handleResize","entries","entry","contentRect","useIsomorphicLayoutEffect","RO","ResizeObserver","requestAnimationFrame","observe","disconnect","StyledGuideItem","checkActiveInfo","open","setOpen","RounderContainer","$radius","SingleArrowUp","SingleArrowDown","BlockContainer","indent","rounder","attrs","Svg","rest","strong","Boolean","$customFont","getFontByType","module","exports"],"sourceRoot":""}