{"version":3,"file":"static/chunks/8085-2cb36f6675b761cc.js","mappings":"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","sources":["webpack://_N_E/./src/features/full-buy/EquipPreview/styled.ts","webpack://_N_E/./src/features/full-buy/EquipPreview/index.tsx","webpack://_N_E/./src/features/full-buy/ResultMessage/styled.ts","webpack://_N_E/./src/features/full-buy/ResultMessage/index.tsx","webpack://_N_E/./src/features/full-buy/StageTitle/styled.ts","webpack://_N_E/./src/features/full-buy/StageTitle/index.tsx","webpack://_N_E/./src/features/full-buy/TariffElementNew/components/PriceElement/styled.ts","webpack://_N_E/./src/features/full-buy/TariffElementNew/components/PriceElement/index.tsx","webpack://_N_E/./src/features/full-buy/TariffElementNew/components/IncrementDecrementCounter/styled.ts","webpack://_N_E/./src/features/full-buy/TariffElementNew/components/IncrementDecrementCounter/index.tsx","webpack://_N_E/./src/features/full-buy/TariffElementNew/components/KebabMenuElement/styled.ts","webpack://_N_E/./src/features/full-buy/TariffElementNew/components/KebabMenuElement/index.tsx","webpack://_N_E/./src/features/full-buy/TariffElementNew/TariffElementWithCount.tsx","webpack://_N_E/./src/features/full-buy/analytics/context/index.tsx","webpack://_N_E/./src/features/full-buy/analytics/AddressPage.analytics.ts","webpack://_N_E/./src/features/full-buy/analytics/Contacts.analytics.ts","webpack://_N_E/./src/features/full-buy/analytics/CreateAgreement.analytics.ts","webpack://_N_E/./src/features/full-buy/analytics/Equipments.analytics.ts","webpack://_N_E/./src/features/full-buy/analytics/Feedback.analytics.ts","webpack://_N_E/./src/features/full-buy/analytics/Final.analytics.ts","webpack://_N_E/./src/features/full-buy/analytics/Subscriptions.analytics.ts","webpack://_N_E/./src/features/full-buy/analytics/Summary.analytics.ts","webpack://_N_E/./src/features/full-buy/analytics/Tariff.analytics.ts","webpack://_N_E/./src/features/full-buy/analytics/TimeSlots.analytics.ts","webpack://_N_E/./src/features/full-buy/analytics/index.ts","webpack://_N_E/../../packages/ui-react/src/components/List/UnorderedList.tsx","webpack://_N_E/../../packages/ui-react/src/components/SlideCarousel/styled.ts","webpack://_N_E/../../packages/ui-react/src/components/SlideCarousel/index.tsx","webpack://_N_E/../../packages/ui-react/src/deprecated/Accordion/themes.js","webpack://_N_E/../../packages/ui-react/src/deprecated/Accordion/index.js"],"sourcesContent":["import styled 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 Wrapper = styled.div`\n display: block;\n height: fit-content;\n width: 100%;\n margin: 24px 0;\n`;\n\nexport const PreviewBlock = styled.div``;\n\nexport const ShowMore = styled.span<{ isDesc?: boolean }>`\n ${({ isDesc }) => isDesc\n ? `\n display: block;\n ${FONTS.MediumXS};\n margin-top: 8px;\n `\n : `\n ${FONTS.XS};\n margin-left: 8px;\n `\n };\n ${FONTS.MediumXS};\n color: ${COLORS.Link};\n cursor: pointer;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n width: 100%;\n ${FONTS.MediumXXS};\n }\n`;\n\nexport const ImageDisplay = styled.div<{ isFullWidth: boolean }>`\n justify-content: center;\n width: ${({ isFullWidth }) => isFullWidth ? '100%' : '420px'};\n height: 240px;\n \n img {\n height: 100%;\n width: 100%;\n border-radius: 24px;\n object-fit: ${({ isFullWidth }) => isFullWidth ? 'initial' : 'contain'};\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n height: 150px;\n margin: 0 auto;\n }\n`;\n\nexport const ImagesList = styled.div`\n align-content: flex-start;\n width: 54px;\n margin-left: 16px;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n width: 100%;\n margin-left: 0;\n }\n`;\n\nexport const ImageItem = styled.div<{ isSelected: boolean }>`\n justify-content: center;\n width: 54px;\n height: 54px;\n border-radius: 8px;\n overflow: hidden;\n cursor: pointer;\n ${({ isSelected }) => isSelected ? `border: 2px solid ${COLORS.ButtonAccent};` : ''}\n &:not(:first-child) {margin-top: 8px;}\n\n img {\n height: 100%;\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n margin-right: 8px;\n &:first-child {margin-top: 8px;}\n }\n`;\n\nexport const DescBlock = styled.div`\n display: block;\n margin-top: 24px;\n`;\n\nexport const DescTitle = styled.p`\n ${FONTS.H5};\n margin-bottom: 4px;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n margin-bottom: 8px;\n }\n`;\n\n// @todo Нужно проработать этот вопрос с разных сторон и создать компонент под это, комплексно закрыть вопрос отображения данных от апи.\nexport const Text = styled.div<{ isExpanded: boolean }>`\n display: inline;\n color: ${COLORS.TextHint};\n ${FONTS.XS};\n height: ${({ isExpanded }) => isExpanded ? 'auto' : '60px'};\n overflow: hidden;\n * {\n padding: revert;\n }\n p div span {\n display: inline;\n }\n ul li {\n display: list-item;\n list-style: disc;\n }\n ol {\n display: list-item;\n list-style: decimal;\n }\n`;\n\nexport const SpecsList = styled.div<{ isExpanded: boolean }>`\n display: block;\n width: 100%;\n height: ${({ isExpanded }) => isExpanded ? 'auto' : '60px'};\n overflow: hidden;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n height: ${({ isExpanded }) => isExpanded ? 'auto' : '60px'};\n }\n`;\n\nexport const SpecItem = styled.div`\n align-items: flex-end;\n justify-content: space-between;\n margin-top: 4px;\n ${FONTS.XXS};\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n margin-top: 4px;\n }\n`;\n\nexport const SpecRow = styled.div`\n position: relative;\n width: 50%;\n overflow: hidden;\n\n &:first-child:after {\n position: absolute;\n display: block;\n width: 100%;\n content: \"\";\n border-bottom: 1px dotted ${COLORS.TextHint};\n left: 0;\n bottom: 4px;\n z-index: 0;\n }\n`;\n\nexport const SpecName = styled.span`\n position: relative;\n color: ${COLORS.TextHint};\n background-color: ${COLORS.BgMain};\n padding-right: 1px;\n z-index: 1;\n`;\n\nexport const SpecValue = styled.span`\n color: ${COLORS.TextPrimary};\n width: 100%;\n margin-left: 2px;\n`;\n","import React, { useMemo, useState } from 'react';\n\nimport { IEquipmentProp } from '@r1-frontend/api-domru/full-buy/v1/equipment/dto/EquipmentProp.dto';\n\nimport { truncate } from '@r1-frontend/shared/helpers/truncate';\n\nimport * as ST from './styled';\n\nconst DEFAULT_DESCRIPTION_LENGTH = 170;\n\nexport interface IEquipPreview {\n className?: string,\n name?: string,\n images?: string[] | null,\n displayImage: string,\n equipProps?: IEquipmentProp[],\n description?: string,\n withDescTitle?: boolean,\n}\n\ninterface IShortContent {\n contentLength: number,\n content: string,\n}\n\nconst checkPropsHaveJSON = (props: IEquipmentProp[]) => {\n return props?.filter((prop) => prop?.value !== '[\"show\"]').map((prop) => {\n let value = '';\n\n try {\n // Проверяем что в prop.value содержится JSON,\n // тогда берем уже вычисленное значение prop.computedValue\n const parsedProp = JSON.parse(prop?.value as string);\n if (parsedProp.length && prop.computedValue) {\n value = prop.computedValue;\n }\n if (prop.type === 'radio') {\n value = parsedProp ? 'Да' : 'Нет';\n }\n } catch {\n // Иначе берем значение prop.value как есть\n value = prop.value as string;\n }\n prop.computedValue = value?.toString();\n\n return { ... prop };\n });\n};\n\nconst EquipPreview = ({\n className,\n images = [],\n displayImage,\n equipProps = [],\n description = '',\n withDescTitle = true,\n} : IEquipPreview): JSX.Element => {\n const [isExpanded, setIsExpanded] = useState(false);\n const [selectedImage, setSelectedImage] = useState(images?.length && images[0]);\n\n const filteredProps = useMemo(() => checkPropsHaveJSON(equipProps), [equipProps]);\n\n const shortContent = useMemo(() => {\n let contentLength = 0;\n let content = '';\n\n if (description) {\n content = description.replace(/^(<.*?>)?(.*)(<\\/.*?>)?$/, (_, _lt, _content, _rt) => {\n contentLength = _content.length;\n return `${_lt || ''}${truncate(_content, DEFAULT_DESCRIPTION_LENGTH)}${_rt || ''}`;\n });\n }\n\n return {\n contentLength,\n content,\n };\n }, [description]);\n\n const showMoreText = !filteredProps?.length ? 'Читать больше' : 'Подробнее';\n const isShowMore = shortContent.contentLength > DEFAULT_DESCRIPTION_LENGTH;\n\n return (\n \n \n \n Продукт\n \n {!!images?.length &&\n \n {images?.map((image, idx) => (\n setSelectedImage(image)}\n isSelected={selectedImage === image}\n >\n {`Картинка\n \n ))\n }\n \n }\n \n \n {withDescTitle && Коротко о товаре}\n {filteredProps.length > 0\n ? \n {filteredProps?.map((item, idx) => (\n \n {item?.title}\n {item?.computedValue}\n \n ))\n }\n \n : \n }\n {(!!filteredProps.length || isShowMore) &&\n setIsExpanded(!isExpanded)}>\n {!isExpanded ? showMoreText : 'Скрыть'}\n \n }\n \n \n );\n};\n\nexport default React.memo(EquipPreview);\n","import styled, { css } from 'styled-components';\n\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\n/**\n * @deprecated use @r1-frontend/ui-react/alert\n */\nexport const ResultMessage = styled.div<{isResultNoFreeTime?: boolean, isError?: boolean}>`\n flex-wrap: nowrap;\n align-items: flex-start;\n margin-bottom: ${({ isResultNoFreeTime }) => isResultNoFreeTime ? '0' : '20px'};\n width: 100%;\n ${FONTS.S};\n ${({ isError }) => isError && css`\n padding: 18px;\n background-color: ${COLORS.BgError};\n border-radius: ${BorderRadius.OuterBlockRadius};\n `};\n \n`;\n\n/**\n * @deprecated use @r1-frontend/ui-react/alert\n */\nexport const IconWrap = styled.div`\n justify-content: center;\n align-items: center;\n`;\n\n/**\n * @deprecated use @r1-frontend/ui-react/alert\n */\nexport const Icon = styled.img`\n width: 20px;\n height: 20px;\n margin-right: 10px;\n`;\n","import * as ST from './styled';\n\n/**\n * @deprecated\n */\ninterface ResultMessageProps {\n message: string | JSX.Element,\n imgSrc: string,\n symbolId?: string,\n imgWidth?: string,\n imgHeight?: string,\n isResultNoFreeTime?: boolean,\n className?: string,\n isError?: boolean,\n}\n\n/**\n * @deprecated use @r1-frontend/ui-react/alert\n */\nexport const ResultMessage = ({ message, imgSrc, symbolId, imgWidth, imgHeight, isResultNoFreeTime, className, isError }: ResultMessageProps): JSX.Element => {\n return (\n \n \n {!symbolId\n ? \n : \n \n \n }\n \n {message}\n \n );\n};\n","import styled 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\ninterface IProps {\n isComplete?: boolean,\n isUnactive?: boolean,\n}\n\nconst getFontColor = (p: IProps) => {\n if (p.isUnactive) {\n return COLORS.TextDisabled;\n }\n\n if (p.isComplete) {\n return COLORS.TextWhite;\n }\n\n return COLORS.TextPrimary;\n};\n\nexport const StageTitleWrapper = styled.div`\n flex-direction: column;\n align-items: flex-start;\n padding: 0;\n`;\n\nexport const StageNumberWrap = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n margin-bottom: 8px;\n width: 26px;\n height: 26px;\n border-radius: 50%;\n border: 2px solid ${p => p.isUnactive ? COLORS.GRAY_LIGHT : COLORS.Control};\n background-color: ${p => p.isComplete ? COLORS.Control : 'transparent'};\n`;\n\nexport const StageNumber = styled.div`\n ${FONTS.H5};\n line-height: 1;\n color: ${p => getFontColor(p)};\n`;\n\nexport const StageTitle = styled.div`\n ${FONTS.H3};\n color: ${p => p.isUnactive ? COLORS.TextDisabled : COLORS.TextPrimary};\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n ${FONTS.H4};\n }\n`;\n\nexport const StageSubTitle = styled.span`\n white-space: nowrap;\n`;\n","import React, { FC } from 'react';\n\nimport * as ST from './styled';\n\nexport interface StageTitleProps {\n stageTitle: string,\n stageSubTitle?: string,\n stageNumber?: number,\n currentNumber: number,\n isSubscriptionsNotSelected?: boolean | null,\n}\n\nexport const StageTitle: FC = ({ stageTitle, stageSubTitle, stageNumber, currentNumber, isSubscriptionsNotSelected }) => {\n const isUnactive = () => {\n if (isSubscriptionsNotSelected) {\n return isSubscriptionsNotSelected;\n }\n return stageNumber ? currentNumber < stageNumber : false;\n };\n\n return (\n \n \n {stageTitle}\n {stageSubTitle && <>\n  \n \n {stageSubTitle}\n \n }\n \n \n );\n};\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 PriceElement = styled.div<{ isRowDirection?: boolean }>`\n flex-direction: column;\n align-items: flex-end;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n align-items: flex-start;\n }\n\n ${p => p.isRowDirection && css`\n flex-direction: row;\n justify-content: space-between;\n width: 100%;\n `};\n`;\n\nexport const Price = styled.div`\n white-space: nowrap;\n ${FONTS.XS};\n color: ${COLORS.TextPrimary};\n`;\n\nexport const PriceText = styled.div`\n ${FONTS.XS};\n color: ${COLORS.TextSecondary};\n`;\n","import React from 'react';\n\nimport * as ST from './styled';\n\nexport interface IPriceProps {\n price?: string,\n priceText?: string,\n isRowDirection?: boolean,\n}\n\n/**\n * Элемент стоимость и описание\n * @param isRowDirection - расположение в строку, по умолчанию в столбец\n */\nexport const PriceElement = ({\n price,\n priceText,\n isRowDirection,\n} : IPriceProps): JSX.Element => {\n if (!price && !priceText) {\n return <>;\n }\n\n return (\n \n {priceText}\n {price}\n \n );\n};\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\n\nexport const IncrementDecrementCounter = styled.div`\n align-items: center;\n flex-wrap: nowrap;\n column-gap: 2px;\n width: auto;\n padding: 6px 12px;\n background: ${COLORS.BgMain};\n border-radius: 30px;\n`;\n\nexport const Btn = styled.img<{isHide?: boolean}>`\n width: 24px;\n height: 24px;\n cursor: pointer;\n opacity: ${p => p.isHide ? '0.2' : '1'};\n pointer-events: ${p => p.isHide ? 'none' : 'inherit'};\n`;\n\nexport const CountValue = styled.div`\n min-width: 20px;\n justify-content: center;\n ${FONTS.S};\n color: ${COLORS.TextPrimary};\n`;\n","import React from 'react';\n\nimport * as ST from './styled';\n\ninterface IBaseProps {\n value?: number,\n min?: number,\n onChangeCount?: (value: number) => void,\n className?: string,\n}\n\ninterface ICounterMaxCount extends IBaseProps {\n isIncrementDisable?: boolean,\n max?: never,\n}\n\ninterface ICounterMax extends IBaseProps {\n isIncrementDisable?: never,\n max?: number,\n}\nexport type ICounterProps = ICounterMaxCount | ICounterMax;\n\n/**\n * Счетчик +/-\n * @param isIncrementDisable - блокируется увеличение счетчика\n * @param max - максимально возможное количество, при котором блокируется увеличение счетчика\n */\nexport const IncrementDecrementCounter = ({ value, max = 9, min = 1, isIncrementDisable, onChangeCount, className }: ICounterProps): JSX.Element => {\n const isMinimum = value === min;\n const isMaximum = value === max;\n\n if (!value || !onChangeCount) {\n return <>;\n }\n\n return (\n \n null : () => onChangeCount(-1)}\n isHide={isMinimum}\n data-test='decrement'\n />\n \n {value}\n \n null : () => onChangeCount(1)}\n isHide={isIncrementDisable || isMaximum}\n data-test='increment'\n />\n \n );\n};\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nexport const KebabMenuElement = styled.div<{ imgBgColor?: string }>`\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n background-color: ${COLORS.ButtonSecondary};\n border-radius: 50%;\n`;\n","import React from 'react';\n\nimport { IKebabItem, KebabMenu } from '@r1-frontend/ui-react/components/KebabMenu';\n\nimport * as ST from './styled';\n\nexport type { IKebabItem };\n\nexport interface IKebabMenuProps {\n kebabMenuItems?: IKebabItem[],\n onSelectItem?: (item?: IKebabItem) => void,\n onClickMenu?: (menuStatus?: boolean) => void,\n}\n\nexport const KebabMenuElement = ({\n kebabMenuItems,\n onClickMenu,\n onSelectItem,\n} : IKebabMenuProps): JSX.Element => {\n if (!kebabMenuItems?.length || !onSelectItem) {\n return <>;\n }\n\n return (\n \n \n \n );\n};\n","import React, { memo } from 'react';\n\nimport HtmlContentFromApi from '@r1-frontend/ui-react/components/HtmlContentFromApi';\n\nimport { IImageProps, ImageElement } from './components/ImageElement';\nimport { ICounterProps, IncrementDecrementCounter } from './components/IncrementDecrementCounter';\nimport { IKebabItem, IKebabMenuProps, KebabMenuElement } from './components/KebabMenuElement';\nimport { IPriceProps, PriceElement } from './components/PriceElement';\n\nimport * as ST from './styled';\n\nexport type { IKebabItem };\n\nexport interface TariffElementWithCountProps {\n title: string,\n titleText?: string,\n imageProps: IImageProps,\n kebabMenuProps?: IKebabMenuProps,\n priceProps?: IPriceProps,\n counterProps?: ICounterProps,\n}\n\n/**\n * Элемент тарифа со счетчиком\n * @param priceProps - свойсвта цены\n * @param counterProps - свойства счетчика\n * @param kebabMenuProps - свойства кебаб-меню\n */\nexport const TariffElementWithCount = (item: TariffElementWithCountProps): JSX.Element => {\n const {\n title,\n titleText,\n kebabMenuProps,\n imageProps,\n priceProps,\n counterProps,\n } = item;\n return (\n \n \n \n \n\n \n {title}\n\n {titleText &&\n \n \n \n {titleText}\n \n \n \n }\n \n \n\n \n \n \n \n\n \n \n\n \n {titleText &&\n \n \n {titleText}\n \n \n }\n \n \n \n \n );\n};\n\nexport default memo(TariffElementWithCount);\n","import { createContext, ReactNode, useContext, useMemo } from 'react';\n\nimport FullBuyAnalytics from '~/src/features/full-buy/analytics';\n\nexport type TFullBuyContextProperties = {\n analytics: FullBuyAnalytics,\n isVillage: boolean,\n}\n\nexport const FullBuyContext = createContext({\n analytics: new FullBuyAnalytics(),\n isVillage: false,\n});\n\nexport const useAnalytics = (): FullBuyAnalytics => {\n const fullBuyCtx = useContext(FullBuyContext);\n\n if (!fullBuyCtx) {\n throw new Error('useAnalytics must be used within an AnalyticsProvider');\n }\n\n const { analytics } = fullBuyCtx;\n\n return useMemo(() => analytics, [analytics]);\n};\n\ntype TFullBuyProviderProperties = {\n analytics: FullBuyAnalytics,\n isVillage?: boolean,\n children: ReactNode,\n}\n\nconst FullBuyProvider = ({ analytics, isVillage = false, children }: TFullBuyProviderProperties) => {\n return (\n \n {children}\n \n );\n};\n\nexport default FullBuyProvider;\n","import { BaseAnalytics } from '@r1-frontend/analytics/dataLayerPush';\n\nclass AddressPageAnalytics extends BaseAnalytics {\n constructor(category: string) {\n super();\n this.category = category;\n }\n\n changeAddressClicked(): void {\n this.send('click_to_change');\n }\n\n only100Clicked(): void {\n this.send('click_only_100');\n }\n\n lessThan1000Clicked(): void {\n this.send('click_less_then_1000');\n }\n\n continueClicked(): void {\n this.send('step_check_address', 'confirm');\n }\n\n checkClicked() {\n this.send('click address verification');\n }\n\n verificationSuccess() {\n this.send('address verification', 'success');\n }\n\n verificationFailed(reason?: string) {\n const message = reason\n ? `error_${reason}`\n : 'error';\n\n this.send('address verification', message);\n }\n\n popupAddressAgreement(label: string) {\n this.send('popup_address_dogovor', label);\n }\n}\n\nexport default AddressPageAnalytics;\n","import { BaseAnalytics } from '@r1-frontend/analytics/dataLayerPush';\n\nclass ContactsAnalytics extends BaseAnalytics {\n constructor(category: string) {\n super();\n this.category = category;\n }\n\n startEnterName() {\n this.send('enter fio');\n }\n\n startEnterPhoneNumber() {\n this.send('enter phone_number');\n }\n\n openVerification() {\n this.send('open_personal_data_verification');\n }\n\n submitVerificationForm() {\n this.send('step_personal_data', 'confirm');\n }\n}\n\nexport default ContactsAnalytics;\n","import { BaseAnalytics } from '@r1-frontend/analytics/dataLayerPush';\n\nclass CreateAgreementAnalytics extends BaseAnalytics {\n constructor(category: string) {\n super();\n this.category = category;\n }\n\n try() {\n this.send('create_agreement_api', 'Попытка создания договора');\n }\n\n success(agreementNumber: number | null, comment: string) {\n this.send('create agreement', `success: ${agreementNumber} ${comment}`);\n }\n\n fail(error: string, comment: string) {\n this.send('create agreement', `error: ${error} ${comment}`);\n }\n\n double(agreementNumber: number | null, comment: string) {\n this.send('create agreement', `double: ${agreementNumber} ${comment}`);\n }\n\n promocodeActivation(label: string) {\n this.send('promocode_activation', label);\n }\n}\n\nexport default CreateAgreementAnalytics;\n","import { BaseAnalytics } from '@r1-frontend/analytics/dataLayerPush';\n\nclass EquipmentsAnalytics extends BaseAnalytics {\n constructor(category: string) {\n super();\n this.category = category;\n }\n\n clickContinue() {\n this.send('click_continue');\n }\n\n chooseEquipmentContinue() {\n this.send('choose_equipment_continue');\n }\n\n addProduct(title: string) {\n this.send('add_product', title);\n }\n\n deleteEquipment(title: string) {\n this.send('delete_equipment', title);\n }\n\n clickShowMore() {\n this.send('click_show_more_equipment');\n }\n\n chooseCostType(title: string) {\n this.send('choose_cost_type', title);\n }\n\n chooseDuration(title: string) {\n this.send('choose_duration', title);\n }\n\n clickAddProduct(title: string) {\n this.send('click_add_product', title);\n }\n}\n\nexport default EquipmentsAnalytics;\n","import { BaseAnalytics } from '@r1-frontend/analytics/dataLayerPush';\n\nclass FeedbackAnalytics extends BaseAnalytics {\n constructor(category = 'feedback') {\n super();\n\n this.category = category;\n }\n\n positive(agreementNumber: number | null) {\n this.send('feedback_positive', String(agreementNumber));\n }\n\n negative(agreementNumber: number | null, message?: string) {\n if (message) {\n const agreementWithMessage = `${agreementNumber}|${message}`;\n this.send('feedback_negative_detail', String(agreementWithMessage));\n } else {\n this.send('feedback_negative', String(agreementNumber));\n }\n }\n}\n\nexport default FeedbackAnalytics;\n","import { BaseAnalytics } from '@r1-frontend/analytics/dataLayerPush';\n\nclass FinalAnalytics extends BaseAnalytics {\n constructor(category: string) {\n super();\n this.category = category;\n }\n\n clickPayment() {\n this.send('click payment');\n }\n\n clickCallTouch() {\n this.send('click calltouch');\n }\n\n clickChat() {\n this.send('click chat');\n }\n}\n\nexport default FinalAnalytics;\n","import { BaseAnalytics } from '@r1-frontend/analytics/dataLayerPush';\n\nclass SubscriptionsAnalytics extends BaseAnalytics {\n constructor(category: string) {\n super();\n this.category = category;\n }\n\n clickMoreSubscriptions() {\n this.send('click_more_subscriptions');\n }\n\n clickSubscriptionsCheckBox(title: string) {\n this.send('click on the subscription check-box', title);\n }\n}\n\nexport default SubscriptionsAnalytics;\n","import { BaseAnalytics } from '@r1-frontend/analytics/dataLayerPush';\n\nclass SummaryAnalytics extends BaseAnalytics {\n constructor(category: string) {\n super();\n this.category = category;\n }\n\n clickOpenBottomStickySummary() {\n this.send('click check payment', 'click');\n }\n\n promocodeStartedTyping() {\n this.send('promocode_start_enter');\n }\n\n clickViewConnectionCostPopup() {\n this.send('connection_cost_popup', 'view_popup');\n }\n\n promocodeSuccessVerification(promocode: string | undefined) {\n this.send('promocode_verification', `success | ${promocode}`);\n }\n\n promocodeFailVerification(promocode: string) {\n this.send('promocode_verification', `error | ${promocode}`);\n }\n\n promocodeClickedOnHave() {\n this.send('promocode_click_have');\n }\n\n promocodeClickVerification() {\n this.send('promocode_click_verification');\n }\n}\n\nexport default SummaryAnalytics;\n","import { BaseAnalytics } from '@r1-frontend/analytics/dataLayerPush';\n\nclass TariffAnalytics extends BaseAnalytics {\n constructor(category = 'tariff') {\n super();\n\n this.category = category;\n }\n\n choose(name?: string) {\n this.send('step_choose_tariff', name);\n }\n\n chooseRecommended(name = '') {\n name = name.concat(' (выбранный тариф)');\n this.send('choose_recomended_tariff_slider', name);\n }\n\n chooseRecommendedFilter(name: string) {\n this.send('choose_recommended_tariff_filter', name);\n }\n\n popupOpened(label?: string) {\n this.send('popup', label);\n }\n\n add(title: string) {\n this.send('add', title);\n }\n\n remove(title: string) {\n this.send('remove', title);\n }\n\n clickMenu(title?: string) {\n this.send('click kebab menu', title);\n }\n}\n\nexport default TariffAnalytics;\n","import { BaseAnalytics } from '@r1-frontend/analytics/dataLayerPush';\n\nclass TimeSlotsAnalytics extends BaseAnalytics {\n constructor(category: string) {\n super();\n this.category = category;\n }\n\n start() {\n this.send('request connection', 'start');\n }\n\n success() {\n this.send('request connection', 'success');\n }\n\n failed(errorMessage: string, domain: string) {\n const label = `error select slot ${errorMessage} ${domain}`;\n this.send('request connection', label);\n }\n}\n\nexport default TimeSlotsAnalytics;\n","import { BaseAnalytics } from '@r1-frontend/analytics/dataLayerPush';\nimport UnifiedAddressFormAnalytics from '@r1-frontend/unified-address-form/analytics';\n\nimport AddressPageAnalytics from '~/src/features/full-buy/analytics/AddressPage.analytics';\nimport ContactsAnalytics from '~/src/features/full-buy/analytics/Contacts.analytics';\nimport CreateAgreementAnalytics from '~/src/features/full-buy/analytics/CreateAgreement.analytics';\nimport EquipmentsAnalytics from '~/src/features/full-buy/analytics/Equipments.analytics';\nimport FeedbackAnalytics from '~/src/features/full-buy/analytics/Feedback.analytics';\nimport FinalAnalytics from '~/src/features/full-buy/analytics/Final.analytics';\nimport SubscriptionsAnalytics from '~/src/features/full-buy/analytics/Subscriptions.analytics';\nimport SummaryAnalytics from '~/src/features/full-buy/analytics/Summary.analytics';\nimport TariffAnalytics from '~/src/features/full-buy/analytics/Tariff.analytics';\nimport TimeSlotsAnalytics from '~/src/features/full-buy/analytics/TimeSlots.analytics';\nimport { ESteps } from '~/src/features/full-buy/types';\n\nclass FullBuyAnalytics extends BaseAnalytics {\n summary!: SummaryAnalytics;\n tariff!: TariffAnalytics;\n subscriptions!: SubscriptionsAnalytics;\n equipment!: EquipmentsAnalytics;\n unifiedAddressForm!: UnifiedAddressFormAnalytics;\n address!: AddressPageAnalytics;\n feedback!: FeedbackAnalytics;\n contacts!: ContactsAnalytics;\n createAgreement!: CreateAgreementAnalytics;\n timeSlots!: TimeSlotsAnalytics;\n final!: FinalAnalytics;\n\n constructor(category = 'full-buy') {\n super();\n this.category = category;\n\n this.summary = new SummaryAnalytics(this.category);\n this.tariff = new TariffAnalytics(this.category);\n this.subscriptions = new SubscriptionsAnalytics(this.category);\n this.equipment = new EquipmentsAnalytics(this.category);\n this.unifiedAddressForm = new UnifiedAddressFormAnalytics(this.category);\n this.address = new AddressPageAnalytics(this.category);\n this.feedback = new FeedbackAnalytics(this.category);\n this.contacts = new ContactsAnalytics(this.category);\n this.createAgreement = new CreateAgreementAnalytics(this.category);\n this.timeSlots = new TimeSlotsAnalytics(this.category);\n this.final = new FinalAnalytics(this.category);\n }\n\n initializationByTariffLine(message = '') {\n this.send('open_tariffline', message);\n }\n\n clickGuide(step: ESteps | undefined) {\n this.send('click_guide', step);\n }\n\n clickBanner(tariffName: string) {\n this.send('choose_recommended_tariff_banner', tariffName);\n }\n\n}\n\nexport default FullBuyAnalytics;\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","import styled from 'styled-components';\n\nimport NukaCarousel from '@r1-frontend/ui-react/components/NukaCarousel';\n\nexport const CustomNukaCarousel = styled(NukaCarousel)<{ cursorType: string }>`\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 div.slider-list {\n cursor: ${p => p.dragging ? 'grab' : p.cursorType} !important;\n }\n }\n`;\n","import { Children, ReactNode, useCallback, useEffect, useRef, useState } from 'react';\nimport { CarouselControlContainerProp, CSSProperties } from 'nuka-carousel';\n\nimport { ICarouselProps } from '@r1-frontend/ui-react/components/NukaCarousel';\n\nimport { CustomNukaCarousel } from './styled';\n\nexport interface ISlideCarouselProps extends ICarouselProps {\n children: Array,\n slideWidth: number,\n cellSpacing: number,\n dragging?: boolean,\n cursorType?: string,\n customControlsContainerStyles?: (key: CarouselControlContainerProp) => CSSProperties,\n}\n\nconst DOTS_PADDING = -30;\nconst ARROWS_PADDING = -22;\n\nconst defaultControlsContainerStyles = (key: CarouselControlContainerProp): CSSProperties => {\n switch (key) {\n case 'BottomCenter':\n return {\n bottom: DOTS_PADDING,\n };\n case 'CenterRight':\n return {\n right: `${ARROWS_PADDING}px`,\n };\n case 'CenterLeft':\n return {\n left: `${ARROWS_PADDING}px`,\n };\n default: return {};\n }\n};\n\n/**\n * Карусель с автоматическим определением количества видимых слайдов\n * @param slideWidth - ширина слайда карусели\n * @param cellSpacing - расстояние между слайдами\n * @param slideIndex - прокрутка к указанному слайду\n */\nconst SlideCarousel = ({\n children,\n slideWidth = 304,\n cellSpacing = 20,\n withoutArrows,\n withoutDots,\n dragging = true,\n cursorType = 'initial',\n slideIndex = 0,\n customControlsContainerStyles = defaultControlsContainerStyles,\n ...props\n}: ISlideCarouselProps): JSX.Element => {\n const swiperRef = useRef(null);\n\n const [currIndex, setCurrIndex] = useState(slideIndex);\n\n const [sliderSettings, setSettings] = useState({\n correctSlideWidth: slideWidth,\n isAllSlidesView: false,\n });\n\n const onResize = useCallback(() => {\n if (!swiperRef.current) {\n return;\n }\n\n const oneSlideWidth = slideWidth + cellSpacing;\n\n const sliderWidth = swiperRef.current.clientWidth;\n\n const slideCount = sliderWidth / oneSlideWidth;\n\n const correctSlideWidth = sliderWidth < oneSlideWidth ? sliderWidth - cellSpacing : slideWidth;\n\n const isAllSlidesView = Children.count(children) < slideCount;\n\n setSettings({\n correctSlideWidth,\n isAllSlidesView,\n });\n }, [cellSpacing, slideWidth, children]);\n\n useEffect(() => {\n onResize();\n }, [onResize]);\n\n useEffect(() => {\n const newIndex = slideIndex === -1 ? 0 : slideIndex;\n\n if (newIndex !== currIndex) {\n setCurrIndex(newIndex);\n }\n }, [currIndex, slideIndex]);\n\n return (\n \n {Children.map(children, (child) => {\n return child;\n })}\n \n );\n};\n\nexport default SlideCarousel;\n","import { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nconst themes = {\n bordered: {\n background: COLORS.BgMain,\n borderWidth: '1px',\n radius: '4px',\n padding: '20px',\n mobilePadding: '15px',\n color: COLORS.TextPrimary,\n },\n simple: {\n background: 'transparent',\n borderWidth: '1px 0',\n radius: '0px',\n padding: '20px 0',\n mobilePadding: '15px 0',\n color: COLORS.TextPrimary,\n },\n light: {\n border: COLORS.BgLight,\n background: COLORS.BgLight,\n color: COLORS.TextPrimary,\n colorArrow: COLORS.GRAY_DARK,\n backgroundIcon: COLORS.BgSecondary,\n borderIcon: COLORS.BgSecondary,\n colorArrowIsOpen: COLORS.GRAY_DARK,\n backgroundIconIsOpen: COLORS.Outline_Light,\n borderIconIsOpen: COLORS.Outline_Light,\n radius: BorderRadius.componentRadius,\n padding: '20px 24px',\n mobilePadding: '15px',\n storyColor: COLORS.BgMain,\n },\n dark: {\n border: COLORS.Control,\n background: COLORS.Control,\n color: COLORS.TextWhite,\n colorArrow: COLORS.Control,\n backgroundIcon: COLORS.GRAY_DARK,\n borderIcon: COLORS.GRAY_DARK,\n colorArrowIsOpen: COLORS.Control,\n backgroundIconIsOpen: COLORS.TextWhite,\n borderIconIsOpen: COLORS.TextWhite,\n radius: BorderRadius.componentRadius,\n padding: '20px 24px',\n mobilePadding: '15px',\n storyColor: '#3D3D3D',\n },\n};\n\nexport default themes;\n","import { 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';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styled, { ThemeProvider } from 'styled-components';\n\nimport themes from './themes.js';\n\nconst Wrapper = styled.div`\n flex-direction: column;\n width: 100%;\n background: ${props => props.theme.background};\n border: 1px solid ${({ theme }) => theme.border ? theme.border : COLORS.GRAY_LIGHT};\n border-width: ${props => props.theme.borderWidth};\n border-radius: ${props => props.theme.radius};\n padding: ${props => props.theme.padding};\n color: ${({ theme }) => theme.color ? theme.color : COLORS.TextPrimary};\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n padding: ${props => props.theme.mobilePadding};\n }\n`;\n\nconst AccordionTitle = styled.div`\n ${FONTS.L};\n width: 100%;\n justify-content: space-between;\n align-items: center;\n flex-wrap: nowrap;\n cursor: pointer;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.S};\n }\n`;\n\nconst Title = styled.div`\n flex-grow: 1;\n width: calc(100% - 53px); \n ${props => props.theme.desktopFont || ''};\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n width: calc(100% - 39px);\n ${props => props.theme.mobileFont || ''};\n }\n`;\n\nconst Icon = styled.span`\n position:relative;\n margin-left: 20px;\n flex: 0 0 36px;\n height: 36px;\n border-radius: 50%;\n transform: ${props => props.open ? 'none' : 'scaleY(-1)'};\n transition: all 0.2s ease-in;\n svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n circle {\n stroke: ${({ borderIcon }) => borderIcon ? borderIcon : COLORS.GRAY_DARK};\n fill: ${({ backgroundIcon }) => backgroundIcon ? backgroundIcon : COLORS.GRAY_LIGHT};\n }\n path {\n stroke: ${({ colorArrow }) => colorArrow ? colorArrow : COLORS.GRAY_DARK};\n }\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n margin-left: 15px;\n background-size: contain;\n }\n`;\n\nconst Border = styled.div`\n height: 1px;\n width: 100%;\n background: transparent;\n margin: 8px 0;\n`;\n\nconst AccordionBody = styled.div`\n width: 100%;\n max-height: ${props => props.open ? '100%' : '0'};\n ${FONTS.S};\n overflow: hidden;\n transition: max-height 0.2s ${props => props.open ? 'ease-in' : 'ease-out'};\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.XS};\n }\n`;\n\nconst DEFAULT_THEME = 'light';\n\n/**\n * @deprecated\n * use instead @r1-frontend/ui-react/src/components/accordions/Accordion\n */\nexport default class Accordion extends React.Component {\n static propTypes = {\n defaultOpen: PropTypes.bool,\n open: PropTypes.bool,\n withDividingBorder: PropTypes.bool,\n toggle: PropTypes.func,\n customTheme: PropTypes.object,\n };\n\n static defaultProps = {\n defaultOpen: false,\n withDividingBorder: true,\n theme: DEFAULT_THEME,\n customTheme: {},\n toggle: () => {},\n };\n\n constructor(props) {\n super(props);\n this.state = {\n open: props.defaultOpen,\n };\n }\n\n toggle = () => {\n this.props.toggle();\n this.setState(state => ({\n open: !state.open,\n }));\n }\n\n render() {\n const { children, title, open = this.state.open, onOpen = this.toggle, theme, customTheme, withDividingBorder, ...rest } = this.props;\n let colors = themes[theme] || themes[DEFAULT_THEME];\n if (customTheme) {\n colors = { ...colors, ...customTheme };\n }\n return (\n \n \n \n {title}\n \n \n \n \n \n \n \n \n {withDividingBorder && }\n {children}\n \n \n \n );\n }\n}\n"],"names":["Wrapper","styled","PreviewBlock","ShowMore","isDesc","FONTS","COLORS","wideBreakpoints","ImageDisplay","isFullWidth","ImagesList","ImageItem","isSelected","DescBlock","DescTitle","Text","isExpanded","SpecsList","SpecItem","SpecRow","SpecName","SpecValue","EquipPreview","className","images","displayImage","equipProps","description","withDescTitle","useState","setIsExpanded","length","selectedImage","setSelectedImage","filteredProps","useMemo","props","filter","prop","value","map","parsedProp","JSON","parse","computedValue","type","toString","shortContent","contentLength","content","replace","_","_lt","_content","_rt","truncate","showMoreText","isShowMore","ST","img","src","alt","image","idx","onClick","item","title","dangerouslySetInnerHTML","__html","React","ResultMessage","isResultNoFreeTime","isError","css","BorderRadius","IconWrap","Icon","message","imgSrc","symbolId","imgWidth","imgHeight","svg","width","height","use","href","StageTitleWrapper","StageTitle","p","isUnactive","isComplete","getFontColor","StageSubTitle","stageTitle","stageSubTitle","stageNumber","currentNumber","isSubscriptionsNotSelected","PriceElement","isRowDirection","Price","PriceText","price","priceText","data-test","IncrementDecrementCounter","Btn","isHide","CountValue","max","min","isIncrementDisable","onChangeCount","isMinimum","isMaximum","KebabMenuElement","kebabMenuItems","onClickMenu","onSelectItem","KebabMenu","menuItems","onSelectMenu","TariffElementWithCount","titleText","kebabMenuProps","imageProps","priceProps","counterProps","ImageElement","HtmlContentFromApi","withCounts","memo","FullBuyContext","createContext","analytics","FullBuyAnalytics","isVillage","useAnalytics","fullBuyCtx","useContext","Error","children","Provider","AddressPageAnalytics","category","changeAddressClicked","this","send","only100Clicked","lessThan1000Clicked","continueClicked","checkClicked","verificationSuccess","verificationFailed","reason","popupAddressAgreement","label","BaseAnalytics","ContactsAnalytics","startEnterName","startEnterPhoneNumber","openVerification","submitVerificationForm","CreateAgreementAnalytics","try","success","agreementNumber","comment","fail","error","double","promocodeActivation","EquipmentsAnalytics","clickContinue","chooseEquipmentContinue","addProduct","deleteEquipment","clickShowMore","chooseCostType","chooseDuration","clickAddProduct","FeedbackAnalytics","positive","String","negative","agreementWithMessage","FinalAnalytics","clickPayment","clickCallTouch","clickChat","SubscriptionsAnalytics","clickMoreSubscriptions","clickSubscriptionsCheckBox","SummaryAnalytics","clickOpenBottomStickySummary","promocodeStartedTyping","clickViewConnectionCostPopup","promocodeSuccessVerification","promocode","promocodeFailVerification","promocodeClickedOnHave","promocodeClickVerification","TariffAnalytics","choose","name","chooseRecommended","concat","chooseRecommendedFilter","popupOpened","add","remove","clickMenu","TimeSlotsAnalytics","start","failed","errorMessage","domain","summary","tariff","subscriptions","equipment","unifiedAddressForm","UnifiedAddressFormAnalytics","address","feedback","contacts","createAgreement","timeSlots","final","initializationByTariffLine","clickGuide","step","clickBanner","tariffName","size","UnorderedList","Paragraph4","$color","CustomNukaCarousel","NukaCarousel","dragging","cursorType","defaultControlsContainerStyles","key","bottom","right","left","slideWidth","cellSpacing","withoutArrows","withoutDots","slideIndex","customControlsContainerStyles","swiperRef","useRef","currIndex","setCurrIndex","correctSlideWidth","isAllSlidesView","sliderSettings","setSettings","onResize","useCallback","current","oneSlideWidth","sliderWidth","clientWidth","slideCount","Children","useEffect","newIndex","innerRef","slidesToScroll","disableEdgeSwiping","easing","edgeEasing","getControlsContainerStyles","child","bordered","background","borderWidth","radius","padding","mobilePadding","color","simple","light","border","colorArrow","backgroundIcon","borderIcon","colorArrowIsOpen","backgroundIconIsOpen","borderIconIsOpen","storyColor","dark","theme","AccordionTitle","Title","desktopFont","mobileFont","open","Border","AccordionBody","DEFAULT_THEME","Accordion","toggle","setState","state","defaultOpen","render","onOpen","customTheme","withDividingBorder","rest","colors","themes","ThemeProvider","itemProp","viewBox","fill","xmlns","circle","cx","cy","r","strokeWidth","transform","path","d","strokeMiterlimit","strokeLinecap","strokeLinejoin","itemScope","itemType","propTypes","PropTypes","defaultProps"],"sourceRoot":""}