{"version":3,"file":"static/chunks/4449.249e7a0106af8384.js","mappings":"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","sources":["webpack://_N_E/./src/services/tariffs/formatBundleFull.ts","webpack://_N_E/./src/services/tariffs/formatMonoFull.ts","webpack://_N_E/./src/components/LandingBlock/Tariffs/styled.tsx","webpack://_N_E/./src/services/api/api-epg/v1/index.ts","webpack://_N_E/./src/services/api/api-epg/v1/channels/index.ts","webpack://_N_E/./src/services/api/api-epg/v1/channel-categories/index.ts","webpack://_N_E/./src/components/LandingBlock/Tariffs/ChannelListPopup/helpers/getChannelThemesWithCounts.ts","webpack://_N_E/./src/components/LandingBlock/Tariffs/ChannelListPopup/styled.ts","webpack://_N_E/./src/components/LandingBlock/Tariffs/ChannelListPopup/index.tsx","webpack://_N_E/./src/components/LandingBlock/Tariffs/ChannelListPopup/helpers/getChannelPackages.ts","webpack://_N_E/./src/helpers/hooks/useProgressiveImage.tsx","webpack://_N_E/./src/constants/analytics.ts","webpack://_N_E/./src/components/LandingBlock/Tariffs/TariffCard/styled.tsx","webpack://_N_E/./src/components/LandingBlock/Tariffs/TariffCard/index.tsx","webpack://_N_E/./src/helpers/hooks/useWebp.tsx","webpack://_N_E/./src/components/LandingBlock/Tariffs/TariffsCarousel/index.tsx","webpack://_N_E/./src/components/LandingBlock/Tariffs/TariffsRenderer/index.tsx","webpack://_N_E/./src/components/LandingBlock/Tariffs/index.tsx","webpack://_N_E/./src/components/LandingBlock/Tariffs/usePrepareTariffs.tsx","webpack://_N_E/./src/helpers/getTextWithTag.ts","webpack://_N_E/./src/helpers/isHtmlWithText.ts","webpack://_N_E/./src/services/api/api-content/cities/format.ts","webpack://_N_E/./src/services/api/api-content/cities/tariffs.ts","webpack://_N_E/./src/services/api/api-content/cities/useGetTariffsInternet.tsx","webpack://_N_E/./src/services/tariffs/formatTariff.ts","webpack://_N_E/./public/defaultImageFallback.svg"],"sourcesContent":["import { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { formatTariff } from '~/src/services/tariffs/formatTariff';\nimport type { IBundlePackage } from '~/src/services/api/api-content/cities/types';\nimport type { ITariffFull } from './types';\n\nconst BUNDLES_VILLAGE_URL_PART = '/village';\n\nexport const formatBundleFull = (tariff: IBundlePackage): ITariffFull => {\n const isCottage = !!tariff.salePackage2in1.is_cottage;\n const defaultColor = '#34c270';\n const reserveColor = tariff.description.color_text || COLORS.TextPrimary;\n const titleColors = [\n tariff.description.color_title_start || reserveColor,\n tariff.description.color_title_end || reserveColor,\n ];\n\n return ({\n ...formatTariff(tariff),\n description: tariff.description ? tariff.description.description : '',\n isCottage: isCottage,\n price: tariff.salePackage2in1.price_final,\n alias: tariff.description ? tariff.description.alias : '',\n advantages: tariff.advantages,\n\n analogCount: Number(tariff.salePackage2in1.analog_count),\n\n availableClient: Boolean(tariff.description.available_client),\n availableGuest: Boolean(tariff.description.available_guest),\n colorText: tariff.description?.color_text ? tariff.description.color_text : COLORS.TextPrimary,\n descriptionFull: tariff.description.description_full ? tariff.description.description_full : '',\n freePackets: tariff.salePackage2in1.free_packets,\n fullSaleId: tariff.salePackage2in1?.full_sale_id ?? undefined,\n hdCount: Number(tariff.salePackage2in1.hd_count),\n headingColor: tariff.description?.color ?? defaultColor,\n imageBackground: tariff.description?.image_background\n ? `url(${tariff.description.image_background})`\n : COLORS.BgMain,\n imageBackgroundWebp: tariff.description?.image_background_webp\n ? `url(${tariff.description.image_background_webp})`\n : null,\n imageInHead: false,\n includes: tariff.includes,\n isSelfOrder: !!tariff.salePackage2in1?.is_self_order,\n lineId: tariff.description.line_id,\n location: '/bundles' + (isCottage ? BUNDLES_VILLAGE_URL_PART : ''),\n priceAction: tariff.salePackage2in1.promo_price_final ? tariff.salePackage2in1.promo_price_final : null,\n priceActionPeriod: tariff.salePackage2in1.promo_duration_final\n ? tariff.salePackage2in1.promo_duration_final\n : null,\n priceConnect: Number(tariff.price_connect_internet) + Number(tariff.price_connect_tv),\n productId: tariff.sale_package_id,\n productIdForBilling: 0,\n productType: 100,\n offerContents: tariff.offerContents,\n promoDuration: tariff.salePackage2in1.promo_duration,\n promoDurationType: tariff.salePackage2in1.promo_dur_type,\n promoted: !!tariff.description?.promoted,\n salePackageId: tariff.tariff_id,\n sdCount: Number(tariff.salePackage2in1.sd_count),\n sortOnInternet: Number(tariff.description.sort_on_internet),\n speedAction: tariff.speed_bonus,\n speedActionPeriod: tariff.speed_bonus_duration,\n title: tariff.description ? (tariff.description.title || tariff.description.tariff_name) : '',\n titleColors: titleColors,\n type: 'bundles',\n weight: tariff.description.weight,\n salePackageLinks: tariff.salePackageLinks,\n });\n};\n","import { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { formatTariff } from '~/src/services/tariffs/formatTariff';\nimport type { IInternetPackage } from '~/src/services/api/api-content/cities/types';\nimport type { ITariffFull } from './types';\n\nconst MONO_VILLAGE_URL_PART = '/mono-village';\n\nexport const formatMonoFull = (tariff: IInternetPackage): ITariffFull => {\n const isCottage = tariff.is_cottage;\n const reserveColor = tariff.description.color_text || COLORS.TextPrimary;\n const titleColors = [\n reserveColor,\n reserveColor,\n ];\n\n return ({\n ...formatTariff(tariff),\n channelCount: null,\n priceIncludedVas: null,\n description: tariff.description ? tariff.description.description : '',\n alias: tariff.description ? tariff.description.alias : '',\n advantages: tariff.advantages,\n price: tariff.price_final,\n availableClient: !!tariff.available_client,\n availableGuest: !!tariff.available_guest,\n colorText: tariff.description?.color_text ? tariff.description.color_text : COLORS.TextPrimary,\n freePackets: 0,\n fullSaleId: tariff.full_sale_id,\n headingColor: tariff.description?.color ?? COLORS.TextPrimary,\n imageBackground: tariff.description?.image_background\n ? `url(${tariff.description.image_background})`\n : COLORS.BgMain,\n imageBackgroundWebp: tariff.description?.image_background_webp\n ? `url(${tariff.description.image_background_webp})`\n : null,\n imageInHead: true,\n includes: tariff.includes,\n isSelfOrder: !!tariff.is_self_order,\n lineId: tariff.description.line_id,\n location: '/internet' + (isCottage ? MONO_VILLAGE_URL_PART : ''),\n offerContents: tariff.offerContents || [],\n priceAction: tariff.promo_price_final ? tariff.promo_price_final : null,\n priceActionPeriod: tariff.promo_duration_final\n ? tariff.promo_duration_final\n : null,\n priceConnect: tariff.connect_price,\n productId: tariff.tariff_id,\n productIdForBilling: 5,\n productType: 40,\n promoDuration: tariff.promo_duration,\n promoDurationType: tariff.promo_dur_type,\n promoted: false,\n salePackageId: tariff.sale_package_id,\n sortOnInternet: Number(tariff.sort_on_internet),\n speedAction: tariff.speed_bonus,\n speedActionPeriod: tariff.speed_bonus_duration,\n title: tariff.description ? (tariff.description.title || tariff.description.tariff_name) : tariff.tariff_name_display,\n titleColors: titleColors,\n type: 'internet',\n weight: tariff.description.weight,\n });\n};\n","import styled 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 { blockMargin, breakPoints, styleWithBreakPoints } from '~/src/components/LandingBlock/styled';\n\nexport const Tariffs = styled.div<{ [key: string]: string }>`\n display: flex;\n width: 100%;\n\n ${p => blockMargin(p)}; \n ${p => styleWithBreakPoints(p, 'Tariffs')};\n`;\n\nexport const Container = styled(GridContainer)`\n max-width: 1080px;\n\n @media (max-width: 790px) {\n padding-left: 16px;\n padding-right: 16px;\n }\n`;\n\nexport const CardList = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n & > div {\n margin-bottom: 16px;\n margin-right: 8px;\n }\n`;\n\nexport const Row = styled(FlexBoxRow)`\n width: 100%;\n \n @media (max-width: ${breakPoints.mobile}) {\n width: auto;\n }\n`;\n\nexport const Col = styled(FlexBoxCol)`\n margin-bottom: 20px;\n`;\n\nexport const Title = styled.div`\n color: ${COLORS.black};\n font: ${fonts.H2};\n margin-bottom: 30px;\n \n @media (max-width: ${breakPoints.tablet}) {\n font: ${fonts.H2};\n }\n \n @media (max-width: ${breakPoints.mobile}) {\n font: ${fonts.H3};\n }\n\n ${p => styleWithBreakPoints(p, 'Tariffs.Title')};\n`;\n","import axios, { AxiosInstance } from 'axios';\n\nconst ENDPOINT = process.env.NEXT_PUBLIC_API_EPG_ENDPOINT || 'https://api-epg.web-api.dom.ru';\n\nconst apiEpgRequest = (accessToken?: string, headers = {}): AxiosInstance => {\n const initHeaders: Record = {\n 'Content-Type': 'application/json',\n 'X-Requested-With': 'XMLHttpRequest',\n };\n\n if (accessToken) {\n initHeaders['Authorization'] = `Bearer ${accessToken}`;\n }\n\n return axios.create({\n baseURL: ENDPOINT,\n headers: { ...initHeaders, ...headers },\n });\n};\n\nexport default apiEpgRequest;\n","import { captureException } from '@sentry/node';\nimport { IGetChannels, TChannelsResponse } from '~/src/services/api/api-epg/v1/dto/IChannelsDto';\nimport apiEpgRequest from '~/src/services/api/api-epg/v1';\n\n/*\n* Список каналов в разрезе провайдеров\n* https://master.api-epg.sandbox.d2c.r-one.io/docs/#/v1/ChannelController_getChannelsByProviderId\n*/\n\nexport const getChannels = async (providerId: number, params?: IGetChannels): Promise => {\n try {\n const response = await apiEpgRequest().get(`/api/v1/${providerId}/channels`, {\n params: params,\n });\n\n return {\n isSuccess: true,\n payload: response.data,\n };\n } catch (error) {\n captureException(error);\n\n return {\n isSuccess: false,\n error: error.response.data,\n };\n }\n};\n","import { captureException } from '@sentry/node';\nimport apiEpgRequest from '~/src/services/api/api-epg/v1/';\nimport { TChannelsCategoriesResponse, IParams } from '~/src/services/api/api-epg/v1/dto/IChannelsDto';\n\n/*\n* Информация о категориях каналов\n* https://master.api-epg.sandbox.d2c.r-one.io/docs/#/v1/ChannelCategoryController_getChannelCategoriesByProviderId\n*/\n\nexport const getCategories = async (providerId: number, params?: IParams): Promise => {\n try {\n const response = await apiEpgRequest().get(`/api/v1/${providerId}/channel-categories`, {\n params: params,\n });\n\n return {\n isSuccess: true,\n payload: response.data,\n };\n } catch (error) {\n captureException(error);\n\n return {\n isSuccess: false,\n error: error.response.data,\n };\n }\n};\n","/**\n * Вычисление количества каналов и HD для каждой темы каналов\n * и добавление результата в label\n * @returns {IFormattedChannelTheme[]}\n */\n\nimport { IChannelsDto, IFormattedChannelThemeDto } from '~/src/services/api/api-epg/v1/dto/IChannelsDto';\n\nconst defaultChannelsTheme = {\n id: 0,\n label: 'Все каналы',\n name: 'Все каналы',\n value: 0,\n weight: -1,\n channels: [],\n hasChannels: false,\n};\n\nconst quantityHdChannels = (channels: IChannelsDto[]) => channels.reduce((quantityHd, channel) => {\n const currentHd = channel.quality === 'HD' ? 1 : 0;\n return quantityHd + currentHd;\n}, 0);\n\nexport const getChannelThemesWithCounts = (allChannels: IChannelsDto[], channelThemes: IFormattedChannelThemeDto[]) => {\n if (allChannels?.length) {\n return [defaultChannelsTheme, ...channelThemes].map((theme) => {\n const { id } = theme;\n const themeChannels = allChannels.filter(channel => channel.categoryId === id);\n const hdCount = themeChannels.filter(channel => channel.quality === 'HD').length;\n const sdCount = themeChannels.length - hdCount;\n const countsSum = hdCount + sdCount;\n\n const tmpTheme = { ...theme };\n const allLabel = `(${countsSum})`;\n const hdLabel = hdCount ? `(${countsSum} / ${hdCount}HD)` : null;\n\n if (id === 0) {\n tmpTheme.label = `${tmpTheme.label} ${allChannels.length} (${quantityHdChannels(allChannels)}HD)`;\n tmpTheme.hasChannels = true;\n } else {\n tmpTheme.label = `${theme.label} ${hdLabel ? hdLabel : allLabel}`;\n tmpTheme.hasChannels = !!(countsSum);\n }\n\n return tmpTheme;\n }).filter(theme => theme.hasChannels);\n }\n\n return channelThemes;\n};\n","import styled from 'styled-components';\n\nimport Button from '@r1-frontend/ui-react/components/buttons/button';\nimport BasePopup from '@r1-frontend/ui-react/components/popups/basePopup';\nimport { List } from '@r1-frontend/ui-react/components/Channels/ChannelsList/styled';\nimport { ChannelsSelector } from '@r1-frontend/ui-react/components/Channels/ChannelsFilters/styled';\n\nexport const SBasePopup = styled(BasePopup)`\n padding-bottom: 12px !important;\n\n ${ChannelsSelector} {\n display: flex;\n }\n\n ${List} {\n display: flex;\n flex-wrap: wrap;\n }\n`;\n\nexport const HideSearchBtn = styled(Button)`\n padding-left: 0;\n padding-top: 2px;\n padding-bottom: 3px;\n`;\n","import { useCallback, useContext, useEffect, useState } from 'react';\nimport intersection from 'lodash/intersection';\n\nimport { SingleArrowLeft } from '@r1-frontend/ui-react/components/svg/arrows';\nimport ChannelsFilters from '@r1-frontend/ui-react/components/Channels/ChannelsFilters';\nimport ChannelsList from '@r1-frontend/ui-react/components/Channels/ChannelsList';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { IOption } from '@r1-frontend/ui-react/components/select/select';\nimport Throbber from '@r1-frontend/ui-react/components/loaders/Throbber';\n\nimport { useMatchMediaByWidth } from '@r1-frontend/shared/hooks/useMatchMedia';\n\nimport { LandingContext } from '~/src/containers/ContextContainer';\n\nimport { IChannelsDto, IFormattedChannelThemeDto } from '~/src/services/api/api-epg/v1/dto/IChannelsDto';\nimport { getChannels } from '~/src/services/api/api-epg/v1/channels';\nimport { getCategories } from '~/src/services/api/api-epg/v1/channel-categories';\n\nimport { getChannelPackages } from './helpers/getChannelPackages';\nimport { getChannelThemesWithCounts } from './helpers/getChannelThemesWithCounts';\n\nimport * as ST from './styled';\n\ninterface IChannelListPopup {\n freePackets?: number | string | number[],\n onClose: () => void,\n isOfferChannels?: boolean,\n}\n\nexport const defaultChannelsFilter: IFormattedChannelThemeDto = {\n id: 0,\n label: '',\n name: '',\n value: 0,\n weight: -1,\n channels: [],\n};\n\nconst ChannelListPopup = ({ freePackets, onClose }: IChannelListPopup): JSX.Element => {\n const [isShowSearch, setIsShowSearch] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n const [channelsFiltersApply, setIsChannelsFiltersIsApply] = useState(false);\n\n const [filter, setFilter] = useState(defaultChannelsFilter);\n const [channelThemes, setChannelThemes] = useState([]);\n const [preparedThemes, setPreparedThemes] = useState([]);\n\n const [searchValue, setSearchValue] = useState('');\n const [allChannels, setAllChannels] = useState([]);\n const [filteredChannels, setFilteredChannels] = useState([]);\n const [tariffChannels, setTariffChannels] = useState([]);\n\n const isMobile = useMatchMediaByWidth(wideBreakpoints.mobile);\n\n const { city: { provider_id: providerId } } = useContext(LandingContext);\n\n const getAllChannels = async () => {\n if (!allChannels?.length) {\n const response = await getChannels(providerId, { with: 'category,channelInfo,packets' });\n\n if (response.isSuccess) {\n const data = response.payload.map((channel) => {\n return ({\n ...channel,\n button: channel.lcn,\n logo: channel?.channelInfo?.logo,\n chid: channel.channelId,\n xvid: channel.epgId,\n display: channel.display.toString(),\n bids: channel.packets.map(({ billing_id }) => (billing_id || '').toString()),\n thid: (channel?.category?.id || '').toString(),\n });\n });\n setAllChannels(data);\n }\n }\n };\n\n const getChannelsThemes = async () => {\n if (!channelThemes?.length) {\n const response = await getCategories(providerId, ({ with: 'channels' }));\n\n if (response.isSuccess) {\n const formattedThemes = response.payload.map((theme) => ({\n value: theme.rndId,\n id: theme.rndId,\n label: theme.name,\n name: theme.name,\n weight: theme.weight,\n channels: (theme.channels || []).map(channel => ({\n ...channel,\n isHd: channel.quality === 'HD',\n id: channel.epgId,\n logo: channel?.channelInfo?.logo,\n })),\n }));\n setChannelThemes(formattedThemes);\n }\n }\n };\n\n const onShowSearchInput = useCallback((e) => {\n e.stopPropagation();\n setIsShowSearch(true);\n setFilter(defaultChannelsFilter);\n }, []);\n\n const onChangeChannelTheme = (option: IOption) => {\n const value = preparedThemes.find(item => item.label === option.label);\n setFilter(value);\n\n if (value.id === 0) {\n setFilteredChannels(tariffChannels);\n } else {\n const filteredCategoriesIds = tariffChannels.filter((channel) => channel.categoryId.toString() === value.id.toString());\n setFilteredChannels(filteredCategoriesIds);\n }\n };\n\n const onChangeSearch = (event: React.ChangeEvent) => {\n const inputValue = event.target.value.toLowerCase();\n setSearchValue(inputValue);\n\n const filteredTitles = tariffChannels.filter(channel => channel.title.toLowerCase().includes(inputValue));\n setFilteredChannels(filteredTitles);\n\n if (!filteredTitles.length) {\n setIsChannelsFiltersIsApply(true);\n }\n };\n\n const onClearSearch = () => {\n setSearchValue('');\n setFilter(defaultChannelsFilter);\n setFilteredChannels(tariffChannels);\n setIsChannelsFiltersIsApply(false);\n };\n\n const onClickPopupWrapper = useCallback(() => {\n setIsShowSearch(false);\n }, []);\n\n const onCloseHandler = () => {\n onClearSearch();\n onClose();\n };\n\n useEffect(() => {\n if (allChannels?.length) {\n setIsLoading(false);\n\n if (freePackets) {\n const channelPackages = getChannelPackages(freePackets);\n const filteredTariffChannels = allChannels.filter(channel => !!intersection(channelPackages.packages, channel.bids).length);\n setTariffChannels(filteredTariffChannels);\n }\n return;\n }\n\n getAllChannels();\n getChannelsThemes();\n }, [providerId, allChannels, freePackets]);\n\n useEffect(() => {\n if (!!tariffChannels.length && !!channelThemes.length) {\n const channelsCountThemes = getChannelThemesWithCounts(tariffChannels, channelThemes);\n setPreparedThemes(channelsCountThemes);\n setFilteredChannels(tariffChannels);\n }\n }, [tariffChannels, channelThemes]);\n\n return (\n }\n onClick={onClearSearch}\n >\n Назад\n \n : 'Список телеканалов'\n }\n description={\n \n }\n onClose={onCloseHandler}\n onClick={onClickPopupWrapper}\n data-test='channel-list-popup'\n >\n {isLoading\n ? \n : \n }\n \n );\n};\n\nexport default ChannelListPopup;\n","/**\n * Получение пакетов телеканалов, по нему сможем определить\n * какие каналы входят в определенный пакет\n * @param {number | string | number[]} freePackets Пакеты каналов\n * @returns {Function}\n */\ninterface IPackages {\n packages: string[];\n}\n\nexport function getChannelPackages (freePackets: number | string | number[]): IPackages {\n if (!freePackets) {\n return;\n }\n\n const packagesIds = Array.isArray(freePackets)\n ? freePackets.map(String)\n : String(freePackets).split(',');\n\n return (\n {\n packages: [...new Set(packagesIds)],\n }\n );\n}\n","import { useCallback, useMemo, useState } from 'react';\nimport { isClientSide } from '@r1-frontend/shared/helpers/ssr';\nimport defaultImageFallback from '~/public/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","/**\n * Категории событий\n *\n * @name constants.EVENTS\n * @type {Record}\n */\nexport const CATEGORIES: Record = {\n applicationForm: 'application_form',\n applicationButton: 'application_button',\n landing: 'landing',\n fullBuy: 'fullbuy',\n tariffCards: 'tariff_cards',\n fullBuyEquip: 'full-buy-equip',\n};\n\n/**\n * Тип действия событий\n *\n * @name constants.ACTIONS\n * @type {Record}\n */\nexport const ACTIONS: Record = {\n started: 'started',\n finished: 'finished',\n success: 'success',\n error: 'error',\n click: 'click',\n view: 'view',\n popup: 'popup',\n clickChooseTariff: 'click choose tariff',\n};\n\n/**\n * Типы событий\n *\n * @name constants.EVENTS\n * @type {Record}\n */\nexport const EVENTS: Record = {\n UAevent: 'UAevent',\n};\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n & div[data-test=\"options\"],\n & div[data-test=\"acc-includes\"] {\n width: 100%;\n border: none;\n color: inherit;\n padding: 0;\n margin-top: 16px;\n background: none;\n }\n`;\n","import { memo, useCallback, useMemo, useState } from 'react';\nimport * as Sentry from '@sentry/node';\nimport TariffCard, { ITvDescriptions } from '@r1-frontend/ui-react/components/TariffCard';\nimport { isClientSide } from '@r1-frontend/shared/helpers/ssr';\nimport { dataLayerPush } from '@r1-frontend/ui-react/components/helpers';\n\nimport { getPluralize } from '@r1-frontend/shared/helpers/pluralize';\nimport { monthPluralize, channelPluralize } from '@r1-frontend/shared/helpers/pluralize/predifined';\n\nimport { useWebp } from '~/src/helpers/hooks/useWebp';\nimport { useProgressiveImage } from '~/src/helpers/hooks/useProgressiveImage';\nimport { EVENTS, ACTIONS, CATEGORIES } from '~/src/constants/analytics';\n\nimport { Wrapper } from './styled';\n\nconst monthText = getPluralize(monthPluralize);\nconst channelText = getPluralize(channelPluralize);\n\nexport const MAX_ADV_QUANTITY = 2;\n\nconst TariffCardWrapper = ({\n tariff,\n openModal = () => ({}),\n tiled = false,\n idForScroll,\n isFullByActive = false,\n buttonProps,\n cityDomain,\n }): JSX.Element => {\n const {\n alias,\n advantages,\n hdCount = 0,\n imageBackground,\n imageBackgroundWebp,\n includes,\n isCottage,\n offerContents,\n priceAction,\n priceActionPeriod,\n sdCount = 0,\n title,\n isNeedRequest,\n type,\n } = tariff;\n // Сделали landingAvailable=1 костыль, для того, чтобы появлялись тарифы \"Доступен на лендингах\"\n // Как работает - в full-buy считываем параметр и передаем в запрос\n const fullBuyPath =\n `https://${cityDomain}.dom.ru/full-buy?tariffName=${alias}&monoTariff=${type === 'internet'}&landingAvailable=1${isCottage ? '&filters=cottage' : '' }`;\n\n const hasUrlBackground = useMemo(() => !!(imageBackgroundWebp?.includes('url') || imageBackground?.includes('url')),\n [imageBackground, imageBackgroundWebp]);\n const isWebpUsed = useWebp();\n\n const resultBackground = (isWebpUsed && imageBackgroundWebp) ? imageBackgroundWebp : imageBackground;\n\n const background = useProgressiveImage(\n hasUrlBackground ? resultBackground && resultBackground.replace(/^url|[()]/g, '') : resultBackground,\n { hasTimeout: true, timeoutDelay: 10 },\n );\n\n const [isOpenInternet, setIsOpenInternet] = useState(true);\n\n const promoPeriod = useMemo(\n () => priceActionPeriod ? `${priceActionPeriod} ${monthText(priceActionPeriod)}` : '',\n [priceActionPeriod],\n );\n\n const withSubscriptions = useMemo(() => !!offerContents?.length, [offerContents?.length]);\n\n const internetData = useMemo(() => {\n const data = advantages?.length\n ? advantages\n .slice(0, MAX_ADV_QUANTITY)\n .map(advantage => advantage.description)\n : [];\n return data;\n }, [advantages]);\n\n const tvData = useMemo(() => {\n const data = [];\n\n includes?.length && data.push({\n desc: includes[0].description,\n });\n (hdCount || sdCount) && data.push({\n desc: hdCount\n ? `${hdCount} HD ${channelText(hdCount)}. `\n : `${sdCount} ${channelText(sdCount)}. `,\n details: 'Подробнее',\n });\n\n return data;\n }, [hdCount, includes, sdCount]);\n\n const buttonText = useMemo(() => {\n return isNeedRequest\n ? 'Создать заявку'\n : (priceAction\n ? 'Подключить со скидкой'\n : 'Подключить тариф');\n }, [priceAction, isNeedRequest]);\n\n const onToggleHandler = useCallback(() => setIsOpenInternet(!isOpenInternet), [isOpenInternet]);\n\n const openFullBuyHref = useCallback(() => {\n if (buttonProps.isTargetBlank) {\n window.open(fullBuyPath, '_blank', 'noopener');\n } else {\n window.location.href = fullBuyPath;\n }\n }, [buttonProps.isTargetBlank, fullBuyPath]);\n\n const onClickHandler = useCallback(() => {\n dataLayerPush({\n event: EVENTS.UAevent,\n category: CATEGORIES.tariffCards,\n action: ACTIONS.clickChooseTariff,\n label: isFullByActive ? `fullBy|${title}` : `callback|${title}`,\n });\n\n if (isFullByActive && isClientSide()) {\n openFullBuyHref();\n } else if (idForScroll) {\n try {\n const elem = document.querySelector(`#${idForScroll}`);\n elem?.scrollIntoView({ block: 'center', behavior: 'smooth' });\n } catch (err) {\n Sentry.captureException(err);\n }\n }\n }, [isFullByActive, title, idForScroll, openFullBuyHref]);\n\n return (\n \n }\n isOpenInternet={isOpenInternet}\n onToggleHandler={onToggleHandler}\n />\n \n );\n};\n\nexport default memo(TariffCardWrapper);\n","import { useCallback, useEffect, useState } from 'react';\n\nexport const useWebp = () => {\n const [{ webP: supportsWebP }, setWebPSupport] = useState({ webP: true });\n const webPCheck = useCallback(() => new Promise(resolve => {\n const image = new Image();\n image.onerror = () => resolve(false);\n image.onload = () => resolve(image.width === 1);\n image.src = 'data:image/webp;base64,UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoBAAEAAwA0JaQAA3AA/vuUAAA=';\n }).catch(() => false), []);\n\n useEffect(() => {\n const checkForSupport = async () => {\n const browserSupportsWebP = await webPCheck();\n\n // @ts-ignore\n setWebPSupport({ webP: browserSupportsWebP });\n };\n checkForSupport();\n }, []);\n\n return supportsWebP;\n};\n","import React from 'react';\nimport NukaCarousel from '@r1-frontend/ui-react/components/NukaCarousel';\n\nimport TariffCardWrapper from '~/src/components/LandingBlock/Tariffs/TariffCard';\nimport type { ITariffFull } from '~/src/services/tariffs/types';\nimport type { TCardButtonProps } from '~/src/components/LandingBlock/TariffCardsRA/CardRA';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { useMatchMediaByWidth } from '@r1-frontend/shared/hooks/useMatchMedia';\n\ninterface TariffsCarouselProps {\n tariffs: ITariffFull[];\n isFullByActive: boolean;\n buttonProps: TCardButtonProps;\n cityDomain: string;\n handleOpenModal: (tariff: ITariffFull) => void;\n}\n\nconst TariffsCarousel = ({\n tariffs,\n isFullByActive,\n buttonProps,\n cityDomain,\n handleOpenModal,\n}: TariffsCarouselProps): JSX.Element => {\n const isMobile = useMatchMediaByWidth(wideBreakpoints.mobile);\n\n return (\n \n {tariffs.map(tariff => (\n handleOpenModal(tariff)}\n />\n ))}\n \n );\n};\n\nexport default TariffsCarousel;\n","import React from 'react';\nimport TariffCardWrapper from '~/src/components/LandingBlock/Tariffs/TariffCard';\nimport TariffsCarousel from '../TariffsCarousel';\nimport type { ITariffFull } from '~/src/services/tariffs/types';\nimport type { TCardButtonProps } from '~/src/components/LandingBlock/TariffCardsRA/CardRA';\n\ninterface TariffRendererProps {\n tariffs: ITariffFull[];\n isCarouselActive: boolean;\n isFullByActive: boolean;\n buttonProps: TCardButtonProps;\n cityDomain: string;\n handleOpenModal: (tariff: ITariffFull) => void;\n}\n\nconst TariffRenderer = ({\n tariffs,\n isCarouselActive,\n isFullByActive,\n buttonProps,\n cityDomain,\n handleOpenModal,\n}: TariffRendererProps): JSX.Element =>\n isCarouselActive\n ? (\n \n )\n : (\n <>\n {tariffs.map((tariff) => (\n handleOpenModal(tariff)}\n />\n ))}\n \n );\n\nexport default TariffRenderer;\n","import { useCallback, useEffect, useState } from 'react';\nimport { useGetTariffs } from '~/src/services/api/api-content/cities/useGetTariffsInternet';\nimport { usePrepareTariff } from '~/src/components/LandingBlock/Tariffs/usePrepareTariffs';\nimport { formatBundleFull } from '~/src/services/tariffs/formatBundleFull';\nimport { formatMonoFull } from '~/src/services/tariffs/formatMonoFull';\nimport { getTextWithTag } from '~/src/helpers/getTextWithTag';\nimport type { TCardButtonProps } from '~/src/components/LandingBlock/TariffCardsRA/CardRA';\nimport type { ITariffFull } from '~/src/services/tariffs/types';\nimport * as ST from './styled';\nimport ChannelListPopup from './ChannelListPopup';\nimport TariffsRenderer from './TariffsRenderer';\n\ninterface IProps {\n cityDomain: string,\n blockId: string,\n buttonProps?: TCardButtonProps,\n customStyles?: Record,\n showBundles: boolean,\n isCarouselActive?: boolean,\n isFullByActive: boolean,\n bundlesAliases: string,\n showInternet: boolean,\n internetAliases: string,\n aliasWildcard: string,\n title: string,\n additionalBlockConfig?: any,\n tag?: string;\n}\n\nconst Tariffs = ({\n cityDomain = 'perm',\n blockId,\n buttonProps,\n customStyles,\n showBundles,\n showInternet,\n bundlesAliases,\n internetAliases,\n aliasWildcard,\n isCarouselActive,\n isFullByActive,\n title,\n additionalBlockConfig,\n tag,\n}: IProps): JSX.Element => {\n const [selectedTariff, setSelectedTariff] = useState(null);\n\n const [, { bundles = undefined, mono = undefined } = {}, getTariffs] = useGetTariffs();\n\n useEffect(() => {\n getTariffs();\n }, [getTariffs]);\n\n const getFilteredTariffs = useCallback((tariffs: ITariffFull[], aliases: string) => {\n const filters = aliases.split(',');\n\n return filters.reduce((acc: ITariffFull[], filter) => {\n const matchingTariff = tariffs.find(tariff => {\n if (aliasWildcard !== '' && tariff.alias) {\n if (tariff.alias.search(aliasWildcard) !== -1 && !tariff.isCottage) {\n return true;\n }\n }\n\n return tariff.alias === filter;\n });\n\n if (matchingTariff) {\n acc.push(matchingTariff);\n }\n\n return acc;\n }, []);\n }, [aliasWildcard]);\n\n const { bundles: filteredBundles, mono: filteredMono } = usePrepareTariff({\n bundles: bundles?.map(formatBundleFull),\n internet: mono?.map(formatMonoFull),\n getFilteredTariffs,\n bundlesAliases,\n internetAliases,\n });\n\n const titleWithTag = getTextWithTag(title, tag);\n\n const handleOpenModal = (tariff: ITariffFull) => {\n setSelectedTariff(tariff);\n };\n\n return (\n \n \n \n {showBundles &&\n \n \n \n }\n {showInternet &&\n \n \n \n }\n {selectedTariff && (\n setSelectedTariff(null)}\n />\n )}\n \n \n );\n};\n\nexport default Tariffs;\n","import { useCallback, useMemo } from 'react';\nimport { unifySubscriptionItems } from '~/src/services/api/api-content/cities/format';\nimport { TAdditionalProduct } from '~/src/services/api/api-content/cities/types';\nimport { IFormattedTariff } from '~/src/services/tariffs/types';\nimport { IOfferContent } from '@r1-frontend/shared/types/tariff/IOfferContent';\n\ninterface IProps {\n bundles: T;\n internet: T;\n getFilteredTariffs: (tariffs: T, aliases: string) => T;\n bundlesAliases: string;\n internetAliases: string;\n}\n\ninterface IUsePrepareTariff {\n bundles: T;\n mono: T;\n}\n\nexport const usePrepareTariff = (\n { bundles, internet, getFilteredTariffs, bundlesAliases, internetAliases }: IProps\n): IUsePrepareTariff => {\n\n // Для ТП \"Гига\" имеется структура salePackageLinks в тарифе, в которой лежат комбинации подписок,\n // для данного типа ТП необходимо выводить все подписки (уникальные), а также приставку мувикс из обязательной в оборудованиии\n // для остальных тарифов без изменений\n const prepareSubscriptions = useCallback((tariffs) => {\n return tariffs.length\n ? tariffs.map((tariff: IFormattedTariff) => {\n const subscriptionsList = tariff.salePackageLinks;\n if (subscriptionsList && subscriptionsList.length !== 0 && tariff.alias?.includes('giga')) {\n const unifiedSubscriptions = unifySubscriptionItems(subscriptionsList);\n const convertedSubscriptions = convertSubscriptionsBody(unifiedSubscriptions, tariff.additionalProducts);\n\n return { ...tariff, offerContents: convertedSubscriptions };\n }\n return tariff;\n })\n : [];\n }, [unifySubscriptionItems]);\n\n const prepareTariff = useCallback((tariffs, aliases) => {\n const tariffsRa = tariffs ? tariffs.filter(item => item.hasRequiredEquipment === false && item.isCottage === false) : [];\n const filteredTariffs = (tariffs && aliases) ? getFilteredTariffs(tariffs, aliases) : [];\n const resultiveTariffs = filteredTariffs.length ? filteredTariffs : tariffsRa;\n\n return prepareSubscriptions(resultiveTariffs);\n }, [getFilteredTariffs]);\n\n const bundlesArray = useMemo(\n () => prepareTariff(bundles, bundlesAliases),\n [prepareTariff, bundles, bundlesAliases]\n );\n\n const internetArray = useMemo(\n () => prepareTariff(internet, internetAliases),\n [prepareTariff, internet, internetAliases]\n );\n\n return {\n bundles: bundlesArray as T,\n mono: internetArray as T,\n };\n};\n\nconst convertSubscriptionsBody = (offerContents: IOfferContent[], additionalProducts: TAdditionalProduct[]) => {\n const _offerContents = offerContents.map((item: IOfferContent) => ({\n id: item.id,\n image: item.image,\n imageWebp: item.image_webp,\n width: item.image_width,\n alt: item.title,\n type: 'subscription',\n }));\n\n const _additionalProducts = additionalProducts\n ?.filter(({ product_type }) => product_type === 'tv')\n .map(({ id, shopItem }) => ({\n id: id,\n image: shopItem?.image_for_tariff_card || '',\n imageWebp: shopItem?.image_for_tariff_card_webp || '',\n width: shopItem?.image_width,\n alt: shopItem?.title || '',\n type: 'equipment',\n }));\n\n return [..._offerContents, ...(_additionalProducts ?? [])];\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)}`;\n};\n","\nexport const isHtmlWithText = (__html = ''): string => {\n const regExp = /(<([^>]+)>)/ig;\n const html = __html.replace(regExp, '');\n return html;\n};\n","import map from 'lodash/map';\nimport type { ICitiesTariffs } from '~/src/services/api/api-content/cities/tariffs';\nimport type {\n IBundlePackage,\n IInternetPackage,\n ISalePackageLink,\n ISalePackageSubscription,\n} from '~/src/services/api/api-content/cities/types';\n\nexport type TUnpreparedTariffs = {\n bundles: Record,\n mono: IInternetPackage[],\n}\n\nexport const prepareData = ({ mono, bundles }: TUnpreparedTariffs): ICitiesTariffs => {\n return {\n mono,\n bundles: map(bundles, item => item),\n };\n};\n\nexport const unifySubscriptionItems = (salePackageeLinks: ISalePackageLink[]): ISalePackageSubscription[] => {\n return salePackageeLinks.reduce((acc: ISalePackageSubscription[], item) => {\n item.subscriptions?.length && item.subscriptions.forEach(subscription => {\n const subsIndex = acc.findIndex(el => el.id === subscription.id);\n if (subsIndex === -1) {\n acc.push(subscription);\n }\n });\n return acc;\n}, []);\n};\n","import contentRequest from '~/src/services/api/api-content';\nimport { captureQueryError, TResponse } from '~/src/services/api/helper';\nimport { TUnpreparedTariffs, prepareData } from '~/src/services/api/api-content/cities/format';\nimport type { IBundlePackage, IInternetPackage } from '~/src/services/api/api-content/cities/types';\n\nexport interface ICitiesTariffs {\n bundles: IBundlePackage[];\n mono: IInternetPackage[];\n}\n\nexport type TDataResponse = TResponse;\n\ninterface IParams {\n availableAuth?: number, // Фильтр доступа для авторизованных пользователей\n availableNew?: number, // Фильтр доступа для неавторизованных\n selfOrder?: number, // Фильтр доступа для полной покупки (по-умолчанию - false)\n isBackcallAvailable?: number, // Доступно для оформления в обратном звонке (по-умолчанию - не учитывается, 1 да, 0 нет, * не переданный параметр - отсутствие фильрации по параметру)\n ignoreAvailable?: number, // Игонорировать параметр sale у пакетов и available у моно, это нужно чтобы получить все тарифы какие пришли от биллинга (по-умолчанию - 0)\n isLowSpeed?: number, // Если передан этот параметр, то вернутся тарифы со скорость до 100. По умолчанию - 0, чтобы заработало нужно передать 1\n landingAvailable?: number, // Если передан параметр, добавляет \"доступно для лендингов\" тарифы\n}\n\nexport const getCitiesTariffs = async (providerId: number, params?: IParams): Promise => {\n const url = '/v1/cities/tariffs';\n\n try {\n const response = await contentRequest().get(url, {\n params: {\n providerId,\n ...(params || {}),\n },\n });\n\n return {\n isSuccess: true,\n payload: prepareData(response.data),\n };\n } catch (error) {\n return captureQueryError(error);\n }\n};\n","import { Dispatch, SetStateAction, useCallback, useContext, useMemo, useRef } from 'react';\nimport { LandingContext, ERequestStages, ITariffContextState } from '~/src/containers/ContextContainer';\nimport { getCitiesTariffs, ICitiesTariffs } from '~/src/services/api/api-content/cities/tariffs';\nimport { singletonHook } from '~/src/containers/SingletonHook';\n\ntype TSetTariff = Dispatch>;\n\n/**\n * **ВАЖНО**: Это абстрактный хук.\n * Не экспортировать и не вызывать его напрямую!\n */\nconst useGetTariffsRequest = (providerId: number, stage: ERequestStages, setTariffs?: TSetTariff) => {\n const requestSended = useRef(0);\n\n const getTariffsData = useCallback(async () => {\n setTariffs((prevState) => ({ ...prevState, stage: ERequestStages.requestSended }));\n const response = await getCitiesTariffs(providerId, { availableNew: 1, landingAvailable: 1 });\n\n if (response.isSuccess) {\n const { mono, bundles } = response.payload;\n setTariffs({ mono, bundles, stage: ERequestStages.loaded });\n return;\n }\n setTariffs({ mono: [], bundles: [], stage: ERequestStages.error });\n }, [providerId, setTariffs]);\n\n const getTariffs = useCallback(() => {\n if (requestSended.current === 0 && stage === ERequestStages.init || stage === ERequestStages.error) {\n requestSended.current += 1;\n getTariffsData();\n }\n }, [getTariffsData, stage, requestSended]);\n\n return { getTariffs };\n};\n\nconst useGetTariffsSingleton = singletonHook<({ getTariffs: () => void, }), [number, ERequestStages, TSetTariff]>(\n {\n getTariffs: () => ({}),\n },\n useGetTariffsRequest);\n\nexport const useGetTariffs = (tariffType?: 'mono' | 'bundle'): [\n boolean,\n T,\n () => void,\n] => {\n const { city, tariffs } = useContext(LandingContext);\n const [tariffsInfo, setTariffsInfo] = tariffs;\n const { stage, ...tariffsInfoByTypes } = tariffsInfo;\n const { getTariffs } = useGetTariffsSingleton([city?.provider_id || 47, stage, setTariffsInfo]);\n\n const isLoading = useMemo(() => stage === ERequestStages.loading, [stage]);\n const filteredTariffs = useMemo(() =>\n tariffType ? tariffsInfoByTypes[tariffType] : ({ ...tariffsInfoByTypes }),\n [tariffType, tariffsInfoByTypes]);\n\n return [isLoading, filteredTariffs, getTariffs];\n};\n","import type { IBundlePackage, IInternetPackage } from '~/src/services/api/api-content/cities/types';\nimport type { IFormattedTariff } from '~/src/services/tariffs/types';\n\nexport const formatTariff = (tariff: IInternetPackage | IBundlePackage): IFormattedTariff => {\n return {\n tariffId: tariff.tariff_id,\n description: {\n tariff_id: tariff.description.tariff_id ? tariff.description.tariff_id : tariff.description.sale_package_id,\n title: tariff.description.title,\n description: tariff.description.description,\n alias: tariff.description.alias,\n },\n speed: 'speed' in tariff ? tariff.speed : tariff.speed_int,\n channelCount: 'channelCount' in tariff ? tariff.channelCount : null,\n price: 'price' in tariff ? tariff.price : tariff.price2in1,\n pricePromo: 'price_promo' in tariff ? tariff.price_promo : tariff.promo_price2in1,\n priceIncludedVas: 'price_included_vas' in tariff ? tariff.price_included_vas : null,\n additionalProducts: [...tariff.additionalProducts],\n cityId: tariff.city_id,\n hasRequiredEquipment: tariff.hasRequiredEquipment,\n isCottage: 'is_cottage' in tariff ? !!tariff.is_cottage : !!tariff.salePackage2in1?.is_cottage,\n promoPriceFinal: 'salePackage2in1' in tariff ? tariff.salePackage2in1.promo_price_final : tariff.promo_price_final,\n priceFinal: 'salePackage2in1' in tariff ? tariff.salePackage2in1.price_final : tariff.price_final,\n tariffName: 'tariff_name_display' in tariff ? tariff.tariff_name_display : tariff.tariff_name,\n isAvailableForPromotion: 'salePackage2in1' in tariff ? !!tariff.salePackage2in1.is_available_for_promotion : false,\n promoDurationFinal: 'salePackage2in1' in tariff ? tariff.salePackage2in1.promo_duration_final : 0,\n salePackageLinks: tariff.salePackageLinks,\n // Костыль, связанный с frontend/src/services/tariffs/types.ts:28\n // также связанные места - frontend/src/services/tariffs/formatTariff.ts\n alias: tariff.description.alias,\n };\n};\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODAiIGhlaWdodD0iODAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjgwIiBoZWlnaHQ9IjgwIiByeD0iMTIiIGZpbGw9IiNGQUZBRkEiIGZpbGwtb3BhY2l0eT0iMC4xNSIvPjwvc3ZnPg==\""],"names":["formatBundleFull","tariff","isCottage","salePackage2in1","is_cottage","reserveColor","description","color_text","COLORS","titleColors","color_title_start","color_title_end","formatTariff","price","price_final","alias","advantages","analogCount","Number","analog_count","availableClient","Boolean","available_client","availableGuest","available_guest","colorText","descriptionFull","description_full","freePackets","free_packets","fullSaleId","full_sale_id","undefined","hdCount","hd_count","headingColor","color","imageBackground","image_background","imageBackgroundWebp","image_background_webp","imageInHead","includes","isSelfOrder","is_self_order","lineId","line_id","location","priceAction","promo_price_final","priceActionPeriod","promo_duration_final","priceConnect","price_connect_internet","price_connect_tv","productId","sale_package_id","productIdForBilling","productType","offerContents","promoDuration","promo_duration","promoDurationType","promo_dur_type","promoted","salePackageId","tariff_id","sdCount","sd_count","sortOnInternet","sort_on_internet","speedAction","speed_bonus","speedActionPeriod","speed_bonus_duration","title","tariff_name","type","weight","salePackageLinks","formatMonoFull","channelCount","priceIncludedVas","connect_price","tariff_name_display","Tariffs","styled","p","blockMargin","styleWithBreakPoints","Container","GridContainer","CardList","Title","FlexBoxRow","breakPoints","FlexBoxCol","fonts","ENDPOINT","process","accessToken","headers","initHeaders","axios","baseURL","getChannels","providerId","params","error","apiEpgRequest","get","isSuccess","payload","data","captureException","response","getCategories","defaultChannelsTheme","id","label","name","value","channels","hasChannels","SBasePopup","BasePopup","ChannelsSelector","List","HideSearchBtn","Button","defaultChannelsFilter","onClose","useState","isShowSearch","setIsShowSearch","isLoading","setIsLoading","channelsFiltersApply","setIsChannelsFiltersIsApply","filter","setFilter","channelThemes","setChannelThemes","preparedThemes","setPreparedThemes","searchValue","setSearchValue","allChannels","setAllChannels","filteredChannels","setFilteredChannels","tariffChannels","setTariffChannels","isMobile","useMatchMediaByWidth","wideBreakpoints","provider_id","useContext","LandingContext","city","getAllChannels","length","with","map","channel","button","lcn","logo","channelInfo","chid","channelId","xvid","epgId","display","toString","bids","packets","billing_id","thid","category","getChannelsThemes","formattedThemes","theme","rndId","isHd","quality","onShowSearchInput","useCallback","e","stopPropagation","onClearSearch","onClickPopupWrapper","useEffect","channelPackages","packagesIds","Array","isArray","String","split","packages","Set","getChannelPackages","filteredTariffChannels","intersection","channelsCountThemes","themeChannels","categoryId","countsSum","tmpTheme","allLabel","hdLabel","quantityHdChannels","reduce","quantityHd","getChannelThemesWithCounts","ST","isOpen","width","height","bType","Icon","SingleArrowLeft","onClick","ChannelsFilters","selectedFilter","onChangeChannelTheme","option","find","item","filteredCategoriesIds","onChangeSearch","event","inputValue","target","toLowerCase","filteredTitles","data-test","Throbber","position","ChannelsList","channelsFiltersIsApply","getImage","onSuccess","onError","src","isClientSide","img","Image","onload","onerror","CATEGORIES","ACTIONS","EVENTS","Wrapper","monthText","getPluralize","monthPluralize","channelText","channelPluralize","TariffCardWrapper","openModal","tiled","idForScroll","isFullByActive","buttonProps","cityDomain","isNeedRequest","fullBuyPath","hasUrlBackground","useMemo","isWebpUsed","webP","setWebPSupport","webPCheck","Promise","resolve","image","catch","checkForSupport","browserSupportsWebP","supportsWebP","useWebp","resultBackground","background","timeout","fallbackSrc","defaultImageFallback","sourceLoaded","setSourceLoaded","hasTimeout","timeoutDelay","setTimeout","useProgressiveImage","replace","isOpenInternet","setIsOpenInternet","promoPeriod","withSubscriptions","internetData","slice","advantage","tvData","push","desc","details","buttonText","onToggleHandler","openFullBuyHref","isTargetBlank","window","open","href","onClickHandler","dataLayerPush","action","elem","document","querySelector","scrollIntoView","block","behavior","err","Sentry","TariffCard","buyTypePopup","memo","tariffs","handleOpenModal","NukaCarousel","slideWidth","disableEdgeSwiping","withoutArrows","withoutDots","cellAlign","wrapAround","easing","edgeEasing","isCarouselActive","TariffsCarousel","blockId","customStyles","showBundles","showInternet","bundlesAliases","internetAliases","aliasWildcard","additionalBlockConfig","tag","selectedTariff","setSelectedTariff","useGetTariffs","bundles","mono","getTariffs","getFilteredTariffs","aliases","acc","matchingTariff","search","usePrepareTariff","internet","titleWithTag","getTextWithTag","modeName","dangerouslySetInnerHTML","__html","TariffsRenderer","filteredBundles","filteredMono","ChannelListPopup","prepareSubscriptions","subscriptionsList","unifiedSubscriptions","unifySubscriptionItems","convertedSubscriptions","convertSubscriptionsBody","additionalProducts","prepareTariff","tariffsRa","hasRequiredEquipment","filteredTariffs","resultiveTariffs","_offerContents","imageWebp","image_webp","image_width","alt","_additionalProducts","product_type","shopItem","image_for_tariff_card","image_for_tariff_card_webp","text","isHtmlWithText","regExp","html","prepareData","salePackageeLinks","subscriptions","forEach","subscription","findIndex","el","getCitiesTariffs","url","contentRequest","captureQueryError","useGetTariffsSingleton","singletonHook","stage","setTariffs","requestSended","useRef","getTariffsData","prevState","ERequestStages","availableNew","landingAvailable","current","tariffType","tariffsInfo","setTariffsInfo","tariffsInfoByTypes","tariffId","speed","speed_int","price2in1","pricePromo","price_promo","promo_price2in1","price_included_vas","cityId","city_id","promoPriceFinal","priceFinal","tariffName","isAvailableForPromotion","is_available_for_promotion","promoDurationFinal","module","exports"],"sourceRoot":""}