{"version":3,"file":"static/chunks/2638.83d51b427bff7ac9.js","mappings":"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","sources":["webpack://_N_E/./src/components/LandingBlock/Common/Throbber/styled.tsx","webpack://_N_E/./src/components/LandingBlock/Common/Throbber/index.tsx","webpack://_N_E/./src/components/LandingBlock/Header/CallbackForm/index.tsx","webpack://_N_E/./src/components/LandingBlock/Header/CallbackForm/styled.tsx","webpack://_N_E/./src/helpers/getTextWithTag.ts","webpack://_N_E/./src/helpers/isHtmlWithText.ts","webpack://_N_E/./src/services/api/api-request/request-by-connection/types.ts","webpack://_N_E/./src/services/api/api-request/request-by-connection/index.ts","webpack://_N_E/./src/services/api/api-request/request-by-connection/useRequestByConnection.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport UIThrobber from '@r1-frontend/ui-react/components/loaders/Throbber';\n\nexport const ThrobberWrapper = styled.div`\n position: fixed;\n z-index: 99;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(255, 255, 255, .3);\n`;\n\nexport const Throbber = styled(UIThrobber)`\n position: fixed;\n width: 100px;\n height: 100px;\n z-index: 100;\n left: 50%;\n top: 50%;\n margin-left: -50px;\n margin-top: -50px;\n`;\n","import * as ST from './styled';\n\ninterface IProps {\n isShow?: boolean;\n}\n\nconst Throbber = ({ isShow = true }: IProps): JSX.Element => {\n return (\n isShow\n ? \n \n \n : <>>\n );\n};\n\nexport default Throbber;\n","import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { getYmIdValue } from '@r1-frontend/shared/helpers/getYmId';\nimport Input from '@r1-frontend/ui-react/components/input';\nimport PopupResult, { EResultPopupStatus } from '@r1-frontend/ui-react/components/popups/popupResult';\nimport { btnTypes } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport { dataLayerPush } from '@r1-frontend/ui-react/components/helpers';\nimport Throbber from '~/src/components/LandingBlock/Common/Throbber';\nimport { LandingContext } from '~/src/containers/ContextContainer';\nimport { useSendRequestByConnection } from '~/src/services/api/api-request/request-by-connection/useRequestByConnection';\nimport { EResponseType } from '~/src/services/api/api-request/request-by-connection/types';\nimport type { ICallbackFormProps } from '~/src/components/LandingBlock/Header/CallbackForm/types';\nimport * as ST from './styled';\n\nconst initialFormResult = {\n hasResult: false,\n title: '',\n description: '',\n type: '',\n};\n\nconst CallbackForm = ({\n form,\n analytics,\n gaLabel,\n inline = false,\n customStyles,\n pageAlias,\n isNeedHideForSticky,\n direction = 'horizontal',\n}: ICallbackFormProps): JSX.Element => {\n const phoneInput = useRef();\n const [phone, setPhone] = useState('');\n const [modalResult, setModalResult] = useState({ ...initialFormResult });\n const isFirstPhoneChange = useRef(true);\n\n const { ymUid } = useContext(LandingContext);\n const ymUidValue = useMemo(() => ymUid ?? getYmIdValue(), [ymUid]);\n\n const [\n isLoadingRequestByConnection,\n dataRequestByConnection,\n sendRequestCreateRequestByConnection,\n ] = useSendRequestByConnection();\n\n const sendGtmEvent = useCallback(() => {\n if (analytics) {\n const { category = '', action = '', label = '' } = analytics;\n\n if (category || action || label) {\n const event = {\n event: 'UAevent',\n ...analytics,\n category: category || '',\n action: action || '',\n };\n dataLayerPush(event);\n }\n }\n }, [analytics]);\n\n const {\n globalEnsId,\n productId,\n phonePlaceholder,\n popupTitleSuccess = 'Заявка отправлена',\n popupTitleError = 'Заявка не отправлена',\n buttonProps,\n formWidth,\n formHeight,\n phoneFormWidth,\n checkboxFontSize,\n checkboxFontColor,\n } = form;\n\n const [isValid, setIsValid] = useState(false);\n const [isSending, setIsSending] = useState(false);\n\n useEffect(() => {\n const phoneError = phoneInput.current?.state.hasError;\n setIsValid(Boolean(phone && !phoneError));\n }, [phone]);\n\n const reset = useCallback(() => {\n setPhone('');\n setIsValid(false);\n setIsSending(false);\n\n phoneInput.current?.resetStateWithUpdates();\n }, [phoneInput]);\n\n const resultHandler = useCallback((title: string, description: string, type: EResponseType) => {\n setModalResult({\n hasResult: true,\n title,\n description,\n type,\n });\n setIsSending(false);\n reset();\n }, [reset]);\n\n const onSubmit = useCallback(async () => {\n if (isValid && (globalEnsId || productId)) {\n sendGtmEvent();\n sendRequestCreateRequestByConnection({\n phone,\n fio: 'Потенциальный клиент',\n globalEnsId,\n product_id: productId,\n check_call_type: '/landing/' + pageAlias,\n analyticsId: ymUidValue,\n });\n }\n }, [\n isValid,\n globalEnsId,\n productId,\n sendGtmEvent,\n sendRequestCreateRequestByConnection,\n phone,\n ymUidValue,\n ]);\n\n const dataLayerPushForCallBack = useCallback((action) => {\n dataLayerPush({\n event: 'UAevent',\n category: 'application_form',\n action,\n label: gaLabel,\n });\n }, [gaLabel]);\n\n const onPhoneChange = (value) => {\n if (isFirstPhoneChange.current) {\n dataLayerPushForCallBack('started');\n isFirstPhoneChange.current = false;\n }\n setPhone(value);\n };\n\n useEffect(() => {\n if (!isLoadingRequestByConnection && dataRequestByConnection) {\n const { status, message } = dataRequestByConnection;\n\n dataLayerPushForCallBack(status ? 'finished' : 'error');\n if (status) {\n // @ts-ignore\n window._tmr?.push({ id: '3213734', type: 'reachGoal', goal: 'Lead' });\n }\n resultHandler(\n status\n ? popupTitleSuccess\n : popupTitleError,\n message,\n status\n ? EResponseType.Success\n : EResponseType.Error\n );\n\n }\n }, [isLoadingRequestByConnection]);\n\n return (\n <>\n {inline\n ? \n \n \n \n {buttonProps?.buttonText}\n \n \n \n \n \n \n : \n \n \n \n {buttonProps?.buttonText}\n \n \n \n \n \n \n \n \n }\n\n \n setModalResult({ ...initialFormResult })}\n title={modalResult.title}\n text={modalResult.description}\n type={modalResult.type as EResultPopupStatus}\n />\n >\n );\n};\nexport default CallbackForm;\n","import styled, { css } from 'styled-components';\nimport { FlexBoxCol } from '@r1-frontend/ui-react/components/layouts/flexBoxGrid';\nimport Input from '@r1-frontend/ui-react/components/input';\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport { BaseButton } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport { fonts } from '~/src/helpers/font';\nimport { breakPoints, styleWithBreakPoints } from '~/src/components/LandingBlock/styled';\nimport { PolicyNote } from '@r1-frontend/ui-react/components/PolicyNote';\n\nexport interface IBtnProps {\n backgroundColor?: string;\n backgroundHoverColor?: string;\n buttonTextColor?: string;\n}\n\nexport interface FormColProps {\n width?: string;\n height?: string;\n direction?: 'horizontal' | 'vertical';\n}\n\nexport interface IFormInputProps {\n phoneFormWidth?: string;\n}\n\nexport const Wrapper = styled.div<{ isNeedHideForSticky?: boolean }>`\n @media (max-width: ${breakPoints.mobile}){\n display: ${p => p.isNeedHideForSticky ? 'none' : 'block'};\n }\n \n ${p => styleWithBreakPoints(p, 'Header.PhoneForm')}\n`;\n\nexport const Row = styled.div<{direction?: string}>`\n width: 100%;\n display: flex;\n ${({ direction }) => direction === 'vertical' ? 'justify-content: center' : ''};\n @media (max-width: ${breakPoints.mobile}) {\n flex-direction: column;\n }\n`;\n\nexport const Col = styled(FlexBoxCol)``;\n\nexport const FormCol = styled.div`\n flex: ${props => props.width ? `0 1 ${props.width}px` : '0 1 100%'};\n display: flex;\n margin-bottom: 8px;\n \n input, button {\n height: ${props => props.height ? props.height + 'px' : '50px'};\n }\n\n ${({ direction }) => direction === 'vertical' ? css`\n flex: 0 1 auto;\n display: grid;\n grid-auto-rows: 1fr;\n grid-row-gap: 16px;\n ` : css``}\n\n @media (max-width: ${breakPoints.mobile}) {\n flex: 0 1 auto;\n display: grid;\n grid-auto-rows: 1fr;\n grid-row-gap: 16px;\n }\n`;\n\nexport const AgreeCol = styled.div`\n margin-left: 15px;\n flex: 0 1 auto;\n`;\n\nexport const FormInput = styled(Input)`\n margin-bottom: 0;\n margin-right: 15px;\n flex: ${props => props.phoneFormWidth ? `0 0 ${props.phoneFormWidth}px` : '0 1 auto'};\n \n @media (max-width: ${breakPoints.sDesktop}) {\n font: ${fonts.XS};\n \n input {\n padding: 0 11px;\n }\n }\n\n @media (max-width: ${breakPoints.tablet}) {\n font: ${fonts.S};\n \n input {\n padding: 0 20px;\n }\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n width: 100%;\n margin-right: 0;\n height: auto;\n }\n`;\n\nexport const Button = styled(BaseButton)`\n width: 100%;\n z-index: 8;\n min-width: 0;\n background-color: ${p => p.backgroundColor};\n border-color: ${p => p.backgroundColor};\n color: ${p => p.buttonTextColor};\n flex: 0 1 auto;\n\n &:hover {\n background-color: ${p => p.backgroundHoverColor};\n border-color: ${p => p.backgroundHoverColor};\n }\n \n @media (max-width: ${breakPoints.mobile}) {\n padding: 17px;\n }\n \n ${p => styleWithBreakPoints(p, 'Header.PhoneForm.Button')}\n ${p => styleWithBreakPoints(p, 'Header.PhoneForm.Button.Text')}\n ${p => styleWithBreakPoints(p, 'Callback.PhoneForm.Button')}\n ${p => styleWithBreakPoints(p, 'Callback.PhoneForm.Button.Text')}\n`;\n\nexport const Link = styled.a`\n font: ${fonts.Medium};\n color: ${COLORS.white};\n text-decoration: underline;\n white-space: nowrap;\n position:relative;\n z-index: 10;\n \n @media(max-width: 1280px) {\n position: absolute;\n bottom: 0;\n right: 25%;\n margin-right: 25px;\n }\n \n @media (max-width: ${breakPoints.mobile}) {\n color: ${COLORS.black};\n bottom: -50px;\n right: auto;\n left: 0;\n }\n`;\n\nexport const Offer = styled.div`\n display: inline;\n font: ${fonts.XXS};\n color: ${COLORS.darkGrey};\n white-space: pre-wrap;\n \n @media (max-width: ${breakPoints.tablet}) {\n white-space: normal; \n }\n \n @media (max-width: ${breakPoints.mobile}) {\n color: rgba(0,0,0,.7);\n display:inline-block;\n font: ${fonts.XXS};\n }\n`;\n\nexport const OfferLink = styled.a`\n text-decoration: underline;\n font: ${fonts.Medium};\n color: ${COLORS.darkGrey};\n`;\n\ninterface IPolicyNoteTextProps {\n fontSize?: string;\n fontColor?: string;\n}\n\nexport const AgreementPolicy = styled(PolicyNote)`\n & div, & a {\n ${({ fontSize }) => fontSize ? `font: ${fontSize};` : '' }\n ${({ fontColor }) => fontColor ? `color: ${fontColor} !important;` : '' }\n }\n`;\n","import { isHtmlWithText } from './isHtmlWithText';\n\nexport const getTextWithTag = (text = '', tag?: string): string => {\n if (!text || !tag) {\n return text;\n }\n return `<${tag}>${isHtmlWithText(text)}${tag}>`;\n};\n","\nexport const isHtmlWithText = (__html = ''): string => {\n const regExp = /(<([^>]+)>)/ig;\n const html = __html.replace(regExp, '');\n return html;\n};\n","export enum EProductsId {\n internet = 5,\n tv = 53,\n telephony = 31,\n tvAndInternet = '5,53',\n content = 67,\n domofon = 75,\n videoControl = 112,\n others = 0,\n}\n\ntype TCategory = {\n id: number,\n title: string,\n name: string,\n};\n\nexport interface IBaseRequestByConnectionParam {\n fio: string,\n phone: string,\n product_id: EProductsId | EProductsId[] | string,\n check_call_type: string,\n domain?: string,\n equip_price_id?: number,\n form_type?: string,\n plan?: number,\n leasing_duration?: number | string,\n cost_type?: number | string,\n petition?: string,\n isPopup?: boolean,\n option?: string,\n analyticsId: string,\n}\n\nexport type TCameras = {\n p?: string,\n id: number,\n pr: number | null,\n ot: number,\n ld: string,\n pn?: string,\n pp?: number | null,\n vn?: string,\n vp: number | null,\n ct: number,\n cp: number | null,\n}\n\nexport interface IRequestByConnectionQuery extends IBaseRequestByConnectionParam {\n router?: number | number[] | string | string[],\n internet_equipment_id?: number | number[] | string | string[],\n tv_equipment_id?: number | number[] | string | string[],\n tv_equipment_buy?: number | string,\n plan?: number,\n cameras?: TCameras[],\n}\n\nexport interface IRequestByConnectionParam extends IRequestByConnectionQuery {\n category?: TCategory,\n globalEnsId?: number,\n}\n\nexport enum EResponseType {\n Success = 'success',\n Error = 'error',\n}\n\nexport interface IRequestByConnectionResponse {\n message: string,\n status: number,\n}\n\nexport interface IRequestByConnectionResult extends IRequestByConnectionResponse {\n message: string,\n status: number;\n}\n\n","import { captureException } from '@sentry/node';\nimport {\n EProductsId,\n IRequestByConnectionParam,\n IRequestByConnectionQuery,\n IRequestByConnectionResponse,\n IRequestByConnectionResult,\n} from '~/src/services/api/api-request/request-by-connection/types';\nimport axios from 'axios';\n\nconst API_ENDPOINT_USER_REQUEST = process.env.NEXT_PUBLIC_API_REQUEST_ENDPOINT || 'https://api-request.dom.ru';\n\n/**\n * * POST-запрос заявка на подключение /user/request-by-connection.\n * @param {string} cityDomain поддомен хоста b2c\n * @param {string} token CSRF-Token\n * @param {IRequestByConnectionParam | FormData} data - данные\n * @param {string} [cityDomain] - город\n * @param {string} data.fio - The name of the employee.\n * @param {string} data.phone - The employee's department.\n * @param {string} data.product_id - (0-прочее, 5-интернет, 53-Дом.ру Tv, 67-продажа контента).\n * @return {object} data\n */\n\nexport const sendRequestByConnection = async (\n cityDomain: string,\n data: IRequestByConnectionParam,\n token: string,\n): Promise => {\n const url = '/user/request-by-connection';\n\n try {\n const preparedData = prepareRequest(cityDomain, data);\n const headers = {\n Domain: cityDomain,\n 'X-CSRF-Token': token,\n 'X-Requested-With': 'XMLHttpRequest',\n };\n\n const response = await axios.create({\n baseURL: API_ENDPOINT_USER_REQUEST,\n headers: headers,\n })\n .post(url, preparedData);\n\n const { message, status } = response.data;\n\n return {\n message,\n status,\n };\n } catch (e) {\n captureException(e);\n }\n};\n\nconst prepareRequest = (cityDomain: string, data: IRequestByConnectionParam): IRequestByConnectionQuery => {\n const { globalEnsId, category, ...preparedData } = data;\n const { product_id, domain } = preparedData;\n\n let fieldId, currProductId;\n if (product_id && !globalEnsId) {\n currProductId = product_id;\n } else if ('decoders' === category?.name) {\n fieldId = 'tv_equipment_id';\n currProductId = EProductsId.tv;\n } else {\n fieldId = 'router';\n currProductId = EProductsId.internet;\n }\n\n preparedData.product_id = `[${currProductId}]`;\n if (globalEnsId) {\n preparedData[fieldId] = `[${globalEnsId}]`;\n }\n\n if (!domain) {\n preparedData.domain = cityDomain;\n }\n\n return preparedData;\n};\n\n","import { useCallback, useContext, useState } from 'react';\nimport { LandingContext } from '~/src/containers/ContextContainer';\nimport { sendRequestByConnection } from '~/src/services/api/api-request/request-by-connection/index';\nimport type {\n IRequestByConnectionParam,\n IRequestByConnectionResult,\n} from '~/src/services/api/api-request/request-by-connection/types';\n\nexport const useSendRequestByConnection = (): [\n boolean,\n IRequestByConnectionResult,\n (params: IRequestByConnectionParam) => void,\n] => {\n const { city: { domain = 'perm' }, token } = useContext(LandingContext);\n\n const [isLoading, setIsLoading] = useState(false);\n const [data, setData] = useState();\n\n const send = useCallback(async (params: IRequestByConnectionParam) => {\n setIsLoading(true);\n const response = await sendRequestByConnection(domain, params, token);\n\n setData(response);\n setIsLoading(false);\n }, [domain, token]);\n\n const sendRequest = useCallback((params: IRequestByConnectionParam) => {\n send(params);\n }, [send]);\n\n return [\n isLoading,\n data,\n sendRequest,\n ];\n};\n"],"names":["ThrobberWrapper","styled","Throbber","UIThrobber","isShow","ST","role","initialFormResult","hasResult","title","description","type","form","analytics","gaLabel","inline","customStyles","pageAlias","isNeedHideForSticky","direction","phoneInput","useRef","useState","phone","setPhone","modalResult","setModalResult","isFirstPhoneChange","useContext","LandingContext","ymUid","ymUidValue","useMemo","getYmIdValue","useSendRequestByConnection","isLoadingRequestByConnection","dataRequestByConnection","sendRequestCreateRequestByConnection","sendGtmEvent","useCallback","category","action","label","event","dataLayerPush","globalEnsId","productId","phonePlaceholder","popupTitleSuccess","popupTitleError","buttonProps","formWidth","formHeight","phoneFormWidth","checkboxFontSize","checkboxFontColor","isValid","setIsValid","isSending","setIsSending","useEffect","phoneError","current","state","hasError","Boolean","reset","resetStateWithUpdates","resultHandler","onSubmit","fio","product_id","check_call_type","analyticsId","dataLayerPushForCallBack","onPhoneChange","value","window","status","message","_tmr","push","id","goal","EResponseType","width","height","ref","onChange","required","mask","errorMessage","placeholder","aria-label","name","autoComplete","defaultValue","btnTypes","onClick","disabled","backgroundColor","backgroundHoverColor","buttonText","agreeUrl","fontSize","fontColor","xs","sm","md","lg","PopupResult","isOpen","onClose","text","Wrapper","breakPoints","p","styleWithBreakPoints","Row","Col","FlexBoxCol","FormCol","props","css","AgreeCol","FormInput","Input","fonts","Button","BaseButton","buttonTextColor","AgreementPolicy","COLORS","PolicyNote","getTextWithTag","tag","isHtmlWithText","__html","regExp","html","replace","EProductsId","internet","tv","telephony","content","domofon","videoControl","others","sendRequestByConnection","cityDomain","data","token","url","preparedData","headers","response","e","prepareRequest","Domain","axios","baseURL","process","post","captureException","fieldId","currProductId","domain","city","isLoading","setIsLoading","setData","send","params"],"sourceRoot":""}