{"version":3,"file":"static/chunks/1583-705a130b87de1244.js","mappings":"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","sources":["webpack://_N_E/./src/entities/speed-bonus/analytics.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/constants.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/incrementQuantity.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/decrementQuantity.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/flushState.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/goToNextStep.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/setBusinessLogic.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/setConnectionCost.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/setResult.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/setRouters.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/setRoutersPrice.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/setTariff.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/setTimeSlotData.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/toggleIsLoading.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/toggleIsShowConnection.ts","webpack://_N_E/../../packages/shared/src/types/EShopCategory.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/thunk/activate.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/thunk/addRouter.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/thunk/confirmTimeSlot.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/thunk/fetchConnectPrice.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/thunk/fetchRouters.ts","webpack://_N_E/./src/entities/speed-bonus/context/actions/thunk/initialize.ts","webpack://_N_E/./src/entities/speed-bonus/context/constants.ts","webpack://_N_E/./src/entities/speed-bonus/context/hooks/useContextDispatch.ts","webpack://_N_E/./src/entities/speed-bonus/context/hooks/useContextSelector.ts","webpack://_N_E/./src/entities/speed-bonus/context/reducer/index.ts","webpack://_N_E/./src/entities/speed-bonus/context/index.tsx","webpack://_N_E/./src/entities/vases/PartnerServices/components/ServiceDetails/components/Benefits/styled.ts","webpack://_N_E/./src/entities/vases/PartnerServices/components/ServiceDetails/components/Benefits/Benefit.tsx","webpack://_N_E/./src/helpers/hooks/useElementVisibility.ts","webpack://_N_E/./src/helpers/hooks/useIntersectionObserver.ts","webpack://_N_E/../../packages/api-domru/src/api-request/v1/get-connect-price.ts","webpack://_N_E/../../packages/api-domru/src/api-vas/v1/vas/activation/index.ts","webpack://_N_E/../../packages/api-domru/src/api-vas/v1/vas/byShopItemId/index.ts","webpack://_N_E/../../packages/api-domru/src/full-buy/v1/equipment/index.ts","webpack://_N_E/../../packages/api-domru/src/full-buy/v1/sale-agent/select-time-slot/index.ts","webpack://_N_E/../../packages/shared/src/hooks/useOnceExecute.ts","webpack://_N_E/../../packages/ui-react/src/components/svg/arrows/SingleArrowRight.tsx"],"sourcesContent":["import { BaseAnalytics } from '@r1-frontend/analytics/dataLayerPush';\n\nimport { IPreparedRouter } from '~/src/entities/speed-bonus/context/actions/setRouters';\nimport { ISpeedBonusTariff } from '~/src/entities/speed-bonus/context/actions/setTariff';\n\nconst defaultLabel = 'default_label';\n\ntype TSpeedBonusAnalyticsTariff = Pick\n\nclass SpeedBonusConnectionAnalytics extends BaseAnalytics {\n private tariff: TSpeedBonusAnalyticsTariff | undefined;\n\n constructor(category = 'VAS') {\n super();\n this.category = category;\n }\n\n public setTariff(tariff: TSpeedBonusAnalyticsTariff) {\n this.tariff = tariff;\n }\n\n startConnection() {\n this.sendWithLabel('click_connect_promo', defaultLabel);\n }\n\n successConnected() {\n this.sendWithLabel('promo_connected_successfully', defaultLabel);\n }\n\n connectionError() {\n this.sendWithLabel('error_while_promo_connection', defaultLabel);\n }\n\n openConnectionConfirmation() {\n this.sendWithLabel('open_page_speed_bonus_cart', defaultLabel);\n }\n\n openRouterSelection() {\n this.sendWithLabel('open_choose_router_for_speed_bonus', defaultLabel);\n }\n\n routerSelection(router?: IPreparedRouter) {\n if (router) {\n const { title, selectedPrice: { cost, duration } } = router;\n\n const purchaseType = duration > 0 ? `Рассрочка (${duration} мес.)` : 'В собственность';\n const routerLabel = `router_name:${title}|payment:${purchaseType}|cost:${cost}`;\n\n this.sendWithLabel('click_connect_bonus_after_chose_router', routerLabel);\n } else {\n this.sendWithLabel('click_connect_bonus', defaultLabel);\n }\n }\n\n requestCreated(withLabel: boolean) {\n this.sendWithLabel('request_created_successfully', withLabel ? defaultLabel : undefined);\n }\n\n timeSlotsUnavailable() {\n this.sendWithLabel('time_slots_are_not_available');\n }\n\n confirmTimeSlotSelection() {\n this.sendWithLabel('click_confirm_after_choosing_time_slot');\n }\n\n timeSlotSuccessConfirmed() {\n this.sendWithLabel('time_slot_confirmed_successfully');\n }\n\n timeSlotConfirmationError() {\n this.sendWithLabel('time_slot_confirmation_error');\n }\n\n private getAnalyticsLabel() {\n if (!this.tariff) {\n throw new Error('speedBonusConnectionAnalytics.setTariff must be called first');\n }\n\n const { title, connectionFlow, shopItemId } = this.tariff;\n return `name:${title}|promo_type:${connectionFlow}|id:${shopItemId}`;\n }\n\n private sendWithLabel(action: string, incomingLabel?: string) {\n const label = (() => {\n if (incomingLabel) {\n const labelByDefault = this.getAnalyticsLabel();\n\n if (incomingLabel !== defaultLabel) {\n return `${labelByDefault}|${incomingLabel}`;\n }\n\n return labelByDefault;\n }\n })();\n\n this.send(action, label);\n }\n}\n\nexport const speedBonusConnectionAnalytics = new SpeedBonusConnectionAnalytics();\n","export const enum ESpeedBonusActions {\n toggleIsLoading = '@speedBonus/connection/toggleIsLoading',\n toggleIsShowConnection = '@speedBonus/connection/toggleIsShowConnection',\n setBusinessLogic = '@speedBonus/connection/setBusinessLogic',\n setTariff = '@speedBonus/connection/setTariff',\n goToNextStep = '@speedBonus/connection/goToNextStep',\n setRouters = '@speedBonus/connection/setRouters',\n incrementQuantity = '@speedBonus/connection/incrementQuantity',\n decrementQuantity = '@speedBonus/connection/decrementQuantity',\n setRoutersPrice = '@speedBonus/connection/setRoutersPrice',\n setConnectionCost = '@speedBonus/connection/setConnectionCost',\n setTimeSlotData = '@speedBonus/connection/setTimeSlotData',\n setResult = '@speedBonus/connection/setResult',\n flushState = '@speedBonus/connection/flushState',\n}\n","import { IAction } from '~/src/store';\n\nimport { ESpeedBonusActions } from './constants';\n\nexport const incrementQuantity = (routerId: number): IAction => ({\n type: ESpeedBonusActions.incrementQuantity,\n payload: routerId,\n});\n","import { IAction } from '~/src/store';\n\nimport { ESpeedBonusActions } from './constants';\n\nexport const decrementQuantity = (routerId: number): IAction => ({\n type: ESpeedBonusActions.decrementQuantity,\n payload: routerId,\n});\n","import { IAction } from '~/src/store';\n\nimport { ESpeedBonusActions } from './constants';\n\nexport const flushState = (): IAction => ({\n type: ESpeedBonusActions.flushState,\n payload: null,\n});\n","import { IAction } from '~/src/store';\n\nimport { ESpeedBonusActions } from './constants';\n\nexport const goToNextStep = (): IAction => ({\n type: ESpeedBonusActions.goToNextStep,\n payload: null,\n});\n","import { IAction } from '~/src/store';\n\nimport { ESpeedBonusActions } from './constants';\n\nexport interface IBusinessLogic {\n agreementId: number,\n contactId?: number,\n beforeSwitchToConnection?: () => void,\n afterSuccessConnection?: () => void,\n}\n\nexport const setBusinessLogic = (payload: IBusinessLogic): IAction => ({\n type: ESpeedBonusActions.setBusinessLogic,\n payload,\n});\n","import { IAction } from '~/src/store';\n\nimport { ESpeedBonusActions } from './constants';\n\nexport const setConnectionCost = (cost: number): IAction => ({\n type: ESpeedBonusActions.setConnectionCost,\n payload: cost,\n});\n","import { EResultPopupStatus } from '@r1-frontend/ui-react/components/popups/popupResult';\n\nimport { IAction } from '~/src/store';\n\nimport { ESpeedBonusActions } from './constants';\n\nexport type TActionResultEntity = 'activation' | 'request' | 'none'\nexport type TActionResultStatus = EResultPopupStatus.SUCCESS | EResultPopupStatus.ERROR | 'none'\nexport type TActionResultTarget = 'popup' | 'alert'\n\nexport type TActionResult = {\n entity: TActionResultEntity,\n status: TActionResultStatus,\n header: string,\n message?: string,\n target?: TActionResultTarget,\n}\n\nexport const setResult = (result: TActionResult): IAction => ({\n type: ESpeedBonusActions.setResult,\n payload: result,\n});\n","import { IShopLabel } from '~/src/api/content/shop/getShopItems';\nimport { IAction } from '~/src/store';\n\nimport { ESpeedBonusActions } from './constants';\n\ninterface IEquipmentProp {\n title: string,\n name?: string,\n type?: string,\n value: string,\n asIs?: 0 | 1 | number,\n}\n\nexport type TPrice = {\n cost: number,\n duration: number,\n}\n\nexport interface IPreparedRouter {\n id: number,\n category: string,\n categoryTitle: string,\n title: string,\n description: string,\n body: string,\n image: string,\n images: string[],\n labels: IShopLabel[],\n props: IEquipmentProp[],\n\n image_width?: number,\n image_height?: number,\n image_webp?: string,\n\n prices: TPrice[],\n selectedPrice: TPrice,\n\n quantity: number,\n}\n\nexport const setRouters = (routers: IPreparedRouter[]): IAction => ({\n type: ESpeedBonusActions.setRouters,\n payload: routers,\n});\n","import { IAction } from '~/src/store';\n\nimport { ESpeedBonusActions } from './constants';\n\ninterface IRoutersPrice {\n id: number,\n duration: number,\n isTestDrive?: 0 | 1,\n}\n\nexport const setRoutersPrice = (priceInfo: IRoutersPrice): IAction => ({\n type: ESpeedBonusActions.setRoutersPrice,\n payload: priceInfo,\n});\n","import { IVasVariant } from '@r1-frontend/api-domru/api-vas/v1/vas/byShopItemId/dto/responseDto';\n\nimport { IAction } from '~/src/store';\n\nimport { ESpeedBonusActions } from './constants';\n\nexport interface ISpeedBonusTariff {\n // activation\n socId: number,\n bonusId: number,\n speedBonusStatus: number,\n specialOffersRequestIds?: number[],\n // fetch routers\n speed?: number,\n // UI\n title: string,\n price: number,\n // analytics\n connectionFlow: IVasVariant['connectionFlow'],\n shopItemId: number,\n}\n\nexport const setTariff = (tariff: ISpeedBonusTariff): IAction => ({\n type: ESpeedBonusActions.setTariff,\n payload: tariff,\n});\n","import { TReturnType } from '@r1-frontend/service-engineer-visit';\n\nimport { IAction } from '~/src/store';\n\nimport { ESpeedBonusActions } from './constants';\n\nexport const setTimeSlotData = (data: TReturnType): IAction => ({\n type: ESpeedBonusActions.setTimeSlotData,\n payload: data,\n});\n","import { IAction } from '~/src/store';\n\nimport { ESpeedBonusActions } from './constants';\n\nexport const toggleIsLoading = (status: boolean): IAction => ({\n type: ESpeedBonusActions.toggleIsLoading,\n payload: status,\n});\n","import { IAction } from '~/src/store';\n\nimport { ESpeedBonusActions } from './constants';\n\nexport const toggleIsShowConnection = (isShow: boolean): IAction => ({\n type: ESpeedBonusActions.toggleIsShowConnection,\n payload: isShow,\n});\n","// @todo All types must be in api-domru package, now collected at\n// frontend/packages/api-domru/src/api-content/common-types/shop-item.types.ts\nexport enum EShopCategory {\n Antiviruses = 'antiviruses',\n SpeedBonuses = 'speed-bonuses',\n Routers = 'routers',\n Intercom = 'intercom',\n Sale = 'special-offers',\n PartnerServices = 'partner-service-with-phone-check',\n Decoders = 'decoders',\n BonusToAll = 'bonus-to-all',\n YandexStation = 'yandex-stanciya',\n YandexStationLite = 'yandex-stanciya-lite',\n SafeKids = 'safe-kids',\n LoyaltyProgram = 'loyalty-program',\n Products = 'products',\n Subscriptions = 'subscriptions',\n Multibundle = 'multibundle',\n Videocontrol = 'videocontrol',\n}\n","import { batch } from 'react-redux';\n\nimport { doRequest } from '@r1-frontend/do-request';\nimport { activation } from '@r1-frontend/api-domru/api-vas/v1/vas';\nimport { IRequestParams } from '@r1-frontend/api-domru/api-vas/v1/vas/activation/dto/requestDto';\nimport { IActivationResponse } from '@r1-frontend/api-domru/api-vas/v1/vas/activation/dto/responseDto';\n\nimport { EResultPopupStatus } from '@r1-frontend/ui-react/components/popups/popupResult';\n\nimport { speedBonusConnectionAnalytics } from '~/src/entities/speed-bonus/analytics';\nimport { TContextDispatch } from '~/src/entities/speed-bonus/context';\nimport { goToNextStep, setResult, toggleIsLoading, toggleIsShowConnection } from '~/src/entities/speed-bonus/context/actions';\nimport { TActionResult } from '~/src/entities/speed-bonus/context/actions/setResult';\nimport { fetchConnectPrice } from '~/src/entities/speed-bonus/context/actions/thunk';\nimport { Plus100Status } from '~/src/entities/speed-bonus/context/constants';\nimport { TInitialState } from '~/src/entities/speed-bonus/context/reducer';\n\nexport const activate = () => async(dispatch: TContextDispatch, getState: () => TInitialState) => {\n const { isShowConnection, tariff, routers, connectionCost, businessLogic } = getState();\n\n if (!tariff) {\n return;\n }\n\n dispatch(toggleIsLoading(true));\n\n const reqParams: IRequestParams = {\n socId: tariff.socId,\n contactId: businessLogic?.contactId,\n bonusId: tariff.bonusId,\n speedBonusStatus: tariff.speedBonusStatus,\n specialOffersRequestIds: tariff.specialOffersRequestIds,\n };\n\n const selectedRouter = routers.find(router => router.quantity);\n\n if (selectedRouter) {\n reqParams.router = {\n id: selectedRouter.id,\n duration: selectedRouter.selectedPrice.duration,\n };\n }\n\n const response = await doRequest.apiVas(activation(reqParams));\n\n if (response.isSuccess) {\n if (tariff.speedBonusStatus !== Plus100Status) {\n speedBonusConnectionAnalytics.successConnected();\n }\n\n const successResult: TActionResult = {\n entity: 'activation',\n status: EResultPopupStatus.SUCCESS,\n header: response.payload.header,\n message: response.payload.message,\n };\n\n if (response.payload.requestIds?.length) {\n speedBonusConnectionAnalytics.requestCreated(tariff.speedBonusStatus === Plus100Status);\n\n if (!connectionCost) {\n dispatch(fetchConnectPrice());\n }\n\n batch(() => {\n dispatch(goToNextStep());\n dispatch(setResult({\n ...successResult,\n target: 'alert',\n }));\n });\n\n if (!isShowConnection) {\n businessLogic?.beforeSwitchToConnection && businessLogic.beforeSwitchToConnection();\n\n dispatch(toggleIsShowConnection(true));\n }\n } else {\n dispatch(setResult(successResult));\n }\n } else {\n speedBonusConnectionAnalytics.connectionError();\n\n dispatch(setResult({\n entity: 'activation',\n status: EResultPopupStatus.ERROR,\n header: 'Что-то пошло не так. Попробуйте ещё раз.',\n message: response.error.message,\n }));\n }\n\n dispatch(toggleIsLoading(false));\n};\n","import { batch } from 'react-redux';\n\nimport { TContextDispatch } from '~/src/entities/speed-bonus/context';\nimport { setRoutersPrice } from '~/src/entities/speed-bonus/context/actions';\nimport { incrementQuantity } from '~/src/entities/speed-bonus/context/actions/incrementQuantity';\nimport { IPreparedRouter } from '~/src/entities/speed-bonus/context/actions/setRouters';\n\nexport const addRouter = (router: IPreparedRouter, cost: number) => (dispatch: TContextDispatch) => {\n const selectedPrice = router.prices.find(el => el.cost === cost);\n\n if (!selectedPrice) {\n return;\n }\n\n batch(() => {\n dispatch(setRoutersPrice({\n id: router.id,\n duration: selectedPrice.duration,\n }));\n dispatch(incrementQuantity(router.id));\n });\n};\n","import { doRequest } from '@r1-frontend/do-request';\nimport { selectTimeSlot } from '@r1-frontend/api-domru/full-buy/v1/sale-agent/select-time-slot';\nimport { RequestDto } from '@r1-frontend/api-domru/full-buy/v1/sale-agent/select-time-slot/dto/RequestDto';\nimport { ResponseDto } from '@r1-frontend/api-domru/full-buy/v1/sale-agent/select-time-slot/dto/ResponseDto';\n\nimport { ESaleAgentClientName } from '@r1-frontend/service-engineer-visit';\n\nimport { EResultPopupStatus } from '@r1-frontend/ui-react/components/popups/popupResult';\nimport getProviderId from '@r1-frontend/shared/helpers/getProviderId';\n\nimport { speedBonusConnectionAnalytics } from '~/src/entities/speed-bonus/analytics';\nimport { TContextDispatch } from '~/src/entities/speed-bonus/context';\nimport { setResult, toggleIsLoading } from '~/src/entities/speed-bonus/context/actions';\nimport { TInitialState } from '~/src/entities/speed-bonus/context/reducer';\n\nexport const confirmTimeSlot = () => async(dispatch: TContextDispatch, getState: () => TInitialState) => {\n const providerId = Number(getProviderId());\n\n const { businessLogic, timeSlotData } = getState();\n\n if (!businessLogic?.agreementId || !timeSlotData) {\n return;\n }\n\n dispatch(toggleIsLoading(true));\n\n const reqParams: RequestDto = {\n agreementId: businessLogic.agreementId,\n dateFrom: `${timeSlotData.date} ${timeSlotData.hour}`,\n saleAgentClientName: ESaleAgentClientName.FULL_BUY_EQUIPMENT_SITE,\n info: timeSlotData.comment,\n };\n\n const response = await doRequest.fullBuy(\n selectTimeSlot(providerId, reqParams),\n );\n\n if (response.isSuccess) {\n speedBonusConnectionAnalytics.timeSlotSuccessConfirmed();\n\n const [hour, minutes] = timeSlotData.hour.split(':') || ['00', '00'];\n const timeSlotText = `${timeSlotData?.date} c ${timeSlotData?.hour} до ${String(Number(hour) + 1).padStart(2, '0')}:${minutes}`;\n\n dispatch(setResult({\n entity: 'request',\n status: EResultPopupStatus.SUCCESS,\n header: `Инженер придет ${timeSlotText}.`,\n message: 'Управляйте заявкой на странице Заявки и заказы',\n }));\n } else {\n speedBonusConnectionAnalytics.timeSlotConfirmationError();\n\n dispatch(setResult({\n entity: 'request',\n status: EResultPopupStatus.ERROR,\n header: 'Не удалось запланировать заявку на выбранную дату',\n message: 'Пожалуйста, попробуйте ещё раз. Если ошибка повторится — напишите нам в чат.',\n }));\n }\n\n dispatch(toggleIsLoading(false));\n};\n","import { doRequest } from '@r1-frontend/do-request';\nimport {\n getConnectPrice,\n IGetConnectPriceRequestDto,\n IGetConnectPriceResponseDto,\n} from '@r1-frontend/api-domru/api-request/v1/get-connect-price';\n\nimport { TContextDispatch } from '~/src/entities/speed-bonus/context';\nimport { setConnectionCost, toggleIsLoading } from '~/src/entities/speed-bonus/context/actions';\nimport { Plus100Status } from '~/src/entities/speed-bonus/context/constants';\nimport { TInitialState } from '~/src/entities/speed-bonus/context/reducer';\n\nexport const fetchConnectPrice = () => async(dispatch: TContextDispatch, getState: () => TInitialState) => {\n const { tariff } = getState();\n\n if (!tariff) {\n return;\n }\n\n dispatch(toggleIsLoading(true));\n\n const requestData: IGetConnectPriceRequestDto = {\n needTv: 0,\n needInt: 1,\n install: 2,\n int100: tariff.speedBonusStatus === Plus100Status ? 1 : 0,\n };\n\n const response = await doRequest.apiRequest(\n getConnectPrice(requestData),\n );\n\n if (response.isSuccess) {\n const { action_price, base_price } = response.payload;\n dispatch(setConnectionCost(action_price ?? base_price));\n }\n\n dispatch(toggleIsLoading(false));\n};\n","import { doRequest } from '@r1-frontend/do-request';\nimport { equipment as equipmentByCategories } from '@r1-frontend/api-domru/full-buy/v1/equipment';\nimport { IEquipment } from '@r1-frontend/api-domru/full-buy/v1/equipment/dto/Equipment.dto';\n\nimport getProviderId from '@r1-frontend/shared/helpers/getProviderId';\nimport { EShopCategory } from '@r1-frontend/shared/types/EShopCategory';\n\nimport { speedBonusConnectionAnalytics } from '~/src/entities/speed-bonus/analytics';\nimport { TContextDispatch } from '~/src/entities/speed-bonus/context';\nimport { setRouters, toggleIsLoading, toggleIsShowConnection } from '~/src/entities/speed-bonus/context/actions';\nimport { IPreparedRouter } from '~/src/entities/speed-bonus/context/actions/setRouters';\nimport { activate, fetchConnectPrice } from '~/src/entities/speed-bonus/context/actions/thunk';\nimport { Plus100Status } from '~/src/entities/speed-bonus/context/constants';\nimport { TInitialState } from '~/src/entities/speed-bonus/context/reducer';\n\nconst prepareRouter = (equipment: IEquipment): IPreparedRouter => {\n const sortedPrices = [...equipment.pricesV2].sort((a, b) => a.sort - b.sort);\n const [firstPrice] = sortedPrices;\n\n return ({\n id: equipment.globalId,\n category: equipment.category?.name || '',\n categoryTitle: equipment.category?.title || '',\n title: equipment.title,\n description: equipment.bodyFull || '',\n body: equipment.body,\n props: equipment.props,\n labels: equipment.labels.map(label => ({\n id: label.id,\n name: label.name,\n title: label.title,\n color: label.color || '',\n color_text: label.colorText || '',\n })),\n\n image: equipment.image || '',\n images: equipment.images,\n\n prices: sortedPrices.map(price => ({\n duration: price.duration || 0,\n cost: price.value || 0,\n })),\n selectedPrice: {\n duration: firstPrice?.duration || 0,\n cost: firstPrice?.value || 0,\n },\n\n quantity: 0,\n });\n};\n\nexport const fetchRouters = () => async(dispatch: TContextDispatch, getState: () => TInitialState) => {\n const providerId = Number(getProviderId());\n\n const { tariff, businessLogic } = getState();\n\n if (!tariff) {\n return;\n }\n\n speedBonusConnectionAnalytics.startConnection();\n\n const showConnectionHandler = () => {\n dispatch(fetchConnectPrice());\n\n businessLogic?.beforeSwitchToConnection && businessLogic.beforeSwitchToConnection();\n\n dispatch(toggleIsShowConnection(true));\n };\n\n const errorHandler = () => {\n if (tariff.speedBonusStatus === Plus100Status) {\n showConnectionHandler();\n\n speedBonusConnectionAnalytics.openConnectionConfirmation();\n } else {\n dispatch(activate());\n }\n };\n\n if (!tariff.speed) {\n errorHandler();\n return;\n }\n\n dispatch(toggleIsLoading(true));\n\n const response = await doRequest.fullBuy(equipmentByCategories({\n providerId,\n categories: [EShopCategory.Routers],\n routerFilter: {\n minimumSpeed: tariff.speed,\n isBetterThanCurrentUserEquipment: 1,\n },\n }));\n\n if (response.isSuccess && response.payload.length) {\n const routers = response.payload.map(prepareRouter);\n\n dispatch(setRouters(routers));\n\n showConnectionHandler();\n\n speedBonusConnectionAnalytics.openRouterSelection();\n } else {\n errorHandler();\n }\n\n dispatch(toggleIsLoading(false));\n};\n","import { batch } from 'react-redux';\n\nimport { TContextDispatch } from '~/src/entities/speed-bonus/context';\nimport { setBusinessLogic } from '~/src/entities/speed-bonus/context/actions';\nimport { IBusinessLogic } from '~/src/entities/speed-bonus/context/actions/setBusinessLogic';\nimport { fetchRouters } from '~/src/entities/speed-bonus/context/actions/thunk/fetchRouters';\n\nexport const initialize = ({\n agreementId,\n ...initProps\n}: Partial) => (dispatch: TContextDispatch) => {\n if (agreementId) {\n batch(() => {\n dispatch(setBusinessLogic({ agreementId, ...initProps }));\n dispatch(fetchRouters());\n });\n }\n};\n","export const Plus100Status = 5;\n","import { useContext } from 'react';\n\nimport { Context, TContextDispatch } from '~/src/entities/speed-bonus/context';\n\nexport const useContextDispatch = (): TContextDispatch => {\n const { dispatch } = useContext(Context);\n return dispatch;\n};\n","import { useContext } from 'react';\n\nimport { Context } from '~/src/entities/speed-bonus/context';\nimport { TInitialState } from '~/src/entities/speed-bonus/context/reducer';\n\nexport const useContextSelector = (selector: (state: TInitialState) => T) => {\n const { state } = useContext(Context);\n\n return selector(state);\n};\n","/* eslint-disable complexity */\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport { TReturnType } from '@r1-frontend/service-engineer-visit';\n\nimport { speedBonusConnectionAnalytics } from '~/src/entities/speed-bonus/analytics';\nimport * as actions from '~/src/entities/speed-bonus/context/actions';\nimport { ESpeedBonusActions } from '~/src/entities/speed-bonus/context/actions/constants';\nimport { IBusinessLogic } from '~/src/entities/speed-bonus/context/actions/setBusinessLogic';\nimport { TActionResult } from '~/src/entities/speed-bonus/context/actions/setResult';\nimport { IPreparedRouter } from '~/src/entities/speed-bonus/context/actions/setRouters';\nimport { ISpeedBonusTariff } from '~/src/entities/speed-bonus/context/actions/setTariff';\nimport { InferValueTypes } from '~/src/store';\n\nexport type TAction = ReturnType>\n\nexport type TInitialState = {\n isLoading: boolean,\n isShowConnection: boolean,\n tariff: ISpeedBonusTariff | null,\n stepIndex: number,\n routers: IPreparedRouter[],\n connectionCost?: number,\n timeSlotData: TReturnType | null,\n result: TActionResult,\n businessLogic?: IBusinessLogic,\n}\n\nexport const initialState: TInitialState = {\n isLoading: false,\n isShowConnection: false,\n tariff: null,\n stepIndex: 0,\n routers: [],\n timeSlotData: null,\n result: {\n entity: 'none',\n status: 'none',\n header: '',\n message: '',\n },\n};\n\nexport const reducer = (state: TInitialState = initialState, action: TAction) => {\n switch (action.type) {\n case ESpeedBonusActions.toggleIsLoading:\n return {\n ...state,\n isLoading: action.payload,\n };\n case ESpeedBonusActions.toggleIsShowConnection:\n return {\n ...state,\n isShowConnection: action.payload,\n };\n case ESpeedBonusActions.setBusinessLogic:\n return {\n ...state,\n businessLogic: action.payload,\n };\n case ESpeedBonusActions.setTariff: {\n const { title, connectionFlow, shopItemId, ...rest } = action.payload;\n\n speedBonusConnectionAnalytics.setTariff({ title, connectionFlow, shopItemId });\n\n return {\n ...state,\n tariff: { title, connectionFlow, shopItemId, ...rest },\n };\n }\n case ESpeedBonusActions.goToNextStep:\n return {\n ...state,\n stepIndex: state.stepIndex + 1,\n };\n case ESpeedBonusActions.setRouters:\n return {\n ...state,\n routers: action.payload,\n };\n case ESpeedBonusActions.incrementQuantity: {\n const routersClone = cloneDeep(state.routers);\n const currRouter = routersClone.find(el => el.id === action.payload);\n\n if (currRouter) {\n currRouter.quantity += 1;\n }\n\n return {\n ...state,\n routers: routersClone,\n };\n }\n case ESpeedBonusActions.decrementQuantity: {\n const routersClone = cloneDeep(state.routers);\n const currRouter = routersClone.find(el => el.id === action.payload);\n\n if (currRouter) {\n currRouter.quantity -= 1;\n }\n\n return {\n ...state,\n routers: routersClone,\n };\n }\n case ESpeedBonusActions.setRoutersPrice: {\n const { id, duration } = action.payload;\n const routersClone = cloneDeep(state.routers);\n const currRouter = routersClone.find(el => el.id === id);\n\n if (currRouter) {\n const newSelectedPrice = currRouter.prices.find(el => el.duration === duration);\n\n if (newSelectedPrice) {\n currRouter.selectedPrice = newSelectedPrice;\n }\n }\n\n return {\n ...state,\n routers: routersClone,\n };\n }\n case ESpeedBonusActions.setConnectionCost:\n return {\n ...state,\n connectionCost: action.payload,\n };\n case ESpeedBonusActions.setTimeSlotData:\n return {\n ...state,\n timeSlotData: action.payload,\n };\n case ESpeedBonusActions.setResult:\n return {\n ...state,\n result: {\n ...action.payload,\n target: action.payload.target ?? 'popup',\n },\n };\n case ESpeedBonusActions.flushState:\n return {\n ...initialState,\n };\n default:\n return { ...state };\n }\n};\n","import { createContext, ReactNode } from 'react';\nimport useThunkReducer, { ThunkDispatch } from 'react-hook-thunk-reducer';\n\nimport { initialState, reducer, TAction, TInitialState } from '~/src/entities/speed-bonus/context/reducer';\n\nexport type TContextDispatch = ThunkDispatch\n\nexport type TContext = {\n state: TInitialState,\n dispatch: TContextDispatch,\n debugMode?: boolean,\n};\n\nexport const Context = createContext({\n state: initialState,\n dispatch: () => null,\n debugMode: false,\n});\n\nconst SpeedBonusConnectionContext = ({ children, debugMode = false }: { children: ReactNode, debugMode?: boolean }): JSX.Element => {\n const [state, dispatch] = useThunkReducer(reducer, initialState);\n\n debugMode && console.log(state);\n\n return (\n \n {children}\n \n );\n};\n\nexport default SpeedBonusConnectionContext;\n","import styled from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { BlockContainer, ListContainer } from '@r1-frontend/ui-react/experimental/containers';\n\nexport const Content = styled(ListContainer)`\n @media (max-width: ${wideBreakpoints.mobile}) {\n align-items: center;\n }\n`;\n\nexport const Icon = styled(BlockContainer)`\n flex: 0 0 40px;\n width: 40px;\n height: 40px;\n\n img,\n picture {\n width: 100%;\n height: 100%;\n object-position: center;\n object-fit: contain;\n }\n`;\n","import { LazyLoadImage } from 'react-lazy-load-image-component';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { Paragraph4 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport WebpImage from '@r1-frontend/ui-react/components/WebpImage';\nimport { BlockContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { useMatchMediaByWidth } from '@r1-frontend/shared/hooks/useMatchMedia';\n\nimport * as ST from './styled';\n\ninterface IProps {\n title: string,\n image?: {\n url: string,\n urlWebp?: string,\n },\n}\n\nconst Benefit = ({ title, image }: IProps): JSX.Element => {\n const isMobile = useMatchMediaByWidth(wideBreakpoints.mobile);\n\n return (\n \n \n {!!image?.url && (\n \n \n \n \n \n )}\n \n \n \n );\n};\n\nexport default Benefit;\n","import { useOnceExecute } from '@r1-frontend/shared/hooks/useOnceExecute';\n\nimport { useIntersectionObserver } from '~/src/helpers/hooks/useIntersectionObserver';\n\n/**\n * Разово выполняет переданный коллбэк в том случае, когда элемент появляется в viewport\n * @param callback - коллбэк, который необходимо выполнить\n */\nexport const useElementVisibility = (callback: () => void): ReturnType => {\n const executeOnce = useOnceExecute(() => {\n callback();\n });\n\n const onElementVisible = ([{ isIntersecting }]: IntersectionObserverEntry[]) => {\n if (isIntersecting) {\n executeOnce();\n }\n };\n\n return useIntersectionObserver(onElementVisible, { root: null, rootMargin: '', threshold: 1 });\n};\n","import { useEffect, useRef, useState } from 'react';\n\nimport { isClientSide } from '@r1-frontend/shared/helpers/ssr';\n\n/**\n * @param {function} callBack - вызываемя функция\n * @param {Node|null} root - dom Элемент который используется в качестве\n * области просмотра для проверки видимости целевого элемента\n * @param {string} rootMargin - Отступы вокруг root. Могут иметь значения как\n * свойство css margin: \"10px 20px 30px 40px\" (top, right, bottom, left).\n * Значения можно задавать в процентах.\n * @param {number|number[]} threshold - Число или массив чисел, указывающий,\n * при каком проценте видимости целевого элемента должен сработать\n * callback.\n * @return {function(value: Node):undefined}\n */\nexport const useIntersectionObserver = (\n callBack: IntersectionObserverCallback,\n { root = null, rootMargin, threshold = 0 }: IntersectionObserverInit,\n): React.Dispatch> => {\n // ссылка на элемент за которым будем/уже след -ить/-им\n const [node, setNode] = useState(null);\n\n let observerInst = null;\n\n if (isClientSide()) {\n observerInst = new window.IntersectionObserver(callBack, {\n root,\n rootMargin,\n threshold,\n });\n }\n\n const observer = useRef(observerInst);\n\n useEffect(\n () => {\n if (observer.current && node) {\n const { current: currentObserver } = observer;\n // отсоединяемся от предыдущего элемента\n currentObserver.disconnect();\n\n if (node) {\n // следим за текущим\n currentObserver.observe(node);\n }\n // при размонтировании отписываемся\n return () => {\n currentObserver.disconnect();\n };\n }\n },\n [node],\n );\n\n return setNode;\n};\n","import { IRequest } from '@r1-frontend/shared/types/IRequest';\n\nexport interface IGetConnectPriceRequestDto {\n needInt: 0 | 1,\n needTv: 0 | 1,\n int100: 0 | 1,\n install: 0 | 1 | 2, // Какие стоимости вернуть (0 - только стоимость доставки, 1 - стоимость установки, 2 - стоимость доставки и стоиомсть установки)\n}\n\nexport interface IGetConnectPriceResponseDto {\n del_action_price: number,\n del_base_price: number,\n action_price: number,\n base_price: number,\n}\n\n/**\n * Стоимость стоимости доставки и установки полной покупки оборудования\n * @link https://kb.ertelecom.ru/pages/viewpage.action?pageId=171217453#id-%D0%95%D0%9B%D0%9A.API.%D0%91%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D1%8B,%D0%BF%D0%BB%D0%B0%D1%82%D0%B5%D0%B6%D0%B8,%D0%BD%D0%B0%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F-%D0%A1%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D1%8F\n * @link https://master.api-request.sandbox.d2c.r-one.io/docs/v1#/%D0%A1%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%B4%D0%BB%D1%8F%20%D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82%D0%BE%D0%B2%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82%20%D0%B8%20%D0%A2%D0%92/41d8d832e5a2e59a0ced900a019463be\n */\nexport const getConnectPrice = (queryParams: IGetConnectPriceRequestDto): IRequest => ({\n uri: '/v1/get-connect-price',\n method: 'GET',\n withAuth: true,\n withProvider: true,\n queryParams,\n});\n","import { IRequest } from '@r1-frontend/shared/types/IRequest';\n\nimport { IRequestParams } from './dto/requestDto';\n\n/**\n * Подключение партнерского сервиса\n * @param {IRequestParams} params - параметры запроса\n *\n * {@link https://master.api-vas.sandbox.d2c.r-one.io/docs/#/Vas/VasController_activation Documentation}\n */\nexport const activation = (params: IRequestParams): IRequest => ({\n uri: '/api/v1/vas/activation',\n method: 'POST',\n withAuth: true,\n withProvider: true,\n body: JSON.stringify(params),\n});\n","import { IRequest } from '@r1-frontend/shared/types/IRequest';\n\n/**\n * Получение детальной информации о сервисе по его shopItemId\n * @param {number} shopItemId - id сервиса\n *\n * {@link https://master.api-vas.sandbox.d2c.r-one.io/docs/#/Vas/VasController_findOneByShopItemId Documentation}\n */\nexport const byShopItemId = (shopItemId: number): IRequest => ({\n uri: `/api/v1/vas/${shopItemId}`,\n method: 'GET',\n withAuth: true,\n withProvider: true,\n});\n","import { IRequest } from '@r1-frontend/shared/types/IRequest';\n\nimport { IEquipmentRequest } from './dto/Request.dto';\n\n/**\n * Получение информации об оборудовании\n */\nexport const equipment = ({ providerId, globalId, categories, routerFilter }: IEquipmentRequest): IRequest => ({\n uri: `/v1/${providerId}/equipment`,\n method: 'GET',\n withAuth: true,\n withProvider: true,\n queryParams: {\n globalId,\n categories,\n routerFilter,\n },\n});\n","import { IRequest } from '@r1-frontend/shared/types/IRequest';\n\nimport { RequestDto } from './dto/RequestDto';\n\n/**\n * Подтверждение выбранного времени\n */\nexport const selectTimeSlot = (providerId: number, request: RequestDto): IRequest => ({\n uri: `/v1/${providerId}/sale-agent/select-time-slot`,\n method: 'POST',\n body: JSON.stringify(request),\n withProvider: true,\n});\n","import { useCallback, useState } from 'react';\n\n/**\n * Вызывает функцию callBack не более одного раза.\n * Использование: отправка события аналитики при начале редактирования.\n */\n// todo: Перенести в shared\nexport const useOnceExecute = (callBack: () => void): () => void => {\n const [wasCalled, setWasCalled] = useState(false);\n\n return useCallback(() => {\n !wasCalled && setWasCalled((wasCalled) => {\n if (!wasCalled) {\n callBack();\n }\n\n return true;\n });\n }, [wasCalled, callBack]);\n};\n","import { createSvg } from '@r1-frontend/ui-react/components/svg/createSvg';\n\nconst SingleArrowRight = (\n {\n strokeWidth = 1.5,\n },\n): JSX.Element => {\n return \n \n ;\n};\n\nexport default createSvg(\n SingleArrowRight,\n 'single-arrow-right',\n);\n"],"names":["defaultLabel","SpeedBonusConnectionAnalytics","category","setTariff","tariff","this","startConnection","sendWithLabel","successConnected","connectionError","openConnectionConfirmation","openRouterSelection","routerSelection","router","title","selectedPrice","cost","duration","purchaseType","routerLabel","requestCreated","withLabel","undefined","timeSlotsUnavailable","confirmTimeSlotSelection","timeSlotSuccessConfirmed","timeSlotConfirmationError","getAnalyticsLabel","Error","connectionFlow","shopItemId","action","incomingLabel","label","labelByDefault","send","BaseAnalytics","speedBonusConnectionAnalytics","ESpeedBonusActions","incrementQuantity","routerId","type","payload","decrementQuantity","flushState","goToNextStep","setBusinessLogic","setConnectionCost","setResult","result","setRouters","routers","setRoutersPrice","priceInfo","setTimeSlotData","data","toggleIsLoading","status","toggleIsShowConnection","isShow","activate","dispatch","getState","isShowConnection","connectionCost","businessLogic","reqParams","selectedRouter","response","successResult","socId","contactId","bonusId","speedBonusStatus","specialOffersRequestIds","find","quantity","id","doRequest","activation","isSuccess","Plus100Status","entity","EResultPopupStatus","header","message","requestIds","length","fetchConnectPrice","batch","target","beforeSwitchToConnection","error","addRouter","prices","el","confirmTimeSlot","providerId","timeSlotData","hour","minutes","timeSlotText","Number","getProviderId","agreementId","dateFrom","date","saleAgentClientName","ESaleAgentClientName","info","comment","selectTimeSlot","split","String","padStart","requestData","action_price","base_price","needTv","needInt","install","int100","getConnectPrice","EShopCategory","prepareRouter","equipment","sortedPrices","pricesV2","sort","a","b","firstPrice","globalId","name","categoryTitle","description","bodyFull","body","props","labels","map","color","color_text","colorText","image","images","price","value","initialize","initProps","showConnectionHandler","errorHandler","speed","equipmentByCategories","categories","Routers","routerFilter","minimumSpeed","isBetterThanCurrentUserEquipment","useContextDispatch","useContext","Context","useContextSelector","selector","state","initialState","isLoading","stepIndex","reducer","rest","routersClone","cloneDeep","currRouter","newSelectedPrice","createContext","debugMode","children","useThunkReducer","console","log","Provider","Content","styled","ListContainer","wideBreakpoints","Icon","BlockContainer","isMobile","useMatchMediaByWidth","rounder","$desktop","$mobile","indent","bgColor","COLORS","ST","$direction","$wrap","$size","url","$radius","$united","WebpImage","urlWebp","LazyLoadImage","src","alt","Paragraph4","$smaller","dangerouslySetInnerHTML","__html","useElementVisibility","callback","executeOnce","useOnceExecute","useIntersectionObserver","isIntersecting","root","rootMargin","threshold","callBack","useState","node","setNode","observerInst","isClientSide","window","IntersectionObserver","observer","useRef","useEffect","current","currentObserver","disconnect","observe","queryParams","uri","method","withAuth","withProvider","params","JSON","stringify","byShopItemId","request","wasCalled","setWasCalled","useCallback","createSvg","strokeWidth","g","path","d","strokeMiterlimit","strokeLinecap","strokeLinejoin"],"sourceRoot":""}