{"version":3,"file":"static/chunks/2875.c2203e8fbae489b1.js","mappings":"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","sources":["webpack://_N_E/./src/components/LandingBlock/Common/Button/styled.tsx","webpack://_N_E/./src/components/LandingBlock/Common/Button/index.tsx","webpack://_N_E/./src/components/CitySelect/index.tsx","webpack://_N_E/./src/components/LandingBlock/Header/HeaderPanel/styled.ts","webpack://_N_E/./src/components/LandingBlock/Header/HeaderPanel/index.tsx","webpack://_N_E/./src/components/LandingBlock/Header/styled.tsx","webpack://_N_E/./src/components/LandingBlock/Header/loadReactDom.ts","webpack://_N_E/./src/components/LandingBlock/Header/index.tsx","webpack://_N_E/./src/helpers/get-partial-styles.ts","webpack://_N_E/./public/icons/location.svg"],"sourcesContent":["import styled from 'styled-components';\nimport { styleWithBreakPoints } from '~/src/components/LandingBlock/styled';\nimport { BaseButton } from '@r1-frontend/ui-react/components/buttons/baseButton';\n\ninterface IBtnWrapProps {\n inline: boolean;\n align?: string;\n}\n\nexport interface IBtnProps {\n backgroundColor?: string;\n backgroundHoverColor?: string;\n buttonTextColor?: string;\n propName?: string;\n isAutoWidth?: boolean;\n}\n\nexport const ButtonWrap = styled.div`\n display: ${p => p.inline ? 'inline-block' : 'flex' };\n justify-content: ${p => p.align ? p.align : 'left'};\n & a {\n text-decoration: none;\n }\n`;\n\nexport const ButtonStyle = styled(BaseButton)`\n width: ${p => p.isAutoWidth ? 'auto' : '235px' };\n position: relative;\n z-index: 8;\n background-color: ${p => p.backgroundColor};\n border-color: ${p => p.backgroundColor};\n \n &:hover {\n background-color: ${p => p.backgroundHoverColor};\n border-color: ${p => p.backgroundHoverColor};\n }\n \n ${p => styleWithBreakPoints(p, `${p.propName || 'Button'}`)};\n`;\n\nexport const ButtonText = styled.span`\n ${p => p.propName ? styleWithBreakPoints(p, `${p.propName + '.Text'}`) : styleWithBreakPoints(p, 'Button.Text')};\n`;\n","import { ReactElement, useCallback } from 'react';\nimport Link from 'next/link';\nimport * as Sentry from '@sentry/node';\nimport { dataLayerPush } from '@r1-frontend/ui-react/components/helpers';\nimport { ButtonWrap, ButtonStyle, ButtonText } from './styled';\nimport { TAnalytics } from '~/src/services/blocks/configs/Part/analyticsPartConfig';\nimport { btnTypes } from '@r1-frontend/ui-react/components/buttons/baseButton';\n\nexport interface IButtonProps {\n elemId: string,\n type?: btnTypes,\n buttonText?: string | React.ReactNode | ReactElement;\n href?: string,\n isTargetBlank?: boolean,\n idForScroll?: string,\n analytics?: TAnalytics,\n customStyles?: Record,\n buttonClickHandler?: () => void,\n className?: string,\n isInline?: boolean;\n backgroundColor?: string;\n backgroundHoverColor?: string;\n align?: 'left' | 'right' | 'center';\n isAutoWidth?: boolean;\n enableCalltouch?: boolean;\n propName?: string;\n}\n\nconst Button = ({\n elemId,\n type,\n buttonText,\n href,\n isTargetBlank,\n idForScroll,\n customStyles,\n analytics,\n buttonClickHandler,\n className,\n isInline = false,\n backgroundColor,\n backgroundHoverColor,\n align = 'left',\n isAutoWidth = false,\n enableCalltouch = false,\n propName,\n}: IButtonProps): JSX.Element => {\n const clickHandler = useCallback(() => {\n if (idForScroll) {\n try {\n const elem = document.querySelector(`#${idForScroll}`);\n elem?.scrollIntoView({ block: 'start', behavior: 'smooth' });\n } catch (err) {\n Sentry.captureException(err);\n }\n }\n }, [idForScroll]);\n\n const onSendGtmEvent = 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\n dataLayerPush(event);\n }\n }\n }, [analytics]);\n\n return (\n \n {href\n ? \n \n {buttonText || 'Купить'}\n \n \n : \n {buttonText || 'Купить'}\n \n }\n \n );\n};\n\nexport default Button;\n","import React, { useContext, useEffect, useMemo, useState } from 'react';\nimport orderBy from 'lodash/orderBy';\nimport isEmpty from 'lodash/isEmpty';\nimport map from 'lodash/map';\nimport filter from 'lodash/filter';\n\nimport { LandingContext } from '~/src/containers/ContextContainer';\nimport {\n IRegionsWithCitiesGroup,\n IRegionWithCities,\n} from '@r1-frontend/api-domru/api-content/v1/geography/get-regions/dto/ResponseDto';\nimport type {\n ICitySatellite,\n} from '@r1-frontend/api-domru/api-content/v1/geography/get-cities-satellites/dto/ResponseDto';\nimport { doRequest } from '@r1-frontend/do-request';\nimport { getRegionsGroups } from '@r1-frontend/api-domru/api-content/v1/geography/get-regions';\nimport { getTopCities } from '@r1-frontend/api-domru/api-content/v1/geography/get-top-cities';\nimport CitySelectComponent from '@r1-frontend/city-select';\nimport { IRegionCity } from '@r1-frontend/api-domru/api-content/v1/geography/get-cities-by-region';\nimport { getCities } from '~/src/services/api/api-content/geography/get-all-cities';\nimport { ApiCity } from '~/src/services/api/api-content/geography/types';\n\ninterface IProps {\n handleCitySave: (domain?: ICitySatellite) => void,\n}\n\ntype TCitySatelliteByApiCity = ICitySatellite & Pick\n\nexport const CitySelect = ({ handleCitySave }: IProps): JSX.Element => {\n const { city } = useContext(LandingContext);\n\n const [regions, setRegions] = useState({});\n const [topCities, setTopCities] = useState([]);\n const [satellites, setSatellites] = useState([]);\n const [selectedRegion, setSelectedRegion] = useState(null);\n const providerId = useMemo(() => city?.provider_id || 47, [city]);\n\n useEffect(() => {\n if (isEmpty(regions) && isEmpty(topCities) && isEmpty(satellites)) {\n (async () => {\n const [respRegion, respTopCities, respSatellites] = await Promise.all([\n doRequest.apiContent(\n getRegionsGroups(providerId, { sortBy: 'name', groupBy: 'firstChar' }),\n ),\n doRequest.apiContent(\n getTopCities(providerId),\n ),\n getCities(['name', 'domain', 'provider_id', 'is_active', 'region_id', 'parent_city_id']),\n ]);\n\n setRegions(respRegion.isSuccess ? respRegion.payload : {});\n setTopCities(respTopCities.isSuccess ? respTopCities.payload : []);\n setSatellites(respSatellites.filter(city => city.is_active));\n })();\n }\n }, [providerId, regions, satellites, topCities]);\n\n const updateRegions = (region: IRegionWithCities, cities: IRegionCity[]) => {\n const regionLetter = region.name.charAt(0);\n const letterRegions = [...regions[regionLetter]];\n const updatedRegionIndex = letterRegions.findIndex(_region => _region.region_id === region.region_id);\n\n if (updatedRegionIndex !== -1) {\n letterRegions[updatedRegionIndex] = { ...letterRegions[updatedRegionIndex], cities };\n setRegions({\n ...regions,\n [regionLetter]: letterRegions,\n });\n }\n };\n\n const fetchRegionCities = async (region: IRegionWithCities): Promise => {\n if (region.region_id === selectedRegion?.region_id) {\n setSelectedRegion(null);\n return;\n }\n\n if (!region.cities?.length) {\n const citiesByRegion = map(\n filter(satellites, { region_id: region.region_id }),\n ({ name, domain, provider_id, parent_city_id }) => ({\n name,\n domain,\n provider_id,\n main: parent_city_id ? 0 : 1,\n })\n );\n\n const cities: IRegionCity[] = orderBy(citiesByRegion, ['main', 'name'], ['desc', 'asc']);\n setSelectedRegion({ ...region, cities });\n updateRegions(region, cities);\n return;\n }\n setSelectedRegion(region);\n };\n\n return (\n \n );\n};\n\n","import styled, { css } from 'styled-components';\nimport { FlexBoxRow, FlexBoxCol } from '@r1-frontend/ui-react/components/layouts/flexBoxGrid';\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport { fonts } from '~/src/helpers/font';\nimport { breakPoints, styleWithBreakPoints } from '~/src/components/LandingBlock/styled';\nimport { IMG_DOMAIN } from '~/src/services/blocks/templates';\n\nconst getFontColor = (customStyles) => {\n if (customStyles['Header.CitySelect']) {\n const customColor = customStyles['Header.CitySelect'].desktop\n .filter(style => style.includes('color:'))[0]\n .split(':')[1]\n .trim()\n .slice(0, -1);\n return css`background-color: ${customColor ? customColor : COLORS.black}`;\n }\n return css`background-color: ${COLORS.black}`;\n};\n\nexport const HeaderPanel = styled.div`\n width: 100%;\n padding: 10px 0;\n background-color: transparent;\n order: -1;\n position: relative;\n`;\n\nexport const Row = styled(FlexBoxRow)<{ wrap: string }>`\n width: 100%;\n flex-wrap: ${p => p.wrap ?? 'wrap'};\n`;\n\nexport const Col = styled(FlexBoxCol)`\n display: flex;\n align-items: right;\n z-index: 2;\n`;\n\nexport const GrowCol = styled(Col)`\n flex: 1 0 auto !important;\n\n @media (max-width: ${breakPoints.mobile}) {\n max-width: 230px;\n }\n`;\n\nexport const Logo = styled.img`\n width: 173px;\n height: 78px;\n position:relative;\n z-index: 10;\n\n @media (max-width: ${breakPoints.mobile}) {\n width: 64px;\n height: 64px;\n }\n`;\n\nexport const CurrentCity = styled.span`\n position:relative;\n display: flex;\n align-items: center;\n margin-left: 8px;\n padding-left: 25px;\n min-height: 15px;\n cursor: pointer;\n z-index: 10;\n\n color: ${COLORS.black};\n\n &:before {\n content: '';\n position:absolute;\n left: 0;\n top: 2px;\n width: 14px;\n height: 14px;\n mask: url(${require('~/public/icons/location.svg')}) no-repeat left center;\n ${p => getFontColor(p)}\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n display: block;\n margin-top: 12px;\n margin-left: 0;\n }\n\n &:hover {\n color: ${COLORS.red};\n\n &:before {\n background-color: ${COLORS.red};\n }\n }\n\n ${p => styleWithBreakPoints(p, 'Header.CitySelect')};\n`;\n\nexport const PhoneCol = styled(Col)`\n justify-content: flex-end;\n @media (max-width: ${breakPoints.mobile}) {\n justify-content: flex-start;\n }\n`;\n\nexport const Phone = styled.a`\n display: block;\n text-align: right;\n cursor: pointer;\n margin-right: 40px;\n\n &:hover {\n color: ${COLORS.red};\n text-decoration: none;\n }\n\n @media (max-width: ${breakPoints.mobile}) {\n text-align: left;\n font: ${fonts.XS};\n }\n\n ${p => styleWithBreakPoints(p, 'Header.Phone')}\n`;\n\nexport const Age = styled.div<{ backgroundColor: string, image: string}>`\n position: absolute;\n right: 0;\n top: 35px;\n width: 30px;\n height: 30px;\n -webkit-mask-image: url(${IMG_DOMAIN}${p => p.image});\n mask-image: url(${IMG_DOMAIN}${p => p.image});\n mask-size: contain;\n -webkit-mask-size: contain;\n mask-repeat: no-repeat;\n -webkit-mask-repeat: no-repeat;\n background-color: ${p => p.backgroundColor};\n`;\n","import React, { useState, useCallback, useMemo } from 'react';\nimport Link from 'next/link';\nimport { useRouter } from 'next/router';\nimport { ICitySatellite } from '@r1-frontend/api-domru/api-content/v1/geography/get-cities-satellites/dto/ResponseDto';\nimport { CitySelect } from '~/src/components/CitySelect';\nimport { IAgeRestriction } from '~/src/components/LandingBlock/Header';\nimport { ApiCity } from '~/src/services/api/api-content/geography/types';\n\nimport * as ST from './styled';\ninterface IPicture {\n src: string;\n alt: string;\n}\n\ninterface IProps {\n logo?: IPicture;\n isAdmin: boolean;\n customStyles?: Record;\n cityData: ICityData | Record;\n ageRestriction?: IAgeRestriction;\n}\n\nexport interface ICityData {\n city: ApiCity,\n}\n\nexport const HeaderPanel = ({ isAdmin, customStyles, cityData = {}, ageRestriction }: IProps): JSX.Element => {\n const router = useRouter();\n\n const { city } = cityData;\n\n const { domain: cityDomain = 'perm', logoFull = '/landing/icons/domru.svg' } = city || {};\n const [citySelectIsOpen, setCitySelectIsOpen] = useState(false);\n\n const phone = useMemo(() => {\n if (cityData) {\n const { city } = cityData;\n return `+7 (${city?.phone_code}) ${city?.sale_phone}`;\n }\n return '';\n }, [cityData]);\n\n const openCitySelect = useCallback(() => {\n setCitySelectIsOpen(true);\n }, []);\n\n const closeCitySelect = useCallback((city?: ICitySatellite) => {\n setCitySelectIsOpen(false);\n if (city) {\n const href = window?.location?.href;\n const newHref = href.replace(cityDomain, city?.domain);\n router.push(newHref);\n }\n }, [router, cityDomain]);\n\n return (\n \n \n \n \n \n \n \n \n \n \n { cityData.city && (\n \n \n \n {cityData?.city?.name}\n \n \n \n \n {phone}\n \n\n {ageRestriction?.active && ageRestriction?.image &&\n \n }\n \n \n )}\n \n \n {!isAdmin && citySelectIsOpen &&\n \n }\n \n );\n};\n","import styled, { css } from 'styled-components';\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport GridContainer from '@r1-frontend/ui-react/components/layouts/gridContainer';\nimport { FlexBoxCol, FlexBoxRow } from '@r1-frontend/ui-react/components/layouts/flexBoxGrid';\nimport { fonts } from '~/src/helpers/font';\nimport { breakPoints,\n styleWithBreakPoints,\n CSSPropWithBreakpointsGeneric,\n CSSPropWithBreakpoints,\n blockMargin } from '~/src/components/LandingBlock/styled';\nimport { Button } from '~/src/components/LandingBlock/Header/CallbackForm/styled';\n\nexport interface IHeaderBlockStyles {\n [key: string]: CSSPropWithBreakpoints;\n}\n\nexport const Grid = styled(GridContainer)`\n display: flex;\n flex-direction: column;\n`;\nexport const Col = styled(FlexBoxCol)``;\n\nexport const Row = styled(FlexBoxRow)``;\n\nexport const RowGrow = styled(FlexBoxRow)<{direction?: string}>`\n flex: 1 1 auto !important;\n order: 1;\n flex-direction: ${({ direction }) => direction === 'vertical' ? 'column' : 'row'};\n`;\n\nexport const Wrapper = styled.header<{ [key: string]: string }>`\n position: relative;\n width: 100%;\n height: ${p => p.isAutoHeightSize ? 'auto' : '100vh'};\n min-height: 420px;\n background: ${p => p.background ? `url(${p.background}) no-repeat center / cover` : 'transparent'};\n display: flex;\n margin-top: ${p => p.marginTop ? `${p.marginTop}px` : 0};\n margin-bottom: ${p => p.marginBottom ? `${p.marginBottom}px` : 0};\n \n @media (max-width: ${breakPoints.tablet}) {\n min-height: 300px;\n height: auto;\n }\n \n ${p => blockMargin(p)}; \n ${p => styleWithBreakPoints(p, 'Header')};\n`;\n\nexport const SubTitle = styled.div`\n margin: 0;\n white-space: pre-wrap;\n max-width: 500px;\n font: var(--bold-h4);\n \n @media (max-width: ${breakPoints.tablet}) {\n max-width: 100%;\n font: var(--bold-h4);\n }\n \n ${p => styleWithBreakPoints(p, 'Header.SubTitle')};\n`;\n\nexport const Title = styled.h1`\n font: ${fonts.H1};\n margin: 8px 0 0;\n color: ${COLORS.black};\n white-space: pre-wrap;\n max-width: 500px;\n\n @media (max-width: ${breakPoints.sDesktop}) {\n font: var(--bold-h1);\n }\n\n @media (max-width: ${breakPoints.tablet}) {\n max-width: 100%;\n font: var(--bold-h3);\n }\n\n ${p => styleWithBreakPoints(p, 'Header.Title')};\n`;\n\nexport const Text = styled.div`\n font: ${fonts.L};\n margin: 12px 0 0;\n color: ${COLORS.black};\n\n @media (max-width: ${breakPoints.tablet}) {\n max-width: 100%;\n white-space: normal;\n }\n\n ${p => styleWithBreakPoints(p, 'Header.Text')};\n`;\n\nexport const BtnWrap = styled.div`\n margin-top: 32px;\n\n @media (max-width: ${breakPoints.mobile}) {\n margin-top: 20px;\n margin-bottom: 10px\n }\n`;\n\nexport const Image = styled.div<{direction?: string}>`\n object-fit: contain;\n ${({ direction }) => direction === 'horizontal'\n ? css`\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n right: 13.5%;\n z-index: 1;\n max-width: 700px;\n overflow: hidden;\n ` : css`\n position: relative;\n display: flex;\n justify-content: center;\n `}\n\n img {\n ${p => p.direction === 'vertical' ? styleWithBreakPoints(p, 'Header.Image')\n : css`\n height: 100%;\n width: 100%;\n `};\n min-width: 130px;\n \n @media (max-width: ${breakPoints.mobile}) {\n max-width: 450px;\n }\n }\n\n @media (max-width: 535px) {\n margin-top: 30px;\n }\n @media (max-width: 340px) {\n margin-top: 40px;\n }\n \n @media (max-width: ${breakPoints.mobile}) {\n width: 100%;\n text-align: center;\n }\n ${p => getImageOffset(p)};\n ${p => getImageParams(p)};\n ${p => p.direction === 'horizontal' ? styleWithBreakPoints(p, 'Header.Image') : ''}\n`;\n\nconst topStyle = `\n position: inherit;\n transform: none;\n overflow: visible;\n width: 100%;\n order: 0;\n`;\n\nconst bottomStyle = `\n position: inherit;\n transform: none;\n overflow: visible;\n width: 100%;\n order: 3;\n`;\n\nconst IMAGE_PLACEMENT_VALUE = {\n top: topStyle,\n bottom: bottomStyle,\n};\n\ninterface ImagePlacement {\n imagePlacement: CSSPropWithBreakpointsGeneric<'top'|'bottom'> | string | undefined\n}\n\nconst getImageParams = ({ imagePlacement }: any & ImagePlacement) => {\n if (!imagePlacement) {\n return '';\n }\n const { desktop, mobile, tablet, sDesktop } = imagePlacement as CSSPropWithBreakpointsGeneric<'top'|'bottom'>;\n\n return css`\n ${desktop\n ? `@media (max-width: ${breakPoints.desktop}) {\n ${(IMAGE_PLACEMENT_VALUE[desktop] || '')}\n }`\n : ''};\n ${sDesktop\n ? `@media (max-width: ${breakPoints.sDesktop}) {\n ${(IMAGE_PLACEMENT_VALUE[sDesktop] || '')}\n }`\n : ''};\n ${tablet\n ? `@media (max-width: ${breakPoints.tablet}) {\n ${(IMAGE_PLACEMENT_VALUE[tablet] || '')}\n }`\n : ''};\n ${mobile\n ? `@media (max-width: ${breakPoints.mobile}) {\n ${(IMAGE_PLACEMENT_VALUE[mobile] || '')}\n }`\n : ''}; \n `;\n};\n\nexport const getImageOffset = (p: any) => {\n return css`\n top: ${p['offsetY']?.desktop ?? ''};\n right: ${p['offsetX']?.desktop ?? ''};\n \n @media (max-width: ${breakPoints.sDesktop}) {\n top: ${p['offsetY']?.sDesktop ?? ''};\n right: ${p['offsetX']?.sDesktop ?? ''};\n }\n \n @media (max-width: ${breakPoints.tablet}) {\n top: ${p['offsetY']?.tablet ?? ''};\n right: ${p['offsetX']?.tablet ?? ''};\n }\n \n @media (max-width: ${breakPoints.mobile}) {\n top: ${p['offsetY']?.mobile ?? ''};\n right: ${p['offsetX']?.mobile ?? ''};\n }\n `;\n};\n\nexport const StickyForm = styled.div`\n padding: 8px 0;\n display: none;\n \n ${Button}{\n opacity: 1;\n } \n \n @media (max-width: ${breakPoints.mobile}){\n display: block;\n }\n`;\n\nexport const Blur = styled.div`\n height: 100%;\n width: 100%;\n position: absolute;\n top: 0;\n right: 0;\n z-index: -1;\n overflow: hidden;\n`;\n","async function loadReactDom () {\n const {\n createPortal,\n } = await import('react-dom');\n\n return createPortal;\n}\nexport default loadReactDom;\n\n\n","import { useContext, useMemo, useEffect, useState } from 'react';\nimport { CSSObject } from 'styled-components';\nimport reduce from 'lodash/reduce';\nimport Button, { IButtonProps } from '~/src/components/LandingBlock/Common/Button';\nimport { HeaderPanel } from './HeaderPanel';\nimport CallbackForm from './CallbackForm';\nimport { IPhoneForm } from './CallbackForm/types';\nimport { ImagePlaceholder } from '~/src/components/LandingBlock/styled';\nimport { IMG_DOMAIN } from '~/src/services/blocks/templates';\nimport { getPartialStyles } from '~/src/helpers/get-partial-styles';\nimport { ICityData } from '~/src/components/LandingBlock/Header/HeaderPanel';\nimport * as ST from './styled';\nimport { TAnalytics } from '~/src/services/blocks/configs/Part/analyticsPartConfig';\nimport { PortalElementContext } from '~/src/components/StickyElementForPortal/useStickyElementContext';\nimport loadReactDom from './loadReactDom';\nimport { isHtmlWithText } from '~/src/helpers/isHtmlWithText';\nimport { getTextWithTag } from '~/src/helpers/getTextWithTag';\nimport WebpImage from '@r1-frontend/ui-react/components/WebpImage';\n\ninterface IPictureProp {\n src: string;\n alt: string;\n webp: string;\n}\n\nexport interface IAgeRestriction {\n active: boolean;\n backgroundColor?: string;\n image?: string;\n webp?: string;\n}\n\nexport type IHeaderButtonProps = Pick\n\nexport interface IHeaderBlockProps {\n blockId: string,\n isAdmin: boolean,\n title: string;\n text: string;\n form?: IPhoneForm;\n analytics?: TAnalytics;\n picture?: IPictureProp;\n logo?: IPictureProp;\n buttonProps?: IHeaderButtonProps;\n subtitle?: string;\n customStyles?: ST.IHeaderBlockStyles;\n cityData: ICityData;\n background?: string;\n alias?: string;\n additionalBlockConfig?: any;\n ageRestriction?: IAgeRestriction;\n isAutoHeightSize?: boolean;\n direction?: 'vertical' | 'horizontal';\n titleTag?: string;\n subtitleTag?: string;\n}\n\nfunction StickyCallbackFormWithImportPortal (props) {\n const { stickyElement } = useContext(PortalElementContext);\n\n const [portalImport, setPortalImport] = useState(null);\n const [pending, setPending] = useState(false);\n\n useEffect(() => {\n setPending(true);\n loadReactDom().then((createPortal) => {\n setPending(false);\n setPortalImport({ createPortal });\n });\n }, []);\n\n if (!portalImport?.createPortal || pending || !stickyElement) {\n return null;\n }\n\n return <>\n {portalImport.createPortal(\n \n \n \n \n \n \n \n \n \n \n \n , stickyElement)};\n}\n\nconst HeaderBlock = ({\n blockId,\n isAdmin,\n title,\n subtitle,\n text,\n form,\n analytics,\n logo,\n buttonProps,\n picture,\n customStyles,\n cityData,\n background,\n alias,\n additionalBlockConfig,\n ageRestriction,\n isAutoHeightSize,\n direction = 'horizontal',\n titleTag,\n subtitleTag,\n}: IHeaderBlockProps): JSX.Element => {\n const preparedCustomStyles = useMemo(() => {\n return reduce(customStyles, (acc, item, key) => {\n acc[key.replace(/Header[12]?/, 'Header')] = item;\n return acc;\n }, {});\n }, [customStyles]);\n\n const partialButtonStyles = useMemo(() => {\n return getPartialStyles(preparedCustomStyles as CSSObject, 'Button');\n }, [preparedCustomStyles]);\n\n const titleWithTag = getTextWithTag(title, titleTag);\n const subtitleWithTag = getTextWithTag(subtitle, subtitleTag);\n\n return (\n <>\n \n \n \n \n \n {subtitle && isHtmlWithText(subtitle) && (\n \n )}\n {isHtmlWithText(title) && (\n \n )}\n {text &&\n \n }\n {form && (\n \n )}\n {direction === 'horizontal' &&\n \n \n \n }\n \n \n\n \n {picture?.src\n ? \n {picture.alt\n \n : \n }\n \n \n \n {form && form?.isBottomSticky &&\n }\n \n );\n};\n\nexport default HeaderBlock;\n","import { CSSObject } from 'styled-components';\n\n/**\n * Убирает название родительского блока из строки со стилями\n * ключ 'Header1.Button.text' => 'Button.text'\n * TODO вынести в отдельный хелпер, потребуется для других компонентов\n */\n export const getPartialStyles = (styles: Record, name: string): CSSObject => {\n const partialStyles = {};\n\n for (const key in styles) {\n const position = key.search(name);\n if (position !== -1) {\n const partialKey = key.slice(position);\n partialStyles[partialKey] = styles[key];\n }\n }\n return partialStyles;\n};\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTUuOTMzNDcgOC4wODAyM0w3LjAxMDM1IDEzLjM4NDJDNy4wOTMxOSAxMy43OTg2IDcuNTA3MzggMTQuMDY3OSA3LjkyMTU3IDEzLjk4NUM4LjE3MDA4IDEzLjk0MzYgOC4zNzcxNyAxMy43NTcxIDguNDgwNzIgMTMuNTI5MkwxMy45MjczIDEuMDk4MDhDMTQuMTEzNyAwLjcwNDQzMSAxMy45MjczIDAuMjQ4NjIzIDEzLjUzMzggMC4wNjIxNTU2QzEzLjMyNjcgLTAuMDIwNzE4NSAxMy4wOTg5IC0wLjAyMDcxODUgMTIuODkxOCAwLjA2MjE1NTZMMC40NjYyMDMgNS41MzE4NUMwLjA3MjcyNiA1LjY5NzYgLTAuMTEzNjU4IDYuMTUzNDEgMC4wNzI3MjYgNi41NDcwNkMwLjE3NjI3MyA2Ljc3NDk2IDAuMzgzMzY2IDYuOTQwNzEgMC42MzE4NzggNy4wMDI4N0w1LjkzMzQ3IDguMDgwMjNaTTExLjcxMTQgMi4yOTk3Nkw4LjA0NTgyIDEwLjY5MDhMNy4zNDE3IDcuMjcyMjFDNy4yNzk1OCA2Ljk2MTQzIDcuMDMxMDYgNi43MzM1MyA2Ljc0MTEzIDYuNjcxMzdMMy4zNDQ4IDUuOTg3NjZMMTEuNzExNCAyLjI5OTc2WiIvPgo8L3N2Zz4K\""],"names":["ButtonWrap","styled","p","inline","align","ButtonStyle","BaseButton","isAutoWidth","backgroundColor","backgroundHoverColor","styleWithBreakPoints","propName","ButtonText","elemId","type","buttonText","href","isTargetBlank","idForScroll","customStyles","analytics","buttonClickHandler","className","isInline","enableCalltouch","clickHandler","useCallback","elem","document","querySelector","scrollIntoView","block","behavior","err","Sentry","onSendGtmEvent","category","action","label","event","dataLayerPush","onClick","Link","passHref","id","btnTypes","target","undefined","rel","data-testid","CitySelect","handleCitySave","useContext","LandingContext","city","useState","regions","setRegions","topCities","setTopCities","satellites","setSatellites","selectedRegion","setSelectedRegion","providerId","useMemo","provider_id","useEffect","isEmpty","respRegion","respTopCities","respSatellites","Promise","all","doRequest","getRegionsGroups","sortBy","groupBy","getTopCities","getCities","isSuccess","payload","filter","is_active","fetchRegionCities","region","citiesByRegion","cities","region_id","length","map","name","domain","main","parent_city_id","orderBy","regionLetter","charAt","letterRegions","updatedRegionIndex","findIndex","_region","updateRegions","CitySelectComponent","citiesSatellites","onRegionSelect","onCitySelect","data-test","HeaderPanel","Row","FlexBoxRow","wrap","Col","FlexBoxCol","GrowCol","breakPoints","Logo","CurrentCity","COLORS","require","customColor","desktop","style","includes","split","trim","slice","css","getFontColor","PhoneCol","Phone","fonts","Age","IMG_DOMAIN","image","cityData","isAdmin","ageRestriction","router","useRouter","cityDomain","logoFull","citySelectIsOpen","setCitySelectIsOpen","phone","phone_code","sale_phone","openCitySelect","closeCitySelect","window","newHref","location","replace","push","ST","middle","top","start","a","src","role","between","xs","sm","active","Grid","GridContainer","RowGrow","direction","Wrapper","isAutoHeightSize","background","marginTop","marginBottom","blockMargin","SubTitle","Title","Text","BtnWrap","Image","getImageOffset","getImageParams","IMAGE_PLACEMENT_VALUE","bottom","imagePlacement","mobile","tablet","sDesktop","StickyForm","Button","Blur","loadReactDom","createPortal","StickyCallbackFormWithImportPortal","props","PortalElementContext","stickyElement","portalImport","setPortalImport","pending","setPending","then","svg","fill","width","height","xmlns","rect","fillOpacity","CallbackForm","gaLabel","blockId","title","subtitle","text","form","logo","buttonProps","picture","alias","additionalBlockConfig","titleTag","subtitleTag","preparedCustomStyles","reduce","acc","item","key","partialButtonStyles","getPartialStyles","titleWithTag","getTextWithTag","subtitleWithTag","modeName","isHtmlWithText","dangerouslySetInnerHTML","__html","isNeedHideForSticky","isBottomSticky","pageAlias","WebpImage","urlWebp","webp","img","alt","ImagePlaceholder","styles","partialStyles","position","search","module","exports"],"sourceRoot":""}