{"version":3,"file":"static/chunks/3616-8eed622c4977c04e.js","mappings":"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","sources":["webpack://_N_E/./src/components/LazyCallBack/components/SpecialOffer/styled.ts","webpack://_N_E/./src/components/LazyCallBack/components/SpecialOffer/index.tsx","webpack://_N_E/./src/components/LazyCallBack/helpers/lazyCallbackDataLayerPush.ts","webpack://_N_E/./src/components/LazyCallBack/actions/analytics/sendClickContinue.ts","webpack://_N_E/./src/components/LazyCallBack/actions/analytics/sendRequestStatus.ts","webpack://_N_E/./src/components/LazyCallBack/actions/analytics/sendStartInputName.ts","webpack://_N_E/./src/components/LazyCallBack/index.tsx","webpack://_N_E/./src/components/LazyCallBack/styled.ts","webpack://_N_E/./src/store/selectors/filteredBundles.ts","webpack://_N_E/../../packages/ui-react/src/experimental/purchase/cost/Cost/RubleSymbol.ts","webpack://_N_E/../../packages/ui-react/src/experimental/purchase/cost/Cost/index.tsx","webpack://_N_E/../../packages/ui-react/src/experimental/purchase/cost/Cost/styled.ts"],"sourcesContent":["import styled from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nexport const SpecialOfferWrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n align-items: stretch;\n\n padding: 16px 24px 24px 24px;\n\n background: url('/static/images/full-buy/rouble-bg-mobile.svg') no-repeat ${COLORS.Locked};\n \n @media (min-width: ${wideBreakpoints.mobile}) {\n flex-wrap: nowrap;\n flex-direction: row;\n align-items: flex-start;\n\n padding: 16px 32px 24px 32px;\n background-image: url('/static/images/full-buy/rouble-bg.svg');\n }\n`;\n","import Button from '@r1-frontend/ui-react/components/buttons/button';\nimport { Paragraph4 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nimport * as ST from './styled';\n\ninterface IProps {\n btnText: string | undefined,\n onClickContinue: () => void,\n}\n\nconst SpecialOffer = ({ btnText = 'Продолжить онлайн', onClickContinue }: IProps) => {\n return (\n \n \n Доставка и подключение с бонусом — только при оформлении онлайн\n \n \n {btnText}\n \n \n );\n};\n\nexport default SpecialOffer;\n","import { dataLayerPush, TDataLayerPushArgument } from '@r1-frontend/analytics/dataLayerPush';\n\nimport { CATEGORIES, EVENTS } from '@r1-frontend/shared/constants/analytics';\n\nconst lazyCallbackDataLayerPush = (params: Omit, 'category' | 'event'>): void => {\n return dataLayerPush({\n ...params,\n event: EVENTS.UAevent,\n category: CATEGORIES.applicationForm,\n });\n};\n\nexport default lazyCallbackDataLayerPush;\n","import { ACTIONS } from '@r1-frontend/shared/constants/analytics';\n\nimport lazyCallbackDataLayerPush from '~/src/components/LazyCallBack/helpers/lazyCallbackDataLayerPush';\n\nconst sendClickContinue = (tariffName: string): void => {\n lazyCallbackDataLayerPush({\n action: ACTIONS.clickContinueOnline,\n label: `${tariffName} | short_form`,\n });\n};\n\nexport default sendClickContinue;\n","import { ACTIONS } from '@r1-frontend/shared/constants/analytics';\n\nimport { dataLayerForCBPhonePush } from '~/src/helpers/eventsForDataLayer';\n\nconst sendRequestStatus = (\n tariffName: string,\n status: boolean,\n message: string | null,\n uid: number | null,\n): void => {\n dataLayerForCBPhonePush({\n label: `${tariffName} | short_form | ${message || 'Не удалось отправить заявку.'}`,\n action: status ? ACTIONS.finished : ACTIONS.error,\n uid,\n });\n};\n\nexport default sendRequestStatus;\n","import { ACTIONS } from '@r1-frontend/shared/constants/analytics';\n\nimport lazyCallbackDataLayerPush from '~/src/components/LazyCallBack/helpers/lazyCallbackDataLayerPush';\n\nconst sendStartInputName = (tariffName: string): void => {\n lazyCallbackDataLayerPush({\n action: ACTIONS.started,\n label: `${tariffName} | short_form`,\n });\n};\n\nexport default sendStartInputName;\n","import { Dispatch, ReactNode, SetStateAction, useCallback, useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useRouter } from 'next/router';\n\nimport { doRequest } from '@r1-frontend/do-request';\nimport {\n ERequestStatus,\n requestByConnection,\n RequestDto,\n ResponseDto,\n} from '@r1-frontend/api-domru/api-request/v1/user/request-by-connection';\n\nimport Button, { TButtonType } from '@r1-frontend/ui-react/components/buttons/button';\nimport { PolicyNote } from '@r1-frontend/ui-react/components/PolicyNote';\nimport { EResultPopupStatus } from '@r1-frontend/ui-react/components/popups/popupResult';\nimport { Paragraph4 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport TextWrapper from '@r1-frontend/ui-react/components/typography/TextWrapper';\nimport { TField } from '@r1-frontend/ui-react/organisms/Forms/NamePhoneForm';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nimport SpecialOffer from '~/src/components/LazyCallBack/components/SpecialOffer';\nimport PopupResult from '~/src/components/Popups/PopupResult';\nimport { POLICY_PAGE_LINK } from '~/src/constants';\nimport { TState } from '~/src/store';\nimport { selectCsrf } from '~/src/store/selectors/auth/selectCsrf';\n\nimport { sendClickContinue, sendRequestStatus, sendStartInputName } from './actions/analytics';\n\nimport * as ST from './styled';\n\ninterface IPopupResult {\n isOrderOpened: boolean,\n isResultOpened: boolean,\n resultTitle: string,\n resultText: string,\n resultType: EResultPopupStatus,\n}\n\ninterface ILazyCallbackProps {\n tariffName: string,\n requestDataParams: Omit,\n\n withPopupResult?: boolean,\n withSpecialOffer?: boolean,\n onClose?: () => void,\n title?: string,\n description?: string | ReactNode,\n btnText?: string,\n btnType?: TButtonType,\n actionBtnText?: string,\n onSubmit?: (response: { ok: boolean, message: string, status: ERequestStatus }) => void,\n}\n\nexport const neededSelectors = (state: TState) => ({\n isAuth: state.auth.isAuth,\n clientPersonal: state.auth.clientPersonal,\n});\n\nconst LazyCallBack = (\n {\n tariffName,\n requestDataParams,\n withPopupResult,\n withSpecialOffer,\n onClose,\n title = 'Если не хотите заполнять заявку сами',\n description = <>Можно сделать это по телефону. Заодно поможем выбрать роутер.,\n btnText = 'Заказать звонок',\n btnType = 'action',\n actionBtnText,\n onSubmit,\n }: ILazyCallbackProps,\n): JSX.Element => {\n const router = useRouter();\n const { isAuth, clientPersonal } = useSelector(neededSelectors);\n const csrf = useSelector(selectCsrf);\n\n const [name, setName] = useState({} as TField);\n const [phone, setPhone] = useState({} as TField);\n const [startInput, setStartInput] = useState(false);\n const [isValid, setIsValid] = useState(false);\n const [popup, setPopup] = useState({\n isOrderOpened: false,\n isResultOpened: false,\n resultTitle: '',\n resultText: '',\n resultType: EResultPopupStatus.SUCCESS,\n });\n\n const uid = isAuth ? clientPersonal?.agreement || null : null;\n\n useEffect(() => {\n setIsValid(!!(phone?.isValid && name?.isValid));\n }, [name, phone]);\n\n const onChangeHandler = useCallback((stateInput: TField, _setState: Dispatch>) => {\n if (!startInput && stateInput.value !== undefined) {\n sendStartInputName(tariffName);\n setStartInput(true);\n }\n _setState(stateInput);\n }, [startInput, tariffName]);\n\n const openPopupResult = useCallback((ok: boolean, message: string, status: EResultPopupStatus) => {\n const popupResult = {\n isOrderOpened: false,\n isResultOpened: true,\n resultType: status,\n resultTitle: ok ? 'Заявка на подключение отправлена' : 'Произошла ошибка',\n resultText: ok ? 'Мы свяжемся с вами в ближайшее время' : message,\n };\n\n setPopup(popupResult);\n }, []);\n\n const sendRequestHandler = useCallback(async(fio: string, phone: string) => {\n const resp = await doRequest.apiRequest(\n requestByConnection({\n ...requestDataParams,\n fio,\n phone,\n csrf,\n }),\n );\n\n if (resp.isSuccess) {\n const { status, message } = resp.payload;\n sendRequestStatus(tariffName, !!status, message, uid);\n\n return {\n ok: !!status,\n message,\n status: status ? ERequestStatus.success : ERequestStatus.error,\n };\n } else {\n sendRequestStatus(tariffName, false, null, uid);\n\n return {\n ok: false,\n message: 'Не удалось отправить заявку.',\n status: ERequestStatus.error,\n };\n }\n }, [requestDataParams, tariffName, uid]);\n\n const onSubmitHandler = useCallback(async() => {\n if (isValid) {\n const resp = await sendRequestHandler(name.value, phone.value);\n const { ok, message, status } = resp;\n\n openPopupResult(ok, message, status as unknown as EResultPopupStatus);\n\n phone?.clearInput();\n name?.clearInput();\n\n onSubmit && onSubmit(resp);\n }\n }, [isValid, name, phone, openPopupResult, sendRequestHandler, onSubmit]);\n\n const closePopupHandler = useCallback(() => {\n setPopup(state => ({\n ...state,\n isResultOpened: false,\n }));\n\n if (popup.resultType === 'success') {\n const mainPageUrl = isAuth ? '/lk' : '/';\n router.push(mainPageUrl);\n }\n }, [popup.resultType, router, isAuth]);\n\n const onClickContinueHandler = () => {\n sendClickContinue(tariffName);\n onClose && onClose();\n };\n\n return (\n \n \n \n {title}\n {description}\n \n\n \n \n onChangeHandler(stateInput, setName)}\n className={'ym-disable-keys'}\n data-test='lazy-callback-form-name-input'\n />\n onChangeHandler(stateInput, setPhone)}\n className={'ym-disable-keys'}\n data-test='lazy-callback-form-phone-input'\n />\n \n\n \n\n \n {btnText}\n \n \n \n\n {startInput && withSpecialOffer && (\n \n )}\n\n {withPopupResult && (\n \n )}\n \n );\n};\n\nexport default LazyCallBack;\n","import styled from 'styled-components';\n\nimport InputSimple, { nameDecorator, phoneDecorator } from '@r1-frontend/ui-react/components/inputSimple';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { H3 } from '@r1-frontend/ui-react/components/typography/heading';\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\n\nexport const LazyCallBack = styled.div`\n width: 100%;\n flex-direction: column;\n border-radius: ${BorderRadius.OuterBlockRadius};\n background: radial-gradient(211.62% 393.08% at 0% 8.33%, rgba(237, 61, 61, 0.05) 0%, rgba(237, 61, 61, 0) 100%), #FFFFFF;\n`;\n\nexport const Form = styled.div`\n width: 100%;\n flex-direction: column;\n flex-wrap: nowrap;\n align-items: stretch;\n row-gap: 16px;\n\n @media (min-width: ${wideBreakpoints.mobile}) {\n align-items: flex-start;\n }\n`;\n\nexport const InputFields = styled.div`\n display: flex;\n flex-direction: column;\n gap: 12px;\n\n width: 100%;\n\n @media (min-width: ${wideBreakpoints.mobile}) {\n flex-direction: row;\n }\n`;\n\nexport const Input = styled(InputSimple)`\n flex: 1;\n margin-bottom: 0;\n`;\n\nexport const NameInput = nameDecorator(Input);\n\nexport const PhoneInput = phoneDecorator(Input);\n\nexport const ContentWrapper = styled.div`\n padding: 24px;\n\n @media (min-width: ${wideBreakpoints.mobile}) {\n padding: 32px 32px 24px 32px;\n }\n`;\n\nexport const SH3 = styled(H3)`\n padding-right: 35px;\n`;\n","import { createSelector } from 'reselect';\n\nimport { IInternetPackage } from '@r1-frontend/api-domru/api-content/v1/internet-tariffs/dto/ResponseDto';\n\nimport { ISelectedFilters } from '~/src/entities/filteredBundles';\nimport { ITariff } from '~/src/entities/formattedTariff';\nimport { formattingBundleForCard, formattingTariffForCard } from '~/src/helpers/formatter';\nimport { TState } from '~/src/store';\nimport { getTariffsSelector } from '~/src/store/selectors/bundles';\n\nexport const selectAllTariffs = createSelector(\n [\n getTariffsSelector,\n (state: TState) => state.internet.tariffs,\n ],\n (bundles, internet) => {\n // возвращаемый функциями форматирования объект не согласован с ITariff - но повсеместно в коде используется как ITariff, требуется доработка ITariff.\n const formatBundles: ITariff[] = bundles.map(formattingBundleForCard);\n const formatInternets: ITariff[] = internet.map(formattingTariffForCard);\n\n return [\n ...formatBundles,\n ...formatInternets,\n ].sort((a, b) => a.weight - b.weight);\n },\n);\n\nexport const selectInternetTariffByAlias = createSelector(\n [\n (state: TState) => state.internet.tariffs,\n (_: TState, alias: string | number) => alias,\n ],\n (tariffs, alias) => {\n const tariff = tariffs.find(\n ({ description }: IInternetPackage) => description?.alias === alias,\n );\n\n return tariff ? formattingTariffForCard(tariff) : null;\n },\n);\n\n\nexport const selectCheckedFilters = createSelector(\n [\n (state: TState): ISelectedFilters[] => state?.filteredBundles?.selected,\n (state: TState): string => state?.filteredBundles?.groupKey,\n ],\n (selectedFilters, actualGroupKey) => selectedFilters.filter(\n filter => filter.group === actualGroupKey && !!filter.values.length,\n ),\n);\n\nexport const selectIsEmpty = (state: TState): boolean => !selectCheckedFilters(state).length;\n\ninterface ITariffsByType {\n cityBundles: ITariff[],\n villageBundles: ITariff[],\n cityInternet: ITariff[],\n villageInternet: ITariff[],\n}\n\nexport const selectTariffsByType = createSelector(\n selectAllTariffs,\n tariffs => {\n return tariffs.reduce((acc: ITariffsByType, tariff) => {\n tariff.isCottage === 0 && acc.cityBundles.push(tariff);\n tariff.type === 'bundles' && tariff.isCottage !== 0 && acc.villageBundles.push(tariff);\n tariff.type === 'internet' && tariff.isCottage === 0 && acc.cityInternet.push(tariff);\n tariff.type === 'internet' && tariff.isCottage !== 0 && acc.villageInternet.push(tariff);\n return acc;\n }, {\n cityBundles: [],\n villageBundles: [],\n cityInternet: [],\n villageInternet: [],\n });\n },\n);\n\n\nconst getPrice = (tariff: ITariff) => tariff['priceAction'] || tariff['price'] || 0;\n\ninterface IMinCostedTariff {\n description: string,\n price: string,\n url: string,\n}\nexport const selectMinCostedTariff = (filter: (tariff: ITariff) => void) => createSelector(\n selectAllTariffs,\n (tariffs): IMinCostedTariff | null => {\n const filteredTariffs = tariffs.filter(filter);\n\n if (filteredTariffs.length) {\n const sortedTariffs = [...filteredTariffs].sort((a, b) => getPrice(a) - getPrice(b));\n const minCostedTariff = sortedTariffs[0];\n\n return ({\n description: minCostedTariff?.seo_description || minCostedTariff?.description || '',\n price: getPrice(minCostedTariff).toString(),\n url: minCostedTariff?.alias && `full-buy?tariffName=${minCostedTariff?.alias}&monoTariff=true` || '',\n });\n }\n\n return null;\n },\n);\n\nexport const selectAvailableOnInternetPageTariffs = ({ isCottage }: {\n isCottage?: boolean,\n}) => createSelector(\n selectAllTariffs,\n (allTariffs: ITariff[]): ITariff[] =>\n allTariffs\n .filter((tariff: ITariff) =>\n tariff.availableOnInternetPage && isCottage === Boolean(tariff.isCottage)),\n);\n\nexport const selectAndSortAvailableOnInternetPageTariffs = ({ isCottage }: {\n isCottage?: boolean,\n}) => createSelector(\n selectAvailableOnInternetPageTariffs({ isCottage }),\n (tariffsAvailableOnInternetPage: ITariff[]): ITariff[] =>\n tariffsAvailableOnInternetPage\n .sort((tariffA, tariffB) => {\n const speedDiff = tariffB['speed'] - tariffA['speed'];\n if (speedDiff !== 0) {\n return speedDiff;\n }\n\n const priceDiff = getPrice(tariffA) - getPrice(tariffB);\n if (priceDiff !== 0) {\n return priceDiff;\n }\n\n return tariffA.type === 'internet' ? -1 : 1;\n }),\n);\n","export const RubleSymbol = String.fromCharCode(8381);\n","import { RubleSymbol } from '@r1-frontend/ui-react/experimental/purchase/cost/Cost/RubleSymbol';\n\nimport * as S from './styled';\n\n// @todo for the children we should to receiving only the \"number\" type for formatting and displaying cost by human view here. For example: incoming 10000.0, displaying 10 000.00\n// on the other hand children may be a ReactNode or a JSX.Element. By my opinion the type \"number\" is enough\n//\n// We have to think about it ;-)\nexport type TCostProps = {\n children: string | number,\n isMonthly?: boolean,\n previousCost?: string | number,\n};\n\n/**\n * @deprecated\n * use @r1-frontend/ui-react/components/costs\n */\nconst Cost = ({ children, isMonthly = false, previousCost, ...props }: TCostProps): JSX.Element => {\n return \n {previousCost ? <>{previousCost} {RubleSymbol}{isMonthly && '/мес'}  : null}\n {children} {RubleSymbol}{isMonthly && '/мес'}\n ;\n};\n\nexport default Cost;\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nexport const CostWrapper = styled.div`\n display: inline-block;\n color: inherit;\n white-space: nowrap;\n`;\n\nexport const PreviousCost = styled.s`\n text-decoration-color: ${COLORS.TextInfo};\n color: ${COLORS.TextInfo};\n`;\n"],"names":["SpecialOfferWrapper","styled","COLORS","wideBreakpoints","btnText","onClickContinue","ST","data-test","Paragraph4","$color","Button","bType","onClick","params","dataLayerPush","event","EVENTS","category","CATEGORIES","tariffName","lazyCallbackDataLayerPush","action","ACTIONS","label","status","message","uid","dataLayerForCBPhonePush","neededSelectors","state","isAuth","auth","clientPersonal","requestDataParams","withPopupResult","withSpecialOffer","onClose","title","description","btnType","actionBtnText","onSubmit","router","useRouter","useSelector","csrf","selectCsrf","useState","name","setName","phone","setPhone","startInput","setStartInput","isValid","setIsValid","isOrderOpened","isResultOpened","resultTitle","resultText","resultType","EResultPopupStatus","popup","setPopup","agreement","useEffect","onChangeHandler","useCallback","stateInput","_setState","undefined","value","sendStartInputName","openPopupResult","ok","sendRequestHandler","fio","resp","doRequest","requestByConnection","isSuccess","payload","sendRequestStatus","ERequestStatus","onSubmitHandler","clearInput","closePopupHandler","mainPageUrl","push","TextWrapper","placeholder","errorMessage","onChange","className","PolicyNote","buttonText","agreeUrl","POLICY_PAGE_LINK","size","disabled","SpecialOffer","sendClickContinue","PopupResult","isOpen","text","type","LazyCallBack","BorderRadius","Form","InputFields","Input","InputSimple","NameInput","nameDecorator","PhoneInput","phoneDecorator","ContentWrapper","SH3","H3","selectAllTariffs","createSelector","getTariffsSelector","internet","tariffs","bundles","formatBundles","map","formattingBundleForCard","formatInternets","formattingTariffForCard","sort","a","b","weight","selectInternetTariffByAlias","_","alias","tariff","find","selectTariffsByType","filteredBundles","selected","groupKey","selectedFilters","actualGroupKey","filter","group","values","length","reduce","acc","isCottage","cityBundles","villageBundles","cityInternet","villageInternet","getPrice","selectMinCostedTariff","filteredTariffs","minCostedTariff","seo_description","price","toString","url","selectAvailableOnInternetPageTariffs","allTariffs","availableOnInternetPage","Boolean","selectAndSortAvailableOnInternetPageTariffs","tariffsAvailableOnInternetPage","tariffA","tariffB","speedDiff","priceDiff","RubleSymbol","String","fromCharCode","children","isMonthly","previousCost","props","S","CostWrapper","PreviousCost"],"sourceRoot":""}