{"version":3,"file":"static/chunks/pages/_site/[city]/service/contact-4dcb446531ec5987.js","mappings":"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","sources":["webpack://_N_E/?8f1a","webpack://_N_E/./src/features/contact/components/CallbackForm/styled.tsx","webpack://_N_E/./src/features/contact/components/CallbackForm/index.tsx","webpack://_N_E/./src/features/contact/constants/index.ts","webpack://_N_E/./src/features/contact/components/Header/styled.ts","webpack://_N_E/./src/features/contact/components/Content/styled.tsx","webpack://_N_E/./src/features/contact/components/Content/index.tsx","webpack://_N_E/./src/features/contact/components/Header/index.tsx","webpack://_N_E/./src/features/contact/components/Map/styled.ts","webpack://_N_E/./src/features/contact/components/Map/index.tsx","webpack://_N_E/./src/features/contact/styled.ts","webpack://_N_E/./src/features/contact/index.tsx","webpack://_N_E/./src/features/contact/constants/abnVariants.ts","webpack://_N_E/./src/features/service/Contact/styled.js","webpack://_N_E/./src/features/service/Contact/index.js","webpack://_N_E/./pages/_site/[city]/service/contact.tsx","webpack://_N_E/./src/api/content/retail-point.ts","webpack://_N_E/./src/api/requests/contentRequest.js","webpack://_N_E/../../packages/do-request/src/error/customAxiosError.ts","webpack://_N_E/../../packages/ui-react/src/components/List/WithoutPointList.tsx","webpack://_N_E/../../packages/ui-react/src/components/controls/baseSwitcher/index.tsx","webpack://_N_E/../../packages/ui-react/src/components/controls/baseSwitcher/styled.ts","webpack://_N_E/../../packages/ui-react/src/components/typography/TextWrapper/index.ts","webpack://_N_E/../../packages/ui-react/src/components/typography/controlElement/ControlElement.tsx","webpack://_N_E/../../packages/ui-react/src/components/typography/controlElement/index.tsx","webpack://_N_E/../../packages/ui-react/src/experimental/blocks/section/index.tsx","webpack://_N_E/../../packages/ui-react/src/experimental/containers/BlockContainer.tsx","webpack://_N_E/../../packages/ui-react/src/organisms/Forms/NamePhoneForm/styled.tsx","webpack://_N_E/../../packages/ui-react/src/organisms/Forms/NamePhoneForm/index.tsx","webpack://_N_E/../../node_modules/react-google-recaptcha/lib/esm/recaptcha.js","webpack://_N_E/../../node_modules/react-async-script/lib/esm/async-script-loader.js","webpack://_N_E/../../node_modules/react-google-recaptcha/lib/esm/recaptcha-wrapper.js","webpack://_N_E/../../node_modules/react-google-recaptcha/lib/esm/index.js","webpack://_N_E/../../packages/ui-react/src/assets/img/icons/locked.svg","webpack://_N_E/../../node_modules/@swc/helpers/src/_construct.mjs","webpack://_N_E/../../node_modules/@swc/helpers/src/_wrap_native_super.mjs","webpack://_N_E/../../node_modules/@swc/helpers/src/_is_native_function.mjs"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_site/[city]/service/contact\",\n function () {\n return require(\"private-next-pages/_site/[city]/service/contact.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_site/[city]/service/contact\"])\n });\n }\n ","import styled from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { NamePhoneForm } from '@r1-frontend/ui-react/organisms/Forms/NamePhoneForm';\n\nexport const SNamePhoneForm = styled(NamePhoneForm)`\n > div > button {\n width: 100%;\n min-width: 164px;\n }\n \n @media (max-width: ${wideBreakpoints.mobile}) {\n width: 100%;\n }\n`;\n","import { ReactNode, useState } from 'react';\n\nimport { doRequest } from '@r1-frontend/do-request/index';\nimport { backCall } from '@r1-frontend/api-domru/core-requests/api/v1/call/back';\n\nimport { btnTypes } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport PopupResult, { EResultPopupStatus } from '@r1-frontend/ui-react/components/popups/popupResult';\nimport { ISubmitParams, TField } from '@r1-frontend/ui-react/organisms/Forms/NamePhoneForm';\nimport { ACTIONS } from '@r1-frontend/shared/constants/analytics';\nimport { useMatchMedia } from '@r1-frontend/shared/hooks/useMatchMedia';\n\nimport { POLICY_PAGE_LINK } from '~/src/constants';\nimport { dataLayerForCBPhonePush } from '~/src/helpers/eventsForDataLayer';\n\nimport * as ST from './styled';\n\nconst CALLBACK_LABEL = 'Получить консультацию';\n\ninterface IResult {\n ok: boolean,\n message: string,\n}\n\nconst defaultResult: IResult = {\n ok: false,\n message: '',\n};\n\ninterface IProps {\n children: ReactNode,\n}\n\nconst CallbackForm = ({ children }: IProps) => {\n const isMobile = useMatchMedia(`(max-width: ${wideBreakpoints.mobile})`);\n\n const [isLoading, setIsLoading] = useState(false);\n const [result, setResult] = useState(defaultResult);\n const [isStartInput, setIsStartInput] = useState(false);\n\n const handleResult = (res: IResult) => {\n setResult(() => res);\n dataLayerForCBPhonePush({\n action: result.ok ? ACTIONS.startedService : ACTIONS.errorService,\n option: CALLBACK_LABEL,\n });\n };\n\n const cleanUp = (name: TField, phone: TField) => {\n name.clearInput();\n phone.clearInput();\n name.isValid = false;\n phone.isValid = false;\n setIsStartInput(false);\n setIsLoading(false);\n };\n\n const handleSubmit = async(params?: ISubmitParams) => {\n if (!params) {\n return;\n }\n\n setIsLoading(true);\n const { name, phone } = params;\n const resp = await doRequest.coreRequests(\n backCall({\n phoneNumber: phone.value,\n }),\n );\n\n if (resp.isSuccess) {\n handleResult({\n ok: true,\n message: 'Заявка успешно создана.',\n });\n } else {\n handleResult({\n ok: false,\n message: 'Не удалось отправить заявку. Пожалуйста, попробуйте еще раз.',\n });\n }\n\n cleanUp(name, phone);\n };\n\n const handleChange = (inputState: TField) => {\n if (!isStartInput && inputState.value !== undefined) {\n dataLayerForCBPhonePush({\n action: ACTIONS.startedService,\n option: CALLBACK_LABEL,\n });\n setIsStartInput(true);\n }\n };\n\n const handleClosePopup = () => {\n setResult(() => defaultResult);\n };\n\n return (\n <>\n {children}\n \n \n \n );\n};\n\nexport default CallbackForm;\n","import odnoklassniki from '@r1-frontend/ui-react/organisms/Footer/components/icons/odnoklassniki.svg';\nimport telegram from '@r1-frontend/ui-react/organisms/Footer/components/icons/telegram.svg';\nimport vkontakte from '@r1-frontend/ui-react/organisms/Footer/components/icons/vkontakte.svg';\n\nexport const SOCIALS = [\n { link: 'https://vk.com/domru', background: 'white', img: vkontakte },\n { link: 'https://ok.ru/domru', background: 'white', img: odnoklassniki },\n { link: 'https://t.me/domru_official', background: 'white', img: telegram },\n];\n\nexport const APP_IMG_SRC = '/static/images/service/contact/app-desktop';\n","import styled from 'styled-components';\n\nimport WideContainer, { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { H1 } from '@r1-frontend/ui-react/components/typography/heading';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nexport const Header = styled.section`\n overflow: hidden;\n width: 100%;\n background-color: #EBF5F8;\n margin-bottom: 60px;\n max-height: 406px; \n\n @media (max-width: ${wideBreakpoints.laptop}) {\n margin-bottom: 40px;\n }\n \n @media (max-width: ${wideBreakpoints.tablet}) {\n margin-bottom: 33px;\n max-height: none; \n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n margin-bottom: 38px;\n }\n`;\n\nexport const ImageWrapper = styled.div`\n position: relative;\n height: 406px; \n width: auto;\n flex-grow: 1;\n\n img, picture {\n position: absolute;\n display: flex;\n height: 100%;\n width: auto;\n }\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n height: 302px;\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n height: auto;\n margin: 0 -16px;\n width: calc(100% + 32px);\n \n img, picture {\n position: static;\n height: auto;\n width: 100%;\n }\n }\n`;\n\nexport const Container = styled(WideContainer)`\n @media (max-width: ${wideBreakpoints.laptop}) {\n width: 100%;\n }\n`;\n\nexport const Title = styled(H1)`\n margin: 0;\n margin-bottom: 0;\n margin-right: 177px;\n width: 600px;\n padding-top: 92px;\n padding-bottom: 110px;\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n margin-right: 0;\n }\n \n @media (max-width: ${wideBreakpoints.tablet}) {\n padding-top: 82px;\n padding-bottom: 100px;\n width: 328px;\n ${FONTS.H2}\n }\n \n @media (max-width: ${wideBreakpoints.mobile}) {\n width: 100%;\n padding-top: 32px;\n padding-bottom: 28px;\n order: 2;\n }\n`;\n","import styled from 'styled-components';\n\nimport Social from '@r1-frontend/ui-react/components/buttons/social';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport ControlElement from '@r1-frontend/ui-react/components/typography/controlElement';\nimport { Paragraph4 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport TextWrapper from '@r1-frontend/ui-react/components/typography/TextWrapper';\nimport { BlockContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nexport const Grid = styled.div`\n display: grid;\n grid-template-columns: repeat(12, 1fr);\n grid-template-rows: auto;\n gap: 32px;\n width: 100%;\n \n @media ((max-width: ${wideBreakpoints.sDesktop}) and (min-width: ${wideBreakpoints.laptop})) {\n grid-template-rows: minmax(166px, max-content);\n }\n \n @media (max-width: ${wideBreakpoints.mobile}) {\n gap: 24px;\n }\n`;\n\nexport const Support = styled(BlockContainer)`\n grid-column: 1 / span 3;\n grid-row: 1 / 1;\n flex-direction: column;\n align-items: flex-start;\n\n @media (max-width: ${wideBreakpoints.sDesktop}) {\n grid-column: 1 / span 4;\n }\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n grid-column: 1 / span 6;\n }\n \n @media (max-width: ${wideBreakpoints.mobile}) {\n grid-column: 1 / -1;\n }\n`;\n\nexport const Socials = styled(BlockContainer)`\n grid-column: 4 / span 3;\n grid-row: 1 / 1;\n flex-direction: column;\n\n @media (max-width: ${wideBreakpoints.sDesktop}) {\n grid-column: 1 / span 4;\n grid-row: 2 / span 1;\n }\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n grid-column: 7 / -1;\n grid-row: 1 / 1;\n }\n \n @media (max-width: ${wideBreakpoints.mobile}) {\n grid-column: 1 / -1;\n grid-row: 2 / span 1;\n }\n`;\n\nexport const Callback = styled(BlockContainer)`\n grid-column: 1 / span 6;\n grid-row: 2 / span 1;\n\n @media (max-width: ${wideBreakpoints.sDesktop}) {\n grid-column: 1 / -1;\n grid-row: auto;\n }\n`;\n\nexport const App = styled(BlockContainer)`\n position: relative;\n grid-column: 7 / -1;\n grid-row: 1 / span 2;\n min-height: 364px;\n\n @media (max-width: ${wideBreakpoints.sDesktop}) {\n grid-column: 5 / -1;\n grid-row: 1 / span 2;\n }\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n grid-column: 1 / -1;\n grid-row: 2 / auto;\n }\n \n @media (max-width: ${wideBreakpoints.mobile}) {\n grid-row: auto;\n padding-bottom: 248px;\n }\n`;\n\nexport const SControlElement = styled(ControlElement)`\n transition: color 0.25s;\n\n &:hover {\n color: ${COLORS.ButtonAccent};\n }\n`;\n\nexport const SocialsList = styled(Social)`\n column-gap: 8px;\n li > a {\n width: 40px;\n height: 40px;\n padding: 3px;\n opacity: 1;\n &:hover {\n background-color: ${COLORS.Outline_Light};\n }\n }\n \n li > a > img {\n width: 33px;\n height: 33px;\n max-width: 100%;\n max-height: 100%;\n }\n`;\n\nexport const ImageWrapper = styled.div`\n position: absolute;\n right: 0;\n bottom: 0;\n width: 502px;\n\n img, picture {\n display: block;\n width: 100%;\n }\n\n @media ((max-width: ${wideBreakpoints.laptop}) and (min-width: ${wideBreakpoints.tablet})) {\n left: 354px;\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n right: 50%;\n transform: translate3d(50%, 0,0);\n width: 340px;\n }\n`;\n\nexport const AppContent = styled.div`\n flex-direction: column;\n flex-wrap: nowrap;\n max-width: 320px;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n max-width: unset;\n }\n`;\n\n\nexport const TextContent = styled(TextWrapper)`\n ${Paragraph4} {\n margin-bottom: 24px;\n }\n`;\n","/* eslint-disable no-useless-escape */\nimport { useSelector } from 'react-redux';\nimport Link from 'next/link';\n\nimport Button from '@r1-frontend/ui-react/components/buttons/button';\nimport { ButtonGroup } from '@r1-frontend/ui-react/components/buttons/buttonGroup/ButtonGroup';\nimport { H3 } from '@r1-frontend/ui-react/components/typography/heading';\nimport { Paragraph4 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport TextWrapper from '@r1-frontend/ui-react/components/typography/TextWrapper';\nimport WebpImage from '@r1-frontend/ui-react/components/WebpImage';\nimport Section from '@r1-frontend/ui-react/experimental/blocks/section';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport CallbackForm from '~/src/features/contact/components/CallbackForm';\nimport { APP_IMG_SRC, SOCIALS } from '~/src/features/contact/constants';\nimport { getCurrentCity } from '~/src/store/selectors/city';\n\nimport { Container } from '~/src/features/contact/components/Header/styled';\nimport * as ST from './styled';\n\nconst Content = () => {\n const { callCenter } = useSelector(getCurrentCity);\n\n return (\n
\n \n \n \n \n

Cлужба поддержки

\n {callCenter}\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 \n
\n
\n
\n
\n );\n};\n\nexport default Content;\n","import WebpImage from '@r1-frontend/ui-react/components/WebpImage';\n\nimport * as ST from './styled';\n\nconst Header = () => {\n\n return (\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 WithoutPointList from '@r1-frontend/ui-react/components/List/WithoutPointList';\nimport ControlElement from '@r1-frontend/ui-react/components/typography/controlElement';\nimport { RounderContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nexport const Grid = styled.div`\n width: 100%;\n display: grid;\n grid-template-columns: 0.7fr 1fr;\n align-items: start;\n gap: 32px;\n \n @media (max-width: ${wideBreakpoints.tablet}) {\n grid-template-columns: 1fr;\n }\n`;\n\nexport const ListItem = styled.li`\n &:not(:last-child) {\n margin-bottom: 8px;\n }\n`;\n\nexport const MapWrapper = styled(RounderContainer)`\n height: 376px;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n height: 600px;\n }\n`;\n\nexport const SControlElement = styled(ControlElement)`\n ${FONTS.H3}\n`;\n\nexport const SWithoutPointList = styled(WithoutPointList)`\n width: 100%;\n`;\n","import { LegacyRef, useRef } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport ControlElement from '@r1-frontend/ui-react/components/typography/controlElement';\nimport { H3 } from '@r1-frontend/ui-react/components/typography/heading';\nimport Section from '@r1-frontend/ui-react/experimental/blocks/section';\nimport { BlockContainer, ListContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nimport { IRetailPoint } from '~/src/api/content/retail-point';\nimport { openCitySelect } from '~/src/components/CitySelectContainer/store/actionCreators';\nimport { prepareMapOptions, YandexMap } from '~/src/components/YandexMap';\nimport NoSSR from '~/src/helpers/noSSR';\nimport { getCurrentCity, selectCompanyName } from '~/src/store/selectors/city';\n\nimport { Container } from '~/src/features/contact/components/Header/styled';\nimport * as ST from './styled';\n\ninterface IProps {\n contacts: IRetailPoint[],\n}\n\nconst Map = ({ contacts }: IProps) => {\n const dispatch = useDispatch();\n const { cityIn, name } = useSelector(getCurrentCity);\n const companyName = useSelector(selectCompanyName);\n\n const mapWrapperRef = useRef(null);\n const mapInstanceRef: LegacyRef = useRef(null);\n const displayedMapPoints = prepareMapOptions(contacts);\n const openCitySelectHandler = () => dispatch(openCitySelect());\n\n const handleAddressClick = (id: string) => () => {\n const mapWrapper = mapWrapperRef?.current;\n const mapInstance = mapInstanceRef?.current;\n if (mapWrapper && mapInstance) {\n mapInstance.openMapBalloon(id);\n mapWrapper.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\n }\n };\n\n return (\n
\n \n \n \n {displayedMapPoints.length > 0\n ? <>\n

\n Адреса наших партнёров\n

\n \n {displayedMapPoints.map(({ id, misc, address }) => \n \n \n {misc}\n {address}\n \n \n )}\n \n \n :

\n В {cityIn} не найдено сервисных центров и партнёров {companyName}\n

}\n
\n \n \n \n \n \n
\n
\n
\n );\n};\n\nexport default Map;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n width: 100%;\n`;\n","import { IRetailPoint } from '~/src/api/content/retail-point';\n\nimport Content from './components/Content/index';\nimport Header from './components/Header/index';\nimport Map from './components/Map/index';\n\nimport * as ST from './styled';\n\ninterface IProps {\n contacts: IRetailPoint[],\n}\n\nconst Contact = ({ contacts }: IProps) => {\n return (\n \n
\n \n \n \n );\n};\n\nexport default Contact;\n","export const REDESIGN_CONTACT = {\n testName: 'redesing_page_service_contact',\n variants: {\n on: 'new_page_service_contact',\n off: 'old_page_service_contact',\n },\n};\n","import { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\nimport styled from 'styled-components';\n\nexport const customStylesSelect = {\n container: (base) => ({\n ...base,\n width: '100%',\n }),\n valueContainer: (base) => ({\n ...base,\n paddingLeft: '35px !important',\n background: 'url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmls' +\n 'bD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bG' +\n 'U9ImV2ZW5vZGQiIGQ9Ik04LjMzNDEgMTUuNjY2N0MxMi4zODQ2IDE1LjY2NjcgMTUuNjY4MiAxMi4zODM0IDE1LjY2ODIgOC4zMzMzM0Mx' +\n 'NS42NjgyIDQuMjgzMjUgMTIuMzg0NiAxIDguMzM0MSAxQzQuMjgzNTkgMSAxIDQuMjgzMjUgMSA4LjMzMzMzQzEgMTIuMzgzNCA0LjI4Mz' +\n 'U5IDE1LjY2NjcgOC4zMzQxIDE1LjY2NjdaIiBzdHJva2U9IiM5Nzk3OTciIHN0cm9rZS13aWR0aD0iMS4zIi8+CjxwYXRoIGQ9Ik0xMy41' +\n 'IDEzLjVMMjEgMjEiIHN0cm9rZT0iIzk3OTc5NyIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KPC9zdmc+Cg==) no-repeat left 10px center',\n }),\n input: (base) => ({\n ...base,\n color: COLORS.white,\n }),\n};\n\nexport const Content = styled.div`\n display: block;\n position: relative;\n width: 100%;\n margin-top: 12px;\n margin-bottom: -50px;\n padding-top: 10px;\n padding-bottom: 60px;\n color: ${COLORS.black};\n background-color: ${COLORS.white};\n overflow: hidden;\n`;\n\nexport const InnerWrap = styled.div`\n max-width: 1440px;\n margin-left: auto;\n margin-right: auto;\n padding: 0 9%;\n\n @media screen and (max-width: 1188px) {\n padding: 0 6%;\n }\n`;\n\nexport const Title = styled.h1`\n margin-bottom: 30px;\n width: 100%;\n ${FONTS.H1};\n`;\n\nexport const FeedbackWrap = styled.div`\n flex-direction: column;\n margin-bottom: 50px;\n width: 100%;\n padding: 30px 30px 20px;\n background-color: ${COLORS.outlineGrey};\n`;\n\nexport const FeedbackLinksWrap = styled.div`\n margin: 0 -20px 0;\n`;\n\nexport const FeedbackLink = styled.a`\n display: flex;\n align-items: flex-end;\n margin: 0 20px 10px;\n ${FONTS.MediumS};\n color: ${COLORS.blue};\n transition: color .2s linear;\n\n &:hover {\n color: ${COLORS.red};\n }\n\n &::before {\n margin-right: 10px;\n color: ${COLORS.black};\n content: '';\n width: 25px;\n height: 25px;\n font-family: 'icomoon';\n font-size: 28px;\n }\n`;\n\nexport const HeadPhoneLink = styled(FeedbackLink)`\n &::before {\n content: '\\\\e648';\n }\n`;\n\nexport const BlockNoteLink = styled(FeedbackLink)`\n &::before {\n content: '\\\\e615';\n }\n`;\n\nexport const FeedbackTitle = styled.h2`\n margin-bottom: 20px;\n ${FONTS.H2};\n`;\n\nexport const FilterWrap = styled.div`\n margin: 0 -15px 15px -15px;\n align-items: center;\n width: 100%;\n`;\n\nexport const SelectWrap = styled.div`\n position: relative;\n flex: 1 0 270px;\n max-width: 420px;\n margin: 0 15px 15px;\n`;\n\nexport const SwitcherWrap = styled.div`\n margin: 0 15px 15px;\n`;\n\nexport const MapWrap = styled.div`\n margin-bottom: 50px;\n padding-top: 20px;\n height: 440px;\n`;\n\n// Список контактов\nexport const ContactsWrap = styled.div``;\n\nexport const ContactList = styled.div`\n flex-direction: column;\n`;\n\nexport const BlockTitle = styled.h2`\n margin-bottom: 18px;\n ${FONTS.H2};\n`;\n\nexport const ElemDescription = styled.div`\n flex-direction: column;\n align-items: flex-start;\n`;\n\nexport const ElemTime = styled.div`\n ${FONTS.XS};\n`;\n","import BaseSwitcher from '@r1-frontend/ui-react/components/controls/baseSwitcher';\nimport Select from '@r1-frontend/ui-react/components/select/select';\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\nimport { ContactList } from '~/src/components/ContactList';\nimport { prepareMapOptions, YandexMap } from '~/src/components/YandexMap';\nimport NoSSR from '~/src/helpers/noSSR';\nimport { selectCompanyName } from '~/src/store/selectors/city';\n\nimport * as ST from './styled';\n\nclass Contact extends Component {\n static propTypes = {\n contacts: PropTypes.array,\n };\n\n static defaultProps = {\n contacts: [],\n };\n\n mapInstance = React.createRef();\n mapWrapRef = React.createRef();\n mapPoints = prepareMapOptions(this.props.contacts);\n selectOptions = this.prepareSelectOptions(this.props.contacts);\n\n state = {\n isOnlyDomru: false,\n selectedContact: null,\n displayedMapPoints: this.mapPoints,\n currentSelectOptions: this.selectOptions,\n }\n\n onSelectContact = (elem) => {\n this.setState({\n selectedContact: elem,\n displayedMapPoints: this.filterSelectedPoints(this.mapPoints, elem),\n });\n }\n\n onSwitchDomRuFilter = () => {\n this.setState(state => ({\n isOnlyDomru: !state.isOnlyDomru,\n selectedContact: null,\n displayedMapPoints: this.filterOnlyDomRu(this.mapPoints, !state.isOnlyDomru),\n currentSelectOptions: this.filterOnlyDomRu(this.selectOptions, !state.isOnlyDomru),\n }));\n }\n\n onClickContact = (id) => {\n const mapWrap = this.mapWrapRef?.current;\n const mapInstance = this.mapInstance?.current;\n if (mapWrap && mapInstance) {\n mapInstance.openMapBalloon(id);\n mapWrap.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\n }\n }\n\n prepareSelectOptions(contacts) {\n return contacts.map(item => {\n const { pid, address, type } = item;\n return (\n {\n value: pid,\n label: address,\n contactType: type,\n }\n );\n });\n }\n\n filterOnlyDomRu(list, isOnlyDomru) {\n return isOnlyDomru ? list.filter(elem => (elem.contactType === 'center' || elem.contactType === 'office')) : list;\n }\n\n filterSelectedPoints(list, selectedContact) {\n const selectedPoints = selectedContact ? list.find(item => item.id === selectedContact.value) : undefined;\n return selectedPoints ? [selectedPoints] : list;\n }\n\n render() {\n const { selectedContact, isOnlyDomru, displayedMapPoints, currentSelectOptions } = this.state;\n const { city, companyName } = this.props;\n\n const title = city.domain === 'interzet' ? `Контакты в ${city.cityIn}` : 'Контакты';\n\n return (\n \n \n {title}\n \n Оставьте заявку или обращение на сайте\n \n Оставить заявку на подключение\n Оставить обращение\n \n \n \n \n \n 'нет совпадений'}\n styles={ST.customStylesSelect}\n />\n \n \n Только {companyName}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n city: state.city.currentCity,\n companyName: selectCompanyName(state),\n});\n\nexport default connect(mapStateToProps)(Contact);\n","import React from 'react';\nimport { NextPage } from 'next';\n\nimport { getRetailPoint, IRetailPoint } from '~/src/api/content/retail-point';\nimport Layout from '~/src/features/_layout';\nimport Contact from '~/src/features/contact';\nimport { REDESIGN_CONTACT } from '~/src/features/contact/constants/abnVariants';\nimport ContactOld from '~/src/features/service/Contact';\nimport { getABNVariantOnSSr } from '~/src/helpers/abn-tests';\nimport { initialProps } from '~/src/helpers/basePageFunc';\nimport { getCurrentCity, selectCompanyName } from '~/src/store/selectors/city';\n\ninterface IProps {\n contacts: IRetailPoint[],\n companyName: string,\n cityIn: string,\n isRedesignContactAbTestActive?: boolean,\n}\n\nconst ContactPage: NextPage = ({ contacts, companyName, cityIn, isRedesignContactAbTestActive }) => {\n return (\n \n {isRedesignContactAbTestActive ? : }\n \n );\n};\n\nContactPage.getInitialProps = async(options) => {\n await initialProps(options);\n const { req } = options;\n\n const state = options.store.getState();\n const { providerId } = state.city.provider;\n const { cityIn } = getCurrentCity(state);\n const companyName = selectCompanyName(state);\n\n const resp = await getRetailPoint({ providerId });\n\n const isRedesignContactAbTestActive = getABNVariantOnSSr(REDESIGN_CONTACT.testName, req) === REDESIGN_CONTACT.variants.on;\n\n return {\n isRedesignContactAbTestActive,\n contacts: resp.isSuccess ? resp.payload : [],\n companyName,\n cityIn,\n };\n};\n\nexport default ContactPage;\n","import { TResponse } from '@r1-frontend/do-request/core/types';\nimport { captureQueryError } from '@r1-frontend/do-request/error';\n\nimport contentRequest from '~/src/api/requests/contentRequest';\n\ninterface IResponse {\n point_id: number,\n address: string,\n work_time: string,\n point_name: string,\n phone: string,\n longitude: number,\n latitude: number,\n company: {\n type: string,\n } | undefined,\n}\n\nexport interface IRetailPoint extends IResponse {\n pid: number,\n name: string,\n type: string | undefined,\n hours: string,\n}\n\nexport type TRetailPointResponse = TResponse;\n\ninterface IProps {\n providerId: number,\n companyType?: string[],\n}\n\n/**\n * GET-запрос точки продаж\n * /perm/v2/retail-point\n * @param {string=} [domain='perm'] поддомен хоста b2c\n */\nexport const getRetailPoint = async({ providerId, companyType }: IProps): Promise => {\n const url = '/v2/retail-point';\n try {\n const response = await contentRequest.get(url, {\n params: {\n providerId,\n company_type: companyType,\n },\n });\n return {\n isSuccess: true,\n payload: prepareData(response.data),\n };\n } catch (err) {\n return captureQueryError(err);\n }\n};\n\nexport const prepareData = (points: IResponse[]): IRetailPoint[] => {\n if (!Array.isArray(points)) {\n return points;\n }\n\n return points.map(point => {\n return {\n ...point,\n pid: point.point_id,\n name: point.point_name,\n type: point.company?.type,\n hours: point.work_time,\n };\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 { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\n\n// TODO проверить необходимость этого класса\nexport class CustomAxiosError extends Error implements AxiosError {\n code?: string;\n config: AxiosRequestConfig = {};\n request: any;\n response?: AxiosResponse;\n isAxiosError: boolean;\n status?: string;\n toJSON: () => object;\n\n constructor(message: string, responseBody: AxiosResponse) {\n super(message);\n this.response = responseBody;\n this.isAxiosError = true;\n this.toJSON = () => ({});\n }\n}\n","import styled from 'styled-components';\n\nconst WithoutPointsList = styled.ul`\n list-style: none;\n margin: 0;\n padding: 0;\n`;\n\nexport default WithoutPointsList;\n","import React, { FC, useCallback, useState } from 'react';\n\nimport { Label } from './styled';\n\nexport interface IBaseSwitcherProps {\n id?: string,\n name?: string,\n value?: string,\n checked?: boolean,\n disabled?: boolean,\n required?: boolean,\n onChange?: (event: React.ChangeEvent, state?: boolean) => void,\n className?: string,\n [key: string]: unknown,\n}\n\nconst BaseSwitcher: FC = ({\n id,\n name = '',\n value = '',\n checked,\n disabled = false,\n required,\n children,\n onChange,\n className,\n ...props\n}) => {\n const [isChecked, setIsChecked] = useState(checked);\n\n const onChangeHandler = useCallback((event: React.ChangeEvent) => {\n if (!disabled) {\n if (required) {\n if (!isChecked) {\n setIsChecked(true);\n onChange && onChange(event, true);\n }\n } else {\n setIsChecked(!isChecked);\n onChange && onChange(event, !isChecked);\n }\n }\n }, [disabled, isChecked, onChange, required]);\n\n return (\n \n \n {children}\n \n );\n};\n\nexport default BaseSwitcher;\n","import styled from 'styled-components';\n\nimport { hex2rgb } from '@r1-frontend/shared/helpers/hex2rgb';\n\n// @ts-ignore\nimport lockedIcon from '../../../assets/img/icons/locked.svg';\nimport { COLORS } from '../../../tokens/colors';\n\ninterface IStyleProps {\n checked?: boolean,\n disabled: boolean,\n}\n\nexport const Label = styled.label`\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n align-items: center;\n margin: 0;\n padding: 0;\n user-select: none;\n\n &:active {\n outline: none;\n }\n\n input[type=\"checkbox\"] {\n appearance: none;\n position: relative;\n flex: 0 0 auto;\n width: 36px;\n height: 20px;\n margin: 0;\n padding: 0;\n background-color: ${COLORS.Disabled};\n border: none;\n border-radius: 10px;\n transition: .3s;\n overflow: hidden;\n outline: none;\n box-sizing: border-box;\n cursor: pointer;\n\n &:before {\n content: '';\n position: absolute;\n top: 2px;\n left: 2px;\n width: 16px;\n height: 16px;\n border-radius: 50%;\n background-color: ${COLORS.BgMain};\n transition: .3s;\n }\n\n @media (hover: hover) {\n &:hover,\n &:checked:hover {\n background-color: ${COLORS.Outline_Dark};\n\n &:before {\n background-color: ${COLORS.Link};\n }\n }\n }\n\n &:required:valid {\n background-color: ${COLORS.Locked};\n\n &:before {\n background-color: ${COLORS.BgMain};\n }\n\n &:after {\n content: '';\n position: absolute;\n top: 2px;\n left: 18px;\n width: 16px;\n height: 16px;\n background-color: ${COLORS.Error};\n mask-image: url(${lockedIcon});\n mask-size: 7px 9px;\n mask-position: center;\n mask-repeat: no-repeat;\n transition: .3s;\n }\n }\n\n &:checked {\n background-color: ${COLORS.Control};\n\n &:before {\n left: 18px;\n }\n }\n\n &:disabled,\n &:checked:hover:disabled {\n background-color: ${COLORS.BgSecondary};\n pointer-events: none;\n \n &:before {\n background-color: rgba(${hex2rgb(COLORS.BgMain)}, 0.5);\n }\n }\n }\n`;\n","import styled, { css } from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { H1, H2, H3, H4, H5 } from '@r1-frontend/ui-react/components/typography/heading';\nimport { Paragraph1, Paragraph2, Paragraph3, Paragraph4, Paragraph5 } from '@r1-frontend/ui-react/components/typography/paragraph';\n\nconst TextWrapper = styled.div<{ $lastIndent?: boolean }>`\n display: block;\n \n ${H1} {\n margin-bottom: 16px;\n \n @media (min-width: ${wideBreakpoints.mobile}) {\n margin-bottom: 24px;\n }\n }\n \n ${H2} {\n margin-bottom: 8px;\n \n @media (min-width: ${wideBreakpoints.mobile}) {\n margin-bottom: 16px;\n }\n }\n \n ${H3}, ${H4}, ${H5} {\n margin-bottom: 8px;\n }\n \n ${Paragraph1}, ${Paragraph2}, ${Paragraph3}, ${Paragraph4}, ${Paragraph5} {\n margin-bottom: 16px;\n\n ${({ $lastIndent = true }) => $lastIndent\n ? ''\n : css`\n &:last-child {\n margin-bottom: 0px;\n }\n `}\n }\n`;\n\nexport default TextWrapper;\n","import { ReactNode } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { TSvgProps } from '@r1-frontend/ui-react/components/svg/createSvg';\nimport Svg from '@r1-frontend/ui-react/components/svg/Svg';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\nimport { useMatchMedia } from '@r1-frontend/shared/hooks/useMatchMedia';\n\nexport const controlElementTypes = ['small', 'medium', 'large'] as const;\n\nexport type TControlElementType = typeof controlElementTypes[number];\n\nexport type TControlElementProps = {\n type?: TControlElementType,\n $customFont?: FONTS.MediumS | FONTS.MediumXS | FONTS.MediumXXS,\n Icon?: (props: TSvgProps) => JSX.Element,\n children?: string | ReactNode | JSX.Element,\n onClick?: () => void,\n}\n\nconst ControlElement = (\n {\n children,\n Icon,\n\n ...rest\n }: Pick,\n): JSX.Element => {\n const isMobile = useMatchMedia(`(max-width: ${wideBreakpoints.mobile})`);\n return (\n \n {Boolean(children) && children}\n {Icon && ()}\n \n );\n};\n\nconst getFontByType = (type: TControlElementType): { mobile: FONTS, desktop: FONTS } => {\n switch (type) {\n case 'large': {\n return { mobile: FONTS.MediumXS, desktop: FONTS.MediumS };\n }\n case 'medium': {\n return { mobile: FONTS.MediumXXS, desktop: FONTS.MediumXS };\n }\n case 'small': {\n return { mobile: FONTS.MediumXXS, desktop: FONTS.MediumXXS };\n }\n }\n};\n\nconst StyledControlElement = styled(ControlElement)`\n display: inline-flex;\n\n justify-content: flex-start;\n align-items: center;\n flex-direction: row;\n gap: 5px;\n\n color: ${COLORS.Link};\n cursor: pointer;\n\n ${Svg} {\n #guts, #contour {\n stroke: ${COLORS.Link};\n }\n }\n\n ${({ type = 'large', $customFont }) => {\n if ($customFont) {\n return css`${$customFont};`;\n }\n\n if (!$customFont && type) {\n const { mobile, desktop } = getFontByType(type);\n\n return css`\n ${mobile};\n\n @media (min-width: ${wideBreakpoints.mobile}) {\n ${desktop};\n }\n `;\n }\n }}\n`;\n\nexport default StyledControlElement;\n","import ControlElement from './ControlElement';\n\nexport default ControlElement;\n","import styled from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\n\nconst Section = styled.section`\n display: flex;\n flex-direction: column;\n row-gap: 16px;\n\n width: 100%;\n\n margin-bottom: 40px;\n\n @media (min-width: ${wideBreakpoints.mobile}) {\n row-gap: 24px;\n }\n`;\n\nexport default Section;\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nimport { getPaddingByIncomingIndent, TContainerProps } from './IndentContainer';\nimport { getRadiusByIncomingProps, TRounderProps } from './RounderContainer';\n\n/**\n * Обертка добавляет компоненту, цвет бэкграунда, скругление и паддинги\n * indent: $united или $mobile & $desktop.\n * rounder: $radius или $desktop & $mobile.\n * bgColor: цвет подложки (default COLORS.BgSurface).\n */\nconst BlockContainer = styled.div<{\n indent: TContainerProps,\n rounder: TRounderProps,\n bgColor?: string,\n}>`\n ${p => getPaddingByIncomingIndent(p.indent)};\n ${p => getRadiusByIncomingProps(p.rounder)};\n background-color: ${p => p.bgColor || COLORS.BgSurface};\n position: relative;\n width: 100%;\n`;\n\nexport default BlockContainer;\n","import ReCAPTCHA from 'react-google-recaptcha';\nimport styled, { css } from 'styled-components';\n\nimport { BaseButton } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport InputSimple, { nameDecorator, phoneDecorator } from '@r1-frontend/ui-react/components/inputSimple';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nexport const NamePhoneForm = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n`;\n\nexport const namePhoneTemplates = {\n first: css`\n grid-template-columns: repeat(2, minmax(224px, 288px)) min-content;\n grid-template-areas:\n \"name phone button\"\n \"policynote policynote policynote\";\n `,\n second: css`\n grid-template-columns: repeat(2, minmax(224px, 288px));\n grid-template-areas:\n \"name phone\"\n \"policynote policynote\"\n \"button button\";\n `,\n mobile: css`\n grid-template-columns: minmax(224px, 1fr);\n grid-template-areas:\n \"name\"\n \"phone\"\n \"recaptcha\"\n \"policynote\"\n \"button\";\n `,\n};\n\nconst recaptchaNamePhoneTemplates = {\n first: css`\n grid-template-columns: repeat(2, minmax(224px, 288px)) min-content;\n grid-template-areas:\n \"name phone button\"\n \"policynote policynote policynote\"\n \"recaptcha recaptcha recaptcha\";\n `,\n second: css`\n grid-template-columns: repeat(2, minmax(224px, 288px));\n grid-template-areas:\n \"name phone\"\n \"policynote policynote\"\n \"button button\"\n \"recaptcha recaptcha\";\n `,\n mobile: css`\n grid-template-columns: minmax(224px, 1fr);\n grid-template-areas:\n \"name\"\n \"phone\"\n \"recaptcha\"\n \"policynote\"\n \"button\";\n `,\n};\n\nconst phoneTemplates = {\n first: css`\n grid-template-columns: minmax(224px, 288px) min-content;\n grid-template-areas:\n \"phone button\"\n \"policynote policynote\";\n `,\n second: css`\n grid-template-columns: repeat(2, minmax(224px, 288px));\n grid-template-areas:\n \"phone phone\"\n \"policynote policynote\"\n \"button button\";\n `,\n mobile: css`\n grid-template-columns: minmax(224px, 1fr);\n grid-template-areas:\n \"phone\"\n \"policynote\"\n \"button\";\n `,\n};\n\nconst recaptchaPhoneTemplates = {\n first: css`\n grid-template-columns: minmax(224px, 288px) min-content;\n grid-template-areas:\n \"phone button\"\n \"policynote policynote\"\n \"recaptcha recaptcha\";\n `,\n second: css`\n grid-template-columns: repeat(2, minmax(224px, 288px));\n grid-template-areas:\n \"phone phone\"\n \"policynote policynote\"\n \"button button\"\n \"recaptcha recaptcha\";\n `,\n mobile: css`\n grid-template-columns: minmax(224px, 1fr);\n grid-template-areas:\n \"phone\"\n \"recaptcha\"\n \"policynote\"\n \"button\";\n `,\n};\n\nexport type TTemplate = keyof typeof namePhoneTemplates;\n\nexport const GridTemplate = styled.div<{variant: TTemplate, isOnlyPhone: boolean, isRecaptcha: boolean}>`\n display: grid;\n grid-gap: 12px 8px;\n grid-auto-rows: min-content;\n align-items: flex-start;\n ${p => p.isOnlyPhone\n ? p.isRecaptcha ? recaptchaPhoneTemplates[p.variant] : phoneTemplates[p.variant]\n : p.isRecaptcha ? recaptchaNamePhoneTemplates[p.variant] : namePhoneTemplates[p.variant]\n };\n`;\n\nconst Input = styled(InputSimple)`\n margin-bottom: 0;\n\n [data-test=\"placeholder\"] {\n display: none;\n }\n\n [class*=\"InputError\"] {\n padding: 0 5px;\n white-space: nowrap;\n }\n`;\n\nconst NameField = styled(Input)`\n grid-area: name;\n`;\n\nconst PhoneField = styled(Input)`\n grid-area: phone;\n`;\n\nexport const InputName = nameDecorator(NameField);\n\nexport const InputPhone = phoneDecorator(PhoneField);\n\nexport const Button = styled(BaseButton)`\n grid-area: button;\n width: 195px;\n flex: 1 0 auto;\n`;\n\nexport const PolicyNoteWrapper = styled.div<{invertColor?: boolean}>`\n color: ${p => p.invertColor ? COLORS.TextWhite : COLORS.TextSecondary};\n grid-area: policynote;\n margin-left: 0;\n`;\n\nexport const Captcha = styled(ReCAPTCHA)`\n grid-area: recaptcha;\n`;\n","import React, { FC, useCallback, useEffect, useState } from 'react';\n\nimport { btnTypes } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport { PolicyNote } from '@r1-frontend/ui-react/components/PolicyNote';\n\nimport * as ST from './styled';\nexport type { TTemplate } from './styled';\n\ndeclare const grecaptcha: { getResponse: () => string };\n\nexport type TField = {\n value: string,\n isValid: boolean,\n clearInput: () => void,\n}\n\nexport interface ISubmitParams {\n name: TField,\n phone: TField,\n recaptchaToken: string | null,\n}\n\ninterface IFieldParams {\n placeholder: string,\n errorMessage: string,\n}\n\nexport type TFieldNames = 'fio' | 'phone';\n\nexport interface IPropsNamePhoneFormPhone {\n templateVariant?: ST.TTemplate,\n isOnlyPhone?: boolean,\n recapchaSiteKey?: string,\n btnText?: string | React.ReactNode,\n btnType?: btnTypes,\n isLoading?: boolean,\n isDisabled?: boolean,\n invertColor?: boolean,\n policyPath?: string,\n className?: string,\n onButtonClick: (params: ISubmitParams) => void,\n onChange?: (value: TField, fieldName: TFieldNames) => void,\n phoneParams?: IFieldParams,\n nameParams?: IFieldParams,\n}\n\n/**\n * Форма заказа обратного звонка, с попапом результата (отправку аналитики выполняем снаружи формы)\n * @param {boolean} isOnlyPhone - только телефон\n * @param {TTemplate} templateVariant - варианты расположения полей формы\n * @param {string} recapchaSiteKey - ключ для отображения рекапчи\n * @param {boolean} isLoading - отображение сосотояния загрузки\n * @param {boolean} isDisabled - отображение сосотояния блокировки\n * @param {function} onButtonClick - колбэк при клике на кнопку\n * @param {string/ReactNode} btnText - наименование кнопки\n * @param {boolean} invertColor - инвертирует цвета чекбокса\n * @param policyPath - ссылка на политику конфиденциальности\n */\nexport const NamePhoneForm:FC = ({\n templateVariant = 'first',\n isOnlyPhone = false,\n btnText = 'Отправить',\n btnType = btnTypes.ACCENT,\n isLoading,\n isDisabled,\n invertColor,\n recapchaSiteKey = '',\n policyPath = '/policy.pdf',\n phoneParams,\n nameParams,\n onButtonClick,\n onChange,\n className,\n}) => {\n const [phone, setPhone] = useState();\n const [name, setName] = useState();\n const [isValidInputs, setIsValidInputs] = useState(false);\n const [isRecaptcha, setIsRecaptcha] = useState(false);\n const [captchaToken, setCaptchaToken] = useState(null);\n\n useEffect(() => {\n setIsRecaptcha(!!recapchaSiteKey);\n }, [recapchaSiteKey]);\n\n useEffect(() => {\n const isValid = isOnlyPhone ? phone?.isValid : (phone?.isValid && name?.isValid);\n setIsValidInputs(isValid as boolean);\n }, [isOnlyPhone, phone, name]);\n\n const clickHandler = () => {\n if (isLoading || isDisabled || !isValidInputs) {\n return;\n }\n\n const recaptchaToken = isRecaptcha ? grecaptcha?.getResponse() : null;\n\n onButtonClick({\n name: (name as TField),\n phone: (phone as TField),\n recaptchaToken,\n });\n };\n\n const onChangeHandler = useCallback((\n stateInput: TField,\n fieldName: TFieldNames,\n ) => {\n if (stateInput.value === undefined) {\n return;\n }\n\n if (fieldName === 'phone') {\n setPhone(stateInput);\n } else {\n setName(stateInput);\n }\n\n typeof onChange === 'function' && onChange(stateInput, fieldName);\n }, [onChange]);\n\n return (\n \n \n {!isOnlyPhone &&\n onChangeHandler(stateInput, 'fio')}\n placeholder={nameParams?.placeholder || 'Как вас зовут?'}\n errorMessage={nameParams?.errorMessage || 'Ожидаются только буквы и дефисы'}\n disabled={isLoading}\n data-test='field-name'\n />\n }\n onChangeHandler(stateInput, 'phone')}\n placeholder={phoneParams?.placeholder || 'Номер телефона'}\n errorMessage={phoneParams?.errorMessage || 'Телефон в формате +7 (999) 999-99-99'}\n disabled={isLoading}\n data-test='field-phone'\n />\n \n \n \n \n {btnText}\n \n {isRecaptcha &&\n \n }\n \n \n );\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nvar ReCAPTCHA =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReCAPTCHA, _React$Component);\n\n function ReCAPTCHA() {\n var _this;\n\n _this = _React$Component.call(this) || this;\n _this.handleExpired = _this.handleExpired.bind(_assertThisInitialized(_this));\n _this.handleErrored = _this.handleErrored.bind(_assertThisInitialized(_this));\n _this.handleChange = _this.handleChange.bind(_assertThisInitialized(_this));\n _this.handleRecaptchaRef = _this.handleRecaptchaRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = ReCAPTCHA.prototype;\n\n _proto.getValue = function getValue() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this.props.grecaptcha.getResponse(this._widgetId);\n }\n\n return null;\n };\n\n _proto.getWidgetId = function getWidgetId() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this._widgetId;\n }\n\n return null;\n };\n\n _proto.execute = function execute() {\n var grecaptcha = this.props.grecaptcha;\n\n if (grecaptcha && this._widgetId !== undefined) {\n return grecaptcha.execute(this._widgetId);\n } else {\n this._executeRequested = true;\n }\n };\n\n _proto.executeAsync = function executeAsync() {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n _this2.executionResolve = resolve;\n _this2.executionReject = reject;\n\n _this2.execute();\n });\n };\n\n _proto.reset = function reset() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n this.props.grecaptcha.reset(this._widgetId);\n }\n };\n\n _proto.handleExpired = function handleExpired() {\n if (this.props.onExpired) {\n this.props.onExpired();\n } else {\n this.handleChange(null);\n }\n };\n\n _proto.handleErrored = function handleErrored() {\n if (this.props.onErrored) {\n this.props.onErrored();\n }\n\n if (this.executionReject) {\n this.executionReject();\n delete this.executionResolve;\n delete this.executionReject;\n }\n };\n\n _proto.handleChange = function handleChange(token) {\n if (this.props.onChange) {\n this.props.onChange(token);\n }\n\n if (this.executionResolve) {\n this.executionResolve(token);\n delete this.executionReject;\n delete this.executionResolve;\n }\n };\n\n _proto.explicitRender = function explicitRender() {\n if (this.props.grecaptcha && this.props.grecaptcha.render && this._widgetId === undefined) {\n var wrapper = document.createElement(\"div\");\n this._widgetId = this.props.grecaptcha.render(wrapper, {\n sitekey: this.props.sitekey,\n callback: this.handleChange,\n theme: this.props.theme,\n type: this.props.type,\n tabindex: this.props.tabindex,\n \"expired-callback\": this.handleExpired,\n \"error-callback\": this.handleErrored,\n size: this.props.size,\n stoken: this.props.stoken,\n hl: this.props.hl,\n badge: this.props.badge\n });\n this.captcha.appendChild(wrapper);\n }\n\n if (this._executeRequested && this.props.grecaptcha && this._widgetId !== undefined) {\n this._executeRequested = false;\n this.execute();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.explicitRender();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.explicitRender();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._widgetId !== undefined) {\n this.delayOfCaptchaIframeRemoving();\n this.reset();\n }\n };\n\n _proto.delayOfCaptchaIframeRemoving = function delayOfCaptchaIframeRemoving() {\n var temporaryNode = document.createElement(\"div\");\n document.body.appendChild(temporaryNode);\n temporaryNode.style.display = \"none\"; // move of the recaptcha to a temporary node\n\n while (this.captcha.firstChild) {\n temporaryNode.appendChild(this.captcha.firstChild);\n } // delete the temporary node after reset will be done\n\n\n setTimeout(function () {\n document.body.removeChild(temporaryNode);\n }, 5000);\n };\n\n _proto.handleRecaptchaRef = function handleRecaptchaRef(elem) {\n this.captcha = elem;\n };\n\n _proto.render = function render() {\n // consume properties owned by the reCATPCHA, pass the rest to the div so the user can style it.\n\n /* eslint-disable no-unused-vars */\n var _this$props = this.props,\n sitekey = _this$props.sitekey,\n onChange = _this$props.onChange,\n theme = _this$props.theme,\n type = _this$props.type,\n tabindex = _this$props.tabindex,\n onExpired = _this$props.onExpired,\n onErrored = _this$props.onErrored,\n size = _this$props.size,\n stoken = _this$props.stoken,\n grecaptcha = _this$props.grecaptcha,\n badge = _this$props.badge,\n hl = _this$props.hl,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"sitekey\", \"onChange\", \"theme\", \"type\", \"tabindex\", \"onExpired\", \"onErrored\", \"size\", \"stoken\", \"grecaptcha\", \"badge\", \"hl\"]);\n /* eslint-enable no-unused-vars */\n\n\n return React.createElement(\"div\", _extends({}, childProps, {\n ref: this.handleRecaptchaRef\n }));\n };\n\n return ReCAPTCHA;\n}(React.Component);\n\nexport { ReCAPTCHA as default };\nReCAPTCHA.displayName = \"ReCAPTCHA\";\nReCAPTCHA.propTypes = {\n sitekey: PropTypes.string.isRequired,\n onChange: PropTypes.func,\n grecaptcha: PropTypes.object,\n theme: PropTypes.oneOf([\"dark\", \"light\"]),\n type: PropTypes.oneOf([\"image\", \"audio\"]),\n tabindex: PropTypes.number,\n onExpired: PropTypes.func,\n onErrored: PropTypes.func,\n size: PropTypes.oneOf([\"compact\", \"normal\", \"invisible\"]),\n stoken: PropTypes.string,\n hl: PropTypes.string,\n badge: PropTypes.oneOf([\"bottomright\", \"bottomleft\", \"inline\"])\n};\nReCAPTCHA.defaultProps = {\n onChange: function onChange() {},\n theme: \"light\",\n type: \"image\",\n tabindex: 0,\n size: \"normal\",\n badge: \"bottomright\"\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nimport { Component, createElement, forwardRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nvar SCRIPT_MAP = {}; // A counter used to generate a unique id for each component that uses the function\n\nvar idCount = 0;\nexport default function makeAsyncScript(getScriptURL, options) {\n options = options || {};\n return function wrapWithAsyncScript(WrappedComponent) {\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n\n var AsyncScriptLoader =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(AsyncScriptLoader, _Component);\n\n function AsyncScriptLoader(props, context) {\n var _this;\n\n _this = _Component.call(this, props, context) || this;\n _this.state = {};\n _this.__scriptURL = \"\";\n return _this;\n }\n\n var _proto = AsyncScriptLoader.prototype;\n\n _proto.asyncScriptLoaderGetScriptLoaderID = function asyncScriptLoaderGetScriptLoaderID() {\n if (!this.__scriptLoaderID) {\n this.__scriptLoaderID = \"async-script-loader-\" + idCount++;\n }\n\n return this.__scriptLoaderID;\n };\n\n _proto.setupScriptURL = function setupScriptURL() {\n this.__scriptURL = typeof getScriptURL === \"function\" ? getScriptURL() : getScriptURL;\n return this.__scriptURL;\n };\n\n _proto.asyncScriptLoaderHandleLoad = function asyncScriptLoaderHandleLoad(state) {\n var _this2 = this;\n\n // use reacts setState callback to fire props.asyncScriptOnLoad with new state/entry\n this.setState(state, function () {\n return _this2.props.asyncScriptOnLoad && _this2.props.asyncScriptOnLoad(_this2.state);\n });\n };\n\n _proto.asyncScriptLoaderTriggerOnScriptLoaded = function asyncScriptLoaderTriggerOnScriptLoaded() {\n var mapEntry = SCRIPT_MAP[this.__scriptURL];\n\n if (!mapEntry || !mapEntry.loaded) {\n throw new Error(\"Script is not loaded.\");\n }\n\n for (var obsKey in mapEntry.observers) {\n mapEntry.observers[obsKey](mapEntry);\n }\n\n delete window[options.callbackName];\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this3 = this;\n\n var scriptURL = this.setupScriptURL();\n var key = this.asyncScriptLoaderGetScriptLoaderID();\n var _options = options,\n globalName = _options.globalName,\n callbackName = _options.callbackName,\n scriptId = _options.scriptId; // check if global object already attached to window\n\n if (globalName && typeof window[globalName] !== \"undefined\") {\n SCRIPT_MAP[scriptURL] = {\n loaded: true,\n observers: {}\n };\n } // check if script loading already\n\n\n if (SCRIPT_MAP[scriptURL]) {\n var entry = SCRIPT_MAP[scriptURL]; // if loaded or errored then \"finish\"\n\n if (entry && (entry.loaded || entry.errored)) {\n this.asyncScriptLoaderHandleLoad(entry);\n return;\n } // if still loading then callback to observer queue\n\n\n entry.observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n return;\n }\n /*\n * hasn't started loading\n * start the \"magic\"\n * setup script to load and observers\n */\n\n\n var observers = {};\n\n observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n SCRIPT_MAP[scriptURL] = {\n loaded: false,\n observers: observers\n };\n var script = document.createElement(\"script\");\n script.src = scriptURL;\n script.async = true;\n\n for (var attribute in options.attributes) {\n script.setAttribute(attribute, options.attributes[attribute]);\n }\n\n if (scriptId) {\n script.id = scriptId;\n }\n\n var callObserverFuncAndRemoveObserver = function callObserverFuncAndRemoveObserver(func) {\n if (SCRIPT_MAP[scriptURL]) {\n var mapEntry = SCRIPT_MAP[scriptURL];\n var observersMap = mapEntry.observers;\n\n for (var obsKey in observersMap) {\n if (func(observersMap[obsKey])) {\n delete observersMap[obsKey];\n }\n }\n }\n };\n\n if (callbackName && typeof window !== \"undefined\") {\n window[callbackName] = function () {\n return _this3.asyncScriptLoaderTriggerOnScriptLoaded();\n };\n }\n\n script.onload = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.loaded = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n if (callbackName) {\n return false;\n }\n\n observer(mapEntry);\n return true;\n });\n }\n };\n\n script.onerror = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.errored = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n observer(mapEntry);\n return true;\n });\n }\n };\n\n document.body.appendChild(script);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n // Remove tag script\n var scriptURL = this.__scriptURL;\n\n if (options.removeOnUnmount === true) {\n var allScripts = document.getElementsByTagName(\"script\");\n\n for (var i = 0; i < allScripts.length; i += 1) {\n if (allScripts[i].src.indexOf(scriptURL) > -1) {\n if (allScripts[i].parentNode) {\n allScripts[i].parentNode.removeChild(allScripts[i]);\n }\n }\n }\n } // Clean the observer entry\n\n\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n delete mapEntry.observers[this.asyncScriptLoaderGetScriptLoaderID()];\n\n if (options.removeOnUnmount === true) {\n delete SCRIPT_MAP[scriptURL];\n }\n }\n };\n\n _proto.render = function render() {\n var globalName = options.globalName; // remove asyncScriptOnLoad from childProps\n\n var _this$props = this.props,\n asyncScriptOnLoad = _this$props.asyncScriptOnLoad,\n forwardedRef = _this$props.forwardedRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"asyncScriptOnLoad\", \"forwardedRef\"]); // eslint-disable-line no-unused-vars\n\n\n if (globalName && typeof window !== \"undefined\") {\n childProps[globalName] = typeof window[globalName] !== \"undefined\" ? window[globalName] : undefined;\n }\n\n childProps.ref = forwardedRef;\n return createElement(WrappedComponent, childProps);\n };\n\n return AsyncScriptLoader;\n }(Component); // Note the second param \"ref\" provided by React.forwardRef.\n // We can pass it along to AsyncScriptLoader as a regular prop, e.g. \"forwardedRef\"\n // And it can then be attached to the Component.\n\n\n var ForwardedComponent = forwardRef(function (props, ref) {\n return createElement(AsyncScriptLoader, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n ForwardedComponent.displayName = \"AsyncScriptLoader(\" + wrappedComponentName + \")\";\n ForwardedComponent.propTypes = {\n asyncScriptOnLoad: PropTypes.func\n };\n return hoistStatics(ForwardedComponent, WrappedComponent);\n };\n}","import ReCAPTCHA from \"./recaptcha\";\nimport makeAsyncScriptLoader from \"react-async-script\";\nvar callbackName = \"onloadcallback\";\nvar globalName = \"grecaptcha\";\n\nfunction getOptions() {\n return typeof window !== \"undefined\" && window.recaptchaOptions || {};\n}\n\nfunction getURL() {\n var dynamicOptions = getOptions();\n var hostname = dynamicOptions.useRecaptchaNet ? \"recaptcha.net\" : \"www.google.com\";\n return \"https://\" + hostname + \"/recaptcha/api.js?onload=\" + callbackName + \"&render=explicit\";\n}\n\nexport default makeAsyncScriptLoader(getURL, {\n callbackName: callbackName,\n globalName: globalName\n})(ReCAPTCHA);","import RecaptchaWrapper from \"./recaptcha-wrapper\";\nimport ReCAPTCHA from \"./recaptcha\";\nexport default RecaptchaWrapper;\nexport { ReCAPTCHA };","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDggMTAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xIDRIMkg2SDdWOUgxVjRaIiBmaWxsPSIjRkY3QjdCIi8+CjxwYXRoIGQ9Ik0yIDRIMVY5SDdWNEg2TTIgNEMyIDQgMS41IDEgNCAxQzYuNSAxIDYgNCA2IDRNMiA0SDYiIHN0cm9rZT0iI0ZGN0I3QiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=\"","import _setPrototypeOf from \"./_set_prototype_of.mjs\";\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () { }));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n construct = Reflect.construct;\n } else {\n construct = function construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return construct.apply(null, arguments);\n}\n\nexport default function _construct(Parent, args, Class) {\n return construct.apply(null, arguments);\n}\n","import construct from './_construct.mjs';\nimport isNativeFunction from './_is_native_function.mjs';\nimport getPrototypeOf from './_get_prototype_of.mjs';\nimport setPrototypeOf from './_set_prototype_of.mjs';\n\nfunction wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n wrapNativeSuper = function wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return wrapNativeSuper(Class);\n}\n\nexport default function _wrapNativeSuper(Class) {\n return wrapNativeSuper(Class);\n}\n","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n"],"names":["window","__NEXT_P","push","SNamePhoneForm","styled","NamePhoneForm","wideBreakpoints","CALLBACK_LABEL","defaultResult","ok","message","children","isMobile","useMatchMedia","useState","isLoading","setIsLoading","result","setResult","isStartInput","setIsStartInput","handleResult","res","dataLayerForCBPhonePush","action","ACTIONS","option","cleanUp","name","phone","clearInput","isValid","handleSubmit","params","doRequest","backCall","phoneNumber","value","isSuccess","ST","templateVariant","btnText","btnType","btnTypes","policyPath","POLICY_PAGE_LINK","onButtonClick","onChange","inputState","undefined","PopupResult","isOpen","onClose","title","text","type","EResultPopupStatus","SOCIALS","link","background","img","vkontakte","odnoklassniki","telegram","APP_IMG_SRC","Header","ImageWrapper","Container","WideContainer","Title","H1","FONTS","Grid","Support","BlockContainer","Socials","Callback","App","SControlElement","ControlElement","COLORS","SocialsList","Social","AppContent","TextContent","TextWrapper","Paragraph4","useSelector","getCurrentCity","callCenter","Section","indent","$united","rounder","$radius","H3","as","href","replace","$customFont","socials","CallbackForm","$smaller","Link","passHref","a","target","rel","ButtonGroup","Button","bType","WebpImage","urlWebp","src","alt","data-test","ListItem","MapWrapper","RounderContainer","SWithoutPointList","WithoutPointList","contacts","dispatch","useDispatch","cityIn","companyName","selectCompanyName","mapWrapperRef","useRef","mapInstanceRef","displayedMapPoints","prepareMapOptions","handleAddressClick","id","mapWrapper","current","mapInstance","openMapBalloon","scrollIntoView","block","behavior","length","map","misc","address","bgColor","ListContainer","$size","$direction","onClick","$withIndent","openCitySelect","tabIndex","ref","$desktop","$mobile","NoSSR","YandexMap","points","cityName","Wrapper","Content","Map","REDESIGN_CONTACT","on","off","customStylesSelect","container","base","width","valueContainer","paddingLeft","input","color","InnerWrap","FeedbackWrap","FeedbackLinksWrap","FeedbackLink","HeadPhoneLink","BlockNoteLink","FeedbackTitle","FilterWrap","SelectWrap","SwitcherWrap","MapWrap","ContactsWrap","Contact","React","mapWrapRef","mapPoints","props","selectOptions","prepareSelectOptions","state","isOnlyDomru","selectedContact","currentSelectOptions","onSelectContact","elem","setState","filterSelectedPoints","onSwitchDomRuFilter","filterOnlyDomRu","onClickContact","mapWrap","item","pid","label","contactType","list","filter","selectedPoints","find","render","this","city","domain","Select","options","isSearchable","isClearable","placeholder","noOptionsMessage","styles","BaseSwitcher","checked","ContactList","Component","propTypes","PropTypes","defaultProps","connect","currentCity","ContactPage","isRedesignContactAbTestActive","Layout","description","withMenu","withFooter","withChat","ContactOld","getInitialProps","req","providerId","resp","initialProps","store","getState","provider","getRetailPoint","getABNVariantOnSSr","payload","companyType","response","contentRequest","company_type","prepareData","data","captureQueryError","Array","isArray","point","point_id","point_name","company","hours","work_time","axiosContent","axios","baseURL","isServerSide","process","interceptors","request","use","config","token","cookies","ACCESS_TOKEN_COOKIE","noCacheKey","NO_CACHE_COOKIE","headers","error","Promise","reject","Object","create","get","url","paramsSerializer","stringify","Error","WithoutPointsList","disabled","required","className","isChecked","setIsChecked","onChangeHandler","useCallback","event","Label","lockedIcon","hex2rgb","H2","H4","H5","Paragraph1","Paragraph2","Paragraph3","Paragraph5","$lastIndent","css","Icon","rest","strong","Boolean","size","Svg","getFontByType","mobile","desktop","p","getPaddingByIncomingIndent","getRadiusByIncomingProps","namePhoneTemplates","first","second","recaptchaNamePhoneTemplates","phoneTemplates","recaptchaPhoneTemplates","GridTemplate","isOnlyPhone","isRecaptcha","variant","Input","InputSimple","NameField","PhoneField","InputName","nameDecorator","InputPhone","phoneDecorator","BaseButton","PolicyNoteWrapper","invertColor","Captcha","ReCAPTCHA","isDisabled","recapchaSiteKey","phoneParams","nameParams","setPhone","setName","isValidInputs","setIsValidInputs","setIsRecaptcha","captchaToken","setCaptchaToken","useEffect","stateInput","fieldName","errorMessage","PolicyNote","agreeUrl","buttonText","recaptchaToken","grecaptcha","getResponse","sitekey","_extends","assign","i","arguments","source","key","prototype","hasOwnProperty","call","apply","_assertThisInitialized","self","ReferenceError","_React$Component","subClass","superClass","_this","handleExpired","bind","handleErrored","handleChange","handleRecaptchaRef","constructor","__proto__","_proto","getValue","_widgetId","getWidgetId","execute","_executeRequested","executeAsync","_this2","resolve","executionResolve","executionReject","reset","onExpired","onErrored","explicitRender","wrapper","document","createElement","callback","theme","tabindex","stoken","hl","badge","captcha","appendChild","componentDidMount","componentDidUpdate","componentWillUnmount","delayOfCaptchaIframeRemoving","temporaryNode","body","style","display","firstChild","setTimeout","removeChild","_this$props","childProps","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","displayName","SCRIPT_MAP","idCount","callbackName","getScriptURL","recaptchaOptions","useRecaptchaNet","globalName","WrappedComponent","wrappedComponentName","AsyncScriptLoader","_Component","context","__scriptURL","asyncScriptLoaderGetScriptLoaderID","__scriptLoaderID","setupScriptURL","asyncScriptLoaderHandleLoad","asyncScriptOnLoad","asyncScriptLoaderTriggerOnScriptLoaded","mapEntry","loaded","obsKey","observers","_this3","scriptURL","_options","scriptId","entry","errored","script","attribute","async","attributes","setAttribute","callObserverFuncAndRemoveObserver","func","observersMap","onload","observer","onerror","removeOnUnmount","allScripts","getElementsByTagName","parentNode","forwardedRef","ForwardedComponent","forwardRef","module","exports","isNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","toString","e","Parent","args","Class","instance","Function","_construct","wrapNativeSuper","_cache","fn","TypeError","has","set","enumerable","writable","configurable","_wrapNativeSuper"],"sourceRoot":""}