{"version":3,"file":"scripts/chunks/_app_app_components_organisms_O3-HeroSliderItem_index_ts.9b61e85471804a3b5fa4.mjs","mappings":"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","sources":["webpack://rockworld/./app/components/molecules/SliderIndicator/SliderIndicator.module.scss","webpack://rockworld/./app/components/molecules/SliderIndicator/SliderIndicatorItem/index.ts","webpack://rockworld/./app/components/molecules/SliderIndicator/SliderIndicatorItem/SliderIndicatorItem.tsx","webpack://rockworld/./app/components/molecules/SliderIndicator/SliderIndicator.tsx","webpack://rockworld/./app/components/organisms/O3-HeroSliderItem/HeroSliderItem.module.scss","webpack://rockworld/./app/components/organisms/O3-HeroSliderItem/HeroSliderItem.tsx","webpack://rockworld/./app/components/organisms/O3-HeroSliderItem/index.ts","webpack://rockworld/./app/components/organisms/Carousel/Carousel.module.scss","webpack://rockworld/./app/components/organisms/Carousel/Carousel.tsx","webpack://rockworld/./app/components/atoms/icons/CarretWideIcon.tsx","webpack://rockworld/./app/components/organisms/Carousel/CarouselNavButton/CarouselNavButton.module.scss","webpack://rockworld/./app/components/organisms/Carousel/CarouselNavButton/CarouselNavButton.tsx","webpack://rockworld/./app/components/organisms/Carousel/CarouselPagination/CarouselPagination.module.scss","webpack://rockworld/./app/components/organisms/Carousel/CarouselPagination/CarouselPagination.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"rw-slider-overlay\":\"rw-slider-overlay__XeRnV\",\"rwSliderOverlay\":\"rw-slider-overlay__XeRnV\",\"no-overlay\":\"no-overlay__lQspz\",\"noOverlay\":\"no-overlay__lQspz\",\"overlay-light\":\"overlay-light___O9S2\",\"overlayLight\":\"overlay-light___O9S2\",\"overlay-dark\":\"overlay-dark__yRDr0\",\"overlayDark\":\"overlay-dark__yRDr0\",\"rw-slider-indicator-item\":\"rw-slider-indicator-item__dE5Uw\",\"rwSliderIndicatorItem\":\"rw-slider-indicator-item__dE5Uw\",\"rw-slider-indicator\":\"rw-slider-indicator__Xg9zy\",\"rwSliderIndicator\":\"rw-slider-indicator__Xg9zy\",\"rw-slider-indicator-item__header\":\"rw-slider-indicator-item__header__xfJWQ\",\"rwSliderIndicatorItemHeader\":\"rw-slider-indicator-item__header__xfJWQ\",\"rw-progress-bar\":\"rw-progress-bar__Jt1Ah\",\"rwProgressBar\":\"rw-progress-bar__Jt1Ah\",\"rw-progress-bar-value\":\"rw-progress-bar-value__MIfwX\",\"rwProgressBarValue\":\"rw-progress-bar-value__MIfwX\",\"mask\":\"mask__OTQsk\",\"active\":\"active__vk3gq\",\"timer\":\"timer__PlDpr\",\"load\":\"load__qoPNm\",\"rw-progress-bar-mobile-value\":\"rw-progress-bar-mobile-value__MaC6T\",\"rwProgressBarMobileValue\":\"rw-progress-bar-mobile-value__MaC6T\",\"time\":\"time__uvbQM\"};","export { SliderIndicatorItem } from './SliderIndicatorItem';\r\n\r\nexport const testProps = {\r\n item: { title: 'Test title 1', overlay: 'overlay-dark', duration: 3500 },\r\n isActive: true,\r\n onClickIndicator: () => {},\r\n sliderIndicatorIndex: 1,\r\n};\r\n\r\nexport const dataTestId = { progressBar: 'progress-bar-test-id' };\r\n","import React, { FC, useMemo } from 'react';\r\nimport styles from '../SliderIndicator.module.scss';\r\nimport { dataTestId } from '.';\r\n\r\nexport type SliderIndicatorItem = {\r\n title: string;\r\n duration: number;\r\n overlay: string;\r\n};\r\n\r\nexport type SliderIndicatorItemProps = {\r\n item: SliderIndicatorItem;\r\n isActive: boolean;\r\n onClickIndicator: (index: number) => void;\r\n sliderIndicatorIndex: number;\r\n};\r\n\r\nconst SliderIndicatorItem: FC = ({\r\n item,\r\n isActive,\r\n sliderIndicatorIndex,\r\n onClickIndicator,\r\n}) => {\r\n const dynamicStyles = useMemo(\r\n () => ({\r\n animationDuration: `${item.duration}s`,\r\n animationPlayState: `${isActive ? 'running' : 'paused'}`,\r\n }),\r\n [item, isActive]\r\n );\r\n\r\n return (\r\n onClickIndicator(sliderIndicatorIndex)}\r\n role=\"button\"\r\n tabIndex={0}\r\n onKeyDown={() => onClickIndicator(sliderIndicatorIndex)}\r\n >\r\n

{item.title}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport { SliderIndicatorItem };\r\n","import React, { FC } from 'react';\r\nimport { SliderIndicatorItem } from './SliderIndicatorItem/SliderIndicatorItem';\r\nimport styles from './SliderIndicator.module.scss';\r\n\r\nexport type SliderIndicator = {\r\n items: SliderIndicatorItem[];\r\n overlayClassName: string;\r\n activeSliderIndex: number;\r\n onClickIndicator: (index: number) => void;\r\n};\r\n\r\nconst SliderIndicator: FC = ({ items, overlayClassName, activeSliderIndex, onClickIndicator }) => (\r\n
\r\n
\r\n {items.map((item, index) => (\r\n \r\n ))}\r\n
\r\n
\r\n);\r\n\r\nexport { SliderIndicator };\r\n","// extracted by mini-css-extract-plugin\nexport default {\"O3-3-home-page-hero-slider\":\"O3-3-home-page-hero-slider__KPf2J\",\"o33HomePageHeroSlider\":\"O3-3-home-page-hero-slider__KPf2J\",\"O3-3-home-page-hero-slider__container\":\"O3-3-home-page-hero-slider__container__O84it\",\"o33HomePageHeroSliderContainer\":\"O3-3-home-page-hero-slider__container__O84it\",\"O3-3-home-page-hero-slider__nav\":\"O3-3-home-page-hero-slider__nav__nT3xh\",\"o33HomePageHeroSliderNav\":\"O3-3-home-page-hero-slider__nav__nT3xh\"};","import React, { FC, useEffect, useMemo, useRef, useState } from 'react';\r\nimport { Carousel } from '@organisms/Carousel';\r\nimport { CarouselSlide } from '@organisms/Carousel/Carousel';\r\nimport { SliderIndicator } from '@molecules/SliderIndicator/SliderIndicator';\r\nimport { SliderIndicatorItem } from '@molecules/SliderIndicator/SliderIndicatorItem';\r\nimport { Autoplay, Pagination, Navigation } from 'swiper/modules';\r\nimport { screenSizes } from 'app/scripts/core/consts';\r\nimport { HomePageHero } from '@organisms/O3-HomePageHero';\r\nimport { useIsOpenExtendedSearchForm } from '@hooks/useIsOpenExtendedSearchForm';\r\nimport { HomePageNewSearch } from '@organisms/O3-HomePageNewSearch/HomePageNewSearch';\r\nimport { EventEnum, publish } from '@utils/custom-events';\r\nimport { testIds } from '.';\r\nimport styles from './HeroSliderItem.module.scss';\r\n\r\nexport type HeroSliderItem = {\r\n homePageHeros?: HomePageHero[];\r\n items: string;\r\n homePageNewSearch: HomePageNewSearch;\r\n};\r\n\r\nconst HeroSliderItem: FC = ({ homePageHeros, items, homePageNewSearch }) => {\r\n const extendedItems: SliderIndicatorItem[] = useMemo(() => JSON.parse(items), [items]);\r\n\r\n const [activeSlideIndex, setActiveSlideIndex] = useState(0);\r\n const [overlayClassName, setOverlayClassName] = useState('no-overlay');\r\n\r\n const heroSlider = useRef();\r\n const carouselNavPrevRef = useRef();\r\n const carouselNavNextRef = useRef();\r\n const paginationRef = useRef();\r\n const carouselRef = useRef(null);\r\n\r\n const isOpenExtendedSearchForm = useIsOpenExtendedSearchForm();\r\n\r\n const getDelayValue = (index: number) => extendedItems[index].duration * 1000;\r\n\r\n const onActiveSlideChange = (step: number) => {\r\n setActiveSlideIndex(step);\r\n setOverlayClassName(extendedItems[step].overlay);\r\n const swiper = carouselRef?.current?.swiper;\r\n if (swiper) {\r\n swiper.autoplay.stop();\r\n swiper.params.autoplay.delay = getDelayValue(step);\r\n swiper.autoplay.start();\r\n }\r\n };\r\n\r\n const onClickIndicator = (index: number) => {\r\n carouselRef?.current?.swiper?.slideTo(index);\r\n };\r\n\r\n const closeSearch = () => {\r\n if (isOpenExtendedSearchForm) {\r\n publish(EventEnum.changeIsOpenExtendedSearchForm, false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setOverlayClassName(extendedItems[0].overlay);\r\n }, [extendedItems]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {homePageHeros?.map((heroItem) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport { HeroSliderItem };\r\n","import { homePageHeroTestProps } from '@organisms/O3-HomePageHero';\r\n\r\nexport { HeroSliderItem } from './HeroSliderItem';\r\n\r\nexport const heroSliderItemTestProps = {\r\n homePageHeros: [\r\n {...homePageHeroTestProps},\r\n ],\r\n items:JSON.stringify([\r\n { title: 'Test title 1', overlay: 'overlay-dark', duration: 1000 },\r\n { title: 'Test title 2', overlay: 'overlay-light', duration: 2000 },\r\n { title: 'Test title 3', overlay: 'overlay-dark', duration: 3000 },\r\n { title: 'Test title 4', overlay: 'overlay-dark', duration: 5000 },\r\n ]),\r\n homePageNewSearch: {\r\n placeHolderText: 'Placeholder Text',\r\n placeHolderTextNoHtml: 'Placeholder Text',\r\n searchPageLink: 'Link',\r\n }\r\n};\r\n\r\n\r\nexport const testIds = {\r\n sliderNav: 'home-page-hero-sllider-nav',\r\n sliderItem : 'slider-item'\r\n}","// extracted by mini-css-extract-plugin\nexport default {\"carousel\":\"carousel__MniZg\",\"display\":\"display__JNJkk\",\"hidden\":\"hidden__ZXElU\",\"navigation\":\"navigation__xiHZj\"};","import { screenSizes } from 'app/scripts/core/consts';\r\nimport classNames from 'classnames';\r\nimport 'node_modules/swiper/swiper.scss';\r\nimport React, { FC, MutableRefObject, useEffect, useRef, useState } from 'react';\r\nimport Swiper from 'swiper';\r\nimport { Navigation, Pagination } from 'swiper/modules';\r\nimport { SwiperOptions } from 'swiper/types';\r\nimport styles from './Carousel.module.scss';\r\nimport { CarouselNavButton } from './CarouselNavButton';\r\nimport { CarouselPagination } from './CarouselPagination';\r\n\r\ninterface Carousel extends SwiperOptions {\r\n className?: string;\r\n navigationClassName?: string;\r\n controlClassName?: string;\r\n paginationClassName?: string;\r\n children?: React.ReactNode;\r\n navPrevRef?: MutableRefObject;\r\n navNextRef?: MutableRefObject;\r\n paginationRef?: MutableRefObject;\r\n carouselRef?: MutableRefObject;\r\n navButtonClassName?: string;\r\n onActiveSlideChange?: (x: number) => void;\r\n slideChangeTransitionStart?: (x: number) => void;\r\n carouselResize?: (x: number) => void;\r\n}\r\n\r\nconst Carousel: FC = (props) => {\r\n const {\r\n className,\r\n children,\r\n navPrevRef,\r\n navNextRef,\r\n paginationRef,\r\n carouselRef,\r\n navButtonClassName,\r\n onActiveSlideChange,\r\n slideChangeTransitionStart,\r\n carouselResize,\r\n ...options\r\n } = props;\r\n const defaultCarouselRef = useRef();\r\n const defaultNavPrevRef = useRef();\r\n const defaultNavNextRef = useRef();\r\n const defaultPaginationRef = useRef();\r\n const carouselClassName = classNames('swiper', styles.carousel, className);\r\n const ref = carouselRef || defaultCarouselRef;\r\n const showNavigation = (!navPrevRef || !navNextRef) && options.navigation;\r\n const [isSwiperInit, setIsSwiperInit] = useState(false);\r\n\r\n // Initialize swiper\r\n useEffect(() => {\r\n const pagination = paginationRef?.current || defaultPaginationRef.current;\r\n const navPrev = navPrevRef?.current || defaultNavPrevRef.current;\r\n const navNext = navNextRef?.current || defaultNavNextRef.current;\r\n\r\n const swiperOptions = getOptions({\r\n pagination,\r\n navPrev,\r\n navNext,\r\n options,\r\n setIsSwiperInit,\r\n onActiveSlideChange,\r\n slideChangeTransitionStart,\r\n carouselResize,\r\n });\r\n\r\n // eslint-disable-next-line no-new\r\n new Swiper(ref.current, swiperOptions as SwiperOptions);\r\n }, []);\r\n\r\n return (\r\n
\r\n
{children}
\r\n\r\n {showNavigation && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n\r\n {!paginationRef && (\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\ninterface OptionsConfig {\r\n options?: SwiperOptions;\r\n pagination: HTMLDivElement;\r\n navPrev: HTMLButtonElement;\r\n navNext: HTMLButtonElement;\r\n setIsSwiperInit: (x: boolean) => void;\r\n onActiveSlideChange?: (x: number) => void;\r\n slideChangeTransitionStart?: (x: number) => void;\r\n carouselResize?: (x: number) => void;\r\n}\r\n\r\n/** Get default options and override them with new options */\r\nconst getOptions = (config: OptionsConfig): Carousel => {\r\n const { on: swiperEvents, ...options } = config.options;\r\n\r\n return {\r\n modules: [Navigation, Pagination],\r\n slidesPerView: 1,\r\n speed: 500,\r\n pagination: {\r\n el: config.pagination,\r\n clickable: true,\r\n },\r\n breakpoints: {\r\n [screenSizes.tablet]: {\r\n navigation: {\r\n prevEl: config.navPrev,\r\n nextEl: config.navNext,\r\n },\r\n },\r\n },\r\n navigation: {\r\n prevEl: config.navPrev,\r\n nextEl: config.navNext,\r\n },\r\n on: {\r\n ...swiperEvents,\r\n init(swiper) {\r\n preloadImages(swiper);\r\n swiperEvents?.init(swiper);\r\n },\r\n slideChangeTransitionStart(swiper) {\r\n preloadImages(swiper);\r\n swiperEvents?.slideChangeTransitionStart(swiper);\r\n\r\n if (config?.slideChangeTransitionStart) {\r\n const { realIndex } = swiper;\r\n config?.slideChangeTransitionStart(realIndex);\r\n }\r\n },\r\n slideChangeTransitionEnd(swiper) {\r\n preloadImages(swiper);\r\n swiperEvents?.slideChangeTransitionEnd(swiper);\r\n\r\n if (config?.onActiveSlideChange) {\r\n const { realIndex } = swiper;\r\n config.onActiveSlideChange(realIndex);\r\n }\r\n },\r\n resize(swiper) {\r\n swiperEvents?.resize(swiper);\r\n\r\n if (config?.carouselResize) {\r\n const { params } = swiper;\r\n config.carouselResize(params.slidesPerGroup);\r\n swiper.slideTo(0);\r\n }\r\n },\r\n afterInit() {\r\n config.setIsSwiperInit(true);\r\n },\r\n },\r\n ...options,\r\n };\r\n};\r\n\r\n/** Preload images in next and previous slides in carousel */\r\nconst preloadImages = ({ slides, activeIndex }: Swiper) => {\r\n const prevSlide = slides.at(activeIndex - 1);\r\n const nextSlide = slides[activeIndex + 1];\r\n const activeSlideSiblings = [prevSlide, nextSlide];\r\n\r\n activeSlideSiblings.forEach((slide) => {\r\n const images = slide?.querySelectorAll('img');\r\n\r\n images?.forEach((image) => (image.loading = 'eager'));\r\n });\r\n};\r\n\r\ninterface SlideProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n onClick?: () => void;\r\n}\r\n\r\nconst CarouselSlide: FC = ({ children, className, ...slideProps }) => {\r\n const swiperClassName = classNames('swiper-slide', className);\r\n\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nexport { Carousel, CarouselSlide };\r\n","import React, { FC, SVGProps } from 'react';\r\n\r\ntype Props = SVGProps;\r\n\r\nconst CarretWideIcon: FC = (props) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default CarretWideIcon;\r\n","// extracted by mini-css-extract-plugin\nexport default {\"nav-button\":\"nav-button__QeARH\",\"navButton\":\"nav-button__QeARH\",\"inverted\":\"inverted__Z_Oue\"};","import CarretWideIcon from '@atoms/icons/CarretWideIcon';\r\nimport classNames from 'classnames';\r\nimport React, { FC, MutableRefObject } from 'react';\r\nimport styles from './CarouselNavButton.module.scss';\r\n\r\ninterface CarouselNavButton {\r\n buttonRef?: MutableRefObject;\r\n className?: string;\r\n inverted?: boolean;\r\n}\r\n\r\nconst CarouselNavButton: FC = ({ buttonRef, className, inverted }) => {\r\n const buttonClassName = classNames(styles.navButton, className, { [styles.inverted]: inverted });\r\n const title = inverted ? 'next-slide-button' : 'previous-slide-button';\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport { CarouselNavButton };\r\n","// extracted by mini-css-extract-plugin\nexport default {\"pagination\":\"pagination__Qdqjj\"};","import classNames from 'classnames';\r\nimport React, { FC, MutableRefObject } from 'react';\r\nimport styles from './CarouselPagination.module.scss';\r\n\r\ninterface CarouselPagination {\r\n paginationRef?: MutableRefObject;\r\n clasName?: string;\r\n}\r\n\r\nconst CarouselPagination: FC = ({ paginationRef, clasName }) => {\r\n const paginationClassName = classNames(styles.pagination, clasName);\r\n\r\n return
;\r\n};\r\n\r\nexport { CarouselPagination };\r\n"],"names":["dataTestId","SliderIndicatorItem","_ref","item","isActive","sliderIndicatorIndex","onClickIndicator","dynamicStyles","useMemo","animationDuration","duration","animationPlayState","_jsxs","className","styles","active","title","onClick","role","tabIndex","onKeyDown","children","_jsx","timer","style","mask","SliderIndicator","items","overlayClassName","activeSliderIndex","map","index","HeroSliderItem","homePageHeros","homePageNewSearch","extendedItems","JSON","parse","activeSlideIndex","setActiveSlideIndex","useState","setOverlayClassName","heroSlider","useRef","carouselNavPrevRef","carouselNavNextRef","paginationRef","carouselRef","isOpenExtendedSearchForm","useIsOpenExtendedSearchForm","getDelayValue","closeSearch","publish","EventEnum","changeIsOpenExtendedSearchForm","useEffect","overlay","ref","HomePageNewSearch","_objectSpread","Carousel","onActiveSlideChange","step","swiper","current","autoplay","stop","params","delay","start","navPrevRef","navNextRef","modules","Autoplay","Pagination","Navigation","disableOnInteraction","longSwipesRatio","breakpoints","screenSizes","mobile","touchRatio","tablet","desktop","heroItem","CarouselSlide","HomePageHero","placeHolderText","backgroundImage","src","testIds","sliderNav","slideTo","heroSliderItemTestProps","homePageHeroTestProps","stringify","placeHolderTextNoHtml","searchPageLink","sliderItem","props","navButtonClassName","slideChangeTransitionStart","carouselResize","options","_objectWithoutProperties","_excluded","defaultCarouselRef","defaultNavPrevRef","defaultNavNextRef","defaultPaginationRef","carouselClassName","classNames","showNavigation","navigation","isSwiperInit","setIsSwiperInit","pagination","navPrev","navNext","swiperOptions","getOptions","Swiper","navigationClassName","CarouselNavButton","buttonRef","inverted","CarouselPagination","clasName","paginationClassName","config","_config$options","on","swiperEvents","_excluded2","slidesPerView","speed","el","clickable","prevEl","nextEl","init","preloadImages","realIndex","slideChangeTransitionEnd","resize","slidesPerGroup","afterInit","slides","activeIndex","at","forEach","slide","images","querySelectorAll","image","loading","_ref2","slideProps","_excluded3","swiperClassName","width","height","viewBox","fill","stroke","strokeWidth","d","buttonClassName","type","CarretWideIcon"],"sourceRoot":""}