{"version":3,"file":"static/chunks/666.5f293ea1b88d4c30.js","mappings":"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","sources":["webpack://_N_E/../../node_modules/lodash/first.js","webpack://_N_E/../../node_modules/lodash/head.js","webpack://_N_E/./src/components/TariffLine/index.tsx","webpack://_N_E/./src/components/TariffLine/styled.ts","webpack://_N_E/../../packages/shared/src/helpers/pluralize/index.ts","webpack://_N_E/../../packages/shared/src/helpers/pluralize/predifined.ts","webpack://_N_E/../../packages/ui-react/src/deprecated/Accordion/themes.js","webpack://_N_E/../../packages/ui-react/src/deprecated/Accordion/index.js","webpack://_N_E/../../packages/ui-react/src/experimental/purchase/cost/Cost/RubleSymbol.ts","webpack://_N_E/../../packages/ui-react/src/experimental/purchase/cost/Cost/index.tsx","webpack://_N_E/../../packages/ui-react/src/experimental/purchase/cost/Cost/styled.ts"],"sourcesContent":["module.exports = require('./head');\n","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nmodule.exports = head;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { doRequest } from '@r1-frontend/do-request';\nimport {\n ERequestStatus,\n requestByConnection,\n RequestDto,\n ResponseDto,\n} from '@r1-frontend/api-domru/api-request/v1/user/request-by-connection';\n\nimport PopupCallBack from '@r1-frontend/ui-react/components/popups/popupCallback';\nimport { EResultPopupStatus } from '@r1-frontend/ui-react/components/popups/popupResult';\nimport { CATEGORIES } from '@r1-frontend/shared/constants/analytics';\nimport { isClientSide } from '@r1-frontend/shared/helpers/ssr';\nimport { useMatchMedia } from '@r1-frontend/shared/hooks/useMatchMedia';\n\nimport PopupResult from '~/src/components/Popups/PopupResult';\nimport { ISubmitParams } from '~/src/components/RequestFormPhone';\nimport TariffCard from '~/src/components/TariffCard';\nimport { ITariff } from '~/src/entities/formattedTariff';\nimport { selectCsrf } from '~/src/store/selectors/auth/selectCsrf';\n\nimport * as ST from './styled';\n\nenum EMediaWidth {\n desktop = '(min-width: 1600px)',\n sDesktop = '(max-width: 1599px) and (min-width: 1280px)',\n laptop = '(max-width: 1279px) and (min-width: 768px)',\n mobile = '(max-width: 767px)',\n}\n\nenum EVisibleSlides {\n desktop = 4,\n sDesktop = 3,\n laptop = 2,\n}\n\nexport enum ESortingKeys {\n WEIGHT = 'weight',\n INTERNET = 'sortOnInternet',\n INTERNET_LINES = 'sortOnInternetLines',\n BUNDLES = 'sortOnBundles',\n}\nexport interface ITariffLine {\n id: number,\n title: string,\n body: string,\n sort: number,\n tariffs: ITariff[],\n}\n\ninterface ITariffLineProps {\n isAuth?: boolean,\n line?: ITariffLine,\n baseTariffs?: ITariff[],\n sortField?: string,\n openPopup?: (tariff: ITariff) => void,\n className?: string,\n weight?: number | null,\n}\n\nconst TariffLine = ({\n line,\n isAuth = false,\n baseTariffs = [],\n sortField = ESortingKeys.WEIGHT,\n openPopup = () => ({}),\n className = '',\n}: ITariffLineProps): JSX.Element => {\n const [onClientSide, setOnClientSide] = useState(isClientSide());\n const csrf = useSelector(selectCsrf);\n\n useEffect(() => {\n setOnClientSide(isClientSide);\n }, []);\n\n const [hideArrows, setHideArrows] = useState(false);\n const [slideWidth, setSlideWidth] = useState('304px');\n const [slideIndex, setSlideIndex] = useState(0);\n\n const [showRequestFormPopup, setShowRequestFormPopup] = useState(false);\n const [salePackageId, setSalePackageId] = useState(0);\n\n const [popup, setPopup] = useState({\n isResultOpened: false,\n resultTitle: '',\n resultText: '',\n resultType: EResultPopupStatus.SUCCESS,\n });\n\n const openPopupResult = useCallback((ok: boolean, message: string) => {\n setPopup({\n isResultOpened: true,\n resultType: ok ? EResultPopupStatus.SUCCESS : EResultPopupStatus.ERROR,\n resultTitle: ok\n ? 'Заявка на подключение отправлена'\n : 'Произошла ошибка',\n resultText: ok ? 'Мы свяжемся с вами в ближайшее время' : message,\n });\n setShowRequestFormPopup(false);\n }, []);\n\n const submitRequest = useCallback(async(params: ISubmitParams) => {\n const dataParams: RequestDto = {\n fio: params.fio as string,\n phone: params.phone,\n product_id: [0],\n check_call_type: window && window.location.href,\n plan: salePackageId ? +salePackageId : undefined,\n csrf,\n };\n\n const resp = await doRequest.apiRequest(\n requestByConnection(dataParams),\n );\n\n if (resp.isSuccess) {\n const { status, message } = resp.payload;\n const ok = !!status;\n\n openPopupResult(ok, message);\n\n return { ok, message, status };\n } else {\n return {\n ok: false,\n message: 'Не удалось отправить заявку.',\n status: ERequestStatus.error,\n };\n }\n }, [salePackageId]);\n\n const closePopup = useCallback(() => {\n setPopup(state => ({\n ...state,\n isResultOpened: false,\n }));\n setShowRequestFormPopup(false);\n }, []);\n\n // eslint-disable-next-line\n const isDesktop = onClientSide ? useMatchMedia(EMediaWidth.desktop) : true;\n const isSDesktop = useMatchMedia(EMediaWidth.sDesktop);\n const isLaptop = useMatchMedia(EMediaWidth.laptop);\n const isMobile = useMatchMedia(EMediaWidth.mobile);\n\n interface tariffSortingKeyAccessors {\n weight: string,\n sortOnInternet: string,\n sortOnInternetLines: string,\n sortOnBundles: string,\n }\n\n const sortedTariffsByKey = (receivedTariffs: ITariff[], keyToSort: keyof tariffSortingKeyAccessors) => {\n return [...receivedTariffs]\n .sort((a, b) => {\n const currObj = a[keyToSort];\n const nextObj = b[keyToSort];\n if (currObj !== 0 && nextObj === 0) {\n return 1;\n }\n if (currObj === 0 && nextObj !== 0) {\n return -1;\n }\n return currObj - nextObj;\n });\n };\n\n const preparedTariffs = useMemo(() => {\n const result = line ? line.tariffs : baseTariffs;\n switch (sortField) {\n case ESortingKeys.BUNDLES:\n return sortedTariffsByKey(result, ESortingKeys.BUNDLES);\n case ESortingKeys.INTERNET:\n return sortedTariffsByKey(result, ESortingKeys.INTERNET);\n case ESortingKeys.INTERNET_LINES:\n return sortedTariffsByKey(result, ESortingKeys.INTERNET_LINES);\n case ESortingKeys.WEIGHT:\n default:\n return sortedTariffsByKey(result, ESortingKeys.WEIGHT);\n }\n }, [baseTariffs, line, sortField]);\n\n useEffect(() => {\n setSlideIndex(0);\n if (isMobile) {\n setSlideWidth('288px');\n setHideArrows(true);\n } else {\n setSlideWidth('304px');\n if ((isLaptop && preparedTariffs.length > EVisibleSlides.laptop) ||\n (isSDesktop && preparedTariffs.length > EVisibleSlides.sDesktop) ||\n (isDesktop && preparedTariffs.length > EVisibleSlides.desktop)) {\n setHideArrows(false);\n } else {\n setHideArrows(true);\n }\n }\n }, [isDesktop, isLaptop, isMobile, isSDesktop, preparedTariffs]);\n\n const renderTariffCards = () => preparedTariffs.map((tariff) => (\n \n ));\n\n return (\n \n {(line && !!preparedTariffs.length) && (\n <>\n {line.title}\n \n \n )}\n {onClientSide\n ? \n {renderTariffCards()}\n \n : \n {renderTariffCards()}\n \n }\n setShowRequestFormPopup(false)}\n title={'Заявка на подключение'}\n buttonText={'Подключить'}\n submitRequest={(params) => submitRequest(params)}\n option={'popup'}\n category={CATEGORIES.applicationForm}\n />\n \n \n );\n};\n\nexport default TariffLine;\n","import styled from 'styled-components';\n\nimport GridContainer from '@r1-frontend/ui-react/components/layouts/gridContainer';\nimport NukaCarousel from '@r1-frontend/ui-react/components/NukaCarousel';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nconst breakpoints = {\n tablet: '1023px',\n mobile: '767px',\n};\n\nexport const LineContainer = styled(GridContainer)`\n flex-direction: column;\n padding-left: 0;\n padding-right: 0;\n width: 100%;\n`;\n\nexport const LineTitle = styled.h2`\n margin-bottom: 8px;\n ${FONTS.H2};\n color: ${COLORS.TextPrimary};\n\n @media (max-width: ${breakpoints.tablet}) {\n ${FONTS.H3};\n }\n\n @media (max-width: ${breakpoints.mobile}) {\n ${FONTS.H5}\n}\n`;\n\nexport const LineBody = styled.div`\n max-width: 530px;\n ${FONTS.XS};\n color: ${COLORS.TextSecondary};\n\n a {\n ${FONTS.MediumXS};\n color: ${COLORS.Link};\n transition: 0.3s;\n\n &:hover {\n color: ${COLORS.Brand_Blue};\n }\n }\n`;\n\nexport const CustomSwiper = styled(NukaCarousel)`\n padding-left: 0 !important;\n padding-right: 0 !important;\n\n & section,\n & div {\n outline: none;\n }\n\n & > section > div.slider-frame {\n padding: 24px 0 !important;\n }\n`;\n\nexport const NoSwiperContainer = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n width: 100%;\n\n & > div {\n &:not(:last-child) {\n margin-right: 20px;\n }\n }\n`;\n\nexport const NotFoundTitle = styled.p`\n ${FONTS.S};\n color: ${COLORS.GRAY_DARK};\n margin: 16px 0;\n`;\n","export type TArrayOfThree = [string, string, string];\n\n/**\n * @link https://docs.translatehouse.org/projects/localization-guide/en/latest/l10n/pluralforms.html\n */\nconst getVariant = (value: number, variants: TArrayOfThree) => {\n const abs = Math.abs(value);\n\n return variants[\n abs % 10 == 1 && abs % 100 != 11\n ? 0\n : abs % 10 >= 2 && abs % 10 <= 4 && (abs % 100 < 10 || abs % 100 >= 20)\n ? 1\n : 2\n ];\n};\n\n/**\n * Cклоняет число\n * @param value Число\n * @param variants Варианты слов для склонения\n * @returns Один из вариантов в зависимости от переданного значения {value}\n * @example\n * pluralize(3, ['идея', 'идеи', 'идей']); // идеи\n */\nexport const pluralize = (value: number, variants: TArrayOfThree) =>\n getVariant(value, variants);\n\n/**\n * Получает функцию для склонения числа\n * @param variants Варианты слов для склонения\n * @example\n * const pluralize = getPluralize(['идея', 'идеи', 'идей']);\n */\nexport const getPluralize = (variants: TArrayOfThree) => (value: number) =>\n pluralize(value, variants);\n","import { TArrayOfThree } from '.';\n\n/**\n * Склонения для месяца\n *\n * @return ['месяц', 'месяца', 'месяцев']\n */\nexport const monthPluralize: TArrayOfThree = ['месяц', 'месяца', 'месяцев'];\n\n/**\n * Склонения для канала\n *\n * @return ['канал', 'канала', 'каналов']\n */\nexport const channelPluralize: TArrayOfThree = ['канал', 'канала', 'каналов'];\n\n/**\n * Склонения для дня\n *\n * @return ['день', 'дня', 'дней']\n */\nexport const dayPluralize: TArrayOfThree = ['день', 'дня', 'дней'];\n\n/**\n * Склонения для бонуса\n *\n * @return ['бонус', 'бонуса', 'бонусов']\n */\nexport const bonusPluralize: TArrayOfThree = ['бонус', 'бонуса', 'бонусов'];\n","import { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nconst themes = {\n bordered: {\n background: COLORS.BgMain,\n borderWidth: '1px',\n radius: '4px',\n padding: '20px',\n mobilePadding: '15px',\n color: COLORS.TextPrimary,\n },\n simple: {\n background: 'transparent',\n borderWidth: '1px 0',\n radius: '0px',\n padding: '20px 0',\n mobilePadding: '15px 0',\n color: COLORS.TextPrimary,\n },\n light: {\n border: COLORS.BgLight,\n background: COLORS.BgLight,\n color: COLORS.TextPrimary,\n colorArrow: COLORS.GRAY_DARK,\n backgroundIcon: COLORS.BgSecondary,\n borderIcon: COLORS.BgSecondary,\n colorArrowIsOpen: COLORS.GRAY_DARK,\n backgroundIconIsOpen: COLORS.Outline_Light,\n borderIconIsOpen: COLORS.Outline_Light,\n radius: BorderRadius.componentRadius,\n padding: '20px 24px',\n mobilePadding: '15px',\n storyColor: COLORS.BgMain,\n },\n dark: {\n border: COLORS.Control,\n background: COLORS.Control,\n color: COLORS.TextWhite,\n colorArrow: COLORS.Control,\n backgroundIcon: COLORS.GRAY_DARK,\n borderIcon: COLORS.GRAY_DARK,\n colorArrowIsOpen: COLORS.Control,\n backgroundIconIsOpen: COLORS.TextWhite,\n borderIconIsOpen: COLORS.TextWhite,\n radius: BorderRadius.componentRadius,\n padding: '20px 24px',\n mobilePadding: '15px',\n storyColor: '#3D3D3D',\n },\n};\n\nexport default themes;\n","import { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styled, { ThemeProvider } from 'styled-components';\n\nimport themes from './themes.js';\n\nconst Wrapper = styled.div`\n flex-direction: column;\n width: 100%;\n background: ${props => props.theme.background};\n border: 1px solid ${({ theme }) => theme.border ? theme.border : COLORS.GRAY_LIGHT};\n border-width: ${props => props.theme.borderWidth};\n border-radius: ${props => props.theme.radius};\n padding: ${props => props.theme.padding};\n color: ${({ theme }) => theme.color ? theme.color : COLORS.TextPrimary};\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n padding: ${props => props.theme.mobilePadding};\n }\n`;\n\nconst AccordionTitle = styled.div`\n ${FONTS.L};\n width: 100%;\n justify-content: space-between;\n align-items: center;\n flex-wrap: nowrap;\n cursor: pointer;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.S};\n }\n`;\n\nconst Title = styled.div`\n flex-grow: 1;\n width: calc(100% - 53px); \n ${props => props.theme.desktopFont || ''};\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n width: calc(100% - 39px);\n ${props => props.theme.mobileFont || ''};\n }\n`;\n\nconst Icon = styled.span`\n position:relative;\n margin-left: 20px;\n flex: 0 0 36px;\n height: 36px;\n border-radius: 50%;\n transform: ${props => props.open ? 'none' : 'scaleY(-1)'};\n transition: all 0.2s ease-in;\n svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n circle {\n stroke: ${({ borderIcon }) => borderIcon ? borderIcon : COLORS.GRAY_DARK};\n fill: ${({ backgroundIcon }) => backgroundIcon ? backgroundIcon : COLORS.GRAY_LIGHT};\n }\n path {\n stroke: ${({ colorArrow }) => colorArrow ? colorArrow : COLORS.GRAY_DARK};\n }\n }\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n margin-left: 15px;\n background-size: contain;\n }\n`;\n\nconst Border = styled.div`\n height: 1px;\n width: 100%;\n background: transparent;\n margin: 8px 0;\n`;\n\nconst AccordionBody = styled.div`\n width: 100%;\n max-height: ${props => props.open ? '100%' : '0'};\n ${FONTS.S};\n overflow: hidden;\n transition: max-height 0.2s ${props => props.open ? 'ease-in' : 'ease-out'};\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.XS};\n }\n`;\n\nconst DEFAULT_THEME = 'light';\n\n/**\n * @deprecated\n * use instead @r1-frontend/ui-react/src/components/accordions/Accordion\n */\nexport default class Accordion extends React.Component {\n static propTypes = {\n defaultOpen: PropTypes.bool,\n open: PropTypes.bool,\n withDividingBorder: PropTypes.bool,\n toggle: PropTypes.func,\n customTheme: PropTypes.object,\n };\n\n static defaultProps = {\n defaultOpen: false,\n withDividingBorder: true,\n theme: DEFAULT_THEME,\n customTheme: {},\n toggle: () => {},\n };\n\n constructor(props) {\n super(props);\n this.state = {\n open: props.defaultOpen,\n };\n }\n\n toggle = () => {\n this.props.toggle();\n this.setState(state => ({\n open: !state.open,\n }));\n }\n\n render() {\n const { children, title, open = this.state.open, onOpen = this.toggle, theme, customTheme, withDividingBorder, ...rest } = this.props;\n let colors = themes[theme] || themes[DEFAULT_THEME];\n if (customTheme) {\n colors = { ...colors, ...customTheme };\n }\n return (\n \n \n \n {title}\n \n \n \n \n \n \n \n \n {withDividingBorder && }\n {children}\n \n \n \n );\n }\n}\n","export const RubleSymbol = String.fromCharCode(8381);\n","import { RubleSymbol } from '@r1-frontend/ui-react/experimental/purchase/cost/Cost/RubleSymbol';\n\nimport * as S from './styled';\n\n// @todo for the children we should to receiving only the \"number\" type for formatting and displaying cost by human view here. For example: incoming 10000.0, displaying 10 000.00\n// on the other hand children may be a ReactNode or a JSX.Element. By my opinion the type \"number\" is enough\n//\n// We have to think about it ;-)\nexport type TCostProps = {\n children: string | number,\n isMonthly?: boolean,\n previousCost?: string | number,\n};\n\n/**\n * @deprecated\n * use @r1-frontend/ui-react/components/costs\n */\nconst Cost = ({ children, isMonthly = false, previousCost, ...props }: TCostProps): JSX.Element => {\n return \n {previousCost ? <>{previousCost} {RubleSymbol}{isMonthly && '/мес'}  : null}\n {children} {RubleSymbol}{isMonthly && '/мес'}\n ;\n};\n\nexport default Cost;\n","import styled from 'styled-components';\n\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nexport const CostWrapper = styled.div`\n display: inline-block;\n color: inherit;\n white-space: nowrap;\n`;\n\nexport const PreviousCost = styled.s`\n text-decoration-color: ${COLORS.TextInfo};\n color: ${COLORS.TextInfo};\n`;\n"],"names":["module","exports","array","length","undefined","EMediaWidth","EVisibleSlides","desktop","sDesktop","laptop","ESortingKeys","line","isAuth","baseTariffs","sortField","WEIGHT","openPopup","className","useState","isClientSide","onClientSide","setOnClientSide","csrf","useSelector","selectCsrf","useEffect","hideArrows","setHideArrows","slideWidth","setSlideWidth","slideIndex","setSlideIndex","showRequestFormPopup","setShowRequestFormPopup","salePackageId","setSalePackageId","isResultOpened","resultTitle","resultText","resultType","EResultPopupStatus","popup","setPopup","openPopupResult","useCallback","ok","message","submitRequest","params","dataParams","resp","status","fio","phone","product_id","check_call_type","window","location","href","plan","doRequest","requestByConnection","isSuccess","payload","ERequestStatus","closePopup","state","isDesktop","useMatchMedia","isSDesktop","isLaptop","isMobile","mobile","sortedTariffsByKey","receivedTariffs","keyToSort","sort","a","b","currObj","nextObj","preparedTariffs","useMemo","result","tariffs","BUNDLES","INTERNET","INTERNET_LINES","renderTariffCards","map","tariff","TariffCard","openModal","productId","ST","id","data-test","title","dangerouslySetInnerHTML","__html","body","afterSlide","withoutDots","withoutArrows","framePadding","cellSpacing","slidesToScroll","disableEdgeSwiping","easing","edgeEasing","PopupCallBack","isOpen","onClose","buttonText","option","category","CATEGORIES","PopupResult","text","type","breakpoints","LineContainer","styled","GridContainer","LineTitle","FONTS","COLORS","LineBody","CustomSwiper","NukaCarousel","NoSwiperContainer","pluralize","value","variants","abs","Math","getVariant","getPluralize","monthPluralize","channelPluralize","dayPluralize","bonusPluralize","bordered","background","borderWidth","radius","padding","mobilePadding","color","simple","light","border","colorArrow","backgroundIcon","borderIcon","colorArrowIsOpen","backgroundIconIsOpen","borderIconIsOpen","BorderRadius","storyColor","dark","Wrapper","props","theme","wideBreakpoints","AccordionTitle","Title","desktopFont","mobileFont","Icon","open","Border","AccordionBody","DEFAULT_THEME","Accordion","toggle","setState","defaultOpen","render","this","children","onOpen","customTheme","withDividingBorder","rest","colors","themes","ThemeProvider","onClick","itemProp","svg","viewBox","fill","xmlns","circle","cx","cy","r","strokeWidth","transform","path","d","strokeMiterlimit","strokeLinecap","strokeLinejoin","itemScope","itemType","React","propTypes","PropTypes","defaultProps","RubleSymbol","String","fromCharCode","isMonthly","previousCost","S","CostWrapper","PreviousCost"],"sourceRoot":""}