{"version":3,"file":"static/chunks/5599-4aaffbf32bead6d7.js","mappings":"qPAiEaA,EAA6B,SACxCC,EACAC,GAEA,IAAQC,EAAuCF,EAAvCE,SAAUC,EAA6BH,EAA7BG,SAAUC,EAAmBJ,EAAnBI,eAEtBC,EAAqC,CACzCC,IAAK,GACLC,KAAM,SAgBR,OAZEF,EAASC,IADPL,EACaC,GAAYE,GAAkBD,GAAY,GAE1CD,GAAYC,GAAY,GAGrCE,EAASC,MAAQJ,IACnBG,EAASE,KAAO,QAChBF,EAASG,OAASP,EACdG,GAAkBD,GAAY,GAC9BA,GAAY,IAGXE,G,oBCzFT,kB,+aAgEA,IAAMI,EAAQ,SAACC,GACb,IACEC,EAYED,EAZFC,KACAC,EAWEF,EAXFE,UACAC,EAUEH,EAVFG,iBAAgB,EAUdH,EATFI,WAAAA,OAAU,IAAG,KAAE,EACfN,EAQEE,EARFF,OAAM,EAQJE,EAPFK,SAAAA,OAAQ,IAAG,WAAQ,IAOjBL,EANFH,KAAAA,OAAI,IAAG,UAAO,EACdS,EAKEN,EALFM,eACAC,EAIEP,EAJFO,cACAC,EAGER,EAHFQ,KACAC,EAEET,EAFFS,SACAC,EACEV,EADFU,QAGIC,EAAiBC,GAAAA,CACrBC,IAAAA,QACAZ,GAAQY,IAAIZ,GACH,WAATJ,GAAqBgB,IAAAA,OACrBR,GAAYQ,IAAIR,IAGZS,EAAUF,GAAAA,CAAGC,IAAAA,UAAeX,GAE5Ba,GAAaC,EAAAA,EAAAA,QAAuB,MAE1C,GAAa,WAATnB,EAAmB,CACrB,IAAIoB,EAAc,CAChBC,aAAc,EACdC,eAAgB,EAChBC,UAAU,EACVC,UAAU,EACVC,eAA6B,OAAdhB,QAAc,IAAdA,OAAAA,EAAAA,EAAgBgB,gBAAiB,IAChDC,MAAM,EACNC,kBAAkB,EAClBC,cAAc,GA4BhB,OAzBkB,OAAdnB,QAAc,IAAdA,OAAAA,EAAAA,EAAgBoB,QAClBT,EAAc,KACT,CACDS,MAAM,EACNC,UAAWf,GAAAA,CACTC,IAAAA,WACc,OAAdP,QAAc,IAAdA,OAAAA,EAAAA,EAAgBsB,cAAef,IAAAA,SAEjCgB,WAAYC,EAAAA,GAAAA,MAEXb,KAIW,OAAdX,QAAc,IAAdA,OAAAA,EAAAA,EAAgByB,UAClBd,EAAc,KACT,CACDc,QAAQ,EACRC,WAAW,SAACF,EAAAA,GAAAA,UAAkB,IAC9BG,WAAW,SAACH,EAAAA,GAAAA,UAAkB,KAE7Bb,KAKL,SAACiB,MAAG,CAAChC,UAAWU,GAAAA,CAAGC,IAAAA,cAAmBV,G,UACpC,SAAC+B,MAAG,CAAChC,UAAWS,EAAgBwB,IAAKpB,E,UACnC,SAACe,EAAAA,GAAQ,GACP5B,UAAWU,GAAAA,EACK,OAAdN,QAAc,IAAdA,OAAAA,EAAAA,EAAgByB,SAAUlB,IAAAA,kBACZ,OAAdP,QAAc,IAAdA,OAAAA,EAAAA,EAAgB8B,kBACb9B,EAAesB,aAChBf,IAAAA,0BAEJwB,aAAc,SAACC,EAAWC,IDvIC,SACrCC,EACAzB,EACA0B,G,IAqBA1B,EAZM2B,EAAwB,4BAAuC,OAAXF,EAAW,MAG/DG,EAAyB,4BAE9B,OADCH,EAAaC,EACd,MAGKG,EAAyB,4BAE9B,OADCJ,EAAaC,EACd,MAES,OAAV1B,QAAU,IAAVA,GAAmB,QAAnBA,EAAAA,EAAY8B,eAAO,IAAnB9B,GAAAA,EACI+B,iBACA,GAA8BJ,OAA3BC,EAAuB,MAA8BC,OAA1BF,EAAsB,MAA2B,OAAvBE,IAEzDG,SAAQ,SAACC,GAGHA,EAAKC,UAAUC,IAAI,mBC0GsBC,CACpCZ,EACAxB,EACAqC,EAAAA,SAAAA,MAAe3C,KAGnB4C,YAAa,SAACb,ID1GY,SACpCA,EACAzB,G,IAEAA,EAAU,OAAVA,QAAU,IAAVA,GAAmB,QAAnBA,EAAAA,EAAY8B,eAAO,IAAnB9B,GAAAA,EAGI+B,iBAAiB,iCAA4C,OAAXN,EAAW,QAC9DO,SAAQ,SAACC,GACRA,EAAUC,UAAUK,OAAO,mBCoGnBC,CAAuBf,EAAYzB,KAEjCE,EAAW,C,SAEdR,SAOX,OAAID,GAEA,SAAC0B,MAAG,CAAChC,UAAWU,GAAAA,CAAGD,EAAgBR,G,UACjC,SAACqD,EAAAA,EAAI,CAACC,KAAMjD,E,UACV,UAACkD,IAAC,CAACxD,UAAWY,EAASJ,QAAS,SAACiD,G,OAAMjD,GAAWA,EAAQiD,I,WACxD,SAACzB,MAAG,CAAChC,UAAWW,IAAAA,S,SAAeJ,KAC/B,SAACmD,EAAU,CACT/D,KAAMA,EACNO,WAAYA,EACZN,OAAQA,EACRS,cAAeA,YASzB,SAAC2B,MAAG,CAAChC,UAAWU,GAAAA,CAAGD,EAAgBR,G,UACjC,UAAC+B,MAAG,CAAChC,UAAWY,E,WACd,SAACoB,MAAG,CAAChC,UAAWW,IAAAA,S,SAAeJ,KAC/B,SAACmD,EAAU,CACT/D,KAAMA,EACNO,WAAYA,EACZN,OAAQA,EACRS,cAAeA,UA+CnBqD,EAAa,Y,IACjB/D,EAAI,EAAJA,KACAO,EAAU,EAAVA,WACAG,EAAa,EAAbA,cACAT,EAAM,EAANA,OACA+D,EAAQ,EAARA,SAQA,OACE,SAAC3B,MAAG,CACFhC,UAAWU,GAAAA,CAAGC,IAAAA,kBACZ,KAACA,IAAAA,oBAA0BgD,I,UAG7B,SAAC3B,MAAG,CAAChC,UAAWW,IAAAA,W,SACbT,IACC,sB,UACY,UAATP,IACC,SAACiE,EAAAA,EAAU,GACTC,IAAK3D,EACL4D,OAAO,OACPC,UAAU,QACVC,QAAQ,MACRC,IAAI,IACA5D,IAGE,UAATV,IACC,SAACuE,QAAK,CACJC,GAAG,QACHC,MAAM,OACNC,OAAO,OACPC,UAAQ,EACRC,aAAW,EACXC,MAAI,EACJC,OAAK,EACLC,QAAQ,OACR9E,OAAQA,E,UAER,SAAC+E,SAAM,CAACd,IAAK3D,MAGP,cAATP,IACC,SAACiF,SAAM,CACL5E,UAAWW,IAAAA,UACXkD,IAAK3D,EACL2E,MAAO,GACPC,YAAY,IACZC,iBAAe,YAoH/BlF,EAAMmF,IA1GM,Y,IAAGC,EAAO,EAAPA,QAASjF,EAAS,EAATA,UACtB,OACE,UAACkF,KAAE,CAAClF,UAAWU,GAAAA,CAAGC,IAAAA,WAAgBX,G,WAChC,SAACmF,KAAE,C,SAAS,OAAPF,QAAO,IAAPA,OAAAA,EAAAA,EAASG,QACd,SAACD,KAAE,C,SAAS,OAAPF,QAAO,IAAPA,OAAAA,EAAAA,EAASI,YAuGpBxF,EAAMyF,QAlGU,Y,IAAGC,EAAM,EAANA,OAAQhF,EAAQ,EAARA,SACnBK,EAAUF,GAAAA,CAAGC,IAAAA,SAAc4E,GAAU5E,IAAAA,eAE3C,OACE,UAACqB,MAAG,CAAChC,UAAWY,E,UACbL,EACAgF,IAAU,SAACvD,MAAG,CAAChC,UAAWW,IAAAA,M,SAAY4E,QA6F7C1F,EAAM2F,QAxFU,Y,IACdxF,EAAS,EAATA,UACAO,EAAQ,EAARA,SAKMK,EAAUF,GAAAA,CAAGC,IAAAA,QAAaX,GAEhC,OACE,SAACgC,MAAG,CAAChC,UAAWY,E,UACd,SAACoB,MAAG,CAAChC,UAAWW,IAAAA,a,SAAmBJ,OA8EzCV,EAAM4F,MAzEQ,Y,IACZlF,EAAQ,EAARA,SACAmF,EAAU,EAAVA,WACA1F,EAAS,EAATA,UAAS,IACT2F,GAAAA,OAAE,IAAG,QAAK,EAONC,EAAUrF,EAEd,MAAuB,kBAAZqF,GAAwBF,GAE/B,SAACG,EAAAA,GAAO,CAACF,GAAIA,EAAI3F,UAAWU,GAAAA,CAAGC,IAAAA,MAAWX,GAAY8F,MAAM,Q,UAC1D,SAACC,OAAI,CACHC,wBAAyB,CACvBC,QAAQC,EAAAA,EAAAA,IAAiBN,EAAS,eAOrC,SAAC5D,MAAG,CAAChC,UAAWU,GAAAA,CAAGC,IAAAA,MAAWX,G,SAAa4F,KAiDpD/F,EAAMsG,YA9Cc,Y,IAOZC,EANE,EAAR7F,SAQA,OAPU,EAAVmF,YASI,SAAC1D,MAAG,CACFhC,UAAWW,IAAAA,YACXqF,wBAAyB,CAAEC,QAAQC,EAAAA,EAAAA,IAAiBE,EAAQ,aAI3D,SAACpE,MAAG,CAAChC,UAAWW,IAAAA,Y,SAAkByF,KA8B3CvG,EAAMwG,WAtNa,SAACvG,G,IAoBFmF,EACCA,EAIYA,EAxB7B,EAUInF,EATFH,KAAAA,OAAI,IAAG,UAAO,IASZG,EARFI,WAAAA,OAAU,IAAG,KAAE,EACfG,EAOEP,EAPFO,cACAT,EAMEE,EANFF,OACAqF,EAKEnF,EALFmF,QACA1E,EAIET,EAJFS,SACAP,EAGEF,EAHFE,UACAsG,EAEExG,EAFFwG,oBACA9F,EACEV,EADFU,QAGII,EAAUF,GAAAA,CAAGC,IAAAA,UAAeX,GAElC,OACE,UAACgC,MAAG,CAAChC,UAAWY,EAASJ,QAASA,E,WAChC,UAACwB,MAAG,CAAChC,UAAWW,IAAAA,S,WACd,SAACd,EAAMmF,IAAG,CACRC,QAAS,CACPG,KAAa,OAAPH,QAAO,IAAPA,GAAY,QAAZA,EAAAA,EAASsB,WAAG,IAAZtB,OAAAA,EAAAA,EAAcG,KACpBC,MAAc,OAAPJ,QAAO,IAAPA,GAAY,QAAZA,EAAAA,EAASsB,WAAG,IAAZtB,OAAAA,EAAAA,EAAcI,OAEvBrF,UAAWsG,KAEb,SAACzG,EAAMyF,QAAO,CAACC,OAAe,OAAPN,QAAO,IAAPA,GAAe,QAAfA,EAAAA,EAASuB,cAAM,IAAfvB,OAAAA,EAAAA,EAAiBI,M,SACrC9E,QAGL,SAACmD,EAAU,CACT/D,KAAMA,EACNO,WAAYA,EACZN,OAAQA,EACR+D,UAAQ,EACRtD,cAAeA,QAqLvBR,EAAM4G,OA5BS,Y,IACblD,EAAI,EAAJA,KACAhD,EAAQ,EAARA,SACAC,EAAO,EAAPA,QAMA,OAAKD,GAAagD,GAGhB,SAACD,EAAAA,EAAI,CAACC,KAAMA,E,UACV,SAACC,IAAC,C,UACA,SAACxB,MAAG,CAACxB,QAASA,EAASR,UAAWW,IAAAA,O,SAC/BJ,QANsB,MAqBjC,S,wIC1ZA,kB,0dAwBO,IAAMmG,EAAmB,SAC9BC,EACAvC,EACAC,EACAuC,EACAC,EACA7C,EACAH,EACAiD,GAEA,IACMC,GAAaC,EAAAA,EAAAA,IAAcnD,GAEjC,MAAO,GAAuB8C,OAHjBM,8BAGE,iBAA+B7C,OAAhBuC,EAAa,KAAYtC,OAATD,EAAM,KAAawC,OAAVvC,EAAO,KAAgBwC,OAAbD,EAAQ,OAAsB5C,OAAjB6C,EAAY,OAAgBE,OAAX/C,EAAQ,KACrG8C,OADwGC,EAAW,KAEpH,OADCD,GAAa,SAIF,SAASlD,EAAW9D,GACjC,IAAQsE,EAAkBtE,EAAlBsE,MAAOC,EAAWvE,EAAXuE,OACf,EAOIvE,EANF6G,aAAAA,OAAY,IAAG,QAAK,IAMlB7G,EALFgH,UAAAA,OAAS,IAAG,SAAM,IAKhBhH,EAJF+G,YAAAA,OAAW,IAAG,OAAI,EAClBK,EAGEpH,EAHFoH,YACAC,EAEErH,EAFFqH,aACGC,EAAU,EACXtH,EAAK,CANP6G,eACAG,YACAD,cACAK,cACAC,iBAwBF,OAAO,SAACE,I,uUAAK,EAACC,OAlBS,Y,IAAGzD,EAAG,EAAHA,IAAKG,EAAO,EAAPA,QAM7B,OAAO0C,EACLC,EANgBvC,GAAS8C,GAAe,IACvB7C,GAAU8C,GAAgB,IAE7B,EAOdN,EARiB7C,GAAW,EAU5BH,EACAiD,KAIsCM,M,gHCzE5C,kB,uyBAGa9D,EAKT,Y,QAAGC,KAAAA,OAAI,IAAG,MAAG,EAAKzD,EAAK,KAApByD,SACCgE,GAAcC,EAAAA,EAAAA,UAClB,WACEjE,OAAI,OAAJA,QAAI,IAAJA,OAAAA,EAAAA,EAAMkE,WAAW,QACb,OAAJlE,QAAI,IAAJA,OAAAA,EAAAA,EAAMkE,WAAW,QAEX,OAAJlE,QAAI,IAAJA,OAAAA,EAAAA,EAAMkE,WAAWR,kCACrB,CAAC1D,IAGGmE,GAAgBF,EAAAA,EAAAA,UAAQ,WAAM,QAAK,OAAJjE,QAAI,IAAJA,OAAAA,EAAAA,EAAMkE,WAAW,WAAS,CAAClE,IAG1B,OAAlCgE,GAEA,SAACI,IAAQ,CAACpE,KAAMA,E,UACd,SAACC,IAAC,KAAK1D,MAMT4H,GACK,SAAClE,IAAC,GAACD,KAAMA,GAAUzD,KAIrB,SAAC0D,IAAC,GAACD,KAAMA,GAAUzD,EAAK,CAAE8H,IAAI,oC,0HCzBxB,SAASC,EAAe,G,IACrCtH,EADqC,EACrCA,SAAQ,EAD6B,EAErCuH,MAAAA,OAAK,IAAG,GAAK,EACb9H,EAHqC,EAGrCA,UAEA,OACE,SAACgC,MAAG,CAAChC,UAAWU,GAAAA,CAAGC,IAAAA,QAAamH,GAASnH,IAAAA,MAAWX,G,SACjDO,M,kBChBPwH,EAAOC,QAAU,CAAC,cAAgB,6BAA6B,UAAY,yBAAyB,kBAAoB,iCAAiC,mBAAqB,kCAAkC,WAAa,0BAA0B,SAAW,wBAAwB,MAAQ,qBAAqB,MAAQ,qBAAqB,QAAU,uBAAuB,aAAe,4BAA4B,OAAS,sBAAsB,MAAQ,qBAAqB,YAAc,2BAA2B,MAAQ,qBAAqB,OAAS,sBAAsB,IAAM,mBAAmB,OAAS,sBAAsB,OAAS,sBAAsB,WAAa,0BAA0B,QAAU,uBAAuB,cAAgB,6BAA6B,MAAQ,qBAAqB,UAAY,yBAAyB,QAAU,uBAAuB,iBAAmB,gCAAgC,yBAA2B,wCAAwC,OAAS,wB,kBCA/+BD,EAAOC,QAAU,CAAC,QAAU,gCAAgC,MAAQ","sources":["webpack://_N_E/./src/components/common/Cover/Cover.utils.ts","webpack://_N_E/./src/components/common/Cover/index.tsx","webpack://_N_E/./src/components/common/ImageProxy/index.tsx","webpack://_N_E/./src/components/common/Link/index.tsx","webpack://_N_E/./src/components/layout/LayoutConfines/index.tsx","webpack://_N_E/./src/components/common/Cover/Cover.module.scss","webpack://_N_E/./src/components/layout/LayoutConfines/LayoutConfines.module.scss"],"sourcesContent":["import { RefObject } from 'react';\n\n// Добавляет класс 'active' слайду и всем его копиям\nexport const activateSlidesAndCopies = (\n slideIndex: number,\n sliderElem: RefObject,\n slidesCount: number\n) => {\n // react-slick формирует три группы слайдов (отображаются друг за другом):\n // 1) левые копии - имеют отрицательный индекс (от -slidesCount до -1)\n // 2) оригиналы - имеют индекс в соответствии с порядком\n // 3) \"правые\" копии - имеют индекс равный текущему слайду плюс длина всех\n // оригинальных слайдов (от slideIndex + slidesCount до slidesCount * 2)\n\n // селектор оригинального слайда\n const originalSlideSelector = `.slick-slide[data-index=\"${slideIndex}\"]`;\n\n // селектор для копии слайда \"слева\"\n const prevSlideCloneSelector = `.slick-slide[data-index=\"${\n slideIndex - slidesCount\n }\"]`;\n\n // селектор для копии слайда \"справа\"\n const nextSlideCloneSelector = `.slick-slide[data-index=\"${\n slideIndex + slidesCount\n }\"]`;\n\n sliderElem?.current\n ?.querySelectorAll(\n `${prevSlideCloneSelector}, ${originalSlideSelector}, ${nextSlideCloneSelector}`\n )\n .forEach((slideElem) => {\n // Для корректной логики переключения мы добавляем текущему слайду и его копиям\n // класс 'active'\n slideElem.classList.add('slick-active');\n });\n};\n\n// Удаляем класс 'active' у всех слайдов, кроме того, чей индекс был передан\n// (при этом 'active' удаляется у всех копий слайда с переданным индексом)\nexport const deactivateSlidesExcept = (\n slideIndex: number,\n sliderElem: RefObject\n) => {\n sliderElem?.current\n // Селектор для выбора всех слайдов, которые не содержат атрибут\n // с переданным индексом и не являются копиями\n ?.querySelectorAll(`.slick-slide:not([data-index=\"${slideIndex}\"])`)\n .forEach((slideElem) => {\n slideElem.classList.remove('slick-active');\n });\n};\n\nexport type TCoverBackgroundSettings = {\n url: string;\n type?: 'image' | 'video';\n poster?: string;\n};\n\nexport type TCoverBackgroundTarget = {\n imageUrl: string;\n imageMobileUrl?: string;\n videoUrl?: string;\n};\n\nexport const getCoverBackgroundSettings = (\n target: TCoverBackgroundTarget,\n isMobile?: boolean\n): TCoverBackgroundSettings => {\n const { videoUrl, imageUrl, imageMobileUrl } = target;\n\n const settings: TCoverBackgroundSettings = {\n url: '',\n type: 'image',\n };\n\n if (isMobile) {\n settings.url = videoUrl || imageMobileUrl || imageUrl || '';\n } else {\n settings.url = videoUrl || imageUrl || '';\n }\n\n if (settings.url === videoUrl) {\n settings.type = 'video';\n settings.poster = isMobile\n ? imageMobileUrl || imageUrl || ''\n : imageUrl || '';\n }\n\n return settings;\n};\n\nexport const getProxyPosterUrl = () => {};\n","import React, { ReactNode, MouseEvent, Children, useRef } from 'react';\nimport { Settings } from 'react-slick';\nimport cn from 'classnames';\nimport { UiSlider, UiTitle } from 'znanie-uikit';\n\nimport ImageProxy, { ImageProxyProps } from 'components/common/ImageProxy';\nimport { Link } from 'components/common/Link';\n\nimport { getFormattedText } from 'utils/helpers';\n\nimport { activateSlidesAndCopies, deactivateSlidesExcept } from './Cover.utils';\n\nimport css from './Cover.module.scss';\n\nexport * from './Cover.utils';\n\ninterface IProps {\n size?: 'small' | 'medium' | 'large' | 'intro';\n className?: string;\n wrapperClassName?: string;\n background?: string;\n vertical?: 'top' | 'center' | 'bottom';\n type?: 'image' | 'video' | 'broadcast' | 'slider';\n poster?: string;\n sliderSettings?: {\n dots?: boolean;\n dotsDecoration?: boolean;\n dotsReverse?: boolean;\n arrows?: boolean;\n autoplaySpeed?: number;\n };\n imgProxyProps?: ImageProxyProps;\n link?: string;\n children: ReactNode;\n isAuthorized?: boolean;\n\n onClick?(e: MouseEvent): void;\n}\n\ninterface ContentProps {\n widget?: ReactNode;\n children: any;\n}\n\ninterface ITopProps {\n widgets?: {\n left?: ReactNode;\n right?: ReactNode;\n };\n className?: string;\n}\n\ninterface ICoverSliderItem {\n type?: 'image' | 'video';\n poster?: string;\n background: string;\n imgProxyProps?: ImageProxyProps;\n widgets?: any;\n children: ReactNode;\n className?: string;\n topWidgetsClassName?: string;\n onClick?: () => void;\n}\n\nconst Cover = (props: IProps) => {\n const {\n size,\n className,\n wrapperClassName,\n background = '',\n poster,\n vertical = 'bottom',\n type = 'image',\n sliderSettings,\n imgProxyProps,\n link,\n children,\n onClick,\n } = props;\n\n const wrapperClasses = cn(\n css.wrapper,\n size && css[size],\n type === 'slider' && css.slider,\n vertical && css[vertical]\n );\n\n const classes = cn(css.container, className);\n\n const sliderElem = useRef(null);\n\n if (type === 'slider') {\n let getSettings = {\n slidesToShow: 1,\n slidesToScroll: 1,\n infinite: true,\n autoplay: true,\n autoplaySpeed: sliderSettings?.autoplaySpeed || 3000,\n fade: false,\n pauseOnDotsHover: true,\n pauseOnHover: false,\n } as Settings;\n\n if (sliderSettings?.dots) {\n getSettings = {\n ...{\n dots: true,\n dotsClass: cn(\n css.dotsClass,\n sliderSettings?.dotsReverse && css.reverse\n ),\n appendDots: UiSlider.Dots as any,\n },\n ...getSettings,\n };\n }\n\n if (sliderSettings?.arrows) {\n getSettings = {\n ...{\n arrows: true,\n nextArrow: ,\n prevArrow: ,\n },\n ...getSettings,\n };\n }\n\n return (\n
\n
\n {\n // Делаем следующий слайд и его копии активными\n activateSlidesAndCopies(\n nextIndex,\n sliderElem,\n Children.count(children)\n );\n }}\n afterChange={(slideIndex) => {\n // Убираем активность всем слайдам, кроме текущего оригинала\n // (копии также деактивируются)\n deactivateSlidesExcept(slideIndex, sliderElem);\n }}\n {...getSettings}\n >\n {children}\n \n
\n
\n );\n }\n\n if (link) {\n return (\n \n );\n }\n\n return (\n
\n
\n
{children}
\n \n
\n
\n );\n};\n\nconst SliderItem = (props: ICoverSliderItem) => {\n const {\n type = 'image',\n background = '',\n imgProxyProps,\n poster,\n widgets,\n children,\n className,\n topWidgetsClassName,\n onClick,\n } = props;\n\n const classes = cn(css.container, className);\n\n return (\n
\n
\n \n \n {children}\n \n
\n \n
\n );\n};\n\nconst Background = ({\n type,\n background,\n imgProxyProps,\n poster,\n isSlider,\n}: {\n type: 'image' | 'video' | 'broadcast';\n background: string;\n imgProxyProps?: ImageProxyProps;\n poster?: string;\n isSlider?: boolean;\n}) => {\n return (\n \n
\n {background && (\n <>\n {type === 'image' && (\n \n )}\n {type === 'video' && (\n \n \n \n )}\n {type === 'broadcast' && (\n \n )}\n \n )}\n
\n \n );\n};\n\nconst Top = ({ widgets, className }: ITopProps) => {\n return (\n
    \n
  • {widgets?.left}
  • \n
  • {widgets?.right}
  • \n
\n );\n};\n\nconst Content = ({ widget, children }: ContentProps) => {\n const classes = cn(css.content, !widget && css.withoutWidget);\n\n return (\n
\n {children}\n {widget &&
{widget}
}\n
\n );\n};\n\nconst Buttons = ({\n className,\n children,\n}: {\n className?: string;\n children: ReactNode;\n}) => {\n const classes = cn(css.buttons, className);\n\n return (\n
\n
{children}
\n
\n );\n};\n\nconst Title = ({\n children,\n withFormat,\n className,\n as = 'div',\n}: {\n children: string | ReactNode;\n withFormat?: boolean;\n className?: string;\n as?: string;\n}) => {\n let content = children;\n\n if (typeof content === 'string' && withFormat) {\n return (\n \n '),\n }}\n />\n \n );\n }\n\n return
{content}
;\n};\n\nconst Description = ({\n children,\n withFormat,\n}: {\n children: string;\n withFormat?: boolean;\n}) => {\n const result = children;\n\n if (withFormat) {\n return (\n ') }}\n />\n );\n }\n return
{result}
;\n};\n\nconst LinkTo = ({\n href,\n children,\n onClick,\n}: {\n href: string;\n children: ReactNode;\n onClick?(): void;\n}) => {\n if (!children || !href) return null;\n\n return (\n \n \n
\n {children}\n
\n
\n \n );\n};\n\nCover.Top = Top;\nCover.Content = Content;\nCover.Buttons = Buttons;\nCover.Title = Title;\nCover.Description = Description;\nCover.SliderItem = SliderItem;\nCover.LinkTo = LinkTo;\n\nexport default Cover;\n","import Image, { ImageProps, ImageLoaderProps } from 'next/image';\n\nimport { urlSafeBase64 } from 'utils/helpers';\n\nexport interface ImageProxyProps {\n sourceWidth?: number;\n sourceHeight?: number;\n // https://github.com/imgproxy/imgproxy/blob/master/docs/generating_the_url.md#resizing-type\n resizingType?: 'auto' | 'fit' | 'fill' | 'fill-down' | 'force';\n // https://github.com/imgproxy/imgproxy/blob/master/docs/generating_the_url.md#gravity\n gravityType?:\n | 'no'\n | 'so'\n | 'ea'\n | 'we'\n | 'noea'\n | 'nowe'\n | 'soea'\n | 'sowe'\n | 'ce';\n // https://github.com/imgproxy/imgproxy/blob/master/docs/image_formats_support.md#image-formats-support\n extension?: 'png' | 'jpg' | 'webp';\n}\n\nexport const buildImgProxyUrl = (\n resizingType: ImageProxyProps['resizingType'],\n width: number,\n height: number,\n enlarge: number,\n gravityType: ImageProxyProps['gravityType'],\n quality: number,\n src: string,\n extension?: ImageProxyProps['extension']\n) => {\n const host = process.env.NEXT_PUBLIC_CDN_HOST as string;\n const encodedUrl = urlSafeBase64(src);\n\n return `${host}/insecure/rs:${resizingType}:${width}:${height}:${enlarge}/g:${gravityType}/q:${quality}/${encodedUrl}.${\n extension || 'webp'\n }`;\n};\n\nexport default function ImageProxy(props: ImageProxyProps & ImageProps) {\n const { width, height } = props;\n const {\n resizingType = 'fit',\n extension = 'webp',\n gravityType = 'no',\n sourceWidth,\n sourceHeight,\n ...imageProps\n } = props;\n\n // лоадер для формирования ссылки до изображения через imgproxy\n // https://github.com/imgproxy/imgproxy/blob/master/docs/generating_the_url.md\n const imgProxyLoader = ({ src, quality }: ImageLoaderProps) => {\n const imgWidth = (width || sourceWidth || 300) as number;\n const imgHeight = (height || sourceHeight || 300) as number;\n const imgQuality = quality || 0;\n const enlarge = 0;\n\n return buildImgProxyUrl(\n resizingType,\n imgWidth,\n imgHeight,\n enlarge,\n gravityType,\n imgQuality,\n src,\n extension\n );\n };\n\n return ;\n}\n","import { FC, useMemo } from 'react';\nimport NextLink from 'next/link';\n\nexport const Link: FC<\n React.DetailedHTMLProps<\n React.AnchorHTMLAttributes,\n HTMLAnchorElement\n >\n> = ({ href = '/', ...props }) => {\n const isInnerLink = useMemo(\n () =>\n href?.startsWith('/') ||\n href?.startsWith('#') ||\n (process.env.NEXT_PUBLIC_API_HOST &&\n href?.startsWith(process.env.NEXT_PUBLIC_API_HOST)),\n [href]\n );\n\n const isSpecialLink = useMemo(() => !href?.startsWith('http'), [href]);\n\n // Внутренние ссылки, в пределах данного домена\n if (isInnerLink) {\n return (\n \n \n \n );\n }\n\n // Специальные ссылки, которые не используют http (например, mailto)\n if (isSpecialLink) {\n return ;\n }\n\n // Внешние ссылки, ведущие на другой домен\n return ;\n};\n","import { ReactNode } from 'react';\nimport cn from 'classnames';\nimport css from './LayoutConfines.module.scss';\n\ninterface IProps {\n children: ReactNode;\n extra?: boolean;\n className?: string;\n}\n\nexport default function LayoutConfines({\n children,\n extra = false,\n className,\n}: IProps) {\n return (\n
\n {children}\n
\n );\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sliderWrapper\":\"Cover_sliderWrapper__VwdRq\",\"container\":\"Cover_container__73CjK\",\"backgroundWrapper\":\"Cover_backgroundWrapper__wNTxO\",\"backgroundBlackout\":\"Cover_backgroundBlackout__p1_E6\",\"background\":\"Cover_background__LG9zL\",\"children\":\"Cover_children__XZjbt\",\"small\":\"Cover_small__Xf1kM\",\"title\":\"Cover_title__UON8A\",\"buttons\":\"Cover_buttons__lAZFx\",\"buttonsInner\":\"Cover_buttonsInner__o1N7H\",\"medium\":\"Cover_medium__zuf2_\",\"large\":\"Cover_large__jliTq\",\"description\":\"Cover_description__pvt2V\",\"intro\":\"Cover_intro__e931r\",\"slider\":\"Cover_slider__x1LKa\",\"top\":\"Cover_top__5aOsZ\",\"center\":\"Cover_center__5v2tD\",\"bottom\":\"Cover_bottom__vVjES\",\"topWidgets\":\"Cover_topWidgets__etHri\",\"content\":\"Cover_content__w_BqI\",\"withoutWidget\":\"Cover_withoutWidget__upUbv\",\"right\":\"Cover_right__3j8tg\",\"dotsClass\":\"Cover_dotsClass__nvhxs\",\"reverse\":\"Cover_reverse__18jGQ\",\"sliderWithArrows\":\"Cover_sliderWithArrows__Fl_QG\",\"sliderWithDotsDecoration\":\"Cover_sliderWithDotsDecoration__LuZAi\",\"linkTo\":\"Cover_linkTo___ZZ_6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"LayoutConfines_wrapper__9yCbF\",\"extra\":\"LayoutConfines_extra__gyZwP\"};"],"names":["getCoverBackgroundSettings","target","isMobile","videoUrl","imageUrl","imageMobileUrl","settings","url","type","poster","Cover","props","size","className","wrapperClassName","background","vertical","sliderSettings","imgProxyProps","link","children","onClick","wrapperClasses","cn","css","classes","sliderElem","useRef","getSettings","slidesToShow","slidesToScroll","infinite","autoplay","autoplaySpeed","fade","pauseOnDotsHover","pauseOnHover","dots","dotsClass","dotsReverse","appendDots","UiSlider","arrows","nextArrow","prevArrow","div","ref","dotsDecoration","beforeChange","prevIndex","nextIndex","slideIndex","slidesCount","originalSlideSelector","prevSlideCloneSelector","nextSlideCloneSelector","current","querySelectorAll","forEach","slideElem","classList","add","activateSlidesAndCopies","Children","afterChange","remove","deactivateSlidesExcept","Link","href","a","e","Background","isSlider","ImageProxy","src","layout","objectFit","quality","alt","video","id","width","height","autoPlay","playsInline","loop","muted","preload","source","iframe","title","frameBorder","allowFullScreen","Top","widgets","ul","li","left","right","Content","widget","Buttons","Title","withFormat","as","content","UiTitle","color","span","dangerouslySetInnerHTML","__html","getFormattedText","Description","result","SliderItem","topWidgetsClassName","top","bottom","LinkTo","buildImgProxyUrl","resizingType","enlarge","gravityType","extension","encodedUrl","urlSafeBase64","process","sourceWidth","sourceHeight","imageProps","Image","loader","isInnerLink","useMemo","startsWith","isSpecialLink","NextLink","rel","LayoutConfines","extra","module","exports"],"sourceRoot":""}