{"version":3,"file":"static/chunks/pages/_site/[city]/service/center-623880c5ba78d1fb.js","mappings":"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","sources":["webpack://_N_E/?cdb1","webpack://_N_E/../../packages/api-domru/src/ppd-service/v1/ppd-prices.ts","webpack://_N_E/./src/features/center/constants/data.tsx","webpack://_N_E/./src/features/center/common/styled.ts","webpack://_N_E/./src/features/center/Form/styled.tsx","webpack://_N_E/./src/features/center/hocs/CustomTagRow.tsx","webpack://_N_E/./src/features/center/hooks/useEffectActive.ts","webpack://_N_E/./src/features/center/Form/index.tsx","webpack://_N_E/./src/features/center/FormCallback/styled.tsx","webpack://_N_E/./src/features/center/FormCallback/index.tsx","webpack://_N_E/./src/features/center/Billet/styled.tsx","webpack://_N_E/./src/features/center/Billet/index.tsx","webpack://_N_E/./src/features/center/HeaderTitle/styled.tsx","webpack://_N_E/./src/features/center/HeaderTitle/index.tsx","webpack://_N_E/./src/features/center/Header/styled.tsx","webpack://_N_E/./src/features/center/Header/index.tsx","webpack://_N_E/./src/features/center/SlotButton/styled.ts","webpack://_N_E/./src/features/center/SlotButton/index.tsx","webpack://_N_E/./src/features/center/utils/index.ts","webpack://_N_E/./src/features/center/BlockInfo/styled.ts","webpack://_N_E/./src/features/center/BlockInfo/index.tsx","webpack://_N_E/./src/features/center/ChooserBlock/styled.ts","webpack://_N_E/./src/features/center/ChooserBlock/index.tsx","webpack://_N_E/./src/features/center/Offer/styled.ts","webpack://_N_E/./src/features/center/Offer/index.tsx","webpack://_N_E/./src/features/center/BlockPrice/styled.ts","webpack://_N_E/./src/features/center/BlockPrice/index.tsx","webpack://_N_E/./src/features/center/Slot/styled.ts","webpack://_N_E/./src/features/center/Slot/index.tsx","webpack://_N_E/./src/features/center/InfoBlocks/styled.ts","webpack://_N_E/./src/features/center/InfoBlocks/index.tsx","webpack://_N_E/./src/features/center/Tab/styled.tsx","webpack://_N_E/./src/features/center/Tab/index.tsx","webpack://_N_E/./src/features/center/PanelTab/styled.tsx","webpack://_N_E/./src/features/center/PanelTab/index.tsx","webpack://_N_E/./src/features/center/StepBlock/styled.tsx","webpack://_N_E/./src/features/center/StepBlock/index.tsx","webpack://_N_E/./src/features/center/StepsBanner/styled.tsx","webpack://_N_E/./src/features/center/StepsBanner/index.tsx","webpack://_N_E/./src/features/center/index.tsx","webpack://_N_E/./pages/_site/[city]/service/center.tsx","webpack://_N_E/./src/features/center/constants/ordinary.ts","webpack://_N_E/./src/helpers/hooks/useScroll.ts","webpack://_N_E/./src/store/actions/intercom.ts","webpack://_N_E/../../packages/api-domru/src/api-content/v1/domofon-action/index.ts","webpack://_N_E/../../packages/ui-react/src/deprecated/controls/radioButton/index.js","webpack://_N_E/./static/images/bundles-landing/placeholder.svg"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_site/[city]/service/center\",\n function () {\n return require(\"private-next-pages/_site/[city]/service/center.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_site/[city]/service/center\"])\n });\n }\n ","import { IRequest } from '@r1-frontend/shared/types/IRequest';\n\n/*\n* Получение цен\n* https://master.ppd.sandbox.d2c.r-one.io/docs/#/ppd-prices/PpdPricesController_getPpdPricesByProvider\n*/\nexport const getPpdPrices = (providerId: number): IRequest => ({\n uri: `api/v1/${providerId}/ppd-prices`,\n method: 'GET',\n withProvider: true,\n});\n\n/*\n* Получение одной цены\n* https://master.ppd.sandbox.d2c.r-one.io/docs/#/ppd-prices/PpdPricesController_getPpdPriceById\n*/\nexport const getPpdPrice = (id: number): IRequest => ({\n uri: `api/v1/ppd-prices/${id}`,\n method: 'GET',\n});\n","import { IData } from '~/src/features/center/PanelTab';\n\ninterface ISlotsData {\n title: string,\n text: string,\n bgGradient: string,\n bgGradientPrice: string,\n legal?: string,\n textButton?: string,\n}\n\nexport const CATEGORY_IDS: Record = {\n cable: 442,\n route: 443,\n speed: 444,\n smart: 445,\n window: 446,\n tools: 447,\n def: 448,\n};\n\nexport const DATA_IMAGES_TAB: Array = [\n // eslint-disable-next-line max-len\n { id: 'internet', title: 'Интернет и услуги связи', d: 'M3.15625 10.4375C3.4375 10.75 3.89062 10.7344 4.1875 10.4062C7.82812 6.54688 12.625 4.51562 17.9844 4.51562C23.3906 4.51562 28.2031 6.5625 31.8281 10.4219C32.1094 10.7188 32.5469 10.7188 32.8281 10.4062L34.875 8.34375C35.1406 8.07812 35.1406 7.73438 34.9219 7.45312C31.4219 3.14062 24.8438 0 17.9844 0C11.125 0 4.54688 3.14062 1.04688 7.45312C0.84375 7.73438 0.84375 8.07812 1.10938 8.34375L3.15625 10.4375ZM9.3125 16.5938C9.64062 16.9219 10.0625 16.875 10.375 16.5469C12.1562 14.5625 15.0469 13.1562 18 13.1719C20.9688 13.1562 23.8594 14.6094 25.6719 16.5781C25.9531 16.9062 26.3594 16.9062 26.6719 16.5781L28.9844 14.3125C29.2344 14.0625 29.2656 13.7188 29.0312 13.4375C26.7812 10.6875 22.6094 8.65625 18 8.65625C13.375 8.65625 9.21875 10.6875 6.95312 13.4375C6.71875 13.7188 6.75 14.0312 7 14.3125L9.3125 16.5938ZM18 24.6875C18.3281 24.6875 18.625 24.5469 19.2031 23.9688L22.8125 20.5C23.0625 20.2656 23.1094 19.9219 22.9062 19.6406C21.9062 18.375 20.0781 17.2969 18 17.2969C15.8594 17.2969 14.0156 18.4219 13.0312 19.7344C12.875 19.9844 12.9375 20.2656 13.1719 20.5L16.7812 23.9688C17.3594 24.5312 17.6562 24.6875 18 24.6875Z' },\n // eslint-disable-next-line max-len\n { id: 'cabel', title: 'Протяжка кабеля', d: 'M1.10938 15.5312C-0.359375 17.4062 1.48438 19 3.23438 18L13.9219 11.9219L26.4844 18.6719C27.0781 19 27.625 19.1719 28.125 19.1719C28.8438 19.1719 29.5 18.8281 30.125 18.0469L40.9688 4.39062C42.2188 2.8125 40.7031 0.859375 38.8125 1.90625L28.1094 8.01562L15.5469 1.25C14.9375 0.9375 14.4062 0.765625 13.9062 0.765625C13.1719 0.765625 12.5312 1.10938 11.9219 1.89062L1.10938 15.5312ZM4.57812 14.9531C4.42188 15.0625 4.3125 14.9062 4.4375 14.7656L13.75 3.57812C13.9531 3.32812 14.1562 3.29688 14.4219 3.4375L27.6094 10.5156C28.2188 10.8281 28.4062 10.75 28.8906 10.4531L37.5 4.95312C37.625 4.85938 37.7812 5 37.6562 5.14062L28.2969 16.375C28.0938 16.625 27.8906 16.6562 27.625 16.5156L14.4375 9.45312C13.8281 9.14062 13.6406 9.21875 13.1562 9.51562L4.57812 14.9531Z' },\n // eslint-disable-next-line max-len\n { id: 'modems', title: 'Модемы и роутеры', d: 'M5.51562 18.1562H32.4844C35.6094 18.1562 37.2031 16.5781 37.2031 13.5V5.01562C37.2031 1.92188 35.6094 0.359375 32.4844 0.359375H5.51562C2.375 0.359375 0.796875 1.92188 0.796875 5.01562V13.5C0.796875 16.5781 2.375 18.1562 5.51562 18.1562ZM5.60938 15.5781C4.17188 15.5781 3.375 14.8281 3.375 13.3281V5.1875C3.375 3.6875 4.17188 2.92188 5.60938 2.92188H32.4062C33.8281 2.92188 34.6406 3.6875 34.6406 5.1875V13.3281C34.6406 14.8281 33.8281 15.5781 32.4062 15.5781H5.60938ZM29.875 13.0469C30.9062 13.0156 31.7812 12.1562 31.7812 11.125C31.7812 10.0625 30.9062 9.17188 29.875 9.17188C28.8281 9.17188 27.9375 10.0625 27.9375 11.125C27.9375 12.1562 28.8281 13.0625 29.875 13.0469Z' },\n // eslint-disable-next-line max-len\n { id: 'diagnostic', title: 'Диагностика и ускорение PC', d: 'M4.17188 25.0781H13.4062L12.9844 27.875H11.3594C10.6719 27.875 10.1094 28.4375 10.1094 29.125C10.1094 29.7969 10.6719 30.3594 11.3594 30.3594H24.6562C25.3281 30.3594 25.8906 29.7969 25.8906 29.125C25.8906 28.4375 25.3281 27.875 24.6562 27.875H23.0156L22.6094 25.0781H31.8281C34.4219 25.0781 35.7344 23.8125 35.7344 21.1719V4.20312C35.7344 1.5625 34.4219 0.296875 31.8281 0.296875H4.17188C1.57812 0.296875 0.265625 1.5625 0.265625 4.20312V21.1719C0.265625 23.8125 1.57812 25.0781 4.17188 25.0781ZM3.45312 18.4531C3.01562 18.4531 2.8125 18.2812 2.8125 17.8125V4.28125C2.8125 3.25 3.26562 2.84375 4.25 2.84375H31.75C32.75 2.84375 33.1875 3.25 33.1875 4.28125V17.8125C33.1875 18.2812 33 18.4531 32.5625 18.4531H3.45312ZM18 23.5938C17.2344 23.5938 16.6094 22.9688 16.6094 22.2031C16.6094 21.4531 17.2344 20.8125 18 20.8125C18.75 20.8125 19.4062 21.4531 19.4062 22.2031C19.4062 22.9688 18.75 23.5938 18 23.5938Z' },\n // eslint-disable-next-line max-len\n { id: 'smartTv', title: 'Телевизоры Smart TV', d: 'M4.32812 25.1875H33.6719C36.2656 25.1875 37.5781 23.9219 37.5781 21.2812V4.3125C37.5781 1.67188 36.2656 0.40625 33.6719 0.40625H4.32812C1.73438 0.40625 0.421875 1.67188 0.421875 4.3125V21.2812C0.421875 23.9219 1.73438 25.1875 4.32812 25.1875ZM4.40625 22.6406C3.40625 22.6406 2.96875 22.2344 2.96875 21.2031V4.39062C2.96875 3.35938 3.40625 2.95312 4.40625 2.95312H33.5938C34.5781 2.95312 35.0312 3.35938 35.0312 4.39062V21.2031C35.0312 22.2344 34.5781 22.6406 33.5938 22.6406H4.40625ZM11.5312 30.25H26.4531C27.1406 30.25 27.7031 29.6875 27.7031 29C27.7031 28.3125 27.1406 27.75 26.4531 27.75H11.5312C10.8594 27.75 10.2969 28.3125 10.2969 29C10.2969 29.6875 10.8594 30.25 11.5312 30.25Z' },\n // eslint-disable-next-line max-len\n { id: 'windows', title: 'Вопросы про Windows', d: 'M5.07812 25.0938H7.8125V27.6094C7.8125 30.7031 9.39062 32.2656 12.5312 32.2656H34.9062C38.0156 32.2656 39.6094 30.6875 39.6094 27.6094V11.8906C39.6094 8.8125 38.0156 7.23438 34.9062 7.23438H32.1562V4.85938C32.1562 1.76562 30.5625 0.203125 27.4531 0.203125H5.07812C1.9375 0.203125 0.359375 1.76562 0.359375 4.85938V20.4375C0.359375 23.5312 1.9375 25.0938 5.07812 25.0938ZM5.17188 22.5312C3.73438 22.5312 2.9375 21.7656 2.9375 20.2656V5.03125C2.9375 3.53125 3.73438 2.76562 5.17188 2.76562H27.3594C28.7812 2.76562 29.5938 3.53125 29.5938 5.03125V7.23438H12.5312C9.39062 7.23438 7.8125 8.79688 7.8125 11.8906V22.5312H5.17188ZM12.6562 12.3281C11.9219 12.3281 11.3125 11.7031 11.3125 11C11.3125 10.2812 11.9219 9.65625 12.6562 9.65625C13.3906 9.65625 14 10.2812 14 11C14 11.7031 13.3906 12.3281 12.6562 12.3281ZM16.9375 12.3281C16.2031 12.3281 15.5938 11.7031 15.5938 11C15.5938 10.2812 16.2031 9.65625 16.9375 9.65625C17.6719 9.65625 18.2812 10.2812 18.2812 11C18.2812 11.7031 17.6719 12.3281 16.9375 12.3281ZM21.2188 12.3281C20.4844 12.3281 19.875 11.7031 19.875 11C19.875 10.2812 20.4844 9.65625 21.2188 9.65625C21.9531 9.65625 22.5625 10.2812 22.5625 11C22.5625 11.7031 21.9531 12.3281 21.2188 12.3281ZM10.375 14.7656H37.0469V27.4375C37.0469 28.9375 36.2344 29.7031 34.8125 29.7031H12.6094C11.1719 29.7031 10.375 28.9375 10.375 27.4375V14.7656Z' },\n // eslint-disable-next-line max-len\n { id: 'settings', title: 'Настройка оборудования', d: 'M4.70312 28.125H6.25V29.625C6.25 31.6562 7.23438 32.5625 9.1875 32.5625H24.7812C26.7344 32.5625 27.7188 31.6562 27.7188 29.625V28.125H29.2656C32.1875 28.125 33.75 26.625 33.75 23.7031V9.95312C33.75 7.03125 32.1875 5.51562 29.2656 5.51562H27.8594V4.73438C27.8594 1.8125 26.3906 0.5 23.5938 0.5H10.375C7.71875 0.5 6.125 1.8125 6.125 4.73438V5.51562H4.70312C1.92188 5.51562 0.21875 7.03125 0.21875 9.95312V23.7031C0.21875 26.625 1.78125 28.125 4.70312 28.125ZM8.57812 4.5625C8.57812 3.35938 9.17188 2.78125 10.3594 2.78125H23.6094C24.7969 2.78125 25.4062 3.35938 25.4062 4.5625V5.51562H8.57812V4.5625ZM24.7812 14.7812H9.1875C7.32812 14.7812 6.25 15.6719 6.25 17.7188V25.75H4.6875C3.42188 25.75 2.75 25.0781 2.75 23.8125V9.84375C2.75 8.5625 3.42188 7.89062 4.6875 7.89062H29.2969C30.5625 7.89062 31.2188 8.5625 31.2188 9.84375V23.8125C31.2188 25.0781 30.5625 25.75 29.2969 25.75H27.7188V17.7188C27.7188 15.6719 26.7344 14.7812 24.7812 14.7812ZM24.0781 11.375C24.0781 12.4219 24.9375 13.2344 25.9688 13.2344C26.9688 13.2188 27.8281 12.4062 27.8281 11.375C27.8281 10.375 26.9688 9.5 25.9688 9.5C24.9375 9.5 24.0781 10.375 24.0781 11.375ZM9.89062 30.2031C9.125 30.2031 8.75 29.8438 8.75 29.0625V18.25C8.75 17.5 9.125 17.125 9.89062 17.125H24.1094C24.875 17.125 25.2344 17.5 25.2344 18.25V29.0625C25.2344 29.8438 24.875 30.2031 24.1094 30.2031H9.89062ZM11.9531 22.0625H22.0625C22.5938 22.0625 23 21.6406 23 21.1094C23 20.5781 22.5938 20.1719 22.0625 20.1719H11.9531C11.4062 20.1719 11 20.5781 11 21.1094C11 21.6406 11.4062 22.0625 11.9531 22.0625ZM11.9531 27.1719H22.0625C22.5938 27.1719 23 26.7656 23 26.2344C23 25.7031 22.5938 25.2812 22.0625 25.2812H11.9531C11.4062 25.2812 11 25.7031 11 26.2344C11 26.7656 11.4062 27.1719 11.9531 27.1719Z' },\n // eslint-disable-next-line max-len\n { id: 'def', title: 'Защита и антивирус', d: 'M5.40625 29.6094H30.5938C33.6875 29.6094 35.2344 28.0781 35.2344 25.0156V10.6094C35.2344 7.53125 33.6875 6.01562 30.5938 6.01562H26.8281V4.9375C26.8281 2.15625 25.3438 0.859375 22.625 0.859375H13.3594C10.7812 0.859375 9.17188 2.15625 9.17188 4.9375V6.01562H5.40625C2.3125 6.01562 0.75 7.53125 0.75 10.6094V25.0156C0.75 28.0781 2.3125 29.6094 5.40625 29.6094ZM11.5938 4.79688C11.5938 3.71875 12.2344 3.10938 13.3438 3.10938H22.6406C23.75 3.10938 24.3906 3.71875 24.3906 4.79688V6.01562H11.5938V4.79688ZM5.45312 27.0781C4.0625 27.0781 3.32812 26.3594 3.32812 24.9062V10.7031C3.32812 9.26562 4.0625 8.54688 5.45312 8.54688H30.5312C31.9219 8.54688 32.6719 9.26562 32.6719 10.7031V24.9062C32.6719 26.3594 31.9219 27.0781 30.5312 27.0781H5.45312ZM10.8281 19.1719C10.8281 19.9844 11.3906 20.5312 12.2188 20.5312H15.2656V23.5938C15.2656 24.4219 15.8125 24.9688 16.6406 24.9688H19.3438C20.1719 24.9688 20.7188 24.4219 20.7188 23.5938V20.5312H23.7656C24.5938 20.5312 25.1562 19.9844 25.1562 19.1719V16.4531C25.1562 15.625 24.5938 15.0781 23.7656 15.0781H20.7188V12.0312C20.7188 11.2188 20.1719 10.6562 19.3438 10.6562H16.6406C15.8125 10.6562 15.2656 11.2188 15.2656 12.0312V15.0781H12.2188C11.3906 15.0781 10.8281 15.625 10.8281 16.4531V19.1719Z' },\n];\n\nexport const TEXT_BANNER = 'Почему с нами удобно';\n\nexport const TEXT_STEPS: Array = [\n 'Даём гарантию на работы',\n 'Профессиональные инженеры',\n 'Мастер на дом или онлайн-помощь',\n 'Фиксированные цены и удобная оплата',\n 'Не устроит качество работ–вернём деньги',\n];\n\nexport const TEXT_BLOCK_PRICE: Array = [\n 'Если у вас возникли вопросы по качеству работы услуг связи: интернета, телевидения или оборудования от нашей' +\n ' компании, наши сотрудники в режиме реального времени постараются вам помочь.',\n 'Мы установим кабель с учётом особенностей планировки помещения, подключим роутер или компьютер,' +\n ' сделаем интернет-розетку или спрячем провода в плинтус.',\n 'Даже самый лучший роутер может не радовать своим Wi-Fi-покрытием, если базовые настройки проведены некорректно.' +\n ' Доверьте установку и настройку вашего оборудования профессионалам.',\n 'Наш специалист подключится к вашему устройству с помощью приложения удалённого доступа, проведёт качественную' +\n ' диагностику, выявит и устранит проблему',\n 'Поможем подвесить его на стену в положенном месте, осуществить настройку каналов, подключить к интернету' +\n ' и установить необходимые приложения',\n 'Возникли сложности при установке новой программы, не получается установить обновление операционной системы,' +\n ' нужно создать учетную запись или пройти регистрацию - мы поможем вам это сделать.',\n 'У вас дома новый принтер или нужно настроить общий доступ к сканеру? Поможем подобрать необходимые драйвера,' +\n ' организовать локальную сеть и другие настройки для комфортного пользования дома.',\n 'Поможем подобрать и установить антивирус, почистим компьютер от вирусов, настроим родительский контроль' +\n ' - пожилым членам семьи он тоже не помешает. Стоимость подписки на антивирус оплачивается отдельно',\n];\n\nexport const DATA_SLOTS: Array = [\n {\n title: 'Настройка интернета, ТВ или приставки',\n text: 'Решим проблемы с качеством услуг связи: интернета, телевидения или оборудования от нашей компании',\n bgGradient: '94.05% 87.59% at 98.66% 64.5%, rgba(215, 46, 67, .2) 0%, rgba(215, 46, 67, 0) 100%',\n bgGradientPrice: '94.05% 87.59% at 98.66% 64.5%, rgba(215, 46, 67, .06) 0%, rgba(215, 46, 67, 0) 100%',\n legal: 'Техническая помощь по услугам связи предоставляется бесплатно',\n textButton: 'Подробнее',\n },\n {\n title: 'Протянуть кабель в другую комнату и спрятать в плинтус',\n text: 'Наши специалисты помогут вам организовать пространство с учетом ваших пожеланий',\n bgGradient: '79.24% 72.74% at -1.34% 101.56%, rgba(167, 41, 139, .2) 0%, rgba(167, 41, 139, 0) 100%',\n bgGradientPrice: '79.24% 72.74% at -1.34% 101.56%, rgba(167, 41, 139, .06) 0%, rgba(167, 41, 139, 0) 100%',\n },\n {\n title: 'Установка и настройка вашего роутера',\n text: 'Наслаждайтесь качественным Wi-Fi в каждом уголке своей квартиры без помех и с высокой скоростью',\n bgGradient: '113.54% 102.72% at 108.41% 81.08%, rgba(27, 23, 70, .3) 0%, rgba(27, 23, 70, 0) 100%',\n bgGradientPrice: '113.54% 102.72% at 108.41% 81.08%, rgba(27, 23, 70, .06) 0%, rgba(27, 23, 70, 0) 100%',\n },\n {\n title: 'Ускорение компьютера и диагностика проблем',\n text: 'Выявим и устраним проблемы с зависаниями и долгой загрузкой компьютера',\n bgGradient: '108.04% 94.04% at 0% 73.35%, rgba(219, 163, 154, .38) 0%, rgba(230, 192, 186, 0) 100%',\n bgGradientPrice: '108.04% 94.04% at 0% 73.35%, rgba(219, 163, 154, .06) 0%, rgba(230, 192, 186, 0) 100%',\n },\n {\n title: 'Установка и настройка Smart TV',\n text: 'Поможем подвесить его на стену в положенном месте, осуществить настройку каналов,' +\n ' подключить к интернету и установить необходимые приложения',\n bgGradient: '98.14% 98.14% at 98.14% 46.35%, rgba(222, 19, 226, .2) 0%, rgba(249, 212, 250, 0) 100%',\n bgGradientPrice: '98.14% 98.14% at 98.14% 46.35%, rgba(222, 19, 226, 0.06) 0%, rgba(249, 212, 250, 0) 100%',\n },\n {\n title: 'Нужно установить программу на компьютер',\n text: 'Решим сложности при установке новой программы или операционной системы,' +\n ' поможем создать учетную запись или пройти регистрацию',\n bgGradient: '82.81% 72.73% at 17.19% 62.41%, rgba(74, 172, 233, .2) 0%, rgba(27, 23, 70, 0) 100%',\n bgGradientPrice: '82.81% 72.73% at 17.19% 62.41%, rgba(74, 172, 233, .06) 0%, rgba(27, 23, 70, 0) 100%',\n },\n {\n title: 'Настройка и организация работы вашего оборудования',\n text: 'Поможем подобрать необходимые драйвера, организовать локальную сеть,' +\n ' настроить принтер/сканер и другие настройки для комфортного пользования дома',\n bgGradient: '84.03% 138.72% at 87.8% 108.16%, rgba(123, 134, 228, .4) 0%, rgba(123, 134, 228, 0) 100%',\n bgGradientPrice: '84.03% 138.72% at 87.8% 108.16%, rgba(123, 134, 228, .06) 0%, rgba(123, 134, 228, 0) 100%',\n },\n {\n title: 'Защита данных и вашего компьютера от вирусов',\n text: 'Поможем подобрать и установить антивирус, почистим компьютер от вирусов,' +\n ' настроим родительский контроль — пожилым членам семьи он тоже не помешает',\n bgGradient: '105.36% 93.3% at 0% 69.01%, rgba(156, 211, 92, .2) 0%, rgba(90, 147, 42, 0) 100%',\n bgGradientPrice: '105.36% 93.3% at 0% 69.01%, rgba(156, 211, 92, .06) 0%, rgba(90, 147, 42, 0) 100%',\n },\n];\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport { FlexBoxCol, FlexBoxRow } from '@r1-frontend/ui-react/components/layouts/flexBoxGrid';\nimport GridContainerUI from '@r1-frontend/ui-react/components/layouts/gridContainer';\n\nimport { breakPoints } from '~/src/constants/breakpoints';\n\nexport const Col = styled(FlexBoxCol)`\n z-index: 2;\n`;\n\nexport const Row = styled(FlexBoxRow)`\n width: 100%;\n\n @media (max-width: ${breakPoints.tablet}) {\n width: auto;\n }\n`;\n\nexport const Wrapper = styled.div`\n width: 100%;\n background-color: ${COLORS.white};\n padding: 50px 40px 40px 40px;\n`;\n\nexport const GridContainer = styled(GridContainerUI)`\n background-color: ${COLORS.white};\n border-radius: 32px;\n margin-top: 16px;\n margin-bottom: 100px;\n\n @media (max-width: ${breakPoints.tablet}) {\n max-width: 800px;\n }\n`;\n","import styled, { css } from 'styled-components';\n\nimport { BaseButton } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport InputSimple, { nameDecorator, phoneDecorator } from '@r1-frontend/ui-react/components/inputSimple';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport { breakPoints } from '~/src/constants/breakpoints';\n\nimport {\n Col as ColCommon,\n Row,\n} from '~/src/features/center/common/styled';\n\nconst InputNameDecorator = nameDecorator(InputSimple);\nconst InputPhoneDecorator = phoneDecorator(InputSimple);\n\nconst CommonInputCss = css`\n width: 100%;\n margin-bottom: 0;\n\n @media (max-width: 600px) {\n width: 100%;\n max-width: 100%;\n margin-right: 0;\n }\n`;\n\nexport const Button = styled(BaseButton)`\n width: 100%;\n min-width: 100%;\n z-index: 8;\n padding: 12px 24px;\n height: 48px;\n\n @media (max-width: ${breakPoints.mobile}) {\n width: 100%;\n ${FONTS.XS};\n }\n`;\n\nexport const InputName = styled(InputNameDecorator)`\n ${CommonInputCss}\n`;\n\nexport const InputPhone = styled(InputPhoneDecorator)`\n ${CommonInputCss}\n`;\n\nexport const Form = styled.div`\n max-width: 100%;\n width: 100%;\n height: 45px;\n position: relative;\n justify-content: center;\n\n @media (max-width: ${breakPoints.mobile}) {\n max-width: 100%;\n }\n`;\n\nexport const ColInput = styled(ColCommon)`\n flex-basis: 30%;\n max-width: 32%;\n margin-bottom: 5px;\n padding-left: 4px;\n padding-right: 4px;\n\n @media (min-width: ${breakPoints.desktop}) {\n margin-bottom: 0;\n }\n\n @media (max-width: ${breakPoints.tablet}) {\n max-width: 100%;\n margin-bottom: 0;\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n margin-bottom: 10px;\n flex-basis: 100%;\n padding-left: 0;\n padding-right: 0;\n }\n`;\n\nexport const ColButton = styled(ColCommon)`\n flex-basis: 20%;\n padding-left: 4px;\n padding-right: 4px;\n\n @media (max-width: ${breakPoints.desktop}) {\n flex-basis: 40%;\n }\n\n @media (max-width: ${breakPoints.tablet}) {\n flex-basis: 60%;\n }\n\n @media (min-width: 768px) and (max-width: 1278px) {\n max-width: 34%;\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n flex-basis: 100%;\n padding-left: 0;\n padding-right: 0;\n }\n`;\n\nexport const RowSlot = styled(Row)`\n padding: 8px 4px;\n border-radius: 4px;\n\n @media (max-width: ${breakPoints.mobile}) {\n flex-direction: row;\n max-width: 100%;\n padding: 8px 0;\n }\n\n @media (max-width: ${breakPoints.desktop}) and (min-width: 1278px) {\n flex-direction: column;\n max-width: 100%;\n }\n\n & ${ColButton} {\n flex-basis: 34%;\n max-width: 34%;\n }\n\n & ${ColButton} {\n @media (max-width: ${breakPoints.desktop}) {\n max-width: 100%;\n }\n\n @media (max-width: ${breakPoints.desktop}) and (min-width: 1278px) {\n flex-basis: 30%;\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n flex-basis: 100%;\n }\n }\n\n & ${ColInput} {\n @media (max-width: ${breakPoints.desktop}) {\n max-width: 100%;\n }\n }\n\n @media (min-width: ${breakPoints.mobile}) and (max-width: 1278px) {\n flex-direction: row;\n padding-left: 0;\n padding-right: 0;\n }\n`;\n","import React from 'react';\n\nimport { Row } from '~/src/features/center/common/styled';\nimport * as ST from '~/src/features/center/Form/styled';\n\ninterface IProps {\n children: JSX.Element | JSX.Element[],\n withInputName: boolean,\n}\n\nconst CustomTagRow: React.FC = ({ children, withInputName }) => {\n return withInputName ? {children} : {children};\n};\n\nexport default CustomTagRow;\n","import { useEffect } from 'react';\n\nimport { TDispatch } from '~/src/features/center/BlockInfo';\n\n/**\n * Кастомный хук useEffect - при размонтировании компонента сбрасывает флаг active\n *\n * @function\n * @name hooks.useEffectActive\n * @returns {void}\n */\nexport function useEffectActive(setActive: TDispatch | undefined): void {\n return useEffect(() => {\n return () => {\n if (setActive) {\n setActive(false);\n }\n };\n }, [setActive]);\n}\n\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { shallowEqual, useSelector } from 'react-redux';\n\nimport { doRequest } from '@r1-frontend/do-request';\nimport { backCall } from '@r1-frontend/api-domru/core-requests/api/v1/call/back';\nimport { ICurrentCity } from '@r1-frontend/entities/City/models/ICurrentCity';\n\nimport { btnTypes } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport { FlexBoxCol } from '@r1-frontend/ui-react/components/layouts/flexBoxGrid';\nimport { PolicyNote } from '@r1-frontend/ui-react/components/PolicyNote';\nimport { EResultPopupStatus } from '@r1-frontend/ui-react/components/popups/popupResult';\nimport { IndentContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { ACTIONS } from '@r1-frontend/shared/constants/analytics';\n\nimport PopupResult from '~/src/components/Popups/PopupResult';\nimport { POLICY_PAGE_LINK } from '~/src/constants';\nimport type { TDispatch } from '~/src/features/center/BlockInfo';\nimport CustomTagRow from '~/src/features/center/hocs/CustomTagRow';\nimport { useEffectActive } from '~/src/features/center/hooks/useEffectActive';\nimport { dataLayerForCBPhonePush } from '~/src/helpers/eventsForDataLayer';\nimport { TState } from '~/src/store';\nimport selectProviderId from '~/src/store/selectors/selectProviderId';\n\nimport * as ST from './styled';\n\ntype TField = {\n value: string,\n isValid: boolean,\n clearInput: () => void,\n}\n\ninterface IProps {\n city: ICurrentCity,\n formProblemRef?: React.RefObject,\n setActiveForm?: TDispatch,\n withInputName: boolean,\n withLegalText: boolean,\n textButton: string,\n label: string,\n}\n\nconst Form: React.FC = ({\n city,\n formProblemRef,\n setActiveForm,\n withInputName,\n textButton,\n withLegalText,\n label,\n}) => {\n const initValueInput = {\n value: '',\n isValid: false,\n clearInput: () => undefined,\n };\n const [name, setName] = useState(initValueInput);\n const [phone, setPhone] = useState(initValueInput);\n const [isValid, setIsValid] = useState(false);\n const [beenStarted, setDataLayer] = useState(false);\n const [hasResult, setHasResult] = useState(false);\n\n const { auth: { isAuth, clientPersonal }, providerId } = useSelector((state: TState) => ({\n auth: state.auth,\n providerId: selectProviderId(state),\n }), shallowEqual);\n\n useEffectActive(setActiveForm);\n\n const changeHandler = useCallback((inputData, _setState) => {\n if (!beenStarted && inputData.value) {\n dataLayerForCBPhonePush({\n action: ACTIONS.startedService,\n label,\n uid: isAuth ? clientPersonal?.agreement : null,\n });\n setDataLayer(true);\n }\n _setState(inputData);\n }, [beenStarted, label, isAuth]);\n\n const [isLoading, setIsLoading] = useState(false);\n const [isError, setIsError] = useState(false);\n const [message, setMessage] = useState('');\n\n const sendAnalytic = useCallback((status: boolean, message?: string | null) => {\n dataLayerForCBPhonePush({\n option: message ? `${label} | ${message}` : label,\n action: status ? ACTIONS.orderService : ACTIONS.errorService,\n uid: isAuth ? clientPersonal?.agreement : null,\n });\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window._tmr?.push({ id: '3213734', type: 'reachGoal', goal: 'Lead' });\n }, [message]);\n\n useEffect(() => {\n const isValidWrap = withInputName ? name.isValid && phone.isValid : phone.isValid;\n setIsValid(isValidWrap);\n }, [isValid, name.isValid, phone.isValid, withInputName]);\n\n const closeHandler = useCallback(() => {\n setHasResult(false);\n setIsValid(false);\n }, []);\n\n const sendFormHandler = useCallback(async() => {\n setIsLoading(true);\n const resp = await doRequest.coreRequests(\n backCall({\n phoneNumber: phone.value,\n }),\n );\n\n setIsLoading(false);\n if (resp.isSuccess) {\n setIsError(false);\n setMessage('Заявка успешно создана');\n } else {\n setIsError(true);\n setMessage('Заявка не создана');\n }\n setHasResult(true);\n sendAnalytic(resp.isSuccess, !resp.isSuccess ? resp.error.message : undefined);\n }, [providerId, phone, city.cityId]);\n\n return (\n \n \n {withInputName\n ? \n changeHandler(InputVal, setName)}\n type='name'\n errorMessage='Должны быть только буквы'\n placeholder='Ваше имя'\n name='name'\n className={'ym-disable-keys'}\n />\n \n : <>\n }\n {withLegalText\n ? \n \n \n \n \n : <>\n }\n \n changeHandler(InputVal, setPhone)}\n type='phone'\n errorMessage='Укажите корректный номер телефона'\n placeholder='Номер телефона'\n name='phone'\n className={'ym-disable-keys'}\n />\n \n \n \n {textButton}\n \n \n \n \n \n );\n};\n\nexport default Form;\n","import styled from 'styled-components';\n\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport { breakPoints } from '~/src/constants/breakpoints';\n\nimport {\n GridContainer as GridContainerCommon,\n Wrapper as WrapperCommon,\n} from '~/src/features/center/common/styled';\n\nexport const GridContainer = styled(GridContainerCommon)`\n margin-top: 0;\n\n @media (max-width: ${breakPoints.mobile}) {\n margin-left: 16px;\n margin-right: 16px;\n }\n`;\n\nexport const Wrapper = styled(WrapperCommon)`\n padding-bottom: 75px;\n border-radius: 20px;\n\n @media (max-width: ${breakPoints.mobile}) {\n padding-bottom: 154px;\n }\n\n @media (max-width: 350px) {\n padding-bottom: 235px;\n }\n`;\n\nexport const Title = styled.div`\n width: 100%;\n ${FONTS.H2};\n margin-bottom: 10px;\n white-space: pre-wrap;\n\n @media (max-width: ${breakPoints.mobile}) {\n ${FONTS.H3};\n }\n`;\n\nexport const Text = styled.div`\n width: 55%;\n ${FONTS.L};\n margin-bottom: 40px;\n\n @media (max-width: ${breakPoints.sDesktop}) {\n width: 100%;\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n ${FONTS.XS};\n }\n`;\n","import React from 'react';\n\nimport { ICurrentCity } from '@r1-frontend/entities/City/models/ICurrentCity';\n\nimport Form from '~/src/features/center/Form';\n\nimport * as ST from './styled';\n\ninterface IProps {\n footerRef: React.RefObject,\n city: ICurrentCity,\n}\n\nconst FormCallback: React.FC = ({ footerRef, city }) => {\n\n return (\n \n \n Остались вопросы? Мы вам перезвоним\n \n Оставьте заявку – наш специалист свяжется с вами, ответит на ваши вопросы об услуге и стоимости\n \n \n \n \n );\n};\n\nexport default FormCallback;\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport { FlexBoxRow } from '@r1-frontend/ui-react/components/layouts/flexBoxGrid';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport { breakPoints } from '~/src/constants/breakpoints';\nimport Arrow from '~/static/images/bundles-landing/placeholder.svg';\n\nimport { Col as ColCommon, Row as RowCommon } from '~/src/features/center/common/styled';\n\nexport const Col = ColCommon;\n\nexport const ColPhoneWrap = styled(Col)`\n\n @media (max-width: ${breakPoints.mobile}) {\n padding-left: 0;\n }\n`;\n\nexport const ColCityWrap = styled(ColCommon)`\n max-width: 51%;\n flex-basis: 51%;\n padding-left: 35px;\n\n @media (max-width: ${breakPoints.desktop}) {\n padding-left: 60px;\n }\n\n @media (max-width: ${breakPoints.sDesktop}) {\n padding-left: 35px;\n }\n\n @media (max-width: ${breakPoints.tablet}) {\n padding-left: 45px;\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n max-width: 100%;\n flex-basis: 100%;\n padding-left: 0;\n }\n`;\n\nexport const ColCity = styled(ColCommon)`\n\n @media (max-width: ${breakPoints.mobile}) {\n max-width: 85%;\n }\n`;\n\nexport const CitySelect = styled.span`\n ${FONTS.H4};\n color: ${COLORS.black};\n position: relative;\n cursor: pointer;\n margin-left: 75px;\n z-index: 10;\n\n &:before {\n content: '';\n position:absolute;\n left: -20px;\n top: 7px;\n width: 14px;\n height: 14px;\n background-image: url(${Arrow});\n }\n\n @media (max-width: ${breakPoints.sDesktop}) {\n margin-left: 109px;\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n margin-top: 8px;\n margin-left: 0;\n display: block;\n }\n`;\n\nexport const WrapperPhone = styled.div`\n justify-content: flex-end;\n\n @media (max-width: ${breakPoints.mobile}) {\n justify-content: left;\n }\n`;\n\nexport const Phone = styled.a`\n position: relative;\n color: ${COLORS.black};\n ${FONTS.H4};\n cursor: pointer;\n display: block;\n text-align: right;\n\n @media (min-width: ${breakPoints.tablet}) {\n\n &:after {\n content: '';\n position: absolute;\n left: -24px;\n right: 0;\n top: -10px;\n bottom: 0;\n height: 28px;\n width: 200px;\n background-color: ${COLORS.white};\n border-radius: 24px;\n padding: 10px 24px 7px 24px;\n z-index: -1;\n }\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n text-align: left;\n ${FONTS.XS};\n }\n`;\n\nexport const Logo = styled.img`\n position:relative;\n z-index: 10;\n`;\n\nexport const Row = RowCommon;\n\nexport const RowBlock = styled(FlexBoxRow)`\n margin-top: 20px;\n align-items: center;\n`;\n","import React, { useCallback } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport Link from 'next/link';\n\nimport { ICurrentCity } from '@r1-frontend/entities/City/models/ICurrentCity';\n\nimport { useMatchMedia } from '@r1-frontend/shared/hooks/useMatchMedia';\n\nimport { openCitySelect } from '~/src/components/CitySelectContainer/store/actionCreators';\nimport { getCurrentCity } from '~/src/store/selectors/city';\nimport LogoDefault from '~/static/images/menu/logo_default.svg';\nimport MobileLogoDefault from '~/static/images/menu/mobile_logo_default.svg';\n\nimport * as ST from './styled';\n\nexport const Billet: React.FC = () => {\n const dispatch = useDispatch();\n const isMobile = useMatchMedia('(max-width: 450px)');\n const onCityChange = useCallback(() => {\n dispatch(openCitySelect());\n }, [dispatch]);\n const currentCity: ICurrentCity = useSelector(getCurrentCity);\n const mobileLogoImg = currentCity.logo ? currentCity.logo_narrow : MobileLogoDefault;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n {currentCity?.name}\n \n \n {\n currentCity?.phone && (\n \n \n \n {currentCity?.phone}\n \n \n \n )\n }\n \n \n \n );\n};\n\nexport default Billet;\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport { BaseButton } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport { FlexBoxRow } from '@r1-frontend/ui-react/components/layouts/flexBoxGrid';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport { breakPoints } from '~/src/constants/breakpoints';\n\nimport { Col as ColCommon, Row as RowCommon } from '~/src/features/center/common/styled';\n\nexport const Col = styled(ColCommon)`\n padding-right: .8rem;\n padding-left: .8rem;\n`;\n\nexport const ColButton = styled(ColCommon)`\n padding-right: 0;\n padding-left: 0;\n`;\n\nexport const RowButton = styled(RowCommon)`\n margin-left: 0;\n margin-right: 0;\n`;\n\nexport const Row = RowCommon;\n\nexport const RowMiddle = styled(FlexBoxRow)`\n width: 100%;\n margin-top: 111px;\n\n @media (max-width: ${breakPoints.mobile}) {\n width: auto;\n position: absolute;\n top: 414px;\n left: 0;\n right: 0;\n margin-right: 0;\n margin-left: 0;\n margin-top: -10px;\n }\n\n @media (max-width: 535px) {\n top: 300px;\n }\n`;\n\nexport const Title = styled.h1`\n ${FONTS.H1};\n max-width: 695px;\n margin: 8px 0 0;\n text-transform: uppercase;\n\n @media (max-width: ${breakPoints.sDesktop}) {\n ${FONTS.H2};\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n color: ${COLORS.black};\n margin-top: 46px;\n max-width: 100%;\n margin-right: 12px;\n }\n`;\n\nexport const Text = styled.div`\n ${FONTS.M};\n max-width: 502px;\n margin: 12px 0 0;\n color: ${COLORS.black};\n\n @media (max-width: ${breakPoints.sDesktop}) {\n ${FONTS.S};\n max-width: 400px;\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n ${FONTS.XS};\n max-width: 100%;\n color: ${COLORS.black};\n margin-right: 12px;\n }\n`;\n\nexport const Form = styled.div`\n display: block;\n max-width: 534px;\n margin-top: 15px;\n position:relative;\n\n @media (max-width: ${breakPoints.mobile}) {\n margin-top: 20px;\n max-width: 100%;\n }\n`;\n\nexport const Button = styled(BaseButton)`\n width: 248px;\n height: 48px;\n z-index: 8;\n padding: 9px 24px;\n\n @media (max-width: ${breakPoints.mobile}) {\n width: 100%;\n margin-bottom: 12px;\n }\n`;\n","import React from 'react';\n\nimport { btnTypes } from '@r1-frontend/ui-react/components/buttons/baseButton';\n\nimport * as ST from './styled';\n\ninterface IProps {\n withForm: boolean,\n companyName: string,\n clickHandler: () => void,\n}\n\nconst HeaderTitle: React.FC = ({ clickHandler, companyName, withForm }) => {\n return (\n \n \n {companyName} сервис\n Решение технических проблем и настройка работы ваших домашних устройств\n \n { withForm &&\n \n \n \n Получить консультацию\n \n \n \n }\n \n \n \n );\n};\n\nexport default HeaderTitle;\n","import styled from 'styled-components';\n\nimport GridContainer from '@r1-frontend/ui-react/components/layouts/gridContainer';\n\nimport { breakPoints } from '~/src/constants/breakpoints';\n\nexport const Wrapper = styled.header`\n position: relative;\n width: 100%;\n height: 578px;\n background-image: url('/static/images/center/desktop-header-img.jpg');\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center bottom;\n display: flex;\n \n @media (max-width: ${breakPoints.tablet}) {\n background-image: url('/static/images/center/tablet-header-img.jpg');\n\n & > div {\n width: 100%;\n }\n }\n \n @media (max-width: ${breakPoints.mobile}) {\n height: 414px;\n margin-bottom: 208px;\n padding-top: 28px;\n }\n \n @media (max-width: 478px) {\n margin-bottom: 258px;\n }\n\n @media (max-width: 535px) {\n height: 300px;\n }\n`;\n\nexport const GridContainerColumn = styled(GridContainer)`\n flex-direction: column;\n`;\n","import React, { useCallback } from 'react';\n\nimport { dataLayerPush } from '@r1-frontend/analytics/dataLayerPush';\n\nimport { ACTIONS, CATEGORIES, EVENTS } from '@r1-frontend/shared/constants/analytics';\n\nimport Billet from '~/src/features/center/Billet';\nimport HeaderTitle from '~/src/features/center/HeaderTitle';\nimport { useScroll } from '~/src/helpers/hooks/useScroll';\n\nimport * as ST from './styled';\n\ninterface IHeaderProps {\n withForm: boolean,\n companyName: string,\n footerRef: React.RefObject,\n}\n\nconst Header: React.FC = ({ withForm, companyName, footerRef }: IHeaderProps) => {\n\n const scrollToRef = useScroll();\n const onClickHandler = useCallback(() => {\n scrollToRef(footerRef);\n dataLayerPush({ event: EVENTS.UAevent, category: CATEGORIES.paidServices, action: ACTIONS.clickConsultation, label: 'null' });\n }, [footerRef, scrollToRef]);\n\n return (\n \n \n \n \n \n \n );\n};\n\nexport default Header;\n","import styled from 'styled-components';\n\nimport { BaseButton } from '@r1-frontend/ui-react/components/buttons/baseButton';\n\nimport { breakPoints } from '~/src/constants/breakpoints';\n\nexport const Button = styled(BaseButton)`\n margin-right: 5px;\n\n @media (max-width: ${breakPoints.mobile}) {\n width: 100%;\n }\n`;\n","import React from 'react';\n\nimport type { TDispatch } from '~/src/features/center/BlockInfo';\n\nimport * as ST from './styled';\n\ninterface IProps {\n defaultText: string,\n type: string,\n textButton?: string,\n actionType: string,\n onClickHandler: (\n _setState: TDispatch,\n setActive: TDispatch,\n actionType: string,\n ) => void,\n setHideStatus: TDispatch,\n setActive: TDispatch,\n}\n\nconst SlotButton: React.FC = ({\n defaultText,\n type,\n textButton,\n onClickHandler,\n setHideStatus,\n setActive,\n actionType,\n}) => {\n return (\n onClickHandler(setHideStatus, setActive, actionType)}\n data-test={'button'}\n type={type}\n >\n {textButton || defaultText}\n \n );\n};\n\nexport default SlotButton;\n","import { ICurrentCity } from '@r1-frontend/entities/City/models/ICurrentCity';\n\nimport { DATA_IMAGES_TAB, DATA_SLOTS } from '~/src/features/center/constants/data';\nimport { COUNT_STEPS, URL_BANNER_STEPS } from '~/src/features/center/constants/ordinary';\n\ninterface ISeoPageData {\n title: string,\n description: string,\n}\n\nexport interface IUrls {\n url: string,\n index: number,\n}\n\ninterface ITitle {\n title: string,\n}\n\nexport interface IBg {\n bgGradientPrice: string,\n}\n\nexport interface IData {\n url: string,\n mUrl: string,\n text: string,\n title: string,\n bgGradient: string,\n textButton?: string,\n legal?: string,\n index: number,\n}\n\nexport const getPageDataSeo = (city: ICurrentCity): ISeoPageData => {\n return {\n title: `Дом.ру сервис в ${city.cityIn}`,\n description:\n 'Ваш персональный помощник поможет решить любую проблему с интернетом, телевидением или оборудованием. ' +\n `Подробности на официальном сайте Дом.ру или по телефону ${city.phone}`,\n };\n};\n\nexport const getUrlsForBannerImages = (): IUrls[] => [...Array(COUNT_STEPS)].map((_, index) => {\n return { url: `${URL_BANNER_STEPS}${++index}.svg`, index };\n});\n\nexport const getDataForSlots = (): IData[] => DATA_IMAGES_TAB.map((elem, index) => {\n return { url: `${URL_BANNER_STEPS}${elem.id}.png`, mUrl: `${URL_BANNER_STEPS}${elem.id}-m.png`, index, ...DATA_SLOTS[index] };\n});\n\nexport const getTitleForBlocKPrice = (): ITitle[] => DATA_SLOTS.map((elem) => {\n return { title: elem.title };\n});\n\nexport const getBgBlocKPrice = (): IBg[] => DATA_SLOTS.map((elem) => {\n return { bgGradientPrice: elem.bgGradientPrice };\n});\n\nexport const getWithoutLineTranslation = (str?: string): string | void => {\n if (str) {\n return str.replace('\\n', '');\n }\n};\n\nexport const getTextLegal = (): string[] => {\n const commonText = 'Итоговая стоимость работ будет озвучена после оформления заявки оператором.';\n\n return [\n 'Техническая помощь по услугам связи предоставляется бесплатно.',\n commonText,\n `Роутеры, приобретённые в Дом.ру, обслуживаются бесплатно. ${commonText}`,\n commonText,\n commonText,\n `${commonText} Мы подключимся к вашему устройству с помощью приложения удалённого доступа. Так мы сможем провести необходимые работы`,\n `${commonText} На ваше усмотрение услуга может быть оказана онлайн с помощью приложения удаленного доступа или через визит специалиста.`,\n `${commonText} На ваше усмотрение услуга может быть оказана онлайн или через визит специалиста.`,\n ];\n};\n","import styled from 'styled-components';\n\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport { breakPoints } from '~/src/constants/breakpoints';\n\nimport { Form } from '~/src/features/center/Form/styled';\nimport { IProps } from '~/src/features/center/StepBlock/styled';\n\ninterface IForm {\n isActiveForm: boolean,\n}\n\nexport const Img = styled.div`\n width: 100%;\n min-height: 170px;\n background-image: url('${(props: IProps) => props.url}');\n background-repeat: no-repeat;\n background-position: bottom;\n background-color: transparent;\n margin-top: -35px;\n\n @media (max-width: ${breakPoints.desktop}) {\n min-height: 130px;\n background-position: bottom;\n background-size: auto;\n }\n\n @media (max-width: ${breakPoints.tablet}) {\n height: 250px;\n margin-top: 0;\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n height: 230px;\n }\n\n @media (max-width: 520px) {\n background-size: auto;\n }\n\n @media (max-width: 470px) {\n background-image: url('${(props: IProps) => `${props.mUrl}`}');\n height: 135px;\n }\n`;\n\nexport const TextWrapper = styled.div`\n display: block;\n`;\n\nexport const Legal = styled.div`\n position: absolute;\n width: 300px;\n top: ${(props: IForm) => props.isActiveForm ? '70px' : '61px'};\n ${FONTS.XS};\n text-align: center;\n\n @media (max-width: ${breakPoints.mobile}) {\n top: 105px;\n z-index: ${(props: IForm) => props.isActiveForm ? '-1' : '1'};\n }\n`;\n\nexport const ContainerButtons = styled.div`\n position: relative;\n justify-content: center;\n margin-top: 16px;\n padding-left: 30px;\n padding-right: 30px;\n\n & ${Form} p {\n display: none;\n }\n`;\n\nexport const TitleWrapper = styled.div`\n width: 100%;\n height: auto;\n text-align: center;\n justify-content: center;\n margin-top: 15px;\n ${FONTS.H2};\n\n @media (max-width: ${breakPoints.desktop}) {\n ${FONTS.H3};\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n ${FONTS.H3};\n margin-top: 0;\n padding-left: 15px;\n padding-right: 15px;\n }\n\n @media (max-width: 350px) {\n padding-left: 6px;\n padding-right: 6px;\n }\n`;\n\nexport const Title = styled.div`\n display: block;\n width: 538px;\n\n @media (max-width: ${breakPoints.desktop}) {\n width: 425px;\n }\n\n @media (max-width: ${breakPoints.tablet}) {\n width: 431px;\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n width: auto;\n }\n`;\n\nexport const ContainerElement = styled.div`\n display: block;\n width: 100%;\n`;\n\nexport const Text = styled.div`\n display: block;\n text-align: center;\n ${FONTS.M};\n opacity: .8;\n padding-left: 60px;\n padding-right: 60px;\n margin-top: 8px;\n\n @media (max-width: ${breakPoints.desktop}) {\n padding-left: 79px;\n padding-right: 79px;\n ${FONTS.S};\n }\n\n @media (min-width: ${breakPoints.tablet}) and (max-width: 1278px) {\n padding-left: 23px;\n padding-right: 23px;\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n ${FONTS.XS};\n padding-left: 24px;\n padding-right: 24px;\n }\n`;\n","import React, { Dispatch, SetStateAction } from 'react';\n\nimport { IPpdPricesDto } from '@r1-frontend/api-domru/ppd-service/dto/IPpdPricesDto';\nimport { ICurrentCity } from '@r1-frontend/entities/City/models/ICurrentCity';\n\nimport { btnTypes } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport { ACTIONS } from '@r1-frontend/shared/constants/analytics';\n\nimport Form from '~/src/features/center/Form';\nimport type { TRefObject } from '~/src/features/center/InfoBlocks';\nimport SlotButton from '~/src/features/center/SlotButton';\nimport type { IData } from '~/src/features/center/utils';\nimport { getWithoutLineTranslation } from '~/src/features/center/utils';\n\nimport * as ST from './styled';\n\nexport type TDispatch = Dispatch>;\n\ninterface IDataInfo {\n data: IData,\n city: ICurrentCity,\n formProblemRefs: TRefObject,\n isHiddenForm: boolean,\n isActiveForm: boolean,\n onClickHandler: (_setState: TDispatch, setActive: TDispatch, actionType: string) => void,\n setActiveForm: TDispatch,\n setActivePriceBlock: TDispatch,\n setHideStatusForm: TDispatch,\n setHideStatusPriceBlock: TDispatch,\n dataPricesFiltered: IPpdPricesDto[],\n}\n\nconst BlockInfo: React.FC = ({\n data,\n city,\n formProblemRefs,\n isHiddenForm,\n isActiveForm,\n onClickHandler,\n setActiveForm,\n setActivePriceBlock,\n setHideStatusPriceBlock,\n setHideStatusForm,\n dataPricesFiltered,\n}) => {\n const {\n url,\n mUrl,\n title,\n text,\n index,\n textButton,\n legal,\n } = data;\n\n const textForPriceButton = !dataPricesFiltered || !dataPricesFiltered.length ? 'Подробнее' : 'Узнать стоимость';\n\n return (<>\n \n \n \n \n {title}\n \n \n \n \n {text}\n \n \n \n {isActiveForm && !isHiddenForm\n ? \n : <>\n \n \n }\n {legal && \n {legal}\n }\n \n \n \n );\n};\n\nexport default BlockInfo;\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport { RadioButton as RadioButtonUI } from '@r1-frontend/ui-react/deprecated/controls/radioButton';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport { breakPoints } from '~/src/constants/breakpoints';\nimport { COLOR_CHECKBOX_ACTIVE } from '~/src/features/center/constants/ordinary';\n\nexport const RadioContainer = styled.div`\n width: 100%;\n justify-content: space-between;\n align-items: center;\n`;\n\ninterface IconProps {\n id?: string,\n name?: string,\n value?: string,\n label?: string,\n checked: boolean,\n onChange: () => void,\n}\n\nexport const ThrobberContainer = styled.div`\n height: 106px;\n width: 100%;\n`;\n\nexport const RadioButton = styled(RadioButtonUI)`\n width: 69%;\n ${FONTS.L};\n padding-left: 35px;\n\n @media (max-width: ${breakPoints.mobile}) {\n ${FONTS.XS};\n }\n\n & input ~ span {\n border: 2px solid ${COLORS.grey};\n }\n\n & input:checked ~ span {\n background-color: ${COLORS.white} !important;\n border-color: ${COLOR_CHECKBOX_ACTIVE} !important;\n\n &:after {\n background-color: ${COLOR_CHECKBOX_ACTIVE} !important;\n width: 8px !important;\n height: 8px !important;\n top: 6px !important;\n left: 6px !important;\n }\n }\n`;\n\nexport const Price = styled.div`\n width: fit-content;\n padding: 10px 0 8px 10px;\n ${FONTS.L};\n\n @media (max-width: ${breakPoints.mobile}) {\n ${FONTS.XS};\n }\n\n @media (max-width: 350px) {\n ${FONTS.XXS};\n }\n`;\n","import React, { Dispatch, SetStateAction } from 'react';\n\nimport { IPpdPricesDto } from '@r1-frontend/api-domru/ppd-service/dto/IPpdPricesDto';\n\nimport * as ST from './styled';\n\ninterface IProps {\n setSelected: Dispatch>,\n selected: number,\n dataPricesFiltered: IPpdPricesDto[],\n}\n\nconst ChooserBlock: React.FC = ({ selected, setSelected, dataPricesFiltered }) => {\n\n if ((!dataPricesFiltered || !dataPricesFiltered.length)) {\n return null;\n }\n\n return (\n <>\n {dataPricesFiltered.map((element: IPpdPricesDto, key) => {\n return \n setSelected(key)}/>\n {element.price} ₽\n ;\n })}\n \n );\n};\n\nexport default ChooserBlock;\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport { breakPoints } from '~/src/constants/breakpoints';\n\nexport const Test = styled.div`\n padding-right: 20px;\n`;\n\nexport const OfferLink = styled.a`\n text-decoration: underline;\n color: ${COLORS.middleGray};\n\n @media (max-width: ${breakPoints.mobile}) {\n color: rgba(0,0,0,.7);\n }\n`;\n\nexport const Offer = styled.div`\n display: inline;\n ${FONTS.XXS};\n color: ${COLORS.middleGray};\n white-space: pre-wrap;\n\n @media (max-width: ${breakPoints.mobile}) {\n color: rgba(0,0,0,.7);\n white-space: normal;\n }\n`;\n","import React from 'react';\n\nimport * as ST from './styled';\n\nconst Offer: React.FC = () => {\n\n return (\n <>\n \n {'Нажимая на кнопку, вы даёте согласие на обработку'} \n \n \n \n {'\\nперсональных данных'}\n \n \n \n );\n};\n\nexport default Offer;\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport { breakPoints } from '~/src/constants/breakpoints';\nimport { IBg } from '~/src/features/center/utils';\n\nimport { Form } from '~/src/features/center/Form/styled';\nimport { Offer } from '~/src/features/center/Offer/styled';\n\nconst thumbColor = '#d3d3d3';\n\nexport const PriceBlockContainer = styled.div`\n width: 100%;\n height: 100%;\n border-radius: 32px;\n overflow-y: scroll;\n //For Mozilla\n scrollbar-width: none;\n\n ::-webkit-scrollbar {\n width: 3px;\n }\n\n ::-webkit-scrollbar-track {\n background: transparent;\n margin-top: 27px;\n margin-bottom: 27px;\n }\n\n ::-webkit-scrollbar-corner {\n background: transparent;\n }\n\n ::-webkit-scrollbar-thumb {\n background: ${thumbColor};\n }\n`;\n\nexport const Text = styled.div`\n ${FONTS.M};\n margin: 4px 0;\n opacity: .8;\n\n @media (max-width: ${breakPoints.mobile}) {\n ${FONTS.XS};\n }\n`;\n\nexport const Wrapper = styled.div`\n width: 100%;\n position: relative;\n flex-direction: column;\n border-radius: 32px;\n padding: 40px 40px 26px 40px;\n background: radial-gradient(${(props: IBg) => props.bgGradientPrice}), ${COLORS.white};\n\n @media (max-width: 350px) {\n padding: 40px 25px 26px 25px;\n }\n`;\n\nexport const Title = styled.div`\n ${FONTS.H3};\n margin-top: 8px;\n margin-bottom: 4px;\n\n @media (max-width: ${breakPoints.mobile}) {\n ${FONTS.H4};\n }\n`;\n\nexport const RadioWrapper = styled.div`\n display: block;\n width: 100%;\n margin-bottom: 20px;\n`;\n\nexport const BottomWrapper = styled.div`\n flex-grow: 1;\n\n & ${Form} {\n height: auto;\n width: auto;\n justify-content: left;\n\n @media (max-width: ${breakPoints.tablet}) {\n width: 100%;\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n justify-content: center;\n }\n }\n\n & ${Form} p {\n display: none;\n }\n`;\n\nexport const OfferWrapper = styled.div`\n width: 100%;\n\n & ${Offer} {\n white-space: normal;\n\n @media (max-width: ${breakPoints.mobile}) {\n ${FONTS.XXS};\n }\n }\n`;\n\nexport const BottomContainer = styled.div`\n margin-top: auto;\n\n & ${Form} {\n @media (max-width: ${breakPoints.desktop}) and (min-width: 1278px) {\n width: 100%;\n }\n }\n`;\n\nexport const BottomBlock = styled.p`\n padding-right: 40px;\n ${FONTS.XS};\n opacity: .8;\n margin-top: 12px;\n\n @media (max-width: ${breakPoints.mobile}) {\n ${FONTS.XXS};\n padding-right: 0;\n }\n`;\n","import React, { useState } from 'react';\n\nimport { IPpdPricesDto } from '@r1-frontend/api-domru/ppd-service/dto/IPpdPricesDto';\nimport { ICurrentCity } from '@r1-frontend/entities/City/models/ICurrentCity';\n\nimport type { TDispatch } from '~/src/features/center/BlockInfo';\nimport ChooserBlock from '~/src/features/center/ChooserBlock';\nimport { FIRST_ELEMENT } from '~/src/features/center/constants/ordinary';\nimport Form from '~/src/features/center/Form';\nimport { useEffectActive } from '~/src/features/center/hooks/useEffectActive';\nimport Offer from '~/src/features/center/Offer';\nimport { getWithoutLineTranslation } from '~/src/features/center/utils';\n\nimport * as ST from './styled';\n\ninterface IDataInfo {\n city: ICurrentCity,\n setActivePriceBlock: TDispatch,\n blockPriceRef: React.RefObject,\n title: string,\n text: string,\n textBottom: string,\n bgGradientPrice: string,\n dataPricesFiltered: IPpdPricesDto[],\n}\n\nconst BlockPrice: React.FC = ({\n setActivePriceBlock,\n blockPriceRef,\n title,\n text,\n textBottom,\n bgGradientPrice,\n city,\n dataPricesFiltered,\n}) => {\n const [selected, setSelected] = useState(FIRST_ELEMENT);\n useEffectActive(setActivePriceBlock);\n\n return (\n \n \n {title}\n {text}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default BlockPrice;\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\n\nimport { breakPoints } from '~/src/constants/breakpoints';\n\nimport { Img, Title } from '~/src/features/center/BlockInfo/styled';\n\ninterface IGradient {\n bgGradient: string,\n needShadow: boolean,\n}\n\nexport const Container = styled.div`\n width: calc(50% - 8px);\n height: 576px;\n background: radial-gradient(${(props: IGradient) => props.bgGradient}), ${COLORS.white};\n border-radius: 32px;\n margin-bottom: 16px;\n box-shadow: ${(props: IGradient) => props.needShadow ? '0 4px 16px 0 rgb(0 0 0 / 10%)' : 'initial'};\n\n @media (min-width: ${breakPoints.tablet}) and (max-width: ${breakPoints.desktop}) {\n height: 600px;\n }\n\n @media (max-width: 1278px) {\n width: 100%;\n }\n\n @media (min-width: 1278px) {\n &:nth-child(odd) {\n margin-right: 16px;\n }\n }\n\n @media (max-width: ${breakPoints.tablet}) {\n display: block;\n }\n\n &:nth-child(-n+5) ${Img} {\n @media (max-width: 470px) {\n margin-top: 35px;\n background-position: center;\n height: 160px;\n }\n }\n \n &:nth-child(3) ${Img} {\n @media (max-width: 470px) {\n margin-top: 15px;\n }\n }\n \n &:nth-child(5) ${Img} {\n @media (max-width: 470px) {\n margin-top: 15px;\n }\n }\n\n &:nth-child(1) ${Img} {\n @media (max-width: 470px) {\n margin-top: 15px;\n }\n }\n\n &:nth-child(4) ${Title} {\n @media (max-width: ${breakPoints.mobile}) {\n margin-top: 15px;\n }\n }\n\n &:nth-child(3) ${Img} {\n @media (max-width: 470px) {\n height: 215px;\n }\n }\n\n &:nth-last-child(-n+4) ${Img} {\n @media (min-width: ${breakPoints.tablet}) and (max-width: ${breakPoints.desktop}) {\n margin-top: -65px;\n }\n }\n \n &:nth-last-child(-n+2) ${Img} {\n @media (max-width: ${breakPoints.desktop}) {\n margin-top: -85px;\n }\n \n @media (max-width: ${breakPoints.tablet}) {\n margin-top: -50px;\n }\n\n @media (max-width: 330px) {\n background-size: contain;\n }\n }\n`;\n","import React, { useCallback, useMemo, useState } from 'react';\n\nimport { IPpdPricesDto } from '@r1-frontend/api-domru/ppd-service/dto/IPpdPricesDto';\nimport { ICurrentCity } from '@r1-frontend/entities/City/models/ICurrentCity';\n\nimport { dataLayerPush } from '@r1-frontend/analytics/dataLayerPush';\n\nimport { CATEGORIES, EVENTS } from '@r1-frontend/shared/constants/analytics';\n\nimport type { TDispatch } from '~/src/features/center/BlockInfo';\nimport BlockInfo from '~/src/features/center/BlockInfo';\nimport BlockPrice from '~/src/features/center/BlockPrice';\nimport { CATEGORY_IDS, TEXT_BLOCK_PRICE } from '~/src/features/center/constants/data';\nimport type { TRefObject } from '~/src/features/center/InfoBlocks';\nimport type { IData } from '~/src/features/center/utils';\nimport { getBgBlocKPrice, getTextLegal, getTitleForBlocKPrice } from '~/src/features/center/utils';\n\nimport * as ST from './styled';\n\ninterface IDataSlot {\n slotRefs: TRefObject,\n city: ICurrentCity,\n formProblemRefs: TRefObject,\n blockPriceRefs: TRefObject,\n isHiddenForm: boolean,\n isHiddenPriceBlock: boolean,\n setHideStatusForm: TDispatch,\n setHideStatusPriceBlock: TDispatch,\n data: IData,\n dataPrices: IPpdPricesDto[],\n}\n\nconst Slot: React.FC = ({\n data,\n slotRefs,\n city,\n formProblemRefs,\n isHiddenForm,\n isHiddenPriceBlock,\n setHideStatusForm,\n setHideStatusPriceBlock,\n blockPriceRefs,\n dataPrices,\n}) => {\n\n const [isActiveForm, setActiveForm] = useState(false);\n const [isActivePriceBlock, setActivePriceBlock] = useState(false);\n const onClickHandler = useCallback((_setState, setActive, actionType) => {\n dataLayerPush({ event: EVENTS.UAevent, category: CATEGORIES.paidServices, action: actionType, label: 'null' });\n setActive(true);\n _setState(false);\n }, []);\n\n const dataPricesFiltered = useMemo(() => {\n const categoryIdsArray = Object.values(CATEGORY_IDS);\n /** Первый блок не имеет компонента выбора услуг с ценами */\n categoryIdsArray.unshift(null);\n return dataPrices.filter((elem) => Number(elem.category) === Object.values(categoryIdsArray)[data.index]);\n }, [dataPrices, data.index]);\n\n return (\n \n {isActivePriceBlock && !isHiddenPriceBlock\n ? \n : \n }\n \n );\n};\n\nexport default Slot;\n","import styled from 'styled-components';\n\nimport { breakPoints } from '~/src/constants/breakpoints';\n\nimport { GridContainer as GridContainerCommon } from '~/src/features/center/common/styled';\n\nexport const Wrapper = styled.div`\n width: 100%;\n background-color: transparent;\n padding: 0;\n`;\n\nexport const GridContainer = styled(GridContainerCommon)`\n position: relative;\n margin-bottom: 0;\n background-color: transparent;\n padding-left: 0;\n padding-right: 0;\n z-index: 1;\n \n @media (max-width: ${breakPoints.mobile}) {\n margin-left: 16px;\n margin-right: 16px;\n }\n`;\n","import React, { MutableRefObject, useRef, useState } from 'react';\n\nimport { IPpdPricesDto } from '@r1-frontend/api-domru/ppd-service/dto/IPpdPricesDto';\nimport { ICurrentCity } from '@r1-frontend/entities/City/models/ICurrentCity';\n\nimport type { TDispatch } from '~/src/features/center/BlockInfo';\nimport { COUNT_SLOTS } from '~/src/features/center/constants/ordinary';\nimport Slot from '~/src/features/center/Slot';\nimport type { IData } from '~/src/features/center/utils';\nimport { useClickOutside } from '~/src/helpers/hooks/useClickOutside';\n\nimport * as ST from './styled';\n\nexport type TRefObject = MutableRefObject[]>;\nexport type TRef = React.RefObject[];\n\ninterface IProps {\n data: IData[],\n slotRefs: TRefObject,\n city: ICurrentCity,\n dataPrices: IPpdPricesDto[],\n}\n\ninterface IThis {\n refs: TRefObject,\n setStatus: TDispatch,\n}\n\nconst InfoBlocks: React.FC = ({ data, slotRefs, city, dataPrices }) => {\n const formArray: TRef = [...Array(COUNT_SLOTS)].map(() => React.createRef());\n const formProblemRefs = useRef(formArray);\n const blockPriceRefs = useRef(formArray);\n const [isHiddenForm, setHideStatusForm] = useState(true);\n const [isHiddenPriceBlock, setHideStatusPriceBlock] = useState(true);\n\n function hideFormHandler(this: IThis, ev: MouseEvent) {\n const formProblemRefsFiltered = this.refs.current.filter(elem => elem.current !== null);\n const [formActiveRef] = formProblemRefsFiltered;\n if (ev.target instanceof Node && !formActiveRef?.current?.contains(ev.target)) {\n this.setStatus(true);\n }\n }\n\n useClickOutside(isHiddenPriceBlock, hideFormHandler.bind({ refs: blockPriceRefs, setStatus: setHideStatusPriceBlock }));\n useClickOutside(isHiddenForm, hideFormHandler.bind({ refs: formProblemRefs, setStatus: setHideStatusForm }));\n\n return (\n \n \n {data.map((elem) =>\n )}\n \n \n );\n};\n\nexport default InfoBlocks;\n","import styled 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\nimport { RED_COLOR_TAB_ACTIVE } from '~/src/features/center/constants/ordinary';\n\nexport const Icon = styled.svg`\n width: 38px;\n height: 42px;\n transition: fill .1s linear;\n margin-top: 15px;\n`;\n\nexport const IconBlock = styled.div`\n display: block;\n width: 130px;\n height: 122px;\n text-align: center;\n\n &:hover {\n fill: ${RED_COLOR_TAB_ACTIVE};\n cursor: pointer;\n background: ${COLORS.BgMain};\n box-shadow: 0 4px 16px rgba(0, 0, 0, .1);\n border-radius: ${BorderRadius.InnerBlockRadius};\n }\n`;\n\nexport const Title = styled.div`\n width: 100px;\n ${FONTS.XS};\n margin: auto;\n`;\n","import React from 'react';\n\nimport type { TRefObject } from '~/src/features/center/InfoBlocks';\nimport type { IData } from '~/src/features/center/PanelTab';\nimport { useScroll } from '~/src/helpers/hooks/useScroll';\n\nimport * as ST from './styled';\n\ninterface IDataMod extends Omit {\n id?: string,\n index: number,\n slotRefs: TRefObject,\n}\n\nexport const Tab: React.FC = ({ d, title, slotRefs, index }) => {\n const scrollToRef = useScroll();\n\n return (\n scrollToRef(slotRefs.current[index])}\n >\n \n \n \n {title}\n \n );\n};\n\nexport default Tab;\n\n\n","import styled from 'styled-components';\n\nimport GridContainer from '@r1-frontend/ui-react/components/layouts/gridContainer';\n\nimport { breakPoints } from '~/src/constants/breakpoints';\n\nexport const Wrapper = styled.div`\n display: flex;\n width: auto;\n flex-wrap: nowrap;\n justify-content: space-around;\n`;\n\nexport const GridContainerTabs = styled(GridContainer)`\n flex-direction: column;\n margin-top: 41px;\n padding-bottom: 10px;\n overflow: scroll;\n -ms-overflow-style: none;\n overflow: -moz-scrollbars-none;\n\n &::-webkit-scrollbar { \n width: 0;\n }\n\n @media (max-width: 1279px) {\n width: 1424px;\n }\n \n @media (max-width: ${breakPoints.mobile}) {\n margin-top: 10px;\n margin-bottom: 0;\n }\n`;\n\n","import React from 'react';\n\nimport type { TRefObject } from '~/src/features/center/InfoBlocks';\nimport Tab from '~/src/features/center/Tab';\n\nimport * as ST from './styled';\n\nexport interface IData {\n id: string,\n title: string,\n d: string,\n}\n\ninterface IProps {\n icons: IData[],\n slotRefs: TRefObject,\n}\n\nexport const PanelTab: React.FC = ({ icons, slotRefs }) => {\n\n return (\n \n \n {icons.map((elem, key) =>\n )}\n \n \n );\n};\n\nexport default PanelTab;\n\n\n","import styled from 'styled-components';\n\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport { breakPoints } from '~/src/constants/breakpoints';\n\nexport interface IProps {\n url: string,\n mUrl?: string,\n}\n\nexport const Container = styled.div`\n width: 200px;\n position: relative;\n margin-top: 55px;\n\n @media (min-width: ${breakPoints.desktop}) {\n margin-right: 55px;\n }\n\n @media (max-width: ${breakPoints.sDesktop}) {\n width: 200px;\n }\n\n @media (max-width: 1279px) {\n justify-content: center;\n width: 255px;\n }\n\n @media (max-width: ${breakPoints.tablet}) {\n width: 226px;\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n width: 50%;\n justify-content: left;\n }\n`;\n\nexport const Number = styled.div`\n width: 80px;\n height: 120px;\n background: url('${(props: IProps) => props.url}') bottom no-repeat;\n\n @media (min-width: ${breakPoints.desktop}) {\n margin: auto;\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n width: 65px;\n height: 95px;\n background-size: contain;\n margin-left: 0;\n }\n`;\n\nexport const Text = styled.div`\n position: absolute;\n width: 185px;\n bottom: 5px;\n left: 65px;\n ${FONTS.S};\n opacity: .8;\n\n @media (max-width: ${breakPoints.sDesktop}) {\n width: 175px;\n left: 6px;\n }\n\n @media (max-width: 1279px) {\n left: 69px;\n }\n\n @media (max-width: ${breakPoints.tablet}) {\n max-width: 163px;\n ${FONTS.XS};\n }\n\n @media (min-width: ${breakPoints.sDesktop}) and (max-width: ${breakPoints.desktop}) {\n left: 6px;\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n left: 0;\n width: 135px;\n ${FONTS.XXS}\n }\n`;\n","import React from 'react';\n\nimport * as ST from './styled';\n\ninterface IProps {\n url: string,\n text: string,\n}\n\nexport const StepBlock: React.FC = ({ url, text }) => {\n return (\n \n \n {text}\n \n );\n};\n\nexport default StepBlock;\n\n\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport GridContainerUI from '@r1-frontend/ui-react/components/layouts/gridContainer';\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport { breakPoints } from '~/src/constants/breakpoints';\n\nimport { Wrapper as WrapperCommon } from '~/src/features/center/common/styled';\n\nexport const GridContainer = styled(GridContainerUI)`\n background: radial-gradient(94.05% 87.59% at 98.66% 64.5%, rgba(255, 214, 0, .2) 0%, rgba(255, 250, 130, 0) 100%), ${COLORS.white};\n border-radius: ${BorderRadius.OuterBlockRadius};\n margin-top: 16px;\n\n @media (max-width: ${breakPoints.tablet}) {\n max-width: 800px;\n }\n\n @media (max-width: 800px) and (min-width: ${breakPoints.mobile}) {\n padding-left: 0;\n padding-right: 0;\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n padding-left: 25px;\n padding-right: 25px;\n margin-left: 16px;\n margin-right: 16px;\n min-width: 290px;\n }\n`;\n\nexport const Container = styled.div`\n width: 100%;\n margin: 0 auto;\n`;\n\nexport const Wrapper = styled(WrapperCommon)`\n background-color: transparent;\n justify-content: space-between;\n padding-bottom: 60px;\n padding-left: 0;\n padding-top: 0;\n\n @media (max-width: ${breakPoints.tablet}) {\n justify-content: center;\n padding-left: 0;\n padding-right: 0;\n }\n\n @media (max-width: ${breakPoints.sDesktop}) {\n justify-content: center;\n }\n\n @media (max-width: 1600px) and (min-width: 1024px) {\n padding-left: 10px;\n padding-right: 10px;\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n width: 300px;\n justify-content: start;\n margin: 0 auto;\n }\n`;\n\nexport const Text = styled.div`\n ${FONTS.H2};\n margin: 50px auto 0 auto;\n text-align: center;\n\n @media (max-width: ${breakPoints.mobile}) {\n ${FONTS.H3};\n }\n`;\n","import React from 'react';\n\nimport StepBlock from '~/src/features/center/StepBlock';\nimport type { IUrls } from '~/src/features/center/utils';\n\nimport * as ST from './styled';\n\ninterface IProps {\n title: string,\n textSteps: Array,\n urls: IUrls[],\n}\n\nexport const StepsBanner: React.FC = ({ title, textSteps, urls }) => {\n\n return (\n \n \n {title}\n \n \n \n {urls.map((elem, key) =>\n )}\n \n \n \n );\n};\n\nexport default StepsBanner;\n\n\n","import React, { useRef } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { IPpdPricesDto } from '@r1-frontend/api-domru/ppd-service/dto/IPpdPricesDto';\nimport { ICurrentCity } from '@r1-frontend/entities/City/models/ICurrentCity';\n\nimport { DATA_IMAGES_TAB, TEXT_BANNER, TEXT_STEPS } from '~/src/features/center/constants/data';\nimport { COUNT_SLOTS } from '~/src/features/center/constants/ordinary';\nimport FormCallback from '~/src/features/center/FormCallback';\nimport Header from '~/src/features/center/Header';\nimport type { TRef } from '~/src/features/center/InfoBlocks';\nimport InfoBlocks from '~/src/features/center/InfoBlocks';\nimport PanelTab from '~/src/features/center/PanelTab';\nimport StepsBanner from '~/src/features/center/StepsBanner';\nimport { getDataForSlots, getUrlsForBannerImages } from '~/src/features/center/utils';\nimport { selectCompanyName } from '~/src/store/selectors/city';\n\ninterface IProps {\n city: ICurrentCity,\n dataPrices: IPpdPricesDto[],\n}\n\nconst Center: React.FC = ({ city, dataPrices }) => {\n const footerRef = useRef(null);\n const slotsArray: TRef = [...Array(COUNT_SLOTS)].map(() => React.createRef());\n const slotRefs = useRef(slotsArray);\n const companyName = useSelector(selectCompanyName);\n\n return (\n <>\n \n \n \n \n \n \n );\n};\n\nexport default Center;\n","import React from 'react';\nimport { NextPage } from 'next';\n\nimport { domofonAction } from '@r1-frontend/api-domru/api-content/v1/domofon-action';\nimport { TResponseDto } from '@r1-frontend/api-domru/api-content/v1/domofon-action/dto/ResponseDto';\nimport { IPpdPricesDto } from '@r1-frontend/api-domru/ppd-service/dto/IPpdPricesDto';\nimport { getPpdPrices } from '@r1-frontend/api-domru/ppd-service/v1/ppd-prices';\nimport { ICurrentCity } from '@r1-frontend/entities/City/models/ICurrentCity';\n\nimport Layout from '~/src/features/_layout';\nimport Center from '~/src/features/center';\nimport { getPageDataSeo } from '~/src/features/center/utils';\nimport { initialProps } from '~/src/helpers/basePageFunc';\nimport getRequester from '~/src/helpers/getRequester';\nimport { saveIntercomAction } from '~/src/store/actions/intercom';\n\ninterface IProps {\n city: ICurrentCity,\n pageDataSeo: ReturnType,\n dataPrices: IPpdPricesDto[] | [],\n}\n\nconst ServiceCenterPage: NextPage = ({ city, pageDataSeo, dataPrices }) => {\n return (\n \n \n \n );\n};\n\nServiceCenterPage.getInitialProps = async(options) => {\n await initialProps(options, { isNeedAuthData: true });\n const { req, store } = options;\n const { city: { currentCity: city, provider: { providerId } } } = store.getState();\n const pageDataSeo = getPageDataSeo(city);\n const doRequest = getRequester(req);\n\n const [dataPricesResp, domofon] = await Promise.all([\n doRequest.ppdService(getPpdPrices(providerId)),\n doRequest.apiContent(domofonAction({ filter: { available: 1 } })),\n ]);\n const dataPrices = dataPricesResp.isSuccess ? dataPricesResp.payload : [];\n\n if (domofon.isSuccess && domofon.payload.items.length > 0) {\n // берем первую доступную акцию для текущего города\n store.dispatch(saveIntercomAction(domofon.payload.items[0]));\n }\n\n return ({\n city,\n pageDataSeo,\n dataPrices: dataPrices,\n });\n};\n\nexport default ServiceCenterPage;\n","export const FIRST_ELEMENT = 0;\n\nexport const ONE = 1;\n\nexport const ID_CALL_SPECIALIST = 102905;\n\nexport const COLOR_CHECKBOX_ACTIVE = '#d72e43';\n\nexport const RED_COLOR_TAB_ACTIVE = '#dd4333';\n\nexport const URL_BANNER_STEPS = '/static/images/center/';\n\nexport const COUNT_STEPS = 5;\n\nexport const COUNT_SLOTS = 8;\n","import React, { useCallback } from 'react';\n\ntype TRef = React.RefObject;\n\ninterface IScrollSettings {\n alignment?: ScrollLogicalPosition,\n behavior?: ScrollBehavior,\n absolute?: 'top' | 'bottom',\n}\n\n/**\n * Хук скролла к элементу\n *\n * Если нужен просто скролл (вверх/вниз страницы) без привязки к элементу, используйте настройку { absolute: 'top' | 'bottom' }\n *\n * @function\n * @name hooks.useScroll\n * @param {Object} settings - Настройки поведения скролла. С аргументом offsetY отработает только свойство settings.behavior.\n * @param {number} offsetY - Скроллинг со сдвигом позиции.\n * @returns {(ref: TRef) => void}\n */\nexport function useScroll(\n settings?: IScrollSettings,\n offsetY?: number,\n): (ref: TRef | null) => void {\n return useCallback((ref) => {\n const behavior = settings?.behavior || 'smooth';\n\n if (settings?.absolute) {\n window.scrollTo({ top: settings.absolute === 'top' ? 0 : document.body.scrollHeight, behavior });\n return;\n }\n\n if (offsetY) {\n const top = ref?.current?.getBoundingClientRect().top || 0;\n const y = top + window.pageYOffset + offsetY;\n window.scrollTo({ top: y, behavior });\n } else {\n ref?.current?.scrollIntoView({\n behavior,\n block: settings?.alignment || 'center',\n });\n }\n }, [settings, offsetY]);\n}\n","import { GET_INTERCOM_ACTION } from '~/src/store/actionTypes/intercom';\nimport { IntercomActionInfo } from '~/src/store/reducers/intercom';\n\nexport const saveIntercomAction = (actionInfo: IntercomActionInfo) => ({\n type: GET_INTERCOM_ACTION,\n payload: actionInfo,\n});\n","import { IRequest } from '@r1-frontend/shared/types/IRequest';\n\nimport { TRequestDto } from './dto/RequestDto';\n\n/**\n * Список акций домофонии по всем городам\n * {@link https://master.api-content.sandbox.d2c.r-one.io/docs/v1#/%D0%90%D0%BA%D1%86%D0%B8%D0%B8%20%D0%B4%D0%BE%D0%BC%D0%BE%D1%84%D0%BE%D0%BD%D0%B8%D0%B8/get_v1_domofon_action Documentation}\n */\nexport const domofonAction = (queryParams: TRequestDto = {}): IRequest => ({\n uri: '/v1/domofon-action',\n method: 'GET',\n queryParams,\n withProvider: true,\n});\n","import React, { Component } from 'react';\nimport styled from 'styled-components';\n\nimport { COLORS } from '../../../assets/js/constants';\nimport { FONTS } from '../../../tokens/fonts';\n\nconst RadioButtonNew = styled.label`\n display: block;\n box-sizing: border-box;\n position: relative;\n padding: 10px 0 8px 30px;\n cursor: pointer;\n ${FONTS.S};\n width: 100%;\n opacity: ${props => props.disabled ? 0.3 : 1};\n`;\n\nconst Input = styled.input`\n position: absolute;\n opacity: 0;\n left: -9999px;\n height: 0;\n width: 0;\n`;\n\nconst RadioButtonCheckmark = styled.span`\n position: absolute;\n height: 20px;\n width: 20px;\n top: calc(50% - 10px);\n left: 0;\n border: 1px solid ${COLORS.grey};\n border-radius: 50%;\n transition: all 0.1s ease;\n background: white;\n box-sizing: content-box;\n transition: 0.2s;\n ${RadioButtonNew}:hover ${Input}:not(:checked) ~ & {\n border-color: ${props => props.disabled ? '' : COLORS.darkGrey};\n };\n ${Input}:checked ~ & {\n border-color: ${COLORS.lightGreen};\n background-color: ${COLORS.lightGreen};\n &:after {\n content: \"\";\n position: absolute;\n width: 10px;\n height: 10px;\n top: 5px;\n left: 5px;\n border-radius: 50%;\n background-color: white;\n }\n &:hover {\n border-color: ${COLORS.green};\n background-color: ${COLORS.green};\n }\n }\n`;\n\n/**\n * @deprecated\n * Использовать новый компонент BaseRadio src/components/controls/baseRadio\n * */\nexport class RadioButton extends Component {\n render() {\n const { className, label, value, dataTest, disabled, ...rest } = this.props;\n return (\n \n \n \n {label || value}\n \n );\n }\n}\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUuOTMzNDcgOC4wODAyM0w3LjAxMDM1IDEzLjM4NDJDNy4wOTMxOSAxMy43OTg2IDcuNTA3MzggMTQuMDY3OSA3LjkyMTU3IDEzLjk4NUM4LjE3MDA4IDEzLjk0MzYgOC4zNzcxNyAxMy43NTcxIDguNDgwNzIgMTMuNTI5MkwxMy45MjczIDEuMDk4MDhDMTQuMTEzNyAwLjcwNDQzMSAxMy45MjczIDAuMjQ4NjIzIDEzLjUzMzggMC4wNjIxNTU2QzEzLjMyNjcgLTAuMDIwNzE4NSAxMy4wOTg5IC0wLjAyMDcxODUgMTIuODkxOCAwLjA2MjE1NTZMMC40NjYyMDMgNS41MzE4NUMwLjA3MjcyNiA1LjY5NzYgLTAuMTEzNjU4IDYuMTUzNDEgMC4wNzI3MjYgNi41NDcwNkMwLjE3NjI3MyA2Ljc3NDk2IDAuMzgzMzY2IDYuOTQwNzEgMC42MzE4NzggNy4wMDI4N0w1LjkzMzQ3IDguMDgwMjNaTTExLjcxMTQgMi4yOTk3Nkw4LjA0NTgyIDEwLjY5MDhMNy4zNDE3IDcuMjcyMjFDNy4yNzk1OCA2Ljk2MTQzIDcuMDMxMDYgNi43MzM1MyA2Ljc0MTEzIDYuNjcxMzdMMy4zNDQ4IDUuOTg3NjZMMTEuNzExNCAyLjI5OTc2WiIgZmlsbD0iYmxhY2siLz4KPC9zdmc+Cg==\""],"names":["window","__NEXT_P","push","getPpdPrices","providerId","uri","method","withProvider","CATEGORY_IDS","cable","route","speed","smart","tools","def","DATA_IMAGES_TAB","id","title","d","TEXT_STEPS","TEXT_BLOCK_PRICE","DATA_SLOTS","text","bgGradient","bgGradientPrice","legal","textButton","Col","styled","FlexBoxCol","Row","FlexBoxRow","breakPoints","Wrapper","COLORS","GridContainer","GridContainerUI","InputNameDecorator","nameDecorator","InputSimple","InputPhoneDecorator","phoneDecorator","CommonInputCss","css","Button","BaseButton","FONTS","InputName","InputPhone","Form","ColInput","ColCommon","ColButton","RowSlot","children","withInputName","ST","data-test","useEffectActive","setActive","useEffect","city","formProblemRef","setActiveForm","withLegalText","label","initValueInput","value","isValid","clearInput","useState","name","setName","phone","setPhone","setIsValid","beenStarted","setDataLayer","hasResult","setHasResult","useSelector","state","auth","selectProviderId","shallowEqual","isAuth","clientPersonal","changeHandler","useCallback","inputData","_setState","dataLayerForCBPhonePush","action","ACTIONS","uid","agreement","isLoading","setIsLoading","isError","setIsError","message","setMessage","sendAnalytic","status","option","_tmr","type","goal","isValidWrap","closeHandler","sendFormHandler","resp","doRequest","backCall","phoneNumber","isSuccess","undefined","error","cityId","ref","CustomTagRow","xs","md","sm","onChange","InputVal","errorMessage","placeholder","className","IndentContainer","$united","PolicyNote","buttonText","agreeUrl","POLICY_PAGE_LINK","btnTypes","onClick","disabled","PopupResult","isOpen","onClose","EResultPopupStatus","GridContainerCommon","WrapperCommon","Title","Text","footerRef","ColPhoneWrap","ColCityWrap","ColCity","CitySelect","Arrow","WrapperPhone","Phone","Logo","RowCommon","RowBlock","currentCity","dispatch","useDispatch","isMobile","useMatchMedia","onCityChange","openCitySelect","getCurrentCity","mobileLogoImg","logo","logo_narrow","MobileLogoDefault","middle","top","start","Link","href","passHref","a","alt","src","LogoDefault","xsOffset","smOffset","between","replace","RowButton","RowMiddle","clickHandler","companyName","withForm","GridContainerColumn","scrollToRef","useScroll","onClickHandler","dataLayerPush","event","EVENTS","category","CATEGORIES","Billet","HeaderTitle","defaultText","setHideStatus","actionType","getPageDataSeo","cityIn","description","getWithoutLineTranslation","str","getTextLegal","commonText","Img","props","url","mUrl","TextWrapper","Legal","isActiveForm","ContainerButtons","TitleWrapper","ContainerElement","data","formProblemRefs","isHiddenForm","setActivePriceBlock","setHideStatusPriceBlock","setHideStatusForm","dataPricesFiltered","index","textForPriceButton","length","current","SlotButton","RadioContainer","RadioButton","RadioButtonUI","COLOR_CHECKBOX_ACTIVE","Price","selected","setSelected","map","element","key","nameForLanding","checked","price","_id","OfferLink","Offer","target","rel","PriceBlockContainer","RadioWrapper","BottomWrapper","OfferWrapper","BottomContainer","BottomBlock","blockPriceRef","textBottom","FIRST_ELEMENT","ChooserBlock","dangerouslySetInnerHTML","__html","Container","needShadow","slotRefs","isHiddenPriceBlock","blockPriceRefs","dataPrices","isActivePriceBlock","useMemo","categoryIdsArray","Object","values","unshift","filter","elem","Number","BlockPrice","BlockInfo","hideFormHandler","ev","formActiveRef","formProblemRefsFiltered","this","refs","Node","contains","setStatus","formArray","Array","COUNT_SLOTS","React","useRef","useClickOutside","bind","Slot","Icon","IconBlock","RED_COLOR_TAB_ACTIVE","BorderRadius","viewBox","path","GridContainerTabs","icons","Tab","textSteps","urls","StepBlock","slotsArray","selectCompanyName","Header","PanelTab","StepsBanner","COUNT_STEPS","_","URL_BANNER_STEPS","InfoBlocks","FormCallback","ServiceCenterPage","pageDataSeo","Layout","withMenu","withChat","withFooter","Center","getInitialProps","options","req","store","dataPricesResp","domofon","initialProps","isNeedAuthData","getState","provider","getRequester","Promise","all","ppdService","apiContent","domofonAction","available","payload","items","saveIntercomAction","ONE","settings","offsetY","behavior","absolute","scrollTo","document","body","scrollHeight","y","getBoundingClientRect","pageYOffset","scrollIntoView","block","alignment","actionInfo","GET_INTERCOM_ACTION","queryParams","RadioButtonNew","Input","RadioButtonCheckmark","render","dataTest","rest","Component","module","exports"],"sourceRoot":""}