{"version":3,"file":"static/chunks/4215-acd217497035bdda.js","mappings":"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","sources":["webpack://_N_E/./src/components/Banner/styled.tsx","webpack://_N_E/./src/components/Banner/index.tsx","webpack://_N_E/./src/components/Equipment/form/styled.js","webpack://_N_E/./src/components/Equipment/internet/styled.js","webpack://_N_E/./src/helpers/hooks/useProgressiveImage.tsx"],"sourcesContent":["import { LazyLoadImage } from 'react-lazy-load-image-component';\nimport styled, { css } from 'styled-components';\n\nimport { BaseButton } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport InputSimple, { phoneDecorator } from '@r1-frontend/ui-react/components/inputSimple';\nimport GridContainer from '@r1-frontend/ui-react/components/layouts/gridContainer';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nimport { TStyles } from '~/src/features/movix-new/ContentCard';\n\nconst breakpoints = {\n desktop: '1599px',\n sDesktop: '1359px',\n xsDesktop: '1279px',\n bannersToCards: '1011px',\n mobile: '600px',\n};\n\nconst inputPhone = phoneDecorator(InputSimple);\n\ninterface IWrapperStyles {\n marginTop?: string,\n marginBottom?: string,\n fixedHeight?: boolean,\n background?: string,\n backgroundColor?: string,\n customStyles?: Record ,\n adaptive?: boolean,\n backgroundMobile?: string,\n styles?: TStyles,\n}\n\ninterface IContentStyles {\n size?: string,\n customStyles?: Record ,\n extStyles?: Record ,\n adaptive?: boolean,\n styles?: TStyles,\n}\n\ninterface ITitleStyles {\n extStyles?: Record ,\n textColor?: string,\n}\n\ninterface IImageStyles {\n position?: string,\n marginRight?: string,\n adaptive?: boolean,\n styles?: TStyles,\n bgMobile?: string,\n}\n\ninterface IFrontImageDesktopStyles {\n height?: string,\n}\n\ninterface IPhoneBlockStyles {\n extStyles?: Record ,\n}\n\nexport const Wrapper = styled.div`\n margin-top: ${({ marginTop }) => marginTop ? marginTop : '40px'};\n margin-bottom: ${({ marginBottom }) => marginBottom ? marginBottom : '0'};\n width: 100%;\n height: ${p => p.fixedHeight ? '320px' : 'auto'};\n white-space: normal;\n position: relative;\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n background-image: ${p => p.background ? `url(${p.background})` : 'none'};\n ${p => p.background ? `background-image: image-set(url(${p.background}) 1x)` : ''};\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n overflow: hidden;\n cursor: pointer;\n background-color: ${p => p.backgroundColor ? p.backgroundColor : 'transparent'};\n ${p => p.customStyles?.default ? p.customStyles?.default : ''};\n\n @media(max-width: ${breakpoints.desktop}) {\n height: ${p => p.fixedHeight ? '248px' : 'auto'};\n ${p => p.customStyles?.desktop ? p.customStyles?.desktop : ''};\n }\n\n @media(max-width: ${breakpoints.sDesktop}) {\n ${p => p.customStyles?.sDesktop ? p.customStyles?.sDesktop : ''};\n }\n\n @media(max-width: ${breakpoints.mobile}) {\n flex-wrap: wrap;\n ${p => p.customStyles?.mobile ? p.customStyles?.mobile : ''};\n }\n\n ${p => p.adaptive && css`\n @media(max-width: ${breakpoints.mobile}) {\n flex-direction: column;\n background-image: ${(p: IWrapperStyles) => p.backgroundMobile\n ? `url(${p.backgroundMobile})`\n : (p.background ? `url(${p.background})` : 'none')\n }\n };\n `};\n @media(max-width: 420px) {\n justify-content: space-between;\n }\n\n ${({ styles }) => styles}\n`;\n\nexport const Content = styled.div`\n display: block;\n position: relative;\n padding: 70px 0 70px 35px;\n ${p => p.size === 'small' && css`\n padding: 38px 0 38px 35px;\n & > ${Title} {\n ${FONTS.L};\n }\n `};\n width: 753px;\n z-index: 3;\n white-space: normal;\n ${p => p.customStyles ? p.customStyles : ''};\n ${p => p.extStyles?.default ? p.extStyles?.default : ''};\n\n @media(max-width: ${breakpoints.desktop}) {\n padding: 60px 0 70px 35px;\n width: 600px;\n ${p => p.extStyles?.desktop ? p.extStyles?.desktop : ''};\n };\n @media(max-width: ${breakpoints.xsDesktop}) {\n padding-left: 30px;\n ${p => p.extStyles?.xsDesktop ? p.extStyles?.xsDesktop : ''};\n };\n @media(max-width: 1023px) {\n width: 490px;\n padding-left: 30px;\n };\n @media (max-width: 950px) {\n width: 450px;\n }\n @media (max-width: 768px) {\n padding-left: 30px;\n width: 420px;\n }\n @media (max-width: 700px) {\n width: 370px;\n }\n @media (max-width: ${breakpoints.mobile}) {\n height: 345px;\n }\n ${p => p.adaptive\n ? css`\n @media(max-width: ${breakpoints.mobile}) {\n width: 100%;\n padding: 35px 20px 30px;\n };\n `\n : css`\n @media(max-width: ${breakpoints.mobile}) {\n width: 60%;\n padding: 35px 20px 30px;\n };\n `\n };\n\n ${({ styles }) => styles}\n`;\n\nexport const Title = styled.div`\n display: block;\n margin-bottom: 16px;\n ${FONTS.H1};\n color: ${({ textColor }) => textColor ? textColor : COLORS.Control};\n ${p => p.extStyles ? p.extStyles : ''};\n\n span {\n display: inline-block;\n }\n @media(max-width: ${breakpoints.desktop}) {\n ${p => p.extStyles?.desktop ? p.extStyles?.desktop : ''};\n };\n @media(max-width: ${breakpoints.xsDesktop}) {\n ${FONTS.H2};\n margin-bottom: 15px;\n }\n @media (max-width: ${breakpoints.bannersToCards}) {\n ${FONTS.H4};\n }\n @media(max-width: 768px) {\n margin-bottom: 10px;\n }\n @media(max-width: ${breakpoints.mobile}) {\n margin-bottom: 15px;\n }\n`;\n\nexport const SubTitle = styled.div<{textColor?: string}>`\n display: block;\n margin-bottom: 12px;\n ${FONTS.S};\n color: ${({ textColor }) => textColor ? textColor : COLORS.Control};\n`;\n\nexport const Description = styled.div<{textColor?: string}>`\n display: block;\n margin-bottom: 32px;\n ${FONTS.S};\n color: ${({ textColor }) => textColor ? textColor : COLORS.Control};\n span {\n display: inline-block;\n }\n @media(max-width: 1599px) {\n margin-bottom: 30px;\n };\n @media(max-width: ${breakpoints.xsDesktop}) {\n ${FONTS.XS};\n margin-bottom: 25px;\n };\n @media(max-width: 768px) {\n margin-bottom: 20px;\n }\n`;\n\nexport const ButtonBlock = styled.div`\n display: block;\n`;\n\nexport const Images = styled.div`\n display: flex;\n height: 100%;\n width: calc(100% - 753px);\n position: relative;\n\n img {\n margin: ${p => p.position === 'bottom' ? 'auto auto 0 auto' : 'auto'};\n max-height: 100%;\n max-width: 100%;\n margin-right: ${p => p.marginRight ? p.marginRight : 'auto'};\n }\n @media(max-width: 1599px) {\n width: calc(100% - 600px);\n }\n @media(max-width: ${breakpoints.xsDesktop}) {\n width: calc(100% - 500px);\n }\n @media(max-width: 1023px) {\n width: calc(100% - 490px);\n }\n @media (max-width: 1011px) {\n background: url(${({ bgMobile }) => bgMobile}) no-repeat center center;\n background: image-set(url(${({ bgMobile }) => bgMobile}) 1x) no-repeat center center;\n background-size: cover;\n }\n @media (max-width: 950px) {\n width: calc(100% - 450px);\n }\n @media (max-width: 700px) {\n width: calc(100% - 370px);\n }\n ${p => p.adaptive\n ? css`\n @media(max-width: ${breakpoints.mobile}) {\n flex-direction: column;\n width: 100%;\n height: auto;\n img {\n position: relative;\n width: auto;\n height: auto;\n }\n };\n `\n : css`\n @media(max-width: ${breakpoints.mobile}) {\n width: 40%;\n };\n `\n }\n\n ${({ styles }) => styles}\n`;\n\nexport const FrontImageDesktop = styled(LazyLoadImage)`\n display: block;\n object-fit: cover;\n width: inherit;\n ${p => p.height ? `height: ${p.height}` : 'inherit'};\n`;\n\nexport const FrontImageMobile = styled(LazyLoadImage)`\n object-fit: cover;\n display: block;\n`;\n\nexport const TextButton = styled.a`\n cursor: pointer;\n`;\n\nexport const Button = styled(BaseButton)`\n min-width: 211px;\n width: auto;\n\n @media(max-width: 1179px) {\n padding: 13px 20px;\n ${FONTS.MediumS};\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 100%;\n overflow: hidden;\n min-width: 200px;\n }\n\n @media(max-width: 530px) {\n width: 100%;\n padding: 13px 9px;\n }\n`;\n\nexport const InputPhone = styled(inputPhone)`\n max-width: 255px;\n height: 40px;\n border-radius: 4px;\n padding: 0;\n input {\n background: rgba(255, 255, 255, 0.3);\n border: 1px solid rgba(26, 26, 26, 0.5);\n ${p => p.extStyles?.input ? p.extStyles.input : ''};\n\n &::placeholder {\n color: ${p => p.extStyles?.input ? p.extStyles?.input : ''};\n }\n }\n span {\n color: ${p => p.extStyles?.span ? p.extStyles?.span : ''}\n }\n p {\n position: absolute;\n top: 40px;\n }\n @media(max-width: ${breakpoints.mobile}) {\n width: 100%;\n max-width: unset;\n }\n`;\n\nexport const PhoneBlock = styled.div`\n display: flex;\n width: 773px;\n @media(max-width: 635px) {\n width: 500px;\n }\n @media(max-width: ${breakpoints.mobile}) {\n width: 100%;\n justify-content: center;\n }\n`;\n\nexport const ConnectButton = styled(BaseButton)`\n max-width: 143px;\n height: 40px;\n width: auto;\n text-align: center;\n margin-left: 20px;\n padding: 0;\n @media(max-width: ${breakpoints.mobile}) {\n margin-left: 0;\n max-width: unset;\n width: 100%;\n }\n`;\n\nexport const DetailsLink = styled.a`\n cursor: pointer;\n height: 15px;\n margin-left: 15px;\n margin-top: 12px;\n @media(max-width: 635px) {\n margin-left: 0;\n margin-top: 0;\n order: 1;\n }\n @media(max-width: ${breakpoints.mobile}) {\n margin-top: 12px;\n }\n ${p => p.extStyles?.detailsLink ? p.extStyles?.detailsLink : ''};\n`;\n\nexport const FootNote = styled.div`\n ${p => p.extStyles?.offer ? p.extStyles?.offer : ''};\n opacity: 0.7;\n max-width: 300px;\n ${FONTS.XXS};\n display: flex;\n @media(max-width: ${breakpoints.mobile}) {\n margin-top: 8px;\n display: block;\n width: 100%;\n max-width: unset;\n }\n`;\n\nexport const OfferLink = styled.a`\n ${FONTS.XXS};\n opacity: 0.7;\n text-decoration: underline;\n cursor: pointer;\n ${p => p.extStyles?.offer ? p.extStyles?.offer : ''};\n`;\n\nexport const OfferLinkWrapper = styled.div`\n display: inline;\n`;\n\nexport const Container = styled(GridContainer)<{ styles?: TStyles }>`\n height: 100%;\n align-items: center;\n justify-content: space-between;\n ${({ styles }) => styles}\n`;\n","import React, { FC, useCallback, useMemo } from 'react';\nimport Link from 'next/link';\n\nimport { BaseButton, btnTypes } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport WebpImage from '@r1-frontend/ui-react/components/WebpImage';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { useWebp } from '@r1-frontend/shared/hooks/useWebp';\n\nimport { TStyles } from '~/src/features/movix-new/ContentCard';\nimport { useProgressiveImageWithFallbackDetection } from '~/src/helpers/hooks/useProgressiveImage';\n\nimport * as ST from './styled';\n\nexport enum EClickType {\n ON_BANNER = 'clickOnBanner',\n ON_BTN = 'clickOnBtn',\n}\n\ninterface IBannerInfo {\n tab_title?: string,\n title?: string,\n tab_text?: string,\n link?: string,\n size?: string,\n image_background?: string,\n image_background_webp?: string,\n image_background_mobile?: string,\n image_background_mobile_webp?: string,\n image?: string,\n image_webp?: string,\n image_position?: string,\n image_mobile?: string,\n text_color?: string,\n subTitle?: string,\n text?: string,\n button_text?: string,\n phone_introduction?: number,\n}\n\ninterface ILink {\n as?: string,\n href?: string,\n}\n\nexport interface IBannerCustomStyles {\n wrapper?: TStyles,\n container?: TStyles,\n image?: TStyles,\n content?: TStyles,\n}\n\ninterface IClickHandler {\n banner: IBannerInfo,\n bannerIdx: string | number,\n clickType: EClickType,\n}\n\ninterface IBannerProps {\n onClickHandler: (props: IClickHandler) => void,\n titleButton?: string,\n image?: string,\n imageHeight?: string,\n title?: string,\n description?: string,\n background?: string,\n textColor?: string,\n typeButton?: string,\n dataTestForButton?: string,\n backgroundColor?: string,\n marginTop?: string,\n marginBottom?: string,\n marginRight?: string,\n banner: IBannerInfo,\n subTitle?: string,\n adaptive?: boolean,\n fixedHeight?: boolean,\n routeLink?: ILink,\n customStyles?: Record,\n onInputChange?: (v: string) => void,\n onClickConnect?: () => void,\n beforeClick?: (bannerIdx: number | string | undefined) => void,\n bannerIdx?: string | number,\n withContainer?: boolean,\n customCSSStyles?: IBannerCustomStyles,\n\n [key: string]: any,\n}\n\nconst Banner: FC = ({\n onClickHandler,\n titleButton,\n image,\n imageHeight,\n title,\n description,\n background,\n textColor,\n typeButton = 'primary',\n dataTestForButton,\n backgroundColor,\n marginTop,\n marginBottom,\n marginRight,\n banner = {},\n subTitle = '',\n adaptive = true,\n fixedHeight = false,\n routeLink = {},\n customStyles,\n onInputChange = () => ({}),\n onClickConnect = () => ({}),\n beforeClick = () => ({}),\n bannerIdx = '0',\n withContainer,\n customCSSStyles,\n ...props\n}) => {\n const {\n frontImage,\n bgImage,\n bgImageMobile,\n frontImagePosition,\n buttonText,\n phoneIntroduction,\n descriptionText,\n timeout,\n subTitleText,\n titleText,\n txtColor,\n image_mobile,\n image_background_mobile_webp,\n image_background_webp,\n size,\n image_webp,\n } = useMemo(() => {\n const {\n image: bannerImage,\n image_webp,\n image_mobile,\n image_background,\n image_background_webp,\n image_background_mobile,\n image_background_mobile_webp,\n size,\n } = banner;\n\n const frontImagePosition = banner.image_position;\n const txtColor = textColor || banner.text_color;\n const titleText = title || banner.title;\n const subTitleText = subTitle || banner.subTitle;\n const descriptionText = description || banner.text;\n const buttonText = titleButton || banner.button_text;\n const phoneIntroduction = banner.phone_introduction ? banner.phone_introduction : 0;\n\n const timeout = { hasTimeout: !!bannerIdx };\n\n const frontImage = image || bannerImage;\n const bgImage = background || image_background;\n const bgImageMobile = image_background_mobile;\n\n return {\n frontImage,\n bgImage,\n bgImageMobile,\n frontImagePosition,\n buttonText,\n phoneIntroduction,\n descriptionText,\n timeout,\n subTitleText,\n titleText,\n txtColor,\n image_mobile,\n image_background_mobile_webp,\n image_background_webp,\n size,\n image_webp,\n };\n }, [background, banner, bannerIdx, description, image, subTitle, textColor, title, titleButton]);\n\n const extStyles = useMemo(() => ({\n content: {\n default: {\n padding: phoneIntroduction ? '10 0 30px 30px' : '70px 0 70px 35px',\n },\n desktop: {\n padding: phoneIntroduction ? '10 0 30px 30px' : '60px 0 70px 35px',\n },\n xsDesktop: {\n width: phoneIntroduction ? '550px' : '500px',\n 'padding-top': phoneIntroduction ? '20px' : '60px',\n },\n },\n title: {\n desktop: {\n 'margin-bottom': phoneIntroduction ? '10px' : '15px',\n },\n },\n phoneBlock: {\n input: {\n 'color': txtColor || COLORS.TextPrimary,\n '&:focus': {\n 'border-color': txtColor || COLORS.TextPrimary,\n },\n },\n span: {\n 'color': txtColor || COLORS.TextPrimary,\n },\n detailsLink: {\n 'color': txtColor || COLORS.TextPrimary,\n 'border-bottom': `1px solid ${txtColor || COLORS.TextPrimary}`,\n },\n offer: {\n 'color': txtColor || COLORS.TextPrimary,\n },\n },\n }), [phoneIntroduction, txtColor]);\n\n const { sourceLoaded: frontImageMobile, isFallback: frontImageMobileIsFallback } =\n useProgressiveImageWithFallbackDetection(image_mobile, { timeout });\n const isWebpUsed = useWebp();\n\n const { sourceLoaded: frontImageWebp, isFallback: frontImageWebpIsFallback } =\n useProgressiveImageWithFallbackDetection(image_webp);\n const { sourceLoaded: bgImageMobileWebp, isFallback: bgImageMobileWebpIsFallback } =\n useProgressiveImageWithFallbackDetection(image_background_mobile_webp, { timeout });\n const { sourceLoaded: bgImageWebp, isFallback: bgImageWebpIsFallback } =\n useProgressiveImageWithFallbackDetection(background || image_background_webp, { timeout });\n\n const resultBgImage = (bgImageWebpIsFallback || !isWebpUsed) ? bgImage : bgImageWebp;\n const resultMobileImage = (bgImageMobileWebpIsFallback || !isWebpUsed) ? bgImageMobile : bgImageMobileWebp;\n const resultFontImage = (frontImageWebpIsFallback || !isWebpUsed) ? frontImage : frontImageWebp;\n\n const onBannerClick = useCallback(() => {\n onClickHandler({ banner, bannerIdx, clickType: EClickType.ON_BANNER });\n }, [onClickHandler, banner, bannerIdx]);\n\n const onBtnClick = useCallback((event) => {\n event.stopPropagation();\n onClickHandler({ banner, bannerIdx, clickType: EClickType.ON_BTN });\n }, [onClickHandler, banner, bannerIdx]);\n\n const content = useMemo(() => (\n <>\n \n {subTitleText && {subTitleText}}\n \n {descriptionText && (\n \n )}\n {\n phoneIntroduction\n ? \n \n\n \n\n {banner.link &&\n beforeClick(bannerIdx)}>\n Подробнее\n \n }\n Нажимая кнопку, вы даёте согласие на обработку \n \n \n персональных данных\n \n \n \n \n : null\n }\n {\n (buttonText && !phoneIntroduction) &&\n \n {\n typeButton === 'text'\n ? \n \n \n : \n \n \n }\n \n }\n \n \n \n \n \n ), [\n bgImageMobileWebp,\n buttonText,\n descriptionText,\n frontImageMobile,\n frontImageMobileIsFallback,\n frontImagePosition,\n frontImageWebp,\n ]);\n\n return (\n \n {withContainer\n ? {content}\n : content\n }\n \n );\n};\n\ninterface BannerImageProps {\n url?: string,\n urlWebp?: string,\n height?: string,\n urlMobile?: string,\n}\n\nconst BannerImage = React.memo(function BannerImage({ url, urlWebp, urlMobile, height }: BannerImageProps) {\n if (!urlMobile && (!url && !urlWebp)) {\n return null;\n }\n return urlMobile\n ? \n : \n \n ;\n});\n\nexport default Banner;\n","import { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport InputSimple, { nameDecorator, phoneDecorator } from '@r1-frontend/ui-react/components/inputSimple';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\nimport styled from 'styled-components';\n\nconst breakePoints = {\n sDesktop: '1187px',\n tablet: '859px',\n mobile: '640px',\n};\n\nconst InputPhone = phoneDecorator(InputSimple);\nconst InputName = nameDecorator(InputSimple);\n\nexport const FormContainer = styled.div`\n width: 100%;\n display:flex;\n flex-wrap: nowrap;\n padding: 50px 60px;\n background: ${COLORS.white};\n border: 1px solid ${COLORS.outlineGrey};\n box-sizing: border-box;\n border-radius: 4px;\n margin-bottom: 40px;\n @media (max-width: 1600px) {\n padding: 40px 60px;\n }\n @media (max-width: 1300px) {\n padding: 30px;\n }\n @media (max-width: 1000px) {\n flex-direction: column;\n }\n @media (max-width: 700px) {\n padding: 20px;\n }\n`;\nexport const FormText = styled.div`\n border-right: 1px solid ${COLORS.grey};\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n width: 50%;\n padding-right: 4%;\n @media (max-width: 1300px) {\n width: 30%;\n }\n @media (max-width: 1000px) {\n width: 100%;\n padding-right: 0;\n border-right: 0;\n margin-bottom: 30px;\n }\n`;\nexport const FormTitle = styled.div`\n ${FONTS.XXL};\n margin-bottom: 10px;\n width: 100%;\n @media (max-width: 1500px) {\n ${FONTS.L};\n }\n`;\nexport const FormDesc = styled.div`\n ${FONTS.S};\n color: ${COLORS.darkGrey};\n width: 100%;\n @media (max-width: 1100px) {\n ${FONTS.XS};\n }\n @media (max-width: 800px) {\n ${FONTS.S};\n }\n`;\nexport const FormRight = styled.div`\n display: flex;\n justify-content: flex-end;\n align-items: center;\n width: 50%;\n padding-left: 8%;\n @media (max-width: 1600px) {\n padding-left: 4%;\n }\n @media (max-width: 1300px) {\n width: 70%;\n }\n @media (max-width: 1000px) {\n width: 100%;\n padding-left: 0;\n justify-content: flex-start;\n }\n`;\n\nexport const Name = styled(InputName)`\n flex: 1 1 100%;\n width: 100%;\n margin-right: ${p => p.isVertical ? '0' : '12px'};\n margin-bottom: 16px;\n\n @media (max-width: ${breakePoints.mobile}) {\n margin-right: 0;\n }\n`;\n\nexport const Phone = styled(InputPhone)`\n flex: 1 1 100%;\n width: 100%;\n margin-bottom: 0;\n\n @media (max-width: ${breakePoints.mobile}) {\n margin-bottom: 16px;\n }\n`;\n","import DefaultPopup from '@r1-frontend/ui-react/components/popups/defaultPopup';\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\nimport styled from 'styled-components';\n\nimport Banner from '~/src/components/Banner';\nimport { breakPoints } from '~/src/constants/breakpoints';\n\nexport const BannerRouter = styled(Banner)`\n margin-bottom: 30px;\n`;\n\nexport const GridContainer = styled.div`\n width: 100%;\n display: flex;\n justify-content: start;\n gap: 24px;\n`;\n\nexport const Wrapper = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n flex-direction: column;\n`;\n\nexport const RouterListTitle = styled.h2`\n ${FONTS.H1};\n margin-bottom: 60px;\n width: 100%;\n @media (max-width: 1400px) {\n margin-bottom: 50px;\n }\n @media (max-width: 1100px) {\n ${FONTS.H2};\n }\n @media (max-width: 900px) {\n ${FONTS.H3};\n }\n @media (max-width: 500px) {\n margin-bottom: 30px;\n ${FONTS.H4};\n }\n`;\n\nexport const MainContainer = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n max-width: 1360px;\n ${FONTS.S};\n justify-content: flex-start;\n align-items: baseline;\n padding: 0 105px;\n box-sizing: content-box;\n @media (max-width: 1024px) {\n padding: 0 50px;\n }\n @media (max-width: 860px) {\n padding: 0 15px 0;\n }\n @media (max-width: 640px) {\n justify-content: flex-start;\n text-align: left;\n }\n`;\n\nexport const RouterListContainer = styled.div`\n width: 100%;\n justify-content: center;\n`;\n\nexport const InfoContainer = styled.div`\n align-items: center;\n margin-top: 100px;\n`;\n\nexport const Title = styled.h1`\n ${FONTS.H1};\n max-width: 1360px;\n margin: 0;\n width: 100%;\n margin-top: 50px;\n margin-bottom: 20px;\n \n @media (max-width: 1024px) {\n margin-left: 50px;\n }\n @media (max-width: 860px) {\n margin-left: 15px;\n ${FONTS.H2};\n margin-top: ${props => props.auth ? '100px' : '60px'}\n }\n`;\n\nexport const QuizSection = styled.div`\n display: block;\n width: 100%;\n padding-top: 30px;\n \n @media screen and (max-width: 859px) {\n margin-top: 60px;\n }\n`;\n\nexport const PopupHeader = styled.div`\n background: linear-gradient(205.3deg, #FCFDFF 0%, #E9EAEF 100%);\n padding: 30px 50px;\n width: 100%;\n display: flex;\n flex-direction: column;\n border-radius: ${BorderRadius.OuterBlockRadius} ${BorderRadius.OuterBlockRadius} 0 0;\n\n @media screen and (max-width: 768px) {\n padding: 24px;\n }\n`;\n\nexport const PopupBody = styled.div`\n padding: 40px 50px;\n width: 100%;\n display: flex;\n flex-direction: column;\n\n @media screen and (max-width: 768px) {\n padding: 24px;\n }\n`;\n\nexport const PopupEquip = styled.div`\n ${FONTS.S};\n`;\n\nexport const PopupTitle = styled.div`\n ${FONTS.L};\n`;\n\nexport const OrderLine = styled.div`\n ${FONTS.L};\n display: flex;\n justify-content: space-between;\n border-bottom: 1px solid #EBEBEB;\n padding-bottom: 30px;\n align-items: baseline;\n\n @media screen and (max-width: 768px) {\n ${FONTS.XS};\n padding-bottom: 14px;\n }\n`;\n\nexport const OrderPrice = styled.div`\n ${FONTS.L};\n display: flex;\n align-items: baseline;\n`;\n\nexport const Price = styled.div`\n @media (max-width: ${breakPoints.mobile}) {\n ${FONTS.XS};\n }\n`;\n\nexport const OrderPriceInfo = styled.div`\n ${FONTS.XS};\n padding: 3px 0 0 5px;\n`;\n\nexport const FormTitle = styled.div`\n ${FONTS.S};\n margin: 30px 0;\n\n @media screen and (max-width: 768px) {\n ${FONTS.XXS};\n margin: 12px 0;\n }\n`;\n\nexport const PopupContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: baseline;\n`;\n\nexport const Popup = styled(DefaultPopup)`\n z-index: 100;\n`;\n","import { useCallback, useMemo, useState } from 'react';\n\nimport { isClientSide } from '@r1-frontend/shared/helpers/ssr';\n\nimport defaultImageFallback from '~/static/images/defaultImageFallback.svg';\n\ninterface ITimeout {\n hasTimeout?: boolean,\n timeoutDelay?: number,\n}\n\ninterface IOptions {\n timeout?: ITimeout,\n fallbackSrc?: string,\n}\n\ntype TEvent = Event | string | undefined;\n\nexport interface IProgressiveImageExtendedResult {\n sourceLoaded: string,\n isFallback: boolean,\n errorEvent: TEvent,\n}\n\nconst getImage = (onSuccess: () => void, onError: OnErrorEventHandlerNonNull, src?: string) => {\n if (src && isClientSide()) {\n const img = new Image();\n img.src = src;\n img.onload = onSuccess;\n if (onError) {\n img.onerror = onError;\n }\n } else {\n onError('No src');\n }\n};\n\n// использовать только для картинок (LazyLoadImage, img, picture),\n// не подходит для фоновых изображений (css: background, background-image), для них ручная проверка - useWebp\nexport function useProgressiveImage(\n src?: string,\n timeout?: ITimeout,\n fallbackSrc = defaultImageFallback,\n): string {\n const [sourceLoaded, setSourceLoaded] = useState('');\n const { hasTimeout = false, timeoutDelay = 0 } = timeout || {};\n\n const onSuccess = useCallback(\n () => hasTimeout\n ? setTimeout(() => setSourceLoaded(src as string), timeoutDelay)\n : setSourceLoaded(src as string),\n [src, hasTimeout, timeoutDelay],\n );\n\n const onError = useCallback(() => {\n setSourceLoaded(fallbackSrc);\n }, [fallbackSrc]);\n\n useMemo(() => getImage(onSuccess, onError, src), [onError, onSuccess, src]);\n\n return sourceLoaded;\n}\n\nexport function useProgressiveImageWithFallbackDetection(\n src?: string,\n options?: IOptions,\n): IProgressiveImageExtendedResult {\n const {\n timeout,\n fallbackSrc = defaultImageFallback,\n } = options || {};\n const [sourceLoaded, setSourceLoaded] = useState('');\n const [isFallback, setIsFallback] = useState(false);\n const [errorEvent, setErrorEvent] = useState(undefined);\n\n const { hasTimeout = false, timeoutDelay = 0 } = timeout || {};\n\n const onSuccess = useCallback(\n () => hasTimeout\n ? setTimeout(() => setSourceLoaded(src as string), timeoutDelay)\n : setSourceLoaded(src as string),\n [src, hasTimeout, timeoutDelay],\n );\n\n const onError = useCallback((event) => {\n setSourceLoaded(fallbackSrc);\n setIsFallback(true);\n setErrorEvent(event);\n }, [fallbackSrc]);\n\n useMemo(() => getImage(onSuccess, onError, src), [onError, onSuccess, src]);\n\n return ({ sourceLoaded, isFallback, errorEvent });\n}\n"],"names":["breakpoints","inputPhone","phoneDecorator","InputSimple","Wrapper","styled","marginTop","marginBottom","p","fixedHeight","background","backgroundColor","customStyles","default","desktop","sDesktop","mobile","adaptive","css","backgroundMobile","styles","Content","size","Title","FONTS","extStyles","xsDesktop","textColor","COLORS","SubTitle","Description","ButtonBlock","Images","position","marginRight","bgMobile","FrontImageDesktop","LazyLoadImage","height","FrontImageMobile","TextButton","InputPhone","BaseButton","input","span","PhoneBlock","DetailsLink","detailsLink","FootNote","offer","OfferLink","OfferLinkWrapper","Container","GridContainer","EClickType","BannerImage","React","url","urlWebp","urlMobile","ST","width","alt","itemProp","src","WebpImage","onClickHandler","titleButton","image","imageHeight","title","description","typeButton","dataTestForButton","banner","subTitle","routeLink","onInputChange","onClickConnect","beforeClick","bannerIdx","withContainer","customCSSStyles","props","useMemo","image_webp","image_mobile","image_background","image_background_webp","image_background_mobile","image_background_mobile_webp","frontImagePosition","image_position","txtColor","text_color","titleText","subTitleText","descriptionText","text","buttonText","button_text","phoneIntroduction","phone_introduction","frontImage","bannerImage","bgImage","bgImageMobile","timeout","hasTimeout","content","padding","phoneBlock","useProgressiveImageWithFallbackDetection","sourceLoaded","isFallback","isWebpUsed","useWebp","resultBgImage","bgImageWebp","resultMobileImage","bgImageMobileWebp","resultFontImage","frontImageWebp","onBannerClick","useCallback","clickType","ON_BANNER","onBtnClick","event","stopPropagation","ON_BTN","dangerouslySetInnerHTML","__html","onChange","placeholder","errorMessage","className","data-test","onClick","link","href","target","rel","Link","as","type","btnTypes","frontImageMobileIsFallback","undefined","frontImageMobile","wrapper","itemScope","itemType","container","breakePoints","InputName","nameDecorator","FormContainer","FormText","FormTitle","FormDesc","FormRight","Name","isVertical","Phone","Banner","InfoContainer","PopupHeader","auth","BorderRadius","PopupBody","PopupEquip","PopupTitle","OrderLine","OrderPrice","Price","breakPoints","OrderPriceInfo","PopupContainer","Popup","DefaultPopup","getImage","onSuccess","onError","isClientSide","img","Image","onload","onerror","useProgressiveImage","fallbackSrc","defaultImageFallback","useState","setSourceLoaded","timeoutDelay","setTimeout","options","setIsFallback","errorEvent","setErrorEvent"],"sourceRoot":""}