{"version":3,"file":"static/chunks/pages/_site/[city]/videocontrol-470c9a1f2d991ff3.js","mappings":"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CAjBD,EAAOC,QAAU,m8P,kBCAjBD,EAAOC,QAAU,6H,kBCAjBD,EAAOC,QAAU,21P,iBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,gI,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,mkN,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,8H,iBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,6H,iBCAjBD,EAAOC,QAAU,8H,iBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,gI,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,gI,kBCAjBD,EAAOC,QAAU,6H,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,gI,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,gI,kBCAjBD,EAAOC,QAAU,6H,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,gI,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,gI,kBCAjBD,EAAOC,QAAU,6H,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,gI,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,gI,kBCAjBD,EAAOC,QAAU,6H,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,gI,kBCAjBD,EAAOC,QAAU,+H,iBCAjBD,EAAOC,QAAU,gI,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,8H,iBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,8H,iBCAjBD,EAAOC,QAAU,+H,iBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,8H,kBCAjBD,EAAOC,QAAU,+H,kBCAjBD,EAAOC,QAAU,wH,kBCAjBD,EAAOC,QAAU,yH,iBCAjBD,EAAOC,QAAU,wH,kBCAjBD,EAAOC,QAAU,yH,kBCAjBD,EAAOC,QAAU,wH,kBCAjBD,EAAOC,QAAU,yH,kBCAjBD,EAAOC,QAAU,wH,kBCAjBD,EAAOC,QAAU,yH,kBCAjBD,EAAOC,QAAU,yH,kBCAjBD,EAAOC,QAAU,0H,kBCAjBD,EAAOC,QAAU,mI,kBCAjBD,EAAOC,QAAU,oI,iBCAjBD,EAAOC,QAAU,4H,kBCAjBD,EAAOC,QAAU,6H,kBCAjBD,EAAOC,QAAU,2H,kBCAjBD,EAAOC,QAAU,4H,kBCAjBD,EAAOC,QAAU,0zC,kBCAjBD,EAAOC,QAAU,0tT,kBCAjBD,EAAOC,QAAU,ktC,kBCAjBD,EAAOC,QAAU,mH,kBCAjBD,EAAOC,QAAU,oH,kBCAjBD,EAAOC,QAAU,0uB,kBCAjBD,EAAOC,QAAU,uH,iBCAjBD,EAAOC,QAAU,wH,kBCAjBD,EAAOC,QAAU,mH,kBCAjBD,EAAOC,QAAU,oH,iBCAjBD,EAAOC,QAAU,mH,kBCAjBD,EAAOC,QAAU,oH,kBCAjBD,EAAOC,QAAU,khB,kBCAjBD,EAAOC,QAAU,s0B,kBCAjBD,EAAOC,QAAU,uW","sources":["webpack://_N_E/?2f3d","webpack://_N_E/./src/features/videocontrol/pageBlocks/Cart/constants.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/Cart/FeedbackForm/utils.ts","webpack://_N_E/./src/features/videocontrol/Provider/selectors/index.ts","webpack://_N_E/./src/features/videocontrol/Provider/useRequisitionContext/index.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/Cart/FeedbackForm/styled.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/Cart/FeedbackForm/index.tsx","webpack://_N_E/./src/features/videocontrol/pageBlocks/Cart/RequestPoint/styled.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/Cart/RequestPoint/index.tsx","webpack://_N_E/./src/features/videocontrol/pageBlocks/Cart/TotalPoint/styled.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/Cart/TotalPoint/index.tsx","webpack://_N_E/./src/features/videocontrol/pageBlocks/Cart/styled.ts","webpack://_N_E/./src/features/videocontrol/data.tsx","webpack://_N_E/./src/features/videocontrol/pageBlocks/Cart/index.tsx","webpack://_N_E/./src/features/videocontrol/pageBlocks/StepsInstall/constants.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/StepsInstall/CameraCard/constants.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/StepsInstall/CameraCard/index.tsx","webpack://_N_E/./src/features/videocontrol/pageBlocks/StepsInstall/CameraCard/utils.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/StepsInstall/LocationTabsBlock/styled.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/StepsInstall/LocationTabsBlock/index.tsx","webpack://_N_E/./src/features/videocontrol/styled.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/StepsInstall/NukaWrapper/styled.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/StepsInstall/NukaWrapper/index.tsx","webpack://_N_E/./src/features/videocontrol/pageBlocks/StepsInstall/utils.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/StepsInstall/PlanCard/styled.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/StepsInstall/PlanCard/index.tsx","webpack://_N_E/./src/features/videocontrol/pageBlocks/StepsInstall/StepTitle/styled.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/StepsInstall/StepTitle/index.tsx","webpack://_N_E/./src/features/videocontrol/pageBlocks/StepsInstall/styled.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/StepsInstall/index.tsx","webpack://_N_E/./src/features/videocontrol/Provider/actionTypes/index.ts","webpack://_N_E/./src/features/videocontrol/Provider/actionCreators/index.ts","webpack://_N_E/./src/features/videocontrol/Provider/actions/index.tsx","webpack://_N_E/./src/features/videocontrol/Provider/reducers/index.ts","webpack://_N_E/./src/features/videocontrol/Provider/index.tsx","webpack://_N_E/./src/features/videocontrol/pageBlocks/Advantages/AdvantagesBlock/styled.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/Advantages/AdvantagesBlock/index.tsx","webpack://_N_E/./src/features/videocontrol/pageBlocks/Advantages/styled.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/Advantages/index.tsx","webpack://_N_E/./src/features/videocontrol/pageBlocks/Features/styled.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/Features/index.tsx","webpack://_N_E/./src/features/videocontrol/pageBlocks/Header/styled.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/Header/index.tsx","webpack://_N_E/./src/features/videocontrol/pageBlocks/Questions/styled.ts","webpack://_N_E/./src/features/videocontrol/pageBlocks/Questions/index.tsx","webpack://_N_E/./src/features/videocontrol/index.tsx","webpack://_N_E/./pages/_site/[city]/videocontrol.tsx","webpack://_N_E/./src/api/content/shop/getShopItems.ts","webpack://_N_E/./src/api/requests/contentRequest.js","webpack://_N_E/./src/components/AdaptiveNukaCarousel/styled.ts","webpack://_N_E/./src/components/AdaptiveNukaCarousel/index.tsx","webpack://_N_E/./src/helpers/accessMode.ts","webpack://_N_E/./src/helpers/hooks/useProgressiveImage.tsx","webpack://_N_E/./src/helpers/numbers.js","webpack://_N_E/./src/store/selectors/auth/selectIsAuth.ts","webpack://_N_E/./src/store/selectors/domain.ts","webpack://_N_E/../../packages/shared/src/helpers/pluralize/index.ts","webpack://_N_E/../../packages/shared/src/helpers/pluralize/predifined.ts","webpack://_N_E/../../packages/shared/src/helpers/truncate.ts","webpack://_N_E/../../packages/shared/src/types/EPriceTypes.ts","webpack://_N_E/../../packages/ui-react/src/components/NukaCarousel/DefaultArrow/styled.tsx","webpack://_N_E/../../packages/ui-react/src/components/NukaCarousel/DefaultDots/styled.tsx","webpack://_N_E/../../packages/ui-react/src/components/NukaCarousel/DefaultArrow/index.tsx","webpack://_N_E/../../packages/ui-react/src/components/NukaCarousel/DefaultDots/index.tsx","webpack://_N_E/../../packages/ui-react/src/components/NukaCarousel/styled.tsx","webpack://_N_E/../../packages/ui-react/src/components/NukaCarousel/index.tsx","webpack://_N_E/../../packages/ui-react/src/components/controls/Toggle/styled.ts","webpack://_N_E/../../packages/ui-react/src/components/controls/Toggle/index.tsx","webpack://_N_E/../../packages/ui-react/src/deprecated/Accordion/themes.js","webpack://_N_E/../../packages/ui-react/src/deprecated/Accordion/index.js","webpack://_N_E/./static/images/defaultImageFallback.svg","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_1.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_1.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_1_1.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_1_1.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_1_2.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_1_2.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_2.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_2.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_2_1.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_2_1.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_2_2.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_2_2.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_3.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_3.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_3_1.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_3_1.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_3_2.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_3_2.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_4.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_4.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_4_1.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_4_1.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_4_2.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_4_2.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_5.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_5.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_5_1.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_5_1.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_5_2.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_5_2.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_L1.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_L1.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_L2.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_L2.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_L3.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_L3.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_L4.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_L4.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_L5.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_L5.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_M1.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_M1.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_M2.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_M2.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_M3.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_M3.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_M4.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_M4.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_M5.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_1_M5.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_1.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_1.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_1_1.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_1_1.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_1_2.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_1_2.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_2.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_2.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_2_1.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_2_1.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_2_2.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_2_2.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_3.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_3.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_3_1.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_3_1.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_3_2.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_3_2.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_4.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_4.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_4_1.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_4_1.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_4_2.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_4_2.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_5.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_5.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_5_1.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_5_1.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_5_2.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_5_2.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_L1.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_L1.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_L2.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_L2.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_L3.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_L3.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_L4.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_L4.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_L5.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_L5.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_M1.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_M1.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_M2.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_M2.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_M3.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_M3.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_M4.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_M4.webp","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_M5.png","webpack://_N_E/./static/images/videocontrol/advantages/advantages_2_M5.webp","webpack://_N_E/./static/images/videocontrol/features/picture_1.png","webpack://_N_E/./static/images/videocontrol/features/picture_1.webp","webpack://_N_E/./static/images/videocontrol/features/picture_2.png","webpack://_N_E/./static/images/videocontrol/features/picture_2.webp","webpack://_N_E/./static/images/videocontrol/features/picture_3.png","webpack://_N_E/./static/images/videocontrol/features/picture_3.webp","webpack://_N_E/./static/images/videocontrol/features/picture_4.png","webpack://_N_E/./static/images/videocontrol/features/picture_4.webp","webpack://_N_E/./static/images/videocontrol/header/background.png","webpack://_N_E/./static/images/videocontrol/header/background.webp","webpack://_N_E/./static/images/videocontrol/header/camera_country_house.png","webpack://_N_E/./static/images/videocontrol/header/camera_country_house.webp","webpack://_N_E/./static/images/videocontrol/header/camera_office.png","webpack://_N_E/./static/images/videocontrol/header/camera_office.webp","webpack://_N_E/./static/images/videocontrol/header/camera_porch.png","webpack://_N_E/./static/images/videocontrol/header/camera_porch.webp","webpack://_N_E/./static/images/videocontrol/icons/app.svg","webpack://_N_E/./static/images/videocontrol/icons/movement-reaction.svg","webpack://_N_E/./static/images/videocontrol/icons/observe.svg","webpack://_N_E/./static/images/videocontrol/steps-install/area.png","webpack://_N_E/./static/images/videocontrol/steps-install/area.webp","webpack://_N_E/./static/images/videocontrol/steps-install/bin.svg","webpack://_N_E/./static/images/videocontrol/steps-install/entrance.png","webpack://_N_E/./static/images/videocontrol/steps-install/entrance.webp","webpack://_N_E/./static/images/videocontrol/steps-install/flat.png","webpack://_N_E/./static/images/videocontrol/steps-install/flat.webp","webpack://_N_E/./static/images/videocontrol/steps-install/home.png","webpack://_N_E/./static/images/videocontrol/steps-install/home.webp","webpack://_N_E/./static/images/videocontrol/steps-install/minus.svg","webpack://_N_E/./static/images/videocontrol/steps-install/plus.svg","webpack://_N_E/../../packages/ui-react/src/components/NukaCarousel/DefaultArrow/arrow.svg"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_site/[city]/videocontrol\",\n function () {\n return require(\"private-next-pages/_site/[city]/videocontrol.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_site/[city]/videocontrol\"])\n });\n }\n ","import { EResultPopupStatus } from '@r1-frontend/ui-react/components/popups/popupResult';\n\nimport type { IPopupProps, TField } from '~/src/features/videocontrol/pageBlocks/Cart/types';\n\n/**\n * Данные для результирующего попапа\n *\n * @function\n * @name utils.getPopupResultData\n * @param {boolean} result - результат запроса\n * @param {string} message - сообщение ответа\n * @returns {Omit}\n */\nexport const getPopupResultData = ({ result, message } : { result: boolean, message: string }): Omit => {\n return {\n isResultOpened: true,\n resultType: result ? EResultPopupStatus.SUCCESS : EResultPopupStatus.ERROR,\n resultTitle: result ? 'Заявка отправлена' : 'Произошла ошибка',\n resultText: message || (result ? 'Мы свяжемся с вами в ближайшее время' : 'Что-то пошло не так, попробуйте позже.'),\n };\n};\n\n/**\n * Начальное состояние попапа\n *\n * @name utils.initialPopupState\n * @returns {Omit}\n */\nexport const initialPopupState: Omit = {\n isResultOpened: false,\n resultTitle: '',\n resultText: '',\n resultType: EResultPopupStatus.SUCCESS,\n};\n\n/**\n * Изначальное состояние инпутов формы ос\n *\n * @name utils.STATE_DEFAULT_INPUTS\n * @returns {TField}\n */\nexport const STATE_DEFAULT_INPUTS: TField = {\n value: '',\n isValid: false,\n clearInput: () => undefined,\n};\n","import { TCameras } from '@r1-frontend/api-domru/api-request/v1/user/request-by-connection/dto/RequestDto';\n\nimport type { IState, TCamera } from '~/src/features/videocontrol/Provider/types';\n\ntype TGetLabels = (cameras: Record, getCamera: (elem: number) => TCamera) => string[];\n\ntype TGetResult = (state: IState, getCamera: (elem: number) => TCamera, cameras: Record) => TCameras[];\n\nexport const getLabelsCameras: TGetLabels = (cameras, getCamera) => {\n const fullBuy = 2;\n return [...Array(Object.values(cameras).length || 1)].map((data, key) => {\n if (!getCamera(key)?.name) {\n return 'null';\n }\n return ` ${getCamera(key)?.name} | ${getCamera(key)?.operType === fullBuy ? 'Покупка' : 'Рассрочка'}`;\n });\n};\n\nexport const getResultData: TGetResult = (state, getCamera, cameras) => {\n return [...Array(Object.values(cameras).length || 1)].map((data, key) => {\n return {\n cp: state.installLocation?.priceTotal || null,\n p: state.installLocation?.name,\n id: getCamera(key)?.id,\n pr: getCamera(key)?.priceTotal || getCamera(key)?.priceMonth || null,\n ot: getCamera(key)?.operType,\n ld: getCamera(key)?.service,\n pn: state.plan?.name,\n pp: state.plan?.priceMonth || state.plan?.oldPrice,\n vn: state.plan?.subService,\n vp: state.planOption?.priceMonth || null,\n ct: getCamera(key)?.count,\n };\n });\n};\n","import type { IState } from '~/src/features/videocontrol/Provider/types';\n\ninterface ISelect {\n state: IState,\n isPerMonth?: boolean,\n withOutSale?: boolean,\n}\n\nconst selectPrice = ({ state, isPerMonth = false, withOutSale = false }: ISelect): number => {\n const { cameras, installLocation, plan, planOption, injector } = state;\n let totalPrice = 0;\n const camerasArray = Object.values(cameras);\n camerasArray.forEach((camera) => {\n isPerMonth && (totalPrice += camera.priceMonthWithCount);\n !isPerMonth && (totalPrice += camera.priceTotalWithCount + camera.priceMonthWithCount);\n });\n !isPerMonth && installLocation && (totalPrice += installLocation.priceTotalWithCount);\n !isPerMonth && injector.count && (totalPrice += injector.priceTotalWithCount);\n plan && !withOutSale && (totalPrice += plan.priceMonthWithCount);\n plan && withOutSale && (totalPrice += Number(plan.oldPrice) || plan.priceMonthWithCount);\n planOption && (totalPrice += planOption.priceMonthWithCount);\n return totalPrice;\n};\n\nexport const selectTotalPrice = (state: IState): number => {\n return selectPrice({ state });\n};\n\nexport const selectTotalPriceMonth = (state: IState): number => {\n return selectPrice({ state, isPerMonth: true });\n};\n\nexport const selectTotalPriceWithOutSale = (state: IState): number => {\n return selectPrice({ state, withOutSale: true });\n};\n","import { createContext, useContext } from 'react';\n\nimport type { TInitContext } from '~/src/features/videocontrol/Provider/types';\n\nexport const RequisitionContext = createContext({} as TInitContext);\n\nexport const useRequisitionContext = () => {\n return useContext(RequisitionContext);\n};\n","import styled, { css } 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 InputSimple, { nameDecorator, phoneDecorator } from '@r1-frontend/ui-react/components/inputSimple';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nconst InputPhoneDecorator = phoneDecorator(InputSimple);\nconst InputNameDecorator = nameDecorator(InputSimple);\n\nconst CommonInputCss = css`\n width: 244px;\n margin: 0;\n\n input:-webkit-autofill,\n input:-webkit-autofill:hover, \n input:-webkit-autofill:focus, \n input:-webkit-autofill:active {\n -webkit-text-fill-color: white;\n box-shadow: 0 0 0 100px transparent inset;\n transition: background-color 2000s ease-in-out 0s;\n background: linear-gradient(top,\n rgba(255,255,255,0) 0%,rgba(0,174,255,.04) 50%, rgba(255,255,255,0) 51%, rgba(0,174,255,.03) 100%);\n }\n\n input {\n background: rgba(255, 255, 255, .05);\n border-radius: 5px;\n height: 55px;\n color: ${COLORS.white};\n }\n`;\n\nexport const FormContainer = styled.div`\n position: relative;\n width: 592px;\n height: fit-content;\n min-height: 298px;\n flex-direction: column;\n gap: 15px;\n background-color: rgba(255, 255, 255, .05);\n border-radius: ${BorderRadius.OuterBlockRadius};\n padding: 32px 36px 20px 36px;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n width: auto;\n max-width: 592px;\n }\n`;\n\nexport const TitleWrap = styled.div`\n height: fit-content;\n gap: 3px;\n`;\n\nexport const SubText = styled.span`\n max-width: 85%;\n ${FONTS.XS};\n color: ${COLORS.GRAY_S};\n`;\n\nexport const Title = styled.span`\n ${FONTS.H4};\n color: ${COLORS.white};\n`;\n\nexport const InputsWrap = styled.div`\n height: fit-content;\n width: 100%;\n justify-content: space-between;\n gap: 20px;\n\n @media (max-width: ${wideBreakpoints.sMobile}) {\n width: 234px;\n }\n`;\n\nexport const LegalWrap = styled.div`\n gap: 10px;\n color: ${COLORS.GRAY_S};\n`;\n\nexport const ButtonContainer = styled.div`\n width: 100%;\n`;\n\nexport const ButtonWrap = styled(BaseButton)<{ disabled: boolean }>`\n width: 264px;\n cursor: ${(p) => p.disabled ? 'default' : 'pointer' };\n\n @media (max-width: ${wideBreakpoints.sMobile}) {\n width: 234px;\n }\n`;\n\nexport const InputPhone = styled(InputPhoneDecorator)`\n ${CommonInputCss};\n`;\n\nexport const InputName = styled(InputNameDecorator)`\n ${CommonInputCss};\n`;\n\nexport const AgreeTextWrap = styled.div`\n ${FONTS.XS};\n color: ${COLORS.GRAY_S};\n\n @media (max-width: 450px) {\n width: 200px;\n }\n`;\n\nexport const AgreeTextUnderLine = styled.a`\n text-decoration: underline;\n color: ${COLORS.GRAY_S};\n`;\n","import type { Dispatch, FC, SetStateAction } from 'react';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { doRequest } from '@r1-frontend/do-request';\nimport {\n requestByConnection,\n RequestDto,\n ResponseDto,\n} from '@r1-frontend/api-domru/api-request/v1/user/request-by-connection';\n\nimport { btnTypes } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport { PolicyNote } from '@r1-frontend/ui-react/components/PolicyNote';\nimport { ACTIONS } from '@r1-frontend/shared/constants/analytics';\nimport { EProductsId } from '@r1-frontend/shared/types/EProductsId';\n\nimport PopupResult from '~/src/components/Popups/PopupResult';\nimport { POLICY_PAGE_LINK } from '~/src/constants';\nimport {\n getPopupResultData,\n initialPopupState,\n STATE_DEFAULT_INPUTS,\n} from '~/src/features/videocontrol/pageBlocks/Cart/constants';\nimport { getLabelsCameras, getResultData } from '~/src/features/videocontrol/pageBlocks/Cart/FeedbackForm/utils';\nimport type { TField } from '~/src/features/videocontrol/pageBlocks/Cart/types';\nimport { IProps } from '~/src/features/videocontrol/pageBlocks/Cart/types';\nimport { selectTotalPrice } from '~/src/features/videocontrol/Provider/selectors';\nimport { useRequisitionContext } from '~/src/features/videocontrol/Provider/useRequisitionContext';\nimport { dataLayerForCBPhonePush, IDataLayerPushUid } from '~/src/helpers/eventsForDataLayer';\nimport { selectCsrf } from '~/src/store/selectors/auth/selectCsrf';\n\nimport * as ST from '~/src/features/videocontrol/pageBlocks/Cart/FeedbackForm/styled';\n\nexport const FeedbackForm: FC = ({ isAuth, agreement }) => {\n const csrf = useSelector(selectCsrf);\n const [phone, setPhone] = useState(STATE_DEFAULT_INPUTS);\n const [name, setName] = useState(STATE_DEFAULT_INPUTS);\n const [isValid, setValid] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [popup, setPopup] = useState(initialPopupState);\n const [beenStarted, setDataLayer] = useState(false);\n\n const { setResetAllDispatch, state, cameras, plan, installLocation, planOption } = useRequisitionContext();\n const totalPrice = selectTotalPrice(state);\n\n const getCamera = useMemo(() => (key: number) => {\n return state.cameras[Object.keys(state.cameras)[key] as unknown as number];\n }, [state.cameras]);\n\n const labelsCameras = useMemo(() => getLabelsCameras(cameras, getCamera), [cameras, getCamera]);\n\n const onChangeHandlerInput = (stateInput: TField, _setState: Dispatch>) => {\n if (!beenStarted && stateInput.value) {\n dataLayerForCBPhonePush({\n action: ACTIONS.started,\n option: `${installLocation?.type || null} | ${labelsCameras}| ${plan?.name || null} | ${planOption?.name || null} | ${totalPrice}₽`,\n uid: isAuth ? agreement : null,\n } as unknown as IDataLayerPushUid);\n setDataLayer(true);\n }\n _setState(stateInput);\n };\n\n useEffect(() => {\n setValid(name.isValid && phone.isValid);\n }, [phone, name, cameras, plan]);\n\n const closePopup = useCallback(() => {\n name.clearInput();\n phone.clearInput();\n setPopup((prevState) => ({\n ...prevState,\n isResultOpened: false,\n }));\n }, [name, phone]);\n\n const openPopupResult = (result: boolean, message: string) => {\n dataLayerForCBPhonePush({\n action: result ? ACTIONS.finished : ACTIONS.error,\n option: `${installLocation?.type || null} | ${labelsCameras}| ${plan?.name || null} | ${planOption?.name || null} | ${totalPrice}₽`,\n uid: isAuth ? agreement : null,\n } as unknown as IDataLayerPushUid);\n setPopup({ ...getPopupResultData({ result, message }) });\n };\n\n const onSubmit = async() => {\n const result = getResultData(state, getCamera, cameras);\n const params: RequestDto = {\n fio: name.value,\n phone: phone.value,\n csrf,\n product_id: [EProductsId.videoControl],\n check_call_type: window && window.location.href,\n cameras: result,\n };\n setIsLoading(true);\n\n const resp = await doRequest.apiRequest(requestByConnection(params));\n if (resp.isSuccess) {\n const { status, message } = resp.payload;\n const ok = !!status;\n\n openPopupResult(ok, message);\n } else {\n openPopupResult(false, 'Не удалось отправить заявку. Пожалуйста, попробуйте еще раз.');\n }\n\n setIsLoading(false);\n setValid(false);\n setResetAllDispatch();\n };\n\n const buttonText = 'Оставить заявку';\n\n return (\n \n \n Введите ваши контактные данные.\n \n Нажмите кнопку «Оставить заявку», мы перезвоним и уточним детали подключения.\n \n \n \n onChangeHandlerInput(stateInput, setName)}\n type='name'\n errorMessage='Должны быть только буквы'\n placeholder='Ваше имя'\n name='name'\n className={'ym-disable-keys'}\n />\n onChangeHandlerInput(stateInput, setPhone)}\n type='phone'\n errorMessage='Укажите корректный номер телефона'\n placeholder='Мобильный телефон'\n name='phone'\n className={'ym-disable-keys'}\n />\n \n \n \n \n \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\nimport bin from '~/static/images/videocontrol/steps-install/bin.svg';\nimport minus from '~/static/images/videocontrol/steps-install/minus.svg';\nimport plus from '~/static/images/videocontrol/steps-install/plus.svg';\n\nconst resetStyleButton = css`\n background: transparent;\n border: none;\n margin: 0;\n outline: none;\n`;\n\nexport const Container = styled.div`\n width: 100%;\n gap: 8px;\n border-bottom: 1px solid;\n border-color: ${COLORS.TextInfo};\n padding-bottom: 8px;\n`;\n\nexport const ShopTitle = styled.h4`\n width: 100%;\n ${FONTS.H4};\n color: ${COLORS.TextWhite};\n`;\n\nexport const ProductName = styled.span`\n ${FONTS.M};\n color: ${COLORS.TextWhite};\n`;\n\nexport const DeleteButton = styled.button`\n ${resetStyleButton};\n width: 20px;\n height: 20px;\n background-image: url('${bin}');\n background-repeat: no-repeat;\n background-position: center;\n cursor: pointer;\n`;\n\nexport const ProductNameWrap = styled.div`\n width: 100%;\n justify-content: space-between;\n`;\n\nexport const WrapSubService = styled.div`\n width: 100%;\n`;\n\nexport const SubService = styled.span`\n ${FONTS.XS};\n color: ${COLORS.GRAY_LIGHT};\n`;\n\nexport const Service = styled.span`\n ${FONTS.S};\n color: ${COLORS.GRAY_LIGHT};\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n width: 120px;\n }\n`;\n\nexport const PriceWrap = styled.div`\n gap: 16px;\n\n @media (max-width: 400px) {\n flex-direction: column-reverse;\n gap: 0;\n }\n`;\n\nexport const Price = styled.span`\n ${FONTS.S};\n color: ${COLORS.GRAY_LIGHT};\n`;\n\nexport const OldPrice = styled.s`\n ${FONTS.S};\n color: ${COLORS.GRAY_LIGHT};\n`;\n\nexport const ServiceWrap = styled.div`\n width: 100%;\n justify-content: space-between;\n \n @media (max-width: ${wideBreakpoints.mobile}) {\n align-items: flex-end;\n }\n`;\n\nexport const Counter = styled.div<{isDisabled: boolean}>`\n width: 101px;\n height: 28px;\n align-items: center;\n justify-content: space-between;\n border-radius: 20px;\n padding: 0 18px;\n ${FONTS.S};\n background-color: ${(p) => p.isDisabled ? COLORS.TextDisabled : COLORS.BgLight};\n pointer-events: ${(p) => p.isDisabled ? 'none' : 'default'};\n`;\n\nexport const Plus = styled.button`\n ${resetStyleButton};\n width: 14px;\n height: 14px;\n background: url('${plus}') no-repeat center;\n cursor: pointer;\n`;\n\nexport const Minus = styled.button`\n ${resetStyleButton};\n width: 14px;\n height: 14px;\n background: url('${minus}') no-repeat center;\n cursor: pointer;\n`;\n\nexport const CountValue = styled.span`\n flex-grow: 1;\n text-align: center;\n`;\n\nexport const CounterWrap = styled.div`\n gap: 24px;\n align-items: center;\n`;\n","import React, { FC } from 'react';\n\nimport type { TCamera, TInjector, TOption, TPlace, TPlan } from '~/src/features/videocontrol/Provider/types';\nimport { useRequisitionContext } from '~/src/features/videocontrol/Provider/useRequisitionContext';\n\nimport * as ST from './styled';\n\nconst MAX_COUNT = 99;\n\ninterface TProps {\n installLocation?: TPlace | null,\n camera?: TCamera | Record,\n injector?: TInjector,\n plan?: TPlan | null,\n planOption?: TOption | null,\n title: string,\n withCounter?: boolean,\n onDeleteHandler?: (id: number) => void,\n}\n\nexport const RequestPoint: FC = ({\n installLocation,\n camera,\n plan,\n planOption,\n title,\n withCounter,\n onDeleteHandler,\n injector,\n})=> {\n const { decrementCameraCountDispatch, incrementCameraCountDispatch } = useRequisitionContext();\n const data = installLocation || camera || plan || planOption || injector;\n\n if (!data || !Object.keys(data).length) {\n return null;\n }\n\n const { subService, name, service, currencyType, id } = data;\n const priceTotal = installLocation?.priceTotalWithCount || camera?.priceTotal || injector?.priceTotalWithCount;\n const priceMonth = plan?.priceMonthWithCount || camera?.priceMonth || planOption?.priceMonthWithCount;\n\n const incrementCameraHandler = (id: number) => {\n if (camera?.count === MAX_COUNT) {\n return;\n }\n incrementCameraCountDispatch(id);\n };\n\n const getPrice = (): number => {\n return Number(camera?.priceTotalWithCount || camera?.priceMonthWithCount || priceTotal || priceMonth);\n };\n\n return (\n \n {title}\n \n \n {name}\n \n {onDeleteHandler && onDeleteHandler(id)}/>}\n \n \n {subService && {subService}}\n \n {withCounter &&\n \n decrementCameraCountDispatch(id)}/>\n {camera?.count || injector?.count}\n incrementCameraHandler(id)}/>\n \n }\n \n {service}\n \n \n {getPrice()} {currencyType}\n \n {plan?.oldPrice && {plan?.oldPrice} {currencyType}}\n \n \n \n );\n};\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nexport const Container = styled.div`\n width: 100%;\n`;\n\nexport const ServiceWrap = styled.div`\n width: 100%;\n justify-content: space-between;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n align-items: flex-end;\n }\n`;\n\nexport const PriceWrap = styled.div`\n gap: 16px;\n\n @media (max-width: 400px) {\n flex-direction: column-reverse;\n gap: 0;\n }\n`;\n\nexport const Service = styled.span`\n ${FONTS.H5};\n color: ${COLORS.GRAY_S};\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n width: 120px;\n }\n`;\n\nexport const ServiceConnect = styled.span`\n ${FONTS.H4};\n color: ${COLORS.white};\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.H5};\n width: 120px;\n }\n`;\n\nexport const Price = styled.span`\n ${FONTS.S};\n color: ${COLORS.GRAY_S};\n`;\n\nexport const PriceConnect = styled.span`\n ${FONTS.H3};\n color: ${COLORS.white};\n \n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.H5};\n }\n`;\n\nexport const OldPrice = styled.s`\n ${FONTS.H3};\n color: ${COLORS.GRAY_S};\n \n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.H5};\n }\n`;\n","import React, { FC } from 'react';\n\nimport {\n selectTotalPrice,\n selectTotalPriceMonth,\n selectTotalPriceWithOutSale,\n} from '~/src/features/videocontrol/Provider/selectors';\nimport { useRequisitionContext } from '~/src/features/videocontrol/Provider/useRequisitionContext';\n\nimport * as ST from './styled';\n\nexport const TotalPoint: FC = ()=> {\n const { state } = useRequisitionContext();\n const totalPrice = selectTotalPrice(state);\n const totalPriceMonth = selectTotalPriceMonth(state);\n const totalPriceWithOutSale = selectTotalPriceWithOutSale(state);\n\n return (\n \n \n Ежемесячный платеж\n \n {totalPriceMonth} ₽/мес\n \n \n \n Итого при подключении:\n \n \n {totalPrice} ₽\n \n {totalPrice !== totalPriceWithOutSale &&\n \n {totalPriceWithOutSale} ₽\n \n }\n \n \n \n );\n};\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nexport const CartContainer = styled.article`\n padding: 65px 0;\n`;\n\nexport const Title = styled.h2`\n ${FONTS.H2};\n color: ${COLORS.white};\n margin-bottom: 33px;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.H3};\n }\n`;\n\nexport const ContentContainer = styled.section`\n display: flex;\n gap: 32px;\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n flex-direction: column;\n gap: 12px;\n }\n`;\n\nexport const ShopListContainer = styled.div`\n max-width: 592px;\n padding: 31px 37px 46px 37px;\n border-radius: ${BorderRadius.OuterBlockRadius};\n background-color: rgba(255, 255, 255, .05);\n`;\n\nexport const TitleWrap = styled.div`\n flex-direction: column;\n gap: 33px;\n`;\n\nexport const TitleList = styled.h3`\n width: 100%;\n ${FONTS.H3};\n color: ${COLORS.white};\n`;\n\nexport const ShopListContent = styled.div`\n width: 100%;\n gap: 16px;\n`;\n\nexport const ShopList = styled.div`\n width: 100%;\n gap: 16px;\n`;\n","import { LAQUO, MDASH, NBSP, RAQUO } from '@r1-frontend/ui-react/tokens/symbols';\n\nimport type { IData, TTabs } from '~/src/features/videocontrol/pageBlocks/Advantages/types';\nimport type { IFeaturesData, IHeaderItems, IHeaderPictures } from '~/src/features/videocontrol/pageBlocks/Header/types';\nimport { TArticle } from '~/src/features/videocontrol/pageBlocks/Questions';\nimport type { TTabSteps } from '~/src/features/videocontrol/pageBlocks/StepsInstall/LocationTabsBlock/types';\nimport type { TInjector, TPlace } from '~/src/features/videocontrol/Provider/types';\nimport type { IDataPlans } from '~/src/features/videocontrol/types';\n\nexport const faqData: TArticle[] = [\n {\n id: 1,\n question: `Как подключить умные камеры от${NBSP}Дом.ру?`,\n answer: `

1. Оставьте заявку на${NBSP}сайте dom.ru, либо через контакт центр. Наш координатор перезвонит вам` +\n `, чтобы спланировать время доставки и${NBSP}установки камеры.

` +\n `

2. Подключите камеру через WI-FI или напрямую к${NBSP}роутеру с${NBSP}помощью кабеля.

` +\n `

3. Скачайте на${NBSP}смартфон приложение ${LAQUO}Умный Дом.ру${RAQUO};. Синхронизируйте с${NBSP}ним ` +\n `камеру и${NBSP}пользуйтесь услугой в${NBSP}любое удобное время.

`,\n },\n {\n id: 2,\n question: `Чем отличается умная камера Дом.ру от${NBSP}обычной камеры видеонаблюдения?`,\n answer: `Детектор движения${NBSP}${MDASH} это датчик внутри камеры, который обнаруживает движения объектов ` +\n `в${NBSP}поле зрения камеры. Как только камера фиксирует движение в${NBSP}кадре, включается видеозапись ` +\n `и${NBSP}она длится до${NBSP}прекращения движения. Эта технология позволяет не${NBSP}просматривать ` +\n `многочасовую запись, а${NBSP}получить видео только тех моментов, когда в${NBSP}поле зрения камеры ` +\n 'что-то происходило.',\n },\n {\n id: 3,\n question: `Есть${NBSP}ли гарантия на${NBSP}оборудование?`,\n answer: `Гарантия${NBSP}${MDASH} 1${NBSP}год с${NBSP}момента подписания гарантийного талона. Условия ` +\n `не${NBSP}отличаются от${NBSP}любой другой бытовой техники общего пользования.`,\n },\n {\n id: 4,\n question: `Можно${NBSP}ли установить камеры на${NBSP}улице?`,\n answer: `Да, в${NBSP}нашем ассортименте есть как домашние камеры, так и${NBSP}уличные, которые работают при ` +\n `температуре от -40 до${NBSP}+50${NBSP}°C${NBSP}и${NBSP}обладают антивандальным корпусом.`,\n },\n {\n id: 5,\n question: `Смогу${NBSP}ли я${NBSP}просматривать видео с${NBSP}камер, находясь в${NBSP}другом городе ` +\n `или за${NBSP}границей?`,\n answer: `Да, вы${NBSP}можете смотреть видео с${NBSP}камер из${NBSP}любой точки мира. Для этого нужно ` +\n `подключение к${NBSP}сети интернет и${NBSP}авторизация в${NBSP}приложении ${LAQUO}Умный Дом${RAQUO}.`,\n },\n {\n id: 6,\n question: `Можно${NBSP}ли добавить к${NBSP}просмотру видео в${NBSP}приложении ${LAQUO}Умный Дом.ру${RAQUO} ` +\n 'своих членов семьи?',\n answer: `Да, в${NBSP}приложении можно настроить семейный доступ к${NBSP}камере и${NBSP}добавить ` +\n `к${NBSP}просмотру членов семьи.`,\n },\n {\n id: 7,\n question: `Есть${NBSP}ли в${NBSP}камерах микрофон?`,\n answer: `Да, в${NBSP}нашем модельном ряду ip-видеокамер есть устройства, оснащенные микрофоном.`,\n },\n];\n\nexport const videocontrolAdvantagesTabs: TTabs = {\n leftText: 'Внутри',\n rightText: 'Снаружи',\n};\n\nexport const videocontrolInsideData: IData[] = [\n {\n id: 1,\n question: `Что происходит в${NBSP}квартире`,\n answer: `Не${NBSP}волнуйтесь, камера пришлет уведомление, если кто-то попытается проникнуть внутрь`,\n bgImageXXL: require('~/static/images/videocontrol/advantages/advantages_1_1.png'),\n bgImageXL: require('~/static/images/videocontrol/advantages/advantages_1_L1.png'),\n bgImageL: require('~/static/images/videocontrol/advantages/advantages_1_M1.png'),\n bgImageM: require('~/static/images/videocontrol/advantages/advantages_1_1_1.png'),\n bgImageS: require('~/static/images/videocontrol/advantages/advantages_1_1_2.png'),\n bgImageXXLWebp: require('~/static/images/videocontrol/advantages/advantages_1_1.webp'),\n bgImageXLWebp: require('~/static/images/videocontrol/advantages/advantages_1_L1.webp'),\n bgImageLWebp: require('~/static/images/videocontrol/advantages/advantages_1_M1.webp'),\n bgImageMWebp: require('~/static/images/videocontrol/advantages/advantages_1_1_1.webp'),\n bgImageSWebp: require('~/static/images/videocontrol/advantages/advantages_1_1_2.webp'),\n isHigher: true,\n },\n {\n id: 2,\n question: 'Чем занят ребенок',\n answer: `Узнайте, чем занимается ваш ребенок в${NBSP}ваше отсутствие, и${NBSP}как о${NBSP}нем заботится няня`,\n bgImageXXL: require('~/static/images/videocontrol/advantages/advantages_1_2.png'),\n bgImageXL: require('~/static/images/videocontrol/advantages/advantages_1_L2.png'),\n bgImageL: require('~/static/images/videocontrol/advantages/advantages_1_M2.png'),\n bgImageM: require('~/static/images/videocontrol/advantages/advantages_1_2_1.png'),\n bgImageS: require('~/static/images/videocontrol/advantages/advantages_1_2_2.png'),\n bgImageXXLWebp: require('~/static/images/videocontrol/advantages/advantages_1_2.webp'),\n bgImageXLWebp: require('~/static/images/videocontrol/advantages/advantages_1_L2.webp'),\n bgImageLWebp: require('~/static/images/videocontrol/advantages/advantages_1_M2.webp'),\n bgImageMWebp: require('~/static/images/videocontrol/advantages/advantages_1_2_1.webp'),\n bgImageSWebp: require('~/static/images/videocontrol/advantages/advantages_1_2_2.webp'),\n isHigher: true,\n },\n {\n id: 3,\n question: `Следите за${NBSP}ходом ремонта`,\n answer: `Следите в${NBSP}режиме онлайн за${NBSP}ходом ремонтных работ, не${NBSP}выезжая на${NBSP}объект`,\n bgImageXXL: require('~/static/images/videocontrol/advantages/advantages_1_3.png'),\n bgImageXL: require('~/static/images/videocontrol/advantages/advantages_1_L3.png'),\n bgImageL: require('~/static/images/videocontrol/advantages/advantages_1_M3.png'),\n bgImageM: require('~/static/images/videocontrol/advantages/advantages_1_3_1.png'),\n bgImageS: require('~/static/images/videocontrol/advantages/advantages_1_3_2.png'),\n bgImageXXLWebp: require('~/static/images/videocontrol/advantages/advantages_1_3.webp'),\n bgImageXLWebp: require('~/static/images/videocontrol/advantages/advantages_1_L3.webp'),\n bgImageLWebp: require('~/static/images/videocontrol/advantages/advantages_1_M3.webp'),\n bgImageMWebp: require('~/static/images/videocontrol/advantages/advantages_1_3_1.webp'),\n bgImageSWebp: require('~/static/images/videocontrol/advantages/advantages_1_3_2.webp'),\n },\n {\n id: 4,\n question: `Наблюдайте за${NBSP}питомцами`,\n answer: `Будьте в${NBSP}курсе, чем заняты домашние животные в${NBSP}ваше отсутствие`,\n bgImageXXL: require('~/static/images/videocontrol/advantages/advantages_1_4.png'),\n bgImageXL: require('~/static/images/videocontrol/advantages/advantages_1_L4.png'),\n bgImageL: require('~/static/images/videocontrol/advantages/advantages_1_M4.png'),\n bgImageM: require('~/static/images/videocontrol/advantages/advantages_1_4_1.png'),\n bgImageS: require('~/static/images/videocontrol/advantages/advantages_1_4_2.png'),\n bgImageXXLWebp: require('~/static/images/videocontrol/advantages/advantages_1_4.webp'),\n bgImageXLWebp: require('~/static/images/videocontrol/advantages/advantages_1_L4.webp'),\n bgImageLWebp: require('~/static/images/videocontrol/advantages/advantages_1_M4.webp'),\n bgImageMWebp: require('~/static/images/videocontrol/advantages/advantages_1_4_1.webp'),\n bgImageSWebp: require('~/static/images/videocontrol/advantages/advantages_1_4_2.webp'),\n },\n {\n id: 5,\n question: `Заботьтесь о${NBSP}родителях`,\n answer: `Узнавайте, как дела у${NBSP}пожилых родственников и${NBSP}быстро реагируйте в${NBSP}случае${NBSP}ЧС`,\n bgImageXXL: require('~/static/images/videocontrol/advantages/advantages_1_5.png'),\n bgImageXL: require('~/static/images/videocontrol/advantages/advantages_1_L5.png'),\n bgImageL: require('~/static/images/videocontrol/advantages/advantages_1_M5.png'),\n bgImageM: require('~/static/images/videocontrol/advantages/advantages_1_5_1.png'),\n bgImageS: require('~/static/images/videocontrol/advantages/advantages_1_5_2.png'),\n bgImageXXLWebp: require('~/static/images/videocontrol/advantages/advantages_1_5.webp'),\n bgImageXLWebp: require('~/static/images/videocontrol/advantages/advantages_1_L5.webp'),\n bgImageLWebp: require('~/static/images/videocontrol/advantages/advantages_1_M5.webp'),\n bgImageMWebp: require('~/static/images/videocontrol/advantages/advantages_1_5_1.webp'),\n bgImageSWebp: require('~/static/images/videocontrol/advantages/advantages_1_5_2.webp'),\n },\n];\n\nexport const videocontrolOutsideData: IData[] = [\n {\n id: 1,\n question: `Всё${NBSP}ли в${NBSP}порядке на${NBSP}даче`,\n answer: `Будьте спокойны за${NBSP}дом и${NBSP}участок даже в${NBSP}отпуске`,\n bgImageXXL: require('~/static/images/videocontrol/advantages/advantages_2_1.png'),\n bgImageXL: require('~/static/images/videocontrol/advantages/advantages_2_L1.png'),\n bgImageL: require('~/static/images/videocontrol/advantages/advantages_2_M1.png'),\n bgImageM: require('~/static/images/videocontrol/advantages/advantages_2_1_1.png'),\n bgImageS: require('~/static/images/videocontrol/advantages/advantages_2_1_2.png'),\n bgImageXXLWebp: require('~/static/images/videocontrol/advantages/advantages_2_1.webp'),\n bgImageXLWebp: require('~/static/images/videocontrol/advantages/advantages_2_L1.webp'),\n bgImageLWebp: require('~/static/images/videocontrol/advantages/advantages_2_M1.webp'),\n bgImageMWebp: require('~/static/images/videocontrol/advantages/advantages_2_1_1.webp'),\n bgImageSWebp: require('~/static/images/videocontrol/advantages/advantages_2_1_2.webp'),\n isHigher: true,\n },\n {\n id: 2,\n question: `Как дела у${NBSP}детей на${NBSP}прогулке`,\n answer: `Проверяйте, всё${NBSP}ли хорошо у${NBSP}детей на${NBSP}игровой площадке`,\n bgImageXXL: require('~/static/images/videocontrol/advantages/advantages_2_2.png'),\n bgImageXL: require('~/static/images/videocontrol/advantages/advantages_2_L2.png'),\n bgImageL: require('~/static/images/videocontrol/advantages/advantages_2_M2.png'),\n bgImageM: require('~/static/images/videocontrol/advantages/advantages_2_2_1.png'),\n bgImageS: require('~/static/images/videocontrol/advantages/advantages_2_2_2.png'),\n bgImageXXLWebp: require('~/static/images/videocontrol/advantages/advantages_2_2.webp'),\n bgImageXLWebp: require('~/static/images/videocontrol/advantages/advantages_2_L2.webp'),\n bgImageLWebp: require('~/static/images/videocontrol/advantages/advantages_2_M2.webp'),\n bgImageMWebp: require('~/static/images/videocontrol/advantages/advantages_2_2_1.webp'),\n bgImageSWebp: require('~/static/images/videocontrol/advantages/advantages_2_2_2.webp'),\n isHigher: true,\n },\n {\n id: 3,\n question: `Кто заходит в${NBSP}подъезд`,\n answer: `Будьте уверены, что в${NBSP}подъезде нет посторонних`,\n bgImageXXL: require('~/static/images/videocontrol/advantages/advantages_2_3.png'),\n bgImageXL: require('~/static/images/videocontrol/advantages/advantages_2_L3.png'),\n bgImageL: require('~/static/images/videocontrol/advantages/advantages_2_M3.png'),\n bgImageM: require('~/static/images/videocontrol/advantages/advantages_2_3_1.png'),\n bgImageS: require('~/static/images/videocontrol/advantages/advantages_2_3_2.png'),\n bgImageXXLWebp: require('~/static/images/videocontrol/advantages/advantages_2_3.webp'),\n bgImageXLWebp: require('~/static/images/videocontrol/advantages/advantages_2_L3.webp'),\n bgImageLWebp: require('~/static/images/videocontrol/advantages/advantages_2_M3.webp'),\n bgImageMWebp: require('~/static/images/videocontrol/advantages/advantages_2_3_1.webp'),\n bgImageSWebp: require('~/static/images/videocontrol/advantages/advantages_2_3_2.webp'),\n isLaptopImage: true,\n },\n {\n id: 4,\n question: `Порядок на${NBSP}территории дома`,\n answer: `Проверьте онлайн, что происходит на${NBSP}участке загородного дома`,\n bgImageXXL: require('~/static/images/videocontrol/advantages/advantages_2_4.png'),\n bgImageXL: require('~/static/images/videocontrol/advantages/advantages_2_L4.png'),\n bgImageL: require('~/static/images/videocontrol/advantages/advantages_2_M4.png'),\n bgImageM: require('~/static/images/videocontrol/advantages/advantages_2_4_1.png'),\n bgImageS: require('~/static/images/videocontrol/advantages/advantages_2_4_2.png'),\n bgImageXXLWebp: require('~/static/images/videocontrol/advantages/advantages_2_4.webp'),\n bgImageXLWebp: require('~/static/images/videocontrol/advantages/advantages_2_L4.webp'),\n bgImageLWebp: require('~/static/images/videocontrol/advantages/advantages_2_M4.webp'),\n bgImageMWebp: require('~/static/images/videocontrol/advantages/advantages_2_4_1.webp'),\n bgImageSWebp: require('~/static/images/videocontrol/advantages/advantages_2_4_2.webp'),\n },\n {\n id: 5,\n question: `Свободно${NBSP}ли место на${NBSP}парковке`,\n answer: `Найдите себе удобное место на${NBSP}парковке`,\n bgImageXXL: require('~/static/images/videocontrol/advantages/advantages_2_5.png'),\n bgImageXL: require('~/static/images/videocontrol/advantages/advantages_2_L5.png'),\n bgImageL: require('~/static/images/videocontrol/advantages/advantages_2_M5.png'),\n bgImageM: require('~/static/images/videocontrol/advantages/advantages_2_5_1.png'),\n bgImageS: require('~/static/images/videocontrol/advantages/advantages_2_5_2.png'),\n bgImageXXLWebp: require('~/static/images/videocontrol/advantages/advantages_2_5.webp'),\n bgImageXLWebp: require('~/static/images/videocontrol/advantages/advantages_2_L5.webp'),\n bgImageLWebp: require('~/static/images/videocontrol/advantages/advantages_2_M5.webp'),\n bgImageMWebp: require('~/static/images/videocontrol/advantages/advantages_2_5_1.webp'),\n bgImageSWebp: require('~/static/images/videocontrol/advantages/advantages_2_5_2.webp'),\n isLaptopImage: true,\n },\n];\n\nexport const headerItems: IHeaderItems[] = [\n {\n icon: require('~/static/images/videocontrol/icons/movement-reaction.svg'),\n text: 'Реагирует на движения',\n },\n {\n icon: require('~/static/images/videocontrol/icons/observe.svg'),\n text: 'Сообщит, если кто-то проник внутрь',\n },\n {\n icon: require('~/static/images/videocontrol/icons/app.svg'),\n text: 'Управляется из приложения в режиме онлайн',\n },\n];\n\n\nexport const headerPictures: IHeaderPictures[] = [\n {\n png: require('~/static/images/videocontrol/header/camera_office.png'),\n webp: require('~/static/images/videocontrol/header/camera_office.webp'),\n text: 'Квартира',\n },\n {\n png: require('~/static/images/videocontrol/header/camera_country_house.png'),\n webp: require('~/static/images/videocontrol/header/camera_country_house.webp'),\n text: 'Загородный дом',\n },\n {\n png: require('~/static/images/videocontrol/header/camera_porch.png'),\n webp: require('~/static/images/videocontrol/header/camera_porch.webp'),\n text: 'Подъезд',\n },\n];\n\nexport const featuresData: IFeaturesData[] = [\n {\n id: 1,\n png: require('~/static/images/videocontrol/features/picture_1.png'),\n webp: require('~/static/images/videocontrol/features/picture_1.webp'),\n title: `Просматривайте записи в${NBSP}приложении`,\n text: `Проверяйте, как дела дома с${NBSP}экрана смартфона, получайте уведомления о${NBSP}событиях.`,\n },\n {\n id: 2,\n png: require('~/static/images/videocontrol/features/picture_2.png'),\n webp: require('~/static/images/videocontrol/features/picture_2.webp'),\n title: 'Рассмотрите все детали',\n text: `Вы${NBSP}сможете рассмотреть все детали и${NBSP}лица даже на${NBSP}ночных записях.`,\n },\n {\n id: 3,\n png: require('~/static/images/videocontrol/features/picture_3.png'),\n webp: require('~/static/images/videocontrol/features/picture_3.webp'),\n title: `Будьте уверены в${NBSP}безопасности данных`,\n text: `Все записи с${NBSP}камер хранятся в${NBSP}защищенном облачном хранилище, доступ к${NBSP}которому ` +\n `имеете только${NBSP}вы`,\n },\n {\n id: 4,\n png: require('~/static/images/videocontrol/features/picture_4.png'),\n webp: require('~/static/images/videocontrol/features/picture_4.webp'),\n title: `Будьте в${NBSP}курсе всех событий`,\n text: `Если в${NBSP}доме кто-то появится в${NBSP}ваше отсутствие, камера распознает движение ` +\n `и${NBSP}отправит уведомление в${NBSP}мобильном приложении Умный Дом.ру.`,\n },\n];\n\nexport enum ELocation {\n flat = 'flat',\n entrance = 'entrance',\n area = 'area',\n home = 'home',\n}\n\nexport enum ELocationOuter {\n entrance = 'entrance',\n area = 'area',\n}\n\nexport const locationForReducer: Record = {\n [ELocation.flat]: {\n type: ELocation.flat,\n id: 1,\n priceTotal: 1,\n currencyType: '₽',\n name: 'Внутри квартиры',\n service: 'Установка',\n priceTotalWithCount: 1,\n },\n [ELocation.entrance]: {\n type: ELocation.entrance,\n id: 2,\n priceTotal: 1000,\n currencyType: '₽',\n name: 'В подъезде',\n service: 'Установка',\n priceTotalWithCount: 1000,\n },\n [ELocation.area]: {\n type: ELocation.area,\n id: 3,\n priceTotal: 1500,\n currencyType: '₽',\n name: 'На участке',\n service: 'Установка',\n priceTotalWithCount: 1500,\n },\n [ELocation.home]: {\n type: ELocation.home,\n id: 4,\n priceTotal: 1,\n currencyType: '₽',\n name: 'В доме',\n service: 'Установка',\n priceTotalWithCount: 1,\n },\n};\n\nexport const dataLocationFlat: TTabSteps[] = [\n {\n imgPng: require('~/static/images/videocontrol/steps-install/flat.png'),\n imgWebP: require('~/static/images/videocontrol/steps-install/flat.webp'),\n title: 'Внутри квартиры',\n subText: `Имущество и${NBSP}жильцы всегда под присмотром`,\n id: ELocation.flat,\n },\n {\n imgPng: require('~/static/images/videocontrol/steps-install/entrance.png'),\n imgWebP: require('~/static/images/videocontrol/steps-install/entrance.webp'),\n title: `В${NBSP}подъезде`,\n subText: `Чистота и${NBSP}безопасность без посторонних людей`,\n id: ELocation.entrance,\n },\n];\n\nconst dataLocationHome = [\n {\n imgPng: require('~/static/images/videocontrol/steps-install/area.png'),\n imgWebP: require('~/static/images/videocontrol/steps-install/area.webp'),\n title: `На${NBSP}участке`,\n subText: `Присматривайте за${NBSP}дачей и${NBSP}любимым садом`,\n id: ELocation.area,\n },\n {\n imgPng: require('~/static/images/videocontrol/steps-install/home.png'),\n imgWebP: require('~/static/images/videocontrol/steps-install/home.webp'),\n title: `В${NBSP}доме`,\n subText: 'Имущество всегда под присмотром',\n id: ELocation.home,\n },\n];\n\nexport const dataCameraPlans: IDataPlans[] = [\n {\n id: 1,\n title: 'Видеоконтроль 3',\n subText: `Для тех, кто хочет видеть события за${NBSP}3${NBSP}дня`,\n panelText: `Хранение архива 3${NBSP}дня`,\n propsText: ['Качество изображения Full HD', 'Запись по движению'],\n price: 200,\n priceMonthWithCount: 200,\n oldPrice: null,\n },\n {\n id: 2,\n title: 'Видеоконтроль 7',\n subText: `Для тех, кто хочет видеть события за${NBSP}1${NBSP}неделю`,\n panelText: `Хранение архива 7${NBSP}дней`,\n propsText: ['Качество изображения Full HD', 'Запись по движению'],\n price: 350,\n priceMonthWithCount: 350,\n oldPrice: null,\n },\n {\n id: 3,\n title: 'Видеоконтроль 14',\n subText: `Для тех, кто хочет видеть события за${NBSP}2${NBSP}недели`,\n panelText: `Хранение архива 14${NBSP}дней`,\n propsText: ['Качество изображения Full HD', 'Запись по движению'],\n price: 450,\n priceMonthWithCount: 450,\n oldPrice: null,\n },\n {\n id: 4,\n title: 'Видеоконтроль 30',\n subText: `Для тех, кто хочет видеть события за${NBSP}1${NBSP}месяц`,\n panelText: `Хранение архива 30${NBSP}дней`,\n propsText: ['Качество изображения Full HD', 'Запись по движению'],\n price: 650,\n priceMonthWithCount: 650,\n oldPrice: null,\n },\n];\n\nexport const injectorData: TInjector = {\n name: 'POE Tenda PoE15F',\n service: 'Покупка',\n currencyType: '₽',\n id: 1,\n priceTotal: 800,\n priceTotalWithCount: 800,\n count: 0,\n};\n\nexport const dataTabsForLoc = { leftText: 'Квартира', rightText: 'Частный дом' };\n\nexport const dataLocation = { [dataTabsForLoc.leftText]: dataLocationFlat, [dataTabsForLoc.rightText]: dataLocationHome };\n\nexport const mockedVideoCamerasData = [\n {\n id: 107530,\n image: '',\n image_webp: '',\n category: {\n title: 'Внутренняя камера',\n name: 'Dahua IMOU Cue 2',\n },\n title: 'Dahua IMOU Cue 2',\n shortName: 'Dahua IMOU Cue 2',\n title_short: 'Dahua IMOU Cue 2',\n body: 'Подключение по Wi-Fi\\n Ночная съемка до 10 м\\n Запись в облако',\n bgImgColor: '#20252f',\n bgColorCard: '#20252f',\n priceOptions: [\n {\n label: 36,\n operType: 'leasing',\n price: 160,\n type: 5,\n sort: null,\n value: 36,\n },\n {\n label: 24,\n operType: 'leasing',\n price: 230,\n type: 5,\n sort: null,\n value: 24,\n },\n {\n label: 12,\n operType: 'leasing',\n price: 390,\n sort: null,\n type: 5,\n value: 12,\n },\n {\n label: 6,\n operType: 'leasing',\n price: 660,\n sort: null,\n type: 5,\n value: 6,\n },\n {\n label: 0,\n operType: 'possess',\n price: 3960,\n sort: null,\n type: 1,\n value: 0,\n },\n ],\n },\n];\n","import React, { FC, useMemo } from 'react';\n\nimport { FeedbackForm } from '~/src/features/videocontrol/pageBlocks/Cart/FeedbackForm';\nimport { RequestPoint } from '~/src/features/videocontrol/pageBlocks/Cart/RequestPoint';\nimport { TotalPoint } from '~/src/features/videocontrol/pageBlocks/Cart/TotalPoint';\nimport { IProps } from '~/src/features/videocontrol/pageBlocks/Cart/types';\nimport { useRequisitionContext } from '~/src/features/videocontrol/Provider/useRequisitionContext';\n\nimport * as ST from './styled';\n\nexport const Cart: FC = ({ isAuth, agreement }) => {\n const {\n installLocation,\n plan,\n cameras,\n planOption,\n injector,\n resetCamerasDispatch,\n removeCameraDispatch,\n setPlanDispatch,\n setOptionDispatch,\n } = useRequisitionContext();\n const camerasArray = useMemo(() => Object.values(cameras), [cameras]);\n\n return (\n \n {(installLocation || plan) &&\n \n Проверьте вашу заявку\n \n }\n \n {(installLocation || plan) &&\n \n \n \n \n Ваша заявка\n \n \n \n {camerasArray.map((camera) => (\n removeCameraDispatch(camera.id)}\n />\n ))}\n {!!injector?.count && }\n setPlanDispatch(null)}\n />\n setOptionDispatch(null)}\n />\n \n \n \n \n }\n \n \n \n );\n};\n","/**\n * Медиавыражения для определения соответствия документа определенному разрешению\n *\n * @name data.EMediaWidth\n * @type {enum}\n */\nexport enum EMediaWidth {\n desktop = '(min-width: 1600px)',\n sDesktop = '(max-width: 1599px) and (min-width: 1000px)',\n laptop = '(max-width: 999px) and (min-width: 768px)',\n mobile = '(max-width: 767px)',\n}\n\n/**\n * Ширина карточки\n *\n * @name data.widthCard\n */\nexport const widthCard = 345;\n\n/**\n * Максимальное кол-во слайдов для каждого разрешения\n *\n * @name data.dataMaxCountSlides\n * @type {Record}\n */\nexport const dataMaxCountSlides: Record = {\n desktop: 4,\n sDesktop: 3,\n laptop: 2,\n mobile: 1,\n};\n","export const TYPE_OF_BUY = {\n possess: {\n name: 'possess',\n value: 1,\n },\n leasing: {\n name: 'leasing',\n value: 5,\n },\n rub: '₽',\n rubMonth: '₽/мес',\n};\n","import React, { FC } from 'react';\n\nimport ProductCard from '~/src/components/ProductCard';\nimport { getPriceOptions } from '~/src/entities/equipment';\nimport { convertShopPrices } from '~/src/entities/price';\nimport type { IProps, PriceOptionProps } from '~/src/features/videocontrol/pageBlocks/StepsInstall/CameraCard/types';\nimport { getPayload } from '~/src/features/videocontrol/pageBlocks/StepsInstall/CameraCard/utils';\nimport { useRequisitionContext } from '~/src/features/videocontrol/Provider/useRequisitionContext';\n\nexport const CameraCard: FC = ({ product, activeTabLocation }) => {\n const { addCameraDispatch, cameras, removeCameraDispatch } = useRequisitionContext();\n const cameraType = Array.isArray(product?.props) && product.props[0].value === 'outside' ? 'Внешняя камера' : 'Внутренняя камера';\n\n const onClickHandler = (options: PriceOptionProps) => {\n const payload = getPayload(options, product, activeTabLocation);\n if (cameras[product.id]) {\n removeCameraDispatch(product.id);\n // Что бы при удалении карточки аналитика второй раз не срабатывала\n return true;\n } else {\n addCameraDispatch(payload);\n }\n };\n\n return (\n \n );\n};\n","import { IShopItem } from '~/src/api/content/shop/getShopItems';\nimport type { ELocation } from '~/src/features/videocontrol/data';\nimport { TYPE_OF_BUY } from '~/src/features/videocontrol/pageBlocks/StepsInstall/CameraCard/constants';\nimport type { PriceOptionProps } from '~/src/features/videocontrol/pageBlocks/StepsInstall/CameraCard/types';\nimport type { TCamera } from '~/src/features/videocontrol/Provider/types';\n\nexport const getPayload = (options: PriceOptionProps, product: IShopItem, activeTabLocation?: ELocation): TCamera => {\n const { name, selectedOption: { label, operType, price } } = options;\n return {\n name,\n id: product.id,\n service: label,\n count: 1,\n operType: operType === TYPE_OF_BUY.leasing.name ? TYPE_OF_BUY.leasing.value : TYPE_OF_BUY.possess.value,\n priceTotal: operType === TYPE_OF_BUY.possess.name ? price : null,\n priceMonth: operType === TYPE_OF_BUY.leasing.name ? price : null,\n currencyType: operType === TYPE_OF_BUY.possess.name ? TYPE_OF_BUY.rub : TYPE_OF_BUY.rubMonth,\n location: activeTabLocation as ELocation,\n priceTotalWithCount: operType === TYPE_OF_BUY.possess.name ? price : 0,\n priceMonthWithCount: operType === TYPE_OF_BUY.leasing.name ? price : 0,\n };\n};\n","import { LazyLoadImage } from 'react-lazy-load-image-component';\nimport styled, { css } from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nexport const Container = styled.div`\n gap: 32px;\n cursor: pointer;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n flex-direction: column;\n }\n`;\n\nexport const LocationTab = styled.div<{isActive: boolean }>`\n width: 660px;\n height: 180px;\n padding: 17px 28px 18px 22px;\n align-items: center;\n border-radius: ${BorderRadius.OuterBlockRadius};\n border-style: solid;\n border-width: 2px;\n background-color: rgba(255, 255, 255, .05);\n gap: 32px;\n\n @media (max-width: ${wideBreakpoints.sDesktop}) {\n width: 580px;\n }\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n width: 292px;\n height: 321px;\n flex-direction: column;\n padding: 17px;\n }\n\n @media (max-width: ${wideBreakpoints.sMobile}) {\n height: 269px;\n gap: 16px;\n padding: 16px 16px 12px 16px;\n }\n\n border-color: ${(p) => !p.isActive ? 'transparent' : `${COLORS.white}`};\n`;\n\nexport const Image = styled(LazyLoadImage)<{isActive: boolean}>`\n border-radius: ${BorderRadius.InnerBlockRadius};\n\n ${(p) => !p.isActive && css`\n filter: grayscale(100%);\n `};\n`;\n\nexport const TextBlock = styled.div<{isActive: boolean }>`\n max-width: 320px;\n height: fit-content;\n color: ${COLORS.white};\n gap: 6px;\n \n @media (max-width: ${wideBreakpoints.sDesktop}) {\n max-width: 240px;\n }\n \n @media (max-width: ${wideBreakpoints.laptop}) {\n max-width: max-content;\n }\n\n ${(p) => !p.isActive\n ? css`color: ${COLORS.GRAY_S};`\n : css`color: ${COLORS.white};`\n };\n`;\n\nexport const Subtext = styled.span`\n ${FONTS.M};\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n ${FONTS.S};\n }\n \n @media (max-width: ${wideBreakpoints.sMobile}) {\n ${FONTS.XS};\n }\n`;\n\nexport const Title = styled.span`\n ${FONTS.H3};\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n ${FONTS.H4};\n }\n`;\n","import React, { FC } from 'react';\n\nimport WebpImage from '@r1-frontend/ui-react/components/WebpImage';\n\nimport type { IProps } from '~/src/features/videocontrol/pageBlocks/StepsInstall/LocationTabsBlock/types';\n\nimport * as ST from './styled';\n\nconst SIZE_IMG = {\n width: 254,\n height: 145,\n};\n\nexport const LocationTabsBlock: FC = ({ data, setActiveTab, activeTab }) => {\n\n return (\n \n {data.map((elem, key) => (\n setActiveTab(data[key].id)} isActive={activeTab === elem.id}>\n \n \n \n \n \n {elem.title}\n \n \n {elem.subText}\n \n \n \n ))}\n \n );\n};\n","import styled, { css } from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport WideContainer, { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport type { ICustomDotsStyles } from '@r1-frontend/ui-react/components/NukaCarousel/DefaultDots/styled';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport { useProgressiveImage } from '~/src/helpers/hooks/useProgressiveImage';\n\ntype TImgBlock = {\n webpImg?: string,\n pngImg?: string,\n}\n\nconst backgroundColorCart = '#222939';\n\nexport const SWideContainer = styled(WideContainer)`\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n padding: 0 24px;\n }\n`;\n\nexport const CartWrapper = styled.div`\n width: 100%;\n background-color: ${backgroundColorCart};\n`;\n\nexport const SWideContainerHeader = styled.div`\n overflow-x: hidden;\n ${(props) => (props.pngImg || props.webpImg) && css`\n background-image: url('${useProgressiveImage(props.webpImg, { hasTimeout: true, timeoutDelay: 1 }, props.pngImg)}');\n background-repeat: no-repeat;\n height: 100%;\n width: 100%;\n color: ${COLORS.white};\n background-position: right 29% bottom 71%;\n background-size: 50%;\n\n @media (max-width: ${wideBreakpoints.sDesktop}) {\n background-position: right 20% bottom 68%;\n }\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n background-position: right 5% bottom 73%;\n };\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n background-position: right 2% bottom 84%;\n };\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n background-position: right 2% bottom 82%;\n background-size: 100%;\n };\n `};\n`;\n\nexport const BlockWrapper = styled.div`\n width: 100%;\n flex-direction: column;\n margin: 64px 0;\n`;\n\nexport const WrapperMain = styled.div`\n background: #141924;\n width: 100%;\n justify-content: center;\n`;\n\nexport const WrapperMainGray = styled.div`\n background: #222939;\n width: 100%;\n justify-content: center;\n`;\n\nexport const BlockTitle = styled.h2`\n ${FONTS.H2};\n margin-bottom: 32px;\n color: ${COLORS.white};\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n ${FONTS.H3};\n margin-bottom: 24px;\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n margin-bottom: 32px;\n }\n\n @media (max-width: ${wideBreakpoints.sMobile}) {\n max-width: 95%;\n }\n`;\n\nexport const customDotsStyles: ICustomDotsStyles = {\n dot: {\n background: COLORS.GRAY_S,\n opacity: 1,\n },\n activeDot: {\n background: COLORS.GRAY_XL,\n },\n};\n","import styled from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\n\nexport const NukaContainer = styled.div<{ count: number, widthCard: number }>`\n width: calc(${p => p.count * p.widthCard}px);\n @media ((max-width: ${wideBreakpoints.laptop}) and (min-width: ${wideBreakpoints.tablet})) {\n margin-left: -15px;\n }\n`;\n","import React, { FC, useEffect, useMemo, useState } from 'react';\n\nimport NukaCarousel from '@r1-frontend/ui-react/components/NukaCarousel';\nimport { isClientSide } from '@r1-frontend/shared/helpers/ssr';\nimport { useMatchMedia } from '@r1-frontend/shared/hooks/useMatchMedia';\n\nimport type { ELocation } from '~/src/features/videocontrol/data';\nimport { dataMaxCountSlides, EMediaWidth } from '~/src/features/videocontrol/pageBlocks/StepsInstall/constants';\n\nimport { customDotsStyles } from '~/src/features/videocontrol/styled';\nimport * as ST from './styled';\n\ninterface TProps {\n dataLength: number,\n Card: FC<{ product: T, activeTabLocation?: ELocation, domain?: string }>,\n data: T[],\n widthCard: number,\n activeTabLocation?: ELocation,\n domain?: string,\n}\n\nexport const NukaWrapper = ({ dataLength, data, Card, widthCard, activeTabLocation, domain }: TProps): JSX.Element => {\n const isDesktop = useMatchMedia(EMediaWidth.desktop);\n const isSDesktop = useMatchMedia(EMediaWidth.sDesktop);\n const isLaptop = useMatchMedia(EMediaWidth.laptop);\n const isMobile = useMatchMedia(EMediaWidth.mobile);\n const [onClientSide, setOnClientSide] = useState(isClientSide());\n\n useEffect(() => {\n setOnClientSide(isClientSide);\n }, []);\n\n const countSlides = useMemo((): number => {\n switch (true) {\n case isDesktop:\n return dataMaxCountSlides.desktop;\n case isSDesktop:\n return dataMaxCountSlides.sDesktop;\n case isLaptop:\n return dataMaxCountSlides.laptop;\n case isMobile:\n return dataMaxCountSlides.mobile;\n default:\n return dataMaxCountSlides.mobile;\n }\n }, [isDesktop, isSDesktop, isLaptop, isMobile]);\n\n const cardsComponent = (data: any, dataTestType: string): JSX.Element => {\n return onClientSide && data.length && data.map((elem: any, key: number) => (\n \n ));\n };\n\n return (\n \n {dataLength > countSlides\n ? <>\n \n {cardsComponent(data, 'card-1')}\n \n \n : cardsComponent(data, 'card-3')\n }\n \n );\n};\n","import { injectorData } from '~/src/features/videocontrol/data';\nimport type { TInjector } from '~/src/features/videocontrol/Provider/types';\n\nexport const priceForMsk = 800;\nexport const priceForOthers = 800;\n\n/**\n * Проверка скидки в текущем городе\n *\n * @function\n * @name checkSaleInCity\n * @param {string} domain - домен\n * @returns {boolean}\n */\nexport const checkSaleInCity = (domain: string): boolean => {\n const citiesWithoutSale = ['nsk'];\n return !citiesWithoutSale.includes(domain);\n};\n\n/**\n * Получение стоимости инжектора\n *\n * @function\n * @name getPriceForInjector\n * @param {string} domain - домен\n * @returns {number}\n */\nexport const getPriceForInjector = (domain: string): number => {\n const citiesWithoutSale = ['msk'];\n return citiesWithoutSale.includes(domain) ? priceForMsk : priceForOthers;\n};\n\n/**\n * Получение данных инжектора\n *\n * @function\n * @name getInjectorData\n * @param {string} domain - домен\n * @returns {TInjector}\n */\nexport const getInjectorData = (domain: string): TInjector => {\n return {\n ...injectorData,\n priceTotalWithCount: getPriceForInjector(domain),\n priceTotal: getPriceForInjector(domain),\n };\n};\n","import styled from 'styled-components';\n\nimport { BaseButton } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nexport const Container = styled.div`\n position: relative;\n height: 364px;\n max-width: 320px;\n top: -10px;\n padding: 30px 10px 12px 10px;\n margin: 10px;\n justify-content: flex-start;\n flex-direction: column;\n background-color: #20252f;\n border-radius: 32px;\n`;\n\nexport const TitleWrap = styled.div`\n max-width: 274px;\n height: fit-content;\n gap: 4px;\n margin-bottom: 16px;\n margin-left: 14px;\n margin-right: 14px;\n`;\n\nexport const Title = styled.span`\n color: ${COLORS.TextWhite};\n ${FONTS.H3};\n`;\n\nexport const SubText = styled.span`\n color: ${COLORS.TextWhite};\n height: 32px;\n ${FONTS.XXS};\n width: 100%;\n`;\n\nexport const PlankWrap = styled.div`\n gap: 8px;\n`;\n\nexport const UnorderedList = styled.ul`\n display: flex;\n flex-direction: column;\n gap: 8px;\n list-style: inside;\n margin-left: 14px;\n margin-right: 14px;\n`;\n\nexport const Hr = styled.hr`\n height: 1px;\n width: 100%;\n border: none;\n margin: 20px 0px 0px 0px;\n background-color: ${COLORS.TextSecondary};\n color: ${COLORS.TextSecondary};\n`;\n\nexport const List = styled.li`\n ${FONTS.XXS};\n color: ${COLORS.TextWhite};\n \n &::marker {\n color: ${COLORS.Logo};\n }\n`;\n\nexport const Plank = styled.div`\n width: 100%;\n height: 40px;\n background-color: ${COLORS.TextSecondary};\n border-radius: 16px;\n padding: 8px 16px;\n align-items: center;\n color: ${COLORS.TextWhite};\n ${FONTS.H5};\n`;\n\nexport const PriceWrap = styled.div`\n gap: 8px;\n`;\n\nexport const Price = styled.span`\n color: ${COLORS.TextWhite};\n ${FONTS.H3};\n`;\n\nexport const OldPrice = styled.s`\n color: ${COLORS.GRAY_DARK};\n ${FONTS.XS};\n`;\n\nexport const BottomWrap = styled.div`\n position: relative;\n height: 120px;\n gap: 8px;\n display: flex;\n flex-direction: column;\n margin-bottom: 0%;\n margin-top: auto;\n margin-left: 24px;\n margin-right: 24px;\n`;\n\nexport const ButtonWrap = styled.div`\n margin-bottom: 0px;\n margin-top: auto;\n`;\n\nexport const Button = styled(BaseButton)<{ isActive: boolean }>`\n width: 100%;\n height: fit-content;\n color: ${COLORS.TextPrimary};\n`;\n","import React, { FC, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { dataLayerPush } from '@r1-frontend/analytics/dataLayerPush';\n\nimport { btnTypes } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport { Label } from '@r1-frontend/ui-react/components/label';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { CATEGORIES, EVENTS } from '@r1-frontend/shared/constants/analytics';\n\nimport { dataCameraPlans } from '~/src/features/videocontrol/data';\nimport { checkSaleInCity } from '~/src/features/videocontrol/pageBlocks/StepsInstall/utils';\nimport type { TPlan } from '~/src/features/videocontrol/Provider/types';\nimport { useRequisitionContext } from '~/src/features/videocontrol/Provider/useRequisitionContext';\nimport type { IDataPlans } from '~/src/features/videocontrol/types';\nimport { selectCurrentCityDomain } from '~/src/store/selectors/city';\n\nimport * as ST from './styled';\n\nexport const PlanCard: FC<{ product: IDataPlans }> = ({ product })=> {\n const currentCity = useSelector(selectCurrentCityDomain);\n const formattedProduct = useMemo((): IDataPlans => {\n if (!checkSaleInCity(currentCity)) {\n return { ...product, oldPrice: null, labelText: undefined, price: product.oldPrice || product.price };\n }\n return product;\n }, [currentCity, product]);\n\n const { plan, setPlanDispatch, setOptionDispatch } = useRequisitionContext();\n\n const onClickHandler = () => {\n const [cameraPlanFifty] = dataCameraPlans;\n if (plan?.id === formattedProduct.id) {\n setPlanDispatch(null);\n setOptionDispatch(null);\n return;\n }\n\n if (plan?.id === cameraPlanFifty.id) {\n setOptionDispatch(null);\n }\n\n const payload: TPlan = {\n name: formattedProduct.title,\n id: formattedProduct.id,\n currencyType: '₽/мес',\n priceMonth: formattedProduct.price,\n priceMonthWithCount: formattedProduct.priceMonthWithCount,\n oldPrice: formattedProduct.oldPrice,\n subService: formattedProduct.panelText,\n service: 'Ежемесячный платёж',\n };\n dataLayerPush({\n event: EVENTS.UAevent,\n category: CATEGORIES.landing,\n action: 'chose tariff',\n label: formattedProduct.title,\n });\n setPlanDispatch(payload);\n };\n\n return (\n \n \n {formattedProduct.title}\n {formattedProduct.subText}\n \n \n \n {formattedProduct.panelText}\n \n \n {formattedProduct.propsText?.map((elem, key) => (\n {elem}\n ))}\n \n \n \n \n \n \n {formattedProduct.price} ₽/мес\n \n {formattedProduct.oldPrice &&\n \n {formattedProduct.oldPrice} ₽/мес\n \n }\n \n {formattedProduct.labelText && formattedProduct.labelColor &&\n \n {formattedProduct.labelText}\n \n }\n \n \n \n \n \n );\n};\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nexport const StepText = styled.h3`\n color: ${COLORS.white};\n ${FONTS.H3};\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n ${FONTS.H4};\n }\n`;\n\nexport const Step = styled.span`\n color: ${COLORS.yellow};\n`;\n\nexport const SubText = styled.span`\n ${FONTS.S};\n color: ${COLORS.GRAY_S};\n\n @media (max-width: ${wideBreakpoints.sMobile}) {\n ${FONTS.XS};\n }\n`;\n\nexport const TitleWrap = styled.header`\n display: flex;\n flex-direction: column;\n gap: 5px;\n white-space: nowrap;\n \n @media (max-width: ${wideBreakpoints.mobile}) {\n white-space: normal;\n gap: 8px;\n }\n`;\n","import React, { FC } from 'react';\n\nimport * as ST from './styled';\n\ninterface TProps {\n children?: JSX.Element | JSX.Element[],\n stepText: string,\n step?: string,\n subText?: string,\n}\n\nexport const StepTitle: FC = ({ children, stepText, step, subText })=> {\n\n return (\n \n {children}\n \n {step && {step} }\n {stepText}\n \n {subText &&\n \n {subText}\n \n }\n \n );\n};\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nexport const Container = styled.article`\n display: flex;\n flex-direction: column;\n padding-top: 64px;\n padding-bottom: 68px;\n gap: 64px;\n`;\n\nexport const StepContainer = styled.section`\n display: flex;\n flex-direction: column;\n gap: 28px;\n`;\n\nexport const Title = styled.div`\n color: ${COLORS.white};\n ${FONTS.H2};\n \n @media (max-width: ${wideBreakpoints.tablet}) {\n ${FONTS.H3};\n }\n\n @media (max-width: ${wideBreakpoints.sMobile}) {\n margin-bottom: 16px;\n }\n`;\n","import { forwardRef, ReactNode, useEffect, useMemo, useState } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { dataLayerPush } from '@r1-frontend/analytics/dataLayerPush';\n\nimport Toggle from '@r1-frontend/ui-react/components/controls/Toggle';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { CATEGORIES, EVENTS } from '@r1-frontend/shared/constants/analytics';\n\nimport { getVideocontrolItems, IShopItem } from '~/src/api/content/shop/getShopItems';\nimport {\n dataCameraPlans,\n dataLocation,\n dataLocationFlat,\n dataTabsForLoc,\n ELocation,\n} from '~/src/features/videocontrol/data';\nimport { CameraCard } from '~/src/features/videocontrol/pageBlocks/StepsInstall/CameraCard';\nimport { widthCard } from '~/src/features/videocontrol/pageBlocks/StepsInstall/constants';\nimport { LocationTabsBlock } from '~/src/features/videocontrol/pageBlocks/StepsInstall/LocationTabsBlock';\nimport { NukaWrapper } from '~/src/features/videocontrol/pageBlocks/StepsInstall/NukaWrapper';\nimport { PlanCard } from '~/src/features/videocontrol/pageBlocks/StepsInstall/PlanCard';\nimport { StepTitle } from '~/src/features/videocontrol/pageBlocks/StepsInstall/StepTitle';\nimport { useRequisitionContext } from '~/src/features/videocontrol/Provider/useRequisitionContext';\nimport { TState } from '~/src/store';\nimport selectProviderId from '~/src/store/selectors/selectProviderId';\n\nimport * as ST from './styled';\n\ninterface IProps {\n children?: ReactNode,\n domain: string,\n}\n\ntype TVideoCamerasDataAccumulator = {\n flatAndHome: IShopItem[],\n entrance: IShopItem[],\n};\n\nconst StepsInstall = forwardRef((props, ref): JSX.Element => {\n const defaultTab = 0;\n const [activeTabToggleLoc, setActiveTabToggleLoc] = useState(dataTabsForLoc.leftText);\n const [activeTabLocation, setActiveTabLocation] = useState(dataLocationFlat[defaultTab].id);\n const [currentLocationData, setCurrentLocationData] = useState(dataLocationFlat);\n const [videoCamerasData, setVideoCamerasData] = useState(\n { flatAndHome: [], entrance: [] },\n );\n\n const { resetCamerasDispatch } = useRequisitionContext();\n\n const { accessToken, providerId } = useSelector((state: TState) => ({\n accessToken: state.auth.accessToken,\n providerId: selectProviderId(state),\n }));\n\n const videoCamerasDataAll = useMemo(() => ({\n [ELocation.flat]: videoCamerasData.flatAndHome,\n [ELocation.entrance]: videoCamerasData.entrance,\n [ELocation.area]: videoCamerasData.entrance,\n [ELocation.home]: videoCamerasData.flatAndHome,\n }), [videoCamerasData]);\n\n const currentCamerasData = videoCamerasDataAll[ELocation[activeTabLocation]];\n\n useEffect(() => {\n (async() => {\n const items = await getVideocontrolItems(providerId, accessToken);\n if (items.length) {\n const videoCamerasDataUpdated = items.reduce(\n (acc: TVideoCamerasDataAccumulator, item: IShopItem) => {\n const isInside = item?.props?.[0]?.value === 'inside';\n if (isInside) {\n acc.flatAndHome.push(item);\n } else {\n acc.entrance.push(item);\n }\n return acc;\n }, { flatAndHome: [], entrance: [] },\n );\n\n setVideoCamerasData(videoCamerasDataUpdated);\n }\n })();\n }, [accessToken, providerId]);\n\n const setActiveTabToggleWrap = (activeTab: string) => {\n setCurrentLocationData(dataLocation[activeTab]);\n setActiveTabToggleLoc(activeTab);\n setActiveTabLocation(dataLocation[activeTab][defaultTab].id);\n resetCamerasDispatch();\n dataLayerPush({\n event: EVENTS.UAevent,\n category: CATEGORIES.landing,\n action: 'click_on_tab',\n label: dataTabsForLoc.leftText === activeTab ? 'apartment' : 'village',\n });\n dataLayerPush({\n event: EVENTS.UAevent,\n category: CATEGORIES.landing,\n action: 'chose installation',\n label: dataLocation[activeTab][defaultTab].id,\n });\n };\n\n const setActiveTabWrap = (id: ELocation) => {\n setActiveTabLocation(id);\n resetCamerasDispatch();\n dataLayerPush({\n event: EVENTS.UAevent,\n category: CATEGORIES.landing,\n action: 'chose installation',\n label: id,\n });\n };\n\n return (\n \n \n \n \n Как установить видеокамеру в квартире или частном доме\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n});\n\nStepsInstall.displayName = 'StepsInstall';\nexport default StepsInstall;\n","export enum ACTIONS_TYPES {\n ADD_CAMERA_ITEM = 'ADD_CAMERA_ITEM',\n REMOVE_CAMERA_ITEM = 'REMOVE_CAMERA_ITEM',\n RESET_CAMERAS_ITEMS = 'RESET_CAMERAS_ITEMS',\n INCREMENT_CAMERA_COUNT = 'INCREMENT_CAMERA_COUNT',\n DECREMENT_CAMERA_COUNT = 'DECREMENT_CAMERA_COUNT',\n SET_LOCATION_INSTALL = 'SET_LOCATION_INSTALL',\n SET_PLAN = 'SET_PLAN',\n SET_OPTION = 'SET_OPTION',\n INCREMENT_CAMERA_PRICE_WITH_COUNT = 'INCREMENT_CAMERA_PRICE_WITH_COUNT',\n DECREMENT_CAMERA_PRICE_WITH_COUNT = 'DECREMENT_CAMERA_PRICE_WITH_COUNT',\n SET_RESET_ALL = 'SET_RESET_ALL',\n INCREMENT_TOTAL_COUNT_CAMERAS = 'INCREMENT_TOTAL_COUNT_CAMERAS',\n DECREMENT_TOTAL_COUNT_CAMERAS = 'DECREMENT_TOTAL_COUNT_CAMERAS',\n RESET_TOTAL_COUNT_CAMERAS = 'RESET_TOTAL_COUNT_CAMERAS',\n INCREMENT_INJECTOR = 'INCREMENT_INJECTOR',\n DECREMENT_INJECTOR = 'DECREMENT_INJECTOR',\n RESET_INJECTOR = 'RESET_INJECTOR',\n INIT_INJECTOR = 'INIT_INJECTOR',\n}\n","import { ACTIONS_TYPES } from '~/src/features/videocontrol/Provider/actionTypes';\nimport type {\n IAction,\n IActionEmptyPayload,\n TCamera,\n TCount,\n TOption,\n TPlace,\n TPlan,\n TPrice,\n} from '~/src/features/videocontrol/Provider/types';\n\nexport const addCamera = (item: TCamera): IAction => ({\n type: ACTIONS_TYPES.ADD_CAMERA_ITEM,\n payload: item,\n});\n\nexport const removeCamera = (id: number): IAction => ({\n type: ACTIONS_TYPES.REMOVE_CAMERA_ITEM,\n payload: id,\n});\n\nexport const resetCameras = (): IAction> => ({\n type: ACTIONS_TYPES.RESET_CAMERAS_ITEMS,\n payload: {},\n});\n\nexport const incrementCameraCount = (payload: TCount): IAction => ({\n type: ACTIONS_TYPES.INCREMENT_CAMERA_COUNT,\n payload,\n});\n\nexport const decrementCameraCount = (payload: TCount): IAction => ({\n type: ACTIONS_TYPES.DECREMENT_CAMERA_COUNT,\n payload,\n});\n\nexport const setLocationInstall = (payload: TPlace | null): IAction => ({\n type: ACTIONS_TYPES.SET_LOCATION_INSTALL,\n payload,\n});\n\nexport const setPlan = (payload: TPlan | null): IAction => ({\n type: ACTIONS_TYPES.SET_PLAN,\n payload,\n});\n\nexport const setOption = (payload: TOption | null): IAction => ({\n type: ACTIONS_TYPES.SET_OPTION,\n payload,\n});\n\nexport const incrementCameraPriceWithCount = (payload: TPrice):\n IAction => ({\n type: ACTIONS_TYPES.INCREMENT_CAMERA_PRICE_WITH_COUNT,\n payload,\n});\n\nexport const decrementCameraPriceWithCount = (payload: TPrice):\n IAction => ({\n type: ACTIONS_TYPES.DECREMENT_CAMERA_PRICE_WITH_COUNT,\n payload,\n});\n\nexport const setResetAll = (): IActionEmptyPayload => ({\n type: ACTIONS_TYPES.SET_RESET_ALL,\n});\n\nexport const incrementTotalCountCameras = (payload: number): IAction => ({\n type: ACTIONS_TYPES.INCREMENT_TOTAL_COUNT_CAMERAS,\n payload,\n});\n\nexport const decrementTotalCountCameras = (payload: number): IAction => ({\n type: ACTIONS_TYPES.DECREMENT_TOTAL_COUNT_CAMERAS,\n payload,\n});\n\nexport const resetTotalCountCameras = (): IActionEmptyPayload => ({\n type: ACTIONS_TYPES.RESET_TOTAL_COUNT_CAMERAS,\n});\n\nexport const incrementInjector = (payload: number): IAction => ({\n type: ACTIONS_TYPES.INCREMENT_INJECTOR,\n payload,\n});\n\nexport const decrementInjector = (payload: number): IAction => ({\n type: ACTIONS_TYPES.DECREMENT_INJECTOR,\n payload,\n});\n\nexport const resetInjector = (payload: string): IAction => ({\n type: ACTIONS_TYPES.RESET_INJECTOR,\n payload,\n});\n\nexport const initInjector = (payload: string): IAction => ({\n type: ACTIONS_TYPES.INIT_INJECTOR,\n payload,\n});\n","import type { Dispatch } from 'react';\n\nimport { ELocationOuter, locationForReducer } from '~/src/features/videocontrol/data';\nimport {\n addCamera,\n decrementCameraCount,\n decrementCameraPriceWithCount,\n decrementInjector,\n decrementTotalCountCameras,\n incrementCameraCount,\n incrementCameraPriceWithCount,\n incrementInjector,\n incrementTotalCountCameras,\n removeCamera,\n resetCameras,\n resetInjector,\n resetTotalCountCameras,\n setLocationInstall,\n setOption,\n setPlan,\n} from '~/src/features/videocontrol/Provider/actionCreators';\nimport type { IState, TActions, TCamera, TOption, TPlan } from '~/src/features/videocontrol/Provider/types';\n\nconst LAST_COUNT = 1;\n\nexport const addCameraDispatchWrap = (camera: TCamera, state: IState, dispatch: Dispatch): void => {\n dispatch(addCamera(camera));\n dispatch(incrementTotalCountCameras(1));\n if (state.plan) {\n dispatch(setPlan({\n ...state.plan,\n priceMonthWithCount: state.plan.priceMonth * (state.totalCountCameras + 1),\n }));\n }\n if (camera.location in ELocationOuter) {\n dispatch(incrementInjector(1));\n }\n if (state.planOption) {\n dispatch(setOption({\n ...state.planOption,\n priceMonthWithCount: state.planOption.priceMonth * (state.totalCountCameras + 1),\n }));\n }\n if (state.installLocation) {\n dispatch(setLocationInstall({\n ...state.installLocation,\n priceTotalWithCount: state.installLocation.priceTotal * (state.totalCountCameras + 1),\n }));\n } else {\n dispatch(setLocationInstall(locationForReducer[camera.location]));\n }\n};\n\nexport const removeCameraDispatchWrap = (currentCity: string, id: number, state: IState, dispatch: Dispatch): void => {\n dispatch(removeCamera(id));\n dispatch(decrementTotalCountCameras(state.cameras[id].count));\n if (state.cameras[id].location in ELocationOuter) {\n dispatch(decrementInjector(state.cameras[id].count));\n }\n if (Object.keys(state.cameras).length === LAST_COUNT) {\n dispatch(setLocationInstall(null));\n dispatch(resetInjector(currentCity));\n } else if (state.installLocation) {\n dispatch(setLocationInstall({\n ...state.installLocation,\n priceTotalWithCount: state.installLocation.priceTotal * (state.totalCountCameras - state.cameras[id].count),\n }));\n }\n if (state.plan) {\n dispatch(setPlan({\n ...state.plan,\n priceMonthWithCount: state.plan.priceMonth * (state.totalCountCameras - state.cameras[id].count || 1),\n }));\n }\n if (state.planOption) {\n dispatch(setOption({\n ...state.planOption,\n priceMonthWithCount: state.planOption.priceMonth * (state.totalCountCameras - state.cameras[id].count || 1),\n }));\n }\n};\n\nexport const resetCamerasDispatchWrap = (currentCity: string, dispatch: Dispatch): void => {\n dispatch(resetCameras());\n dispatch(resetTotalCountCameras());\n dispatch(setLocationInstall(null));\n dispatch(resetInjector(currentCity));\n};\n\nexport const incrementCameraCountDispatchWrap = (id: number, state: IState, dispatch: Dispatch): void => {\n dispatch(incrementCameraCount({ id, currentCount: { ...state.cameras[id] }.count || 0 }));\n dispatch(incrementTotalCountCameras(1));\n if (state.cameras[id].location in ELocationOuter) {\n dispatch(incrementInjector(1));\n }\n if (state.cameras[id].count) {\n dispatch(incrementCameraPriceWithCount({\n id,\n priceTotal: Number({ ...state.cameras[id] }.priceTotal),\n priceMonth: Number({ ...state.cameras[id] }.priceMonth),\n }));\n }\n if (state.installLocation) {\n dispatch(setLocationInstall({\n ...state.installLocation,\n priceTotalWithCount: state.installLocation.priceTotal * (state.totalCountCameras + 1),\n }));\n }\n if (state.plan) {\n dispatch(setPlan({\n ...state.plan,\n priceMonthWithCount: state.plan.priceMonth * (state.totalCountCameras + 1),\n }));\n }\n if (state.planOption) {\n dispatch(setOption({\n ...state.planOption,\n priceMonthWithCount: state.planOption.priceMonth * (state.totalCountCameras + 1),\n }));\n }\n};\n\nexport const decrementCameraCountDispatchWrap = (id: number, state: IState, dispatch: Dispatch): void => {\n dispatch(decrementTotalCountCameras(1));\n if (state.cameras[id].location in ELocationOuter) {\n dispatch(decrementInjector(1));\n }\n if (state.plan) {\n dispatch(setPlan({\n ...state.plan,\n priceMonthWithCount: state.plan.priceMonth * (state.totalCountCameras - 1 || 1),\n }));\n }\n if (state.planOption) {\n dispatch(setOption({\n ...state.planOption,\n priceMonthWithCount: state.planOption.priceMonth * (state.totalCountCameras - 1 || 1),\n }));\n }\n if (state.cameras[id].count === LAST_COUNT) {\n dispatch(removeCamera(id));\n if (Object.keys(state.cameras).length === LAST_COUNT) {\n dispatch(setLocationInstall(null));\n }\n return;\n } else if (state.installLocation) {\n dispatch(setLocationInstall({\n ...state.installLocation,\n priceTotalWithCount: state.installLocation.priceTotal * (state.totalCountCameras - 1),\n }));\n }\n dispatch(decrementCameraPriceWithCount({\n id,\n priceTotal: Number({ ...state.cameras[id] }.priceTotal),\n priceMonth: Number({ ...state.cameras[id] }.priceMonth),\n }));\n dispatch(decrementCameraCount({ id, currentCount: { ...state.cameras[id] }.count }));\n};\n\nexport const setPlanDispatchWrap = (plan: TPlan | null, state: IState, dispatch: Dispatch): void => {\n if (plan) {\n dispatch(setPlan({\n ...plan,\n priceMonthWithCount: plan.priceMonth * (state.totalCountCameras || 1),\n }));\n } else {\n dispatch(setPlan(plan));\n }\n dispatch(setOption(null));\n};\n\nexport const setOptionDispatchWrap = (option: TOption | null, state: IState, dispatch: Dispatch): void => {\n if (option) {\n dispatch(setOption({\n ...option,\n priceMonthWithCount: option.priceMonth * (state.totalCountCameras || 1),\n }));\n } else {\n dispatch(setOption(option));\n }\n};\n","import { getInjectorData } from '~/src/features/videocontrol/pageBlocks/StepsInstall/utils';\nimport { ACTIONS_TYPES } from '~/src/features/videocontrol/Provider/actionTypes';\nimport { initialState } from '~/src/features/videocontrol/Provider/index';\nimport type { IState, TActions } from '~/src/features/videocontrol/Provider/types';\n\nexport function reducer(state: IState, action: TActions): IState {\n switch (action.type) {\n case ACTIONS_TYPES.ADD_CAMERA_ITEM:\n return {\n ...state,\n cameras: {\n ...state.cameras,\n [action.payload.id]: {\n ...action.payload,\n },\n },\n };\n case ACTIONS_TYPES.REMOVE_CAMERA_ITEM:\n return {\n ...state,\n cameras: {\n ...Object.fromEntries(\n Object.entries({ ...state.cameras })\n .filter(([, camera]) => camera.id !== action.payload),\n ),\n },\n };\n case ACTIONS_TYPES.RESET_CAMERAS_ITEMS:\n return {\n ...state,\n cameras: {\n ...action.payload,\n },\n };\n\n case ACTIONS_TYPES.INCREMENT_CAMERA_COUNT:\n return {\n ...state,\n cameras: {\n ...state.cameras,\n [action.payload.id]: {\n ...state.cameras[action.payload.id],\n count: action.payload.currentCount + 1,\n },\n },\n };\n case ACTIONS_TYPES.INCREMENT_CAMERA_PRICE_WITH_COUNT:\n return {\n ...state,\n cameras: {\n ...state.cameras,\n [action.payload.id]: {\n ...state.cameras[action.payload.id],\n priceMonthWithCount: state.cameras[action.payload.id].priceMonthWithCount + action.payload.priceMonth,\n priceTotalWithCount: state.cameras[action.payload.id].priceTotalWithCount + action.payload.priceTotal,\n },\n },\n };\n case ACTIONS_TYPES.DECREMENT_CAMERA_PRICE_WITH_COUNT:\n return {\n ...state,\n cameras: {\n ...state.cameras,\n [action.payload.id]: {\n ...state.cameras[action.payload.id],\n priceMonthWithCount: state.cameras[action.payload.id].priceMonthWithCount - action.payload.priceMonth,\n priceTotalWithCount: state.cameras[action.payload.id].priceTotalWithCount - action.payload.priceTotal,\n },\n },\n };\n case ACTIONS_TYPES.DECREMENT_CAMERA_COUNT:\n return {\n ...state,\n cameras: {\n ...state.cameras,\n [action.payload.id]: {\n ...state.cameras[action.payload.id],\n count: action.payload.currentCount - 1,\n },\n },\n };\n case ACTIONS_TYPES.DECREMENT_TOTAL_COUNT_CAMERAS:\n return {\n ...state,\n totalCountCameras: state.totalCountCameras - action.payload,\n };\n case ACTIONS_TYPES.INCREMENT_TOTAL_COUNT_CAMERAS:\n return {\n ...state,\n totalCountCameras: state.totalCountCameras + action.payload,\n };\n case ACTIONS_TYPES.RESET_TOTAL_COUNT_CAMERAS:\n return {\n ...state,\n totalCountCameras: 0,\n };\n case ACTIONS_TYPES.INCREMENT_INJECTOR:\n return {\n ...state,\n injector: {\n ...state.injector,\n count: state.injector.count + action.payload,\n priceTotalWithCount: state.injector.priceTotal * (state.injector.count + 1),\n },\n };\n case ACTIONS_TYPES.DECREMENT_INJECTOR:\n return {\n ...state,\n injector: {\n ...state.injector,\n count: state.injector.count - action.payload,\n priceTotalWithCount: state.injector.priceTotal * ((state.injector.count - 1) || 1),\n },\n };\n case ACTIONS_TYPES.RESET_INJECTOR:\n case ACTIONS_TYPES.INIT_INJECTOR:\n return {\n ...state,\n injector: getInjectorData(action.payload),\n };\n case ACTIONS_TYPES.SET_LOCATION_INSTALL:\n return {\n ...state,\n installLocation: action.payload,\n };\n case ACTIONS_TYPES.SET_PLAN:\n return {\n ...state,\n plan: action.payload,\n };\n case ACTIONS_TYPES.SET_OPTION:\n return {\n ...state,\n planOption: action.payload,\n };\n case ACTIONS_TYPES.SET_RESET_ALL:\n return {\n ...state,\n ...initialState,\n };\n default:\n return state;\n }\n}\n","import React, { FC, useEffect, useReducer } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { injectorData } from '~/src/features/videocontrol/data';\nimport { initInjector, setResetAll } from '~/src/features/videocontrol/Provider/actionCreators';\nimport {\n addCameraDispatchWrap,\n decrementCameraCountDispatchWrap,\n incrementCameraCountDispatchWrap,\n removeCameraDispatchWrap,\n resetCamerasDispatchWrap,\n setOptionDispatchWrap,\n setPlanDispatchWrap,\n} from '~/src/features/videocontrol/Provider/actions';\nimport { reducer } from '~/src/features/videocontrol/Provider/reducers';\nimport type { IState, TCamera, TOption, TPlan } from '~/src/features/videocontrol/Provider/types';\nimport { RequisitionContext } from '~/src/features/videocontrol/Provider/useRequisitionContext';\nimport { selectCurrentCityDomain } from '~/src/store/selectors/city';\n\nexport const initialState: IState = {\n installLocation: null,\n cameras: {},\n plan: null,\n planOption: null,\n totalCountCameras: 0,\n injector: injectorData,\n};\n\nexport const Provider: FC = ({ children }) => {\n const [state, dispatch] = useReducer(reducer, initialState);\n const currentCity = useSelector(selectCurrentCityDomain);\n\n useEffect(() => {\n dispatch(initInjector(currentCity));\n }, [currentCity]);\n\n const valueContext = {\n state,\n installLocation: state.installLocation,\n cameras: state.cameras,\n plan: state.plan,\n planOption: state.planOption,\n totalCountCameras: state.totalCountCameras,\n injector: state.injector,\n addCameraDispatch: (camera: TCamera) => addCameraDispatchWrap(camera, state, dispatch),\n removeCameraDispatch: (id: number) => removeCameraDispatchWrap(currentCity, id, state, dispatch),\n resetCamerasDispatch: () => resetCamerasDispatchWrap(currentCity, dispatch),\n incrementCameraCountDispatch: (id: number) => incrementCameraCountDispatchWrap(id, state, dispatch),\n decrementCameraCountDispatch: (id: number) => decrementCameraCountDispatchWrap(id, state, dispatch),\n setPlanDispatch: (plan: TPlan | null) => setPlanDispatchWrap(plan, state, dispatch),\n setOptionDispatch: (option: TOption | null) => setOptionDispatchWrap(option, state, dispatch),\n setResetAllDispatch: () => dispatch(setResetAll()),\n };\n\n return (\n \n {children}\n \n );\n};\n","import styled, { css } from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport { useProgressiveImage } from '~/src/helpers/hooks/useProgressiveImage';\n\ntype TImgBlock = {\n webpImg?: string,\n pngImg?: string,\n isContain?: boolean,\n}\n\ninterface ICardProps {\n isTopText?: boolean,\n isHigher?: boolean,\n}\n\nexport const Card = styled.div`\n flex-direction: ${p => p.isTopText ? 'column-reverse' : 'column'};\n justify-content: space-between;\n flex-wrap: nowrap;\n width: 100%;\n height: ${props => props.isHigher ? '254px' : '305px'};\n background-color: #222939;\n border-radius: ${BorderRadius.OuterBlockRadius};\n overflow: hidden;\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n height: ${props => props.isHigher ? '191px' : '258px'};\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.H4};\n height: 384px;\n }\n`;\n\nexport const DescriptionWrap = styled.div<{ isTopText?: boolean, isMobileImage?: boolean, isLaptopImage?: boolean }>`\n flex-direction: column;\n align-items: flex-start;\n width: 100%;\n margin: ${p => p.isTopText ? '32px auto auto 16px' : 'auto auto 24px 16px'};\n\n @media (max-width: ${wideBreakpoints.sDesktop}) {\n margin: ${p => p.isTopText ? '39px auto auto 28px' : 'auto 16px 24px 16px'};\n }\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n margin: ${p => p.isTopText\n ? '39px 16px auto 28px'\n : p.isLaptopImage\n ? 'auto 12px 30px 16px'\n : 'auto 12px 16px 16px'};\n }\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n margin: ${p => p.isTopText ? '28px 28px auto 28px' : 'auto 16px 32px 16px'};\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) { \n margin: ${p => p.isTopText\n ? '39px auto auto 28px'\n : p.isMobileImage\n ? 'auto auto 16px 28px'\n : 'auto auto 60px 28px'};\n width: 240px;\n }\n`;\n\nexport const Text = styled.div`\n max-width: 361px;\n ${FONTS.S};\n color: ${COLORS.white};\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n ${FONTS.XS};\n }\n`;\n\nexport const ImageWrap = styled.div`\n border-radius: 16px;\n width: 100%;\n height: 100%;\n ${(props) => (props.pngImg || props.webpImg) && css`\n background-image: url('${useProgressiveImage(props.webpImg, { hasTimeout: true, timeoutDelay: 1 }, props.pngImg)}');\n background-repeat: no-repeat;\n background-size: ${props.isContain ? 'contain' : '100% 100%'};\n`};\n`;\n\nexport const Title = styled.div`\n margin-bottom: 8px;\n ${FONTS.H3};\n color: ${COLORS.white};\n max-width: 354px;\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n ${FONTS.H4};\n }\n`;\n\nexport const NoSsrContainer = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n width: 100%;\n`;\n\nexport const SRow = styled.div`\n display: flex;\n flex-wrap: nowrap;\n width: calc(100% + 32px);\n margin: 0 -16px;\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n width: calc(100% + 24px);\n margin: 0 -12px;\n }\n`;\n\nexport const SCol = styled.div`\n width: 100%;\n margin: 0 16px;\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n margin: 12px;\n }\n`;\n\nexport const ListWrap = styled.div`\n margin: 34px 0;\n\n & > div {\n &:first-child {\n margin-bottom: 32px;\n }\n }\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n & > div {\n &:first-child {\n margin-bottom: 0;\n }\n }\n }\n`;\n","import React, { useEffect, useState } from 'react';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { isClientSide } from '@r1-frontend/shared/helpers/ssr';\nimport { useMatchMedia } from '@r1-frontend/shared/hooks/useMatchMedia';\n\nimport AdaptiveNukaCarousel from '~/src/components/AdaptiveNukaCarousel';\nimport { IData } from '~/src/features/videocontrol/pageBlocks/Advantages/types';\n\nimport { customDotsStyles } from '~/src/features/videocontrol/styled';\nimport * as ST from './styled';\n\nconst sDesktopSize = `(max-width: ${wideBreakpoints.sDesktop})`;\nconst laptopSize = `(max-width: ${wideBreakpoints.laptop})`;\nconst tabletSize = `(max-width: ${wideBreakpoints.tablet})`;\nconst mobileSize = `(max-width: ${wideBreakpoints.mobile})`;\n\ninterface IProps {\n incomingData: IData[],\n}\n\nconst AdvantagesBlock = ({ incomingData }: IProps): JSX.Element => {\n\n const [onClientSide, setOnClientSide] = useState(isClientSide());\n\n const isLaptop = useMatchMedia(laptopSize);\n const isSDesktop = useMatchMedia(sDesktopSize);\n const isTablet = useMatchMedia(tabletSize);\n const isMobile = useMatchMedia(mobileSize);\n\n useEffect(() => {\n setOnClientSide(isClientSide);\n }, []);\n\n const renderTabletChildren = () => {\n return (\n \n {incomingData[0].id === 1 &&\n \n \n \n \n \n {incomingData[0].question}\n {incomingData[0].answer}\n \n \n \n \n \n }\n \n {incomingData.map((elem) => {\n const {\n id,\n question,\n answer,\n bgImageM,\n bgImageMWebp,\n } = elem;\n if (id <= 1 || id >= 4) {\n return null;\n }\n\n return (\n \n \n \n \n {question}\n {answer}\n \n \n \n \n );\n })}\n \n \n {incomingData.map((elem) => {\n const {\n id,\n question,\n answer,\n bgImageM,\n bgImageMWebp,\n } = elem;\n if (id <= 3) {\n return null;\n }\n\n return (\n \n \n \n \n {question}\n {answer}\n \n \n \n \n );\n })}\n \n \n );\n };\n\n const renderChildren = () => {\n return (\n \n \n {incomingData.map((elem) => {\n const {\n id,\n question,\n answer,\n bgImageXXL,\n bgImageXL,\n bgImageL,\n bgImageXXLWebp,\n bgImageXLWebp,\n bgImageLWebp,\n isLaptopImage,\n isHigher,\n } = elem;\n if (id > 2) {\n return null;\n }\n\n return (\n \n \n \n \n {question}\n {answer}\n \n \n \n \n );\n })}\n \n \n {incomingData.map((elem) => {\n const {\n id,\n question,\n answer,\n bgImageXXL,\n bgImageXL,\n bgImageL,\n bgImageXXLWebp,\n bgImageXLWebp,\n bgImageLWebp,\n isLaptopImage,\n } = elem;\n if (id <= 2) {\n return null;\n }\n\n return (\n \n \n \n \n {question}\n {answer}\n \n \n \n \n );\n })}\n \n \n );\n };\n\n return (\n onClientSide && isMobile\n ? \n {incomingData.map((elem) => {\n const {\n id,\n question,\n answer,\n bgImageS,\n bgImageSWebp,\n } = elem;\n return (\n \n \n \n \n {question}\n {answer}\n \n \n \n \n );\n })}\n \n : onClientSide && isTablet\n ? \n {renderTabletChildren()}\n \n : \n {renderChildren()}\n \n );\n};\n\nexport default AdvantagesBlock;\n","import styled from 'styled-components';\n\nexport const AdvantagesContainer = styled.div`\n width: 100%;\n box-sizing: content-box;\n margin-top: 35px;\n`;\n","import React, { useCallback, useState } from 'react';\n\nimport { dataLayerPush } from '@r1-frontend/analytics/dataLayerPush';\n\nimport Toggle from '@r1-frontend/ui-react/components/controls/Toggle';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { ACTIONS, CATEGORIES, EVENTS } from '@r1-frontend/shared/constants/analytics';\n\nimport { videocontrolAdvantagesTabs, videocontrolInsideData, videocontrolOutsideData } from '~/src/features/videocontrol/data';\nimport AdvantagesBlock from '~/src/features/videocontrol/pageBlocks/Advantages/AdvantagesBlock';\n\nimport * as ST from './styled';\n\nconst Advantages: React.FC = () => {\n\n const [activeTabToggle, setActiveTabToggle] = useState(videocontrolAdvantagesTabs.leftText);\n\n const onSwitchTab = useCallback((label: string) => {\n dataLayerPush({\n event: EVENTS.UAevent,\n category: CATEGORIES.landing,\n action: ACTIONS.clickOnBtn,\n label: label === videocontrolAdvantagesTabs.leftText ? 'inside' : 'outside',\n });\n setActiveTabToggle(label);\n }, []);\n\n return (\n \n \n {activeTabToggle === videocontrolAdvantagesTabs.leftText\n ? \n : }\n \n );\n};\n\nexport default Advantages;\n","import styled, { css } 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 { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport { useProgressiveImage } from '~/src/helpers/hooks/useProgressiveImage';\n\ntype TImgBlock = {\n webpImg?: string,\n pngImg?: string,\n}\n\nexport const FeaturesBlock = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n grid-gap: 26px;\n background: #2d3443;\n border-radius: ${BorderRadius.OuterBlockRadius};\n`;\n\nexport const ImgBlock = styled.div`\n flex-direction: column;\n height: 418px;\n width: auto;\n border-radius: ${BorderRadius.OuterBlockRadius};\n ${(props) => (props.pngImg || props.webpImg) && css`\n background-image: url('${useProgressiveImage(props.webpImg, { hasTimeout: true, timeoutDelay: 1 }, props.pngImg)}');\n background-repeat: no-repeat;\n background-size: contain;\n background-position: top;\n`};\n`;\n\nexport const TextBlock = styled.div<{ textColor?: string }>`\n width: auto;\n margin: 60% 28px auto 28px;\n color: ${({ textColor }) => textColor ?? COLORS.white};\n`;\n\nexport const Title = styled.div`\n margin-bottom: 8px;\n ${FONTS.H3};\n color: ${COLORS.white};\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.H4};\n }\n`;\n\nexport const SubText = styled.div`\n ${FONTS.S};\n color: ${COLORS.white};\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.XS};\n }\n`;\n\nexport const NoSsrContainer = styled.div`\n display: flex;\n flex-direction: row;\n width: 100%;\n`;\n\nexport const FeaturesContainer = styled.div`\n width: 100%;\n box-sizing: content-box;\n margin: 32px 0;\n justify-content: center;\n flex-wrap: wrap;\n`;\n\nexport const Button = styled(BaseButton)`\n width: 226px;\n height: 48px;\n margin: 13px auto 0 auto;\n\n @media (max-width: ${wideBreakpoints.sDesktop}) {\n margin-top: 37px;\n };\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n width: 100%;\n };\n`;\n","import React, { RefObject, useCallback, useEffect, useState } from 'react';\n\nimport { dataLayerPush } from '@r1-frontend/analytics/dataLayerPush';\n\nimport { btnTypes } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport { ACTIONS, CATEGORIES, EVENTS } from '@r1-frontend/shared/constants/analytics';\nimport { isClientSide } from '@r1-frontend/shared/helpers/ssr';\n\nimport AdaptiveNukaCarousel from '~/src/components/AdaptiveNukaCarousel';\nimport { featuresData } from '~/src/features/videocontrol/data';\n\nimport { customDotsStyles } from '~/src/features/videocontrol/styled';\nimport * as ST from './styled';\n\ninterface IFeaturesProps {\n videocontrolRef?: RefObject,\n}\n\nconst Features = ({ videocontrolRef }: IFeaturesProps): JSX.Element => {\n const [onClientSide, setOnClientSide] = useState(isClientSide());\n\n useEffect(() => {\n setOnClientSide(isClientSide);\n }, []);\n\n const handleClick = useCallback(() => {\n dataLayerPush({\n event: EVENTS.UAevent,\n category: CATEGORIES.landing,\n action: ACTIONS.clickOnBtn,\n label: 'connect',\n });\n videocontrolRef?.current?.scrollIntoView({\n behavior: 'smooth',\n });\n }, [videocontrolRef]);\n\n return (\n onClientSide\n ? \n \n {featuresData?.map((elem) => {\n const { id, png, webp, title, text } = elem;\n\n return (\n \n \n \n {title}\n {text}\n \n \n \n );\n })}\n \n Подключить\n \n : \n {featuresData.map((elem) => {\n const { id, png, webp, title, text } = elem;\n\n return (\n \n \n {title}\n {text}\n \n \n );\n })}\n \n );\n};\n\nexport default Features;\n","import { LazyLoadImage } from 'react-lazy-load-image-component';\nimport styled from 'styled-components';\n\nimport { BaseButton } from '@r1-frontend/ui-react/components/buttons/baseButton';\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 width: 100%;\n color: ${COLORS.TextWhite};\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n margin-bottom: -30px;\n }\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n margin-bottom: -64px;\n margin-top: 64px;\n }\n`;\n\nexport const Container = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: nowrap;\n position: relative;\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n justify-content: space-around;\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n flex-direction: column;\n }\n`;\n\nexport const TextContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n justify-items: center;\n max-width: 532px;\n margin-right: 200px;\n\n @media (max-width: ${wideBreakpoints.sDesktop}) {\n margin-right: 80px;\n }\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n max-width: auto;\n margin-right: 5px;\n }\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n max-width: 430px;\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n margin-right: 0;\n max-width: auto;\n order: 2;\n }\n`;\n\nexport const SubTitle = styled.div`\n ${FONTS.H4};\n color: ${COLORS.TextWhite};\n font-size: 20px;\n line-height: 28px;\n margin-bottom: 10px;\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n ${FONTS.H5};\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n font-size: 12px;\n line-height: 24px;\n }\n`;\n\nexport const Title = styled.h1`\n ${FONTS.H1};\n font-size: 40px;\n line-height: 56px;\n margin-bottom: 30px;\n margin-top: 0;\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n ${FONTS.H2};\n };\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n ${FONTS.H3};\n };\n`;\n\nexport const ItemsBlock = styled.div`\n display: block;\n align-items: center;\n`;\n\nexport const Item = styled.div`\n display: flex;\n margin-bottom: 12px;\n flex-wrap: nowrap;\n align-items: flex-start;\n`;\n\nexport const IconBlock = styled.div`\n width: 30px;\n justify-content: center;\n padding-right: 20px;\n height: 24px;\n`;\n\nexport const Text = styled.span`\n ${FONTS.S};\n\n b {\n ${FONTS.H5}\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.XS};\n\n b {\n ${FONTS.H6}\n }\n };\n\n`;\n\nexport const Button = styled(BaseButton)`\n width: 226px;\n height: 48px;\n margin-top: 30px;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n margin: 16px auto 0 auto;\n width: 100%;\n };\n`;\n\nexport const Picture = styled.picture`\n transition: all ease-in .3s;\n display: flex;\n opacity: 0;\n position: absolute;\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n width: 270px;\n height: auto;\n bottom: 33%;\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n right: 3em;\n bottom: 57%;;\n }\n\n @media (max-width: 550px) {\n right: 10%;\n bottom: 70%;\n }\n`;\n\nexport const ImageContainer = styled.div`\n height: 490px;\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n height: 275px;\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n order: 1;\n }\n`;\n\nexport const ImgStyled = styled(LazyLoadImage)`\n height: 480px;\n width: auto;\n object-fit: contain;\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n height: 400px;\n }\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n height: 245px;\n }\n`;\n","import React, { useEffect } from 'react';\nimport { RefObject, useCallback } from 'react';\n\nimport { dataLayerPush } from '@r1-frontend/analytics/dataLayerPush';\n\nimport { btnTypes } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport WebpImage from '@r1-frontend/ui-react/components/WebpImage';\nimport { ACTIONS, CATEGORIES, EVENTS } from '@r1-frontend/shared/constants/analytics';\n\nimport { headerItems, headerPictures } from '~/src/features/videocontrol/data';\n\nimport * as ST from './styled';\n\nexport interface IHeaderProps {\n videocontrolRef?: RefObject,\n}\n\nconst Header = ({ videocontrolRef }: IHeaderProps): JSX.Element => {\n\n let slideIndex = 0;\n\n function showSlides() {\n let i;\n const slides = document.getElementsByClassName('mySlides') as HTMLCollectionOf;\n if (slides.length) {\n for (i = 0; i < slides.length; i++) {\n slides[i].style.opacity = '0';\n }\n slideIndex++;\n if (slideIndex > slides.length) {\n slideIndex = 1;\n }\n slides[slideIndex - 1].style.opacity = '1';\n setTimeout(showSlides, 4000);\n }\n clearTimeout(undefined);\n }\n\n useEffect(() => {\n showSlides();\n }, []);\n\n const handleClick = useCallback(() => {\n dataLayerPush({\n event: EVENTS.UAevent,\n category: CATEGORIES.landing,\n action: ACTIONS.clickOnBtn,\n label: 'first screen',\n });\n videocontrolRef?.current?.scrollIntoView({\n behavior: 'smooth',\n });\n }, [videocontrolRef]);\n\n return (\n \n \n \n Не беспокойтесь, всë под присмотром!\n Умная система видеонаблюдения\n \n {headerItems.map(({ icon, text }, index) => \n \n {icon && {text}/}\n \n \n )\n }\n \n Подключить\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Header;\n","import styled from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport Accordion from '@r1-frontend/ui-react/deprecated/Accordion';\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\nexport const themeForAccordion = {\n border: COLORS.Control,\n background: COLORS.Control,\n color: COLORS.TextWhite,\n colorArrow: COLORS.TextWhite,\n backgroundIcon: 'transparent',\n borderIcon: COLORS.TextWhite,\n radius: BorderRadius.componentRadius,\n};\n\nexport const Questions = styled.div`\n flex-direction: column;\n margin-bottom: -46px;\n`;\n\nexport const Inner = styled.div`\n flex-direction: column;\n margin-top: 30px;\n`;\n\nexport const Title = styled.div`\n width: 100%;\n margin-bottom: 30px;\n ${FONTS.H2};\n\n @media (max-width: ${wideBreakpoints.sDesktop}) {\n ${FONTS.H3};\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.H4};\n }\n`;\n\nexport const QuestionText = styled.div`\n flex-direction: column;\n\n & li {\n position: relative;\n margin-bottom: 7px;\n padding-left: 15px;\n }\n\n & li:before {\n content: '';\n position: absolute;\n width: 5px;\n height: 5px;\n top: 9px;\n background-color: #fda609;\n left: 0;\n border-radius: 50%;\n }\n`;\n\nexport const StyledAccordion = styled(Accordion)`\n margin: 5px 0;\n border-radius: ${BorderRadius.OuterBlockRadius};\n`;\n","import React from 'react';\n\nimport * as ST from './styled';\n\nexport type TArticle = {\n question: string,\n answer: string,\n id: number,\n}\n\ninterface IProps {\n title: string | React.ReactElement,\n questions: TArticle[],\n}\n\nexport const Questions = ({ title, questions }: IProps): JSX.Element => {\n return (\n \n
\n {typeof title === 'string'\n ? {title}\n : title\n }\n \n {questions.map(({ id, question, answer }) => {\n return (\n \n \n \n \n \n );\n })}\n \n
\n
\n );\n};\n","import React, { useRef } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { Cart } from '~/src/features/videocontrol/pageBlocks/Cart';\nimport StepsInstall from '~/src/features/videocontrol/pageBlocks/StepsInstall';\nimport { Provider } from '~/src/features/videocontrol/Provider';\nimport { TState } from '~/src/store';\nimport { selectIsAuth } from '~/src/store/selectors/auth/selectIsAuth';\nimport { selectDomain } from '~/src/store/selectors/domain';\n\nimport Advantages from './pageBlocks/Advantages';\nimport Features from './pageBlocks/Features';\nimport Header from './pageBlocks/Header';\nimport { Questions } from './pageBlocks/Questions';\nimport { faqData } from './data';\n\nimport * as ST from './styled';\n\nconst Videocontrol = (): JSX.Element => {\n const videocontrolRef = useRef(null);\n const { clientPersonal, domain, isAuth } = useSelector((state: TState) => ({\n clientPersonal: state.auth.clientPersonal,\n domain: selectDomain(state),\n isAuth: selectIsAuth(state),\n }));\n\n return (\n
\n \n \n \n \n
\n \n \n \n \n Проверяйте, как дела дома с экрана смартфона\n \n \n \n \n \n \n \n \n Видеонаблюдение от Дом.ру – безопасность с умом\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Частые вопросы}\n questions={faqData}\n />\n \n \n \n
\n );\n};\n\nexport default Videocontrol;\n","import { useSelector } from 'react-redux';\nimport { NextPage } from 'next';\n\nimport Layout from '~/src/features/_layout';\nimport Videocontrol from '~/src/features/videocontrol';\nimport { initialProps } from '~/src/helpers/basePageFunc';\nimport { TState } from '~/src/store';\nimport { getCurrentCityIn, selectCompanyName } from '~/src/store/selectors/city';\n\nconst pageBgColor = '#141924';\n\nconst VideocontrolPage: NextPage = () => {\n const { companyName, cityIn } = useSelector((state: TState) => ({\n companyName: selectCompanyName(state),\n cityIn: getCurrentCityIn(state),\n }));\n\n return (\n \n \n \n );\n};\n\nVideocontrolPage.getInitialProps = async(options) => {\n await initialProps(options, { isNeedAuthData: true });\n\n return {};\n};\n\nexport default VideocontrolPage;\n","import { captureException } from '@sentry/node';\nimport { stringify } from 'qs';\n\nimport { EPriceTypes } from '@r1-frontend/shared/types/EPriceTypes';\n\nimport { IShopCategory } from '~/src/api/content/shop/getShopCategories';\nimport contentRequest from '~/src/api/requests/contentRequest';\nimport { IPartnerVasContents } from '~/src/components/Promo/popups/PartnerPopup/types';\nimport { getAccessModeByRights } from '~/src/helpers/accessMode';\nimport { retryIfParamIsLocked } from '~/src/helpers/functions';\n\n// @todo All types must be in api-domru package, now collected at frontend/packages/api-domru/src/api-content/common-types/shop-item.types.ts\n// @deprecated use @r1-frontend/shared/types\nexport enum EShopCategory {\n Antiviruses = 'antiviruses',\n SpeedBonuses = 'speed-bonuses',\n Routers = 'routers',\n Intercom = 'intercom',\n Sale = 'special-offers',\n PartnerServices = 'partner-service-with-phone-check',\n Decoders = 'decoders',\n BonusToAll = 'bonus-to-all',\n YandexStation = 'yandex-stanciya',\n YandexStationLite = 'yandex-stanciya-lite',\n SafeKids = 'safe-kids',\n LoyaltyProgram = 'loyalty-program',\n Products = 'products',\n Subscriptions = 'subscriptions',\n Multibundle = 'multibundle',\n Videocontrol = 'videocontrol',\n PrivateSectorEquipment = 'private-sector-equipment',\n}\n\nexport enum EExpandShopItems {\n Advertising = 'advertising',\n Category = 'category',\n Props = 'props',\n Labels = 'labels',\n CategoryProps = 'category.props',\n}\n\ninterface IFilter {\n [key: string]: string | number,\n}\n\nexport interface IShopLabel {\n id: number,\n name: string,\n title: string,\n color: string,\n color_text: string,\n}\n\nexport interface IShopProp {\n name: string,\n title: string,\n type: string,\n value?: string | string[],\n computedValue?: string,\n asIs?: number,\n}\n\nexport interface ICostRa {\n dur_type_id: number,\n duration: number,\n flag_ra: number,\n cost: number,\n}\n\nexport interface IShopPriceOptions {\n label: string,\n price: number,\n pricePromo?: number,\n type: EPriceTypes.Possess | EPriceTypes.Leasing,\n operType: string,\n}\n\nexport interface IShopPriceV2 {\n sort: number,\n type: number,\n date_close_promo: string | null,\n duration: number | null,\n id: number,\n lifetime_price: number | null,\n owner_id: number,\n price_type: string,\n value: number,\n}\n\nexport interface IUrl {\n id: number,\n manual: number,\n name: string,\n owner_id: number,\n type: string,\n url: string,\n}\n\nexport interface IAdvertising {\n companyName: string,\n erid: string,\n}\n\nexport interface IShopItem {\n advertising: IAdvertising | null,\n alias: string,\n body: string,\n body_full: string,\n button_link: string,\n button_text: string,\n category_id: number,\n exists: boolean,\n extra: unknown[],\n global_id: number,\n id: number,\n image: string,\n image_webp?: string,\n images: string[],\n costRa: ICostRa[],\n // 0 или 1\n is_sale: number,\n prices: IShopItemPrices,\n pricesV2: IShopPriceV2[],\n pricesPromo: IShopItemPrices,\n sort: null | number,\n title: string,\n title_short?: string,\n labels?: IShopLabel[],\n category?: IShopCategory,\n image_widgets?: string,\n image_widgets_webp?: string,\n image_widgets_background?: string,\n image_background?: string,\n image_background_webp?: string,\n image_for_tariff_card: string,\n image_for_tariff_card_webp?: string,\n image_for_tariff_card_height: number,\n image_for_tariff_card_width: number,\n props?: IShopProp[],\n priceOptions?: IShopPriceOptions[],\n partnerVasContents?: IPartnerVasContents,\n image_width?: number,\n image_height?: number,\n leftovers: number | null,\n showForDelivery?: 0 | 1 | null,\n checkProductId?: number,\n name: string,\n urls?: IUrl[],\n isCreditAvailable?: number,\n}\n\ninterface IShopItemParams {\n all: boolean,\n expand?: string | undefined,\n filter?: IFilter | undefined,\n category?: EShopCategory | string | null,\n accessMode?: number,\n providerId: number,\n}\n\ninterface IMonth {\n value: number,\n lifetime_price: number,\n}\n\ninterface IRent {\n month: IMonth | null,\n year: number | null,\n}\n\nexport interface IShopItemPrices {\n leasing?: ILeasing[],\n possess?: number,\n rent?: IRent,\n}\n\nexport interface ILeasing {\n price: number,\n duration: number,\n}\n/**\n * @deprecated use api-domru/src/api-content/v2/shop/items/index.ts\n */\n\nexport async function getShopItems(\n providerId: number,\n token: string | null,\n category: EShopCategory | string | null,\n expand?: EExpandShopItems[],\n filter?: IFilter | null,\n isShowAll = false,\n): Promise {\n\n const params: IShopItemParams = {\n providerId,\n ...filter,\n expand: prepareExpandProp(expand),\n all: isShowAll,\n };\n\n const headers: Record = token\n ? { Authorization: `Bearer ${token}` }\n : {};\n\n if (providerId) {\n params.providerId = providerId;\n }\n\n if (category) {\n params.category = category;\n }\n\n params.accessMode = getAccessModeByRights({\n isAuth: Boolean(token),\n });\n\n const url = '/v1/shop/items';\n\n try {\n const resp = await retryIfParamIsLocked(\n () => contentRequest.get(url, {\n headers,\n params,\n paramsSerializer: (params: IShopItemParams) => {\n return stringify(params);\n },\n }),\n );\n\n return resp.data.items;\n\n } catch (e) {\n captureException(e);\n return [];\n }\n}\n\nexport async function getBonusToAll(\n providerId: number,\n token: string | null,\n expand?: EExpandShopItems[],\n filter?: IFilter,\n): Promise {\n\n let expandDefault = [EExpandShopItems.Category];\n if (expand) {\n expandDefault = [...expandDefault, ...expand];\n }\n return await getShopItems(providerId, token, EShopCategory.BonusToAll, expandDefault, filter);\n}\n\nfunction prepareExpandProp(expands: EExpandShopItems[] | undefined): string | undefined {\n if (expands && expands.length) {\n return expands.join(',');\n }\n return undefined;\n}\n\nexport async function getRouters(providerId: number, token: string | null): Promise {\n return getShopItems(\n providerId,\n token,\n EShopCategory.Routers,\n [EExpandShopItems.Category, EExpandShopItems.Props, EExpandShopItems.Labels],\n );\n}\n\n// eslint-disable-next-line no-undef\nexport async function getIntercomServices(providerId: number, token: string): Promise {\n return getShopItems(\n providerId,\n token,\n EShopCategory.Intercom,\n [EExpandShopItems.Category, EExpandShopItems.Props, EExpandShopItems.Labels],\n );\n}\n\nexport async function getVideocontrolItems(providerId: number, token: string): Promise {\n return getShopItems(\n providerId,\n token,\n EShopCategory.Videocontrol,\n [EExpandShopItems.Category, EExpandShopItems.Props],\n );\n}\n","import { isServerSide } from '@r1-frontend/shared/helpers/ssr';\nimport axios from 'axios';\nimport { stringify } from 'qs';\nimport cookies from 'react-cookies';\n\nimport { ACCESS_TOKEN_COOKIE, NO_CACHE_COOKIE } from '~/src/constants';\n\n/**\n * Запрос в ApiContent\n */\nconst axiosContent = axios.create({\n baseURL: isServerSide()\n ? process.env.NEXT_PUBLIC_HOST_API_CONTENT_INNER || process.env.NEXT_PUBLIC_HOST_API_CONTENT\n : process.env.NEXT_PUBLIC_HOST_API_CONTENT,\n});\n\naxiosContent.interceptors.request.use(\n (config) => {\n const token = cookies.load(ACCESS_TOKEN_COOKIE);\n const noCacheKey = cookies.load(NO_CACHE_COOKIE);\n\n const headers = {\n 'X-Requested-With': 'XMLHttpRequest',\n };\n\n if (!config.headers['Authorization'] && token) {\n headers['Authorization'] = `Bearer ${ token }`;\n }\n\n if (noCacheKey) {\n headers['no-cache-key'] = noCacheKey;\n }\n config.headers = { ...config.headers, ...headers };\n\n return config;\n },\n (error) => Promise.reject(error),\n);\n\n/**\n * @deprecated\n * @type {AxiosInstance}\n */\nconst contentRequest = Object.create(axiosContent);\n\ncontentRequest.get = async(url, options) => {\n if (options) {\n options.paramsSerializer = params => {\n return stringify(params);\n };\n }\n return axiosContent.get(url, options);\n};\nexport default contentRequest;\n","import styled from 'styled-components';\n\nimport NukaCarousel from '@r1-frontend/ui-react/components/NukaCarousel';\n\nexport const CustomSwiper = styled(NukaCarousel)`\n padding-left: 0 !important;\n padding-right: 0 !important;\n \n & section,\n & div {\n outline: none;\n }\n\n & > section > div.slider-frame {\n padding: 24px 0 !important;\n\n div.slider-list {\n cursor: default !important;\n }\n }\n`;\n","import { ReactNode, useEffect, useState } from 'react';\nimport { CarouselProps } from 'nuka-carousel';\n\nimport { useMatchMedia } from '@r1-frontend/shared/hooks/useMatchMedia';\n\nimport { CustomSwiper } from './styled';\n\nenum EMediaWidth {\n desktop = '(min-width: 1600px)',\n sDesktop = '(max-width: 1599px) and (min-width: 1280px)',\n laptop = '(max-width: 1279px) and (min-width: 768px)',\n mobile = '(max-width: 767px)',\n}\n\ntype TBreakpoint = 'desktop' | 'sDesktop' | 'laptop' | 'mobile';\n\ntype TVisibleSlides = {\n [key in TBreakpoint]: number;\n};\n\ninterface IProps extends CarouselProps {\n children: Array,\n desktopSlideWidth?: string,\n mobileSlideWidth?: string,\n visibleSlides?: TVisibleSlides,\n [key: string]: unknown,\n}\n\nconst defaultVisibleSlides: TVisibleSlides = {\n desktop: 4,\n sDesktop: 3,\n laptop: 2,\n mobile: 1,\n};\n\n/**\n * Адаптив карусели Nuka-Carousel\n * @param items - массив компонентов (TariffCard, ProductCard, etc)\n * @param desktopSlideWidth - ширина слайда карусели на десктопе\n * @param mobileSlideWidth - ширина слайда карусели на мобилках\n * @param visibleSlides - количество целых видимых слайдов в карусели\n * @returns Function{}\n */\n// todo: move to ui-react\nconst AdaptiveNukaCarousel = ({\n children,\n desktopSlideWidth = '304px',\n mobileSlideWidth = '288px',\n visibleSlides = defaultVisibleSlides,\n ...props\n}: IProps): JSX.Element => {\n const [hideArrows, setHideArrows] = useState(false);\n const [hideDots, setHideDots] = useState(false);\n const [slideWidth, setSlideWidth] = useState(desktopSlideWidth);\n\n const isDesktop = useMatchMedia(EMediaWidth.desktop);\n const isSDesktop = useMatchMedia(EMediaWidth.sDesktop);\n const isLaptop = useMatchMedia(EMediaWidth.laptop);\n const isMobile = useMatchMedia(EMediaWidth.mobile);\n\n useEffect(() => {\n if (isMobile) {\n setSlideWidth(mobileSlideWidth);\n setHideArrows(true);\n if (children.length > visibleSlides.mobile) {\n setHideDots(false);\n } else {\n setHideDots(true);\n }\n } else {\n setSlideWidth(desktopSlideWidth);\n if ((isLaptop && children.length > visibleSlides.laptop) ||\n (isSDesktop && children.length > visibleSlides.sDesktop) ||\n (isDesktop && children.length > visibleSlides.desktop)) {\n setHideArrows(false);\n setHideDots(false);\n } else {\n setHideArrows(true);\n setHideDots(true);\n }\n }\n }, [\n isDesktop,\n isSDesktop,\n isLaptop,\n isMobile,\n children,\n desktopSlideWidth,\n mobileSlideWidth,\n visibleSlides,\n ]);\n\n return (\n \n {children}\n \n );\n};\n\nexport default AdaptiveNukaCarousel;\n","// https://kb.ertelecom.ru/pages/viewpage.action?pageId=429887688\nexport enum EAccessRights {\n UserGuest = 2 ** 1,\n UserAuth = 2 ** 2,\n\n PlatformSite = 2 ** 9,\n\n ConditionZasmotris = 2 ** 25,\n}\n\ninterface IAccessModeProps {\n rights?: EAccessRights[],\n isAuth?: boolean,\n}\n\nexport const getAccessModeByRights = ({ rights = [], isAuth }: IAccessModeProps): number => {\n let result = EAccessRights.PlatformSite | rights.reduce((acc, right) => acc + right, 0);\n\n if (typeof isAuth === 'boolean') {\n if (isAuth) {\n result += EAccessRights.UserAuth;\n } else {\n result += EAccessRights.UserGuest;\n }\n }\n\n return result;\n};\n","import { useCallback, useMemo, useState } from 'react';\n\nimport { isClientSide } from '@r1-frontend/shared/helpers/ssr';\n\nimport defaultImageFallback from '~/static/images/defaultImageFallback.svg';\n\ninterface ITimeout {\n hasTimeout?: boolean,\n timeoutDelay?: number,\n}\n\ninterface IOptions {\n timeout?: ITimeout,\n fallbackSrc?: string,\n}\n\ntype TEvent = Event | string | undefined;\n\nexport interface IProgressiveImageExtendedResult {\n sourceLoaded: string,\n isFallback: boolean,\n errorEvent: TEvent,\n}\n\nconst getImage = (onSuccess: () => void, onError: OnErrorEventHandlerNonNull, src?: string) => {\n if (src && isClientSide()) {\n const img = new Image();\n img.src = src;\n img.onload = onSuccess;\n if (onError) {\n img.onerror = onError;\n }\n } else {\n onError('No src');\n }\n};\n\n// использовать только для картинок (LazyLoadImage, img, picture),\n// не подходит для фоновых изображений (css: background, background-image), для них ручная проверка - useWebp\nexport function useProgressiveImage(\n src?: string,\n timeout?: ITimeout,\n fallbackSrc = defaultImageFallback,\n): string {\n const [sourceLoaded, setSourceLoaded] = useState('');\n const { hasTimeout = false, timeoutDelay = 0 } = timeout || {};\n\n const onSuccess = useCallback(\n () => hasTimeout\n ? setTimeout(() => setSourceLoaded(src as string), timeoutDelay)\n : setSourceLoaded(src as string),\n [src, hasTimeout, timeoutDelay],\n );\n\n const onError = useCallback(() => {\n setSourceLoaded(fallbackSrc);\n }, [fallbackSrc]);\n\n useMemo(() => getImage(onSuccess, onError, src), [onError, onSuccess, src]);\n\n return sourceLoaded;\n}\n\nexport function useProgressiveImageWithFallbackDetection(\n src?: string,\n options?: IOptions,\n): IProgressiveImageExtendedResult {\n const {\n timeout,\n fallbackSrc = defaultImageFallback,\n } = options || {};\n const [sourceLoaded, setSourceLoaded] = useState('');\n const [isFallback, setIsFallback] = useState(false);\n const [errorEvent, setErrorEvent] = useState(undefined);\n\n const { hasTimeout = false, timeoutDelay = 0 } = timeout || {};\n\n const onSuccess = useCallback(\n () => hasTimeout\n ? setTimeout(() => setSourceLoaded(src as string), timeoutDelay)\n : setSourceLoaded(src as string),\n [src, hasTimeout, timeoutDelay],\n );\n\n const onError = useCallback((event) => {\n setSourceLoaded(fallbackSrc);\n setIsFallback(true);\n setErrorEvent(event);\n }, [fallbackSrc]);\n\n useMemo(() => getImage(onSuccess, onError, src), [onError, onSuccess, src]);\n\n return ({ sourceLoaded, isFallback, errorEvent });\n}\n","const f_s = '.'; // разделитель дробной части\n\n/**\n * В число\n * @param {*} v - значение\n * @return {number}\n */\nexport const toNumber = v => typeof v === 'string' ? parseFloat(v.toString().replace(' ', '').replace(',', f_s)) : Number(v);\n\n/**\n * Число?\n * @param {*} v - значение\n * @return {boolean}\n */\nexport const isNumeric = v => {\n if (typeof v === 'number') {\n return true;\n }\n const str = (v || '').toString();\n if (!str) {\n return false;\n }\n const float = toNumber(str);\n return !isNaN(float) && isFinite(float);\n};\n\n/**\n * Форматирование цены\n * @param {(number|string)} amount число\n * @param {number} [x=3] длина секции\n * @param {string} [s=' '] разделитель секций\n * @param {number} [d=0] длина дробной части\n * @param {string} [c='.'] разделитель дробной части\n * @return {string}\n */\nexport const toCurrency = (amount, x = 3, s = ' ', d, c = f_s) => {\n const n = toNumber(amount);\n d = d || (x => (x.includes('.') ? x.split('.').pop().length : 0))(n.toString());\n const str = n.toFixed(Math.max(0, ~~d));\n const re = `\\\\d(?=(\\\\d{${x}})+${d > 0 ? '\\\\D' : '$'})`;\n return (c ? str.replace('.', c) : str).replace(new RegExp(re, 'g'), `$&${s}`);\n};\n\n/**\n * Целая часть от деления\n * @param {Number} a\n * @param {Number} b\n * @return {number}\n */\nexport function integerDivision(a, b) {\n return (a - a % b) / b;\n}\n","\nimport { TState } from '~/src/store';\n\nexport const selectIsAuth = (state: TState) => {\n return state.auth.isAuth;\n};\n","import get from 'lodash/get';\n\nimport { TState } from '~/src/store';\n\n// @todo remove lodash from getting value from expected and described structure `TState`\nexport function selectDomain(state: TState): string {\n return get(state, 'auth.billingDomain') || get(state, 'city.currentCity.domain');\n}\n\nexport function selectHostname(state: TState): string {\n const domain = get(state, 'auth.billingDomain');\n\n if (domain && domain !== 'interzet') {\n return 'https://' + domain + '.db.ertelecom.ru';\n } else {\n return get(state, 'city.currentCity.billingHost');\n }\n}\n","export type TArrayOfThree = [string, string, string];\n\n/**\n * @link https://docs.translatehouse.org/projects/localization-guide/en/latest/l10n/pluralforms.html\n */\nconst getVariant = (value: number, variants: TArrayOfThree) => {\n const abs = Math.abs(value);\n\n return variants[\n abs % 10 == 1 && abs % 100 != 11\n ? 0\n : abs % 10 >= 2 && abs % 10 <= 4 && (abs % 100 < 10 || abs % 100 >= 20)\n ? 1\n : 2\n ];\n};\n\n/**\n * Cклоняет число\n * @param value Число\n * @param variants Варианты слов для склонения\n * @returns Один из вариантов в зависимости от переданного значения {value}\n * @example\n * pluralize(3, ['идея', 'идеи', 'идей']); // идеи\n */\nexport const pluralize = (value: number, variants: TArrayOfThree) =>\n getVariant(value, variants);\n\n/**\n * Получает функцию для склонения числа\n * @param variants Варианты слов для склонения\n * @example\n * const pluralize = getPluralize(['идея', 'идеи', 'идей']);\n */\nexport const getPluralize = (variants: TArrayOfThree) => (value: number) =>\n pluralize(value, variants);\n","import { TArrayOfThree } from '.';\n\n/**\n * Склонения для месяца\n *\n * @return ['месяц', 'месяца', 'месяцев']\n */\nexport const monthPluralize: TArrayOfThree = ['месяц', 'месяца', 'месяцев'];\n\n/**\n * Склонения для канала\n *\n * @return ['канал', 'канала', 'каналов']\n */\nexport const channelPluralize: TArrayOfThree = ['канал', 'канала', 'каналов'];\n\n/**\n * Склонения для дня\n *\n * @return ['день', 'дня', 'дней']\n */\nexport const dayPluralize: TArrayOfThree = ['день', 'дня', 'дней'];\n\n/**\n * Склонения для бонуса\n *\n * @return ['бонус', 'бонуса', 'бонусов']\n */\nexport const bonusPluralize: TArrayOfThree = ['бонус', 'бонуса', 'бонусов'];\n","// обрезать строку с многоточием при привышении заданного количества символом visibleLength\n// до выноса называлась ellipsis\nexport const truncate = (string: string | undefined, visibleLength: number) => {\n if (!string) {\n return '';\n }\n\n return string.length > visibleLength && visibleLength !== 0\n ? `${string.slice(0, visibleLength).trim()}...`\n : string;\n};\n","export enum EPriceTypes {\n Possess = 1, // Покупка за полную стоимость\n Leasing = 5, // Покупка в рассрочку\n}\n","import styled, { css } from 'styled-components';\n\n// @ts-ignore\nimport svg from './arrow.svg';\n\nexport const Wrapper = styled.div`\n width: fit-content;\n height: 30px;\n opacity: 0.2;\n transition: opacity 0.2s ease-in;\n cursor: pointer;\n \n :hover {\n opacity: 1;\n }\n`;\n\nexport const ArrowSvg = styled.img.attrs({\n src: svg,\n})<{ type?: 'left' | 'right' }>`\n height: 100%;\n ${({ type }) => type === 'right' && css`transform: rotate(180deg);`}\n`;\n","import styled, { CSSObject, keyframes } from 'styled-components';\n\nimport { COLORS } from '../../../assets/js/constants';\n\nexport interface ICustomDotsStyles {\n dotsContainer?: CSSObject,\n dot?: CSSObject,\n dotContainer?: CSSObject,\n activeDot?: CSSObject,\n}\n\nexport const Dot = styled.div<{ active?: boolean, customStyles?: ICustomDotsStyles }>`\n height: 100%;\n width: 100%;\n border-radius: 2px;\n background: ${COLORS.black};\n opacity: 0.1;\n transition: opacity .3s ease;\n ${p => p.customStyles?.dot ?? ''};\n\n &:hover {\n opacity: ${({ active }) => active ? 1 : 0.45};\n }\n`;\n\nexport const DotContainer = styled.div<{ active?: boolean, customStyles?: ICustomDotsStyles }>`\n position: relative;\n width: ${({ active }) => active ? '48px' : '24px'};\n height: 4px;\n margin: 0 4px;\n cursor: pointer;\n transition: width .3s ease;\n ${p => p.customStyles?.dotContainer ?? ''};\n`;\n\nconst activeLineAnimation = keyframes`\n 0% { width: 0; }\n 100% { width: 100%; }\n`;\n\nexport const ActiveLine = styled.div<{ active?: boolean, time?: number, customStyles?: ICustomDotsStyles }>`\n display: ${({ active }) => active ? 'initial' : 'none'};\n position: absolute;\n top: 0;\n left: 0;\n background: ${COLORS.black};\n width: ${({ active }) => active ? '100%' : '0%'};\n height: 100%;\n border-radius: 2px;\n animation-name: ${activeLineAnimation};\n animation-duration: ${({ time }) => time || 0}s;\n animation-iteration-count: 1;\n ${p => p.customStyles?.activeDot ?? ''};\n`;\n\nexport const DotsContainer = styled.div< {customStyles?: ICustomDotsStyles }>`\n justify-content: center;\n width: 100%;\n margin-top: 10px;\n bottom: 26px;\n z-index: 10;\n flex-wrap: nowrap;\n ${p => p.customStyles?.dotsContainer ?? ''};\n`;\n","import React from 'react';\n\nimport * as ST from './styled';\n\nexport interface IArrowProps {\n previousSlide?: () => void,\n nextSlide?: () => void,\n}\n\nconst DefaultArrow = ({ previousSlide, nextSlide }: IArrowProps) => {\n return (\n \n \n \n );\n};\n\nexport default DefaultArrow;\n","import React, { FC } from 'react';\n\nimport * as ST from './styled';\n\nexport interface IDotsProps {\n goToSlide: (i: number) => void,\n slideCount: number,\n currentSlide: number,\n autoplayInterval: number,\n autoplay: boolean,\n customDotsStyles?: ST.ICustomDotsStyles,\n}\n\nconst DefaultDots: FC = ({\n goToSlide,\n slideCount,\n currentSlide,\n autoplayInterval,\n autoplay,\n customDotsStyles,\n}) => {\n return (\n \n {Array(slideCount).fill(null).map((_, index) => (\n goToSlide(index)}\n customStyles={customDotsStyles}\n >\n \n \n \n ))}\n \n );\n};\n\nexport default DefaultDots;\n","import styled from 'styled-components';\n\nexport const Container = styled.div<{ withoutDots?: boolean, withoutArrows?: boolean }>`\n display: flex;\n justify-content: center;\n width: 100%;\n height: fit-content;\n margin: 0 auto;\n padding-bottom: ${({ withoutDots }) => withoutDots ? 0 : 32}px;\n padding-right: ${({ withoutArrows }) => withoutArrows ? 0 : 32}px;\n padding-left: ${({ withoutArrows }) => withoutArrows ? 0 : 32}px;\n \n div:focus-visible {\n outline: none !important;\n }\n`;\n","import React, { FC, RefObject, useEffect, useRef, useState } from 'react';\nimport NukaSwiper, {\n CarouselControlContainerProp,\n CarouselProps,\n} from 'nuka-carousel';\n\nimport { ICustomDotsStyles } from './DefaultDots/styled';\nimport DefaultArrow, { IArrowProps } from './DefaultArrow';\nimport DefaultDots, { IDotsProps } from './DefaultDots';\n\nimport * as ST from './styled';\n\nexport interface ICarouselProps extends CarouselProps {\n withoutArrows?: boolean,\n withoutDots?: boolean,\n customArrow?: FC,\n customDots?: FC,\n customDotsStyles?: ICustomDotsStyles,\n}\n\ninterface INukaSwiperMethods {\n setDimensions: () => void,\n}\n\nconst DEFAULT_AUTOPLAY_INTERVAL = 3000;\nconst DOTS_PADDING = -20;\nconst ARROWS_PADDING = -32;\n\nconst getDefaultControlsContainerStyles = (key: CarouselControlContainerProp) => {\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\nconst NukaCarousel: FC = ({\n customArrow: CustomArrow,\n customDots: CustomDots,\n children,\n withoutArrows,\n withoutControls,\n withoutDots,\n autoplayInterval = DEFAULT_AUTOPLAY_INTERVAL,\n autoplay,\n className,\n customDotsStyles,\n ...props\n}) => {\n const [pausedAutoplay, setPausedAutoplay] = useState(false);\n const Arrow = CustomArrow || DefaultArrow;\n const Dots = CustomDots || DefaultDots;\n const swiperRef = useRef();\n\n useEffect(() => {\n swiperRef?.current?.setDimensions();\n }, [withoutArrows, withoutControls]);\n\n const handleMouseOver = () => {\n if (autoplay) {\n setPausedAutoplay(true);\n }\n };\n\n const handleMouseOut = () => {\n if (autoplay) {\n setPausedAutoplay(false);\n }\n };\n\n return (\n \n }\n // @ts-ignore\n getControlsContainerStyles={getDefaultControlsContainerStyles}\n renderCenterLeftControls={({ previousSlide }) => withoutArrows || }\n renderCenterRightControls={({ nextSlide }) => withoutArrows || }\n renderBottomCenterControls={(props) => withoutDots || (\n \n )}\n autoplayInterval={autoplayInterval}\n autoplay={autoplay}\n withoutControls={withoutControls}\n {...props}\n >\n {children}\n \n \n );\n};\n\nexport default NukaCarousel;\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\nconst StylesTab = css`\n position: relative;\n padding: 6px 24px;\n border-style: solid;\n border-color: transparent;\n background: transparent;\n overflow: hidden;\n font: inherit;\n cursor: pointer;\n`;\n\nexport const Container = styled.div<{isDisabled : boolean, fontSize?: FONTS}>`\n width: fit-content;\n min-width: max-content;\n max-width: 600px;\n display: flex;\n position: relative;\n box-sizing: content-box;\n ${p => p.fontSize || FONTS.MediumXS};\n background-color: transparent;\n border-radius: 100px;\n border: 2px solid ${COLORS.Outline_Light};\n pointer-events: ${p => p.isDisabled ? 'none' : 'auto' };\n user-select: none;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n max-width: 300px;\n }\n`;\n\nexport const TabLeft = styled.button`\n ${StylesTab};\n border-width: 2px 0 2px 2px;\n border-radius: 100px 0 0 100px;\n`;\n\nexport const TabRight = styled.button`\n ${StylesTab};\n border-width: 2px 2px 2px 0;\n border-radius: 0 100px 100px 0;\n`;\n\nexport const LayoutLeft = styled.span<{translateValue: number, colorTab: string}>`\n position: absolute;\n top: 0;\n height: 100%;\n border-radius: 100px;\n transition: transform 100ms ease-in-out;\n width: 100%;\n right: 0;\n background-color: ${p => p.colorTab};\n transform: ${p => `translateX(${p.translateValue}%)`};\n`;\n\nexport const LayoutRight = styled(LayoutLeft)`\n right: 100%;\n`;\n\nexport const Text = styled.span<{ isActive: boolean, isDifferentColorText: boolean }>`\n position: relative;\n z-index: 1;\n color: ${(p) => p.isDifferentColorText && !p.isActive ? COLORS.TextPrimary : COLORS.TextWhite};\n white-space: pre;\n`;\n","import React, { FC } from 'react';\n\nimport * as ST from '@r1-frontend/ui-react/components/controls/Toggle/styled';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\ninterface IProps {\n textsValues: { leftText: string, rightText: string },\n isDisabled?: boolean,\n colorTab?: string,\n onChangeCallback: (activeTab: string) => void,\n activeTab: string,\n fontSize?: FONTS,\n isDifferentColorText?: boolean,\n}\n\nconst Toggle: FC = ({\n textsValues,\n isDisabled = false,\n colorTab = COLORS.ButtonPrimary,\n onChangeCallback,\n activeTab,\n fontSize,\n isDifferentColorText = true,\n ...args\n}) => {\n const translateData = { max: 100, min: 0 };\n const { leftText, rightText } = textsValues;\n const isRightTabActive = activeTab === rightText;\n\n const onClickHandler = () => {\n const activeText = isRightTabActive ? leftText : rightText;\n onChangeCallback(activeText);\n };\n\n return (\n \n \n \n \n {leftText}\n \n \n \n \n \n {rightText}\n \n \n \n );\n};\n\nexport default Toggle;\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","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODAiIGhlaWdodD0iODAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjgwIiBoZWlnaHQ9IjgwIiByeD0iMTIiIGZpbGw9IiNGQUZBRkEiIGZpbGwtb3BhY2l0eT0iMC4xNSIvPjwvc3ZnPg==\"","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_1-743e6df76da616cde1cb41fc14bf5f18.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_1-bd8c36f67819e84aa98282d717e23c82.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_1_1-9041fa36090d1f177ea80b68f90bd473.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_1_1-025dc857a4d820ec9d906721ff123615.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_1_2-79fb852624694d145190c59a29697013.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_1_2-269757c16499b2757a92a8d5895ecab7.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_2-63f23fda74b1cc31b66f58ed0c471578.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_2-f87815f15bc41e6c7e592085d7dd1a95.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_2_1-c767962140c9d576c6e1d99efc1f306f.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_2_1-f473f29a354c931caa23a7a05a7f9f38.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_2_2-7efd49434214612edbf3ff619e7607d0.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_2_2-9c93b8a8a670e249cb92d98f3fb2ad52.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_3-b4627516d35ac63808695f2bc75ff56e.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_3-3bec43e4ef58e8e7570a2d1c0fffd2b7.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_3_1-8ec3f2ae9ad1488e9a5091bf653d3625.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_3_1-7d08fa7e08f56eb91b7a87bc37183cb8.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_3_2-c4f355be56a312d463e81c662d7c00c5.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_3_2-21599584e3a1e2e0cf1f891fbfcd15b2.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_4-fb8e059f7c1a9f2e7777f6f80c3bd799.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_4-a5d0d09f2917886166c713c78b5ff202.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_4_1-f270d7e86e138b461388ab472d2346c9.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_4_1-3136b32d783a2961cda41cb181c7171c.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_4_2-089124bd8393327aea2109ed0017a207.png\";","module.exports = \"data:image/webp;base64,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\"","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_5-9d9960b3e9703ccfe1d6bdc3524bdb20.png\";","module.exports = \"data:image/webp;base64,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\"","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_5_1-22b1a92a417dd10f4e40ae33480bfd39.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_5_1-ea44a8bff427eb1909d8c7bca44ac4f9.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_5_2-829147e86abd278bac9da6855fb21c4f.png\";","module.exports = \"data:image/webp;base64,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\"","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_L1-16d0029c019ced9976a285013c40fa20.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_L1-385375c13fbb6aa7a94c8ce0f3fc2b86.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_L2-9379d716d7e83804904dc759603b112a.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_L2-66be9308082d93e6b75d40cc9044b1c0.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_L3-489ffddd00bb2d687eb5a59d0277ee62.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_L3-b0db7ae034681acf012f5cf39f60ad56.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_L4-7af7427a649e820cd24c518e1ec74eac.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_L4-d5fc00a14ee5ef217a1ae63ebe6816be.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_L5-b59f701586d07d32a8f9872f4c663693.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_L5-49b2fb4096572932ac7765ad6518e58c.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_M1-c4ed9c7bf586fe6e9b52b286bc78bea9.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_M1-8ea4f595c3bee443bec59f76a6d46116.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_M2-830e86a028aca0b56ff916664546ab7d.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_M2-5b49b3505686f65a998310bd1169f55b.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_M3-de7e4b8a14d6b211324ea7a190edb563.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_M3-e0e60ff33086f0dd247b103dad6504bd.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_M4-73badabd82821ea8f5c463f1cc89b06e.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_M4-e05ed48962eba8ad0c6e341309f5ee2c.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_M5-4b30c57b24d59b039f122b5f23f5257e.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_1_M5-fb4e1dae038dd71f4e9d83fd2029edc2.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_1-ebda03544232879def4df2236514c854.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_1-3dc22ec106a8d5cc441745f1d1a0d91a.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_1_1-6b54396ae49c4c2c44a5c444c502114e.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_1_1-ac50d813c5143e3ad6ff413c295c9ca2.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_1_2-2718d06275a50baa13b41b128c0f18f5.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_1_2-af78cb84d55bbda6834421cde93734b4.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_2-da1e7e5e91d715f64f36365a53e3af4d.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_2-134fd7a335e762918338c1b111e30e10.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_2_1-bdd4014e056bf61bacd6b2c3d03af6e8.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_2_1-d25b7b3956063a2388742da2284d6aca.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_2_2-4c759b811451929db2c9c169facfb7fd.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_2_2-896c85a0be96132e6d838099e337ce70.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_3-09d58faec6ebeccfeb943c5b64b0b0c8.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_3-85bb49de7e4a197bae5c367883b2a229.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_3_1-ec516b731970e075a871ed1ea3881b06.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_3_1-0278fcbc95886dddceec82b162f7dc04.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_3_2-3bc497e01a32f98480cc40474ee7d6ce.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_3_2-e21c379e8f138b65c11966695ee7ce7c.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_4-21b84d7ff5b7663f4934347155412f5e.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_4-52e3226519a36aeba34791fb19ab51b4.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_4_1-6465e973e64cb51cbb201575d9b51294.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_4_1-b65f38201ac22c30aa31d3bf48e747f9.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_4_2-6465e973e64cb51cbb201575d9b51294.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_4_2-bae6f6e94a2811eb359cc5639a53a512.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_5-2ca1d262f986208fa3920e670de295ce.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_5-18fad901c4635d2880d1165721489b47.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_5_1-f8ebe4f0c11ab749acfbc36c9fc65e6a.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_5_1-8df8f34edfafd85e963dee9c2d071975.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_5_2-c36267b3a45a24a6a77ce761a9af8ec6.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_5_2-13de4bfb93ac6f9bf2221e02c46b6898.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_L1-e045cfdacca707986df64f27d787b6ff.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_L1-9bbde87da4d8956af9e93ac7a803db2d.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_L2-4e72a3cdb784cf9423a95225c8f81057.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_L2-b54855aedc0dd23ec2851a7632eeabc9.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_L3-2c7b7653028b6ec8764f931a43efaf22.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_L3-328fe937a33607607e4f4d070ed1ec28.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_L4-e43666a702023cf33f248b1a3d4be48b.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_L4-6ed55a496566b4fbb6df2f2171377d95.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_L5-7e970090ef28f5c7a3211e1bc2b7c60c.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_L5-132e63d20f1e5c4c24410976de530885.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_M1-074e3cb44d7c207a6fb79e0445eeece7.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_M1-091f45ab3f0603a6f8df6942df8af300.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_M2-1c007fa2055e1348259cbbb104d54711.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_M2-06a9d09f82a6be685c367e8029a1b843.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_M3-3a70676987eee97535b1307ecb776d22.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_M3-e12af2b81012ce606d9ffb1dee5f60e4.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_M4-31b423c2908c47f39e1eb2a4587f48e4.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_M4-8b3caa5a0801459a55eef2ad242235ab.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_M5-4d442039aa19e0740f902663d34f96a7.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/advantages_2_M5-f68e326d72e73827299b2f673b79c716.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/picture_1-71d683bba710cfb5449a9a7547b62cd4.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/picture_1-40f9df203dffa5f995fc9f63e7f99b99.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/picture_2-586a44241a481ec75e137d2234df780a.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/picture_2-ca548eeb4417374e9a918c3f1e4604b3.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/picture_3-0b3786a20966f4b301b16d70aafe1323.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/picture_3-893f469054fff61169f8538ef1178f61.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/picture_4-5f2d8d3c4edd918e62f0904229ee87f0.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/picture_4-a89e0b6e8627628e901f867d0c6c22b6.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/background-bf03bc1ac643b2c17b18b7fcadf6356f.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/background-5bdd4c5bcf2f3ca38499b25ad2124467.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/camera_country_house-89768ad2c6eba8d1286bcfae62ad131c.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/camera_country_house-9f7c3a6d33dad8d5f4e1d4ce6026ff27.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/camera_office-2726d23fe91057514569691dde8288e3.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/camera_office-d8bf46b71ef0a635dc4a4f883c2f6bb7.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/camera_porch-76a85103f26ac07083ebdf8c9cb183c8.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/camera_porch-5643de44d44c41195e5c24d8495053a5.webp\";","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAxNCAxNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyLjk2MDkgMS43NUMxMi4yMDMxIDAuOTkyMTg4IDExLjE0MDYgMC44NjcxODggOS44NTE1NiAwLjg2NzE4OEg0LjExNzE5QzIuODUxNTYgMC44NjcxODggMS43ODkwNiAwLjk5MjE4OCAxLjAzMTI1IDEuNzVDMC4yODEyNSAyLjUwNzgxIDAuMTU2MjUgMy41NTQ2OSAwLjE1NjI1IDQuODI4MTJWMTAuNTA3OEMwLjE1NjI1IDExLjc5NjkgMC4yNzM0MzggMTIuODQzOCAxLjAzMTI1IDEzLjYwMTZDMS43ODkwNiAxNC4zNTk0IDIuODUxNTYgMTQuNDg0NCA0LjE0MDYyIDE0LjQ4NDRIOS44NTE1NkMxMS4xNDA2IDE0LjQ4NDQgMTIuMjAzMSAxNC4zNTk0IDEyLjk2MDkgMTMuNjAxNkMxMy43MTg4IDEyLjg0MzggMTMuODM1OSAxMS43OTY5IDEzLjgzNTkgMTAuNTA3OFY0Ljg0Mzc1QzEzLjgzNTkgMy41NTQ2OSAxMy43MTg4IDIuNSAxMi45NjA5IDEuNzVaTTEyLjU2MjUgNC42NDA2MlYxMC43MTA5QzEyLjU2MjUgMTEuNDc2NiAxMi40NjA5IDEyLjIzNDQgMTIuMDMxMiAxMi42NzE5QzExLjU5MzggMTMuMTA5NCAxMC44MjAzIDEzLjIxMDkgMTAuMDYyNSAxMy4yMTA5SDMuOTM3NUMzLjE3MTg4IDEzLjIxMDkgMi4zOTg0NCAxMy4xMDE2IDEuOTYwOTQgMTIuNjcxOUMxLjUzMTI1IDEyLjIzNDQgMS40Mzc1IDExLjQ3NjYgMS40Mzc1IDEwLjcxMDlWNC42NTYyNUMxLjQzNzUgMy44ODI4MSAxLjUzMTI1IDMuMTE3MTkgMS45NjA5NCAyLjY3OTY5QzIuMzk4NDQgMi4yNDIxOSAzLjE3OTY5IDIuMTQwNjIgMy45NTMxMiAyLjE0MDYySDEwLjA2MjVDMTAuODIwMyAyLjE0MDYyIDExLjU5MzggMi4yNDIxOSAxMi4wMzEyIDIuNjc5NjlDMTIuNDYwOSAzLjExNzE5IDEyLjU2MjUgMy44NzUgMTIuNTYyNSA0LjY0MDYyWiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0ibW92ZW1lbnQtcmVhY3Rpb24iIHdpZHRoPSIzNSIgaGVpZ2h0PSIzNSIgdmlld0JveD0iMCwgNTAsIDQ1MCwgNDUwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNMTU5LjgwMCAxMjQuNjI3IEMgMTU4LjQ4MCAxMjQuOTM1LDE1Ni4zNDEgMTI1LjM3NywxNTUuMDQ3IDEyNS42MTEgQyAxNTMuNzUyIDEyNS44NDQsMTUyLjE4NiAxMjYuMjk3LDE1MS41NjYgMTI2LjYxNyBDIDE1MC45NDcgMTI2LjkzOCwxNTAuMTUwIDEyNy4yMDAsMTQ5Ljc5NSAxMjcuMjAwIEMgMTQ5LjE5MSAxMjcuMjAwLDE0Ny4wMjAgMTI4LjEyMCwxNDIuODAwIDEzMC4xNjMgQyAxMzkuMzQ2IDEzMS44MzUsMTM1LjYyNSAxMzQuNDMzLDEzMC41MjQgMTM4LjczNCBDIDEyMC4xNDEgMTQ3LjQ4OSwxMTEuNzA0IDE2Ni41MjMsMTEyLjQ4MyAxNzkuNDM1IEMgMTEyLjgzMSAxODUuMjA4LDExOC43OTkgMTg3LjkwMSwxMjIuODU4IDE4NC4xMTggQyAxMjQuMTgwIDE4Mi44ODUsMTI0LjY1OCAxODEuMTEzLDEyNS4zNzQgMTc0LjgwMCBDIDEyNS44NzcgMTcwLjM1OSwxMjcuMTk4IDE2NS4wNzEsMTI4LjMzNiAxNjIuOTQ1IEMgMTI4LjU1NSAxNjIuNTM1LDEyOS4yMTggMTYxLjIyMiwxMjkuODA5IDE2MC4wMjcgQyAxMzAuNDAwIDE1OC44MzIsMTMxLjE5NyAxNTcuMzkyLDEzMS41ODAgMTU2LjgyNyBDIDEzMS45NjIgMTU2LjI2MiwxMzIuNzY2IDE1NS4wNTIsMTMzLjM2NiAxNTQuMTM3IEMgMTM5LjIzNCAxNDUuMTk1LDE1Mi4wNjAgMTM3LjkyMCwxNjMuOTEwIDEzNi44MTEgQyAxNzEuMjEwIDEzNi4xMjgsMTczLjA0MiAxMzUuMjIyLDE3My45OTIgMTMxLjgyOCBDIDE3NS43MTMgMTI1LjY4MywxNjkuMjc1IDEyMi40MTcsMTU5LjgwMCAxMjQuNjI3IE0yNTAuNDAwIDE0Ni4zODMgQyAyNDkuNjMwIDE0Ni44MTQsMjQ4Ljc2MiAxNDcuMTc0LDI0OC40NzIgMTQ3LjE4MyBDIDI0Ny4wNDEgMTQ3LjIyOSwyNDIuNDM5IDE1MS41NDksMjIwLjg0MyAxNzMuMTIxIEMgMjAyLjA0MiAxOTEuOTAyLDE5Ny4zMjAgMTk2LjQyMCwxOTYuODIxIDE5Ni4xMDYgQyAxOTYuMzE2IDE5NS43ODksMTk2LjE1NSAxOTQuNDUxLDE5NS45NjEgMTg4Ljk1OCBDIDE5NS43MDYgMTgxLjc2MywxOTUuMTYxIDE3OC40NTQsMTkzLjk1MCAxNzYuNzM4IEMgMTkzLjUzNyAxNzYuMTU0LDE5My4yMDAgMTc1LjQ5NiwxOTMuMjAwIDE3NS4yNzYgQyAxOTMuMjAwIDE3NC4yMjAsMTg4LjA1NSAxNjkuNjYyLDE4NS40MDAgMTY4LjM2NyBDIDE4MS41OTUgMTY2LjUwOSwxNzMuNjEwIDE2Ni4zMDcsMTcwLjIwMCAxNjcuOTgyIEMgMTYyLjkwMCAxNzEuNTY3LDE1OS4yNTkgMTc3LjExOSwxNTguNjQ3IDE4NS42MDAgQyAxNTguNDk2IDE4Ny42OTAsMTU4LjEyMSAxOTAuODQwLDE1Ny44MTMgMTkyLjYwMCBDIDE1Ny41MDYgMTk0LjM2MCwxNTcuMTM3IDE5Ny41MTAsMTU2Ljk5NCAxOTkuNjAwIEMgMTU2Ljg1MCAyMDEuNjkwLDE1Ni40OTMgMjA0LjQ4MCwxNTYuMTk5IDIwNS44MDAgQyAxNTUuOTA2IDIwNy4xMjAsMTU1LjU1MSAyMDkuOTEwLDE1NS40MTAgMjEyLjAwMCBDIDE1NS4yNjkgMjE0LjA5MCwxNTQuOTA3IDIxNy4yNDAsMTU0LjYwNiAyMTkuMDAwIEMgMTU0LjMwNCAyMjAuNzYwLDE1My45NDQgMjIzLjczMCwxNTMuODA2IDIyNS42MDAgQyAxNTMuNjY4IDIyNy40NzAsMTUzLjI5OSAyMzAuMzUwLDE1Mi45ODYgMjMyLjAwMCBDIDE1Mi42NzQgMjMzLjY1MCwxNTIuMjI4IDIzNy4yNTAsMTUxLjk5NiAyNDAuMDAwIEMgMTUxLjc2NCAyNDIuNzUwLDE1MS4zOTkgMjQ1LjcyMCwxNTEuMTg1IDI0Ni42MDAgQyAxNTAuMTI5IDI1MC45NDcsMTUwLjIxMCAyNTguNjg0LDE1MS4zMjkgMjYwLjI5MCBDIDE1My4zMDQgMjYzLjEyNiwxOTkuMjkzIDMwOC42NjcsMjAxLjA4NCAzMDkuNTYwIEMgMjAzLjM5NyAzMTAuNzEzLDIwNS42NDggMzEwLjUzOCwyMTQuNDAwIDMwOC41MjIgQyAyMTUuODMwIDMwOC4xOTIsMjE4LjA4MCAzMDcuNjkwLDIxOS40MDAgMzA3LjQwNiBDIDIyMC43MjAgMzA3LjEyMSwyMjIuMzQwIDMwNi42OTQsMjIzLjAwMCAzMDYuNDU3IEMgMjIzLjY2MCAzMDYuMjIwLDIyNS45OTkgMzA1LjQ2NSwyMjguMTk4IDMwNC43ODAgQyAyMzAuMzk3IDMwNC4wOTUsMjMyLjM3NyAzMDMuMzk0LDIzMi41OTggMzAzLjIyMyBDIDIzMi44MTkgMzAzLjA1MSwyMzMuNTQwIDMwMi43ODUsMjM0LjIwMCAzMDIuNjMyIEMgMjM1LjUwOCAzMDIuMzI4LDIzNi45MzEgMzAxLjcwMCwyNDMuMDAwIDI5OC43NTAgQyAyNDcuMDkzIDI5Ni43NjEsMjUxLjcyOCAyOTQuMzM0LDI1Mi44MDAgMjkzLjYxOSBDIDI1My4xMzAgMjkzLjM5OSwyNTUuNTYwIDI5MS43ODEsMjU4LjIwMCAyOTAuMDIzIEMgMjY3Ljg2OSAyODMuNTg2LDI2OS4zMzYgMjgyLjI1NiwyOTQuNjMwIDI1Ny4wMDAgQyAzMTYuNjkzIDIzNC45NjksMzE2LjM1MCAyMzUuMzUwLDMxOC4wMjIgMjMxLjAwOCBDIDMyMS4wMjIgMjIzLjIxOCwzMTguMjM4IDIxNC42MzMsMzExLjAxNSAyMDkuNDAwIEMgMzA4LjIxMCAyMDcuMzY4LDMwOC4zMjkgMjA3Ljc0MSwzMDkuNDE1IDIwNC40MDAgQyAzMTEuMDYzIDE5OS4zMjcsMzEwLjM4OSAxOTIuNDAzLDMwNy45NDAgMTg5LjI0NiBDIDMwNy41MzMgMTg4LjcyMSwzMDcuMjAwIDE4OC4xNTMsMzA3LjIwMCAxODcuOTg0IEMgMzA3LjIwMCAxODcuMTI1LDMwMi41OTkgMTgzLjA1MiwzMDAuMjAwIDE4MS43ODggQyAyOTkuMjc0IDE4MS4zMDAsMjk5LjMyMCAxNzkuOTk5LDMwMC4zMTkgMTc4LjQ3NSBDIDMwMC44MTggMTc3LjcxMywzMDAuOTYzIDE3Ni40NDQsMzAwLjk2MyAxNzIuODQwIEwgMzAwLjk2MyAxNjguMTg4IDI5OS4yMjcgMTY0LjcwMSBDIDI5NC45MDIgMTU2LjAxMiwyODYuNTUyIDE1Mi4zNjQsMjc3LjAyMSAxNTUuMDAwIEMgMjc1LjA1MiAxNTUuNTQ1LDI3My4zNDIgMTU1LjgzNSwyNzMuMjIxIDE1NS42NDUgQyAyNjguNzk3IDE0OC43MTksMjY0LjAxNyAxNDUuODU5LDI1Ni42MDAgMTQ1LjcwMiBDIDI1Mi40NTYgMTQ1LjYxMywyNTEuNjA5IDE0NS43MDcsMjUwLjQwMCAxNDYuMzgzIE0xNjIuNjAwIDE0OS4yMjEgQyAxNjEuOTQwIDE0OS40MDgsMTYwLjQ2NSAxNDkuODI3LDE1OS4zMjEgMTUwLjE1MiBDIDE1Ni43NTkgMTUwLjg4MSwxNTIuNDAwIDE1Mi44NTMsMTUyLjQwMCAxNTMuMjgzIEMgMTUyLjQwMCAxNTMuNDU3LDE1Mi4yMDggMTUzLjYwMCwxNTEuOTczIDE1My42MDAgQyAxNTAuOTY4IDE1My42MDAsMTQ3LjE1NSAxNTYuOTY2LDE0My42NzcgMTYwLjkyNCBDIDE0Mi4yNzggMTYyLjUxNSwxMzguODA0IDE2OC45NzMsMTM4Ljc5NSAxNjkuOTk2IEMgMTM4Ljc5MiAxNzAuMzI4LDEzOC40MzIgMTcxLjc0MSwxMzcuOTk1IDE3My4xMzYgQyAxMzYuMDIyIDE3OS40MjgsMTM3LjU3MyAxODQuNDk0LDE0MS43OTYgMTg1LjU1NyBDIDE0Ni42NTIgMTg2Ljc4MCwxNDkuMjc3IDE4My44ODUsMTUwLjI0OCAxNzYuMjM3IEMgMTUxLjE1NiAxNjkuMDc2LDE1Ny44MDkgMTYyLjczOCwxNjUuNjAwIDE2MS42MTIgQyAxNzEuMjkxIDE2MC43ODksMTczLjEzMyAxNTkuNjk1LDE3My45OTIgMTU2LjYyOCBDIDE3NS41NDIgMTUxLjA5MSwxNjkuNjE1IDE0Ny4yMzgsMTYyLjYwMCAxNDkuMjIxIE0yNTkuMTk0IDE1OC43MDEgQyAyNjAuNzY4IDE1OS40OTAsMjYyLjM4MyAxNjIuMDIxLDI2Mi4zOTMgMTYzLjcxMyBDIDI2Mi40MDkgMTY2LjM5NywyNjEuMzA2IDE2Ny42NjUsMjQyLjg0MCAxODYuMjAwIEMgMjMyLjc1NyAxOTYuMzIwLDIyNC4yMTMgMjA1LjA0NSwyMjMuODU0IDIwNS41ODkgQyAyMjIuMTExIDIwOC4yMjYsMjIzLjQ5NyAyMTIuNDA4LDIyNi42MzQgMjEzLjk3NCBDIDIzMC42OTggMjE2LjAwNCwyMzAuMDAyIDIxNi41NTgsMjU2LjAwMCAxOTAuNjI2IEMgMjgwLjU3NyAxNjYuMTEzLDI3OS44MTAgMTY2LjgwMCwyODIuNjAwIDE2Ni44MDAgQyAyODUuNTQxIDE2Ni44MDAsMjg3LjQyMSAxNjguMjMzLDI4OC40MTAgMTcxLjIzMCBDIDI4OS40ODUgMTc0LjQ4OCwyODkuNjkzIDE3NC4yNDEsMjY0LjU5MyAxOTkuMzYxIEMgMjQ0LjQwMyAyMTkuNTY1LDI0MS41OTkgMjIyLjUxOSwyNDEuMTk5IDIyNC4wMDMgQyAyMzkuODMzIDIyOS4wNzUsMjQzLjIwNCAyMzIuNjc4LDI0OC40ODEgMjMxLjc4NiBDIDI1MC4wNDUgMjMxLjUyMiwyNTEuNDcyIDIzMC4xOTUsMjY5LjE3MiAyMTIuNTM1IEMgMjc5LjYyOCAyMDIuMTAzLDI4OC43MTAgMTkzLjMwNCwyODkuMzUzIDE5Mi45ODQgQyAyOTMuMzY3IDE5MC45ODEsMjk3LjYwMCAxOTMuODQ0LDI5Ny42MDAgMTk4LjU2MSBMIDI5Ny42MDAgMjAxLjM2NCAyNzguNzExIDIyMC4yODEgQyAyNTkuNzk2IDIzOS4yMjMsMjU4LjAwNiAyNDEuMjE2LDI1OC4wMDIgMjQzLjM0MCBDIDI1Ny45OTQgMjQ3LjkwMSwyNjMuOTg0IDI1MS40MTUsMjY3LjMwOSAyNDguODAwIEMgMjY3Ljg2OSAyNDguMzYwLDI2OC40MTEgMjQ4LjAwMCwyNjguNTE0IDI0OC4wMDAgQyAyNjguNjE3IDI0OC4wMDAsMjc0Ljg4OSAyNDEuNzc5LDI4Mi40NTEgMjM0LjE3NiBDIDI5OC45MDEgMjE3LjYzNSwyOTkuMjQxIDIxNy4zOTQsMzAzLjIzNSAyMTkuNDE4IEMgMzA2LjQwMiAyMjEuMDIyLDMwNy40NjkgMjI0LjAxMiwzMDYuMDM4IDIyNy4yNjcgQyAzMDUuMjA1IDIyOS4xNjIsMjY3Ljk0NyAyNjYuNTk2LDI2MS44MDAgMjcxLjcxNCBDIDI2MC4wNDAgMjczLjE4MCwyNTguMzI5IDI3NC42MDksMjU3Ljk5NyAyNzQuODkwIEMgMjU2LjU5NiAyNzYuMDc1LDI1MC4wMDUgMjgwLjgwMCwyNDkuNzUyIDI4MC44MDAgQyAyNDkuNjAwIDI4MC44MDAsMjQ4LjkxOSAyODEuMjA5LDI0OC4yMzggMjgxLjcxMCBDIDI0Ny41NTcgMjgyLjIxMCwyNDYuMDEwIDI4My4xNDgsMjQ0LjgwMCAyODMuNzkzIEMgMjQzLjU5MCAyODQuNDM4LDI0MS44ODAgMjg1LjM3NSwyNDEuMDAwIDI4NS44NzYgQyAyNDAuMTIwIDI4Ni4zNzcsMjM4Ljk4NiAyODYuOTY5LDIzOC40ODAgMjg3LjE5MSBDIDIzNi4wODkgMjg4LjI0MiwyMzIuOTM4IDI4OS42ODMsMjMyLjM3MiAyODkuOTgzIEMgMjI5LjIxNiAyOTEuNjYwLDIxOS4yOTggMjk0LjgxNCwyMTQuMDAwIDI5NS44MjYgQyAyMTIuMzUwIDI5Ni4xNDEsMjEwLjU1MCAyOTYuNTcyLDIxMC4wMDAgMjk2Ljc4MyBDIDIwOS40NTAgMjk2Ljk5NCwyMDguMzIwIDI5Ny4yODYsMjA3LjQ4OSAyOTcuNDMwIEwgMjA1Ljk3NyAyOTcuNjkzIDE4NC44NTcgMjc2LjU0NyBDIDE2NC41NjkgMjU2LjIzNCwxNjIuOTk3IDI1NC41NDQsMTYzLjE0MSAyNTMuMjAwIEMgMTYzLjE3NyAyNTIuODcwLDE2My40NzEgMjQ5Ljk5MCwxNjMuNzk1IDI0Ni44MDAgQyAxNjQuNDI5IDI0MC41NjQsMTY0Ljg5NCAyMzYuNzI4LDE2NS44NTggMjI5LjgwMCBDIDE2Ni4xOTQgMjI3LjM4MCwxNjYuNzA1IDIyMi45NTMsMTY2Ljk5MyAyMTkuOTYzIEMgMTY3LjI4MSAyMTYuOTczLDE2Ny43MDQgMjEzLjU1MywxNjcuOTM0IDIxMi4zNjMgQyAxNjguMTYzIDIxMS4xNzMsMTY4LjQ2MCAyMDguNzYwLDE2OC41OTQgMjA3LjAwMCBDIDE2OC43MjkgMjA1LjI0MCwxNjkuMDkzIDIwMi4zNjAsMTY5LjQwNCAyMDAuNjAwIEMgMTY5LjcxNCAxOTguODQwLDE3MC4xNTMgMTk1LjI0MCwxNzAuMzc4IDE5Mi42MDAgQyAxNzEuMTY4IDE4My4zMjQsMTcxLjgxOCAxODEuNDE3LDE3NC43NDkgMTc5Ljc3OSBDIDE3Ni45MTQgMTc4LjU2OSwxNzcuNzYxIDE3OC41NTYsMTc5Ljg3NyAxNzkuNzAwIEMgMTgzLjUzNyAxODEuNjgwLDE4My4zNzMgMTgwLjgyOSwxODMuNjAwIDE5OC45OTAgTCAxODMuODAwIDIxNS4wMDAgMTg0LjkxNSAyMTYuNDU4IEMgMTg2LjQ0OSAyMTguNDYzLDE4OC44MTYgMjE5LjIzNywxOTEuNDA1IDIxOC41ODAgQyAxOTMuMTg3IDIxOC4xMjcsMTk1LjA2NSAyMTYuMzM2LDIyMi45NTAgMTg4LjQ5MiBDIDI0MS44NDggMTY5LjYyMywyNTMuMDM1IDE1OC43MzcsMjUzLjgwMCAxNTguNDc1IEMgMjU1LjYzOCAxNTcuODQ0LDI1Ny42NTUgMTU3LjkyOSwyNTkuMTk0IDE1OC43MDEgTTI5MS4wMDAgMjc0LjA4NCBDIDI4OC4zMDQgMjc1LjAyOSwyODcuMTI3IDI3Ny4xNDcsMjg2LjM3OCAyODIuNDAwIEMgMjg1LjU5OSAyODcuODYxLDI4MS4wNjkgMjk0LjczMSwyNzcuNTM2IDI5NS44MDkgQyAyNzcuMDIxIDI5NS45NjYsMjc2LjMwNCAyOTYuMzU0LDI3NS45NDMgMjk2LjY3MSBDIDI3NS41ODEgMjk2Ljk4OCwyNzMuNjkxIDI5Ny41MDAsMjcxLjc0MyAyOTcuODEwIEMgMjY0LjgxOCAyOTguOTExLDI2My41ODMgMjk5LjYxNCwyNjIuNDI5IDMwMy4xMTIgQyAyNjAuNjk1IDMwOC4zNjYsMjY2LjYwNCAzMTIuMjMxLDI3My42MDAgMzEwLjQxOCBDIDI3OC43MzEgMzA5LjA4OSwyODEuNjgwIDMwNy45MTAsMjg0LjQzNiAzMDYuMDg2IEMgMjg1LjAwNiAzMDUuNzA5LDI4Ni4xNzYgMzA0LjkzMSwyODcuMDM2IDMwNC4zNTcgQyAyODguMzY3IDMwMy40NjksMjg5Ljc4NSAzMDIuMDI4LDI5My4zOTMgMjk3Ljg5NiBDIDI5NC40OTkgMjk2LjYyOSwyOTcuMTkxIDI5MS4xMzcsMjk3LjgyOSAyODguODQ0IEMgMjk5LjA3NCAyODQuMzcyLDI5OS4xODEgMjgzLjc1NiwyOTkuMTkwIDI4MS4wNDIgQyAyOTkuMjA5IDI3NS42OTgsMjk1LjQ2NyAyNzIuNTE4LDI5MS4wMDAgMjc0LjA4NCBNMzE1LjgwMCAyNzQuMDcxIEMgMzEyLjgzMCAyNzUuMTQ0LDMxMS44MjkgMjc3LjI2NSwzMTEuMjEyIDI4My44MDAgQyAzMDkuMjM5IDMwNC42OTEsMjkzLjI0NCAzMjAuNzU4LDI3Mi40MDAgMzIyLjc4OSBDIDI2NS4wNDIgMzIzLjUwNiwyNjMuNjQ3IDMyNC4yMjMsMjYyLjQyOSAzMjcuOTEyIEMgMjYwLjQ3OSAzMzMuODIyLDI2Ny4wNzcgMzM3LjEwMiwyNzYuNjAwIDMzNC45NTUgQyAyNzguMTQwIDMzNC42MDgsMjgwLjIxMCAzMzQuMTc4LDI4MS4yMDAgMzM0LjAwMSBDIDI4My4zOTggMzMzLjYwNywyODcuNjI3IDMzMi4yMjEsMjg5LjgyNiAzMzEuMTc0IEMgMjkwLjcyMSAzMzAuNzQ4LDI5MS42NDQgMzMwLjQwMCwyOTEuODc3IDMzMC40MDAgQyAyOTIuMTExIDMzMC40MDAsMjkyLjUxMSAzMzAuMTQ4LDI5Mi43NjcgMzI5LjgzOSBDIDI5My4wMjMgMzI5LjUzMSwyOTMuNjcxIDMyOS4xNjksMjk0LjIwNiAzMjkuMDM0IEMgMjk5Ljk0NSAzMjcuNTk0LDMxNS40NzQgMzEyLjEzNiwzMTcuNDIwIDMwNS45MjUgQyAzMTcuNTgwIDMwNS40MTYsMzE4LjA0NSAzMDQuNTcxLDMxOC40NTUgMzA0LjA0NiBDIDMxOC44NjUgMzAzLjUyMSwzMTkuMjAwIDMwMi43OTYsMzE5LjIwMCAzMDIuNDM1IEMgMzE5LjIwMCAzMDIuMDc0LDMxOS40MzggMzAxLjQyMywzMTkuNzI5IDMwMC45ODkgQyAzMjEuNDI3IDI5OC40NTUsMzIzLjU3NiAyODkuMDA5LDMyMy44NjggMjgyLjgwMCBMIDMyNC4wODQgMjc4LjIwMCAzMjIuODI5IDI3Ni40ODUgQyAzMjEuMTIzIDI3NC4xNTUsMzE4LjI3NiAyNzMuMTc3LDMxNS44MDAgMjc0LjA3MSAiCmZpbGw9IndoaXRlIj48L3BhdGg+Cjwvc3ZnPg==\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyMiAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTExIDEzLjAyMzRDMTcgMTMuMDIzNCAyMS4xMTcyIDguMTc5NjkgMjEuMTE3MiA2LjY3MTg4QzIxLjExNzIgNS4xNTYyNSAxNi45OTIyIDAuMzIwMzEyIDExIDAuMzIwMzEyQzUuMDg1OTQgMC4zMjAzMTIgMC44ODI4MTIgNS4xNTYyNSAwLjg4MjgxMiA2LjY3MTg4QzAuODgyODEyIDguMTc5NjkgNS4wNzgxMiAxMy4wMjM0IDExIDEzLjAyMzRaTTExIDExLjc3MzRDNi4xNzk2OSAxMS43NzM0IDIuMzA0NjkgNy43MTA5NCAyLjMwNDY5IDYuNjcxODhDMi4zMDQ2OSA1Ljc5Njg4IDYuMTc5NjkgMS41NzAzMSAxMSAxLjU3MDMxQzE1LjgwNDcgMS41NzAzMSAxOS42OTUzIDUuNzk2ODggMTkuNjk1MyA2LjY3MTg4QzE5LjY5NTMgNy43MTA5NCAxNS44MDQ3IDExLjc3MzQgMTEgMTEuNzczNFpNMTEgMTAuNzU3OEMxMy4yNzM0IDEwLjc1NzggMTUuMDkzOCA4Ljg5ODQ0IDE1LjA5MzggNi42NzE4OEMxNS4wOTM4IDQuMzkwNjIgMTMuMjczNCAyLjU4NTk0IDExIDIuNTg1OTRDOC43MTg3NSAyLjU4NTk0IDYuODkwNjIgNC4zOTA2MiA2Ljg5ODQ0IDYuNjcxODhDNi45MDYyNSA4Ljg5ODQ0IDguNzE4NzUgMTAuNzU3OCAxMSAxMC43NTc4Wk0xMSA4LjAxNTYyQzEwLjI1IDguMDE1NjIgOS42NDA2MiA3LjQwNjI1IDkuNjQwNjIgNi42NzE4OEM5LjY0MDYyIDUuOTI5NjkgMTAuMjUgNS4zMjgxMiAxMSA1LjMyODEyQzExLjc0MjIgNS4zMjgxMiAxMi4zNTE2IDUuOTI5NjkgMTIuMzUxNiA2LjY3MTg4QzEyLjM1MTYgNy40MDYyNSAxMS43NDIyIDguMDE1NjIgMTEgOC4wMTU2MloiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPg==\"","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/area-19030b15bdae85ca11cda6b2d4f837b4.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/area-17740923a7efa980d932f07160893a2a.webp\";","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTciIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNyAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTMuODkyNTggNC4wMDA5OEw0LjgwOTkgMTQuMDkxNUM0Ljg1NjcyIDE0LjYwNjYgNS4yODg1OSAxNS4wMDEgNS44MDU3OSAxNS4wMDFIMTEuOTc5NEMxMi40OTY2IDE1LjAwMSAxMi45Mjg0IDE0LjYwNjYgMTIuOTc1MyAxNC4wOTE1TDEzLjg5MjYgNC4wMDA5OE0xLjg5MjU4IDQuMDAwOThIOC44OTI1OEgxNS44OTI2TTUuODkyNTggNC4wMDA5OFYyLjAwMDk4QzUuODkyNTggMS40NDg2OSA2LjM0MDI5IDEuMDAwOTggNi44OTI1OCAxLjAwMDk4SDEwLjg5MjZDMTEuNDQ0OSAxLjAwMDk4IDExLjg5MjYgMS40NDg2OSAxMS44OTI2IDIuMDAwOThWNC4wMDA5OE04Ljg5MjU4IDguMDAwOThWMTEuMDAxIiBzdHJva2U9IiNDRUNFQ0UiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=\"","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/entrance-4eced2df29a16cf04ac2289bc129a06e.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/entrance-ea5218c8a585959a61ffdb4e62419471.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/flat-eef5f51ad8f89be7ccd54a8886df50ef.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/flat-d41759b4759dbe4a5ceee209fd5fc31c.webp\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/home-04ddd1d1d3b9267a523e9120d4f10903.png\";","module.exports = \"https://cdn-b2c.dom.ru/b2c-domru/2.358.9/frontend/_next/static/images/home-2ede597861bc518a34567e86accc8fe5.webp\";","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMiIgdmlld0JveD0iMCAwIDE0IDIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0wLjk0NDgyNCAxLjk2MTQzSDEyLjk2NDRDMTMuNDcwNyAxLjk2MTQzIDEzLjkwMjMgMS41MzgwOSAxMy45MDIzIDEuMDE1MTRDMTMuOTAyMyAwLjUwMDQ4OCAxMy40NzA3IDAuMDY4ODQ3NyAxMi45NjQ0IDAuMDY4ODQ3N0gwLjk0NDgyNEMwLjQ1NTA3OCAwLjA2ODg0NzcgMC4wMDY4MzU5NCAwLjUwMDQ4OCAwLjAwNjgzNTk0IDEuMDE1MTRDMC4wMDY4MzU5NCAxLjUzODA5IDAuNDU1MDc4IDEuOTYxNDMgMC45NDQ4MjQgMS45NjE0M1oiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTYuOTU0NTkgMTUuMDc5MUM3LjQ3NzU0IDE1LjA3OTEgNy45MDA4OCAxNC42NDc1IDcuOTAwODggMTQuMTU3N1Y4Ljk2MTQzSDEyLjk2NDRDMTMuNDcwNyA4Ljk2MTQzIDEzLjkwMjMgOC41MzgwOSAxMy45MDIzIDguMDE1MTRDMTMuOTAyMyA3LjUwMDQ5IDEzLjQ3MDcgNy4wNjg4NSAxMi45NjQ0IDcuMDY4ODVINy45MDA4OFYxLjg3MjU2QzcuOTAwODggMS4zNzQ1MSA3LjQ3NzU0IDAuOTUxMTcyIDYuOTU0NTkgMC45NTExNzJDNi40Mzk5NCAwLjk1MTE3MiA2LjAwODMgMS4zNzQ1MSA2LjAwODMgMS44NzI1NlY3LjA2ODg1SDAuOTQ0ODI0QzAuNDU1MDc4IDcuMDY4ODUgMC4wMDY4MzU5NCA3LjUwMDQ5IDAuMDA2ODM1OTQgOC4wMTUxNEMwLjAwNjgzNTk0IDguNTM4MDkgMC40NTUwNzggOC45NjE0MyAwLjk0NDgyNCA4Ljk2MTQzSDYuMDA4M1YxNC4xNTc3QzYuMDA4MyAxNC42NDc1IDYuNDM5OTQgMTUuMDc5MSA2Ljk1NDU5IDE1LjA3OTFaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMjciIHZpZXdCb3g9IjAgMCAxNSAyNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjE0MjYgMjUuMTk5N0wxLjE0MjU4IDEzLjE5OTdMMTMuMTQyNiAxLjE5OTcxIiBzdHJva2U9IiMxYTFhMWEiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPg==\""],"names":["window","__NEXT_P","push","initialPopupState","isResultOpened","resultTitle","resultText","resultType","EResultPopupStatus","STATE_DEFAULT_INPUTS","value","isValid","clearInput","getResultData","state","getCamera","cameras","Array","Object","values","length","map","data","key","cp","installLocation","priceTotal","p","name","id","pr","priceMonth","ot","operType","ld","service","pn","plan","pp","oldPrice","vn","subService","vp","planOption","ct","count","selectPrice","isPerMonth","withOutSale","injector","totalPrice","forEach","camera","priceMonthWithCount","priceTotalWithCount","Number","selectTotalPrice","RequisitionContext","createContext","useRequisitionContext","useContext","InputPhoneDecorator","phoneDecorator","InputSimple","InputNameDecorator","nameDecorator","CommonInputCss","css","COLORS","FormContainer","styled","BorderRadius","wideBreakpoints","TitleWrap","SubText","FONTS","Title","InputsWrap","LegalWrap","ButtonContainer","ButtonWrap","BaseButton","disabled","InputPhone","InputName","FeedbackForm","isAuth","agreement","csrf","useSelector","selectCsrf","useState","phone","setPhone","setName","setValid","isLoading","setIsLoading","popup","setPopup","beenStarted","setDataLayer","setResetAllDispatch","useMemo","keys","labelsCameras","getLabelsCameras","onChangeHandlerInput","stateInput","_setState","dataLayerForCBPhonePush","action","ACTIONS","option","type","uid","useEffect","closePopup","useCallback","prevState","openPopupResult","result","message","getPopupResultData","onSubmit","params","resp","status","fio","product_id","EProductsId","check_call_type","location","href","doRequest","requestByConnection","isSuccess","payload","buttonText","ST","onChange","errorMessage","placeholder","className","PolicyNote","agreeUrl","POLICY_PAGE_LINK","text","btnTypes","onClick","PopupResult","isOpen","onClose","title","resetStyleButton","Container","ShopTitle","ProductName","DeleteButton","bin","ProductNameWrap","WrapSubService","SubService","Service","PriceWrap","Price","OldPrice","ServiceWrap","Counter","isDisabled","Plus","plus","Minus","minus","CountValue","CounterWrap","RequestPoint","withCounter","onDeleteHandler","decrementCameraCountDispatch","incrementCameraCountDispatch","currencyType","data-test","incrementCameraHandler","ServiceConnect","PriceConnect","TotalPoint","totalPriceMonth","selectTotalPriceMonth","totalPriceWithOutSale","selectTotalPriceWithOutSale","CartContainer","ContentContainer","ShopListContainer","TitleList","ShopListContent","ShopList","Cart","resetCamerasDispatch","removeCameraDispatch","setPlanDispatch","setOptionDispatch","camerasArray","faqData","question","NBSP","answer","LAQUO","RAQUO","MDASH","videocontrolAdvantagesTabs","leftText","rightText","videocontrolInsideData","bgImageXXL","require","bgImageXL","bgImageL","bgImageM","bgImageS","bgImageXXLWebp","bgImageXLWebp","bgImageLWebp","bgImageMWebp","bgImageSWebp","isHigher","videocontrolOutsideData","isLaptopImage","headerItems","icon","headerPictures","png","webp","featuresData","ELocation","flat","entrance","area","home","ELocationOuter","locationForReducer","dataLocationFlat","imgPng","imgWebP","subText","dataLocationHome","dataCameraPlans","panelText","propsText","price","injectorData","dataTabsForLoc","dataLocation","TYPE_OF_BUY","CameraCard","product","activeTabLocation","addCameraDispatch","cameraType","isArray","props","ProductCard","image","imageWebp","image_webp","categoryTitle","categoryName","category","shortName","title_short","description","body","backgroundColorData","bgImg","bgCard","priceOptions","getPriceOptions","convertShopPrices","orderText","isDarkTheme","detailHandler","options","selectedOption","label","getPayload","EMediaWidth","dataMaxCountSlides","LocationTab","isActive","Image","LazyLoadImage","TextBlock","Subtext","SIZE_IMG","LocationTabsBlock","setActiveTab","activeTab","elem","WebpImage","urlWebp","src","alt","width","height","SWideContainer","WideContainer","CartWrapper","SWideContainerHeader","pngImg","webpImg","useProgressiveImage","hasTimeout","timeoutDelay","BlockWrapper","WrapperMain","WrapperMainGray","BlockTitle","customDotsStyles","dot","background","opacity","activeDot","NukaContainer","widthCard","NukaWrapper","dataLength","Card","domain","isDesktop","useMatchMedia","desktop","isSDesktop","sDesktop","isLaptop","laptop","isMobile","mobile","isClientSide","onClientSide","setOnClientSide","countSlides","cardsComponent","dataTestType","NukaCarousel","withoutArrows","wrapAround","slidesToShow","getPriceForInjector","includes","PlankWrap","UnorderedList","Hr","List","Plank","BottomWrap","Button","PlanCard","formattedProduct","currentCity","selectCurrentCityDomain","labelText","undefined","labelColor","Label","bgColor","textColor","cameraPlanFifty","dataLayerPush","event","EVENTS","CATEGORIES","StepText","Step","StepTitle","children","stepText","step","StepContainer","StepsInstall","forwardRef","ref","activeTabToggleLoc","setActiveTabToggleLoc","setActiveTabLocation","currentLocationData","setCurrentLocationData","flatAndHome","videoCamerasData","setVideoCamerasData","accessToken","auth","providerId","selectProviderId","videoCamerasDataAll","currentCamerasData","items","videoCamerasDataUpdated","getVideocontrolItems","reduce","acc","item","Toggle","onChangeCallback","textsValues","colorTab","isDifferentColorText","displayName","ACTIONS_TYPES","ADD_CAMERA_ITEM","REMOVE_CAMERA_ITEM","RESET_CAMERAS_ITEMS","INCREMENT_CAMERA_COUNT","DECREMENT_CAMERA_COUNT","SET_LOCATION_INSTALL","SET_PLAN","SET_OPTION","INCREMENT_CAMERA_PRICE_WITH_COUNT","DECREMENT_CAMERA_PRICE_WITH_COUNT","SET_RESET_ALL","INCREMENT_TOTAL_COUNT_CAMERAS","DECREMENT_TOTAL_COUNT_CAMERAS","RESET_TOTAL_COUNT_CAMERAS","INCREMENT_INJECTOR","DECREMENT_INJECTOR","RESET_INJECTOR","INIT_INJECTOR","removeCamera","setLocationInstall","setPlan","setOption","incrementTotalCountCameras","decrementTotalCountCameras","incrementInjector","decrementInjector","resetInjector","addCameraDispatchWrap","dispatch","totalCountCameras","resetCamerasDispatchWrap","incrementCameraCountDispatchWrap","currentCount","incrementCameraPriceWithCount","decrementCameraCountDispatchWrap","decrementCameraCount","reducer","fromEntries","entries","filter","initialState","Provider","useReducer","valueContext","removeCameraDispatchWrap","setPlanDispatchWrap","setOptionDispatchWrap","isTopText","DescriptionWrap","isMobileImage","Text","ImageWrap","isContain","NoSsrContainer","SRow","SCol","ListWrap","sDesktopSize","laptopSize","tabletSize","mobileSize","incomingData","isTablet","AdaptiveNukaCarousel","desktopSlideWidth","cellSpacing","slidesToScroll","visibleSlides","style","flexDirection","AdvantagesContainer","activeTabToggle","setActiveTabToggle","onSwitchTab","AdvantagesBlock","FeaturesBlock","ImgBlock","FeaturesContainer","videocontrolRef","handleClick","current","scrollIntoView","behavior","Wrapper","TextContainer","SubTitle","ItemsBlock","Item","IconBlock","Picture","ImageContainer","ImgStyled","slideIndex","showSlides","i","slides","document","getElementsByClassName","setTimeout","clearTimeout","index","img","dangerouslySetInnerHTML","__html","Questions","Inner","QuestionText","StyledAccordion","Accordion","questions","div","itemScope","itemType","span","itemProp","theme","useRef","clientPersonal","selectDomain","selectIsAuth","Header","Advantages","Features","VideocontrolPage","companyName","selectCompanyName","cityIn","getCurrentCityIn","Layout","withMenu","withFooter","withChat","Videocontrol","getInitialProps","initialProps","isNeedAuthData","getShopItems","token","expand","isShowAll","headers","url","prepareExpandProp","all","Authorization","accessMode","getAccessModeByRights","Boolean","retryIfParamIsLocked","contentRequest","paramsSerializer","stringify","captureException","expands","join","getRouters","EShopCategory","Routers","EExpandShopItems","Category","Props","Labels","getIntercomServices","Intercom","axiosContent","axios","baseURL","isServerSide","process","interceptors","request","use","config","cookies","ACCESS_TOKEN_COOKIE","noCacheKey","NO_CACHE_COOKIE","error","Promise","reject","create","get","CustomSwiper","defaultVisibleSlides","mobileSlideWidth","hideArrows","setHideArrows","hideDots","setHideDots","slideWidth","setSlideWidth","withoutDots","EAccessRights","UserGuest","UserAuth","PlatformSite","ConditionZasmotris","rights","right","getImage","onSuccess","onError","onload","onerror","timeout","fallbackSrc","defaultImageFallback","sourceLoaded","setSourceLoaded","useProgressiveImageWithFallbackDetection","isFallback","setIsFallback","errorEvent","setErrorEvent","toNumber","v","parseFloat","toString","replace","toCurrency","amount","x","s","d","c","n","split","pop","str","toFixed","Math","max","re","RegExp","selectHostname","pluralize","variants","abs","getVariant","getPluralize","monthPluralize","channelPluralize","dayPluralize","bonusPluralize","truncate","string","visibleLength","slice","trim","EPriceTypes","Possess","Leasing","ArrowSvg","svg","previousSlide","nextSlide","Dot","customStyles","active","DotContainer","dotContainer","activeLineAnimation","keyframes","ActiveLine","time","DotsContainer","dotsContainer","goToSlide","slideCount","currentSlide","autoplayInterval","autoplay","fill","_","getDefaultControlsContainerStyles","bottom","left","customArrow","customDots","withoutControls","pausedAutoplay","setPausedAutoplay","Arrow","CustomArrow","DefaultArrow","Dots","CustomDots","DefaultDots","swiperRef","setDimensions","handleMouseOver","handleMouseOut","onTouchStart","onTouchEnd","onMouseOver","onMouseOut","NukaSwiper","getControlsContainerStyles","renderCenterLeftControls","renderCenterRightControls","renderBottomCenterControls","StylesTab","fontSize","TabLeft","TabRight","LayoutLeft","translateValue","LayoutRight","args","translateData","isRightTabActive","onClickHandler","bordered","borderWidth","radius","padding","mobilePadding","color","simple","light","border","colorArrow","backgroundIcon","borderIcon","colorArrowIsOpen","backgroundIconIsOpen","borderIconIsOpen","storyColor","dark","AccordionTitle","desktopFont","mobileFont","Icon","open","Border","AccordionBody","DEFAULT_THEME","toggle","setState","defaultOpen","render","this","onOpen","customTheme","withDividingBorder","rest","colors","themes","ThemeProvider","viewBox","xmlns","circle","cx","cy","r","strokeWidth","transform","path","strokeMiterlimit","strokeLinecap","strokeLinejoin","React","propTypes","PropTypes","defaultProps","module","exports"],"sourceRoot":""}