{"version":3,"file":"scripts/chunks/_app_app_components_organisms_O30-ArticleImage_index_ts.db4e96cee831390dc27b.mjs","mappings":"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","sources":["webpack://rockworld/./app/components/atoms/Image/Image.module.scss","webpack://rockworld/./app/components/atoms/Image/Image.tsx","webpack://rockworld/./app/components/atoms/icons/ArrowIcon.tsx","webpack://rockworld/./app/components/atoms/icons/ArrowLeftIcon.tsx","webpack://rockworld/./app/components/atoms/icons/VideoIcon.tsx","webpack://rockworld/./app/components/atoms/icons/ScaleIcon.tsx","webpack://rockworld/./app/components/molecules/ScaleImageToFullScreenButton/ScaleImageToFullScreenButton.tsx","webpack://rockworld/./app/components/molecules/ScaleImageToFullScreenButton/index.ts","webpack://rockworld/./app/components/molecules/VideoButton/VideoButton.tsx","webpack://rockworld/./app/components/organisms/Carousel/Carousel.module.scss","webpack://rockworld/./app/components/organisms/Carousel/Carousel.tsx","webpack://rockworld/./app/components/organisms/Carousel/CarouselControl/CarouselControl.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","webpack://rockworld/./app/utils/requestImageFullscreen.ts","webpack://rockworld/./app/components/organisms/O30-ArticleImage/ArticleImage.tsx","webpack://rockworld/./app/components/organisms/O30-ArticleImage/RockfonCaseStudiesImagesSlider.tsx","webpack://rockworld/./app/components/organisms/O30-ArticleImage/RockfonCaseStudyPageSlider.tsx","webpack://rockworld/./app/consts/attributes.ts","webpack://rockworld/./app/scripts/core/consts.ts"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"image\":\"image__zIuTb\"};","import { screenSizes } from 'app/scripts/core/consts';\r\nimport classNames from 'classnames';\r\nimport React, { FC, ImgHTMLAttributes, MutableRefObject } from 'react';\r\nimport styles from './Image.module.scss';\r\n\r\ninterface ImageSources {\r\n mobile?: string;\r\n tablet?: string;\r\n desktop?: string;\r\n desktopLarge?: string;\r\n}\r\n\r\ninterface Image {\r\n componentName?: string;\r\n name: string;\r\n sources?: ImageSources;\r\n src?: string;\r\n imageRef?: MutableRefObject;\r\n fetchpriority?: string;\r\n}\r\n\r\ntype ImageProps = ImgHTMLAttributes & Image;\r\n\r\nconst Image: FC = (props) => {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- componentName\r\n const { componentName, src, sources, className, name, loading, alt, sizes, imageRef, ...imgAttributes } = props;\r\n const imageClassNames = classNames(styles.image, className);\r\n const srcSet = sources ? getSrcSet(sources) : null;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport const getSrcSet = (sources: ImageSources) => {\r\n const sourcesKeys = Object.keys(sources);\r\n const sourceSet = sourcesKeys.map((key) => {\r\n const source = sources[key];\r\n const resolution = screenSizes[key];\r\n\r\n return source ? `${source} ${resolution}w` : undefined;\r\n });\r\n\r\n return sourceSet.filter((v) => v !== undefined).join(', ');\r\n};\r\n\r\nexport { Image };\r\nexport type { ImageSources };\r\n","import React, { FC, SVGProps } from 'react';\r\n\r\ntype Props = SVGProps;\r\n\r\nconst ArrowIcon: FC = (props) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default ArrowIcon;\r\n","import React, { FC, SVGProps } from 'react';\r\n\r\ntype Props = SVGProps;\r\n\r\nconst ArrowLeftIcon: FC = (props) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default ArrowLeftIcon;\r\n","import React, { FC, SVGProps } from 'react';\r\n\r\ntype Props = SVGProps;\r\n\r\nconst VideoIcon: FC = (props) => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default VideoIcon;\r\n","import React, { FC, SVGProps } from 'react';\r\n\r\ntype Props = SVGProps;\r\n\r\nconst ScaleIcon: FC = (props) => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default ScaleIcon;\r\n","import React, { FC } from 'react';\r\nimport ScaleIcon from '@atoms/icons/ScaleIcon';\r\n\r\ninterface ScaleImageToFullScreenButton {\r\n onClick?: () => void;\r\n fullscreenUrl?: string;\r\n}\r\n\r\nconst ScaleImageToFullScreenButton: FC = (props) => {\r\n const { onClick = () => null, fullscreenUrl } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nScaleImageToFullScreenButton.displayName = 'ScaleImageToFullScreenButton';\r\n\r\nexport { ScaleImageToFullScreenButton };\r\n","import { ScaleImageToFullScreenButton } from './ScaleImageToFullScreenButton';\r\n\r\nexport default ScaleImageToFullScreenButton;\r\n","import React, { forwardRef } from 'react';\r\nimport './VideoButton.scss';\r\nimport VideoIcon from '@atoms/icons/VideoIcon';\r\n\r\ninterface VideoButton {\r\n id?: string;\r\n videoUrl: string;\r\n videoTitle?: string;\r\n videoDescription?: string;\r\n videoImage?: string;\r\n videoUploadDate?: string;\r\n videoTitleYouTube?: string;\r\n videoTitleLinkedIn?: string;\r\n youTubeUrl?: string;\r\n embeddedCodeWithoutIframe?: string;\r\n hasEmbeddedMeta?: boolean;\r\n buttonText?: string;\r\n customClassName?: string;\r\n useButtonWithIcon?: boolean;\r\n}\r\n\r\nconst VideoButton: React.ForwardRefExoticComponent> = forwardRef<\r\n HTMLButtonElement,\r\n VideoButton\r\n>((props, ref) => {\r\n const {\r\n videoUrl,\r\n videoTitle,\r\n videoDescription,\r\n videoImage,\r\n videoUploadDate,\r\n videoTitleYouTube,\r\n videoTitleLinkedIn,\r\n youTubeUrl,\r\n hasEmbeddedMeta,\r\n embeddedCodeWithoutIframe,\r\n buttonText,\r\n id,\r\n customClassName,\r\n useButtonWithIcon = false,\r\n } = props;\r\n\r\n const seoData = () => {\r\n const data = {\r\n '@@context': 'https://schema.org',\r\n '@@type': 'VideoObject',\r\n name: videoTitle,\r\n description: videoDescription,\r\n contentUrl: videoUrl,\r\n thumbnailUrl: [videoImage],\r\n uploadDate: videoUploadDate,\r\n };\r\n return JSON.stringify(data);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {useButtonWithIcon ? (\r\n <>\r\n {buttonText}\r\n \r\n \r\n \r\n \r\n ) : (\r\n buttonText\r\n )}\r\n \r\n {hasEmbeddedMeta ? (\r\n \r\n ) : (\r\n videoUrl?.length > 0 && (\r\n \r\n )\r\n )}\r\n \r\n );\r\n});\r\n\r\nVideoButton.displayName = 'VideoButton';\r\n\r\nexport { VideoButton };\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 ArrowIcon from '@atoms/icons/ArrowIcon';\r\nimport React, { FC, MutableRefObject } from 'react';\r\nimport ArrowLeftIcon from '@atoms/icons/ArrowLeftIcon';\r\n\r\nexport type HorizontalPosition = 'Left' | 'Right';\r\n\r\ninterface CarouselControl {\r\n currentSlide: number;\r\n horizontalPosition?: HorizontalPosition;\r\n maxSlideCount: number;\r\n defaultNavPrevRef?: MutableRefObject;\r\n defaultNavNextRef?: MutableRefObject;\r\n isLoop?: boolean;\r\n idKey?: string;\r\n}\r\n\r\nconst CarouselControl: FC = ({\r\n currentSlide,\r\n maxSlideCount,\r\n horizontalPosition,\r\n defaultNavPrevRef,\r\n defaultNavNextRef,\r\n isLoop = false,\r\n idKey = '',\r\n}) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {currentSlide + 1}/{maxSlideCount}\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport { CarouselControl };\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","import { htmlAttributes } from \"app/consts\";\r\nimport { MutableRefObject } from \"react\";\r\n\r\nexport const requestImageFullscreen = (refEl: MutableRefObject, imageSrc: string) => {\r\n const divObj = refEl?.current;\r\n divObj.src = imageSrc;\r\n if (divObj.requestFullscreen) {\r\n divObj.requestFullscreen();\r\n return;\r\n }\r\n const win = window.open(imageSrc, htmlAttributes.targetValueBlank);\r\n win?.focus();\r\n};\r\n","import React, { FC, useState, useRef, createRef, useMemo, RefObject } from 'react';\r\nimport { Image } from '@atoms/Image';\r\nimport { VideoButton } from '@molecules/VideoButton';\r\nimport { Carousel } from '@organisms/Carousel';\r\nimport { CarouselControl } from '@organisms/Carousel/CarouselControl';\r\nimport { CarouselSlide } from '@organisms/Carousel/Carousel';\r\nimport { requestImageFullscreen } from '@utils/requestImageFullscreen';\r\nimport ScaleImageToFullScreenButton from '@molecules/ScaleImageToFullScreenButton';\r\nimport './ArticleImage.scss';\r\n\r\nexport interface ImageSourceSrcType {\r\n componentName?: string;\r\n name?: string;\r\n sources?: {\r\n mobile?: string;\r\n tablet?: string;\r\n desktop?: string;\r\n desktopLarge?: string;\r\n };\r\n src?: string;\r\n alt?: string;\r\n}\r\n\r\ninterface VideoButtonProps {\r\n componentName: string;\r\n id: string;\r\n videoUrl?: string;\r\n videoTitleYouTube?: string;\r\n videoTitleLinkedIn?: string;\r\n videoTitle?: string;\r\n videoDescription?: string;\r\n videoUploadDate?: string;\r\n videoImage?: string;\r\n buttonText?: string;\r\n metaImage?: string;\r\n hasVideoContent?: boolean;\r\n youTubeUrl?: string;\r\n hasEmbeddedMeta?: boolean;\r\n embeddedCodeWithoutIframe?: string;\r\n}\r\n\r\nexport interface ImageItem {\r\n fullscreen?: boolean;\r\n fullscreenWithoutWindow?: boolean;\r\n fullscreenImage?: string;\r\n image?: ImageSourceSrcType;\r\n videoBtn?: string;\r\n altText?: string;\r\n credit?: string;\r\n caption?: string;\r\n creditLabel?: string;\r\n hasFullscreenEnabled?: boolean;\r\n videoButton?: VideoButtonProps;\r\n}\r\n\r\ninterface ArticleImage {\r\n componentName: string;\r\n images?: Array;\r\n backgroundStyle?: string;\r\n isNarrow?: boolean;\r\n deepLinkId?: string;\r\n hasContent?: boolean;\r\n}\r\n\r\nconst ArticleImage: FC = (props) => {\r\n const { componentName, images, backgroundStyle, isNarrow, deepLinkId, hasContent } = props;\r\n const navPrevRef = useRef();\r\n const navNextRef = useRef();\r\n const imageRefs = useRef[]>([]);\r\n const paginationRef = useRef();\r\n const [activeStep, setActiveStep] = useState(0);\r\n const maxSlideCount = useMemo(() => images.length, [images]);\r\n\r\n const carouselItems = useMemo(\r\n () =>\r\n images?.map((item, idx) => {\r\n if (!imageRefs.current[idx]) {\r\n imageRefs.current[idx] = createRef();\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n {item.videoButton.hasVideoContent && (\r\n \r\n )}\r\n {item.hasFullscreenEnabled && (\r\n <>\r\n {item.fullscreen && (\r\n \r\n )}\r\n {(item.fullscreenWithoutWindow || item.fullscreen) && (\r\n \r\n item.fullscreenWithoutWindow\r\n ? requestImageFullscreen(imageRefs.current[idx], item.fullscreenImage)\r\n : null\r\n }\r\n />\r\n )}\r\n \r\n )}\r\n
\r\n
\r\n {item.credit && (\r\n

\r\n {item.credit}\r\n

\r\n )}\r\n {item.caption &&

{item.caption}

}\r\n
\r\n
\r\n
\r\n );\r\n }),\r\n [images]\r\n );\r\n return (\r\n
\r\n
\r\n
\r\n setActiveStep(step)}\r\n >\r\n {hasContent && carouselItems}\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport { ArticleImage };\r\n","import React, { FC, useState, useRef, createRef, useMemo, RefObject } from 'react';\r\nimport { Image } from '@atoms/Image';\r\nimport { Carousel } from '@organisms/Carousel';\r\nimport { CarouselControl } from '@organisms/Carousel/CarouselControl';\r\nimport { CarouselSlide } from '@organisms/Carousel/Carousel';\r\nimport ScaleImageToFullScreenButton from '@molecules/ScaleImageToFullScreenButton';\r\nimport { ImageSourceSrcType } from './ArticleImage';\r\nimport './ArticleImage.scss';\r\n\r\ninterface ItemImage {\r\n descriptions?: string;\r\n detailsDescription?: string;\r\n featuredProductsLabel?: string;\r\n fullscreen?: boolean;\r\n hasDetailsDescription?: boolean;\r\n hasFeaturedProductsLabel?: boolean;\r\n hasGrid?: boolean;\r\n hasSystem?: boolean;\r\n hasTile?: boolean;\r\n imageAlternativeText?: string;\r\n imageFullscreen?: string;\r\n languages?: string;\r\n image: ImageSourceSrcType;\r\n}\r\ninterface ImageItem {\r\n edgeAndDimension?: string;\r\n imageFullscreen?: string;\r\n projectName?: string;\r\n projectPageContentLink?: string;\r\n image?: ItemImage;\r\n}\r\n\r\ninterface RockfonCaseStudiesImagesSlider {\r\n componentName?: string;\r\n edgeAndDimensionHeadline?: string;\r\n hasHeadline?: boolean;\r\n hasImages?: boolean;\r\n headline?: string;\r\n images?: Array;\r\n projectNameHeadline?: string;\r\n seeFullProjectText?: string;\r\n}\r\n\r\nconst RockfonCaseStudiesImagesSlider: FC = (props) => {\r\n const {\r\n componentName,\r\n edgeAndDimensionHeadline,\r\n hasHeadline,\r\n headline,\r\n hasImages,\r\n projectNameHeadline,\r\n seeFullProjectText,\r\n images,\r\n } = props;\r\n\r\n const navPrevRef = useRef();\r\n const navNextRef = useRef();\r\n const imageRefs = useRef[]>([]);\r\n const paginationRef = useRef();\r\n const [activeStep, setActiveStep] = useState(0);\r\n const maxSlideCount = useMemo(() => images.length, [images]);\r\n\r\n const carouselItems = useMemo(\r\n () =>\r\n images?.map((item, idx) => {\r\n if (!imageRefs.current[idx]) {\r\n imageRefs.current[idx] = createRef();\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n {item.image.fullscreen && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n

\r\n \r\n {projectNameHeadline}: {item.projectName}\r\n \r\n {item.edgeAndDimension.length > 0 && (\r\n <>\r\n
\r\n \r\n {edgeAndDimensionHeadline}: {item.edgeAndDimension}\r\n \r\n \r\n )}\r\n

\r\n {item.projectPageContentLink && (\r\n \r\n {seeFullProjectText}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n }),\r\n [images]\r\n );\r\n return (\r\n
\r\n {hasHeadline &&

{headline}

}\r\n
\r\n setActiveStep(step)}\r\n >\r\n {hasImages && carouselItems}\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport { RockfonCaseStudiesImagesSlider };\r\n","import React, { FC, useState, useRef, createRef, useMemo, RefObject } from 'react';\r\nimport { Image } from '@atoms/Image';\r\nimport { Carousel } from '@organisms/Carousel';\r\nimport { CarouselControl } from '@organisms/Carousel/CarouselControl';\r\nimport { CarouselSlide } from '@organisms/Carousel/Carousel';\r\nimport { requestImageFullscreen } from '@utils/requestImageFullscreen';\r\nimport ScaleImageToFullScreenButton from '@molecules/ScaleImageToFullScreenButton';\r\nimport { ImageSourceSrcType } from './ArticleImage';\r\nimport './ArticleImage.scss';\r\n\r\ninterface ImageItem {\r\n descriptions?: Array;\r\n detailsDescription?: string;\r\n featuredProductsLabel?: string;\r\n fullscreen?: boolean;\r\n hasDetailsDescription?: boolean;\r\n hasFeaturedProductsLabel?: boolean;\r\n hasGrid?: boolean;\r\n hasSystem?: boolean;\r\n hasTile?: boolean;\r\n image?: ImageSourceSrcType;\r\n imageAlternativeText?: string;\r\n imageFullscreen?: string;\r\n languages?: string;\r\n}\r\n\r\ninterface RockfonCaseStudyPageSlider {\r\n componentName?: string;\r\n imageItems?: Array;\r\n}\r\n\r\nconst RockfonCaseStudyPageSlider: FC = (props) => {\r\n const { componentName, imageItems } = props;\r\n const navPrevRef = useRef();\r\n const navNextRef = useRef();\r\n const imageRefs = useRef[]>([]);\r\n const paginationRef = useRef();\r\n const [activeStep, setActiveStep] = useState(0);\r\n const maxSlideCount = useMemo(() => imageItems.length, [imageItems]);\r\n\r\n const carouselItems = useMemo(\r\n () =>\r\n imageItems?.map((item, idx) => {\r\n if (!imageRefs.current[idx]) {\r\n imageRefs.current[idx] = createRef();\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n {item.fullscreen && (\r\n requestImageFullscreen(imageRefs.current[idx], item.imageFullscreen)}\r\n />\r\n )}\r\n
\r\n\r\n {(item.hasFeaturedProductsLabel || item.hasDetailsDescription) && (\r\n
\r\n {(item.hasFeaturedProductsLabel || item.hasTile || item.hasGrid || item.hasSystem) && (\r\n
\r\n
\r\n {item.hasFeaturedProductsLabel && (item.hasTile || item.hasGrid || item.hasSystem) && (\r\n
{item.featuredProductsLabel}
\r\n )}\r\n
\r\n {item.descriptions?.map((list, index) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n )}\r\n\r\n {item.hasDetailsDescription && (\r\n

{item.detailsDescription}

\r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }),\r\n [imageItems]\r\n );\r\n return (\r\n
\r\n
\r\n setActiveStep(step)}\r\n >\r\n {imageItems.length > 0 && carouselItems}\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport { RockfonCaseStudyPageSlider };\r\n","export const htmlAttributes = {\r\n relAttributeWithNoopenerNoReferrerVaule: 'noopener noreferrer',\r\n targetValueBlank: '_blank',\r\n targetValueSelf: '_self',\r\n relNoFollowValue: 'nofollow',\r\n relAttributeWithNoopenerNoReferrerNoFollowValue: 'noopener noreferrer nofollow',\r\n thumbnail: 'thumbnail',\r\n notGated: 'not gated',\r\n gated: 'gated',\r\n download: 'download',\r\n};\r\n","interface ScreenWidths {\r\n mobile: number;\r\n tablet: number;\r\n desktop: number;\r\n desktopLarge: number;\r\n}\r\n\r\nexport const screenSizes: ScreenWidths = {\r\n mobile: 375,\r\n tablet: 768,\r\n desktop: 992,\r\n desktopLarge: 1200,\r\n};\r\n\r\n"],"names":["Image","props","componentName","src","sources","className","name","loading","alt","sizes","imageRef","imgAttributes","_objectWithoutProperties","_excluded","imageClassNames","classNames","styles","srcSet","getSrcSet","React","_extends","ref","suppressHydrationWarning","Object","keys","map","key","source","resolution","screenSizes","undefined","filter","v","join","width","height","viewBox","fillRule","d","xmlns","points","ScaleImageToFullScreenButton","onClick","fullscreenUrl","type","ScaleIcon","displayName","VideoButton","forwardRef","videoUrl","videoTitle","videoDescription","videoImage","videoUploadDate","videoTitleYouTube","videoTitleLinkedIn","youTubeUrl","hasEmbeddedMeta","embeddedCodeWithoutIframe","buttonText","id","customClassName","useButtonWithIcon","VideoIcon","dangerouslySetInnerHTML","__html","length","seoData","data","description","contentUrl","thumbnailUrl","uploadDate","JSON","stringify","Carousel","children","navPrevRef","navNextRef","paginationRef","carouselRef","navButtonClassName","onActiveSlideChange","slideChangeTransitionStart","carouselResize","options","defaultCarouselRef","useRef","defaultNavPrevRef","defaultNavNextRef","defaultPaginationRef","carouselClassName","showNavigation","navigation","isSwiperInit","setIsSwiperInit","useState","useEffect","pagination","current","navPrev","navNext","swiperOptions","getOptions","Swiper","navigationClassName","CarouselNavButton","buttonRef","inverted","CarouselPagination","clasName","paginationClassName","config","_config$options","on","swiperEvents","_excluded2","_objectSpread","modules","Navigation","Pagination","slidesPerView","speed","el","clickable","breakpoints","tablet","prevEl","nextEl","init","swiper","preloadImages","realIndex","slideChangeTransitionEnd","resize","params","slidesPerGroup","slideTo","afterInit","_ref","slides","activeIndex","at","forEach","slide","images","querySelectorAll","image","CarouselSlide","_ref2","slideProps","_excluded3","swiperClassName","CarouselControl","currentSlide","maxSlideCount","horizontalPosition","isLoop","idKey","ArrowLeftIcon","ArrowIcon","fill","stroke","strokeWidth","buttonClassName","title","CarretWideIcon","requestImageFullscreen","refEl","imageSrc","divObj","requestFullscreen","win","window","open","htmlAttributes","targetValueBlank","focus","ArticleImage","backgroundStyle","isNarrow","deepLinkId","hasContent","imageRefs","activeStep","setActiveStep","useMemo","carouselItems","item","idx","createRef","videoButton","hasVideoContent","hasFullscreenEnabled","fullscreen","fullscreenImage","fullscreenWithoutWindow","credit","caption","loop","step","RockfonCaseStudiesImagesSlider","edgeAndDimensionHeadline","hasHeadline","headline","hasImages","projectNameHeadline","seeFullProjectText","imageFullscreen","href","projectPageContentLink","projectName","edgeAndDimension","RockfonCaseStudyPageSlider","imageItems","hasFeaturedProductsLabel","hasDetailsDescription","hasTile","hasGrid","hasSystem","featuredProductsLabel","descriptions","list","index","detailsDescription","relAttributeWithNoopenerNoReferrerVaule","targetValueSelf","relNoFollowValue","relAttributeWithNoopenerNoReferrerNoFollowValue","thumbnail","notGated","gated","download","mobile","desktop","desktopLarge"],"sourceRoot":""}