{"version":3,"file":"static/chunks/3262-f0d4764b85433fb5.js","mappings":"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","sources":["webpack://_N_E/./src/entities/speed-bonus/content/containers/ResultPopup/Footer/Error/index.tsx","webpack://_N_E/./src/entities/speed-bonus/content/containers/ResultPopup/Footer/Error/Activation.tsx","webpack://_N_E/./src/entities/speed-bonus/content/containers/ResultPopup/Footer/Error/Request.tsx","webpack://_N_E/./src/entities/speed-bonus/content/containers/ResultPopup/Footer/SuccessActivation.tsx","webpack://_N_E/./src/entities/speed-bonus/content/containers/ResultPopup/Footer/SuccessRequest.tsx","webpack://_N_E/./src/entities/speed-bonus/content/containers/ResultPopup/Footer/index.tsx","webpack://_N_E/./src/entities/speed-bonus/content/containers/ResultPopup/index.tsx","webpack://_N_E/./src/entities/speed-bonus/context/selectors/isShowSummary.ts","webpack://_N_E/./src/entities/speed-bonus/context/selectors/routerSelectionButtonText.ts","webpack://_N_E/./src/entities/speed-bonus/context/selectors/selectedRouter.ts","webpack://_N_E/./src/entities/speed-bonus/context/helpers.ts","webpack://_N_E/./src/entities/speed-bonus/context/selectors/selectRouters.tsx","webpack://_N_E/./src/entities/speed-bonus/context/selectors/selectSummaryInfo.tsx","webpack://_N_E/./src/entities/speed-bonus/content/containers/SummaryInfo/index.tsx","webpack://_N_E/./src/entities/speed-bonus/content/pages/routers/components/HowToChooseRouter.tsx","webpack://_N_E/./src/entities/speed-bonus/content/pages/routers/components/AddRouterPopup/components/RouterCharacteristics.tsx","webpack://_N_E/./src/entities/speed-bonus/content/pages/routers/components/AddRouterPopup/components/RouterImages/styled.ts","webpack://_N_E/./src/entities/speed-bonus/content/pages/routers/components/AddRouterPopup/components/RouterImages/index.tsx","webpack://_N_E/./src/entities/speed-bonus/content/pages/routers/components/AddRouterPopup/index.tsx","webpack://_N_E/./src/entities/speed-bonus/helpers.ts","webpack://_N_E/./src/entities/speed-bonus/content/pages/routers/containers/RoutersList.tsx","webpack://_N_E/./src/entities/speed-bonus/content/pages/routers/index.tsx","webpack://_N_E/./src/entities/speed-bonus/content/pages/time-slots/components/HowToPrepare.tsx","webpack://_N_E/./src/entities/speed-bonus/content/pages/time-slots/containers/TimeSlots.tsx","webpack://_N_E/./src/entities/speed-bonus/content/pages/time-slots/index.tsx","webpack://_N_E/./src/entities/speed-bonus/content/index.tsx","webpack://_N_E/./src/entities/speed-bonus/LayoutSwitcher.tsx","webpack://_N_E/./src/entities/speed-bonus/index.tsx","webpack://_N_E/../../packages/api-domru/src/full-buy/v1/sale-agent/time-slots/index.ts","webpack://_N_E/../../packages/ui-react/src/components/List/UnorderedList.tsx"],"sourcesContent":["import { useDispatch } from 'react-redux';\n\nimport Button from '@r1-frontend/ui-react/components/buttons/button';\nimport { ButtonGroup } from '@r1-frontend/ui-react/components/buttons/buttonGroup/ButtonGroup';\n\nimport { flushState } from '~/src/entities/speed-bonus/context/actions';\nimport { useContextDispatch, useContextSelector } from '~/src/entities/speed-bonus/context/hooks';\nimport { openChat } from '~/src/store/actions/chat';\n\nconst ErrorResult = ({ onRetry }: { onRetry: () => void }): JSX.Element => {\n const dispatch = useDispatch();\n const ctxDispatch = useContextDispatch();\n\n const isLoading = useContextSelector(state => state.isLoading);\n\n const openChatHandler = () => {\n ctxDispatch(flushState());\n dispatch(openChat());\n };\n\n return (\n \n \n Попробовать еще раз\n \n \n Написать в чат\n \n \n );\n};\n\nexport default ErrorResult;\n","import { activate } from '~/src/entities/speed-bonus/context/actions/thunk';\nimport { useContextDispatch } from '~/src/entities/speed-bonus/context/hooks';\n\nimport ErrorResult from './index';\n\nconst ErrorActivation = (): JSX.Element => {\n const ctxDispatch = useContextDispatch();\n\n const tryAgain = () => {\n ctxDispatch(activate());\n };\n\n return (\n \n );\n};\n\nexport default ErrorActivation;\n","import { confirmTimeSlot } from '~/src/entities/speed-bonus/context/actions/thunk';\nimport { useContextDispatch } from '~/src/entities/speed-bonus/context/hooks';\n\nimport ErrorResult from './index';\n\nconst ErrorRequest = (): JSX.Element => {\n const ctxDispatch = useContextDispatch();\n\n const tryAgain = () => {\n ctxDispatch(confirmTimeSlot());\n };\n\n return (\n \n );\n};\n\nexport default ErrorRequest;\n","import Button from '@r1-frontend/ui-react/components/buttons/button';\nimport { ButtonGroup } from '@r1-frontend/ui-react/components/buttons/buttonGroup/ButtonGroup';\n\nimport { flushState } from '~/src/entities/speed-bonus/context/actions';\nimport { useContextDispatch, useContextSelector } from '~/src/entities/speed-bonus/context/hooks';\n\nconst SuccessActivation = (): JSX.Element => {\n const ctxDispatch = useContextDispatch();\n const businessLogic = useContextSelector(state => state.businessLogic);\n\n const onClose = () => {\n businessLogic?.afterSuccessConnection && businessLogic.afterSuccessConnection();\n ctxDispatch(flushState());\n };\n\n return (\n \n \n \n );\n};\n\nexport default SuccessActivation;\n","import { useRouter } from 'next/router';\n\nimport Button from '@r1-frontend/ui-react/components/buttons/button';\nimport { ButtonGroup } from '@r1-frontend/ui-react/components/buttons/buttonGroup/ButtonGroup';\n\nimport { flushState } from '~/src/entities/speed-bonus/context/actions';\nimport { useContextDispatch, useContextSelector } from '~/src/entities/speed-bonus/context/hooks';\n\nconst SuccessRequest = (): JSX.Element => {\n const ctxDispatch = useContextDispatch();\n const businessLogic = useContextSelector(state => state.businessLogic);\n const { push } = useRouter();\n\n const onClose = () => {\n businessLogic?.afterSuccessConnection && businessLogic.afterSuccessConnection();\n ctxDispatch(flushState());\n };\n\n const redirectHandler = () => {\n push('/lk/orders');\n onClose();\n };\n\n return (\n \n \n \n \n );\n};\n\nexport default SuccessRequest;\n","import { memo } from 'react';\n\nimport { TActionResultEntity, TActionResultStatus } from '~/src/entities/speed-bonus/context/actions/setResult';\n\nimport ErrorActivation from './Error/Activation';\nimport ErrorRequest from './Error/Request';\nimport SuccessActivation from './SuccessActivation';\nimport SuccessRequest from './SuccessRequest';\n\ntype TResultFooter = {\n [E in Exclude]: {\n [S in Exclude]: JSX.Element;\n };\n}\n\nconst FooterByEntityAndStatus: TResultFooter = {\n 'activation': {\n 'success': ,\n 'error': ,\n },\n 'request': {\n 'success': ,\n 'error': ,\n },\n};\n\ninterface IProps {\n entity: TActionResultEntity,\n status: TActionResultStatus,\n}\n\nconst ResultFooter = ({\n entity,\n status,\n}: IProps): JSX.Element | null => (entity === 'none' || status === 'none')\n ? null\n : FooterByEntityAndStatus[entity][status];\n\nexport default memo(ResultFooter);\n","import PopupResult from '@r1-frontend/ui-react/components/popups/popupResult';\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 } from '@r1-frontend/ui-react/experimental/containers';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nimport { flushState } from '~/src/entities/speed-bonus/context/actions';\nimport { useContextDispatch, useContextSelector } from '~/src/entities/speed-bonus/context/hooks';\n\nimport ResultFooter from './Footer';\n\nconst ResultPopup = (): JSX.Element | null => {\n const ctxDispatch = useContextDispatch();\n\n const { entity, status, header, message, target } = useContextSelector(state => state.result);\n\n if (target !== 'popup' || status === 'none') {\n return null;\n }\n\n const onClose = () => {\n ctxDispatch(flushState());\n };\n\n return (\n \n \n \n

\n {message && (\n \n )}\n \n\n \n \n \n );\n};\n\nexport default ResultPopup;\n","import { createSelector } from 'reselect';\n\nimport { Plus100Status } from '~/src/entities/speed-bonus/context/constants';\nimport { TInitialState } from '~/src/entities/speed-bonus/context/reducer';\n\nexport const isShowSummary = createSelector(\n [\n (state: TInitialState) => state.connectionCost,\n (state: TInitialState) => state.tariff,\n (state: TInitialState) => state.routers,\n ],\n (cost, tariff, routers) => {\n if (typeof cost === 'undefined') {\n return false;\n }\n\n const isSelectedRouter = routers.some(router => router.quantity);\n\n return tariff?.speedBonusStatus === Plus100Status || isSelectedRouter;\n },\n);\n","import { createSelector } from 'reselect';\n\nimport { Plus100Status } from '~/src/entities/speed-bonus/context/constants';\nimport { TInitialState } from '~/src/entities/speed-bonus/context/reducer';\nimport { selectedRouter, selectRouters } from '~/src/entities/speed-bonus/context/selectors';\n\nexport const routerSelectionButtonText = createSelector(\n [\n (state: TInitialState) => state.tariff,\n (state: TInitialState) => selectRouters(state),\n (state: TInitialState) => selectedRouter(state),\n ],\n (tariff, routers, router) => {\n if (tariff?.speedBonusStatus === Plus100Status) {\n return (!routers.length || typeof router !== 'undefined')\n ? 'Оформить заявку'\n : 'Оформить заявку без роутера';\n }\n\n return typeof router !== 'undefined'\n ? 'Подключить бонус и оформить заявку'\n : 'Подключить бонус без роутера';\n },\n);\n","import { createSelector } from 'reselect';\n\nimport { TInitialState } from '~/src/entities/speed-bonus/context/reducer';\n\nexport const selectedRouter = createSelector(\n [\n (state: TInitialState) => state.routers,\n ],\n (routers) => routers.find(router => router.quantity),\n);\n","import { IPreparedRouter } from '~/src/entities/speed-bonus/context/actions/setRouters';\n\n/**\n * Способ покупки в рассрочку (duration > 0)\n */\nexport const isInstallment = (product: IPreparedRouter) => !!product.selectedPrice?.duration;\n\n/**\n * Подсчитывает количество выбранных роутеров\n */\nconst getTotalCount = (products: IPreparedRouter[]): number => {\n return products.reduce((acc: number, curr) => acc + curr.quantity, 0);\n};\n\n/**\n * Возвращает роутеры в рассрочку\n */\nconst getProductsInInstallments = (products: IPreparedRouter[]) =>\n products?.filter(product => product.quantity > 0 && product.selectedPrice?.duration && product.selectedPrice.duration > 0);\n\n/**\n * Подсчитывает количество роутеров в рассрочку\n */\nconst getInstalmentCount = (products: IPreparedRouter[]): number => {\n const installmentItems = getProductsInInstallments(products);\n return getTotalCount(installmentItems);\n};\n\n/**\n * Достигнут лимит на покупку роутера (всего и в рассрочку)\n */\n export const getLimits = (routers: IPreparedRouter[]) => {\n const limit = { total: 1, installment: 1 };\n\n const installmentCount = getInstalmentCount(routers);\n const totalCount = getTotalCount(routers);\n\n return {\n total: totalCount >= limit.total,\n installment: installmentCount >= limit.installment,\n };\n};\n","import { createSelector } from 'reselect';\n\nimport { Label } from '@r1-frontend/ui-react/components/label';\nimport { Flash } from '@r1-frontend/ui-react/components/svg/main';\nimport { truncate } from '@r1-frontend/shared/helpers/truncate';\n\nimport { IPreparedRouter } from '~/src/entities/speed-bonus/context/actions/setRouters';\nimport { getLimits } from '~/src/entities/speed-bonus/context/helpers';\nimport { TInitialState } from '~/src/entities/speed-bonus/context/reducer';\n\nconst prepareCharacteristic = (elem: { title: string, value: string }) => {\n const maxTitle = 20;\n const maxValue = 12;\n\n return {\n ...elem,\n title: truncate(elem.title, maxTitle),\n value: truncate(elem.value, maxValue),\n Icon: Flash,\n };\n};\n\ntype TCharacteristic = ReturnType;\n\nexport type TRouter = IPreparedRouter & {\n characteristics: TCharacteristic[],\n labelElements: JSX.Element[],\n disabled: boolean,\n isInstalmentLimit: boolean,\n}\n\nexport const selectRouters = createSelector(\n [\n (state: TInitialState) => state.routers,\n ],\n (routers): TRouter[] => {\n const limits = getLimits(routers);\n\n return routers.reduce((acc, router) => {\n const isInstallmentLimit = !!(router.selectedPrice.duration && limits.installment && router.quantity);\n const characteristics = router.props.slice(0, 3).map(prepareCharacteristic);\n const labelElements = router.labels.map(label => (\n \n ));\n\n acc.push({\n ...router,\n images: [router.image, ...router.images],\n characteristics,\n labelElements,\n disabled: limits.total || isInstallmentLimit,\n isInstalmentLimit: limits.installment,\n });\n\n return acc;\n }, []);\n },\n);\n","import { createSelector } from 'reselect';\n\nimport { H4 } from '@r1-frontend/ui-react/components/typography/heading';\nimport { Paragraph4 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport { TItemTypes, TOrderSummaryComponent, TOrderSummaryItem } from '@r1-frontend/ui-react/organisms/OrderSummary/types';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { getPluralize } from '@r1-frontend/shared/helpers/pluralize';\nimport { monthPluralize } from '@r1-frontend/shared/helpers/pluralize/predifined';\n\nimport { Plus100Status } from '~/src/entities/speed-bonus/context/constants';\nimport { TInitialState } from '~/src/entities/speed-bonus/context/reducer';\n\nconst pluralizedMonth = getPluralize(monthPluralize);\n\ninterface IOrderSummary {\n title: string,\n total: number,\n items: TItemTypes[],\n hasInstallmentEquipment: boolean,\n}\n\nexport const selectSummaryInfo = createSelector(\n [\n (state: TInitialState) => state.tariff,\n (state: TInitialState) => state.routers,\n (state: TInitialState) => state.connectionCost,\n ],\n (tariff, routers, connectionCost): IOrderSummary | undefined => {\n if (typeof connectionCost === 'undefined' || !tariff) {\n return;\n }\n\n const selectedRouter = routers.reduce<{ items: TOrderSummaryItem[], cost: number }>(\n (acc, router) => {\n if (router.quantity === 0) {\n return acc;\n }\n\n acc.cost += router.selectedPrice.cost * router.quantity;\n const countStr = router.quantity > 1 ? ` (${router.quantity} шт.)` : '';\n\n acc.items.push({\n title: `${router.title}${countStr}`,\n description: router.selectedPrice.duration\n ? `Рассрочка на ${router.selectedPrice.duration} ${pluralizedMonth(router.selectedPrice.duration)}`\n : 'Полная стоимость',\n cost: router.selectedPrice.cost * router.quantity,\n isMonthly: router.selectedPrice.duration > 0,\n Component: Paragraph4,\n color: COLORS.TextPrimary,\n });\n\n return acc;\n },\n { items: [], cost: 0 },\n );\n\n let totalCost = connectionCost + selectedRouter.cost;\n\n const summaryItems: (TOrderSummaryItem | TOrderSummaryComponent)[] = [\n ...selectedRouter.items,\n {\n title: 'Выезд техника',\n cost: connectionCost,\n isMonthly: false,\n Component: Paragraph4,\n color: COLORS.TextPrimary,\n },\n ];\n\n if (tariff.speedBonusStatus === Plus100Status) {\n totalCost += tariff.price;\n\n summaryItems.unshift({\n title: tariff.title,\n cost: tariff.price,\n isMonthly: true,\n Component: Paragraph4,\n color: COLORS.TextPrimary,\n });\n }\n\n const totalItem: TOrderSummaryItem = { title: 'Итого при подключении:', cost: totalCost, Component: H4 };\n\n return {\n total: totalCost,\n title: 'Ваша заявка',\n items: [summaryItems, 'separator', { total: totalItem }],\n hasInstallmentEquipment: !!selectedRouter.cost,\n };\n },\n);\n","import BottomStickyBlock from '@r1-frontend/ui-react/components/BottomStickyBlock';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { H4 } from '@r1-frontend/ui-react/components/typography/heading';\nimport { BlockContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport BaseOrderSummary from '@r1-frontend/ui-react/organisms/OrderSummary';\nimport OrderSummaryItem from '@r1-frontend/ui-react/organisms/OrderSummary/Item';\nimport { useMatchMediaByWidth } from '@r1-frontend/shared/hooks/useMatchMedia';\n\nimport { useContextSelector } from '~/src/entities/speed-bonus/context/hooks';\nimport { isShowSummary, selectSummaryInfo } from '~/src/entities/speed-bonus/context/selectors';\n\nconst SummaryInfo = (): JSX.Element | null => {\n const isLaptop = useMatchMediaByWidth(wideBreakpoints.laptop);\n\n const { isSummaryVisible, summaryInfo } = useContextSelector(state => ({\n isSummaryVisible: isShowSummary(state),\n summaryInfo: selectSummaryInfo(state),\n }));\n\n if (!isSummaryVisible || !summaryInfo) {\n return null;\n }\n\n return (\n <>{isLaptop\n ? (\n \n )}\n OuterComponent={() => (\n \n )}\n />\n : \n \n \n }\n );\n};\n\nexport default SummaryInfo;\n","import { useState } from 'react';\n\nimport Button from '@r1-frontend/ui-react/components/buttons/button';\nimport { ButtonGroup } from '@r1-frontend/ui-react/components/buttons/buttonGroup/ButtonGroup';\nimport DefaultPopup from '@r1-frontend/ui-react/components/popups/defaultPopup';\nimport { InfoCircleFlip } from '@r1-frontend/ui-react/components/svg/main';\nimport ControlElement from '@r1-frontend/ui-react/components/typography/controlElement';\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 { IndentContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nconst HowToChooseRouter = (): JSX.Element => {\n const [isOpen, setIsOpen] = useState(false);\n\n const handleClosePopup = () => {\n setIsOpen(false);\n };\n\n const handleOpenPopup = () => {\n setIsOpen(true);\n };\n\n return (\n <>\n \n Как выбрать роутер\n \n\n \n \n \n

Как выбрать роутер?

\n \n Роутеры, которые мы продаём, отлично подойдут для любого тарифа: они быстрые, надёжные и используют технологию Wi-Fi 6.\n \n \n Главное, на что стоит обратить внимание при выборе роутера:\n
  • 1. Площадь покрытия
  • \n
  • 2. Максимальное количество устройств, которые можно одновременно подключить к роутеру
  • \n
    \n
    \n\n \n \n \n
    \n
    \n \n );\n};\n\nexport default HowToChooseRouter;\n","import { memo } from 'react';\n\nimport Characteristics from '@r1-frontend/ui-react/components/List/Characteristics';\nimport { TCharacteristicsProps } from '@r1-frontend/ui-react/components/List/Characteristics/Characteristics';\nimport ControlElement from '@r1-frontend/ui-react/components/typography/controlElement';\nimport { FullWidthListContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { usePartialList } from '@r1-frontend/shared/hooks/usePartialList';\n\ninterface IProps {\n characteristics: TCharacteristicsProps[],\n rowCount?: number,\n}\n\nconst RouterCharacteristics = ({\n characteristics = [],\n rowCount = 3,\n}: IProps): JSX.Element | null => {\n const [partialCharacteristics, isPartial, setIsPartial] = usePartialList(characteristics, rowCount);\n\n if (!characteristics.length) {\n return null;\n }\n\n return (\n \n {partialCharacteristics.map((item) => {\n return (\n \n );\n })}\n\n {(characteristics.length > rowCount) &&\n setIsPartial(!isPartial)}\n >\n {isPartial ? 'Показать больше' : 'Скрыть'}\n \n }\n \n );\n};\n\nexport default memo(RouterCharacteristics);\n","import styled from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nexport const ImageDisplay = styled.div`\n justify-content: center;\n width: 100%;\n height: 240px;\n \n img {\n height: 100%;\n width: 100%;\n object-fit: contain;\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n height: 150px;\n margin: 0 auto;\n }\n`;\n\nexport const ImageItem = styled.div<{ isSelected: boolean }>`\n justify-content: center;\n width: 54px;\n height: 54px;\n border-radius: ${BorderRadius.labelRadius};\n overflow: hidden;\n cursor: pointer;\n ${({ isSelected }) => isSelected ? `border: 2px solid ${COLORS.ButtonAccent};` : ''}\n\n img {\n height: 100%;\n }\n`;\n","import { memo, useState } from 'react';\n\nimport { FullWidthListContainer } from '@r1-frontend/ui-react/experimental/containers';\n\nimport * as ST from './styled';\n\ninterface IRouterPreview {\n images?: string[],\n}\n\nconst RouterImages = ({ images = [] }: IRouterPreview): JSX.Element | null => {\n const [selectedImageIdx, setSelectedImageIdx] = useState(0);\n\n if (!images.length) {\n return null;\n }\n\n return (\n \n \n Продукт\n \n {images.length > 1 &&\n \n {images.map((image, idx) => (\n setSelectedImageIdx(idx)}\n isSelected={selectedImageIdx === idx}\n >\n {`Картинка\n \n ))}\n \n }\n \n );\n};\n\nexport default memo(RouterImages);\n","import PurchaseOptions from '@r1-frontend/ui-react/components/costs/PurchaseOptions';\nimport { TBaseOption } from '@r1-frontend/ui-react/components/costs/PurchaseOptions/types';\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 { ScrollbarWithIndent } from '@r1-frontend/ui-react/organisms/ScrollbarWithIndent';\n\nimport { IPreparedRouter } from '~/src/entities/speed-bonus/context/actions/setRouters';\n\nimport RouterCharacteristics from './components/RouterCharacteristics';\nimport RouterImages from './components/RouterImages';\n\ninterface IProps {\n isPopupOpen: boolean,\n onClose: () => void,\n onSelect: (cost: number) => void,\n title: string,\n images: string[],\n routerProps: IPreparedRouter['props'],\n routerOptions: Record,\n}\n\nconst AddRouterPopup = ({\n isPopupOpen,\n onClose,\n onSelect,\n title,\n images,\n routerProps,\n routerOptions,\n}: IProps): JSX.Element => {\n return (\n \n \n

    {title}

    \n\n \n \n \n\n \n\n \n \n \n
    \n
    \n );\n};\n\nexport default AddRouterPopup;\n","import { TBaseOption } from '@r1-frontend/ui-react/components/costs/PurchaseOptions/types';\n\nimport { TRouter } from '~/src/entities/speed-bonus/context/selectors/selectRouters';\n\n/**\n * Возврашает список опций стоимости оборудования\n * isInstallmentDisable - дизейблит опции рассрочки\n */\nexport const getPurchaseOptions = (prices: TRouter['prices'], isInstallmentDisable: boolean) => {\n return [...prices]\n .sort((a, b) => a.duration - b.duration)\n .reduce((result: Record, value, key) => {\n result[key + 1] = {\n cost: value.cost,\n period: value.duration,\n disabled: value.duration > 0 && isInstallmentDisable,\n };\n\n return result;\n }, {});\n};\n","import { useState } from 'react';\n\nimport { TBaseOption } from '@r1-frontend/ui-react/components/costs/PurchaseOptions/types';\nimport { SingleArrowDown, SingleArrowUp } from '@r1-frontend/ui-react/components/svg/arrows';\nimport ControlElement from '@r1-frontend/ui-react/components/typography/controlElement';\nimport { FullWidthListContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport RouterCard from '@r1-frontend/ui-react/organisms/Card/Router';\nimport { usePartialList } from '@r1-frontend/shared/hooks/usePartialList';\n\nimport AddRouterPopup from '~/src/entities/speed-bonus/content/pages/routers/components/AddRouterPopup';\nimport { decrementQuantity, incrementQuantity } from '~/src/entities/speed-bonus/context/actions';\nimport { IPreparedRouter } from '~/src/entities/speed-bonus/context/actions/setRouters';\nimport { addRouter } from '~/src/entities/speed-bonus/context/actions/thunk';\nimport { useContextDispatch, useContextSelector } from '~/src/entities/speed-bonus/context/hooks';\nimport { selectRouters } from '~/src/entities/speed-bonus/context/selectors';\nimport { TRouter } from '~/src/entities/speed-bonus/context/selectors/selectRouters';\nimport { getPurchaseOptions } from '~/src/entities/speed-bonus/helpers';\nimport { useValueByBreakpoint } from '~/src/helpers/hooks/useValueByBreakpoint';\n\nconst RoutersList = (): JSX.Element => {\n const dispatch = useContextDispatch();\n\n const routers = useContextSelector(selectRouters);\n\n const cardCount = useValueByBreakpoint({\n desktop: 3,\n sDesktop: 2,\n });\n\n const [partialRouters, isPartial, setIsPartial] = usePartialList(routers, cardCount);\n\n const [isPopupOpen, setIsPopupOpen] = useState(false);\n const [currentRouter, setCurrentRouter] = useState<{ value: IPreparedRouter, options: Record }>();\n\n const openAddEquipmentPopup = (equipment: TRouter, isInstallmentDisable: boolean) => {\n setCurrentRouter({\n value: equipment,\n options: getPurchaseOptions(equipment.prices, (isInstallmentDisable && equipment.isInstalmentLimit)),\n });\n\n setIsPopupOpen(true);\n };\n\n const handleAddEquipment = (cost: number) => {\n setIsPopupOpen(false);\n if (currentRouter?.value) {\n dispatch(addRouter(currentRouter.value, cost));\n }\n };\n\n const handleIncrement = (id: number) => {\n dispatch(incrementQuantity(id));\n };\n\n const handleDecrement = (id: number) => {\n dispatch(decrementQuantity(id));\n };\n\n const handleClosePopup = () => {\n setIsPopupOpen(false);\n };\n\n const onToggleList = () => {\n if (!isPartial) {\n window.scrollTo(0, 0);\n }\n\n setIsPartial(!isPartial);\n };\n\n return (\n \n \n {partialRouters.map(router => (\n openAddEquipmentPopup(router, true)}\n onIncrement={() => handleIncrement(router.id)}\n onDecrement={() => handleDecrement(router.id)}\n onCostClick={() => openAddEquipmentPopup(router, false)}\n btnText={'Добавить'}\n />\n ))}\n \n\n {routers.length > cardCount && (\n \n {isPartial ? 'Показать все роутеры' : 'Скрыть роутеры'}\n \n )}\n\n {currentRouter && (\n \n )}\n \n );\n};\n\nexport default RoutersList;\n","import Alert from '@r1-frontend/ui-react/components/Alert';\nimport Button from '@r1-frontend/ui-react/components/buttons/button';\nimport { ButtonGroup } from '@r1-frontend/ui-react/components/buttons/buttonGroup/ButtonGroup';\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 } from '@r1-frontend/ui-react/experimental/containers';\nimport SteppableProgressBar from '@r1-frontend/ui-react/organisms/SteppableProgressBar';\n\nimport { speedBonusConnectionAnalytics } from '~/src/entities/speed-bonus/analytics';\nimport { flushState } from '~/src/entities/speed-bonus/context/actions';\nimport { activate } from '~/src/entities/speed-bonus/context/actions/thunk';\nimport { useContextDispatch, useContextSelector } from '~/src/entities/speed-bonus/context/hooks';\nimport { routerSelectionButtonText, selectedRouter, selectRouters } from '~/src/entities/speed-bonus/context/selectors';\n\nimport HowToChooseRouter from './components/HowToChooseRouter';\nimport RoutersList from './containers/RoutersList';\n\nconst RoutersPage = (): JSX.Element => {\n const dispatch = useContextDispatch();\n\n const { isLoading, router, routers, buttonText } = useContextSelector(state => ({\n isLoading: state.isLoading,\n router: selectedRouter(state),\n routers: selectRouters(state),\n buttonText: routerSelectionButtonText(state),\n }));\n\n const activateHandler = () => {\n speedBonusConnectionAnalytics.routerSelection(router);\n\n dispatch(activate());\n };\n\n const goBackHandler = () => {\n dispatch(flushState());\n };\n\n return (\n \n \n \n {routers.length\n ? <>\n \n \n Рекомендуем обновить роутер — возможно он не будет поддерживать скорость вашего тарифа с бонусом.\n Поэтому после подключения скорость интернета не изменится.\n \n \n\n \n

    Рекомендуем выбрать роутер

    \n Предложенные роутеры оптимально подходят для вашего тарифа. \n
    \n\n \n \n : \n \n Для подключения новой скорости понадобится визит инженера.\n Он заменит кабель в квартире или оборудование в подъезде. Деньги за скоростной бонус спишем, когда всё будет готово.\n \n \n }\n
    \n\n \n \n {buttonText}\n \n \n
    \n );\n};\n\nexport default RoutersPage;\n","import { useState } from 'react';\nimport styled from 'styled-components';\n\nimport { UnorderedList } from '@r1-frontend/ui-react/components/List';\nimport DefaultPopup from '@r1-frontend/ui-react/components/popups/defaultPopup';\nimport { InfoCircleFlip } from '@r1-frontend/ui-react/components/svg/main';\nimport ControlElement from '@r1-frontend/ui-react/components/typography/controlElement';\nimport { Paragraph4 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport { IndentContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nconst ListDataForPopup = [\n 'Держите под рукой свой паспорт или доверенность на того, кто будет встречать инженера вместо вас.',\n 'Вспомните логин и пароль от Госуслуг, чтобы быстро ввести их и подписать документы.',\n 'Убедитесь, что на вашей карте хватает денег для оплаты услуг.',\n];\n\nconst HowToPrepare = ({ className }: { className?: string }): JSX.Element => {\n const [isOpen, changePopupState] = useState(false);\n\n const handleClosePopup = () => {\n changePopupState(false);\n };\n\n const handleOpenPopup = () => {\n changePopupState(true);\n };\n\n return (\n <>\n \n Как подготовиться?\n \n\n \n \n \n На все работы инженеру понадобится около 60 минут.\n \n \n Как подготовиться в визиту инженера:\n \n \n {ListDataForPopup.map(item => {\n return ;\n })}\n \n \n \n \n );\n};\n\nexport default styled(HowToPrepare)`\n & > ${IndentContainer} > ${Paragraph4}:first-child {\n max-width: calc(100% - 40px);\n }\n`;\n","import { useState } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\n\nimport { doRequest } from '@r1-frontend/do-request';\nimport { saleAgentTimeSlots } from '@r1-frontend/api-domru/full-buy/v1/sale-agent/time-slots';\nimport { RequestDto } from '@r1-frontend/api-domru/full-buy/v1/sale-agent/time-slots/dto/RequestDto';\nimport { ResponseDto } from '@r1-frontend/api-domru/full-buy/v1/sale-agent/time-slots/dto/ResponseDto';\n\nimport { ESaleAgentClientName, TReturnType } from '@r1-frontend/service-engineer-visit';\nimport DateOfServiceEngineerVisitWrapper\n from '@r1-frontend/service-engineer-visit/containers/DateOfServiceEngineerVisitWrapper';\n\nimport { ActionAlert } from '@r1-frontend/ui-react/components/Alert';\nimport { Paragraph4 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport { EProductsId } from '@r1-frontend/shared/types/EProductsId';\n\nimport { speedBonusConnectionAnalytics } from '~/src/entities/speed-bonus/analytics';\nimport { setTimeSlotData, toggleIsShowConnection } from '~/src/entities/speed-bonus/context/actions';\nimport { confirmTimeSlot } from '~/src/entities/speed-bonus/context/actions/thunk';\nimport { useContextDispatch, useContextSelector } from '~/src/entities/speed-bonus/context/hooks';\nimport { TState } from '~/src/store';\nimport { openChat } from '~/src/store/actions/chat';\nimport { selectDomain } from '~/src/store/selectors/domain';\nimport selectProviderId from '~/src/store/selectors/selectProviderId';\n\nconst TimeSlots = (): JSX.Element | null => {\n const dispatch = useDispatch();\n const ctxDispatch = useContextDispatch();\n\n const { domain, providerId } = useSelector((state: TState) => ({\n domain: selectDomain(state),\n providerId: selectProviderId(state),\n }), shallowEqual);\n\n const businessLogic = useContextSelector(state => state.businessLogic);\n\n const [timeSlotsRequestResult, setTimeSlotsRequestResult] = useState({\n isFirstRequestError: false,\n isNextRequestError: false,\n isInitialized: false,\n });\n\n if (!businessLogic?.agreementId) {\n return null;\n }\n\n const openChatHandler = () => {\n ctxDispatch(toggleIsShowConnection(false));\n dispatch(openChat());\n };\n\n const getTimeSlotsHandler = async(_: number, body: RequestDto) => {\n const slots = await doRequest.fullBuy(\n saleAgentTimeSlots(providerId, body),\n );\n\n if (slots.isSuccess) {\n if (!timeSlotsRequestResult.isInitialized) {\n setTimeSlotsRequestResult(prev => ({ ...prev, isInitialized: true }));\n }\n } else if (timeSlotsRequestResult.isInitialized) {\n setTimeSlotsRequestResult(prev => ({ ...prev, isNextRequestError: true }));\n } else {\n speedBonusConnectionAnalytics.timeSlotsUnavailable();\n setTimeSlotsRequestResult(prev => ({ ...prev, isFirstRequestError: true }));\n }\n\n return slots;\n };\n\n const confirmSelectHandler = (result: TReturnType | null) => {\n if (!result) {\n return;\n }\n\n ctxDispatch(setTimeSlotData(result));\n ctxDispatch(confirmTimeSlot());\n };\n\n const confirmationAnalyticsHandler = () => {\n speedBonusConnectionAnalytics.confirmTimeSlotSelection();\n };\n\n return (\n <>\n {timeSlotsRequestResult.isFirstRequestError\n ? \n \n При получении информации о доступном времени произошла ошибка.\n Напишите нам в чат — поможем назначить время визита инженера или подождите нашего звонка.\n \n \n : <>\n {timeSlotsRequestResult.isNextRequestError && (\n \n \n При получении информации о доступном времени произошла ошибка.\n Напишите нам в чат — поможем подобрать другое время.\n \n \n )}\n \n \n }\n \n );\n};\n\nexport default TimeSlots;\n","import Alert from '@r1-frontend/ui-react/components/Alert';\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 } from '@r1-frontend/ui-react/experimental/containers';\n\nimport { useContextSelector } from '~/src/entities/speed-bonus/context/hooks';\n\nimport HowToPrepare from './components/HowToPrepare';\nimport TimeSlots from './containers/TimeSlots';\n\nconst TimeSlotsPage = (): JSX.Element => {\n const result = useContextSelector(state => state.result);\n\n return (\n \n {result.target === 'alert' && (\n \n \n \n )}\n\n \n

    Выберите дату подключения

    \n Инженер подключит и настроит оборудование примерно за 60 минут. \n
    \n\n \n
    \n );\n};\n\nexport default TimeSlotsPage;\n","import { useMemo } from 'react';\nimport styled, { createGlobalStyle } from 'styled-components';\n\nimport { DoubleColumnLayout } from '~/src/components/DoubleColumnLayout';\nimport { useContextSelector } from '~/src/entities/speed-bonus/context/hooks';\n\nimport SummaryInfo from './containers/SummaryInfo';\nimport RoutersPage from './pages/routers';\nimport TimeSlotsPage from './pages/time-slots';\n\nconst GlobalStyle = createGlobalStyle`\n button[data-test=\"chat-btn\"] {\n display: none;\n }\n`;\n\nconst steps = [RoutersPage, TimeSlotsPage] as const;\n\nconst Connection = ({ className }: { className?: string }): JSX.Element => {\n const stepIndex = useContextSelector(state => state.stepIndex);\n\n const CurrentStep = useMemo(() => steps[stepIndex], [stepIndex]);\n\n return (\n <>\n \n \n \n \n \n \n );\n};\n\nexport default styled(Connection)`\n margin-top: 32px;\n`;\n","import { ReactNode } from 'react';\n\nimport ResultPopup from './content/containers/ResultPopup';\nimport { useContextSelector } from './context/hooks';\nimport Connection from './content';\n\nconst LayoutSwitcher = ({ children }: { children: ReactNode }): JSX.Element => {\n const isShowSpeedBonusConnection = useContextSelector(state => state.isShowConnection);\n\n return (\n <>\n {isShowSpeedBonusConnection\n ? \n : children\n }\n \n \n );\n};\n\nexport default LayoutSwitcher;\n","import { ReactNode } from 'react';\n\nimport SpeedBonusConnectionContext from './context';\nimport LayoutSwitcher from './LayoutSwitcher';\n\nconst SpeedBonusConnection = ({ children }: { children: ReactNode }): JSX.Element => {\n return (\n \n \n {children}\n \n \n );\n};\n\nexport default SpeedBonusConnection;\n","import { IRequest } from '@r1-frontend/shared/types/IRequest';\n\nimport { RequestDto } from './dto/RequestDto';\n\n/**\n * Получение доступных тайм-слотов\n */\nexport const saleAgentTimeSlots = (providerId: number, data: RequestDto): IRequest => ({\n uri: `/v1/${providerId}/sale-agent/time-slots`,\n method: 'POST',\n body: JSON.stringify(data),\n withProvider: true,\n});\n","import styled from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { Paragraph4 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nconst size = {\n mobile: 6,\n desktop: 8,\n padding: 8,\n};\n\nconst UnorderedList = styled.ul<{ $color?: COLORS }>`\n list-style: none;\n margin: 0;\n padding: 0;\n\n & li {\n position: relative;\n padding-left: ${size.mobile + size.padding}px;\n padding-bottom: 4px;\n\n @media (min-width: ${wideBreakpoints.mobile}) {\n padding-left: ${size.desktop + size.padding}px;\n }\n }\n \n & li:last-child {\n padding-bottom: 0;\n }\n \n ${Paragraph4} {\n color: ${({ $color = COLORS.TextSecondary }) => $color};\n }\n\n & li::before {\n display: inline-block;\n content: '';\n\n width: ${size.mobile}px;\n height: ${size.mobile}px;\n background-color: ${COLORS.Brand_Blue};\n border-radius: 50%;\n margin-right: 8px;\n \n position: absolute;\n top: 0.5em;\n left: 0;\n\n @media (min-width: ${wideBreakpoints.mobile}) {\n width: ${size.desktop}px;\n height: ${size.desktop}px;\n }\n }\n`;\n\nexport default UnorderedList;\n"],"names":["onRetry","dispatch","useDispatch","ctxDispatch","useContextDispatch","isLoading","useContextSelector","state","ButtonGroup","Button","size","bType","onClick","loading","disabled","flushState","openChat","ErrorResult","activate","confirmTimeSlot","businessLogic","afterSuccessConnection","useRouter","push","onClose","FooterByEntityAndStatus","SuccessActivation","ErrorActivation","SuccessRequest","ErrorRequest","ResultFooter","entity","status","memo","result","header","message","target","PopupResult","isOpen","type","FullWidthListContainer","$direction","$desktop","$mobile","TextWrapper","$lastIndent","H3","dangerouslySetInnerHTML","__html","Paragraph4","$color","COLORS","isShowSummary","createSelector","connectionCost","tariff","routers","cost","isSelectedRouter","some","router","quantity","speedBonusStatus","Plus100Status","routerSelectionButtonText","selectRouters","selectedRouter","length","find","getTotalCount","products","reduce","acc","curr","getLimits","limit","installmentCount","installmentItems","filter","product","selectedPrice","duration","getProductsInInstallments","getInstalmentCount","total","installment","prepareCharacteristic","elem","title","truncate","value","Icon","Flash","limits","isInstallmentLimit","characteristics","props","slice","map","labelElements","labels","label","Label","bgColor","color","textColor","color_text","id","images","image","isInstalmentLimit","pluralizedMonth","getPluralize","monthPluralize","selectSummaryInfo","countStr","items","description","isMonthly","Component","totalCost","summaryItems","price","unshift","H4","hasInstallmentEquipment","isLaptop","useMatchMediaByWidth","wideBreakpoints","isSummaryVisible","summaryInfo","BottomStickyBlock","InnerComponent","BaseOrderSummary","OuterComponent","OrderSummaryItem","BlockContainer","indent","rounder","$radius","style","alignSelf","useState","setIsOpen","handleClosePopup","ControlElement","InfoCircleFlip","DefaultPopup","IndentContainer","marginRight","as","b","li","RouterCharacteristics","rowCount","usePartialList","partialCharacteristics","isPartial","setIsPartial","item","Characteristics","ImageDisplay","styled","ImageItem","BorderRadius","isSelected","RouterImages","selectedImageIdx","setSelectedImageIdx","$size","ST","img","src","alt","idx","isPopupOpen","onSelect","routerProps","routerOptions","ScrollbarWithIndent","PurchaseOptions","options","getPurchaseOptions","prices","isInstallmentDisable","sort","a","key","period","cardCount","useValueByBreakpoint","desktop","sDesktop","partialRouters","setIsPopupOpen","currentRouter","setCurrentRouter","openAddEquipmentPopup","equipment","$wrap","RouterCard","categoryTitle","onButtonClick","onIncrement","incrementQuantity","onDecrement","decrementQuantity","onCostClick","btnText","SingleArrowDown","SingleArrowUp","window","scrollTo","AddRouterPopup","addRouter","buttonText","SteppableProgressBar","progress","Alert","HowToChooseRouter","RoutersList","speedBonusConnectionAnalytics","ListDataForPopup","className","changePopupState","$withIndent","UnorderedList","useSelector","domain","selectDomain","providerId","selectProviderId","shallowEqual","isFirstRequestError","isNextRequestError","isInitialized","timeSlotsRequestResult","setTimeSlotsRequestResult","agreementId","openChatHandler","toggleIsShowConnection","getTimeSlotsHandler","_","body","slots","doRequest","saleAgentTimeSlots","isSuccess","prev","ActionAlert","button","DateOfServiceEngineerVisitWrapper","contractId","clientName","ESaleAgentClientName","productId","EProductsId","getTimeSlotsFunc","onConfirm","setTimeSlotData","gaCategory","onClickConfirm","HowToPrepare","TimeSlots","GlobalStyle","createGlobalStyle","steps","RoutersPage","TimeSlotsPage","stepIndex","CurrentStep","useMemo","DoubleColumnLayout","SummaryInfo","children","isShowSpeedBonusConnection","isShowConnection","Connection","ResultPopup","SpeedBonusConnectionContext","LayoutSwitcher","data","uri","method","JSON","stringify","withProvider"],"sourceRoot":""}